@jetbrains/kotlin-web-site-ui 3.1.0 → 4.0.0-alpha.2
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.
- package/out/blocks/formik-wrapper/index.css +8 -0
- package/out/blocks/formik-wrapper/index.js +4 -0
- package/out/blocks/formik-wrapper/input.js +38 -0
- package/out/blocks/formik-wrapper/privacy-checkbox.js +52 -0
- package/out/blocks/formik-wrapper/privacy-notice.js +49 -0
- package/out/blocks/formik-wrapper/privacy-notice.module.pcss.js +6 -0
- package/out/blocks/formik-wrapper/submit-button.js +21 -0
- package/out/components/cta-block/cta-block.js +45 -0
- package/out/components/cta-block/cta-block.module.pcss.js +8 -0
- package/out/components/cta-block/index.css +36 -0
- package/out/components/cta-block/index.js +3 -0
- package/out/components/footer/footer.js +73 -0
- package/out/components/footer/footer.module.pcss.js +13 -0
- package/out/components/footer/index.css +242 -0
- package/out/components/footer/index.js +3 -0
- package/out/components/footer/logo/jetbrains-logo.svg.js +38 -0
- package/out/components/footer/logo/logo.js +14 -0
- package/out/components/footer/logo/logo.module.pcss.js +4 -0
- package/out/components/footer/nav/nav-data.js +30 -0
- package/out/components/footer/nav/nav-item.js +31 -0
- package/out/components/footer/nav/nav-item.module.pcss.js +5 -0
- package/out/components/footer/nav/nav-list.js +18 -0
- package/out/components/footer/nav/nav-list.module.pcss.js +4 -0
- package/out/components/footer/social-list/social-data.js +38 -0
- package/out/components/footer/social-list/social-item/social-item.js +23 -0
- package/out/components/footer/social-list/social-item/social-item.module.pcss.js +5 -0
- package/out/components/footer/social-list/social-list.js +14 -0
- package/out/components/footer/social-list/social-list.module.pcss.js +4 -0
- package/out/components/footer/social-list/svg/github-logo.svg.js +35 -0
- package/out/components/footer/social-list/svg/reddit-logo.svg.js +33 -0
- package/out/components/footer/social-list/svg/slack-logo.svg.js +33 -0
- package/out/components/footer/social-list/svg/stackoverflow-logo.svg.js +36 -0
- package/out/components/footer/social-list/svg/twitter-logo.svg.js +33 -0
- package/out/components/footer/social-list/svg/youtube-logo.svg.js +35 -0
- package/out/components/grid/index.css +1081 -0
- package/out/components/grid/index.js +1 -0
- package/out/components/header/consts.js +3 -0
- package/out/components/header/header.js +68 -0
- package/out/components/header/header.module.pcss.js +6 -0
- package/out/components/header/horizontal-menu/horizontal-menu.js +110 -0
- package/out/components/header/horizontal-menu/horizontal-menu.module.pcss.js +16 -0
- package/out/components/header/index.css +402 -0
- package/out/components/header/index.js +4 -0
- package/out/components/header/logo-large/kotlin-logo-large.svg.js +53 -0
- package/out/components/header/logo-large/logo-large.js +40 -0
- package/out/components/header/logo-large/logo-large.module.pcss.js +6 -0
- package/out/components/header/logo-small/kotlin-logo-small.svg.js +47 -0
- package/out/components/header/logo-small/logo-small.js +33 -0
- package/out/components/header/logo-small/logo-small.module.pcss.js +7 -0
- package/out/components/header/menu-popup/menu-button/close-icon.svg.js +35 -0
- package/out/components/header/menu-popup/menu-button/hamburger-icon.svg.js +35 -0
- package/out/components/header/menu-popup/menu-button/menu-button.js +22 -0
- package/out/components/header/menu-popup/menu-button/menu-button.module.pcss.js +4 -0
- package/out/components/header/menu-popup/menu-popup.js +104 -0
- package/out/components/header/menu-popup/menu-popup.module.pcss.js +9 -0
- package/out/components/header/nav-scheme.js +135 -0
- package/out/components/header/search-button/search-button.js +22 -0
- package/out/components/header/search-button/search-button.module.pcss.js +5 -0
- package/out/components/header/search-button/search.svg.js +34 -0
- package/out/components/popup/index.css +35 -0
- package/out/components/popup/index.js +3 -0
- package/out/components/popup/popup.js +61 -0
- package/out/components/popup/popup.module.pcss.js +6 -0
- package/out/components/quotes-slider/index.css +86 -0
- package/out/components/quotes-slider/index.js +3 -0
- package/out/components/quotes-slider/quites-slider.js +100 -0
- package/out/components/quotes-slider/quote.svg.js +33 -0
- package/out/components/quotes-slider/quotes-slider.module.pcss.js +13 -0
- package/out/components/quotes-slider/slider-arrow.svg.js +33 -0
- package/out/components/top-menu/dropdown-menu/arrow-dropdown-icon.svg.js +34 -0
- package/out/components/top-menu/dropdown-menu/dropdown-menu.js +81 -0
- package/out/components/top-menu/dropdown-menu/dropdown-menu.module.pcss.js +14 -0
- package/out/components/top-menu/horizontal-menu/horizontal-menu.js +48 -0
- package/out/components/top-menu/horizontal-menu/horizontal-menu.module.pcss.js +6 -0
- package/out/components/top-menu/index.css +224 -0
- package/out/components/top-menu/index.js +3 -0
- package/out/components/top-menu/top-menu.js +51 -0
- package/out/components/top-menu/top-menu.module.pcss.js +6 -0
- package/out/components/typography/create-text-cn.js +26 -0
- package/out/components/typography/hooks.js +6 -0
- package/out/components/typography/index.css +176 -0
- package/out/components/typography/index.js +3 -0
- package/out/components/youtube-player/index.css +119 -0
- package/out/components/youtube-player/index.js +3 -0
- package/out/components/youtube-player/loading_24.svg.js +31 -0
- package/out/components/youtube-player/play_24.svg.js +31 -0
- package/out/components/youtube-player/utils.js +28 -0
- package/out/components/youtube-player/youtube-player.js +152 -0
- package/out/components/youtube-player/youtube-player.module.pcss.js +16 -0
- package/out/packages/data-services/index.js +9 -0
- package/out/packages/data-services/marketo-submiter.js +62 -0
- package/out/packages/data-services/privacy-consent-ids.json.js +5 -0
- package/out/packages/data-services/privacy-consent-service.js +44 -0
- package/out/packages/data-services/urls.js +4 -0
- package/{dist → out}/svg/kotlin_64.svg +0 -0
- package/package.json +19 -2
- package/dist/ctaBlock.css +0 -2
- package/dist/ctaBlock.css.map +0 -1
- package/dist/ctaBlock.js +0 -3
- package/dist/ctaBlock.js.LICENSE.txt +0 -8
- package/dist/ctaBlock.js.map +0 -1
- package/dist/dataServices.js +0 -3
- package/dist/dataServices.js.LICENSE.txt +0 -17
- package/dist/dataServices.js.map +0 -1
- package/dist/footer.css +0 -2
- package/dist/footer.css.map +0 -1
- package/dist/footer.js +0 -3
- package/dist/footer.js.LICENSE.txt +0 -14
- package/dist/footer.js.map +0 -1
- package/dist/formikWrappers.css +0 -2
- package/dist/formikWrappers.css.map +0 -1
- package/dist/formikWrappers.js +0 -3
- package/dist/formikWrappers.js.LICENSE.txt +0 -14
- package/dist/formikWrappers.js.map +0 -1
- package/dist/grid.css +0 -2
- package/dist/grid.css.map +0 -1
- package/dist/grid.js +0 -2
- package/dist/grid.js.map +0 -1
- package/dist/header.css +0 -2
- package/dist/header.css.map +0 -1
- package/dist/header.js +0 -3
- package/dist/header.js.LICENSE.txt +0 -14
- package/dist/header.js.map +0 -1
- package/dist/popup.css +0 -2
- package/dist/popup.css.map +0 -1
- package/dist/popup.js +0 -3
- package/dist/popup.js.LICENSE.txt +0 -26
- package/dist/popup.js.map +0 -1
- package/dist/quotesSlider.css +0 -2
- package/dist/quotesSlider.css.map +0 -1
- package/dist/quotesSlider.js +0 -3
- package/dist/quotesSlider.js.LICENSE.txt +0 -14
- package/dist/quotesSlider.js.map +0 -1
- package/dist/svg/loading_24.svg +0 -1
- package/dist/svg/play_24.svg +0 -1
- package/dist/svg/quote.svg +0 -3
- package/dist/svg/slider-arrow.svg +0 -3
- package/dist/topMenu.css +0 -2
- package/dist/topMenu.css.map +0 -1
- package/dist/topMenu.js +0 -3
- package/dist/topMenu.js.LICENSE.txt +0 -14
- package/dist/topMenu.js.map +0 -1
- package/dist/typography.css +0 -2
- package/dist/typography.css.map +0 -1
- package/dist/typography.js +0 -2
- package/dist/typography.js.map +0 -1
- package/dist/youtubePlayer.css +0 -2
- package/dist/youtubePlayer.css.map +0 -1
- package/dist/youtubePlayer.js +0 -3
- package/dist/youtubePlayer.js.LICENSE.txt +0 -14
- package/dist/youtubePlayer.js.map +0 -1
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import Input from '@rescui/input';
|
|
3
|
+
import { useField, useFormikContext } from 'formik';
|
|
4
|
+
|
|
5
|
+
const FormikInput = ({
|
|
6
|
+
name,
|
|
7
|
+
onBlur,
|
|
8
|
+
onChange,
|
|
9
|
+
disabled,
|
|
10
|
+
...restProps
|
|
11
|
+
}) => {
|
|
12
|
+
const [formikProps, meta] = useField(name);
|
|
13
|
+
const {
|
|
14
|
+
status,
|
|
15
|
+
isSubmitting,
|
|
16
|
+
submitCount
|
|
17
|
+
} = useFormikContext();
|
|
18
|
+
return jsx(Input, Object.assign({}, restProps, formikProps, {
|
|
19
|
+
onBlur: e => {
|
|
20
|
+
if (onBlur) {
|
|
21
|
+
onBlur(e);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
formikProps.onBlur(e);
|
|
25
|
+
},
|
|
26
|
+
onChange: e => {
|
|
27
|
+
if (onChange) {
|
|
28
|
+
onChange(e);
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
formikProps.onChange(e);
|
|
32
|
+
},
|
|
33
|
+
disabled: isSubmitting || status && (status.disabled || status.submitted) || disabled,
|
|
34
|
+
error: (meta.touched || submitCount > 0) && meta.error
|
|
35
|
+
}), void 0);
|
|
36
|
+
};
|
|
37
|
+
|
|
38
|
+
export { FormikInput };
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useField, useFormikContext } from 'formik';
|
|
3
|
+
import { PrivacyNotice } from './privacy-notice.js';
|
|
4
|
+
import { Checkbox } from '@rescui/checkbox';
|
|
5
|
+
|
|
6
|
+
const FormikPrivacyCheckbox = ({
|
|
7
|
+
consentId,
|
|
8
|
+
className,
|
|
9
|
+
privacy
|
|
10
|
+
}) => {
|
|
11
|
+
const name = 'privacyConsent';
|
|
12
|
+
const [{
|
|
13
|
+
value,
|
|
14
|
+
onBlur: onBlurFromFormik
|
|
15
|
+
}, meta] = useField({
|
|
16
|
+
name,
|
|
17
|
+
validate: val => {
|
|
18
|
+
if (!val) {
|
|
19
|
+
return 'This field is required';
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
});
|
|
23
|
+
const {
|
|
24
|
+
submitCount,
|
|
25
|
+
setFieldValue,
|
|
26
|
+
isSubmitting,
|
|
27
|
+
status
|
|
28
|
+
} = useFormikContext();
|
|
29
|
+
return jsx("div", Object.assign({
|
|
30
|
+
className: className
|
|
31
|
+
}, {
|
|
32
|
+
children: jsx(Checkbox, Object.assign({
|
|
33
|
+
name: name,
|
|
34
|
+
onBlur: e => {
|
|
35
|
+
onBlurFromFormik(e);
|
|
36
|
+
},
|
|
37
|
+
onChange: e => {
|
|
38
|
+
setFieldValue(name, e.target.checked);
|
|
39
|
+
},
|
|
40
|
+
checked: Boolean(value) || false,
|
|
41
|
+
disabled: isSubmitting || status && (status.disabled || status.submitted),
|
|
42
|
+
error: (meta.touched || submitCount > 0) && meta.error
|
|
43
|
+
}, {
|
|
44
|
+
children: jsx(PrivacyNotice, {
|
|
45
|
+
consentId: consentId,
|
|
46
|
+
privacy: privacy
|
|
47
|
+
}, void 0)
|
|
48
|
+
}), void 0)
|
|
49
|
+
}), void 0);
|
|
50
|
+
};
|
|
51
|
+
|
|
52
|
+
export { FormikPrivacyCheckbox };
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useState, useEffect } from 'react';
|
|
3
|
+
import Tooltip from '@rescui/tooltip';
|
|
4
|
+
import { InfoIcon } from '@rescui/icons';
|
|
5
|
+
import styles from './privacy-notice.module.pcss.js';
|
|
6
|
+
import classNames from 'classnames';
|
|
7
|
+
|
|
8
|
+
const PrivacyNotice = ({
|
|
9
|
+
privacy,
|
|
10
|
+
consentId
|
|
11
|
+
}) => {
|
|
12
|
+
const [textHtml, setTextHtml] = useState('');
|
|
13
|
+
useEffect(() => {
|
|
14
|
+
if (consentId) {
|
|
15
|
+
privacy.getConsentOptions(consentId).then(({
|
|
16
|
+
text
|
|
17
|
+
}) => setTextHtml(text));
|
|
18
|
+
}
|
|
19
|
+
}, [consentId]);
|
|
20
|
+
return jsxs("span", Object.assign({
|
|
21
|
+
className: styles.privacyNotice
|
|
22
|
+
}, {
|
|
23
|
+
children: [jsxs("span", Object.assign({
|
|
24
|
+
className: classNames(styles.message, 'ktl-text-3')
|
|
25
|
+
}, {
|
|
26
|
+
children: ["By submitting this form I agree to the", ' ', jsx("a", Object.assign({
|
|
27
|
+
target: "_blank",
|
|
28
|
+
rel: "noreferrer noopener",
|
|
29
|
+
href: "https://www.jetbrains.com/company/privacy.html",
|
|
30
|
+
className: "rs-link"
|
|
31
|
+
}, {
|
|
32
|
+
children: "JetBrains Privacy Policy"
|
|
33
|
+
}), void 0)]
|
|
34
|
+
}), void 0), textHtml && jsx(Tooltip, Object.assign({
|
|
35
|
+
content: jsx("span", {
|
|
36
|
+
dangerouslySetInnerHTML: {
|
|
37
|
+
__html: textHtml
|
|
38
|
+
}
|
|
39
|
+
}, void 0)
|
|
40
|
+
}, {
|
|
41
|
+
children: jsx(InfoIcon, {
|
|
42
|
+
size: "s",
|
|
43
|
+
className: styles.icon
|
|
44
|
+
}, void 0)
|
|
45
|
+
}), void 0)]
|
|
46
|
+
}), void 0);
|
|
47
|
+
};
|
|
48
|
+
|
|
49
|
+
export { PrivacyNotice };
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useFormikContext } from 'formik';
|
|
3
|
+
import Button from '@rescui/button';
|
|
4
|
+
|
|
5
|
+
const FormikSubmitButton = ({
|
|
6
|
+
disabled,
|
|
7
|
+
busy,
|
|
8
|
+
...restProps
|
|
9
|
+
}) => {
|
|
10
|
+
const {
|
|
11
|
+
isValid,
|
|
12
|
+
isSubmitting
|
|
13
|
+
} = useFormikContext();
|
|
14
|
+
return jsx(Button, Object.assign({}, restProps, {
|
|
15
|
+
disabled: !isValid || disabled,
|
|
16
|
+
busy: isSubmitting || busy,
|
|
17
|
+
type: 'submit'
|
|
18
|
+
}), void 0);
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
export { FormikSubmitButton };
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import styles from './cta-block.module.pcss.js';
|
|
3
|
+
|
|
4
|
+
const CtaBlock = ({
|
|
5
|
+
topTitle,
|
|
6
|
+
mainTitle,
|
|
7
|
+
children,
|
|
8
|
+
buttons
|
|
9
|
+
}) => {
|
|
10
|
+
return jsx("div", Object.assign({
|
|
11
|
+
className: styles.wrapper
|
|
12
|
+
}, {
|
|
13
|
+
children: jsxs("div", Object.assign({
|
|
14
|
+
className: 'ktl-container'
|
|
15
|
+
}, {
|
|
16
|
+
children: [topTitle && jsx("div", Object.assign({
|
|
17
|
+
className: styles.topTitle
|
|
18
|
+
}, {
|
|
19
|
+
children: jsx("div", Object.assign({
|
|
20
|
+
className: 'ktl-text-2 ktl-text-2_theme_dark'
|
|
21
|
+
}, {
|
|
22
|
+
children: topTitle
|
|
23
|
+
}), void 0)
|
|
24
|
+
}), void 0), jsx("div", Object.assign({
|
|
25
|
+
className: styles.mainTitle
|
|
26
|
+
}, {
|
|
27
|
+
children: jsx("h2", Object.assign({
|
|
28
|
+
className: 'ktl-hero ktl-hero_theme_dark'
|
|
29
|
+
}, {
|
|
30
|
+
children: mainTitle
|
|
31
|
+
}), void 0)
|
|
32
|
+
}), void 0), children && jsx("div", Object.assign({
|
|
33
|
+
className: styles.content
|
|
34
|
+
}, {
|
|
35
|
+
children: children
|
|
36
|
+
}), void 0), jsx("div", {}, void 0), buttons && jsx("div", Object.assign({
|
|
37
|
+
className: styles.buttons
|
|
38
|
+
}, {
|
|
39
|
+
children: buttons
|
|
40
|
+
}), void 0)]
|
|
41
|
+
}), void 0)
|
|
42
|
+
}), void 0);
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
export { CtaBlock };
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
var styles = {
|
|
2
|
+
"wrapper": "ktl-cta-block-module_wrapper_60Mug",
|
|
3
|
+
"topTitle": "ktl-cta-block-module_top-title_7p65f",
|
|
4
|
+
"mainTitle": "ktl-cta-block-module_main-title_r-947",
|
|
5
|
+
"content": "ktl-cta-block-module_content_9up3O",
|
|
6
|
+
"buttons": "ktl-cta-block-module_buttons_TbaMj"
|
|
7
|
+
};
|
|
8
|
+
export { styles as default };
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
.ktl-cta-block-module_wrapper_60Mug {
|
|
2
|
+
background: radial-gradient(89.53% 145.96% at 0.34% 100.79%, #EF4857 0%, #DE4970 17.58%, #B44DB0 50.31%, #7F52FF 97.03%);
|
|
3
|
+
color: #fff;
|
|
4
|
+
padding: 32px 0;
|
|
5
|
+
}
|
|
6
|
+
@media (min-width: 768px) {.ktl-cta-block-module_wrapper_60Mug {
|
|
7
|
+
padding: 48px 0
|
|
8
|
+
}
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
.ktl-cta-block-module_top-title_7p65f {
|
|
12
|
+
max-width: 330px;
|
|
13
|
+
margin-bottom: 64px;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
@media (min-width: 768px) {
|
|
17
|
+
|
|
18
|
+
.ktl-cta-block-module_top-title_7p65f {
|
|
19
|
+
margin-bottom: 96px
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.ktl-cta-block-module_main-title_r-947 {
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
.ktl-cta-block-module_content_9up3O {
|
|
27
|
+
margin-top: 32px;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.ktl-cta-block-module_buttons_TbaMj {
|
|
31
|
+
margin-top: 32px;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.ktl-cta-block-module_buttons_TbaMj button {
|
|
35
|
+
margin-right: 16px;
|
|
36
|
+
}
|
|
@@ -0,0 +1,73 @@
|
|
|
1
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useTheme } from '@rescui/ui-contexts';
|
|
3
|
+
import { SocialList } from './social-list/social-list.js';
|
|
4
|
+
import { NavList } from './nav/nav-list.js';
|
|
5
|
+
import { Logo } from './logo/logo.js';
|
|
6
|
+
import classNames from 'classnames';
|
|
7
|
+
import styles from './footer.module.pcss.js';
|
|
8
|
+
import { useTextStyles } from '@rescui/typography';
|
|
9
|
+
|
|
10
|
+
const Footer = ({
|
|
11
|
+
forwardedRef,
|
|
12
|
+
className
|
|
13
|
+
}) => {
|
|
14
|
+
const textCn = useTextStyles();
|
|
15
|
+
const theme = useTheme();
|
|
16
|
+
const linkClass = textCn('rs-link', {
|
|
17
|
+
hardness: 'pale',
|
|
18
|
+
mode: 'clear'
|
|
19
|
+
});
|
|
20
|
+
return jsxs("footer", Object.assign({
|
|
21
|
+
className: classNames(styles.footer, className, {
|
|
22
|
+
[styles.footerDarkTheme]: theme === 'dark'
|
|
23
|
+
}),
|
|
24
|
+
ref: forwardedRef
|
|
25
|
+
}, {
|
|
26
|
+
children: [jsxs("div", Object.assign({
|
|
27
|
+
className: styles.socialListArea
|
|
28
|
+
}, {
|
|
29
|
+
children: [jsx("div", Object.assign({
|
|
30
|
+
className: classNames(textCn('rs-h4'), styles.socialListTitle)
|
|
31
|
+
}, {
|
|
32
|
+
children: "Stay in touch:"
|
|
33
|
+
}), void 0), jsx(SocialList, {}, void 0)]
|
|
34
|
+
}), void 0), jsx(NavList, {
|
|
35
|
+
className: styles.navListArea
|
|
36
|
+
}, void 0), jsxs("div", Object.assign({
|
|
37
|
+
className: classNames(textCn('rs-text-3', {
|
|
38
|
+
hardness: 'pale'
|
|
39
|
+
}), styles.textArea)
|
|
40
|
+
}, {
|
|
41
|
+
children: [jsxs("div", Object.assign({
|
|
42
|
+
className: styles.copyright
|
|
43
|
+
}, {
|
|
44
|
+
children: ["Kotlin\u2122 is\u00A0protected under the", ' ', jsx("a", Object.assign({
|
|
45
|
+
className: classNames(linkClass, styles.underlinedLink),
|
|
46
|
+
href: "https://kotlinlang.org/foundation/kotlin-foundation.html"
|
|
47
|
+
}, {
|
|
48
|
+
children: "Kotlin\u00A0Foundation"
|
|
49
|
+
}), void 0), ' ', "and licensed under the", ' ', jsx("a", Object.assign({
|
|
50
|
+
className: classNames(linkClass, styles.underlinedLink),
|
|
51
|
+
target: "_blank",
|
|
52
|
+
href: "https://github.com/JetBrains/kotlin-web-site/blob/master/LICENSE"
|
|
53
|
+
}, {
|
|
54
|
+
children: "Apache 2\u00A0license"
|
|
55
|
+
}), void 0), "."]
|
|
56
|
+
}), void 0), ' ', jsxs("div", Object.assign({
|
|
57
|
+
className: styles.motto
|
|
58
|
+
}, {
|
|
59
|
+
children: ["Supported and developed by\u00A0", jsx("a", Object.assign({
|
|
60
|
+
className: classNames(linkClass, styles.underlinedLink),
|
|
61
|
+
href: "https://www.jetbrains.com/",
|
|
62
|
+
target: "_blank"
|
|
63
|
+
}, {
|
|
64
|
+
children: "JetBrains"
|
|
65
|
+
}), void 0)]
|
|
66
|
+
}), void 0)]
|
|
67
|
+
}), void 0), jsx(Logo, {
|
|
68
|
+
className: styles.logoArea
|
|
69
|
+
}, void 0)]
|
|
70
|
+
}), void 0);
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
export { Footer };
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
var styles = {
|
|
2
|
+
"footer": "ktl-footer-module_footer_m67Up",
|
|
3
|
+
"footerDarkTheme": "ktl-footer-module_footer-dark-theme_YUAFI",
|
|
4
|
+
"underlinedLink": "ktl-footer-module_underlined-link_G0wkq",
|
|
5
|
+
"socialListArea": "ktl-footer-module_social-list-area_bS3eE",
|
|
6
|
+
"socialListTitle": "ktl-footer-module_social-list-title_HPzIP",
|
|
7
|
+
"navListArea": "ktl-footer-module_nav-list-area_7JJh0",
|
|
8
|
+
"textArea": "ktl-footer-module_text-area_flccc",
|
|
9
|
+
"logoArea": "ktl-footer-module_logo-area_SsNTa",
|
|
10
|
+
"copyright": "ktl-footer-module_copyright_XjtgY",
|
|
11
|
+
"motto": "ktl-footer-module_motto_SiU1V"
|
|
12
|
+
};
|
|
13
|
+
export { styles as default };
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
.ktl-social-list-module_social-list_K2Nqu {
|
|
2
|
+
display: grid;
|
|
3
|
+
-moz-column-gap: 18px;
|
|
4
|
+
column-gap: 18px;
|
|
5
|
+
grid-auto-flow: column;
|
|
6
|
+
justify-content: start;
|
|
7
|
+
margin: -6px 0;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
@media (max-width: 480px) {
|
|
11
|
+
.ktl-social-list-module_social-list_K2Nqu {
|
|
12
|
+
-moz-column-gap: 8px;
|
|
13
|
+
column-gap: 8px;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
:root {
|
|
18
|
+
--ktl-light-grey: #f4f4f4;
|
|
19
|
+
--ktl-dark-100: rgba(39, 40, 44, 1);
|
|
20
|
+
--ktl-dark-bg-hard: rgba(27, 27, 27, 1);
|
|
21
|
+
--ktl-icon-color-dark: rgba(39, 40, 44, 0.75);
|
|
22
|
+
--ktl-color-white-light: rgba(255, 255, 255, 0.75);
|
|
23
|
+
--ktl-transition-xfast: 100ms;
|
|
24
|
+
--ktl-transition-fast: 300ms;
|
|
25
|
+
--ktl-color-primary-light-theme: #7f52ff;
|
|
26
|
+
--ktl-color-dark-40: rgba(39, 40, 44, 0.4);
|
|
27
|
+
--ktl-light-text-hard: rgba(39, 40, 44, 1);
|
|
28
|
+
--ktl-light-dark-20: rgba(39, 40, 44, 0.2);
|
|
29
|
+
--ktl-overlay-z-index: 900;
|
|
30
|
+
--ktl-top-menu-z-index: 905;
|
|
31
|
+
--ktl-header-z-index: 906;
|
|
32
|
+
--ktl-header-height-mobile: 48px;
|
|
33
|
+
--ktl-font-family-inter: Inter, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Droid Sans', 'Helvetica Neue', Arial, sans-serif;
|
|
34
|
+
--rs-font-family-ui: var(--ktl-font-family-inter);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.ktl-social-item-module_social-item_GpKEF {
|
|
38
|
+
width: 36px;
|
|
39
|
+
height: 36px;
|
|
40
|
+
padding: 6px;
|
|
41
|
+
display: flex;
|
|
42
|
+
align-items: center;
|
|
43
|
+
justify-content: center;
|
|
44
|
+
box-sizing: border-box;
|
|
45
|
+
border-radius: 50%;
|
|
46
|
+
transition: color var(--ktl-transition-xfast),
|
|
47
|
+
background-color var(--ktl-transition-xfast);
|
|
48
|
+
color: var(--ktl-icon-color-dark);
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
.ktl-social-item-module_social-item_GpKEF:hover,
|
|
52
|
+
.ktl-social-item-module_social-item_GpKEF :focus {
|
|
53
|
+
color: var(--ktl-icon-color-dark);
|
|
54
|
+
background: rgba(39, 40, 44, 0.05);
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.ktl-social-item-module_social-item-dark-theme_rOJWT {
|
|
58
|
+
color: var(--ktl-color-white-light);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
.ktl-social-item-module_social-item-dark-theme_rOJWT:hover, .ktl-social-item-module_social-item-dark-theme_rOJWT:focus {
|
|
62
|
+
color: var(--ktl-color-white-light);
|
|
63
|
+
background: rgba(255, 255, 255, 0.1);
|
|
64
|
+
}
|
|
65
|
+
.ktl-nav-list-module_nav-list_-k4np {
|
|
66
|
+
display: flex;
|
|
67
|
+
flex-wrap: wrap;
|
|
68
|
+
margin: 0;
|
|
69
|
+
padding: 0;
|
|
70
|
+
list-style: none;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
:root {
|
|
74
|
+
--ktl-light-grey: #f4f4f4;
|
|
75
|
+
--ktl-dark-100: rgba(39, 40, 44, 1);
|
|
76
|
+
--ktl-dark-bg-hard: rgba(27, 27, 27, 1);
|
|
77
|
+
--ktl-icon-color-dark: rgba(39, 40, 44, 0.75);
|
|
78
|
+
--ktl-color-white-light: rgba(255, 255, 255, 0.75);
|
|
79
|
+
--ktl-transition-xfast: 100ms;
|
|
80
|
+
--ktl-transition-fast: 300ms;
|
|
81
|
+
--ktl-color-primary-light-theme: #7f52ff;
|
|
82
|
+
--ktl-color-dark-40: rgba(39, 40, 44, 0.4);
|
|
83
|
+
--ktl-light-text-hard: rgba(39, 40, 44, 1);
|
|
84
|
+
--ktl-light-dark-20: rgba(39, 40, 44, 0.2);
|
|
85
|
+
--ktl-overlay-z-index: 900;
|
|
86
|
+
--ktl-top-menu-z-index: 905;
|
|
87
|
+
--ktl-header-z-index: 906;
|
|
88
|
+
--ktl-header-height-mobile: 48px;
|
|
89
|
+
--ktl-font-family-inter: Inter, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Droid Sans', 'Helvetica Neue', Arial, sans-serif;
|
|
90
|
+
--rs-font-family-ui: var(--ktl-font-family-inter);
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
.ktl-nav-item-module_nav-item_isoyN {
|
|
94
|
+
padding-right: 12px;
|
|
95
|
+
margin-right: 12px;
|
|
96
|
+
line-height: 32px;
|
|
97
|
+
position: relative;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
.ktl-nav-item-module_nav-item_isoyN:not(:last-child)::after {
|
|
101
|
+
position: absolute;
|
|
102
|
+
content: '';
|
|
103
|
+
right: 0;
|
|
104
|
+
top: 50%;
|
|
105
|
+
width: 1px;
|
|
106
|
+
height: 12px;
|
|
107
|
+
transform: translateY(-50%);
|
|
108
|
+
background-color: rgba(39, 40, 44, 0.5);
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
.ktl-nav-item-module_nav-item_isoyN:last-child {
|
|
112
|
+
padding-right: 0;
|
|
113
|
+
margin-right: 0;
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
.ktl-nav-item-module_nav-item-dark-theme_FijdH:not(:last-child)::after {
|
|
117
|
+
background-color: rgba(255, 255, 255, 0.50)
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
@media (min-width: 640px) {
|
|
121
|
+
.ktl-nav-item-module_nav-item_isoyN {
|
|
122
|
+
line-height: 1.5;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
.ktl-logo-module_link_bNecp {
|
|
126
|
+
text-decoration: none;
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
:root {
|
|
130
|
+
--ktl-light-grey: #f4f4f4;
|
|
131
|
+
--ktl-dark-100: rgba(39, 40, 44, 1);
|
|
132
|
+
--ktl-dark-bg-hard: rgba(27, 27, 27, 1);
|
|
133
|
+
--ktl-icon-color-dark: rgba(39, 40, 44, 0.75);
|
|
134
|
+
--ktl-color-white-light: rgba(255, 255, 255, 0.75);
|
|
135
|
+
--ktl-transition-xfast: 100ms;
|
|
136
|
+
--ktl-transition-fast: 300ms;
|
|
137
|
+
--ktl-color-primary-light-theme: #7f52ff;
|
|
138
|
+
--ktl-color-dark-40: rgba(39, 40, 44, 0.4);
|
|
139
|
+
--ktl-light-text-hard: rgba(39, 40, 44, 1);
|
|
140
|
+
--ktl-light-dark-20: rgba(39, 40, 44, 0.2);
|
|
141
|
+
--ktl-overlay-z-index: 900;
|
|
142
|
+
--ktl-top-menu-z-index: 905;
|
|
143
|
+
--ktl-header-z-index: 906;
|
|
144
|
+
--ktl-header-height-mobile: 48px;
|
|
145
|
+
--ktl-font-family-inter: Inter, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Droid Sans', 'Helvetica Neue', Arial, sans-serif;
|
|
146
|
+
--rs-font-family-ui: var(--ktl-font-family-inter);
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
.ktl-footer-module_footer_m67Up {
|
|
150
|
+
background: var(--ktl-light-grey);
|
|
151
|
+
padding: 32px 16px 16px;
|
|
152
|
+
min-width: 320px;
|
|
153
|
+
box-sizing: border-box;
|
|
154
|
+
display: grid;
|
|
155
|
+
grid-template-columns: auto 75px;
|
|
156
|
+
grid-template-rows: auto;
|
|
157
|
+
grid-template-areas:
|
|
158
|
+
'social-list social-list'
|
|
159
|
+
'nav-list nav-list'
|
|
160
|
+
'text logo';
|
|
161
|
+
grid-column-gap: 16px;
|
|
162
|
+
font-family: var(--ktl-font-family-inter);
|
|
163
|
+
text-rendering:optimizeLegibility;
|
|
164
|
+
-webkit-font-smoothing:antialiased;
|
|
165
|
+
-moz-osx-font-smoothing:grayscale;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.ktl-footer-module_footer-dark-theme_YUAFI {
|
|
169
|
+
background: var(--ktl-dark-100);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
.ktl-footer-module_footer-dark-theme_YUAFI .ktl-footer-module_underlined-link_G0wkq {
|
|
173
|
+
border-color: inherit;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
.ktl-footer-module_social-list-area_bS3eE {
|
|
177
|
+
grid-area: social-list;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
.ktl-footer-module_social-list-title_HPzIP {
|
|
181
|
+
margin-bottom: 8px;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
.ktl-footer-module_nav-list-area_7JJh0 {
|
|
185
|
+
grid-area: nav-list;
|
|
186
|
+
margin: 24px 0 32px;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
.ktl-footer-module_text-area_flccc {
|
|
190
|
+
grid-area: text;
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
.ktl-footer-module_logo-area_SsNTa {
|
|
194
|
+
grid-area: logo;
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
.ktl-footer-module_copyright_XjtgY {
|
|
198
|
+
display: inline;
|
|
199
|
+
}
|
|
200
|
+
|
|
201
|
+
.ktl-footer-module_motto_SiU1V {
|
|
202
|
+
display: inline;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
.ktl-footer-module_underlined-link_G0wkq {
|
|
206
|
+
border-color: var(--ktl-light-dark-20);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
@media (min-width: 641px) {
|
|
210
|
+
.ktl-footer-module_footer_m67Up {
|
|
211
|
+
padding: 32px;
|
|
212
|
+
grid-template-columns: auto 60px;
|
|
213
|
+
grid-template-areas:
|
|
214
|
+
'social-list logo'
|
|
215
|
+
'nav-list logo'
|
|
216
|
+
'text text';
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
.ktl-footer-module_text-area_flccc {
|
|
220
|
+
display: flex;
|
|
221
|
+
justify-content: space-between;
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
.ktl-footer-module_motto_SiU1V {
|
|
225
|
+
margin-left: 16px;
|
|
226
|
+
text-align: right;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
.ktl-footer-module_social-list-area_bS3eE {
|
|
230
|
+
display: flex;
|
|
231
|
+
align-items: center;
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
.ktl-footer-module_social-list-title_HPzIP {
|
|
235
|
+
margin-bottom: 0;
|
|
236
|
+
margin-right: 24px;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
.ktl-footer-module_nav-list-area_7JJh0 {
|
|
240
|
+
margin: 16px 0;
|
|
241
|
+
}
|
|
242
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
|
|
3
|
+
var _path, _path2, _path3;
|
|
4
|
+
|
|
5
|
+
function _extends() {
|
|
6
|
+
_extends = Object.assign || function (target) {
|
|
7
|
+
for (var i = 1; i < arguments.length; i++) {
|
|
8
|
+
var source = arguments[i];
|
|
9
|
+
|
|
10
|
+
for (var key in source) {
|
|
11
|
+
if (Object.prototype.hasOwnProperty.call(source, key)) {
|
|
12
|
+
target[key] = source[key];
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
return target;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
return _extends.apply(this, arguments);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
const SvgJetbrainsLogo = props => /*#__PURE__*/React.createElement("svg", _extends({
|
|
24
|
+
viewBox: "0 0 60 60",
|
|
25
|
+
fill: "none",
|
|
26
|
+
xmlns: "http://www.w3.org/2000/svg"
|
|
27
|
+
}, props), _path || (_path = /*#__PURE__*/React.createElement("path", {
|
|
28
|
+
d: "M60 0H0v60h60V0Z",
|
|
29
|
+
fill: "#000"
|
|
30
|
+
})), _path2 || (_path2 = /*#__PURE__*/React.createElement("path", {
|
|
31
|
+
d: "M27.648 48.706H5.178v3.765h22.47v-3.765ZM4.941 15.765l1.765-1.647c.47.588.941.941 1.53.941.705 0 1.058-.47 1.058-1.412V7.412H12v6.235c0 1.177-.353 2.118-.94 2.706-.59.588-1.53.941-2.707.941-1.765.118-2.706-.588-3.412-1.529ZM12.586 7.53h7.883v2.235h-5.177v1.529h4.706v2.118h-4.706v1.53h5.294v2.352h-7.882l-.118-9.765ZM24 9.882h-2.941V7.53h8.588v2.353h-2.941v7.412H24V9.882ZM5.177 19.53h5.06c1.175 0 2.117.352 2.705.823.353.353.588.941.588 1.647 0 1.177-.588 1.765-1.53 2.235 1.177.353 1.883 1.06 1.883 2.353 0 1.647-1.412 2.706-3.647 2.706H5.177V19.53Zm5.647 3.058c0-.588-.47-.823-1.176-.823H7.883v1.764H9.53c.824-.117 1.294-.352 1.294-.94Zm-.94 2.824H7.764v1.765h2.118c.824 0 1.294-.353 1.294-.942 0-.588-.47-.823-1.294-.823ZM14.352 19.53h4.588c1.53 0 2.471.352 3.177 1.058.588.589.823 1.294.823 2.236 0 1.53-.823 2.47-2 3.058l2.353 3.412h-3.058l-2-2.94h-1.177v2.94h-2.706V19.53Zm4.47 4.705c.942 0 1.413-.47 1.413-1.176 0-.824-.589-1.177-1.412-1.177h-1.765v2.353h1.765Z",
|
|
32
|
+
fill: "#fff"
|
|
33
|
+
})), _path3 || (_path3 = /*#__PURE__*/React.createElement("path", {
|
|
34
|
+
d: "M26.119 19.53h2.588l4.117 9.882h-2.94l-.707-1.765h-3.764l-.706 1.765h-2.824l4.236-9.883Zm2.352 5.882-1.058-2.706-1.06 2.706h2.118ZM33.177 19.53h2.706v9.764h-2.706V19.53ZM36.588 19.53h2.471l4 5.176v-5.177h2.706v9.765h-2.353L39.294 24v5.412h-2.706v-9.883ZM46 27.883l1.529-1.765c.941.824 2 1.177 3.176 1.177.706 0 1.177-.236 1.177-.706s-.353-.588-1.647-.941c-2.118-.47-3.647-1.06-3.647-3.06 0-1.764 1.411-3.176 3.764-3.176 1.648 0 2.942.47 4 1.294l-1.411 1.883c-.942-.588-1.883-.941-2.706-.941-.706 0-.941.235-.941.588 0 .47.353.588 1.647.941 2.235.47 3.647 1.177 3.647 3.059 0 2-1.53 3.176-4 3.176-1.765.118-3.412-.47-4.589-1.53Z",
|
|
35
|
+
fill: "#fff"
|
|
36
|
+
})));
|
|
37
|
+
|
|
38
|
+
export { SvgJetbrainsLogo as default };
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import classNames from 'classnames';
|
|
3
|
+
import SvgJetbrainsLogo from './jetbrains-logo.svg.js';
|
|
4
|
+
import styles from './logo.module.pcss.js';
|
|
5
|
+
|
|
6
|
+
const Logo = props => jsx("a", Object.assign({
|
|
7
|
+
href: "https://jetbrains.com",
|
|
8
|
+
target: "_blank",
|
|
9
|
+
className: classNames(props.className, styles.link)
|
|
10
|
+
}, {
|
|
11
|
+
children: jsx(SvgJetbrainsLogo, {}, void 0)
|
|
12
|
+
}), void 0);
|
|
13
|
+
|
|
14
|
+
export { Logo };
|