nfg_ui 0.9.18.3 → 0.9.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: b287c554e7af2675d77fc603b76701fd82e0e4146051ac3aeef56255325cac38
4
- data.tar.gz: 13a04dee8908d23e96a2fabe55b6b9a2b26e9550826cc3ae61f0ed8c533e93eb
3
+ metadata.gz: 6e5bbcb27ac27f8426efeed5141e03cb6547993924c2b4f08723895bf1b37ab4
4
+ data.tar.gz: 0015a4dbb6e348aa114b1c9a0b0d005d11e47708fec14704c32d6d1888026476
5
5
  SHA512:
6
- metadata.gz: 9aade3d6eab931bb993d78dad3b28d9eefe1faa86fa044821d651e22a2e2c209c01891f8c388e53fb08f9d3dfa5cb974f4bb0174b90c12276de36a408fc8aba8
7
- data.tar.gz: 01dadc7832c5a53aa1ff8d8d138520aa0559a3c817475720d8c50c2d585fbbb7b7f4d70457137af295f454753704b873185d58fd922da17ed5001b909f8dff9e
6
+ metadata.gz: 8c4e347b204fae62ef69557e67a8e6ddb9457602ca298f818b46157f04ed63cd210eb1d4651b3d77f417e3ee7f684364cabc9a388a3408fe3e6f627cafdb0243
7
+ data.tar.gz: 72eb996d6d153a5827fc7030cb47ee3a7c474bc8d3ea3b18ae85ace97182c54648db52f73db46a5037fb9c1429286ac2a59ec5609dc0ef055cada6d19b55204a
@@ -1,5 +1,6 @@
1
1
  // Our custom styles
2
2
  @import 'custom/admin_bar';
3
+ @import 'custom/avatar';
3
4
  @import 'custom/background_variations';
4
5
  @import 'custom/everyday_default';
5
6
  @import 'custom/everyday_story';
@@ -0,0 +1,54 @@
1
+ .avatar {
2
+ position: relative;
3
+ display: inline-flex;
4
+ align-items: center;
5
+ justify-content: center;
6
+ vertical-align: middle;
7
+ width: ($spacer * 2);
8
+ height: ($spacer * 2);
9
+ color: transparent;
10
+ background-color: $border-color;
11
+ border-radius: 50%;
12
+
13
+ // Images within avatars
14
+ img {
15
+ width: 100%;
16
+ height: 100%;
17
+ border-radius: inherit;
18
+ }
19
+
20
+ // Text (initials) within avatars
21
+ .avatar-text {
22
+ font-weight: $font-weight-bold;
23
+ font-size: $font-size-base;
24
+ line-height: 1;
25
+ color: $body-color;
26
+ text-align: center;
27
+ white-space: nowrap;
28
+ overflow: hidden;
29
+ }
30
+
31
+ // Sizes
32
+ &.avatar-sm {
33
+ width: $spacer;
34
+ height: $spacer;
35
+ .avatar-text { font-size: ($font-size-base * .625); }
36
+ }
37
+ &.avatar-lg {
38
+ width: ($spacer * 4);
39
+ height: ($spacer * 4);
40
+ .avatar-text { font-size: $font-size-lg; }
41
+ }
42
+ &.avatar-xl {
43
+ width: ($spacer * 5);
44
+ height: ($spacer * 5);
45
+ .avatar-text { font-size: $h1-font-size; }
46
+ }
47
+ }
48
+
49
+ // Avatar as a link
50
+ a.avatar {
51
+ opacity: 1;
52
+ transition: $transition-fade;
53
+ &:hover, &:active { opacity: $btn-disabled-opacity; }
54
+ }
@@ -0,0 +1,69 @@
1
+ # frozen_string_literal: true
2
+ module NfgUi
3
+ module Components
4
+ module Elements
5
+ # Activity doc coming soon
6
+ class Avatar < NfgUi::Components::Base
7
+ include Bootstrap::Utilities::Sizable
8
+ include Bootstrap::Utilities::Tooltipable
9
+ include Bootstrap::Utilities::Wrappable
10
+
11
+ include NfgUi::Components::Traits::Size
12
+
13
+ def alt
14
+ options.fetch(:alt, nil)
15
+ end
16
+
17
+ def image
18
+ options.fetch(:image, nil)
19
+ end
20
+
21
+ def render
22
+ content_tag(as, html_options) do
23
+ if image.present?
24
+ image_tag image, alt: alt.presence
25
+ elsif body.present?
26
+ content_tag(:span, (block_given? ? yield : body), class: body_css_class)
27
+ end
28
+ end
29
+ end
30
+
31
+ # Set the default size if no size is set.
32
+ # Avatars, unlike other components, always have a size
33
+ # provided to them.
34
+ # This also rejects nil from fetching as a fallback
35
+ def size
36
+ options[:size] || default_size
37
+ end
38
+
39
+ private
40
+
41
+ def body_css_class
42
+ 'avatar-text'
43
+ end
44
+
45
+ def default_html_wrapper_element
46
+ :div
47
+ end
48
+
49
+ def default_size
50
+ :md
51
+ end
52
+
53
+ def non_html_attribute_options
54
+ super.push(:image, :alt)
55
+ end
56
+
57
+ # Sizable doesn't allow components to use illegal sizes (anything other than :sm or :lg)
58
+ # When an illegal size is detected, it does not generate the size css class (e.g.: 'avatar-xl')
59
+ #
60
+ # nfg_ui implements more sizes than "sm" and "lg",
61
+ # We set #resized? updated restrictions here, instead.
62
+ # allowing updated size css classes to be passed to html_options
63
+ def resized?
64
+ [:sm, :md, :lg, :xl].include?(size)
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
@@ -3,15 +3,23 @@ module NfgUi
3
3
  module Traits
4
4
  # Shared Size traits
5
5
  module Size
6
- TRAITS = %i[lg sm].freeze
6
+ TRAITS = %i[sm md lg xl].freeze
7
7
 
8
8
  def lg_trait
9
9
  options[:size] = :lg
10
10
  end
11
11
 
12
+ def md_trait
13
+ options[:size] = :md
14
+ end
15
+
12
16
  def sm_trait
13
17
  options[:size] = :sm
14
18
  end
19
+
20
+ def xl_trait
21
+ options[:size] = :xl
22
+ end
15
23
  end
16
24
  end
17
25
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module NfgUi
4
- VERSION = '0.9.18.3'
4
+ VERSION = '0.9.19'
5
5
  end
data/lib/nfg_ui.rb CHANGED
@@ -94,6 +94,7 @@ module NfgUi
94
94
 
95
95
  ELEMENT_COMPONENT_NAMES = %i[activity
96
96
  alert
97
+ avatar
97
98
  badge
98
99
  breadcrumb
99
100
  breadcrumb_item
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: nfg_ui
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.18.3
4
+ version: 0.9.19
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Roehm
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2019-09-19 00:00:00.000000000 Z
12
+ date: 2019-10-02 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bootstrap
@@ -492,6 +492,7 @@ files:
492
492
  - app/assets/stylesheets/nfg_ui/network_for_good/public/nfg_theme/_tooltip.scss
493
493
  - app/assets/stylesheets/nfg_ui/network_for_good/public/nfg_theme/_type.scss
494
494
  - app/assets/stylesheets/nfg_ui/network_for_good/public/nfg_theme/custom/_admin_bar.scss
495
+ - app/assets/stylesheets/nfg_ui/network_for_good/public/nfg_theme/custom/_avatar.scss
495
496
  - app/assets/stylesheets/nfg_ui/network_for_good/public/nfg_theme/custom/_background_variations.scss
496
497
  - app/assets/stylesheets/nfg_ui/network_for_good/public/nfg_theme/custom/_everyday_default.scss
497
498
  - app/assets/stylesheets/nfg_ui/network_for_good/public/nfg_theme/custom/_everyday_story.scss
@@ -609,6 +610,7 @@ files:
609
610
  - lib/nfg_ui/components/elements.rb
610
611
  - lib/nfg_ui/components/elements/activity.rb
611
612
  - lib/nfg_ui/components/elements/alert.rb
613
+ - lib/nfg_ui/components/elements/avatar.rb
612
614
  - lib/nfg_ui/components/elements/badge.rb
613
615
  - lib/nfg_ui/components/elements/breadcrumb.rb
614
616
  - lib/nfg_ui/components/elements/breadcrumb_item.rb