@jetbrains/kotlin-web-site-ui 4.10.0 → 4.10.1-alpha.1

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.
@@ -41,6 +41,14 @@
41
41
  --ktl-header-height-mobile: 52px;
42
42
  --ktl-font-family-inter: Inter, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Droid Sans', 'Helvetica Neue', Arial, sans-serif;
43
43
  --ktl-focus-outline: rgba(107,87,255,.8) 0 0 0 4px;
44
+
45
+ }
46
+
47
+ :root {
48
+ --website-ui-text-color: #19191c;
49
+ --website-ui-text-color-dark: #fff;
50
+ --website-ui-focus-outline-color: rgba(48, 127, 255, 0.5);
51
+ --website-ui-focus-outline: 4px solid var(--website-ui-focus-outline-color);
44
52
  }
45
53
 
46
54
  :root {
@@ -106,6 +114,14 @@
106
114
  --ktl-header-height-mobile: 52px;
107
115
  --ktl-font-family-inter: Inter, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Droid Sans', 'Helvetica Neue', Arial, sans-serif;
108
116
  --ktl-focus-outline: rgba(107,87,255,.8) 0 0 0 4px;
117
+
118
+ }
119
+
120
+ :root {
121
+ --website-ui-text-color: #19191c;
122
+ --website-ui-text-color-dark: #fff;
123
+ --website-ui-focus-outline-color: rgba(48, 127, 255, 0.5);
124
+ --website-ui-focus-outline: 4px solid var(--website-ui-focus-outline-color);
109
125
  }
110
126
 
111
127
  :root {
@@ -190,6 +206,14 @@
190
206
  --ktl-header-height-mobile: 52px;
191
207
  --ktl-font-family-inter: Inter, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Droid Sans', 'Helvetica Neue', Arial, sans-serif;
192
208
  --ktl-focus-outline: rgba(107,87,255,.8) 0 0 0 4px;
209
+
210
+ }
211
+
212
+ :root {
213
+ --website-ui-text-color: #19191c;
214
+ --website-ui-text-color-dark: #fff;
215
+ --website-ui-focus-outline-color: rgba(48, 127, 255, 0.5);
216
+ --website-ui-focus-outline: 4px solid var(--website-ui-focus-outline-color);
193
217
  }
194
218
 
195
219
  :root {
@@ -34,6 +34,14 @@
34
34
  --ktl-header-height-mobile: 52px;
35
35
  --ktl-font-family-inter: Inter, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Droid Sans', 'Helvetica Neue', Arial, sans-serif;
36
36
  --ktl-focus-outline: rgba(107,87,255,.8) 0 0 0 4px;
37
+
38
+ }
39
+
40
+ :root {
41
+ --website-ui-text-color: #19191c;
42
+ --website-ui-text-color-dark: #fff;
43
+ --website-ui-focus-outline-color: rgba(48, 127, 255, 0.5);
44
+ --website-ui-focus-outline: 4px solid var(--website-ui-focus-outline-color);
37
45
  }
38
46
 
39
47
  :root {
@@ -106,6 +114,14 @@
106
114
  --ktl-header-height-mobile: 52px;
107
115
  --ktl-font-family-inter: Inter, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Droid Sans', 'Helvetica Neue', Arial, sans-serif;
108
116
  --ktl-focus-outline: rgba(107,87,255,.8) 0 0 0 4px;
117
+
118
+ }
119
+
120
+ :root {
121
+ --website-ui-text-color: #19191c;
122
+ --website-ui-text-color-dark: #fff;
123
+ --website-ui-focus-outline-color: rgba(48, 127, 255, 0.5);
124
+ --website-ui-focus-outline: 4px solid var(--website-ui-focus-outline-color);
109
125
  }
110
126
 
111
127
  :root {
@@ -178,6 +194,14 @@
178
194
  --ktl-header-height-mobile: 52px;
179
195
  --ktl-font-family-inter: Inter, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Droid Sans', 'Helvetica Neue', Arial, sans-serif;
180
196
  --ktl-focus-outline: rgba(107,87,255,.8) 0 0 0 4px;
197
+
198
+ }
199
+
200
+ :root {
201
+ --website-ui-text-color: #19191c;
202
+ --website-ui-text-color-dark: #fff;
203
+ --website-ui-focus-outline-color: rgba(48, 127, 255, 0.5);
204
+ --website-ui-focus-outline: 4px solid var(--website-ui-focus-outline-color);
181
205
  }
182
206
 
183
207
  :root {
@@ -41,7 +41,7 @@ const Header = forwardRef(({
41
41
  const [menuPopupExpanded, setMenuPopupExpanded] = useState(false);
42
42
  const [isSearchBoxVisible, setSearchBoxVisible] = useState(false);
43
43
  const [fullSearchActive, setFullSearchActive] = useState(false);
44
- const currentUrl = currentUrlProp || location?.pathname;
44
+ const currentUrl = currentUrlProp || global?.location?.pathname;
45
45
  const items = useMemo(() => getNavScheme(isUrlActive, currentUrl, isPlayground), [isUrlActive, currentUrl, isPlayground]);
46
46
  const itemsWithoutHomeSection = useMemo(() => items.slice(1), [items]);
47
47
  const headerRef = useRef(null);
@@ -42,6 +42,14 @@
42
42
  --ktl-header-height-mobile: 52px;
43
43
  --ktl-font-family-inter: Inter, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Droid Sans', 'Helvetica Neue', Arial, sans-serif;
44
44
  --ktl-focus-outline: rgba(107,87,255,.8) 0 0 0 4px;
45
+
46
+ }
47
+
48
+ :root {
49
+ --website-ui-text-color: #19191c;
50
+ --website-ui-text-color-dark: #fff;
51
+ --website-ui-focus-outline-color: rgba(48, 127, 255, 0.5);
52
+ --website-ui-focus-outline: 4px solid var(--website-ui-focus-outline-color);
45
53
  }
46
54
 
47
55
  :root {
@@ -107,6 +115,14 @@
107
115
  --ktl-header-height-mobile: 52px;
108
116
  --ktl-font-family-inter: Inter, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Droid Sans', 'Helvetica Neue', Arial, sans-serif;
109
117
  --ktl-focus-outline: rgba(107,87,255,.8) 0 0 0 4px;
118
+
119
+ }
120
+
121
+ :root {
122
+ --website-ui-text-color: #19191c;
123
+ --website-ui-text-color-dark: #fff;
124
+ --website-ui-focus-outline-color: rgba(48, 127, 255, 0.5);
125
+ --website-ui-focus-outline: 4px solid var(--website-ui-focus-outline-color);
110
126
  }
111
127
 
112
128
  :root {
@@ -271,6 +287,14 @@
271
287
  --ktl-header-height-mobile: 52px;
272
288
  --ktl-font-family-inter: Inter, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Droid Sans', 'Helvetica Neue', Arial, sans-serif;
273
289
  --ktl-focus-outline: rgba(107,87,255,.8) 0 0 0 4px;
290
+
291
+ }
292
+
293
+ :root {
294
+ --website-ui-text-color: #19191c;
295
+ --website-ui-text-color-dark: #fff;
296
+ --website-ui-focus-outline-color: rgba(48, 127, 255, 0.5);
297
+ --website-ui-focus-outline: 4px solid var(--website-ui-focus-outline-color);
274
298
  }
275
299
 
276
300
  :root {
@@ -749,6 +773,14 @@
749
773
  --ktl-header-height-mobile: 52px;
750
774
  --ktl-font-family-inter: Inter, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Droid Sans', 'Helvetica Neue', Arial, sans-serif;
751
775
  --ktl-focus-outline: rgba(107,87,255,.8) 0 0 0 4px;
776
+
777
+ }
778
+
779
+ :root {
780
+ --website-ui-text-color: #19191c;
781
+ --website-ui-text-color-dark: #fff;
782
+ --website-ui-focus-outline-color: rgba(48, 127, 255, 0.5);
783
+ --website-ui-focus-outline: 4px solid var(--website-ui-focus-outline-color);
752
784
  }
753
785
 
754
786
  :root {
@@ -827,6 +859,14 @@
827
859
  --ktl-header-height-mobile: 52px;
828
860
  --ktl-font-family-inter: Inter, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Droid Sans', 'Helvetica Neue', Arial, sans-serif;
829
861
  --ktl-focus-outline: rgba(107,87,255,.8) 0 0 0 4px;
862
+
863
+ }
864
+
865
+ :root {
866
+ --website-ui-text-color: #19191c;
867
+ --website-ui-text-color-dark: #fff;
868
+ --website-ui-focus-outline-color: rgba(48, 127, 255, 0.5);
869
+ --website-ui-focus-outline: 4px solid var(--website-ui-focus-outline-color);
830
870
  }
831
871
 
832
872
  :root {
@@ -900,6 +940,14 @@
900
940
  --ktl-header-height-mobile: 52px;
901
941
  --ktl-font-family-inter: Inter, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Droid Sans', 'Helvetica Neue', Arial, sans-serif;
902
942
  --ktl-focus-outline: rgba(107,87,255,.8) 0 0 0 4px;
943
+
944
+ }
945
+
946
+ :root {
947
+ --website-ui-text-color: #19191c;
948
+ --website-ui-text-color-dark: #fff;
949
+ --website-ui-focus-outline-color: rgba(48, 127, 255, 0.5);
950
+ --website-ui-focus-outline: 4px solid var(--website-ui-focus-outline-color);
903
951
  }
904
952
 
905
953
  :root {
@@ -926,6 +974,13 @@
926
974
  border-bottom: 1px solid rgba(255, 255, 255, 0.3);
927
975
  }
928
976
 
977
+ .ktl-menu-list-module_menu-item-group_mFvUE + .ktl-menu-list-module_menu-item-group_mFvUE {
978
+ margin-top: 0;
979
+ padding-top: 0;
980
+
981
+ border-top: none;
982
+ }
983
+
929
984
  .ktl-logo-small-module_logo-small_iGY12 {
930
985
  flex-grow: 1;
931
986
  display: flex;
@@ -1,4 +1,4 @@
1
1
  import './index.css';
2
2
  import { Header } from './header.js';
3
3
  export { Header as default } from './header.js';
4
- export { ANDROID_TITLE, ANDROID_URL, API_OVERVIEW_TITLE, API_OVERVIEW_URL, API_TITLE, COMMUNITY_TITLE, COMMUNITY_URL, CORE_API_TITLE, CORE_API_URL, COROUTINES_API_TITLE, COROUTINES_API_URL, DATA_SCIENCE_TITLE, DATA_SCIENCE_URL, DATETIME_API_TITLE, DATETIME_API_URL, DOCS_TITLE, DOCS_URL, HOME_TITLE, HOME_URL, IO_API_TITLE, IO_API_URL, KGP_TITLE, KGP_URL, KMM_DOCS_TITLE, KMM_DOCS_URL, KOTLIN_DOCS_TITLE, KOTLIN_DOCS_URL, KTOR_TITLE, KTOR_URL, METADATA_JVM_TITLE, METADATA_JVM_URL, MULTIPLATFORM_LIBRARIES_TITLE, MULTIPLATFORM_LIBRARIES_URL, MULTIPLATFORM_MOBILE_TITLE, MULTIPLATFORM_MOBILE_URL, PLAY_EXAMPLES_TITLE, PLAY_EXAMPLES_URL, PLAY_KOANS_TITLE, PLAY_KOANS_URL, PLAY_TITLE, PLAY_TITLE_FULL, PLAY_URL, SERIALIZATION_API_TITLE, SERIALIZATION_API_URL, SERVER_SIDE_TITLE, SERVER_SIDE_URL, SOLUTIONS_TITLE, TEACH_TITLE, TEACH_URL, TEST_API_TITLE, TEST_API_URL, getNavScheme } from './nav-scheme.js';
4
+ export { ANDROID_TITLE, ANDROID_URL, API_OVERVIEW_TITLE, API_OVERVIEW_URL, API_TITLE, COMMUNITY_TITLE, COMMUNITY_URL, CORE_API_TITLE, CORE_API_URL, COROUTINES_API_TITLE, COROUTINES_API_URL, DATA_SCIENCE_TITLE, DATA_SCIENCE_URL, DATETIME_API_TITLE, DATETIME_API_URL, DOCS_NAVIGATION_ITEMS, DOCS_TITLE, DOCS_URL, HOME_TITLE, HOME_URL, IO_API_TITLE, IO_API_URL, KGP_TITLE, KGP_URL, KMM_DOCS_TITLE, KMM_DOCS_URL, KOTLIN_DOCS_TITLE, KOTLIN_DOCS_URL, KTOR_TITLE, KTOR_URL, METADATA_JVM_TITLE, METADATA_JVM_URL, MULTIPLATFORM_LIBRARIES_TITLE, MULTIPLATFORM_LIBRARIES_URL, MULTIPLATFORM_MOBILE_TITLE, MULTIPLATFORM_MOBILE_URL, PLAY_EXAMPLES_TITLE, PLAY_EXAMPLES_URL, PLAY_KOANS_TITLE, PLAY_KOANS_URL, PLAY_TITLE, PLAY_TITLE_FULL, PLAY_URL, SERIALIZATION_API_TITLE, SERIALIZATION_API_URL, SERVER_SIDE_TITLE, SERVER_SIDE_URL, SOLUTIONS_TITLE, TEACH_TITLE, TEACH_URL, TEST_API_TITLE, TEST_API_URL, getNavScheme } from './nav-scheme.js';
@@ -50,6 +50,13 @@ const KGP_TITLE = 'Kotlin Gradle plugins';
50
50
  const KGP_URL = '/api/kotlin-gradle-plugin/';
51
51
  const KTOR_TITLE = 'Ktor';
52
52
  const KTOR_URL = 'https://api.ktor.io/';
53
+ const DOCS_NAVIGATION_ITEMS = [{
54
+ url: '/docs/home.html',
55
+ title: 'Language guide'
56
+ }, {
57
+ url: '/docs/multiplatform/get-started.html',
58
+ title: 'Multiplatform development'
59
+ }];
53
60
  const navScheme = [{
54
61
  title: HOME_TITLE,
55
62
  url: HOME_URL
@@ -71,7 +78,8 @@ const navScheme = [{
71
78
  }]
72
79
  }, {
73
80
  title: DOCS_TITLE,
74
- url: KOTLIN_DOCS_URL
81
+ url: KOTLIN_DOCS_URL,
82
+ items: DOCS_NAVIGATION_ITEMS
75
83
  }, {
76
84
  title: API_TITLE,
77
85
  url: null,
@@ -181,4 +189,4 @@ function makeExternalUrl(url, currentUrl, isPlayground) {
181
189
  return url;
182
190
  }
183
191
 
184
- export { ANDROID_TITLE, ANDROID_URL, API_OVERVIEW_TITLE, API_OVERVIEW_URL, API_TITLE, COMMUNITY_TITLE, COMMUNITY_URL, CORE_API_TITLE, CORE_API_URL, COROUTINES_API_TITLE, COROUTINES_API_URL, DATA_SCIENCE_TITLE, DATA_SCIENCE_URL, DATETIME_API_TITLE, DATETIME_API_URL, DOCS_TITLE, DOCS_URL, HOME_TITLE, HOME_URL, IO_API_TITLE, IO_API_URL, KGP_TITLE, KGP_URL, KMM_DOCS_TITLE, KMM_DOCS_URL, KOTLIN_DOCS_TITLE, KOTLIN_DOCS_URL, KTOR_TITLE, KTOR_URL, METADATA_JVM_TITLE, METADATA_JVM_URL, MULTIPLATFORM_LIBRARIES_TITLE, MULTIPLATFORM_LIBRARIES_URL, MULTIPLATFORM_MOBILE_TITLE, MULTIPLATFORM_MOBILE_URL, PLAY_EXAMPLES_TITLE, PLAY_EXAMPLES_URL, PLAY_KOANS_TITLE, PLAY_KOANS_URL, PLAY_TITLE, PLAY_TITLE_FULL, PLAY_URL, SERIALIZATION_API_TITLE, SERIALIZATION_API_URL, SERVER_SIDE_TITLE, SERVER_SIDE_URL, SOLUTIONS_TITLE, TEACH_TITLE, TEACH_URL, TEST_API_TITLE, TEST_API_URL, getNavScheme };
192
+ export { ANDROID_TITLE, ANDROID_URL, API_OVERVIEW_TITLE, API_OVERVIEW_URL, API_TITLE, COMMUNITY_TITLE, COMMUNITY_URL, CORE_API_TITLE, CORE_API_URL, COROUTINES_API_TITLE, COROUTINES_API_URL, DATA_SCIENCE_TITLE, DATA_SCIENCE_URL, DATETIME_API_TITLE, DATETIME_API_URL, DOCS_NAVIGATION_ITEMS, DOCS_TITLE, DOCS_URL, HOME_TITLE, HOME_URL, IO_API_TITLE, IO_API_URL, KGP_TITLE, KGP_URL, KMM_DOCS_TITLE, KMM_DOCS_URL, KOTLIN_DOCS_TITLE, KOTLIN_DOCS_URL, KTOR_TITLE, KTOR_URL, METADATA_JVM_TITLE, METADATA_JVM_URL, MULTIPLATFORM_LIBRARIES_TITLE, MULTIPLATFORM_LIBRARIES_URL, MULTIPLATFORM_MOBILE_TITLE, MULTIPLATFORM_MOBILE_URL, PLAY_EXAMPLES_TITLE, PLAY_EXAMPLES_URL, PLAY_KOANS_TITLE, PLAY_KOANS_URL, PLAY_TITLE, PLAY_TITLE_FULL, PLAY_URL, SERIALIZATION_API_TITLE, SERIALIZATION_API_URL, SERVER_SIDE_TITLE, SERVER_SIDE_URL, SOLUTIONS_TITLE, TEACH_TITLE, TEACH_URL, TEST_API_TITLE, TEST_API_URL, getNavScheme };
@@ -0,0 +1,42 @@
1
+ import React, { useCallback } from 'react';
2
+ import classNames from 'classnames';
3
+ import styles from './horizontal-menu.module.pcss.js';
4
+ import { useTextStyles } from '@rescui/typography';
5
+
6
+ const HorizontalMenuItem = ({
7
+ item,
8
+ isActive,
9
+ linkHandler
10
+ }) => {
11
+ useTextStyles();
12
+ const handleLink = useCallback(event => linkHandler(event, item.url), [item]);
13
+ return isActive ? React.createElement("span", {
14
+ key: item.url,
15
+ className: styles.itemActive
16
+ }, item.title) : React.createElement("a", {
17
+ href: item.url,
18
+ key: item.url,
19
+ className: styles.item,
20
+ onClick: handleLink,
21
+ target: item.isExternal ? '_blank' : undefined,
22
+ rel: "noreferrer"
23
+ }, item.title);
24
+ };
25
+
26
+ const HorizontalMenu = ({
27
+ items,
28
+ activeIndex,
29
+ linkHandler
30
+ }) => {
31
+ const textCn = useTextStyles();
32
+ return React.createElement("nav", {
33
+ className: classNames(styles.horizontalMenu, textCn('rs-text-2'))
34
+ }, items.map((item, index) => React.createElement(HorizontalMenuItem, {
35
+ key: item.url,
36
+ isActive: index === activeIndex,
37
+ item: item,
38
+ linkHandler: linkHandler
39
+ })));
40
+ };
41
+
42
+ export { HorizontalMenu };
@@ -0,0 +1,6 @@
1
+ var styles = {
2
+ "horizontalMenu": "ktl-horizontal-menu-module_horizontal-menu_bRQN9",
3
+ "item": "ktl-horizontal-menu-module_item_vmotC",
4
+ "itemActive": "ktl-horizontal-menu-module_item-active_gSpD6"
5
+ };
6
+ export { styles as default };
@@ -0,0 +1,147 @@
1
+ :root {
2
+ --ktl-light-grey: #f4f4f4;
3
+ --ktl-dark-100: rgba(39, 40, 44, 1);
4
+ --ktl-dark-bg-hard: rgba(27, 27, 27, 1);
5
+ --ktl-icon-color-dark: rgba(39, 40, 44, 0.75);
6
+ --ktl-color-white-light: rgba(255, 255, 255, 0.75);
7
+ --ktl-transition-xfast: 100ms;
8
+ --ktl-transition-fast: 300ms;
9
+ --ktl-color-primary-light-theme: #7f52ff;
10
+ --ktl-color-dark-40: rgba(39, 40, 44, 0.4);
11
+ --ktl-light-text-hard: rgba(39, 40, 44, 1);
12
+ --ktl-light-dark-20: rgba(39, 40, 44, 0.2);
13
+ --ktl-divider-color: rgba(25, 25, 28, .2);
14
+ --ktl-overlay-z-index: 900;
15
+ --ktl-top-menu-z-index: 905;
16
+ --ktl-header-z-index: 906;
17
+ --ktl-mobile-dropdown-list-z-index: 907;
18
+ --ktl-header-height-mobile: 52px;
19
+ --ktl-font-family-inter: Inter, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Droid Sans', 'Helvetica Neue', Arial, sans-serif;
20
+ --ktl-focus-outline: rgba(107,87,255,.8) 0 0 0 4px;
21
+
22
+ }
23
+
24
+ :root {
25
+ --website-ui-text-color: #19191c;
26
+ --website-ui-text-color-dark: #fff;
27
+ --website-ui-focus-outline-color: rgba(48, 127, 255, 0.5);
28
+ --website-ui-focus-outline: 4px solid var(--website-ui-focus-outline-color);
29
+ }
30
+
31
+ :root {
32
+ --ktl-box-block-s: 4px;
33
+ --ktl-box-block-m: 8px;
34
+ --ktl-box-block-l: 16px;
35
+
36
+ --ktl-box-section-s: 24px;
37
+ --ktl-box-section-m: 32px;
38
+ --ktl-box-section-l: 48px;
39
+
40
+ --ktl-box-page-s: 64px;
41
+ --ktl-box-page-m: 72px;
42
+ --ktl-box-page-l: 96px;
43
+ }
44
+
45
+ :root {
46
+ --sub-navigation-text-color: var(--website-ui-text-color);
47
+ --sub-navigation-background-color: #fff;
48
+ }
49
+
50
+ .ktl-sub-navigation-module_sub-navigation_dGfIT {
51
+ position: relative;
52
+ display: flex;
53
+ align-items: center;
54
+ gap: 32px;
55
+ height: 64px;
56
+ background-color: var(--sub-navigation-background-color);
57
+ padding: 0 32px;
58
+ overflow: auto;
59
+ }
60
+
61
+ @media (max-width: 640px) {
62
+
63
+ .ktl-sub-navigation-module_sub-navigation_dGfIT {
64
+ height: var(--ktl-header-height-mobile);
65
+ padding: 0 6px 0 4px;
66
+ gap: 16px
67
+ }
68
+ }
69
+
70
+ .ktl-sub-navigation-module_sub-navigation-dark-theme_s4fQ7 {
71
+ --sub-navigation-background-color: rgba(16, 16, 16, 1);
72
+ --sub-navigation-text-color: var(--website-ui-text-color-dark);
73
+ color: var(--sub-navigation-text-color);
74
+ }
75
+
76
+ .ktl-sub-navigation-module_logo_Jm6Jd {
77
+ flex-shrink: 1;
78
+ overflow: hidden;
79
+ text-overflow: ellipsis;
80
+ white-space: nowrap;
81
+ color: var(--sub-navigation-text-color) !important;
82
+ text-decoration: none;
83
+ }
84
+
85
+ .ktl-sub-navigation-module_logo_Jm6Jd:focus-visible {
86
+ outline: var(--website-ui-focus-outline);
87
+ }
88
+
89
+ @media (max-width: 640px) {
90
+
91
+ .ktl-sub-navigation-module_logo_Jm6Jd {
92
+ display: none
93
+ }
94
+ }
95
+
96
+ :root {
97
+ --horizontal-menu-item-padding: 12px;
98
+ }
99
+
100
+ .ktl-horizontal-menu-module_horizontal-menu_bRQN9 {
101
+ display: flex;
102
+ flex-grow: 1;
103
+ justify-content: flex-end;
104
+ align-items: center;
105
+ height: 100%;
106
+ }
107
+
108
+ .ktl-horizontal-menu-module_item_vmotC, .ktl-horizontal-menu-module_item-active_gSpD6 {
109
+ position: relative;
110
+ display: flex;
111
+ align-items: center;
112
+ height: 100%;
113
+ box-sizing: border-box;
114
+ text-align: center;
115
+ white-space: nowrap;
116
+ padding: var(--horizontal-menu-item-padding);
117
+ text-decoration: none;
118
+ color: var(--sub-navigation-text-color) !important;
119
+ }
120
+
121
+ .ktl-horizontal-menu-module_item_vmotC:focus-visible, .ktl-horizontal-menu-module_item-active_gSpD6:focus-visible {
122
+ outline: var(--website-ui-focus-outline);
123
+ outline-offset: -4px;
124
+ }
125
+
126
+ .ktl-horizontal-menu-module_item_vmotC:after, .ktl-horizontal-menu-module_item-active_gSpD6:after {
127
+ content: '';
128
+ display: none;
129
+ height: 2px;
130
+ position: absolute;
131
+ bottom: 4px;
132
+ left: var(--horizontal-menu-item-padding);
133
+ right: var(--horizontal-menu-item-padding);
134
+ background-color: var(--sub-navigation-text-color);
135
+ }
136
+
137
+ .ktl-horizontal-menu-module_item_vmotC:hover {
138
+ background-color: rgba(255, 255, 255, 0.10);
139
+ }
140
+
141
+ .ktl-horizontal-menu-module_item-active_gSpD6 {
142
+ cursor: default;
143
+ }
144
+
145
+ .ktl-horizontal-menu-module_item-active_gSpD6:after {
146
+ display: block;
147
+ }
@@ -0,0 +1,3 @@
1
+ import './index.css';
2
+ import { SubNavigation } from './sub-navigation.js';
3
+ export { SubNavigation as default } from './sub-navigation.js';
@@ -0,0 +1,34 @@
1
+ import React from 'react';
2
+ import { useTheme } from '@rescui/ui-contexts';
3
+ import classNames from 'classnames';
4
+ import styles from './sub-navigation.module.pcss.js';
5
+ import { useTextStyles } from '@rescui/typography';
6
+ import { HorizontalMenu } from './horizontal-menu/horizontal-menu.js';
7
+
8
+ const SubNavigation = ({
9
+ homeUrl,
10
+ title,
11
+ activeIndex,
12
+ items,
13
+ linkHandler = () => null,
14
+ className,
15
+ children
16
+ }) => {
17
+ const theme = useTheme();
18
+ const textCn = useTextStyles();
19
+ return React.createElement("div", {
20
+ className: classNames(styles.subNavigation, className, {
21
+ [styles.subNavigationDarkTheme]: theme === 'dark'
22
+ })
23
+ }, title && React.createElement("a", {
24
+ href: homeUrl,
25
+ className: classNames(styles.logo, textCn('rs-text-2')),
26
+ onClick: event => linkHandler(event, homeUrl)
27
+ }, title), React.createElement(HorizontalMenu, {
28
+ items: items,
29
+ activeIndex: activeIndex,
30
+ linkHandler: linkHandler
31
+ }), children);
32
+ };
33
+
34
+ export { SubNavigation };
@@ -0,0 +1,6 @@
1
+ var styles = {
2
+ "subNavigation": "ktl-sub-navigation-module_sub-navigation_dGfIT",
3
+ "subNavigationDarkTheme": "ktl-sub-navigation-module_sub-navigation-dark-theme_s4fQ7",
4
+ "logo": "ktl-sub-navigation-module_logo_Jm6Jd"
5
+ };
6
+ export { styles as default };
@@ -18,6 +18,14 @@
18
18
  --ktl-header-height-mobile: 52px;
19
19
  --ktl-font-family-inter: Inter, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Droid Sans', 'Helvetica Neue', Arial, sans-serif;
20
20
  --ktl-focus-outline: rgba(107,87,255,.8) 0 0 0 4px;
21
+
22
+ }
23
+
24
+ :root {
25
+ --website-ui-text-color: #19191c;
26
+ --website-ui-text-color-dark: #fff;
27
+ --website-ui-focus-outline-color: rgba(48, 127, 255, 0.5);
28
+ --website-ui-focus-outline: 4px solid var(--website-ui-focus-outline-color);
21
29
  }
22
30
 
23
31
  :root {
@@ -110,6 +118,14 @@
110
118
  --ktl-header-height-mobile: 52px;
111
119
  --ktl-font-family-inter: Inter, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Droid Sans', 'Helvetica Neue', Arial, sans-serif;
112
120
  --ktl-focus-outline: rgba(107,87,255,.8) 0 0 0 4px;
121
+
122
+ }
123
+
124
+ :root {
125
+ --website-ui-text-color: #19191c;
126
+ --website-ui-text-color-dark: #fff;
127
+ --website-ui-focus-outline-color: rgba(48, 127, 255, 0.5);
128
+ --website-ui-focus-outline: 4px solid var(--website-ui-focus-outline-color);
113
129
  }
114
130
 
115
131
  :root {
@@ -18,6 +18,14 @@
18
18
  --ktl-header-height-mobile: 52px;
19
19
  --ktl-font-family-inter: Inter, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Droid Sans', 'Helvetica Neue', Arial, sans-serif;
20
20
  --ktl-focus-outline: rgba(107,87,255,.8) 0 0 0 4px;
21
+
22
+ }
23
+
24
+ :root {
25
+ --website-ui-text-color: #19191c;
26
+ --website-ui-text-color-dark: #fff;
27
+ --website-ui-focus-outline-color: rgba(48, 127, 255, 0.5);
28
+ --website-ui-focus-outline: 4px solid var(--website-ui-focus-outline-color);
21
29
  }
22
30
 
23
31
  :root {
@@ -18,6 +18,14 @@
18
18
  --ktl-header-height-mobile: 52px;
19
19
  --ktl-font-family-inter: Inter, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Droid Sans', 'Helvetica Neue', Arial, sans-serif;
20
20
  --ktl-focus-outline: rgba(107,87,255,.8) 0 0 0 4px;
21
+
22
+ }
23
+
24
+ :root {
25
+ --website-ui-text-color: #19191c;
26
+ --website-ui-text-color-dark: #fff;
27
+ --website-ui-focus-outline-color: rgba(48, 127, 255, 0.5);
28
+ --website-ui-focus-outline: 4px solid var(--website-ui-focus-outline-color);
21
29
  }
22
30
 
23
31
  :root {
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@jetbrains/kotlin-web-site-ui",
3
3
  "description": "UI components for Kotlin web sites development",
4
- "version": "4.10.0",
4
+ "version": "4.10.1-alpha.1",
5
5
  "license": "Apache-2.0",
6
6
  "author": "JetBrains",
7
7
  "files": [