@openeventkit/event-site 2.0.114 → 2.0.115

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 (29) hide show
  1. package/package.json +2 -2
  2. package/src/components/AuthComponent.js +29 -24
  3. package/src/components/Container.js +9 -0
  4. package/src/components/IconButton/index.js +21 -0
  5. package/src/components/IconButton/styles.module.scss +31 -0
  6. package/src/components/MarketingHero/ImagesColumn.js +41 -0
  7. package/src/components/MarketingHero/MainColumn.js +38 -0
  8. package/src/components/MarketingHero/index.js +44 -0
  9. package/src/components/MarketingHero/styles.module.scss +73 -0
  10. package/src/components/RegistrationLiteComponent.js +27 -25
  11. package/src/components/SponsorHeader.js +10 -21
  12. package/src/content/site-settings/index.json +1 -55
  13. package/src/styles/auth-component.module.scss +37 -0
  14. package/src/styles/fonts.scss +11 -16
  15. package/src/styles/marketing.module.scss +7 -11
  16. package/src/styles/style.scss +0 -49
  17. package/src/templates/content-page/Container.js +3 -0
  18. package/src/templates/content-page/template.js +3 -2
  19. package/src/templates/marketing-page-template/Container.js +3 -0
  20. package/src/templates/marketing-page-template/MainColumn.js +69 -0
  21. package/src/templates/marketing-page-template/Masonry.js +71 -0
  22. package/src/templates/marketing-page-template/index.js +72 -0
  23. package/src/templates/marketing-page-template/styles.module.scss +11 -0
  24. package/src/utils/hooks/index.js +5 -0
  25. package/src/utils/hooks/useResize.js +19 -0
  26. package/src/components/MarketingHeroComponent.js +0 -120
  27. package/src/styles/login-button.module.scss +0 -84
  28. package/src/styles/marketing-hero.module.scss +0 -200
  29. package/src/templates/marketing-page-template.js +0 -194
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@openeventkit/event-site",
3
3
  "description": "Event Site",
4
- "version": "2.0.114",
4
+ "version": "2.0.115",
5
5
  "author": "Tipit LLC",
6
6
  "dependencies": {
7
7
  "@fortawesome/fontawesome-svg-core": "^6.5.2",
@@ -104,7 +104,7 @@
104
104
  "react-redux": "^7.2.6",
105
105
  "react-rte": "^0.16.3",
106
106
  "react-select": "^2.4.4",
107
- "react-slick": "^0.27.0",
107
+ "react-slick": "^0.30.2",
108
108
  "react-star-ratings": "^2.3.0",
109
109
  "react-stars": "^2.2.5",
110
110
  "react-tabs": "^3.0.0",
@@ -1,25 +1,27 @@
1
- import React, { useEffect, useState, useMemo } from "react"
2
- import { navigate } from "gatsby"
1
+ import React, { useEffect, useState, useMemo } from "react";
2
+ import PropTypes from "prop-types";
3
+ import { navigate } from "gatsby";
3
4
  import { connect } from "react-redux";
4
- import URI from "urijs"
5
- // these two libraries are client-side only
6
- import LoginComponent from 'summit-registration-lite/dist/components/login';
7
- import PasswordlessLoginComponent from 'summit-registration-lite/dist/components/login-passwordless';
5
+ import URI from "urijs";
6
+
8
7
  import FragmentParser from "openstack-uicore-foundation/lib/utils/fragment-parser";
9
- import { doLogin, passwordlessStart } from 'openstack-uicore-foundation/lib/security/methods'
8
+ import { doLogin, passwordlessStart } from "openstack-uicore-foundation/lib/security/methods";
10
9
  import { setPasswordlessLogin, setUserOrder, checkOrderData } from "../actions/user-actions";
11
10
  import { getThirdPartyProviders } from "../actions/base-actions";
12
- import { validateIdentityProviderButtons } from "../utils/loginUtils";
13
- import 'summit-registration-lite/dist/index.css';
14
- import styles from '../styles/login-button.module.scss'
15
- import PropTypes from 'prop-types'
11
+
12
+ // these two libraries are client-side only
13
+ import LoginComponent from "summit-registration-lite/dist/components/login";
14
+ import PasswordlessLoginComponent from "summit-registration-lite/dist/components/login-passwordless";
15
+ import "summit-registration-lite/dist/index.css";
16
+ import IconButton from "./IconButton";
16
17
  import Link from "./Link";
17
18
 
19
+ import { getDefaultLocation, validateIdentityProviderButtons } from "@utils/loginUtils";
20
+ import { userHasAccessLevel, VirtualAccessLevel } from "@utils/authorizedGroups";
21
+ import useSiteSettings from "@utils/useSiteSettings";
18
22
  import { PHASES } from "@utils/phasesUtils";
19
- import { getDefaultLocation } from "@utils/loginUtils";
20
- import { userHasAccessLevel, VirtualAccessLevel } from "../utils/authorizedGroups";
21
23
 
22
- import useSiteSettings from "@utils/useSiteSettings";
24
+ import styles from "../styles/auth-component.module.scss";
23
25
 
24
26
  const AuthComponent = ({
25
27
  getThirdPartyProviders,
@@ -166,23 +168,26 @@ const AuthComponent = ({
166
168
  const { loginButton } = marketingPageSettings.hero.buttons;
167
169
 
168
170
  const defaultLoginButton = () => (
169
- <button className={`${styles.button} button is-large`} onClick={handleOpenPopup}>
170
- <i className={`fa fa-2x fa-edit icon is-large`} />
171
- <b>{loginButton.text}</b>
172
- </button>
171
+ <IconButton
172
+ iconClass="fa fa-2x fa-edit"
173
+ buttonText={loginButton.text}
174
+ onClick={handleOpenPopup}
175
+ />
173
176
  );
174
177
 
175
178
  const defaultEnterButton = () => (
176
- <Link className={styles.link} to={defaultPath}>
177
- <button className={`${styles.button} button is-large`}>
178
- <i className={`fa fa-2x fa-sign-in icon is-large`} />
179
- <b>Enter</b>
180
- </button>
179
+ <Link
180
+ to={defaultPath}
181
+ >
182
+ <IconButton
183
+ iconClass="fa fa-2x fa-sign-in"
184
+ buttonText="Enter"
185
+ />
181
186
  </Link>
182
187
  );
183
188
 
184
189
  return (
185
- <div style={style} className={styles.loginButtonWrapper}>
190
+ <div style={style} className={styles.authComponent}>
186
191
  {!isLoggedUser ?
187
192
  renderLoginButton ? renderLoginButton(handleOpenPopup) : defaultLoginButton()
188
193
  :
@@ -0,0 +1,9 @@
1
+ import * as React from "react";
2
+
3
+ const Container = ({ className, children }) => (
4
+ <div className={`${className ?? ""}`}>
5
+ {children}
6
+ </div>
7
+ );
8
+
9
+ export default Container;
@@ -0,0 +1,21 @@
1
+ import * as React from "react";
2
+ import styles from "./styles.module.scss";
3
+
4
+ const IconButton = ({
5
+ className = "",
6
+ iconClass = "",
7
+ buttonText,
8
+ onClick = () => {},
9
+ disabled = false
10
+ }) => (
11
+ <button
12
+ className={`button is-large mt-5 ${styles.button} ${className}`}
13
+ onClick={onClick}
14
+ disabled={disabled}
15
+ >
16
+ <i className={`icon ${iconClass}`} />
17
+ <b>{buttonText}</b>
18
+ </button>
19
+ );
20
+
21
+ export default IconButton;
@@ -0,0 +1,31 @@
1
+ .button {
2
+ background-color: transparent!important;
3
+ color: #fff!important;
4
+ height: 5rem!important;
5
+ width: 20rem!important;
6
+ i {
7
+ color: #fff;
8
+ height: 1em!important;
9
+ width: 2.5em!important;
10
+ font-size: 1.8em!important;
11
+ }
12
+ b {
13
+ display: inline-block;
14
+ width: 100%;
15
+ text-align: center;
16
+ }
17
+ &:hover,
18
+ &:active {
19
+ border-color: #fff!important;
20
+ }
21
+ &:focus {
22
+ border-color: #fff!important;
23
+ }
24
+ &.register {
25
+ background-color: #fff!important;
26
+ color: #6d6e71!important;
27
+ i {
28
+ color: #6d6e71!important;
29
+ }
30
+ }
31
+ }
@@ -0,0 +1,41 @@
1
+ import * as React from "react";
2
+ import { GatsbyImage, getImage, getSrc } from "gatsby-plugin-image";
3
+ import Slider from "react-slick";
4
+
5
+ import styles from "./styles.module.scss";
6
+
7
+ const sliderSettings = {
8
+ autoplay: false,
9
+ autoplaySpeed: 5000,
10
+ infinite: true,
11
+ dots: false,
12
+ slidesToShow: 1,
13
+ slidesToScroll: 1
14
+ };
15
+
16
+ const ImagesColumn = ({ images }) => {
17
+ return images.length === 0 ? null : (
18
+ <div className={`column is-half p-0 ${styles.imagesColumn}`}>
19
+ {images.length > 1 ? (
20
+ <Slider {...sliderSettings} >
21
+ {images.map((image, index) => (
22
+ <img
23
+ key={index}
24
+ src={getSrc(image.src)}
25
+ alt={image.alt}
26
+ />
27
+ ))}
28
+ </Slider>
29
+ ) : (
30
+ <GatsbyImage
31
+ className={styles.singleImage}
32
+ image={getImage(images[0].src)}
33
+ alt={images[0].alt}
34
+ />
35
+ )}
36
+ </div>
37
+ );
38
+ }
39
+
40
+ export default ImagesColumn;
41
+
@@ -0,0 +1,38 @@
1
+ import * as React from "react";
2
+ import { getSrc } from "gatsby-plugin-image";
3
+ import AuthComponent from "../AuthComponent";
4
+ import RegistrationLiteComponent from "../RegistrationLiteComponent";
5
+
6
+ import styles from "./styles.module.scss";
7
+
8
+ const ButtonGroup = ({ location, registerButton, loginButton }) => (
9
+ <>
10
+ {registerButton?.display && (
11
+ <span className={styles.link}>
12
+ <RegistrationLiteComponent location={location} />
13
+ </span>
14
+ )}
15
+ {loginButton?.display && <AuthComponent location={location} />}
16
+ </>
17
+ );
18
+
19
+ const MainColumn = ({ location, title, subTitle, date, time, buttons, backgroundSrc, fullWidth }) => {
20
+ const backgroundImageStyle = backgroundSrc
21
+ ? { backgroundImage: `url(${getSrc(backgroundSrc)})` }
22
+ : {};
23
+ return (
24
+ <div className={`column ${!fullWidth ? "is-half" : ""} p-0 ${styles.mainColumn}`} style={backgroundImageStyle}>
25
+ <div className={`hero-body ${styles.heroBody}`}>
26
+ {title && <h1 className="title">{title}</h1>}
27
+ {subTitle && <h2 className="subtitle">{subTitle}</h2>}
28
+ {date && <h4>{date}</h4>}
29
+ {time && <h4>{time}</h4>}
30
+ <div className={styles.heroButtons}>
31
+ <ButtonGroup {...buttons} location={location} />
32
+ </div>
33
+ </div>
34
+ </div>
35
+ );
36
+ };
37
+
38
+ export default MainColumn;
@@ -0,0 +1,44 @@
1
+ import * as React from "react";
2
+ import PropTypes from "prop-types";
3
+ import MainColumn from "./MainColumn";
4
+ import ImagesColumn from "./ImagesColumn";
5
+
6
+ import styles from "./styles.module.scss";
7
+
8
+ const MarketingHero = ({ location, data }) => {
9
+ const {
10
+ title,
11
+ subTitle,
12
+ date,
13
+ time,
14
+ buttons = {},
15
+ background,
16
+ images = []
17
+ } = data || {};
18
+ return (
19
+ <section>
20
+ <div className={"columns is-marginless"}>
21
+ <MainColumn
22
+ location={location}
23
+ title={title}
24
+ subTitle={subTitle}
25
+ date={date}
26
+ time={time}
27
+ buttons={buttons}
28
+ backgroundSrc={background?.src}
29
+ fullWidth={images.length === 0}
30
+ />
31
+ {images.length > 0 && (
32
+ <ImagesColumn images={images} />
33
+ )}
34
+ </div>
35
+ </section>
36
+ );
37
+ };
38
+
39
+ MarketingHero.propTypes = {
40
+ location: PropTypes.string.isRequired,
41
+ data: PropTypes.object
42
+ };
43
+
44
+ export default MarketingHero;
@@ -0,0 +1,73 @@
1
+ @import "../../styles/colors.scss";
2
+
3
+ .mainColumn {
4
+ background-color: var(--color_secondary_contrast);
5
+ min-height: 100%;
6
+ background-size: cover;
7
+ h1 {
8
+ font-size: calc(50px + (50 - 42) * (100vw - 250px) / (1080 - 250));
9
+ font-weight: bold;
10
+ margin-top: 0rem;
11
+ }
12
+ h2 {
13
+ font-size: calc(40px + (40 - 36) * (100vw - 250px) / (1080 - 20));
14
+ font-weight: normal;
15
+ }
16
+ h4 {
17
+ font-size: calc(22px + (22 - 14) * (100vw - 250px) / (1080 - 250));
18
+ font-weight: bold;
19
+ }
20
+ h1,
21
+ h2,
22
+ h4 {
23
+ color: var(--color_text_light);
24
+ }
25
+ .heroBody {
26
+ padding: 4rem 3rem;
27
+ }
28
+ }
29
+
30
+ .imagesColumn {
31
+ :global(.slick-slider) {
32
+ height: 100%; /* Ensure the slider takes the full height of its parent */
33
+ position: relative; /* Position the slider container */
34
+ :global(.slick-list) {
35
+ height: 100%; /* Ensure the slick-list takes the full height of its parent */
36
+ overflow: hidden; /* Hide any overflow to prevent scrollbar affecting layout */
37
+ :global(.slick-track) {
38
+ display: flex;
39
+ align-items: stretch;
40
+ height: 100%; /* Ensure the slick-track takes the full height */
41
+ :global(.slick-slide) {
42
+ display: flex;
43
+ justify-content: center;
44
+ align-items: stretch;
45
+ height: 100%; /* Ensure each slide takes the full height of the slick-track */
46
+ position: relative; /* Ensure relative positioning for the slide */
47
+ div {
48
+ width: 100%;
49
+ position: relative; /* Position the container for enforcing aspect ratio */
50
+ &::before {
51
+ content: ""; /* Create a pseudo-element */
52
+ display: block;
53
+ padding-top: 56.25%; /* 16:9 aspect ratio (9 / 16 * 100) */
54
+ }
55
+ img {
56
+ position: absolute;
57
+ top: 0;
58
+ left: 0;
59
+ width: 100%;
60
+ height: 100%;
61
+ object-fit: cover; /* Cover the entire container without distorting the image */
62
+ object-position: center; /* Center the image within the container */
63
+ }
64
+ }
65
+ }
66
+ }
67
+ }
68
+ }
69
+ .singleImage {
70
+ height: 100%;
71
+ background-size: cover;
72
+ }
73
+ }
@@ -1,35 +1,35 @@
1
- import React, { useEffect, useState } from "react"
1
+ import React, { useEffect, useState } from "react";
2
+ import PropTypes from "prop-types";
2
3
  import * as Sentry from "@sentry/react";
3
- import { navigate, withPrefix } from "gatsby"
4
+ import { navigate, withPrefix } from "gatsby";
4
5
  import { connect } from "react-redux";
5
6
  import URI from "urijs";
6
- import PropTypes from 'prop-types';
7
-
8
- // these two libraries are client-side only
9
- import RegistrationLiteWidget from "summit-registration-lite/dist";
10
- import "summit-registration-lite/dist/index.css";
11
- import FragmentParser from "openstack-uicore-foundation/lib/utils/fragment-parser";
12
- import {doLogin, passwordlessStart, getAccessToken} from "openstack-uicore-foundation/lib/security/methods"
13
- import {doLogout} from "openstack-uicore-foundation/lib/security/actions"
14
- import {getEnvVariable, SUMMIT_API_BASE_URL, OAUTH2_CLIENT_ID, REGISTRATION_BASE_URL, SUPPORT_EMAIL} from "../utils/envVariables"
15
- import {getUserProfile, setPasswordlessLogin, setUserOrder, checkOrderData} from "../actions/user-actions";
16
- import {getThirdPartyProviders} from "../actions/base-actions";
17
- import { validateIdentityProviderButtons } from "../utils/loginUtils";
18
7
  import Swal from "sweetalert2";
19
- import {checkRequireExtraQuestionsByAttendee} from "../actions/user-actions";
20
- import {userHasAccessLevel, VirtualAccessLevel} from "../utils/authorizedGroups";
21
8
 
9
+ import FragmentParser from "openstack-uicore-foundation/lib/utils/fragment-parser";
10
+ import { doLogin, passwordlessStart, getAccessToken } from "openstack-uicore-foundation/lib/security/methods"
11
+ import { doLogout } from "openstack-uicore-foundation/lib/security/actions"
12
+ import { getUserProfile, setPasswordlessLogin, setUserOrder, checkOrderData } from "../actions/user-actions";
13
+ import { getThirdPartyProviders } from "../actions/base-actions";
14
+ import { checkRequireExtraQuestionsByAttendee } from "../actions/user-actions";
22
15
  import { getExtraQuestions } from "../actions/summit-actions";
23
16
 
24
- import useMarketingSettings, { MARKETING_SETTINGS_KEYS } from "@utils/useMarketingSettings";
25
- import useSiteSettings from "@utils/useSiteSettings";
17
+ import IconButton from "./IconButton";
18
+ import iconButtonStyles from "./IconButton/styles.module.scss";
19
+
26
20
  import { SentryFallbackFunction } from "./SentryErrorComponent";
21
+ // these two libraries are client-side only
22
+ import RegistrationLiteWidget from "summit-registration-lite/dist";
23
+ import "summit-registration-lite/dist/index.css";
27
24
 
25
+ import useSiteSettings from "@utils/useSiteSettings";
26
+ import useMarketingSettings, { MARKETING_SETTINGS_KEYS } from "@utils/useMarketingSettings";
27
+ import { getEnvVariable, SUMMIT_API_BASE_URL, OAUTH2_CLIENT_ID, REGISTRATION_BASE_URL, SUPPORT_EMAIL } from "@utils/envVariables";
28
+ import { userHasAccessLevel, VirtualAccessLevel } from "@utils/authorizedGroups";
29
+ import { validateIdentityProviderButtons } from "@utils/loginUtils";
28
30
  import { triggerAnalyticsTrackEvent } from "@utils/customEvents";
29
31
  import { PURCHASE_COMPLETE } from "@utils/analytics/events";
30
32
 
31
- import styles from "../styles/marketing-hero.module.scss";
32
-
33
33
  const RegistrationLiteComponent = ({
34
34
  registrationProfile,
35
35
  userProfile,
@@ -208,11 +208,13 @@ const RegistrationLiteComponent = ({
208
208
  React.cloneElement(children, { onClick: handleOpenPopup })
209
209
  :
210
210
  registerButton.display &&
211
- <button className={`${styles.button} button is-large`} disabled={isActive}
212
- onClick={handleOpenPopup}>
213
- <i className={`fa fa-2x fa-edit icon is-large`}/>
214
- <b>{registerButton.text}</b>
215
- </button>
211
+ <IconButton
212
+ className={iconButtonStyles.register}
213
+ iconClass="fa fa-2x fa-edit"
214
+ buttonText={registerButton.text}
215
+ onClick={handleOpenPopup}
216
+ disabled={isActive}
217
+ />
216
218
  }
217
219
  <Sentry.ErrorBoundary fallback={SentryFallbackFunction({componentName: "Registration Lite"})}>
218
220
  {isActive && <RegistrationLiteWidget {...widgetProps} />}
@@ -1,8 +1,8 @@
1
- import React, { useState, useEffect, useRef } from 'react'
1
+ import React, { useState, useEffect, useRef } from "react";
2
+ import Link from "./Link";
3
+ import { useResize } from "@utils/hooks";
2
4
 
3
- import Link from './Link'
4
-
5
- import styles from '../styles/sponsor-page.module.scss'
5
+ import styles from "../styles/sponsor-page.module.scss";
6
6
 
7
7
  const SponsorHeader = ({ sponsor, scanBadge }) => {
8
8
 
@@ -15,24 +15,13 @@ const SponsorHeader = ({ sponsor, scanBadge }) => {
15
15
  const setIsMuted = (isMuted) => {
16
16
  const player = videoParentRef.current.children[0];
17
17
  player.muted = isMuted;
18
- _setIsMuted(isMuted)
18
+ _setIsMuted(isMuted);
19
19
  };
20
20
 
21
21
  const onResize = () => {
22
- if (window.innerWidth <= 768) {
23
- setIsMobile(true);
24
- } else {
25
- setIsMobile(false);
26
- }
22
+ setIsMobile(window.innerWidth <= 768);
27
23
  };
28
-
29
- useEffect(() => {
30
- onResize();
31
- window.addEventListener("resize", onResize);
32
- return () => {
33
- window.removeEventListener("resize", onResize);
34
- };
35
- });
24
+ useResize(onResize);
36
25
 
37
26
  return (
38
27
  <section className={styles.hero}>
@@ -107,8 +96,8 @@ const SponsorHeader = ({ sponsor, scanBadge }) => {
107
96
  </div>
108
97
  </div>
109
98
  }
110
- </section >
99
+ </section>
111
100
  )
112
- }
101
+ };
113
102
 
114
- export default SponsorHeader
103
+ export default SponsorHeader;
@@ -1,55 +1 @@
1
- {
2
- "widgets": {
3
- "chat": {
4
- "enabled": true,
5
- "showQA": false,
6
- "showHelp": false,
7
- "defaultScope": "page"
8
- },
9
- "schedule": {
10
- "allowClick": true
11
- }
12
- },
13
- "favicon": {
14
- "asset": "icon.png"
15
- },
16
- "idpLogo": {
17
- "idpLogoDark": "",
18
- "idpLogoLight": "",
19
- "idpLogoAlt": ""
20
- },
21
- "identityProviderButtons": [
22
- {
23
- "buttonColor": "#082238",
24
- "providerLabel": "Continue with FNid",
25
- "providerLogo": "logo_fn.svg",
26
- "providerLogoSize": 27
27
- },
28
- {
29
- "buttonColor": "#0A66C2",
30
- "providerLabel": "Sign in with LinkedIn",
31
- "providerParam": "linkedin",
32
- "providerLogo": "logo_linkedin.svg",
33
- "providerLogoSize": 18
34
- },
35
- {
36
- "buttonColor": "#000000",
37
- "providerLabel": "Sign in with Apple",
38
- "providerParam": "apple",
39
- "providerLogoSize": 17,
40
- "providerLogo": "logo_apple.svg"
41
- },
42
- {
43
- "buttonColor": "#1877F2",
44
- "providerLabel": "Login with Facebook",
45
- "providerParam": "facebook",
46
- "providerLogo": "logo_facebook.svg",
47
- "providerLogoSize": 20
48
- }
49
- ],
50
- "maintenanceMode" : {
51
- "enabled": false,
52
- "title": "Site under maintenance",
53
- "subtitle": "Please reload page shortly"
54
- }
55
- }
1
+ {"widgets":{"chat":{"enabled":true,"showQA":false,"showHelp":false,"defaultScope":"page"},"schedule":{"allowClick":true}},"favicon":{"asset":"icon.png"},"idpLogo":{"idpLogoDark":"","idpLogoLight":"","idpLogoAlt":""},"identityProviderButtons":[{"buttonColor":"#082238","providerLabel":"Continue with FNid","providerLogo":"logo_fn.svg","providerLogoSize":27},{"buttonColor":"#0A66C2","providerLabel":"Sign in with LinkedIn","providerParam":"linkedin","providerLogo":"logo_linkedin.svg","providerLogoSize":18},{"buttonColor":"#000000","providerLabel":"Sign in with Apple","providerParam":"apple","providerLogoSize":17,"providerLogo":"logo_apple.svg"},{"buttonColor":"#1877F2","providerLabel":"Login with Facebook","providerParam":"facebook","providerLogo":"logo_facebook.svg","providerLogoSize":20}],"maintenanceMode":{"enabled":false,"title":"Site under maintenance","subtitle":"Please reload page shortly"},"staticJsonFilesBuildTime":[{"file":"src/data/summit.json","build_time":1717432857795},{"file":"src/data/events.json","build_time":1717432863110},{"file":"src/data/events.idx.json","build_time":1717432863115},{"file":"src/data/speakers.json","build_time":1717432864148},{"file":"src/data/speakers.idx.json","build_time":1717432864149},{"file":"src/content/sponsors.json","build_time":1717432868235},{"file":"src/data/voteable-presentations.json","build_time":1717432868631}],"lastBuild":1717432868632}
@@ -0,0 +1,37 @@
1
+ @import "colors.scss";
2
+
3
+ .authComponent {
4
+ #modal {
5
+ padding: 100px 0;
6
+ }
7
+ .modalContent {
8
+ overflow: initial;
9
+ }
10
+ .outerWrapper {
11
+ border: 1px solid var(--color_input_border_color);
12
+ background-color: var(--color_background_light);
13
+ border-radius: 5px;
14
+ }
15
+ .innerWrapper {
16
+ padding: 10px;
17
+ }
18
+ .title {
19
+ display: flex;
20
+ justify-content: center;
21
+ align-items: center;
22
+ border-bottom: 1px solid var(--color_input_border_color);
23
+ margin: 0px -10px;
24
+ padding: 0px 15px 5px;
25
+ i {
26
+ cursor: pointer;
27
+ margin-left: auto;
28
+ }
29
+ span {
30
+ width: 100%;
31
+ font-weight: bold;
32
+ font-size: 18px;
33
+ text-align: center;
34
+ color: var(--color_text_dark);
35
+ }
36
+ }
37
+ }
@@ -1,31 +1,26 @@
1
- $font-family: "proximanova";
1
+ /**
2
+ * Warning:
3
+ * Dont edit this file by hand, this file is used as default font implementation for the whole site
4
+ * and it been re generated if font settings are set through CMS on gatsby-node.js line # 346
5
+ **/
6
+
7
+ $font-family: 'Nunito Sans', sans-serif;
2
8
 
3
9
  :root {
4
- --font_family: "proximanova" !important;
10
+ --font_family: #{$font-family};
5
11
  }
6
12
 
7
- @font-face {
8
- font-family: "proximanova";
9
- src: url("/fonts/proximanovaregular.otf") format("opentype");
10
- font-weight: normal;
11
- }
12
- @font-face {
13
- font-family: "proximanova";
14
- src: url("/fonts/proximanovabold.otf") format("opentype");
15
- font-weight: bold;
16
- }
17
-
18
13
  %font-regular {
19
- font-family: var(--font_family);
14
+ font-family: 'Nunito Sans', sans-serif;
20
15
  font-weight: 400;
21
16
  }
22
17
 
23
18
  %font-semi {
24
- font-family: var(--font_family);
19
+ font-family: 'Nunito Sans', sans-serif;
25
20
  font-weight: 600;
26
21
  }
27
22
 
28
23
  %font-bold {
29
- font-family: var(--font_family);
24
+ font-family: 'Nunito Sans', sans-serif;
30
25
  font-weight: 700;
31
26
  }
@@ -1,15 +1,11 @@
1
-
2
- .leftColumn {
3
- overflow-y: auto;
1
+ .mainColumn {
4
2
  }
5
3
 
6
- .rightColumn {
7
- .imageSlider {
8
- height: auto;
9
- background-position: center;
10
- background-repeat: no-repeat;
11
- background-size: contain;
12
- min-height: 100%;
13
- overflow: hidden;
4
+ .masonry {
5
+ .grid {
6
+ display: flex;
7
+ }
8
+ .slide {
9
+ margin-bottom: -5px;
14
10
  }
15
11
  }