nfg_ui 0.11.3 → 0.11.8
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 +4 -4
- data/Rakefile +1 -1
- data/app/assets/stylesheets/nfg_ui/network_for_good/admin/color_variations/nfg_theme/_badge.scss +4 -1
- data/app/assets/stylesheets/nfg_ui/network_for_good/admin/color_variations/nfg_theme/_buttons.scss +4 -1
- data/app/assets/stylesheets/nfg_ui/network_for_good/admin/color_variations/nfg_theme/_custom-forms.scss +4 -1
- data/app/assets/stylesheets/nfg_ui/network_for_good/admin/color_variations/nfg_theme/_custom.scss +1 -0
- data/app/assets/stylesheets/nfg_ui/network_for_good/admin/color_variations/nfg_theme/custom/_activity_feed.scss +7 -0
- data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/_custom.scss +5 -0
- data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/_modal.scss +16 -0
- data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_activity_feed.scss +34 -0
- data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_bee.scss +15 -0
- data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_builder_layout.scss +3 -2
- data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_campaign_card.scss +1 -1
- data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_gallery.scss +46 -0
- data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_interaction.scss +1 -1
- data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_overlay_blocker.scss +1 -1
- data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_readmore.scss +24 -0
- data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_sortable.scss +29 -0
- data/app/assets/stylesheets/nfg_ui/network_for_good/core/legacy_browser_support/nfg_theme/_custom.scss +1 -0
- data/app/assets/stylesheets/nfg_ui/network_for_good/core/legacy_browser_support/nfg_theme/custom/_icon.scss +5 -0
- data/app/assets/stylesheets/nfg_ui/network_for_good/core/nfg_theme/_alert.scss +4 -4
- data/app/assets/stylesheets/nfg_ui/network_for_good/core/nfg_theme/_badge.scss +3 -0
- data/app/assets/stylesheets/nfg_ui/network_for_good/core/nfg_theme/_buttons.scss +3 -0
- data/app/assets/stylesheets/nfg_ui/network_for_good/core/nfg_theme/_card.scss +5 -1
- data/app/assets/stylesheets/nfg_ui/network_for_good/core/nfg_theme/_custom-forms.scss +16 -2
- data/app/assets/stylesheets/nfg_ui/network_for_good/core/nfg_theme/_custom.scss +2 -0
- data/app/assets/stylesheets/nfg_ui/network_for_good/core/nfg_theme/_dropdown.scss +9 -1
- data/app/assets/stylesheets/nfg_ui/network_for_good/core/nfg_theme/_reboot.scss +4 -0
- data/app/assets/stylesheets/nfg_ui/network_for_good/core/nfg_theme/custom/_avatar.scss +1 -1
- data/app/assets/stylesheets/nfg_ui/network_for_good/core/nfg_theme/custom/_icon.scss +34 -0
- data/app/assets/stylesheets/nfg_ui/network_for_good/core/nfg_theme/custom/_skeleton.scss +50 -0
- data/app/assets/stylesheets/nfg_ui/network_for_good/core/nfg_theme/custom/_slat.scss +3 -18
- data/app/assets/stylesheets/nfg_ui/network_for_good/core/nfg_theme/custom/_tile.scss +4 -4
- data/lib/nfg_ui/bootstrap/components/modal.rb +5 -1
- data/lib/nfg_ui/components/patterns/modal.rb +7 -0
- data/lib/nfg_ui/components/traits.rb +1 -0
- data/lib/nfg_ui/components/traits/modal.rb +15 -0
- data/lib/nfg_ui/components/traits/typeface.rb +0 -1
- data/lib/nfg_ui/version.rb +1 -1
- metadata +13 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c56c2858567b7c68a6b4eb28d7c37e91e0e266733bbdc04c56244894b4f7386f
|
4
|
+
data.tar.gz: 3969770fbb29fba8da5a50325f7ee5c563a3e659e427c9c96785f08b732c986e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 05e1339fde85266bec3c65e0b008abce02553f895cfcda836c25d8eb2e1b1ae725d3c01b833302da7d929d1e4852e1a738754919f76570dcf4fd3ca0f376f764
|
7
|
+
data.tar.gz: c8e586bd2b28d7ea9dfa24a5a036c76afa465cd6bad269962b9c6c4b74ce5998479e053d68edb165e1c67386f97dc9fb4c98003e5dbdfb22b469a809083def0c
|
data/Rakefile
CHANGED
@@ -36,7 +36,7 @@ task :publish, %i[override_flag] do |_, override_flag: nil|
|
|
36
36
|
subtask_args << ",#{override_flag}" if override_flag
|
37
37
|
|
38
38
|
Dir.chdir("#{__dir__}/publisher") do
|
39
|
-
Bundler.
|
39
|
+
Bundler.with_unbundled_env do
|
40
40
|
sh "RAILS_ENV=production bundle exec rake publish[#{subtask_args}]" do |ok, _|
|
41
41
|
puts 'unable to publish assets' unless ok
|
42
42
|
end
|
data/app/assets/stylesheets/nfg_ui/network_for_good/admin/color_variations/nfg_theme/_buttons.scss
CHANGED
@@ -1,6 +1,9 @@
|
|
1
1
|
@each $color, $value in $colors {
|
2
2
|
.#{$color} {
|
3
|
-
.btn-primary {
|
3
|
+
.btn-primary {
|
4
|
+
@include button-variant($value, $value);
|
5
|
+
color: $white !important;
|
6
|
+
}
|
4
7
|
.show > .btn-primary.dropdown-toggle {
|
5
8
|
background-color: darken($value, 10%);
|
6
9
|
border-color: darken($value, 10%);
|
@@ -1,4 +1,6 @@
|
|
1
1
|
// Our custom styles
|
2
|
+
@import 'custom/activity_feed';
|
3
|
+
@import 'custom/bee';
|
2
4
|
@import 'custom/builder_layout';
|
3
5
|
@import 'custom/campaign_card';
|
4
6
|
@import 'custom/campaign_preview';
|
@@ -7,11 +9,14 @@
|
|
7
9
|
@import 'custom/custom_receipt_language';
|
8
10
|
@import 'custom/email_preview';
|
9
11
|
@import 'custom/free_trial';
|
12
|
+
@import 'custom/gallery';
|
10
13
|
@import 'custom/icomoon';
|
11
14
|
@import 'custom/interaction';
|
12
15
|
@import 'custom/overlay_blocker';
|
13
16
|
@import 'custom/page_header';
|
17
|
+
@import 'custom/readmore';
|
14
18
|
@import 'custom/share_dropdown';
|
19
|
+
@import 'custom/sortable';
|
15
20
|
@import 'custom/status_indicator';
|
16
21
|
@import 'custom/tile';
|
17
22
|
@import 'custom/video_countdown';
|
@@ -4,3 +4,19 @@
|
|
4
4
|
+ #quick-add-modal { display: none !important; }
|
5
5
|
~ .modal-backdrop.show ~ .modal-backdrop.show { display: none !important; }
|
6
6
|
}
|
7
|
+
|
8
|
+
|
9
|
+
// Full page cover modal option
|
10
|
+
.modal-cover {
|
11
|
+
margin: 0;
|
12
|
+
width: 100%;
|
13
|
+
max-width: 100%;
|
14
|
+
height: 100%;
|
15
|
+
transform: none !important; // removes default 50px transform that occurs on modal showing (.fade and .show)
|
16
|
+
.modal-content {
|
17
|
+
display: block;
|
18
|
+
height: 100%;
|
19
|
+
border: none;
|
20
|
+
border-radius: 0;
|
21
|
+
}
|
22
|
+
}
|
data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_activity_feed.scss
ADDED
@@ -0,0 +1,34 @@
|
|
1
|
+
// Activity feed list items
|
2
|
+
.activity-feed-item {
|
3
|
+
position: relative;
|
4
|
+
padding: 0 0 $spacer ($spacer * 1.5);
|
5
|
+
border: none;
|
6
|
+
z-index: 0;
|
7
|
+
&::after {
|
8
|
+
position: absolute;
|
9
|
+
top: 0;
|
10
|
+
left: 12px;
|
11
|
+
bottom: 0;
|
12
|
+
z-index: 0;
|
13
|
+
border-left: $border-width solid $border-color;
|
14
|
+
content: "";
|
15
|
+
}
|
16
|
+
&:last-child {
|
17
|
+
padding-bottom: 0;
|
18
|
+
&::after { display: none; }
|
19
|
+
}
|
20
|
+
.activity-icon {
|
21
|
+
position: absolute;
|
22
|
+
top: 2px;
|
23
|
+
left: 0;
|
24
|
+
display: block;
|
25
|
+
width: $spacer;
|
26
|
+
height: $spacer;
|
27
|
+
font-size: $font-size-sm;
|
28
|
+
line-height: $spacer;
|
29
|
+
z-index: 1;
|
30
|
+
text-align: center;
|
31
|
+
@include border-radius(50%);
|
32
|
+
box-shadow: 0 0 0 2px rgba(255,255,255,1);
|
33
|
+
}
|
34
|
+
}
|
@@ -0,0 +1,15 @@
|
|
1
|
+
#bee_plugin_container {
|
2
|
+
height: 600px; // fallback value if calc() isn't supported
|
3
|
+
border-top: 1px solid $border-color;
|
4
|
+
border-bottom: 1px solid $border-color;
|
5
|
+
}
|
6
|
+
|
7
|
+
// Height if just the builder-header is present
|
8
|
+
.builder-header + .builder-container {
|
9
|
+
#bee_plugin_container { height: calc(100vh - 72px); }
|
10
|
+
}
|
11
|
+
|
12
|
+
// Height if both builder-header and builder-nav are present (typical in onboarder)
|
13
|
+
.builder-header + .builder-nav + .builder-container {
|
14
|
+
#bee_plugin_container { height: calc(100vh - 180px); }
|
15
|
+
}
|
data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_builder_layout.scss
CHANGED
@@ -80,10 +80,11 @@ $builder-preview-padding: ($spacer * 2);
|
|
80
80
|
}
|
81
81
|
}
|
82
82
|
.builder-preview {
|
83
|
+
background-color: $body-bg;
|
83
84
|
padding: $builder-preview-padding ($builder-preview-padding / 2);
|
84
85
|
@include media-breakpoint-up(lg) {
|
85
86
|
float: left;
|
86
|
-
width:
|
87
|
+
width: 67%;
|
87
88
|
height: 100%;
|
88
89
|
overflow-y: auto;
|
89
90
|
> :last-child { margin-bottom: $builder-preview-padding; }
|
@@ -95,7 +96,7 @@ $builder-preview-padding: ($spacer * 2);
|
|
95
96
|
@include media-breakpoint-down(md) { border-bottom: $border-width solid $border-color; }
|
96
97
|
@include media-breakpoint-up(lg) {
|
97
98
|
float: right;
|
98
|
-
width:
|
99
|
+
width: 33%;
|
99
100
|
height: 100%;
|
100
101
|
border-left: $border-width solid $border-color;
|
101
102
|
overflow-y: auto;
|
@@ -0,0 +1,46 @@
|
|
1
|
+
// Gallery styles
|
2
|
+
.card-gallery {
|
3
|
+
|
4
|
+
// Gallery image styles
|
5
|
+
.card-gallery-img {
|
6
|
+
height: ($spacer * 14); // sets height of gallery image preview
|
7
|
+
overflow: hidden;
|
8
|
+
z-index: 0;
|
9
|
+
.card-img {
|
10
|
+
min-height: 100%;
|
11
|
+
z-index: 0;
|
12
|
+
}
|
13
|
+
.card-img-overlay { z-index: 1; }
|
14
|
+
.card-gallery-img-overlay {
|
15
|
+
display: block;
|
16
|
+
position: absolute;
|
17
|
+
top: 0;
|
18
|
+
right: 0;
|
19
|
+
bottom: 0;
|
20
|
+
left: 0;
|
21
|
+
text-align: center;
|
22
|
+
background-color: $modal-backdrop-bg;
|
23
|
+
transition: $transition-fade;
|
24
|
+
opacity: 0;
|
25
|
+
z-index: 10;
|
26
|
+
@include hover { opacity: 1; }
|
27
|
+
> .card-gallery-img-overlay-text {
|
28
|
+
position: absolute;
|
29
|
+
top: 50%;
|
30
|
+
left: 50%;
|
31
|
+
width: 100%;
|
32
|
+
transform: translate(-50%, -50%);
|
33
|
+
}
|
34
|
+
}
|
35
|
+
}
|
36
|
+
|
37
|
+
// Gallery card body styles
|
38
|
+
.card-body { z-index: 10; }
|
39
|
+
.badge-highlight {
|
40
|
+
position: absolute;
|
41
|
+
top: -($card-spacer-y * .5);
|
42
|
+
left: $card-spacer-y;
|
43
|
+
}
|
44
|
+
}
|
45
|
+
|
46
|
+
|
data/app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_interaction.scss
CHANGED
@@ -1,2 +1,2 @@
|
|
1
1
|
// Sort
|
2
|
-
[
|
2
|
+
.ui-sortable-handle, [data-sortable="handle"] { cursor: move; }
|
@@ -0,0 +1,24 @@
|
|
1
|
+
// Powers the readmore.js plugin
|
2
|
+
.expandable,
|
3
|
+
.readmore-js-section {
|
4
|
+
position: relative;
|
5
|
+
z-index: 10;
|
6
|
+
transition: $transition-collapse;
|
7
|
+
&.readmore-js-collapsed { overflow: hidden; }
|
8
|
+
&.readmore-js-expanded { overflow: visible; }
|
9
|
+
}
|
10
|
+
.readmore-js-collapsed:after {
|
11
|
+
position: absolute;
|
12
|
+
bottom: 0;
|
13
|
+
left: 0;
|
14
|
+
width: 100%;
|
15
|
+
height: ($spacer * 1.5);
|
16
|
+
@include gradient-y(transparentize($white, 1), transparentize($white, 0));
|
17
|
+
content: '';
|
18
|
+
z-index: 20;
|
19
|
+
}
|
20
|
+
.readmore-js-toggle {
|
21
|
+
padding-top: ($spacer * .5);
|
22
|
+
padding-bottom: ($spacer * .5);
|
23
|
+
z-index: 30;
|
24
|
+
}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
// Shared sorting styles
|
2
|
+
.slat, .option {
|
3
|
+
&.ui-sortable-placeholder {
|
4
|
+
visibility: visible !important;
|
5
|
+
background: theme-color("light");
|
6
|
+
border: $border-width dashed $border-color;
|
7
|
+
}
|
8
|
+
&.ui-sortable-helper { opacity: .5; }
|
9
|
+
}
|
10
|
+
// Slat
|
11
|
+
.slat {
|
12
|
+
&.ui-sortable-placeholder {
|
13
|
+
+ .slat { border-top: none; }
|
14
|
+
+ &.ui-sortable-helper {
|
15
|
+
border-top-style: dashed;
|
16
|
+
+ &.slat { border-top: none; }
|
17
|
+
}
|
18
|
+
}
|
19
|
+
&.ui-sortable-helper {
|
20
|
+
border-top: none;
|
21
|
+
border-top: none;
|
22
|
+
+ &.ui-sortable-placeholder { border-top: $border-width dashed $border-color; }
|
23
|
+
}
|
24
|
+
}
|
25
|
+
|
26
|
+
// Sortable options (used on form fields for checkboxes/radios/select options)
|
27
|
+
.option {
|
28
|
+
&.ui-sortable-placeholder { margin-bottom: ($spacer * .25); }
|
29
|
+
}
|
@@ -6,11 +6,11 @@
|
|
6
6
|
&:hover, &:active { text-decoration: none; }
|
7
7
|
}
|
8
8
|
}
|
9
|
-
.alert-success a:not(.btn) { color: $success; }
|
10
|
-
.alert-info a:not(.btn) { color: $info; }
|
11
|
-
.alert-warning a:not(.btn) { color: $warning; }
|
9
|
+
.alert-success a:not(.btn) { color: $success !important; }
|
10
|
+
.alert-info a:not(.btn) { color: $info !important; }
|
11
|
+
.alert-warning a:not(.btn) { color: $warning !important; }
|
12
12
|
.alert-danger, .alert-error {
|
13
|
-
a:not(.btn) { color: $danger; }
|
13
|
+
a:not(.btn) { color: $danger !important; }
|
14
14
|
}
|
15
15
|
.alert-gray, .alert-notice,
|
16
16
|
.alert-light, .alert-dark {
|
@@ -13,6 +13,10 @@
|
|
13
13
|
.card-footer { border-top: none; }
|
14
14
|
|
15
15
|
// Card image
|
16
|
-
.card-img-overlay {
|
16
|
+
.card-img-overlay {
|
17
|
+
top: auto; // makes the overlay gradient and container "stick" to bottom of parent container
|
18
|
+
min-height: ($spacer * 2);
|
19
|
+
@include gradient-y(transparentize($black, 1), transparentize($black, .5));
|
20
|
+
}
|
17
21
|
|
18
22
|
.card-img { @include border-radius(0); }
|
@@ -3,6 +3,7 @@
|
|
3
3
|
// Base class takes care of all the key behavioral aspects.
|
4
4
|
|
5
5
|
.custom-control {
|
6
|
+
padding-left: 0;
|
6
7
|
.custom-control-input {
|
7
8
|
&:checked {
|
8
9
|
~ .custom-control-label,
|
@@ -10,18 +11,26 @@
|
|
10
11
|
}
|
11
12
|
&:focus:not(:checked) ~ .custom-control-label::before { border-color: $input-border-color; }
|
12
13
|
}
|
14
|
+
+ .custom-control:not(.custom-control-inline) { margin-top: ($spacer * .25); }
|
13
15
|
}
|
16
|
+
.custom-checkbox, .custom-radio { min-width: $custom-control-gutter + $custom-control-indicator-size; } // sets minimum width to have space even if custom-control-label isn't there
|
14
17
|
|
15
18
|
// Custom control indicators
|
16
19
|
//
|
17
20
|
// Build the custom controls out of pseudo-elements.
|
18
21
|
|
19
22
|
.custom-control-label {
|
23
|
+
padding-left: $custom-control-gutter + $custom-control-indicator-size;
|
24
|
+
min-width: $custom-control-gutter + $custom-control-indicator-size;
|
25
|
+
min-height: $custom-control-indicator-size;
|
20
26
|
font-weight: $font-weight-normal;
|
21
27
|
cursor: pointer;
|
22
28
|
|
23
29
|
// Background-color and icon
|
24
|
-
&::before, &::after {
|
30
|
+
&::before, &::after {
|
31
|
+
top: .3rem;
|
32
|
+
left: 0;
|
33
|
+
}
|
25
34
|
&::before { border: $border-width solid $border-color; }
|
26
35
|
&::after { cursor: pointer; }
|
27
36
|
}
|
@@ -41,6 +50,9 @@
|
|
41
50
|
//
|
42
51
|
|
43
52
|
.custom-select {
|
53
|
+
display: block;
|
54
|
+
width: auto;
|
55
|
+
max-width: 100%;
|
44
56
|
font-weight: $btn-font-weight;
|
45
57
|
cursor: pointer;
|
46
58
|
box-shadow: none;
|
@@ -97,7 +109,10 @@
|
|
97
109
|
// Tweak a few things for switches
|
98
110
|
|
99
111
|
.custom-switch {
|
112
|
+
padding-left: 0;
|
100
113
|
.custom-control-label {
|
114
|
+
padding-left: $custom-switch-width + $custom-control-gutter;
|
115
|
+
&::before, &::after { left: 0; }
|
101
116
|
&::before {
|
102
117
|
padding-left: 28px;
|
103
118
|
font-size: 12px;
|
@@ -109,7 +124,6 @@
|
|
109
124
|
}
|
110
125
|
&::after {
|
111
126
|
top: 0;
|
112
|
-
left: -($custom-switch-width + $custom-control-gutter);
|
113
127
|
background-color: $white;
|
114
128
|
border: $border-width solid $border-color;
|
115
129
|
border-radius: 50%;
|
@@ -1,11 +1,13 @@
|
|
1
1
|
// Our custom styles
|
2
2
|
@import 'custom/avatar';
|
3
3
|
@import 'custom/device_preview';
|
4
|
+
@import 'custom/icon';
|
4
5
|
@import 'custom/illustration';
|
5
6
|
@import 'custom/mobile';
|
6
7
|
@import 'custom/nav_step';
|
7
8
|
@import 'custom/redactor';
|
8
9
|
@import 'custom/social_share';
|
10
|
+
@import 'custom/skeleton';
|
9
11
|
@import 'custom/slat';
|
10
12
|
@import 'custom/ticket';
|
11
13
|
@import 'custom/tile';
|
@@ -9,6 +9,7 @@
|
|
9
9
|
cursor: default;
|
10
10
|
pointer-events: none;
|
11
11
|
}
|
12
|
+
&:not(.text-danger) { color: inherit !important; }
|
12
13
|
}
|
13
14
|
|
14
15
|
|
@@ -21,7 +22,14 @@
|
|
21
22
|
|
22
23
|
|
23
24
|
// Sizing
|
24
|
-
.dropdown-menu-md { min-width: ($spacer *
|
25
|
+
.dropdown-menu-md, .dropdown-menu-lg { min-width: ($spacer * 10); }
|
26
|
+
.dropdown-menu-md {
|
27
|
+
@include media-breakpoint-up(sm) { min-width: ($spacer * 12); }
|
28
|
+
}
|
29
|
+
.dropdown-menu-lg {
|
30
|
+
@include media-breakpoint-up(sm) { min-width: ($spacer * 24); }
|
31
|
+
}
|
32
|
+
|
25
33
|
|
26
34
|
|
27
35
|
// Styles for wider "My Tools" dropdown in top nav
|
@@ -0,0 +1,34 @@
|
|
1
|
+
// Custom icon styles
|
2
|
+
// icons shouldn't be larger than the h1 font-size. use illustrations for larger visuals.
|
3
|
+
// don't use icon circles for icons smaller than icon-circle-sm size. use just an icon.
|
4
|
+
.icon-circle {
|
5
|
+
position: relative;
|
6
|
+
display: inline-flex;
|
7
|
+
align-items: center;
|
8
|
+
justify-content: center;
|
9
|
+
vertical-align: middle;
|
10
|
+
width: ($spacer * 1.5);
|
11
|
+
height: ($spacer * 1.5);
|
12
|
+
font-size: $font-size-base;
|
13
|
+
background-color: $border-color;
|
14
|
+
border-radius: 50%;
|
15
|
+
&.icon-circle-outline {
|
16
|
+
background-color: $white;
|
17
|
+
border: $border-width solid $border-color;
|
18
|
+
}
|
19
|
+
&.icon-circle-sm {
|
20
|
+
width: $spacer;
|
21
|
+
height: $spacer;
|
22
|
+
font-size: $font-size-sm;
|
23
|
+
}
|
24
|
+
&.icon-circle-lg {
|
25
|
+
width: ($spacer * 2);
|
26
|
+
height: ($spacer * 2);
|
27
|
+
font-size: $font-size-lg;
|
28
|
+
}
|
29
|
+
&.icon-circle-xl {
|
30
|
+
width: ($spacer * 3);
|
31
|
+
height: ($spacer * 3);
|
32
|
+
font-size: $h1-font-size;
|
33
|
+
}
|
34
|
+
}
|
@@ -0,0 +1,50 @@
|
|
1
|
+
// Skeleton styles for placheholder content
|
2
|
+
.skeleton-avatar, .skeleton-heading, .skeleton-paragraph {
|
3
|
+
display: inline-block;
|
4
|
+
margin-bottom: ($spacer * .5);
|
5
|
+
background-color: $border-color;
|
6
|
+
overflow: hidden;
|
7
|
+
&::after {
|
8
|
+
position: absolute;
|
9
|
+
top: 0;
|
10
|
+
right: 0;
|
11
|
+
bottom: 0;
|
12
|
+
left: 0;
|
13
|
+
width: 100%;
|
14
|
+
height: 100%;
|
15
|
+
background-color: $body-bg;
|
16
|
+
animation: skeleton-sheen 1s linear infinite alternate;
|
17
|
+
content: '';
|
18
|
+
|
19
|
+
// any skeleton element inside a container with the the .loaded class removes the sheen animation.
|
20
|
+
.loaded & {
|
21
|
+
background-color: transparent;
|
22
|
+
animation: none;
|
23
|
+
}
|
24
|
+
}
|
25
|
+
}
|
26
|
+
.skeleton-avatar {
|
27
|
+
width: ($spacer * 1.5);
|
28
|
+
height: ($spacer * 1.5);
|
29
|
+
border-radius: 50%;
|
30
|
+
}
|
31
|
+
.skeleton-heading {
|
32
|
+
width: 70%;
|
33
|
+
height: $spacer;
|
34
|
+
border-radius: ($spacer * .5);
|
35
|
+
&:nth-child(even) { width: 45%; }
|
36
|
+
}
|
37
|
+
.skeleton-paragraph {
|
38
|
+
width: 100%;
|
39
|
+
height: ($spacer * .5);
|
40
|
+
border-radius: ($spacer * .25);
|
41
|
+
&:nth-child(2n+1) { width: 90%; }
|
42
|
+
&:nth-child(3n+1) { width: 75%; }
|
43
|
+
&:nth-child(4n+1) { width: 80%; }
|
44
|
+
}
|
45
|
+
|
46
|
+
// Sheen animation used on skeleton elements
|
47
|
+
@keyframes skeleton-sheen {
|
48
|
+
0% { opacity: .45; }
|
49
|
+
to { opacity: .9; }
|
50
|
+
}
|
@@ -8,7 +8,7 @@ $slat-actions-lg-width: 108px;
|
|
8
8
|
flex-flow: column nowrap;
|
9
9
|
|
10
10
|
// Nowrap version -- used when the goal is to have all slat-item columns on the same line in smaller screens
|
11
|
-
|
11
|
+
&:not(.slats-nowrap) { // noting the :not() psuedo-class meaning all slats that don't have this class get these styles
|
12
12
|
.slat-body {
|
13
13
|
@include media-breakpoint-down(sm) { flex-direction: column; }
|
14
14
|
}
|
@@ -37,23 +37,8 @@ $slat-actions-lg-width: 108px;
|
|
37
37
|
padding-bottom: ($spacer * 1.5);
|
38
38
|
}
|
39
39
|
|
40
|
-
//
|
41
|
-
&.
|
42
|
-
visibility: visible !important;
|
43
|
-
background: theme-color("light");
|
44
|
-
border: $border-width dashed $border-color;
|
45
|
-
+ .slat { border-top: none; }
|
46
|
-
+ &.ui-sortable-helper {
|
47
|
-
border-top-style: dashed;
|
48
|
-
+ &.slat { border-top: none; }
|
49
|
-
}
|
50
|
-
}
|
51
|
-
&.ui-sortable-helper {
|
52
|
-
border-top: none;
|
53
|
-
opacity: .5;
|
54
|
-
border-top: none;
|
55
|
-
+ &.ui-sortable-placeholder { border-top: $border-width dashed $border-color; }
|
56
|
-
}
|
40
|
+
// Status
|
41
|
+
&.pending { background-color: #fff5e0; }
|
57
42
|
}
|
58
43
|
|
59
44
|
|
@@ -22,13 +22,13 @@
|
|
22
22
|
display: block;
|
23
23
|
margin-right: auto;
|
24
24
|
margin-left: auto;
|
25
|
-
@include media-breakpoint-down(sm) { padding-bottom: $grid-gutter-width; }
|
26
|
-
@include media-breakpoint-up(sm) { padding-bottom: ($grid-gutter-width *
|
25
|
+
@include media-breakpoint-down(sm) { padding-bottom: ($grid-gutter-width * 1.5); }
|
26
|
+
@include media-breakpoint-up(sm) { padding-bottom: ($grid-gutter-width * 2); }
|
27
27
|
&:last-child { padding-bottom: 0; }
|
28
28
|
+ .tile-section {
|
29
29
|
border-top: $border-width solid $border-color;
|
30
|
-
@include media-breakpoint-down(sm) { padding-top: $grid-gutter-width; }
|
31
|
-
@include media-breakpoint-up(sm) { padding-top: ($grid-gutter-width *
|
30
|
+
@include media-breakpoint-down(sm) { padding-top: ($grid-gutter-width * 1.5); }
|
31
|
+
@include media-breakpoint-up(sm) { padding-top: ($grid-gutter-width * 2); }
|
32
32
|
}
|
33
33
|
}
|
34
34
|
|
@@ -28,7 +28,11 @@ module NfgUi
|
|
28
28
|
content_tag(:div, class: modal_dialog_css_classes, role: 'document') do
|
29
29
|
content_tag(:div, class: 'modal-content') do
|
30
30
|
capture do
|
31
|
-
|
31
|
+
# Optionally, leave title nil
|
32
|
+
# and the title / dismiss functionality is left out.
|
33
|
+
if title.present?
|
34
|
+
concat(NfgUi::Bootstrap::Components::ModalHeader.new({ title: title }, view_context).render)
|
35
|
+
end
|
32
36
|
if render_in_body
|
33
37
|
concat(NfgUi::Bootstrap::Components::ModalBody.new({ body: (block_given? ? yield : body) }, view_context).render)
|
34
38
|
else
|
@@ -10,7 +10,14 @@ module NfgUi
|
|
10
10
|
include NfgUi::Components::Utilities::Renderable
|
11
11
|
include NfgUi::Components::Utilities::Titleable
|
12
12
|
|
13
|
+
include NfgUi::Components::Traits::Modal
|
13
14
|
include NfgUi::Components::Traits::Size
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def resized?
|
19
|
+
[:sm, :lg, :xl, :cover].include?(size)
|
20
|
+
end
|
14
21
|
end
|
15
22
|
end
|
16
23
|
end
|
data/lib/nfg_ui/version.rb
CHANGED
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.11.
|
4
|
+
version: 0.11.8
|
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: 2020-10
|
12
|
+
date: 2020-12-10 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: bootstrap
|
@@ -407,6 +407,7 @@ files:
|
|
407
407
|
- app/assets/stylesheets/nfg_ui/network_for_good/admin/color_variations/nfg_theme/_reboot.scss
|
408
408
|
- app/assets/stylesheets/nfg_ui/network_for_good/admin/color_variations/nfg_theme/_type.scss
|
409
409
|
- app/assets/stylesheets/nfg_ui/network_for_good/admin/color_variations/nfg_theme/_utilities.scss
|
410
|
+
- app/assets/stylesheets/nfg_ui/network_for_good/admin/color_variations/nfg_theme/custom/_activity_feed.scss
|
410
411
|
- app/assets/stylesheets/nfg_ui/network_for_good/admin/color_variations/nfg_theme/custom/_icons.scss
|
411
412
|
- app/assets/stylesheets/nfg_ui/network_for_good/admin/color_variations/nfg_theme/custom/_nav_step.scss
|
412
413
|
- app/assets/stylesheets/nfg_ui/network_for_good/admin/color_variations/plugins/_datetimepicker.scss
|
@@ -419,6 +420,8 @@ files:
|
|
419
420
|
- app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/_nav.scss
|
420
421
|
- app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/_navbar.scss
|
421
422
|
- app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/_tables.scss
|
423
|
+
- app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_activity_feed.scss
|
424
|
+
- app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_bee.scss
|
422
425
|
- app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_builder_layout.scss
|
423
426
|
- app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_campaign_card.scss
|
424
427
|
- app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_campaign_preview.scss
|
@@ -427,11 +430,14 @@ files:
|
|
427
430
|
- app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_custom_receipt_language.scss
|
428
431
|
- app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_email_preview.scss
|
429
432
|
- app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_free_trial.scss
|
433
|
+
- app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_gallery.scss
|
430
434
|
- app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_icomoon.scss
|
431
435
|
- app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_interaction.scss
|
432
436
|
- app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_overlay_blocker.scss
|
433
437
|
- app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_page_header.scss
|
438
|
+
- app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_readmore.scss
|
434
439
|
- app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_share_dropdown.scss
|
440
|
+
- app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_sortable.scss
|
435
441
|
- app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_status_indicator.scss
|
436
442
|
- app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_tile.scss
|
437
443
|
- app/assets/stylesheets/nfg_ui/network_for_good/admin/nfg_theme/custom/_video_countdown.scss
|
@@ -475,6 +481,7 @@ files:
|
|
475
481
|
- app/assets/stylesheets/nfg_ui/network_for_good/core/legacy_browser_support/nfg_theme/_utilities.scss
|
476
482
|
- app/assets/stylesheets/nfg_ui/network_for_good/core/legacy_browser_support/nfg_theme/custom/_avatar.scss
|
477
483
|
- app/assets/stylesheets/nfg_ui/network_for_good/core/legacy_browser_support/nfg_theme/custom/_everyday_giving.scss
|
484
|
+
- app/assets/stylesheets/nfg_ui/network_for_good/core/legacy_browser_support/nfg_theme/custom/_icon.scss
|
478
485
|
- app/assets/stylesheets/nfg_ui/network_for_good/core/legacy_browser_support/nfg_theme/custom/_nav_step.scss
|
479
486
|
- app/assets/stylesheets/nfg_ui/network_for_good/core/legacy_browser_support/nfg_theme/custom/_slat.scss
|
480
487
|
- app/assets/stylesheets/nfg_ui/network_for_good/core/legacy_browser_support/nfg_theme/custom/_video_countdown.scss
|
@@ -485,6 +492,7 @@ files:
|
|
485
492
|
- app/assets/stylesheets/nfg_ui/network_for_good/core/legacy_browser_support/nfg_theme/utilities/_flex.scss
|
486
493
|
- app/assets/stylesheets/nfg_ui/network_for_good/core/legacy_browser_support/plugins/_sticky_div.scss
|
487
494
|
- app/assets/stylesheets/nfg_ui/network_for_good/core/nfg_theme/_alert.scss
|
495
|
+
- app/assets/stylesheets/nfg_ui/network_for_good/core/nfg_theme/_badge.scss
|
488
496
|
- app/assets/stylesheets/nfg_ui/network_for_good/core/nfg_theme/_button-group.scss
|
489
497
|
- app/assets/stylesheets/nfg_ui/network_for_good/core/nfg_theme/_buttons.scss
|
490
498
|
- app/assets/stylesheets/nfg_ui/network_for_good/core/nfg_theme/_card.scss
|
@@ -500,10 +508,12 @@ files:
|
|
500
508
|
- app/assets/stylesheets/nfg_ui/network_for_good/core/nfg_theme/_type.scss
|
501
509
|
- app/assets/stylesheets/nfg_ui/network_for_good/core/nfg_theme/custom/_avatar.scss
|
502
510
|
- app/assets/stylesheets/nfg_ui/network_for_good/core/nfg_theme/custom/_device_preview.scss
|
511
|
+
- app/assets/stylesheets/nfg_ui/network_for_good/core/nfg_theme/custom/_icon.scss
|
503
512
|
- app/assets/stylesheets/nfg_ui/network_for_good/core/nfg_theme/custom/_illustration.scss
|
504
513
|
- app/assets/stylesheets/nfg_ui/network_for_good/core/nfg_theme/custom/_mobile.scss
|
505
514
|
- app/assets/stylesheets/nfg_ui/network_for_good/core/nfg_theme/custom/_nav_step.scss
|
506
515
|
- app/assets/stylesheets/nfg_ui/network_for_good/core/nfg_theme/custom/_redactor.scss
|
516
|
+
- app/assets/stylesheets/nfg_ui/network_for_good/core/nfg_theme/custom/_skeleton.scss
|
507
517
|
- app/assets/stylesheets/nfg_ui/network_for_good/core/nfg_theme/custom/_slat.scss
|
508
518
|
- app/assets/stylesheets/nfg_ui/network_for_good/core/nfg_theme/custom/_social_share.scss
|
509
519
|
- app/assets/stylesheets/nfg_ui/network_for_good/core/nfg_theme/custom/_ticket.scss
|
@@ -740,6 +750,7 @@ files:
|
|
740
750
|
- lib/nfg_ui/components/traits/dropdown_toggle.rb
|
741
751
|
- lib/nfg_ui/components/traits/icon.rb
|
742
752
|
- lib/nfg_ui/components/traits/list_group.rb
|
753
|
+
- lib/nfg_ui/components/traits/modal.rb
|
743
754
|
- lib/nfg_ui/components/traits/muted.rb
|
744
755
|
- lib/nfg_ui/components/traits/nav.rb
|
745
756
|
- lib/nfg_ui/components/traits/nav_item.rb
|