demo_mode 1.5.0 → 2.0.0
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/app/views/layouts/demo_mode/application.html.erb +4 -2
- data/lib/demo_mode/config.rb +3 -3
- data/lib/demo_mode/engine.rb +3 -12
- data/lib/demo_mode/persona.rb +1 -1
- data/lib/demo_mode/version.rb +1 -1
- data/lib/demo_mode.rb +6 -1
- metadata +25 -33
- data/app/assets/images/demo_mode/icon--tophat.png +0 -0
- data/app/assets/images/demo_mode/icon--user.png +0 -0
- data/app/assets/images/demo_mode/icon--users.png +0 -0
- data/app/assets/images/demo_mode/loader.png +0 -0
- data/app/assets/javascript/demo_mode/application.js +0 -119
- data/app/assets/stylesheets/demo_mode/application.css +0 -5
- data/app/assets/stylesheets/demo_mode/default.css +0 -318
- data/app/assets/stylesheets/demo_mode/normalize.css +0 -349
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bc6c5fc3a85da7d4bba46cd2fb0efd5f0240517141ba17f3a47cb72ea32031c4
|
4
|
+
data.tar.gz: e61184a01792692be62a0e27673a9e88bb1a743accb838305b918da8483ea6d8
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cea23c3da3a9ae476f2455cd7023a5534a6c3e679ea874adcf478d7b653ddde242031055beb8aa5a00674e8a8fe71859082a0a135686520335826844932e99ff
|
7
|
+
data.tar.gz: a30fcfa55028534a93b5f04f133b1276a5eaf3a03699202c14a8038914f409783218d5d3336292c6bba99a3ad19b5b19819531b08f820be471293dd213dd2379
|
@@ -5,8 +5,10 @@
|
|
5
5
|
<meta charset="UTF-8">
|
6
6
|
<title>Demo Mode</title>
|
7
7
|
<%= favicon_link_tag '/favicon.ico' %>
|
8
|
-
|
9
|
-
|
8
|
+
<link rel="stylesheet" href="/assets/demo_mode/vendor/normalize-v8.0.1.css">
|
9
|
+
<link rel="stylesheet" href="/assets/demo_mode/demo_mode.css?v=<%= DemoMode::VERSION %>">
|
10
|
+
<script src="/assets/demo_mode/vendor/typed-v2.1.0.js"></script>
|
11
|
+
<script src="/assets/demo_mode/demo_mode.js?v=<%= DemoMode::VERSION %>"></script>
|
10
12
|
<%= csrf_meta_tags %>
|
11
13
|
<meta name="viewport" content="width=device-width, initial-scale=1.0 maximum-scale=1.0, user-scalable=0">
|
12
14
|
</head>
|
data/lib/demo_mode/config.rb
CHANGED
@@ -39,7 +39,7 @@ module DemoMode
|
|
39
39
|
if block
|
40
40
|
@loader = block
|
41
41
|
else
|
42
|
-
@loader ||= ->(_) { image_tag(
|
42
|
+
@loader ||= ->(_) { image_tag("/assets/demo_mode/loader.png?v=#{VERSION}") }
|
43
43
|
end
|
44
44
|
end
|
45
45
|
|
@@ -47,9 +47,9 @@ module DemoMode
|
|
47
47
|
if block
|
48
48
|
@icon = block
|
49
49
|
elsif name_or_path
|
50
|
-
@path =
|
50
|
+
@path = ICONS.fetch(name_or_path, name_or_path)
|
51
51
|
else
|
52
|
-
@path ||=
|
52
|
+
@path ||= ICONS.fetch(:user)
|
53
53
|
path = @path
|
54
54
|
@icon ||= ->(_) { image_tag path }
|
55
55
|
end
|
data/lib/demo_mode/engine.rb
CHANGED
@@ -1,7 +1,5 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
|
-
require 'sprockets/railtie'
|
4
|
-
|
5
3
|
module DemoMode
|
6
4
|
class Engine < ::Rails::Engine
|
7
5
|
isolate_namespace DemoMode
|
@@ -12,23 +10,16 @@ module DemoMode
|
|
12
10
|
load 'demo_mode/tasks.rb'
|
13
11
|
end
|
14
12
|
|
15
|
-
initializer 'demo_mode' do |
|
13
|
+
initializer 'demo_mode' do |app|
|
16
14
|
require 'zeitwerk/version'
|
17
15
|
raise 'DemoMode only supports Zeitwerk::VERSION >= 2.4.2' unless Gem::Version.new(Zeitwerk::VERSION) >= Gem::Version.new('2.4.2')
|
18
16
|
|
19
17
|
Rails.autoloaders.main.on_load(DemoMode.app_base_controller_name) do
|
20
18
|
DemoMode.app_base_controller_name.constantize.include Demoable
|
21
19
|
end
|
22
|
-
end
|
23
|
-
end
|
24
20
|
|
25
|
-
|
26
|
-
|
27
|
-
app.config.assets.precompile << 'demo_mode/application.js'
|
28
|
-
app.config.assets.precompile << 'demo_mode/icon--user.png'
|
29
|
-
app.config.assets.precompile << 'demo_mode/icon--users.png'
|
30
|
-
app.config.assets.precompile << 'demo_mode/icon--tophat.png'
|
31
|
-
app.config.assets.precompile << 'demo_mode/loader.png'
|
21
|
+
app.middleware.insert_before(ActionDispatch::Static, ActionDispatch::Static, "#{root}/public")
|
22
|
+
end
|
32
23
|
end
|
33
24
|
end
|
34
25
|
end
|
data/lib/demo_mode/persona.rb
CHANGED
@@ -15,7 +15,7 @@ module DemoMode
|
|
15
15
|
if block
|
16
16
|
@icon = block
|
17
17
|
elsif name_or_path
|
18
|
-
@path =
|
18
|
+
@path = ICONS.fetch(name_or_path, name_or_path)
|
19
19
|
path = @path
|
20
20
|
@icon = ->(_) { image_tag path }
|
21
21
|
else
|
data/lib/demo_mode/version.rb
CHANGED
data/lib/demo_mode.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
|
3
3
|
require 'rails'
|
4
|
-
require 'typedjs-rails'
|
5
4
|
require 'demo_mode/version'
|
6
5
|
require 'demo_mode/clever_sequence'
|
7
6
|
require 'demo_mode/config'
|
@@ -9,6 +8,12 @@ require 'demo_mode/engine'
|
|
9
8
|
require 'demo_mode/persona'
|
10
9
|
|
11
10
|
module DemoMode
|
11
|
+
ICONS = {
|
12
|
+
tophat: "/assets/demo_mode/icon--tophat.png?v=#{VERSION}",
|
13
|
+
user: "/assets/demo_mode/icon--user.png?v=#{VERSION}",
|
14
|
+
users: "/assets/demo_mode/icon--users.png?v=#{VERSION}",
|
15
|
+
}.freeze
|
16
|
+
|
12
17
|
class << self
|
13
18
|
delegate(*Config.configurations, to: :configuration)
|
14
19
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: demo_mode
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nathan Griffith
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2025-
|
11
|
+
date: 2025-02-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: actionpack
|
@@ -125,27 +125,33 @@ dependencies:
|
|
125
125
|
- !ruby/object:Gem::Version
|
126
126
|
version: '8.1'
|
127
127
|
- !ruby/object:Gem::Dependency
|
128
|
-
name:
|
128
|
+
name: actionmailer
|
129
129
|
requirement: !ruby/object:Gem::Requirement
|
130
130
|
requirements:
|
131
131
|
- - ">="
|
132
132
|
- !ruby/object:Gem::Version
|
133
|
-
version: '
|
134
|
-
|
133
|
+
version: '6.1'
|
134
|
+
- - "<"
|
135
|
+
- !ruby/object:Gem::Version
|
136
|
+
version: '8.1'
|
137
|
+
type: :development
|
135
138
|
prerelease: false
|
136
139
|
version_requirements: !ruby/object:Gem::Requirement
|
137
140
|
requirements:
|
138
141
|
- - ">="
|
139
142
|
- !ruby/object:Gem::Version
|
140
|
-
version: '
|
143
|
+
version: '6.1'
|
144
|
+
- - "<"
|
145
|
+
- !ruby/object:Gem::Version
|
146
|
+
version: '8.1'
|
141
147
|
- !ruby/object:Gem::Dependency
|
142
|
-
name:
|
148
|
+
name: appraisal
|
143
149
|
requirement: !ruby/object:Gem::Requirement
|
144
150
|
requirements:
|
145
151
|
- - ">="
|
146
152
|
- !ruby/object:Gem::Version
|
147
153
|
version: '0'
|
148
|
-
type: :
|
154
|
+
type: :development
|
149
155
|
prerelease: false
|
150
156
|
version_requirements: !ruby/object:Gem::Requirement
|
151
157
|
requirements:
|
@@ -153,27 +159,21 @@ dependencies:
|
|
153
159
|
- !ruby/object:Gem::Version
|
154
160
|
version: '0'
|
155
161
|
- !ruby/object:Gem::Dependency
|
156
|
-
name:
|
162
|
+
name: betterlint
|
157
163
|
requirement: !ruby/object:Gem::Requirement
|
158
164
|
requirements:
|
159
165
|
- - ">="
|
160
166
|
- !ruby/object:Gem::Version
|
161
|
-
version: '
|
162
|
-
- - "<"
|
163
|
-
- !ruby/object:Gem::Version
|
164
|
-
version: '8.1'
|
167
|
+
version: '0'
|
165
168
|
type: :development
|
166
169
|
prerelease: false
|
167
170
|
version_requirements: !ruby/object:Gem::Requirement
|
168
171
|
requirements:
|
169
172
|
- - ">="
|
170
173
|
- !ruby/object:Gem::Version
|
171
|
-
version: '
|
172
|
-
- - "<"
|
173
|
-
- !ruby/object:Gem::Version
|
174
|
-
version: '8.1'
|
174
|
+
version: '0'
|
175
175
|
- !ruby/object:Gem::Dependency
|
176
|
-
name:
|
176
|
+
name: capybara
|
177
177
|
requirement: !ruby/object:Gem::Requirement
|
178
178
|
requirements:
|
179
179
|
- - ">="
|
@@ -187,7 +187,7 @@ dependencies:
|
|
187
187
|
- !ruby/object:Gem::Version
|
188
188
|
version: '0'
|
189
189
|
- !ruby/object:Gem::Dependency
|
190
|
-
name:
|
190
|
+
name: combustion
|
191
191
|
requirement: !ruby/object:Gem::Requirement
|
192
192
|
requirements:
|
193
193
|
- - ">="
|
@@ -201,7 +201,7 @@ dependencies:
|
|
201
201
|
- !ruby/object:Gem::Version
|
202
202
|
version: '0'
|
203
203
|
- !ruby/object:Gem::Dependency
|
204
|
-
name:
|
204
|
+
name: cuprite
|
205
205
|
requirement: !ruby/object:Gem::Requirement
|
206
206
|
requirements:
|
207
207
|
- - ">="
|
@@ -215,7 +215,7 @@ dependencies:
|
|
215
215
|
- !ruby/object:Gem::Version
|
216
216
|
version: '0'
|
217
217
|
- !ruby/object:Gem::Dependency
|
218
|
-
name:
|
218
|
+
name: factory_bot
|
219
219
|
requirement: !ruby/object:Gem::Requirement
|
220
220
|
requirements:
|
221
221
|
- - ">="
|
@@ -229,7 +229,7 @@ dependencies:
|
|
229
229
|
- !ruby/object:Gem::Version
|
230
230
|
version: '0'
|
231
231
|
- !ruby/object:Gem::Dependency
|
232
|
-
name:
|
232
|
+
name: net-smtp
|
233
233
|
requirement: !ruby/object:Gem::Requirement
|
234
234
|
requirements:
|
235
235
|
- - ">="
|
@@ -243,7 +243,7 @@ dependencies:
|
|
243
243
|
- !ruby/object:Gem::Version
|
244
244
|
version: '0'
|
245
245
|
- !ruby/object:Gem::Dependency
|
246
|
-
name:
|
246
|
+
name: rspec-rails
|
247
247
|
requirement: !ruby/object:Gem::Requirement
|
248
248
|
requirements:
|
249
249
|
- - ">="
|
@@ -257,7 +257,7 @@ dependencies:
|
|
257
257
|
- !ruby/object:Gem::Version
|
258
258
|
version: '0'
|
259
259
|
- !ruby/object:Gem::Dependency
|
260
|
-
name:
|
260
|
+
name: sprockets-rails
|
261
261
|
requirement: !ruby/object:Gem::Requirement
|
262
262
|
requirements:
|
263
263
|
- - ">="
|
@@ -271,7 +271,7 @@ dependencies:
|
|
271
271
|
- !ruby/object:Gem::Version
|
272
272
|
version: '0'
|
273
273
|
- !ruby/object:Gem::Dependency
|
274
|
-
name:
|
274
|
+
name: sqlite3
|
275
275
|
requirement: !ruby/object:Gem::Requirement
|
276
276
|
requirements:
|
277
277
|
- - ">="
|
@@ -323,14 +323,6 @@ files:
|
|
323
323
|
- LICENSE
|
324
324
|
- README.md
|
325
325
|
- Rakefile
|
326
|
-
- app/assets/images/demo_mode/icon--tophat.png
|
327
|
-
- app/assets/images/demo_mode/icon--user.png
|
328
|
-
- app/assets/images/demo_mode/icon--users.png
|
329
|
-
- app/assets/images/demo_mode/loader.png
|
330
|
-
- app/assets/javascript/demo_mode/application.js
|
331
|
-
- app/assets/stylesheets/demo_mode/application.css
|
332
|
-
- app/assets/stylesheets/demo_mode/default.css
|
333
|
-
- app/assets/stylesheets/demo_mode/normalize.css
|
334
326
|
- app/controllers/concerns/demo_mode/demoable.rb
|
335
327
|
- app/controllers/demo_mode/application_controller.rb
|
336
328
|
- app/controllers/demo_mode/sessions_controller.rb
|
Binary file
|
Binary file
|
Binary file
|
Binary file
|
@@ -1,119 +0,0 @@
|
|
1
|
-
//= require typed
|
2
|
-
|
3
|
-
(function(document, performance, location) {
|
4
|
-
function* getJSON(url) {
|
5
|
-
while(true) { yield fetch(url).then(resp => resp.json()); }
|
6
|
-
}
|
7
|
-
|
8
|
-
function pollURL(url, minInterval, success, func) {
|
9
|
-
const then = performance.now();
|
10
|
-
if(!minInterval) { minInterval = 1000 }
|
11
|
-
if(!func) { func = getJSON(url) }
|
12
|
-
|
13
|
-
func.next().value.then((resp) => {
|
14
|
-
if(resp.processing) {
|
15
|
-
setTimeout(
|
16
|
-
() => pollURL(url, minInterval, success, func),
|
17
|
-
Math.max(0, minInterval - (performance.now() - then))
|
18
|
-
);
|
19
|
-
} else {
|
20
|
-
success();
|
21
|
-
}
|
22
|
-
});
|
23
|
-
}
|
24
|
-
|
25
|
-
document.addEventListener('DOMContentLoaded', (event) => {
|
26
|
-
[...document.querySelectorAll('[data-polling-refresh-url]')].forEach((elem) => {
|
27
|
-
pollURL(
|
28
|
-
elem.getAttribute('data-polling-refresh-url'),
|
29
|
-
elem.getAttribute('data-polling-refresh-interval') * 1000,
|
30
|
-
() => location.reload()
|
31
|
-
);
|
32
|
-
});
|
33
|
-
});
|
34
|
-
}(document, performance, location));
|
35
|
-
|
36
|
-
(function() {
|
37
|
-
var TableFilter = (function() {
|
38
|
-
var input;
|
39
|
-
var inputValue;
|
40
|
-
|
41
|
-
function onInputEvent(e) {
|
42
|
-
input = e.target;
|
43
|
-
inputValue = input.value.toLowerCase().replace(/[^0-9a-zA-Z ]/g, '');
|
44
|
-
updateTable()
|
45
|
-
updateHistory()
|
46
|
-
}
|
47
|
-
|
48
|
-
function updateTable() {
|
49
|
-
var table = document.querySelector(`.${input.dataset.table}`);
|
50
|
-
if (table) {
|
51
|
-
Array.prototype.forEach.call(table.tBodies, function(tbody) {
|
52
|
-
Array.prototype.forEach.call(tbody.rows, filter);
|
53
|
-
});
|
54
|
-
} else {
|
55
|
-
alert('TableFilter cannot find its table')
|
56
|
-
}
|
57
|
-
}
|
58
|
-
|
59
|
-
function updateHistory() {
|
60
|
-
var searchParams = new URLSearchParams(window.location.search)
|
61
|
-
searchParams.set("search", inputValue);
|
62
|
-
var newRelativePathQuery = window.location.pathname + '?' + searchParams.toString();
|
63
|
-
history.pushState(null, '', newRelativePathQuery);
|
64
|
-
}
|
65
|
-
|
66
|
-
function filter(row) {
|
67
|
-
var text = row.textContent.toLowerCase().replace(/[^0-9a-zA-Z ]/g,'');
|
68
|
-
row.style.display = text.indexOf(inputValue) === -1 ? 'none' : 'table-row';
|
69
|
-
}
|
70
|
-
|
71
|
-
function debounce(func, threshold) {
|
72
|
-
var timeout;
|
73
|
-
|
74
|
-
return function debounced() {
|
75
|
-
var obj = this;
|
76
|
-
var args = arguments;
|
77
|
-
|
78
|
-
function delayed() {
|
79
|
-
func.apply(obj, args);
|
80
|
-
timeout = null;
|
81
|
-
};
|
82
|
-
|
83
|
-
if (timeout) {
|
84
|
-
clearTimeout(timeout);
|
85
|
-
}
|
86
|
-
timeout = setTimeout(delayed, threshold);
|
87
|
-
};
|
88
|
-
}
|
89
|
-
|
90
|
-
return {
|
91
|
-
init: function() {
|
92
|
-
var input = document.querySelector('input[data-behavior=table-filter]');
|
93
|
-
if (!input) return;
|
94
|
-
|
95
|
-
input.oninput = debounce(onInputEvent, 250);
|
96
|
-
var urlParams = new URLSearchParams(window.location.search);
|
97
|
-
var search = urlParams.get('search');
|
98
|
-
if (search) {
|
99
|
-
input.value = search
|
100
|
-
input.dispatchEvent(new InputEvent('input', { data: search }));
|
101
|
-
}
|
102
|
-
|
103
|
-
window.addEventListener('popstate', (event) => {
|
104
|
-
var urlParams = new URLSearchParams(window.location.search);
|
105
|
-
var search = urlParams.get('search');
|
106
|
-
if (search) {
|
107
|
-
input.value = search;
|
108
|
-
inputValue = search;
|
109
|
-
updateTable()
|
110
|
-
}
|
111
|
-
});
|
112
|
-
}
|
113
|
-
};
|
114
|
-
})();
|
115
|
-
|
116
|
-
document.addEventListener('DOMContentLoaded', (event) => {
|
117
|
-
TableFilter.init();
|
118
|
-
});
|
119
|
-
})();
|
@@ -1,318 +0,0 @@
|
|
1
|
-
:root {
|
2
|
-
--font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
|
3
|
-
--primary-color: #228be6;
|
4
|
-
}
|
5
|
-
|
6
|
-
*,
|
7
|
-
*:before,
|
8
|
-
*:after {
|
9
|
-
box-sizing: inherit;
|
10
|
-
-webkit-box-sizing: inherit;
|
11
|
-
box-sizing: border-box;
|
12
|
-
-webkit-box-sizing: border-box;
|
13
|
-
}
|
14
|
-
|
15
|
-
html {
|
16
|
-
color: #333;
|
17
|
-
font-size: 10px;
|
18
|
-
line-height: 1.15;
|
19
|
-
font-family: var(--font-family);
|
20
|
-
font-smoothing: antialiased;
|
21
|
-
-webkit-font-smoothing: antialiased;
|
22
|
-
osx-font-smoothing: grayscale;
|
23
|
-
-moz-osx-font-smoothing: grayscale;
|
24
|
-
text-size-adjust: 100%;
|
25
|
-
-ms-text-size-adjust: 100%;
|
26
|
-
-webkit-text-size-adjust: 100%;
|
27
|
-
}
|
28
|
-
|
29
|
-
body {
|
30
|
-
max-width: 1264px;
|
31
|
-
height: 100vh;
|
32
|
-
display: grid;
|
33
|
-
grid-template-rows: auto 1fr auto;
|
34
|
-
margin: 0 auto;
|
35
|
-
padding: 0 32px;
|
36
|
-
font-size: 1.6rem;
|
37
|
-
line-height: 2.4rem;
|
38
|
-
}
|
39
|
-
|
40
|
-
header,
|
41
|
-
main,
|
42
|
-
footer {
|
43
|
-
width: 100%;
|
44
|
-
margin: 0 auto;
|
45
|
-
padding: 0;
|
46
|
-
}
|
47
|
-
|
48
|
-
article {
|
49
|
-
padding-top: 3.2rem;
|
50
|
-
}
|
51
|
-
section {
|
52
|
-
margin-bottom: 3.2rem;
|
53
|
-
}
|
54
|
-
|
55
|
-
h1,
|
56
|
-
h2,
|
57
|
-
h3,
|
58
|
-
h4 {
|
59
|
-
color: #222;
|
60
|
-
margin-top: 0;
|
61
|
-
}
|
62
|
-
h1:last-child, h2:last-child, h3:last-child, h4:last-child {
|
63
|
-
margin-bottom: 0;
|
64
|
-
}
|
65
|
-
|
66
|
-
a {
|
67
|
-
color: var(--primary-color);
|
68
|
-
cursor: pointer;
|
69
|
-
text-decoration: none;
|
70
|
-
}
|
71
|
-
a:hover,
|
72
|
-
a:focus,
|
73
|
-
a:active {
|
74
|
-
text-decoration: underline;
|
75
|
-
}
|
76
|
-
|
77
|
-
hr {
|
78
|
-
border: 0;
|
79
|
-
width: 100%;
|
80
|
-
border-top: 1px solid #e3e3e3;
|
81
|
-
margin: 1.4rem 0;
|
82
|
-
}
|
83
|
-
|
84
|
-
header {
|
85
|
-
display: grid;
|
86
|
-
grid-template-columns: auto 1fr auto;
|
87
|
-
gap: 1.6rem;
|
88
|
-
align-items: center;
|
89
|
-
height: 6.4rem;
|
90
|
-
}
|
91
|
-
|
92
|
-
header small {
|
93
|
-
padding-left: 1.6rem;
|
94
|
-
border-left: 1px solid #e3e3e3;
|
95
|
-
color: #666;
|
96
|
-
font-size: 1.2rem;
|
97
|
-
line-height: 1.6rem;
|
98
|
-
}
|
99
|
-
|
100
|
-
.personas-callout {
|
101
|
-
display: grid;
|
102
|
-
grid-template-columns: repeat(auto-fill, minmax(20em, 1fr));
|
103
|
-
gap: 3rem;
|
104
|
-
}
|
105
|
-
|
106
|
-
.personas-callout section {
|
107
|
-
display: grid;
|
108
|
-
grid-template-rows: auto auto auto 1fr auto;
|
109
|
-
gap: 1rem;
|
110
|
-
justify-items: center;
|
111
|
-
text-align: center;
|
112
|
-
border: 3px solid #e3e3e3;
|
113
|
-
padding: 3.2rem;
|
114
|
-
margin-bottom: 2rem;
|
115
|
-
}
|
116
|
-
.personas-callout section:hover {
|
117
|
-
border-color: #cdcdcd;
|
118
|
-
cursor: pointer;
|
119
|
-
text-decoration: none;
|
120
|
-
}
|
121
|
-
.personas-callout figure {
|
122
|
-
width: 7em;
|
123
|
-
}
|
124
|
-
.personas-callout img, svg {
|
125
|
-
max-width: 100%;
|
126
|
-
}
|
127
|
-
.personas-callout h2,
|
128
|
-
.personas-callout select,
|
129
|
-
.personas-callout input {
|
130
|
-
margin: 0;
|
131
|
-
}
|
132
|
-
.personas-callout ul {
|
133
|
-
margin: 0 0 0.5rem 0;
|
134
|
-
padding: 0;
|
135
|
-
list-style-type: none;
|
136
|
-
list-style-position: outside;
|
137
|
-
}
|
138
|
-
.personas-callout li {
|
139
|
-
color: #666;
|
140
|
-
font-size: 1.4rem;
|
141
|
-
line-height: 2rem;
|
142
|
-
}
|
143
|
-
|
144
|
-
form,
|
145
|
-
input,
|
146
|
-
select,
|
147
|
-
textarea,
|
148
|
-
button {
|
149
|
-
display: block;
|
150
|
-
width: 100%;
|
151
|
-
max-width: 40rem;
|
152
|
-
}
|
153
|
-
|
154
|
-
input,
|
155
|
-
select,
|
156
|
-
textarea,
|
157
|
-
button {
|
158
|
-
border: 1px solid #444;
|
159
|
-
border-radius: 0.3rem;
|
160
|
-
background-color: white;
|
161
|
-
font-family: inherit;
|
162
|
-
padding: 1.1rem 1.6rem;
|
163
|
-
font-size: 1.6rem;
|
164
|
-
line-height: 2.4rem;
|
165
|
-
margin-bottom: 2rem;
|
166
|
-
color: #222;
|
167
|
-
font-weight: 500;
|
168
|
-
}
|
169
|
-
|
170
|
-
select {
|
171
|
-
padding-right: 3.5rem;
|
172
|
-
appearance: none;
|
173
|
-
background-image: url("data:image/svg+xml;charset=UTF-8,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3e%3cpolyline points='6 9 12 15 18 9'%3e%3c/polyline%3e%3c/svg%3e");
|
174
|
-
background-repeat: no-repeat;
|
175
|
-
background-position: right 1rem center;
|
176
|
-
background-size: 1em;
|
177
|
-
}
|
178
|
-
|
179
|
-
input[type="submit"],
|
180
|
-
button,
|
181
|
-
a.button {
|
182
|
-
font-size: 1.6rem;
|
183
|
-
line-height: 2rem;
|
184
|
-
font-weight: 600;
|
185
|
-
color: white;
|
186
|
-
text-align: center;
|
187
|
-
background-color: var(--primary-color);
|
188
|
-
border: 0;
|
189
|
-
cursor: pointer;
|
190
|
-
padding: 1.4rem 2.4rem;
|
191
|
-
margin: 0.8rem 0 0.8rem;
|
192
|
-
width: auto;
|
193
|
-
display: inline-block;
|
194
|
-
border-radius: 0.3rem;
|
195
|
-
}
|
196
|
-
input[type="submit"]:hover,
|
197
|
-
button:hover,
|
198
|
-
a.button:hover {
|
199
|
-
background-color: var(--primary-color);
|
200
|
-
filter: brightness(0.85);
|
201
|
-
text-decoration: none;
|
202
|
-
}
|
203
|
-
input[type="submit"]:focus,
|
204
|
-
button:focus,
|
205
|
-
a.button:focus {
|
206
|
-
outline: 2px solid rgba(29, 106, 229, 0.5);
|
207
|
-
outline-offset: 1px;
|
208
|
-
text-decoration: underline;
|
209
|
-
}
|
210
|
-
|
211
|
-
input[type="submit"].secondary,
|
212
|
-
button.secondary,
|
213
|
-
a.button.secondary {
|
214
|
-
color: #212121;
|
215
|
-
background-color: #ffffff;
|
216
|
-
border: 0.1rem solid #a3a3a3;
|
217
|
-
padding: 1.3rem 2.3rem;
|
218
|
-
padding-top: 1.3rem;
|
219
|
-
padding-bottom: 1.3rem;
|
220
|
-
padding-right: 2.4rem;
|
221
|
-
line-height: 2rem;
|
222
|
-
}
|
223
|
-
input[type="submit"].secondary:hover,
|
224
|
-
button.secondary:hover,
|
225
|
-
a.button.secondary:hover {
|
226
|
-
filter: none;
|
227
|
-
background-color: #e3e3e3;
|
228
|
-
color: #212121;
|
229
|
-
}
|
230
|
-
|
231
|
-
input[type="submit"].small,
|
232
|
-
button.small,
|
233
|
-
a.button.small {
|
234
|
-
font-size: 1.4rem;
|
235
|
-
line-height: 2rem;
|
236
|
-
margin-top: 0;
|
237
|
-
padding: 0.5rem 2.3rem;
|
238
|
-
}
|
239
|
-
|
240
|
-
label {
|
241
|
-
font-size: 1.6rem;
|
242
|
-
line-height: 2.4rem;
|
243
|
-
font-weight: 500;
|
244
|
-
color: #222;
|
245
|
-
display: block;
|
246
|
-
margin-bottom: 0.8rem;
|
247
|
-
}
|
248
|
-
|
249
|
-
fieldset {
|
250
|
-
background-color: white;
|
251
|
-
border: 1px solid #e3e3e3;
|
252
|
-
border-radius: 0.4rem;
|
253
|
-
position: relative;
|
254
|
-
width: 100%;
|
255
|
-
max-width: 400px;
|
256
|
-
margin: 0 auto;
|
257
|
-
padding: 2.4rem;
|
258
|
-
}
|
259
|
-
|
260
|
-
legend {
|
261
|
-
float: left;
|
262
|
-
width: 100%;
|
263
|
-
margin-bottom: 1.5em;
|
264
|
-
padding-bottom: 1em;
|
265
|
-
border-bottom: 1px solid #e3e3e3;
|
266
|
-
}
|
267
|
-
|
268
|
-
table {
|
269
|
-
font-size: 1.6rem;
|
270
|
-
line-height: 2.4rem;
|
271
|
-
border-collapse: collapse;
|
272
|
-
color: #363636;
|
273
|
-
width: 100%;
|
274
|
-
overflow-x: auto;
|
275
|
-
vertical-align: middle;
|
276
|
-
}
|
277
|
-
|
278
|
-
table select,
|
279
|
-
table input,
|
280
|
-
table input[type="submit"],
|
281
|
-
table button {
|
282
|
-
white-space: nowrap;
|
283
|
-
}
|
284
|
-
table select {
|
285
|
-
font-size: 1.4rem;
|
286
|
-
line-height: 2rem;
|
287
|
-
padding: 0.5rem 2.3rem;
|
288
|
-
}
|
289
|
-
|
290
|
-
th {
|
291
|
-
font-size: 1.6rem;
|
292
|
-
line-height: 2.4rem;
|
293
|
-
font-weight: 500;
|
294
|
-
color: #222;
|
295
|
-
}
|
296
|
-
|
297
|
-
th,
|
298
|
-
td {
|
299
|
-
padding: 1.6rem;
|
300
|
-
min-width: 8rem;
|
301
|
-
border-bottom: 1px solid #eee;
|
302
|
-
text-align: left;
|
303
|
-
white-space: normal;
|
304
|
-
}
|
305
|
-
|
306
|
-
.middle {
|
307
|
-
height: 100%;
|
308
|
-
display: grid;
|
309
|
-
grid-template-rows: auto auto;
|
310
|
-
justify-items: center;
|
311
|
-
align-items: center;
|
312
|
-
align-content: space-evenly;
|
313
|
-
gap: 1rem;
|
314
|
-
}
|
315
|
-
|
316
|
-
.center {
|
317
|
-
text-align: center;
|
318
|
-
}
|
@@ -1,349 +0,0 @@
|
|
1
|
-
/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */
|
2
|
-
|
3
|
-
/* Document
|
4
|
-
========================================================================== */
|
5
|
-
|
6
|
-
/**
|
7
|
-
* 1. Correct the line height in all browsers.
|
8
|
-
* 2. Prevent adjustments of font size after orientation changes in iOS.
|
9
|
-
*/
|
10
|
-
|
11
|
-
html {
|
12
|
-
line-height: 1.15; /* 1 */
|
13
|
-
-webkit-text-size-adjust: 100%; /* 2 */
|
14
|
-
}
|
15
|
-
|
16
|
-
/* Sections
|
17
|
-
========================================================================== */
|
18
|
-
|
19
|
-
/**
|
20
|
-
* Remove the margin in all browsers.
|
21
|
-
*/
|
22
|
-
|
23
|
-
body {
|
24
|
-
margin: 0;
|
25
|
-
}
|
26
|
-
|
27
|
-
/**
|
28
|
-
* Render the `main` element consistently in IE.
|
29
|
-
*/
|
30
|
-
|
31
|
-
main {
|
32
|
-
display: block;
|
33
|
-
}
|
34
|
-
|
35
|
-
/**
|
36
|
-
* Correct the font size and margin on `h1` elements within `section` and
|
37
|
-
* `article` contexts in Chrome, Firefox, and Safari.
|
38
|
-
*/
|
39
|
-
|
40
|
-
h1 {
|
41
|
-
font-size: 2em;
|
42
|
-
margin: 0.67em 0;
|
43
|
-
}
|
44
|
-
|
45
|
-
/* Grouping content
|
46
|
-
========================================================================== */
|
47
|
-
|
48
|
-
/**
|
49
|
-
* 1. Add the correct box sizing in Firefox.
|
50
|
-
* 2. Show the overflow in Edge and IE.
|
51
|
-
*/
|
52
|
-
|
53
|
-
hr {
|
54
|
-
box-sizing: content-box; /* 1 */
|
55
|
-
height: 0; /* 1 */
|
56
|
-
overflow: visible; /* 2 */
|
57
|
-
}
|
58
|
-
|
59
|
-
/**
|
60
|
-
* 1. Correct the inheritance and scaling of font size in all browsers.
|
61
|
-
* 2. Correct the odd `em` font sizing in all browsers.
|
62
|
-
*/
|
63
|
-
|
64
|
-
pre {
|
65
|
-
font-family: monospace, monospace; /* 1 */
|
66
|
-
font-size: 1em; /* 2 */
|
67
|
-
}
|
68
|
-
|
69
|
-
/* Text-level semantics
|
70
|
-
========================================================================== */
|
71
|
-
|
72
|
-
/**
|
73
|
-
* Remove the gray background on active links in IE 10.
|
74
|
-
*/
|
75
|
-
|
76
|
-
a {
|
77
|
-
background-color: transparent;
|
78
|
-
}
|
79
|
-
|
80
|
-
/**
|
81
|
-
* 1. Remove the bottom border in Chrome 57-
|
82
|
-
* 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
|
83
|
-
*/
|
84
|
-
|
85
|
-
abbr[title] {
|
86
|
-
border-bottom: none; /* 1 */
|
87
|
-
text-decoration: underline; /* 2 */
|
88
|
-
text-decoration: underline dotted; /* 2 */
|
89
|
-
}
|
90
|
-
|
91
|
-
/**
|
92
|
-
* Add the correct font weight in Chrome, Edge, and Safari.
|
93
|
-
*/
|
94
|
-
|
95
|
-
b,
|
96
|
-
strong {
|
97
|
-
font-weight: bolder;
|
98
|
-
}
|
99
|
-
|
100
|
-
/**
|
101
|
-
* 1. Correct the inheritance and scaling of font size in all browsers.
|
102
|
-
* 2. Correct the odd `em` font sizing in all browsers.
|
103
|
-
*/
|
104
|
-
|
105
|
-
code,
|
106
|
-
kbd,
|
107
|
-
samp {
|
108
|
-
font-family: monospace, monospace; /* 1 */
|
109
|
-
font-size: 1em; /* 2 */
|
110
|
-
}
|
111
|
-
|
112
|
-
/**
|
113
|
-
* Add the correct font size in all browsers.
|
114
|
-
*/
|
115
|
-
|
116
|
-
small {
|
117
|
-
font-size: 80%;
|
118
|
-
}
|
119
|
-
|
120
|
-
/**
|
121
|
-
* Prevent `sub` and `sup` elements from affecting the line height in
|
122
|
-
* all browsers.
|
123
|
-
*/
|
124
|
-
|
125
|
-
sub,
|
126
|
-
sup {
|
127
|
-
font-size: 75%;
|
128
|
-
line-height: 0;
|
129
|
-
position: relative;
|
130
|
-
vertical-align: baseline;
|
131
|
-
}
|
132
|
-
|
133
|
-
sub {
|
134
|
-
bottom: -0.25em;
|
135
|
-
}
|
136
|
-
|
137
|
-
sup {
|
138
|
-
top: -0.5em;
|
139
|
-
}
|
140
|
-
|
141
|
-
/* Embedded content
|
142
|
-
========================================================================== */
|
143
|
-
|
144
|
-
/**
|
145
|
-
* Remove the border on images inside links in IE 10.
|
146
|
-
*/
|
147
|
-
|
148
|
-
img {
|
149
|
-
border-style: none;
|
150
|
-
}
|
151
|
-
|
152
|
-
/* Forms
|
153
|
-
========================================================================== */
|
154
|
-
|
155
|
-
/**
|
156
|
-
* 1. Change the font styles in all browsers.
|
157
|
-
* 2. Remove the margin in Firefox and Safari.
|
158
|
-
*/
|
159
|
-
|
160
|
-
button,
|
161
|
-
input,
|
162
|
-
optgroup,
|
163
|
-
select,
|
164
|
-
textarea {
|
165
|
-
font-family: inherit; /* 1 */
|
166
|
-
font-size: 100%; /* 1 */
|
167
|
-
line-height: 1.15; /* 1 */
|
168
|
-
margin: 0; /* 2 */
|
169
|
-
}
|
170
|
-
|
171
|
-
/**
|
172
|
-
* Show the overflow in IE.
|
173
|
-
* 1. Show the overflow in Edge.
|
174
|
-
*/
|
175
|
-
|
176
|
-
button,
|
177
|
-
input { /* 1 */
|
178
|
-
overflow: visible;
|
179
|
-
}
|
180
|
-
|
181
|
-
/**
|
182
|
-
* Remove the inheritance of text transform in Edge, Firefox, and IE.
|
183
|
-
* 1. Remove the inheritance of text transform in Firefox.
|
184
|
-
*/
|
185
|
-
|
186
|
-
button,
|
187
|
-
select { /* 1 */
|
188
|
-
text-transform: none;
|
189
|
-
}
|
190
|
-
|
191
|
-
/**
|
192
|
-
* Correct the inability to style clickable types in iOS and Safari.
|
193
|
-
*/
|
194
|
-
|
195
|
-
button,
|
196
|
-
[type="button"],
|
197
|
-
[type="reset"],
|
198
|
-
[type="submit"] {
|
199
|
-
-webkit-appearance: button;
|
200
|
-
}
|
201
|
-
|
202
|
-
/**
|
203
|
-
* Remove the inner border and padding in Firefox.
|
204
|
-
*/
|
205
|
-
|
206
|
-
button::-moz-focus-inner,
|
207
|
-
[type="button"]::-moz-focus-inner,
|
208
|
-
[type="reset"]::-moz-focus-inner,
|
209
|
-
[type="submit"]::-moz-focus-inner {
|
210
|
-
border-style: none;
|
211
|
-
padding: 0;
|
212
|
-
}
|
213
|
-
|
214
|
-
/**
|
215
|
-
* Restore the focus styles unset by the previous rule.
|
216
|
-
*/
|
217
|
-
|
218
|
-
button:-moz-focusring,
|
219
|
-
[type="button"]:-moz-focusring,
|
220
|
-
[type="reset"]:-moz-focusring,
|
221
|
-
[type="submit"]:-moz-focusring {
|
222
|
-
outline: 1px dotted ButtonText;
|
223
|
-
}
|
224
|
-
|
225
|
-
/**
|
226
|
-
* Correct the padding in Firefox.
|
227
|
-
*/
|
228
|
-
|
229
|
-
fieldset {
|
230
|
-
padding: 0.35em 0.75em 0.625em;
|
231
|
-
}
|
232
|
-
|
233
|
-
/**
|
234
|
-
* 1. Correct the text wrapping in Edge and IE.
|
235
|
-
* 2. Correct the color inheritance from `fieldset` elements in IE.
|
236
|
-
* 3. Remove the padding so developers are not caught out when they zero out
|
237
|
-
* `fieldset` elements in all browsers.
|
238
|
-
*/
|
239
|
-
|
240
|
-
legend {
|
241
|
-
box-sizing: border-box; /* 1 */
|
242
|
-
color: inherit; /* 2 */
|
243
|
-
display: table; /* 1 */
|
244
|
-
max-width: 100%; /* 1 */
|
245
|
-
padding: 0; /* 3 */
|
246
|
-
white-space: normal; /* 1 */
|
247
|
-
}
|
248
|
-
|
249
|
-
/**
|
250
|
-
* Add the correct vertical alignment in Chrome, Firefox, and Opera.
|
251
|
-
*/
|
252
|
-
|
253
|
-
progress {
|
254
|
-
vertical-align: baseline;
|
255
|
-
}
|
256
|
-
|
257
|
-
/**
|
258
|
-
* Remove the default vertical scrollbar in IE 10+.
|
259
|
-
*/
|
260
|
-
|
261
|
-
textarea {
|
262
|
-
overflow: auto;
|
263
|
-
}
|
264
|
-
|
265
|
-
/**
|
266
|
-
* 1. Add the correct box sizing in IE 10.
|
267
|
-
* 2. Remove the padding in IE 10.
|
268
|
-
*/
|
269
|
-
|
270
|
-
[type="checkbox"],
|
271
|
-
[type="radio"] {
|
272
|
-
box-sizing: border-box; /* 1 */
|
273
|
-
padding: 0; /* 2 */
|
274
|
-
}
|
275
|
-
|
276
|
-
/**
|
277
|
-
* Correct the cursor style of increment and decrement buttons in Chrome.
|
278
|
-
*/
|
279
|
-
|
280
|
-
[type="number"]::-webkit-inner-spin-button,
|
281
|
-
[type="number"]::-webkit-outer-spin-button {
|
282
|
-
height: auto;
|
283
|
-
}
|
284
|
-
|
285
|
-
/**
|
286
|
-
* 1. Correct the odd appearance in Chrome and Safari.
|
287
|
-
* 2. Correct the outline style in Safari.
|
288
|
-
*/
|
289
|
-
|
290
|
-
[type="search"] {
|
291
|
-
-webkit-appearance: textfield; /* 1 */
|
292
|
-
outline-offset: -2px; /* 2 */
|
293
|
-
}
|
294
|
-
|
295
|
-
/**
|
296
|
-
* Remove the inner padding in Chrome and Safari on macOS.
|
297
|
-
*/
|
298
|
-
|
299
|
-
[type="search"]::-webkit-search-decoration {
|
300
|
-
-webkit-appearance: none;
|
301
|
-
}
|
302
|
-
|
303
|
-
/**
|
304
|
-
* 1. Correct the inability to style clickable types in iOS and Safari.
|
305
|
-
* 2. Change font properties to `inherit` in Safari.
|
306
|
-
*/
|
307
|
-
|
308
|
-
::-webkit-file-upload-button {
|
309
|
-
-webkit-appearance: button; /* 1 */
|
310
|
-
font: inherit; /* 2 */
|
311
|
-
}
|
312
|
-
|
313
|
-
/* Interactive
|
314
|
-
========================================================================== */
|
315
|
-
|
316
|
-
/*
|
317
|
-
* Add the correct display in Edge, IE 10+, and Firefox.
|
318
|
-
*/
|
319
|
-
|
320
|
-
details {
|
321
|
-
display: block;
|
322
|
-
}
|
323
|
-
|
324
|
-
/*
|
325
|
-
* Add the correct display in all browsers.
|
326
|
-
*/
|
327
|
-
|
328
|
-
summary {
|
329
|
-
display: list-item;
|
330
|
-
}
|
331
|
-
|
332
|
-
/* Misc
|
333
|
-
========================================================================== */
|
334
|
-
|
335
|
-
/**
|
336
|
-
* Add the correct display in IE 10+.
|
337
|
-
*/
|
338
|
-
|
339
|
-
template {
|
340
|
-
display: none;
|
341
|
-
}
|
342
|
-
|
343
|
-
/**
|
344
|
-
* Add the correct display in IE 10.
|
345
|
-
*/
|
346
|
-
|
347
|
-
[hidden] {
|
348
|
-
display: none;
|
349
|
-
}
|