sfc-utils 1.3.25 → 1.3.28

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.
Files changed (81) hide show
  1. package/README.md +4 -2
  2. package/accountswap.js +3 -2
  3. package/copy/c2p_sheet.js +7 -7
  4. package/css/nav2.less +1 -1
  5. package/example/.prettierrc +5 -0
  6. package/example/README.md +8 -0
  7. package/example/gatsby-config.js +131 -0
  8. package/example/gatsby-node.js +45 -0
  9. package/example/package-lock.json +13418 -0
  10. package/example/package.json +71 -0
  11. package/example/project-config.json +42 -0
  12. package/example/src/components/layout.js +236 -0
  13. package/example/src/components/sfc/ad.js +47 -0
  14. package/example/src/components/sfc/ai2html/ai2html_template.ai +1369 -4
  15. package/example/src/components/sfc/button.js +40 -0
  16. package/example/src/components/sfc/byline.js +42 -0
  17. package/example/src/components/sfc/component-helpers/customhooks.js +17 -0
  18. package/example/src/components/sfc/component-helpers/datehelpers.js +55 -0
  19. package/example/src/components/sfc/component-helpers/newsletterhelpers.js +89 -0
  20. package/example/src/components/sfc/component-helpers/requesthelpers.js +7 -0
  21. package/example/src/components/sfc/component-helpers/scrolldownhelpers.js +11 -0
  22. package/example/src/components/sfc/component-helpers/utilfunctions.js +68 -0
  23. package/example/src/components/sfc/creditline.js +35 -0
  24. package/example/src/components/sfc/credits.js +17 -0
  25. package/example/src/components/sfc/creditssection.js +47 -0
  26. package/example/src/components/sfc/dropcap.js +15 -0
  27. package/example/src/components/sfc/footer.js +36 -0
  28. package/example/src/components/sfc/geocoder.js +148 -0
  29. package/example/src/components/sfc/misccredit.js +17 -0
  30. package/example/src/components/sfc/navtop.js +121 -0
  31. package/example/src/components/sfc/newsletter.js +157 -0
  32. package/example/src/components/sfc/relatedlink.js +23 -0
  33. package/example/src/components/sfc/relatedrow.js +23 -0
  34. package/example/src/components/sfc/relatedsection.js +27 -0
  35. package/example/src/components/sfc/safelink.js +86 -0
  36. package/example/src/components/sfc/scrolldown.js +22 -0
  37. package/example/src/components/sfc/sharebuttons.js +93 -0
  38. package/example/src/components/sfc/topper.js +88 -0
  39. package/example/src/components/sfc/video.js +74 -0
  40. package/example/src/components/sfc/wcmimage.js +131 -0
  41. package/example/src/data/sfc/images/react.gif +0 -0
  42. package/example/src/data/sfc/related_links.json +17 -0
  43. package/example/src/html.js +41 -0
  44. package/example/src/pages/index.js +143 -0
  45. package/example/src/styles/defaults.less +99 -0
  46. package/example/src/styles/footer.less +345 -0
  47. package/example/src/styles/modules/ad.module.less +21 -0
  48. package/example/src/styles/modules/ai2html.module.less +19 -0
  49. package/example/src/styles/modules/button.module.less +94 -0
  50. package/example/src/styles/modules/byline.module.less +11 -0
  51. package/example/src/styles/modules/creditline.module.less +12 -0
  52. package/example/src/styles/modules/credits.module.less +7 -0
  53. package/example/src/styles/modules/creditssection.module.less +17 -0
  54. package/example/src/styles/modules/dropcap.module.less +18 -0
  55. package/example/src/styles/modules/geocoder.module.less +79 -0
  56. package/example/src/styles/modules/newsletter.module.less +147 -0
  57. package/example/src/styles/modules/relatedlink.module.less +28 -0
  58. package/example/src/styles/modules/relatedrow.module.less +8 -0
  59. package/example/src/styles/modules/relatedsection.module.less +19 -0
  60. package/example/src/styles/modules/scrolldown.module.less +31 -0
  61. package/example/src/styles/modules/share.module.less +22 -0
  62. package/example/src/styles/modules/topper.module.less +63 -0
  63. package/example/src/styles/modules/video.module.less +27 -0
  64. package/example/src/styles/modules/wcmimage.module.less +20 -0
  65. package/example/src/styles/nav.less +187 -0
  66. package/example/src/styles/project.less +1 -0
  67. package/example/src/styles/reset.css +95 -0
  68. package/example/src/styles/seed.less +5 -0
  69. package/example/src/styles/typography.css +168 -0
  70. package/example/src/styles/values.less +74 -0
  71. package/example/static/manifest.webmanifest +1 -0
  72. package/example/tasks/create-c2p-sheet.js +6 -0
  73. package/example/tasks/deploy-addon.py +14 -0
  74. package/example/tasks/google-docs.js +16 -0
  75. package/example/tasks/google-sheets.js +17 -0
  76. package/example/tasks/node-helpers.js +81 -0
  77. package/example/tasks/post-build.sh +7 -0
  78. package/example/tasks/pre-build.sh +18 -0
  79. package/example/tempsettings.js +28 -0
  80. package/package.json +1 -1
  81. package/settings.js +1 -1
@@ -0,0 +1,147 @@
1
+ @import (less) '../values.less';
2
+
3
+ // newsletter signup ----------------------------------------------
4
+
5
+ .container {
6
+ max-width: 96vw;
7
+ padding: 0;
8
+ margin: @step-3 auto;
9
+ @media (orientation: landscape) {
10
+ max-width: 80ch;
11
+ }
12
+ }
13
+
14
+ .wrapper {
15
+ padding-bottom: calc(@step--2 / 2);
16
+ margin-top: @step--2;
17
+
18
+ margin-bottom: @step-0;
19
+ padding: @step--2 @step-1;
20
+ border-radius: 5px;
21
+ border: 1px solid #eaeaea;
22
+ border-top: 5px solid @brand;
23
+ box-shadow: 0 2px 3px 0 rgba(0, 0, 0, 0.08);
24
+ overflow: hidden;
25
+ }
26
+
27
+ .output-text {
28
+ text-align: right;
29
+
30
+ p {
31
+ margin: calc(@step--2 / 2) 0;
32
+ font-family: @sans-book;
33
+ font-size: @step--2;
34
+
35
+ &.red {
36
+ color: @red;
37
+ }
38
+ }
39
+ }
40
+
41
+ .content-wrapper {
42
+ display: flex;
43
+ justify-content: space-between;
44
+ height: 40px;
45
+
46
+ @media @tablet {
47
+ display: block;
48
+ height: auto;
49
+ margin: 0 auto;
50
+ }
51
+ }
52
+
53
+ .content {
54
+ display: flex;
55
+ align-items: center;
56
+
57
+ .headshot {
58
+ height: 40px;
59
+ width: 40px;
60
+ margin-right: @step--1;
61
+ flex-shrink: 0;
62
+
63
+ img {
64
+ width: 100%;
65
+ border-style: none;
66
+ display: block;
67
+ }
68
+ }
69
+ .newsletter-headline {
70
+ width: 100%;
71
+ max-width: 100%;
72
+ font-family: @sans-med;
73
+ font-size: @step-0;
74
+ line-height: 1.2;
75
+ margin: 0 0 calc(@step--2 / 4) 0;
76
+ text-align: left;
77
+ }
78
+ }
79
+
80
+ .form-wrapper {
81
+ display: block;
82
+ }
83
+
84
+ .input-wrapper {
85
+ margin-top: calc(@step--2 / 4);
86
+ display: flex;
87
+ align-items: flex-end;
88
+ justify-content: space-between;
89
+
90
+ input {
91
+ width: 220px;
92
+ font-size: @step--1;
93
+ height: 24px;
94
+ border: none;
95
+ padding: 0;
96
+ border-bottom: 1px solid #979797;
97
+ font-family: 'National Light', 'Source Sans Pro', Arial, Helvetica,
98
+ sans-serif;
99
+ line-height: 1.5;
100
+ margin-right: @step-0;
101
+ overflow: visible;
102
+
103
+ background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAkCAYAAADo6zjiAAAAAXNSR…XF8MaClwaeROWRA7nk+tUnyzGvZrKg0/40gdME/t8EvgG0/NOS6v9NHQAAAABJRU5ErkJggg==);
104
+ background-repeat: no-repeat;
105
+ background-attachment: scroll;
106
+ background-size: 16px 18px;
107
+ background-position: 98% 50%;
108
+ cursor: pointer;
109
+ @media @tablet {
110
+ width: calc(100% - 135px);
111
+ }
112
+ }
113
+ }
114
+
115
+ .submit-button {
116
+ height: 30px;
117
+ width: 88px;
118
+ padding: calc(@step--2 / 2);
119
+ font-size: @step--1;
120
+ border: none;
121
+ border-radius: 3px;
122
+ background-color: #1b1b1b;
123
+ color: #fff;
124
+ font-family: 'National Medium', 'Source Sans Pro', Arial, Helvetica,
125
+ sans-serif;
126
+ text-transform: uppercase;
127
+ text-align: center;
128
+ line-height: 1;
129
+ letter-spacing: 0.05em;
130
+ cursor: pointer;
131
+
132
+ img {
133
+ margin: auto;
134
+ }
135
+ }
136
+
137
+ .disclaimer {
138
+ max-width: 100%;
139
+ color: #777;
140
+ font-family: @sans-book;
141
+ font-size: @step--2;
142
+ line-height: 1.2;
143
+ margin: @step--1 0 0 0;
144
+ padding-top: @step--2;
145
+ border-top: 0.5px solid #e3e3e3;
146
+ max-width: 100%;
147
+ }
@@ -0,0 +1,28 @@
1
+ @import (less) "../values.less";
2
+
3
+ .container {
4
+ width: 100%;
5
+ padding: 0 @step--1;
6
+ @media (orientation: portrait) {
7
+ margin-bottom: @step-0;
8
+ }
9
+ }
10
+
11
+ .image {
12
+ &:hover {
13
+ opacity: .8;
14
+ }
15
+
16
+ @media (orientation: portrait) {
17
+ width: 100%;
18
+ }
19
+ }
20
+
21
+ .text {
22
+ margin: 0;
23
+ padding: 0;
24
+ font-size: @step--1;
25
+ @media (orientation: portrait) {
26
+ max-width: 100%;
27
+ }
28
+ }
@@ -0,0 +1,8 @@
1
+ @import (less) "../values.less";
2
+
3
+ .links {
4
+ display: flex;
5
+ @media @tablet {
6
+ flex-direction: column;
7
+ }
8
+ }
@@ -0,0 +1,19 @@
1
+ @import (less) "../values.less";
2
+
3
+ .section {
4
+ padding: @step--2 0;
5
+ border-top: 1px solid @gray;
6
+ border-bottom: 1px solid @gray;
7
+ max-width: 960px;
8
+ margin: @step-3 auto;
9
+ }
10
+
11
+ .hed {
12
+ font-family: @sans-med;
13
+ font-size: @step-1;
14
+ color: @dark-gray;
15
+ text-transform: uppercase;
16
+ letter-spacing: 0.05em;
17
+ margin: @step-0 auto;
18
+ text-align: center;
19
+ }
@@ -0,0 +1,31 @@
1
+ @import (less) "../values.less";
2
+
3
+ .arrow {
4
+ position: relative;
5
+ color: @white;
6
+ width: 50px;
7
+ bottom: 12vw;
8
+ left: 50%;
9
+ height: 0;
10
+ transform: translate(-50%, 0%);
11
+ cursor: pointer;
12
+ animation: bounce 2s ease-in-out infinite;
13
+
14
+ div {
15
+ margin: 0 auto;
16
+ }
17
+ }
18
+
19
+ @keyframes bounce {
20
+ 0% {
21
+ bottom: 12vw;
22
+ }
23
+
24
+ 66% {
25
+ bottom: 14vw;
26
+ }
27
+
28
+ 100% {
29
+ bottom: 12vw;
30
+ }
31
+ }
@@ -0,0 +1,22 @@
1
+ @import (less) '../values.less';
2
+
3
+ .wrapper {
4
+ display: flex;
5
+ align-items: center;
6
+ margin: 15px 0;
7
+ }
8
+
9
+ .link {
10
+ width: 30px;
11
+ height: 30px;
12
+ margin-right: 15px;
13
+ }
14
+
15
+ .svg {
16
+ width: 100%;
17
+ color: @white;
18
+
19
+ &:hover {
20
+ color: @brand;
21
+ }
22
+ }
@@ -0,0 +1,63 @@
1
+ @import (less) "../values.less";
2
+
3
+ .header {
4
+ width: 100%;
5
+ padding: 0 @step--1;
6
+ margin: @step-3 0;
7
+ height: auto;
8
+ }
9
+
10
+ .text-container {
11
+ margin: @step-0 auto;
12
+ font-kerning: normal;
13
+ font-variant-ligatures: normal;
14
+ text-rendering: geometricPrecision;
15
+ max-width: 900px;
16
+ }
17
+
18
+ .hed, .dek {
19
+ font-family: @hed;
20
+ font-size: @step-5;
21
+ margin-bottom: @step--2;
22
+ max-width: 900px;
23
+ }
24
+
25
+ .dek {
26
+ font-family: @serif-book;
27
+ font-size: @step-2;
28
+ }
29
+
30
+ .dateby {
31
+ font-size: @step-0;
32
+ font-family: @sans-light;
33
+ color: @black;
34
+ font-variant-numeric: lining-nums;
35
+ }
36
+
37
+ .figure {
38
+ position: relative;
39
+ width: 100%;
40
+ max-width: 100%;
41
+ padding: 0;
42
+ margin: 0;
43
+ }
44
+
45
+ .topcap {
46
+ margin-top: calc(@step--2 / 2);
47
+ font-family: @sans-book;
48
+ color: @dark-gray;
49
+ padding: 0 @step--1;
50
+ line-height: 1.2;
51
+ }
52
+
53
+ .topcred {
54
+ color: @gray;
55
+ }
56
+
57
+ .image {
58
+ display: block;
59
+ width: 100%;
60
+ height: auto;
61
+ margin: 0;
62
+ padding: 0;
63
+ }
@@ -0,0 +1,27 @@
1
+ @import (less) '../values.less';
2
+
3
+ .responsive-container {
4
+ padding-bottom: 56.25%;
5
+ overflow: hidden;
6
+ position: relative;
7
+ height: 0;
8
+ }
9
+
10
+ .default {
11
+ display: block;
12
+ margin: 0;
13
+ padding: 0;
14
+ width: 100%;
15
+ height: auto;
16
+ }
17
+
18
+ .c-fig-cap {
19
+ margin-top: calc(@step--2 / 2);
20
+ font-family: @sans-book;
21
+ color: @dark-gray;
22
+ line-height: 1.2;
23
+ }
24
+
25
+ .c-fig-cred {
26
+ color: @gray;
27
+ }
@@ -0,0 +1,20 @@
1
+ @import (less) '../values';
2
+
3
+ .c-img {
4
+ display: block;
5
+ margin: 0;
6
+ padding: 0;
7
+ width: 100%;
8
+ height: auto;
9
+ }
10
+
11
+ .c-fig-cap {
12
+ margin-top: calc(@step--2 / 2);
13
+ font-family: @sans-book;
14
+ color: @dark-gray;
15
+ line-height: 1.2;
16
+ }
17
+
18
+ .c-fig-cred {
19
+ color: @gray;
20
+ }
@@ -0,0 +1,187 @@
1
+ // sticky navigation bar-------------------------------
2
+ @import (less) "values";
3
+
4
+ .topper-nav-container {
5
+ height: 37px;
6
+ background-color: black;
7
+ width: 100%;
8
+ display: flex;
9
+ justify-content: space-between;
10
+ }
11
+
12
+ .headroom--pinned,
13
+ .headroom--unfixed {
14
+ box-shadow: 0 1px 1px rgba(0, 0, 0, 0.25), 0 2px 2px rgba(0, 0, 0, 0.2),
15
+ 0 4px 4px rgba(0, 0, 0, 0.15), 0 8px 8px rgba(0, 0, 0, 0.1),
16
+ 0 16px 16px rgba(0, 0, 0, 0.05);
17
+ }
18
+
19
+ .topper-nav-desk-logo,
20
+ .topper-nav-mobile-logo {
21
+ max-height: 20px;
22
+ margin-left: 8px;
23
+ margin-right: 2px;
24
+ }
25
+
26
+ .topper-nav-desk-logo {
27
+ @media (max-width: 490px) {
28
+ display: none;
29
+ }
30
+ }
31
+
32
+ .topper-nav-mobile-logo {
33
+ display: none;
34
+
35
+ @media (max-width: 490px) {
36
+ display: block;
37
+ }
38
+ }
39
+
40
+ .topper-nav-left {
41
+ display: flex;
42
+ flex: 75;
43
+ justify-content: flex-start;
44
+ align-items: center;
45
+ }
46
+
47
+ .topper-nav-right {
48
+ display: none;
49
+ flex: 25;
50
+ justify-content: flex-end;
51
+ align-items: center;
52
+ }
53
+
54
+ // Hide in the app
55
+ .not-app .topper-nav-right {
56
+ display: flex;
57
+ }
58
+
59
+ .topper-nav-right .sub-box {
60
+ margin-right: 10px;
61
+ color: @brand;
62
+ border: 1px solid @brand;
63
+ border-radius: 3px;
64
+ padding: 3px 8px;
65
+ font-size: 14px;
66
+ text-decoration: none;
67
+ font-family: @sans-light;
68
+ text-transform: uppercase;
69
+ letter-spacing: 0.05em;
70
+
71
+ &:hover {
72
+ background: @brand;
73
+ color: white;
74
+
75
+ & > div:hover {
76
+ color: white;
77
+ }
78
+ }
79
+ }
80
+
81
+ .topper-nav-social {
82
+ margin:0 12px;
83
+ padding-top: 4px;
84
+
85
+ #twitter-icon {
86
+ color: @brand;
87
+ }
88
+ a :hover {
89
+ color: white;
90
+ }
91
+ }
92
+
93
+ .topper-nav-container.invert {
94
+ background-color: #fff;
95
+
96
+ a :hover, .topper-nav-title:hover {
97
+ color: #999;
98
+ }
99
+ }
100
+
101
+ .topper-nav-title {
102
+ color: @brand;
103
+ font-family: @sans-book;
104
+ font-size: @step--1;
105
+ padding-left: 15px;
106
+ text-transform: uppercase;
107
+ text-decoration: none;
108
+ letter-spacing: 0.08em;
109
+ font-smooth: auto;
110
+ -webkit-font-smoothing: auto;
111
+ -moz-osx-font-smoothing: auto;
112
+
113
+ &:hover {
114
+ color: @white;
115
+ }
116
+ }
117
+
118
+ #topper-nav-twitter-icon,
119
+ #topper-nav-mail-icon,
120
+ #topper-nav-facebook-icon {
121
+ color: @brand;
122
+
123
+ &:hover {
124
+ color: @white;
125
+ }
126
+ }
127
+
128
+ /* Configure the nav array */
129
+
130
+ .headroom li, .headroom ul {
131
+ font-family: @sans-book;
132
+ text-transform: uppercase;
133
+ font-size: 14px;
134
+ letter-spacing: .05em;
135
+ width: 100%;
136
+ margin: 0;
137
+ }
138
+
139
+ .headroom ul#subnav {
140
+ position: absolute;
141
+ top: 37px;
142
+ padding: 0;
143
+ border-top: 2px solid #ccc;
144
+ border-right: 2px solid #ccc;
145
+ width: 300px;
146
+ display: none;
147
+
148
+ @media @tablet {
149
+ border-right: none;
150
+ width: 100%;
151
+ }
152
+ }
153
+
154
+ .headroom .show-subnav ul#subnav {
155
+ display: block;
156
+ }
157
+
158
+ .headroom.headroom--unpinned .show-subnav ul#subnav {
159
+ display: none;
160
+ }
161
+
162
+ .headroom li {
163
+ display: block;
164
+ background-color: #fff;
165
+ border-bottom: 2px solid #ccc;
166
+
167
+ a {
168
+ padding: 10px;
169
+ display: inline-block;
170
+ width: 100%;
171
+ }
172
+
173
+ .arrow-bullet {
174
+ font-size: 10px;
175
+ }
176
+ }
177
+
178
+ .dropdown-icon {
179
+ margin-left: 5px;
180
+ display: inline-block;
181
+ transition: transform 0.2s;
182
+ }
183
+
184
+ .show-subnav .dropdown-icon {
185
+ transform: rotate(180deg);
186
+ }
187
+
@@ -0,0 +1 @@
1
+ // Project CSS/Less goes below
@@ -0,0 +1,95 @@
1
+ html {
2
+ /* remove 300ms click delay in Safari, the worst */
3
+ touch-action: manipulation;
4
+ font-size: 100%;
5
+ }
6
+
7
+ /* //accessibility styles from https://github.com/mike-engel/a11y-css-reset/ */
8
+ *::after:focus:not(:focus-visible),
9
+ *::before:focus:not(:focus-visible),
10
+ *:focus:not(:focus-visible) {
11
+ outline: none;
12
+ }
13
+
14
+ /* prettier-ignore */
15
+ @media(prefers-reduced-motion: reduce) {
16
+ *,
17
+ *::after,
18
+ *::before {
19
+ transition: none !important;
20
+ animation: none !important;
21
+ scroll-behavior: auto !important;
22
+ }
23
+ }
24
+
25
+ /* https://hankchizljaw.com/wrote/a-modern-css-reset/ */
26
+ /* Box sizing rules */
27
+ *,
28
+ *::before,
29
+ *::after {
30
+ box-sizing: border-box;
31
+ /* Safari, AKA still the worst */
32
+ -webkit-tap-highlight-color: transparent;
33
+ }
34
+
35
+ /* Remove default padding */
36
+ ul[class],
37
+ ol[class] {
38
+ padding: 0;
39
+ }
40
+
41
+ /* Remove default margin */
42
+ body,
43
+ h1,
44
+ h2,
45
+ h3,
46
+ h4,
47
+ p,
48
+ ul[class],
49
+ ol[class],
50
+ li,
51
+ figure,
52
+ figcaption,
53
+ blockquote,
54
+ dl,
55
+ dd {
56
+ margin: 0;
57
+ }
58
+
59
+ /* Set core body defaults */
60
+ body {
61
+ min-height: 100%;
62
+ scroll-behavior: smooth;
63
+ text-rendering: optimizeSpeed;
64
+ line-height: 1.5;
65
+ }
66
+
67
+ /* Remove list styles on ul, ol elements with a class attribute */
68
+ ul[class],
69
+ ol[class] {
70
+ list-style: none;
71
+ }
72
+
73
+ /* A elements that don't have a class get default styles */
74
+ a:not([class]) {
75
+ text-decoration-skip-ink: auto;
76
+ }
77
+
78
+ /* Make images easier to work with */
79
+ img {
80
+ max-width: 100%;
81
+ display: block;
82
+ }
83
+
84
+ /* Natural flow and rhythm in articles by default */
85
+ article > * + * {
86
+ margin-top: 1em;
87
+ }
88
+
89
+ /* Inherit fonts for inputs and buttons */
90
+ input,
91
+ button,
92
+ textarea,
93
+ select {
94
+ font: inherit;
95
+ }
@@ -0,0 +1,5 @@
1
+ @import (css) "reset.css";
2
+ @import (css) "typography.css";
3
+ @import (less) "values";
4
+ @import (less) "defaults";
5
+ @import (less) "project";