@openstack_dev/gatsby-theme-marketing-oif-core 1.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.
Files changed (93) hide show
  1. package/.eslintrc.json +27 -0
  2. package/.github/workflows/eslint.yml +15 -0
  3. package/.husky/pre-commit +4 -0
  4. package/.nvmrc +1 -0
  5. package/LICENSE.md +201 -0
  6. package/README.md +10 -0
  7. package/babel.config.json +12 -0
  8. package/gatsby-browser.js +5 -0
  9. package/gatsby-config.js +217 -0
  10. package/gatsby-node.js +162 -0
  11. package/gatsby-ssr.js +50 -0
  12. package/package.json +154 -0
  13. package/src/cms/cms-utils.js +8 -0
  14. package/src/cms/cms.js +12 -0
  15. package/src/cms/config/collections/configurationsCollection/announcementBanner/index.js +59 -0
  16. package/src/cms/config/collections/configurationsCollection/announcementBanner/typeDefs.js +11 -0
  17. package/src/cms/config/collections/configurationsCollection/footer/index.js +158 -0
  18. package/src/cms/config/collections/configurationsCollection/footer/typeDefs.js +37 -0
  19. package/src/cms/config/collections/configurationsCollection/index.js +16 -0
  20. package/src/cms/config/collections/configurationsCollection/navbar/index.js +62 -0
  21. package/src/cms/config/collections/configurationsCollection/navbar/typeDefs.js +13 -0
  22. package/src/cms/config/collections/configurationsCollection/siteSettings/index.js +117 -0
  23. package/src/cms/config/collections/configurationsCollection/siteSettings/typeDefs.js +15 -0
  24. package/src/cms/config/collections/configurationsCollection/typeDefs.js +9 -0
  25. package/src/cms/config/collections/typeDefs.js +5 -0
  26. package/src/cms/config/fields.js +268 -0
  27. package/src/cms/config/index.js +35 -0
  28. package/src/cms/config/patterns.js +51 -0
  29. package/src/cms/preview-templates/.gitkeep +0 -0
  30. package/src/cms/widgets/.gitkeep +0 -0
  31. package/src/components/AnnouncementBanner/index.js +26 -0
  32. package/src/components/AnnouncementBanner/index.module.scss +131 -0
  33. package/src/components/AnnouncementBanner/template.js +40 -0
  34. package/src/components/Footer/index.js +40 -0
  35. package/src/components/Footer/index.module.scss +59 -0
  36. package/src/components/Footer/template.js +55 -0
  37. package/src/components/Header/index.js +8 -0
  38. package/src/components/Header/template.js +5 -0
  39. package/src/components/Layout.js +32 -0
  40. package/src/components/Link.js +41 -0
  41. package/src/components/Navbar/index.js +460 -0
  42. package/src/components/Navbar/index.module.scss +301 -0
  43. package/src/components/SponsoredProjectsNav/index.js +22 -0
  44. package/src/components/SponsoredProjectsNav/index.module.scss +7 -0
  45. package/src/components/SubscribeForm/index.js +47 -0
  46. package/src/components/SubscribeForm/index.module.scss +114 -0
  47. package/src/components/Tracking/custom-bing-tracker.js +5 -0
  48. package/src/components/Tracking/custom-google-tracker.js +51 -0
  49. package/src/components/head-components.js +20 -0
  50. package/src/components/svgs/RightArrow.jsx +9 -0
  51. package/src/content/announcement-banner/OpenInfrastructureFoundation-icon-RGB.svg +1 -0
  52. package/src/content/announcement-banner/index.json +8 -0
  53. package/src/content/footer/index.json +139 -0
  54. package/src/content/navbar/index.json +304 -0
  55. package/src/content/site-settings/index.json +1 -0
  56. package/src/images/icon.png +0 -0
  57. package/src/images/openstack-logo-full.svg +57 -0
  58. package/src/images/openstack-logo-vert.svg +57 -0
  59. package/src/images/right-arrow.svg +3 -0
  60. package/src/pages/404.js +49 -0
  61. package/src/pages/auth/[...].js +36 -0
  62. package/src/pages/index.js +14 -0
  63. package/src/reducers/.gitkeep +0 -0
  64. package/src/reducers/index.js +5 -0
  65. package/src/routes/.gitkeep +0 -0
  66. package/src/routes/authorization-callback-route.js +71 -0
  67. package/src/routes/login-callback-route.js +62 -0
  68. package/src/routes/logout-callback-route.js +72 -0
  69. package/src/state/.gitkeep +0 -0
  70. package/src/state/ReduxWrapper.js +29 -0
  71. package/src/state/storage.js +21 -0
  72. package/src/state/store.js +43 -0
  73. package/src/templates/.gitkeep +0 -0
  74. package/src/theme.js +36 -0
  75. package/src/utils/cacheUtils.js +48 -0
  76. package/src/utils/cssUtils.js +62 -0
  77. package/src/utils/envVariables.js +52 -0
  78. package/src/utils/expiredToken.js +15 -0
  79. package/src/utils/filePath.js +95 -0
  80. package/static/admin/admin.css +3 -0
  81. package/static/fonts/fonts.css +65 -0
  82. package/static/fonts/nunito-sans/nunito-sans-v12-latin-300.woff +0 -0
  83. package/static/fonts/nunito-sans/nunito-sans-v12-latin-300.woff2 +0 -0
  84. package/static/fonts/nunito-sans/nunito-sans-v12-latin-300italic.woff +0 -0
  85. package/static/fonts/nunito-sans/nunito-sans-v12-latin-300italic.woff2 +0 -0
  86. package/static/fonts/nunito-sans/nunito-sans-v12-latin-600.woff +0 -0
  87. package/static/fonts/nunito-sans/nunito-sans-v12-latin-600.woff2 +0 -0
  88. package/static/fonts/nunito-sans/nunito-sans-v12-latin-600italic.woff +0 -0
  89. package/static/fonts/nunito-sans/nunito-sans-v12-latin-600italic.woff2 +0 -0
  90. package/static/fonts/nunito-sans/nunito-sans-v12-latin-700.woff +0 -0
  91. package/static/fonts/nunito-sans/nunito-sans-v12-latin-700.woff2 +0 -0
  92. package/static/fonts/nunito-sans/nunito-sans-v12-latin-700italic.woff +0 -0
  93. package/static/fonts/nunito-sans/nunito-sans-v12-latin-700italic.woff2 +0 -0
@@ -0,0 +1,139 @@
1
+ {
2
+ "columns": [
3
+ {
4
+ "title": "OpenStack",
5
+ "items": [
6
+ {
7
+ "title": "Projects",
8
+ "link": "https://openstack.org/software/project-navigator/?_ga=2.72469011.1847040749.1712567040-141715944.1710773588"
9
+ },
10
+ {
11
+ "title": "Security",
12
+ "link": "https://security.openstack.org/?_ga=2.72469011.1847040749.1712567040-141715944.1710773588"
13
+ },
14
+ {
15
+ "title": "Software",
16
+ "link": "https://openstack.org/software/?_ga=2.32121278.1847040749.1712567040-141715944.1710773588"
17
+ },
18
+ {
19
+ "title": "Blog",
20
+ "link": "http://openstack.org/blog/?_ga=2.32121278.1847040749.1712567040-141715944.1710773588"
21
+ },
22
+ {
23
+ "title": "News",
24
+ "link": "https://openstack.org/news/?_ga=2.32121278.1847040749.1712567040-141715944.1710773588"
25
+ }
26
+ ],
27
+ "display": true
28
+ },
29
+ {
30
+ "title": "Community",
31
+ "items": [
32
+ {
33
+ "title": "User Groups",
34
+ "link": "https://www.meetup.com/pro/openinfradev"
35
+ },
36
+ {
37
+ "title": "Events",
38
+ "link": "https://openstack.org/community/events/?_ga=2.2264368.1847040749.1712567040-141715944.1710773588"
39
+ },
40
+ {
41
+ "title": "Jobs",
42
+ "link": "https://openstack.org/community/jobs/?_ga=2.2264368.1847040749.1712567040-141715944.1710773588"
43
+ },
44
+ {
45
+ "title": "Companies",
46
+ "link": "https://openstack.org/foundation/companies/?_ga=2.2264368.1847040749.1712567040-141715944.1710773588"
47
+ },
48
+ {
49
+ "title": "Contribute",
50
+ "link": "http://docs.openstack.org/infra/manual/developers.html?_ga=2.2264368.1847040749.1712567040-141715944.1710773588"
51
+ }
52
+ ],
53
+ "display": true
54
+ },
55
+ {
56
+ "title": "Documentation",
57
+ "display": true,
58
+ "items": [
59
+ {
60
+ "title": "OpenStack Manuals",
61
+ "link": "http://docs.openstack.org/?_ga=2.69381136.1847040749.1712567040-141715944.1710773588"
62
+ },
63
+ {
64
+ "title": "Getting Started",
65
+ "link": "https://openstack.org/software/start/?_ga=2.35308961.1847040749.1712567040-141715944.1710773588"
66
+ },
67
+ {
68
+ "title": "API Documentation",
69
+ "link": "http://developer.openstack.org/?_ga=2.35308961.1847040749.1712567040-141715944.1710773588"
70
+ },
71
+ {
72
+ "title": "Wiki",
73
+ "link": "https://wiki.openstack.org/?_ga=2.35308961.1847040749.1712567040-141715944.1710773588"
74
+ }
75
+ ]
76
+ },
77
+ {
78
+ "title": "Branding & Legal",
79
+ "display": true,
80
+ "items": [
81
+ {
82
+ "title": "Legal Docs",
83
+ "link": "https://openstack.org/legal/?_ga=2.64604463.1847040749.1712567040-141715944.1710773588"
84
+ },
85
+ {
86
+ "title": "Logos & Guidelines",
87
+ "link": "https://openstack.org/brand/?_ga=2.64604463.1847040749.1712567040-141715944.1710773588"
88
+ },
89
+ {
90
+ "title": "Trademark Policy",
91
+ "link": "https://openstack.org/brand/openstack-trademark-policy/?_ga=2.241280130.1847040749.1712567040-141715944.1710773588"
92
+ },
93
+ {
94
+ "title": "Privacy Policy",
95
+ "link": "https://openstack.org/privacy/?_ga=2.241280130.1847040749.1712567040-141715944.1710773588"
96
+ },
97
+ {
98
+ "title": "OpenStack CLA",
99
+ "link": "https://docs.openstack.org/contributors/common/setup-gerrit.html?_ga=2.241280130.1847040749.1712567040-141715944.1710773588#individual-contributor-license-agreement"
100
+ }
101
+ ]
102
+ }
103
+ ],
104
+ "social": {
105
+ "title": "Stay In Touch",
106
+ "display": true,
107
+ "networks": [
108
+ {
109
+ "link": "https://twitter.com/OpenStack",
110
+ "display": true,
111
+ "icon": "twitter-square"
112
+ },
113
+ {
114
+ "icon": "facebook-square",
115
+ "link": "https://www.facebook.com/openinfradev/",
116
+ "display": true
117
+ },
118
+ {
119
+ "link": "https://www.linkedin.com/groups/3239106/",
120
+ "display": true,
121
+ "icon": "linkedin"
122
+ },
123
+ {
124
+ "link": "https://www.youtube.com/user/OpenStackFoundation",
125
+ "display": true,
126
+ "icon": "youtube-square"
127
+ },
128
+ {
129
+ "link": "https://www.openstack.org/",
130
+ "icon": "weixin",
131
+ "display": true
132
+ }
133
+ ]
134
+ },
135
+ "credit": {
136
+ "content": "The OpenStack project is provided under the Apache 2.0 license. The project is supported by the <a href=\"https://openinfra.dev\">OpenInfra Foundation</a>. openstack.org is powered by <a href=\"https://vexxhost.com\" target=\"_blank\">VEXXHOST</a>.",
137
+ "display": true
138
+ }
139
+ }
@@ -0,0 +1,304 @@
1
+ {
2
+ "items": [
3
+ {
4
+ "title": "Software",
5
+ "link": "https://www.openstack.org/software/",
6
+ "display": true,
7
+ "requiresAuth": false,
8
+ "items": [
9
+ {
10
+ "link": "https://www.openstack.org/software/",
11
+ "title": "Overview",
12
+ "display": true,
13
+ "requiresAuth": false
14
+ },
15
+ {
16
+ "link": "https://www.openstack.org/software/project-navigator/openstack-components",
17
+ "title": "OpenStack Components",
18
+ "display": true,
19
+ "requiresAuth": false
20
+ },
21
+ {
22
+ "link": "https://www.openstack.org/software/project-navigator/sdks",
23
+ "title": "SDKs",
24
+ "display": true,
25
+ "requiresAuth": false
26
+ },
27
+ {
28
+ "link": "https://www.openstack.org/software/project-navigator/deployment-tools",
29
+ "title": "Deployment Tools",
30
+ "display": true,
31
+ "requiresAuth": false
32
+ },
33
+ {
34
+ "link": "https://www.openstack.org/openstack-map",
35
+ "title": "OpenStack Map",
36
+ "display": true,
37
+ "requiresAuth": false
38
+ },
39
+ {
40
+ "link": "https://www.openstack.org/software/sample-configs/",
41
+ "title": "Sample Configs",
42
+ "display": true,
43
+ "requiresAuth": false
44
+ },
45
+ {
46
+ "link": "https://security.openstack.org",
47
+ "title": "Security",
48
+ "display": true,
49
+ "requiresAuth": false
50
+ }
51
+ ]
52
+ },
53
+ {
54
+ "title": "Use Cases",
55
+ "link": "https://www.openstack.org/use-cases/",
56
+ "display": true,
57
+ "requiresAuth": false,
58
+ "items": [
59
+ {
60
+ "link": "https://www.openstack.org/use-cases/",
61
+ "title": "Users in Production"
62
+ },
63
+ {
64
+ "link": null,
65
+ "title": null
66
+ },
67
+ {
68
+ "link": "https://www.openstack.org/use-cases/bare-metal/",
69
+ "title": "Ironic Bare Metal",
70
+ "display": true,
71
+ "requiresAuth": false
72
+ },
73
+ {
74
+ "link": "https://www.openstack.org/use-cases/edge-computing/",
75
+ "title": "Edge Computing",
76
+ "display": true,
77
+ "requiresAuth": false
78
+ },
79
+ {
80
+ "link": "https://www.openstack.org/use-cases/telecoms-and-nfv/",
81
+ "title": "Telecom & NFV",
82
+ "display": true,
83
+ "requiresAuth": false
84
+ },
85
+ {
86
+ "link": "https://www.openstack.org/use-cases/science/",
87
+ "title": "Science and HPC",
88
+ "display": true,
89
+ "requiresAuth": false
90
+ },
91
+ {
92
+ "link": "https://www.openstack.org/use-cases/containers/",
93
+ "title": "Containers",
94
+ "display": true,
95
+ "requiresAuth": false
96
+ },
97
+ {
98
+ "link": "https://www.openstack.org/use-cases/enterprise/",
99
+ "title": "Enterprise",
100
+ "display": true,
101
+ "requiresAuth": false
102
+ },
103
+ {
104
+ "link": "https://www.openstack.org/surveys/landing",
105
+ "title": "User Survey",
106
+ "display": true,
107
+ "requiresAuth": false
108
+ }
109
+ ]
110
+ },
111
+ {
112
+ "title": "Events",
113
+ "link": "#",
114
+ "display": true,
115
+ "requiresAuth": false,
116
+ "items": [
117
+ {
118
+ "link": "//openinfra.dev/summit/",
119
+ "title": "OpenInfra Summit",
120
+ "display": true,
121
+ "requiresAuth": false
122
+ },
123
+ {
124
+ "link": "https://www.openstack.org/ptg/",
125
+ "title": "Project Teams Gathering",
126
+ "display": true,
127
+ "requiresAuth": false
128
+ },
129
+ {
130
+ "link": "https://www.openstack.org/events/opendev-2020/",
131
+ "title": "OpenDev",
132
+ "display": true,
133
+ "requiresAuth": false
134
+ },
135
+ {
136
+ "link": "https://www.openstack.org/events/community-events/",
137
+ "title": "Community Events",
138
+ "display": true,
139
+ "requiresAuth": false
140
+ },
141
+ {
142
+ "link": "https://www.openstack.org/events/openstackdays",
143
+ "title": "OpenStack & OpenInfra Days",
144
+ "display": true,
145
+ "requiresAuth": false
146
+ },
147
+ {
148
+ "link": "https://www.openstack.org/videos/",
149
+ "title": "Summit Videos",
150
+ "display": true,
151
+ "requiresAuth": false
152
+ }
153
+ ]
154
+ },
155
+ {
156
+ "title": "Community",
157
+ "link": "https://www.openstack.org/community/",
158
+ "display": true,
159
+ "requiresAuth": false,
160
+ "items": [
161
+ {
162
+ "link": "https://www.openstack.org/community/",
163
+ "title": "Welcome! Start Here",
164
+ "display": true,
165
+ "requiresAuth": false
166
+ },
167
+ {
168
+ "link": "https://www.openstack.org/community/tech-committee",
169
+ "title": "OpenStack Technical Committee",
170
+ "display": true,
171
+ "requiresAuth": false
172
+ },
173
+ {
174
+ "link": "https://www.openstack.org/community/speakers/",
175
+ "title": "Speakers Bureau",
176
+ "display": true,
177
+ "requiresAuth": false
178
+ },
179
+ {
180
+ "link": "https://www.openstack.org/community/members/",
181
+ "title": "Community Members",
182
+ "display": true,
183
+ "requiresAuth": false
184
+ },
185
+ {
186
+ "link": "http://wiki.openstack.org",
187
+ "title": "OpenStack Wiki",
188
+ "display": true,
189
+ "requiresAuth": false
190
+ },
191
+ {
192
+ "link": "https://www.openstack.org/coa/",
193
+ "title": "Get Certified (COA)",
194
+ "display": true,
195
+ "requiresAuth": false
196
+ },
197
+ {
198
+ "link": "https://www.openstack.org/community/jobs/",
199
+ "title": "Jobs",
200
+ "display": true,
201
+ "requiresAuth": false
202
+ },
203
+ {
204
+ "link": "https://www.openstack.org/marketing/",
205
+ "title": "Marketing Resources",
206
+ "display": true,
207
+ "requiresAuth": false
208
+ },
209
+ {
210
+ "link": "https://www.openstack.org/news/",
211
+ "title": "Community News",
212
+ "display": true,
213
+ "requiresAuth": false
214
+ },
215
+ {
216
+ "link": "http://superuser.openstack.org",
217
+ "title": "Superuser Magazine",
218
+ "display": true,
219
+ "requiresAuth": false
220
+ },
221
+ {
222
+ "link": null,
223
+ "title": null,
224
+ "display": true,
225
+ "requiresAuth": false
226
+ },
227
+ {
228
+ "link": "https://www.openstack.org/community/supporting-organizations/",
229
+ "title": "OpenInfra Foundation Supporting Organizations",
230
+ "display": true,
231
+ "requiresAuth": false
232
+ },
233
+ {
234
+ "link": "https://openinfra.dev",
235
+ "title": "OpenInfra Foundation",
236
+ "display": true,
237
+ "requiresAuth": false
238
+ }
239
+ ]
240
+ },
241
+ {
242
+ "title": "Marketplace",
243
+ "link": "https://www.openstack.org/marketplace/",
244
+ "display": true,
245
+ "requiresAuth": false,
246
+ "items": [
247
+ {
248
+ "link": "https://www.openstack.org/marketplace/training/",
249
+ "title": "Training",
250
+ "display": true,
251
+ "requiresAuth": false
252
+ },
253
+ {
254
+ "link": "https://www.openstack.org/marketplace/distros/",
255
+ "title": "Distros & Appliances",
256
+ "display": true,
257
+ "requiresAuth": false
258
+ },
259
+ {
260
+ "link": "https://www.openstack.org/marketplace/public-clouds/",
261
+ "title": "Public Clouds",
262
+ "display": true,
263
+ "requiresAuth": false
264
+ },
265
+ {
266
+ "link": "https://www.openstack.org/marketplace/hosted-private-clouds/",
267
+ "title": "Hosted Private Clouds",
268
+ "display": true,
269
+ "requiresAuth": false
270
+ },
271
+ {
272
+ "link": "https://www.openstack.org/marketplace/remotely-managed-private-clouds/",
273
+ "title": "Remotely Managed Private Clouds",
274
+ "display": true,
275
+ "requiresAuth": false
276
+ },
277
+ {
278
+ "link": "https://www.openstack.org/marketplace/consulting/",
279
+ "title": "Consulting & Integrators",
280
+ "display": true,
281
+ "requiresAuth": false
282
+ },
283
+ {
284
+ "link": "https://www.openstack.org/marketplace/drivers/",
285
+ "title": "Drivers",
286
+ "display": true,
287
+ "requiresAuth": false
288
+ }
289
+ ]
290
+ },
291
+ {
292
+ "title": "Blog",
293
+ "link": "https://www.openstack.org/blog/",
294
+ "display": true,
295
+ "requiresAuth": false
296
+ },
297
+ {
298
+ "title": "Docs",
299
+ "link": "http://docs.openstack.org/",
300
+ "display": true,
301
+ "requiresAuth": false
302
+ }
303
+ ]
304
+ }
@@ -0,0 +1 @@
1
+ { "staticJsonFilesBuildTime": [], "lastBuild": 1713464132386 }
Binary file
@@ -0,0 +1,57 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 20.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
+ viewBox="0 0 135 35" enable-background="new 0 0 135 35" xml:space="preserve">
5
+ <g>
6
+ <g>
7
+ <path fill="#DA1A32" d="M22.565,5.596H2.76c-1.243,0-2.26,1.017-2.26,2.26v5.326h5.493v-0.87c0-0.675,0.547-1.222,1.222-1.222
8
+ H18.11c0.675,0,1.222,0.547,1.222,1.222v0.87h5.493V7.857C24.825,6.613,23.808,5.596,22.565,5.596z"/>
9
+ <path fill="#DA1A32" d="M19.332,22.688c0,0.675-0.547,1.222-1.222,1.222H7.216c-0.675,0-1.222-0.547-1.222-1.222v-0.87H0.5v5.326
10
+ c0,1.243,1.017,2.26,2.26,2.26h19.805c1.243,0,2.26-1.017,2.26-2.26v-5.326h-5.493V22.688z"/>
11
+ <rect x="0.5" y="14.753" fill="#DA1A32" width="5.493" height="5.493"/>
12
+ <rect x="19.332" y="14.753" fill="#DA1A32" width="5.493" height="5.493"/>
13
+ </g>
14
+ <path fill="#4E4540" d="M134.5,22.114c0-0.852-0.693-1.545-1.545-1.545c-0.852,0-1.545,0.693-1.545,1.545
15
+ c0,0.852,0.693,1.545,1.545,1.545C133.807,23.659,134.5,22.966,134.5,22.114z M132.955,23.28c-0.643,0-1.166-0.523-1.166-1.166
16
+ c0-0.643,0.523-1.166,1.166-1.166c0.643,0,1.166,0.523,1.166,1.166C134.12,22.757,133.597,23.28,132.955,23.28z"/>
17
+ <path fill="#4E4540" d="M133.534,21.834v-0.009c0-0.149-0.045-0.268-0.128-0.351c-0.095-0.095-0.236-0.145-0.411-0.145h-0.569
18
+ v1.514h0.313v-0.497h0.197l0.279,0.497h0.359l-0.322-0.562C133.42,22.208,133.534,22.063,133.534,21.834z M133.218,21.843
19
+ c0,0.136-0.087,0.227-0.247,0.227h-0.231v-0.457h0.225c0.16,0,0.253,0.076,0.253,0.227V21.843z"/>
20
+ <path fill="#4E4540" d="M41.683,17.605v-0.21c0-3.656-2.398-6.311-5.658-6.311c-3.284,0-5.705,2.701-5.705,6.334v0.209
21
+ c0,3.656,2.399,6.287,5.659,6.287C39.261,23.915,41.683,21.238,41.683,17.605z M32.95,17.558v-0.14
22
+ c0-2.306,1.188-4.005,3.027-4.005c1.793,0,3.074,1.723,3.074,4.028v0.14c0,2.305-1.188,4.028-3.027,4.028
23
+ C34.231,21.61,32.95,19.864,32.95,17.558z"/>
24
+ <path fill="#4E4540" d="M54.209,17.652v-0.326c0-4.169-2.329-6.241-4.797-6.241c-1.77,0-2.841,1.025-3.609,2.212v-1.98h-2.631
25
+ v15.858h2.631v-5.379c0.745,1.094,1.816,2.096,3.609,2.096C51.904,23.892,54.209,21.797,54.209,17.652z M45.756,17.605v-0.233
26
+ c0-2.422,1.351-3.958,2.934-3.958c1.584,0,2.864,1.514,2.864,3.982v0.21c0,2.469-1.257,3.959-2.864,3.959
27
+ C47.107,21.564,45.756,20.027,45.756,17.605z"/>
28
+ <path fill="#4E4540" d="M65.611,22.006l-1.374-1.63c-0.815,0.792-1.677,1.304-2.841,1.304c-1.607,0-2.888-1.118-3.12-3.19h7.731
29
+ c0.023-0.372,0.023-0.745,0.023-0.908c0-3.702-1.77-6.497-5.123-6.497c-3.027,0-5.263,2.655-5.263,6.357v0.186
30
+ c0,3.866,2.468,6.287,5.635,6.287C63.119,23.915,64.493,23.194,65.611,22.006z M60.907,13.297c1.537,0,2.422,1.42,2.562,3.376
31
+ h-5.216C58.439,14.578,59.463,13.297,60.907,13.297z"/>
32
+ <path fill="#4E4540" d="M73.757,11.085c-1.677,0-2.678,0.955-3.377,2.049v-1.816h-2.631v12.342h2.631v-7.475
33
+ c0-1.7,0.955-2.725,2.329-2.725c1.397,0,2.212,0.955,2.212,2.678v7.522h2.631v-8.267C77.552,12.761,76.132,11.085,73.757,11.085z"
34
+ />
35
+ <path fill="#4E4540" d="M88.159,20.143V20.12c0-1.933-1.444-2.817-3.353-3.679c-1.444-0.652-2.422-1.071-2.422-1.886v-0.047
36
+ c0-0.675,0.582-1.211,1.56-1.211c0.978,0,2.003,0.466,2.934,1.094l1.118-1.933c-1.164-0.838-2.631-1.327-4.005-1.327
37
+ c-2.305,0-4.075,1.397-4.075,3.609v0.047c0,2.026,1.537,2.864,3.377,3.656c1.467,0.629,2.422,1.025,2.422,1.91v0.023
38
+ c0,0.769-0.629,1.351-1.723,1.351s-2.282-0.536-3.4-1.443l-1.234,1.886c1.421,1.187,3.12,1.723,4.587,1.723
39
+ C86.32,23.892,88.159,22.565,88.159,20.143z"/>
40
+ <path fill="#4E4540" d="M96.307,23.31v-2.166c-0.442,0.233-0.908,0.349-1.421,0.349c-0.838,0-1.327-0.396-1.327-1.351v-6.567h2.771
41
+ v-2.259h-2.771v-3.33h-2.631v3.33h-1.351l0.432,2.259h0.918v7.102c0,2.399,1.374,3.167,3.19,3.167
42
+ C95.003,23.846,95.702,23.636,96.307,23.31z"/>
43
+ <path fill="#4E4540" d="M106.39,12.435c-0.792-0.815-2.026-1.257-3.633-1.257c-1.653,0-2.888,0.396-4.075,0.978l0.745,2.096
44
+ c0.815-0.372,1.793-0.745,2.981-0.745c1.677,0,2.655,0.862,2.655,2.515v0.513c-0.838-0.28-1.677-0.489-2.841-0.489
45
+ c-2.608,0-4.378,1.304-4.378,3.958v0.116c0,2.399,1.723,3.772,3.772,3.772c1.607,0,2.701-0.699,3.423-1.746v1.514h2.585v-7.661
46
+ C107.624,14.461,107.205,13.25,106.39,12.435z M105.086,19.514c0,1.397-1.164,2.422-2.678,2.399
47
+ c-1.141-0.023-2.002-0.722-2.002-1.956V19.91c0-1.304,0.885-2.072,2.398-2.072c0.885,0,1.677,0.186,2.282,0.442V19.514z"/>
48
+ <path fill="#4E4540" d="M118.809,22.053l-1.42-1.746c-0.722,0.722-1.444,1.257-2.515,1.257c-1.793,0-3.05-1.607-3.05-4.005v-0.116
49
+ c0-2.329,1.257-3.982,2.981-3.982c1.118,0,1.84,0.559,2.492,1.234l1.467-1.933c-1.025-1.025-2.189-1.677-3.959-1.677
50
+ c-3.237,0-5.635,2.655-5.635,6.334v0.233c0,3.679,2.329,6.264,5.542,6.264C116.597,23.915,117.831,23.147,118.809,22.053z"/>
51
+ <g>
52
+ <polygon fill="#4E4540" points="126.863,17.254 125.016,19.239 127.493,23.659 130.544,23.659 "/>
53
+ <polygon fill="#4E4540" points="127.307,11.317 123.092,16.743 123.092,6.847 120.461,6.847 120.461,23.659 123.092,23.659
54
+ 123.092,20.097 130.428,11.317 "/>
55
+ </g>
56
+ </g>
57
+ </svg>
@@ -0,0 +1,57 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!-- Generator: Adobe Illustrator 20.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
+ <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
+ viewBox="0 0 59 54" enable-background="new 0 0 59 54" xml:space="preserve">
5
+ <g>
6
+ <g>
7
+ <path fill="#4E4540" d="M58.581,47.835c0-0.476-0.387-0.863-0.863-0.863c-0.476,0-0.863,0.387-0.863,0.863
8
+ c0,0.476,0.387,0.863,0.863,0.863C58.194,48.697,58.581,48.31,58.581,47.835z M57.718,48.485c-0.359,0-0.651-0.292-0.651-0.651
9
+ c0-0.359,0.292-0.651,0.651-0.651c0.359,0,0.651,0.292,0.651,0.651C58.369,48.193,58.077,48.485,57.718,48.485z"/>
10
+ <path fill="#4E4540" d="M58.042,47.678v-0.005c0-0.083-0.025-0.15-0.071-0.196c-0.053-0.053-0.132-0.081-0.229-0.081h-0.318v0.846
11
+ h0.175v-0.278h0.11l0.156,0.278h0.201l-0.18-0.314C57.978,47.887,58.042,47.806,58.042,47.678z M57.865,47.683
12
+ c0,0.076-0.048,0.127-0.138,0.127h-0.129v-0.255h0.126c0.089,0,0.141,0.042,0.141,0.127V47.683z"/>
13
+ <path fill="#4E4540" d="M6.765,45.317v-0.117c0-2.042-1.339-3.524-3.16-3.524c-1.834,0-3.186,1.509-3.186,3.537v0.117
14
+ c0,2.042,1.339,3.511,3.16,3.511C5.412,48.84,6.765,47.345,6.765,45.317z M1.888,45.291v-0.078c0-1.288,0.663-2.237,1.69-2.237
15
+ c1.001,0,1.717,0.962,1.717,2.25v0.078c0,1.287-0.663,2.25-1.69,2.25C2.603,47.553,1.888,46.578,1.888,45.291z"/>
16
+ <path fill="#4E4540" d="M13.76,45.343v-0.182c0-2.328-1.3-3.485-2.679-3.485c-0.988,0-1.586,0.572-2.016,1.236v-1.105H7.596v8.856
17
+ h1.469v-3.004c0.416,0.611,1.014,1.17,2.016,1.17C12.472,48.828,13.76,47.657,13.76,45.343z M9.039,45.317v-0.13
18
+ c0-1.352,0.754-2.21,1.638-2.21c0.884,0,1.599,0.845,1.599,2.223v0.117c0,1.378-0.702,2.211-1.599,2.211
19
+ C9.794,47.527,9.039,46.669,9.039,45.317z"/>
20
+ <path fill="#4E4540" d="M20.127,47.774l-0.767-0.91c-0.455,0.442-0.936,0.728-1.586,0.728c-0.897,0-1.613-0.624-1.743-1.782h4.317
21
+ c0.013-0.208,0.013-0.416,0.013-0.507c0-2.068-0.988-3.628-2.861-3.628c-1.69,0-2.939,1.482-2.939,3.55v0.104
22
+ c0,2.159,1.378,3.511,3.147,3.511C18.735,48.84,19.503,48.437,20.127,47.774z M17.5,42.911c0.858,0,1.352,0.793,1.43,1.885h-2.913
23
+ C16.122,43.626,16.694,42.911,17.5,42.911z"/>
24
+ <path fill="#4E4540" d="M24.676,41.675c-0.936,0-1.495,0.533-1.886,1.144v-1.014h-1.469v6.892h1.469v-4.174
25
+ c0-0.949,0.533-1.521,1.3-1.521c0.78,0,1.235,0.533,1.235,1.495v4.2h1.469v-4.616C26.795,42.612,26.002,41.675,24.676,41.675z"/>
26
+ <path fill="#4E4540" d="M32.718,46.734v-0.013c0-1.079-0.806-1.573-1.873-2.055c-0.806-0.364-1.352-0.598-1.352-1.053v-0.026
27
+ c0-0.377,0.325-0.676,0.871-0.676c0.546,0,1.118,0.26,1.638,0.611l0.624-1.079c-0.65-0.468-1.469-0.741-2.237-0.741
28
+ c-1.287,0-2.276,0.78-2.276,2.015v0.026c0,1.131,0.858,1.599,1.886,2.041c0.819,0.351,1.352,0.572,1.352,1.066v0.013
29
+ c0,0.429-0.351,0.754-0.962,0.754s-1.274-0.299-1.898-0.806l-0.689,1.053c0.793,0.663,1.743,0.962,2.562,0.962
30
+ C31.691,48.828,32.718,48.086,32.718,46.734z"/>
31
+ <path fill="#4E4540" d="M37.268,48.502v-1.209c-0.247,0.13-0.507,0.195-0.793,0.195c-0.468,0-0.741-0.221-0.741-0.754v-3.667
32
+ h1.547v-1.261h-1.547v-1.86h-1.469v1.86H33.51l0.241,1.261h0.513v3.966c0,1.339,0.767,1.769,1.782,1.769
33
+ C36.54,48.802,36.93,48.685,37.268,48.502z"/>
34
+ <path fill="#4E4540" d="M42.899,42.43c-0.442-0.455-1.131-0.702-2.029-0.702c-0.923,0-1.613,0.221-2.276,0.546l0.416,1.17
35
+ c0.455-0.208,1.001-0.416,1.664-0.416c0.936,0,1.482,0.481,1.482,1.404v0.286c-0.468-0.156-0.936-0.273-1.586-0.273
36
+ c-1.456,0-2.445,0.728-2.445,2.21v0.065c0,1.339,0.962,2.107,2.107,2.107c0.897,0,1.508-0.39,1.911-0.975v0.845h1.443v-4.278
37
+ C43.588,43.561,43.354,42.885,42.899,42.43z M42.17,46.383c0,0.78-0.65,1.352-1.495,1.339c-0.637-0.013-1.118-0.403-1.118-1.092
38
+ v-0.026c0-0.728,0.494-1.157,1.339-1.157c0.494,0,0.936,0.104,1.274,0.247V46.383z"/>
39
+ <path fill="#4E4540" d="M49.834,47.8l-0.793-0.975c-0.403,0.403-0.806,0.702-1.404,0.702c-1.001,0-1.703-0.897-1.703-2.237v-0.065
40
+ c0-1.301,0.702-2.224,1.664-2.224c0.624,0,1.027,0.312,1.391,0.689l0.819-1.079c-0.572-0.572-1.222-0.936-2.211-0.936
41
+ c-1.808,0-3.147,1.482-3.147,3.537v0.13c0,2.055,1.3,3.498,3.095,3.498C48.599,48.84,49.288,48.412,49.834,47.8z"/>
42
+ <g>
43
+ <polygon fill="#4E4540" points="54.331,45.12 53.3,46.229 54.683,48.697 56.387,48.697 "/>
44
+ <polygon fill="#4E4540" points="54.579,41.806 52.226,44.835 52.226,39.309 50.756,39.309 50.756,48.697 52.226,48.697
45
+ 52.226,46.708 56.322,41.806 "/>
46
+ </g>
47
+ </g>
48
+ <g opacity="0.98">
49
+ <path fill="#ED1944" d="M42.457,3.339H16.543c-1.627,0-2.957,1.331-2.957,2.957v6.969h7.188v-1.139c0-0.883,0.716-1.6,1.6-1.6
50
+ h14.254c0.883,0,1.6,0.716,1.6,1.6v1.139h7.188V6.296C45.415,4.67,44.084,3.339,42.457,3.339z"/>
51
+ <path fill="#ED1944" d="M38.227,25.702c0,0.883-0.716,1.6-1.6,1.6H22.373c-0.883,0-1.6-0.716-1.6-1.6v-1.139h-7.188v6.969
52
+ c0,1.627,1.331,2.957,2.957,2.957h25.914c1.627,0,2.957-1.331,2.957-2.957v-6.969h-7.188V25.702z"/>
53
+ <rect x="13.585" y="15.32" fill="#ED1944" width="7.188" height="7.188"/>
54
+ <rect x="38.227" y="15.32" fill="#ED1944" width="7.188" height="7.188"/>
55
+ </g>
56
+ </g>
57
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="21" height="11" viewBox="0 0 21 11" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M15.4828 1L19.6207 5.48M19.6207 5.48L15.4828 9.96M19.6207 5.48L1 5.48" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path>
3
+ </svg>
@@ -0,0 +1,49 @@
1
+ import * as React from "react"
2
+ import { Link } from "gatsby"
3
+
4
+ const pageStyles = {
5
+ color: "#232129",
6
+ padding: "96px",
7
+ fontFamily: "-apple-system, Roboto, sans-serif, serif",
8
+ }
9
+ const headingStyles = {
10
+ marginTop: 0,
11
+ marginBottom: 64,
12
+ maxWidth: 320,
13
+ }
14
+
15
+ const paragraphStyles = {
16
+ marginBottom: 48,
17
+ }
18
+ const codeStyles = {
19
+ color: "#8A6534",
20
+ padding: 4,
21
+ backgroundColor: "#FFF4DB",
22
+ fontSize: "1.25rem",
23
+ borderRadius: 4,
24
+ }
25
+
26
+ const NotFoundPage = () => {
27
+ return (
28
+ <main style={pageStyles}>
29
+ <h1 style={headingStyles}>Page not found</h1>
30
+ <p style={paragraphStyles}>
31
+ Sorry 😔, we couldn’t find what you were looking for.
32
+ <br />
33
+ {process.env.NODE_ENV === "development" ? (
34
+ <>
35
+ <br />
36
+ Try creating a page in <code style={codeStyles}>src/pages/</code>.
37
+ <br />
38
+ </>
39
+ ) : null}
40
+ <br />
41
+ <Link to="/">Go home</Link>.
42
+ </p>
43
+ </main>
44
+ )
45
+ }
46
+
47
+ export default NotFoundPage
48
+
49
+ export const Head = () => <title>Not found</title>
@@ -0,0 +1,36 @@
1
+ import React from "react"
2
+ import { Router } from "@reach/router"
3
+ import { connect } from 'react-redux'
4
+
5
+ import { onUserAuth, doLogout, getUserInfo } from "openstack-uicore-foundation/lib/security/actions";
6
+ import { doLoginBasicLogin } from 'openstack-uicore-foundation/lib/security/methods';
7
+
8
+ import AuthorizationCallbackRoute from "../../routes/authorization-callback-route"
9
+ import LogOutCallbackRoute from "../../routes/logout-callback-route"
10
+ import LogInCallbackRoute from "../../routes/login-callback-route";
11
+
12
+ const Auth = class extends React.Component {
13
+
14
+ render() {
15
+
16
+ let { onUserAuth, doLogout, getUserInfo } = this.props;
17
+
18
+ return (
19
+ <Router basepath="/auth">
20
+ <AuthorizationCallbackRoute onUserAuth={onUserAuth} path='/callback' getUserInfo={getUserInfo} />
21
+ <LogOutCallbackRoute doLogout={doLogout} path='/logout' />
22
+ <LogInCallbackRoute doLogin={doLoginBasicLogin} path='/login'/>
23
+ </Router>
24
+ )
25
+ }
26
+ }
27
+
28
+ const mapStateToProps = ({ loggedUserState }) => ({
29
+ backUrl: loggedUserState.backUrl,
30
+ })
31
+
32
+ export default connect(mapStateToProps, {
33
+ onUserAuth,
34
+ doLogout,
35
+ getUserInfo,
36
+ })(Auth)
@@ -0,0 +1,14 @@
1
+ import React from "react";
2
+ import Layout from "../components/Layout";
3
+ import CustomGoogleTracker from "../components/Tracking/custom-google-tracker";
4
+
5
+ const IndexPage = () => <Layout><div style={{height: 300}}>placeholder</div></Layout>;
6
+
7
+ export default IndexPage;
8
+
9
+ export const Head = () => (
10
+ <>
11
+ <title>Home Page</title>
12
+ <CustomGoogleTracker/>
13
+ </>
14
+ );