@semcore/tab-panel 4.42.4 → 4.43.0-prerelease.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.
@@ -9,7 +9,7 @@ STabPanel {
9
9
  bottom: -1px;
10
10
  flex: 1;
11
11
  border-top: 1px solid transparent;
12
- border-bottom: 1px solid var(--intergalactic-border-primary, #c4c7cf);
12
+ border-bottom: 1px solid var(--intergalactic-border-primary, oklch(0.137 0.026 175.7 / 0.161));
13
13
  }
14
14
  }
15
15
 
@@ -19,7 +19,7 @@ STabPanelItem {
19
19
  display: inline-flex;
20
20
  min-width: 0;
21
21
  height: 32px;
22
- color: var(--intergalactic-text-secondary, #6c6e79);
22
+ color: var(--intergalactic-text-secondary, oklch(0.088 0.026 147.7 / 0.583));
23
23
  border: 1px solid transparent;
24
24
  border-bottom: none;
25
25
  border-radius: var(--intergalactic-control-rounded, 6px) var(--intergalactic-control-rounded, 6px) 0 0;
@@ -35,32 +35,23 @@ STabPanelItem {
35
35
  box-shadow: none;
36
36
  text-decoration: none;
37
37
  -webkit-tap-highlight-color: transparent;
38
- outline: 0;
39
38
  text-align: center;
40
39
  vertical-align: middle;
41
40
  font-family: inherit;
42
41
  cursor: pointer;
43
42
 
44
- & SText {
45
- font-size: var(--intergalactic-fs-200, 14px);
46
- line-height: var(--intergalactic-lh-200, 142%);
47
- font-weight: var(--intergalactic-medium, 500);
48
- }
49
-
50
43
  &::-moz-focus-inner {
51
44
  border: none;
52
45
  padding: 0;
53
46
  }
54
47
 
55
48
  &:active,
56
- &:hover,
57
- &:focus {
58
- outline: 0;
49
+ &:hover {
59
50
  text-decoration: none;
60
51
  }
61
52
 
62
53
  &:hover {
63
- color: var(--intergalactic-text-primary, #191b23);
54
+ color: var(--intergalactic-text-primary, oklch(0.1 0.03 137 / 0.899));
64
55
  }
65
56
 
66
57
  &::after {
@@ -69,7 +60,7 @@ STabPanelItem {
69
60
  left: -1px;
70
61
  bottom: 0px;
71
62
  width: calc(100% + 2px);
72
- border-bottom: 1px solid var(--intergalactic-border-primary, #c4c7cf);
63
+ border-bottom: 1px solid var(--intergalactic-border-primary, oklch(0.137 0.026 175.7 / 0.161));
73
64
  }
74
65
  }
75
66
 
@@ -80,21 +71,17 @@ STabPanelItem[disabled] {
80
71
 
81
72
  & SText,
82
73
  & SAddon {
83
- opacity: var(--intergalactic-disabled-opacity, 0.3);
74
+ opacity: var(--intergalactic-disabled-opacity, 0.4);
84
75
  }
85
76
  }
86
77
 
87
- STabPanelItem[keyboardFocused] {
88
- box-shadow: var(--intergalactic-keyboard-focus, 0px 0px 0px 3px rgba(0, 143, 248, 0.5));
89
- }
90
-
91
78
  STabPanelItem[selected] {
92
- color: var(--intergalactic-text-link, #006dca);
93
- border-color: var(--intergalactic-border-primary, #c4c7cf);
79
+ color: var(--intergalactic-text-link, oklch(0.53 0.214 263.4));
80
+ border-color: var(--intergalactic-border-primary, oklch(0.137 0.026 175.7 / 0.161));
94
81
  flex-shrink: 0;
95
82
 
96
83
  &:hover {
97
- color: var(--intergalactic-text-link-hover-active, #044792);
84
+ color: var(--intergalactic-text-link-hover-active, oklch(0.51 0.206 263.4));
98
85
  }
99
86
 
100
87
  &::after {
@@ -103,11 +90,7 @@ STabPanelItem[selected] {
103
90
  }
104
91
 
105
92
  SText {
106
- display: inline-block;
107
93
  margin: auto var(--intergalactic-spacing-2x, 8px);
108
- white-space: nowrap;
109
- overflow: hidden;
110
- text-overflow: ellipsis;
111
94
  }
112
95
 
113
96
  SAddon {
@@ -127,4 +110,4 @@ SAddon:not(:only-child):last-child {
127
110
  SAddon:only-child {
128
111
  margin-right: var(--intergalactic-spacing-2x, 8px);
129
112
  margin-left: var(--intergalactic-spacing-2x, 8px);
130
- }
113
+ }
@@ -0,0 +1,6 @@
1
+ import type { Intergalactic } from '@semcore/core';
2
+ import React from 'react';
3
+ import type { NSTabPanel } from './TabPanel.type';
4
+ declare const TabPanel: NSTabPanel.Component;
5
+ export declare const wrapTabPanel: <PropsExtending extends {}>(wrapper: (props: Intergalactic.InternalTypings.UntypeRefAndTag<Intergalactic.InternalTypings.ComponentPropsNesting<NSTabPanel.WrapperComponent>> & PropsExtending) => React.ReactNode) => NSTabPanel.WrapperComponent<PropsExtending>;
6
+ export default TabPanel;
@@ -0,0 +1,71 @@
1
+ import type { Box, BoxProps } from '@semcore/base-components';
2
+ import type { Intergalactic, PropGetterFn } from '@semcore/core';
3
+ import type { NSText } from '@semcore/typography';
4
+ declare namespace NSTabPanel {
5
+ type Value = string | number | boolean;
6
+ type Props<V extends NSTabPanel.Value = NSTabPanel.Value> = BoxProps & {
7
+ /** Is invoked when changing the selection */
8
+ onChange?: ((value: V, e?: React.SyntheticEvent<HTMLButtonElement>) => void) | React.Dispatch<React.SetStateAction<V>>;
9
+ /** Value of the selected tab */
10
+ value?: V;
11
+ /** Default value of the selected tab
12
+ * @default null
13
+ * */
14
+ defaultValue?: V;
15
+ /**
16
+ * Behavior of tabs.
17
+ * In `auto`, changes the tab immediately when press arrow.
18
+ * In `manual`, needs to press `space` or `enter` for select a choice.
19
+ * @default 'auto'
20
+ */
21
+ behavior?: 'auto' | 'manual';
22
+ };
23
+ type Ctx = {
24
+ getItemProps: PropGetterFn;
25
+ };
26
+ type Handlers = {
27
+ value: null;
28
+ };
29
+ namespace Item {
30
+ type Props = BoxProps & {
31
+ /** Makes a tab selected. This property is determined automatically depending on the value. */
32
+ selected?: boolean;
33
+ /** Disabled state */
34
+ disabled?: boolean;
35
+ /** Tab value */
36
+ value?: NSTabPanel.Value;
37
+ /** Left addon tag */
38
+ addonLeft?: React.ElementType;
39
+ /** Right addon tag */
40
+ addonRight?: React.ElementType;
41
+ };
42
+ namespace Text {
43
+ type Props = NSText.Props;
44
+ type Component = NSText.Component;
45
+ }
46
+ namespace Addon {
47
+ type Component = typeof Box;
48
+ }
49
+ type Component = Intergalactic.Component<'div', Props, {}, [handlers: NSTabPanel.Handlers]> & {
50
+ Text: Text.Component;
51
+ Addon: Addon.Component;
52
+ };
53
+ }
54
+ type WrapperComponent<PropsExtending = {}> = (<V extends NSTabPanel.Value, Tag extends Intergalactic.Tag = 'div'>(props: Intergalactic.InternalTypings.ComponentProps<Tag, 'div', Props<V>, Ctx, [
55
+ handlers: Handlers
56
+ ]> & PropsExtending) => Intergalactic.InternalTypings.ComponentRenderingResults) & Intergalactic.InternalTypings.ComponentAdditive<'div', 'div', Props>;
57
+ type Component = WrapperComponent & {
58
+ Item: Item.Component;
59
+ };
60
+ }
61
+ /** @deprecated It will be removed in v18. */
62
+ export type TabPanelValue = NSTabPanel.Value;
63
+ /** @deprecated It will be removed in v18. */
64
+ export type TabPanelProps<T extends TabPanelValue = TabPanelValue> = NSTabPanel.Props<T>;
65
+ /** @deprecated It will be removed in v18. */
66
+ export type TabPanelItemProps = NSTabPanel.Item.Props;
67
+ /** @deprecated It will be removed in v18. */
68
+ export type TabPanelContext = NSTabPanel.Ctx;
69
+ /** @deprecated It will be removed in v18. */
70
+ export type TabPanelHandlers = NSTabPanel.Handlers;
71
+ export type { NSTabPanel };
@@ -1,92 +1,2 @@
1
- import React from 'react';
2
- import { PropGetterFn, UnknownProperties, Intergalactic } from '@semcore/core';
3
- import { Box, BoxProps } from '@semcore/flex-box';
4
- import { KeyboardFocusProps } from '@semcore/utils/lib/enhances/keyboardFocusEnhance';
5
-
6
- export type TabPanelValue = string | number | boolean;
7
-
8
- /** @deprecated */
9
- export interface ITabPanelProps<T extends TabPanelValue = TabPanelValue>
10
- extends TabPanelProps<T>,
11
- UnknownProperties {}
12
- export type TabPanelProps<T extends TabPanelValue = TabPanelValue> = BoxProps & {
13
- /** Is invoked when changing the selection */
14
- onChange?:
15
- | ((value: T, e?: React.SyntheticEvent<HTMLButtonElement>) => void)
16
- | React.Dispatch<React.SetStateAction<T>>;
17
- /** Value of the selected tab */
18
- value?: T;
19
- /** Default value of the selected tab
20
- * @default null
21
- * */
22
- defaultValue?: T;
23
- /**
24
- * Behavior of tabs.
25
- * In `auto`, changes the tab immediately when press arrow.
26
- * In `manual`, needs to press `space` or `enter` for select a choice.
27
- * @default 'auto'
28
- */
29
- behavior?: 'auto' | 'manual';
30
- };
31
-
32
- /** @deprecated */
33
- export interface ITabPanelItemProps extends TabPanelItemProps, UnknownProperties {}
34
- export type TabPanelItemProps = BoxProps &
35
- KeyboardFocusProps & {
36
- /** Makes a tab selected. This property is determined automatically depending on the value. */
37
- selected?: boolean;
38
- /** Disabled state */
39
- disabled?: boolean;
40
- /** Tab value */
41
- value?: TabPanelValue;
42
- /** Left addon tag */
43
- addonLeft?: React.ElementType;
44
- /** Right addon tag */
45
- addonRight?: React.ElementType;
46
- };
47
-
48
- /** @deprecated */
49
- export interface ITabPanelContext extends TabPanelContext, UnknownProperties {}
50
- export type TabPanelContext = {
51
- getItemProps: PropGetterFn;
52
- };
53
-
54
- /** @deprecated */
55
- export interface ITabPanelHandlers extends TabPanelHandlers, UnknownProperties {}
56
- export type TabPanelHandlers = {
57
- value: (value: TabPanelValue) => void;
58
- };
59
-
60
- type IntergalacticTabPanelComponent<PropsExtending = {}> = (<
61
- Value extends TabPanelValue,
62
- Tag extends Intergalactic.Tag = 'div',
63
- >(
64
- props: Intergalactic.InternalTypings.ComponentProps<
65
- Tag,
66
- 'div',
67
- TabPanelProps<Value>,
68
- TabPanelContext,
69
- [handlers: TabPanelHandlers]
70
- > &
71
- PropsExtending,
72
- ) => Intergalactic.InternalTypings.ComponentRenderingResults) &
73
- Intergalactic.InternalTypings.ComponentAdditive<'div', 'div', TabPanelProps>;
74
-
75
- declare const TabPanel: IntergalacticTabPanelComponent & {
76
- Item: Intergalactic.Component<'div', TabPanelItemProps, {}, [handlers: TabPanelHandlers]> & {
77
- Text: typeof Box;
78
- Addon: typeof Box;
79
- };
80
- };
81
-
82
- declare const wrapTabPanel: <PropsExtending extends {}>(
83
- wrapper: (
84
- props: Intergalactic.InternalTypings.UntypeRefAndTag<
85
- Intergalactic.InternalTypings.ComponentPropsNesting<IntergalacticTabPanelComponent>
86
- > &
87
- PropsExtending,
88
- ) => React.ReactNode,
89
- ) => IntergalacticTabPanelComponent<PropsExtending>;
90
- export { wrapTabPanel };
91
-
92
- export default TabPanel;
1
+ export { default, wrapTabPanel } from './TabPanel';
2
+ export * from './TabPanel.type';
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@semcore/tab-panel",
3
3
  "description": "Semrush TabPanel Component",
4
- "version": "4.42.4",
4
+ "version": "4.43.0-prerelease.0",
5
5
  "main": "lib/cjs/index.js",
6
6
  "module": "lib/es6/index.js",
7
7
  "typings": "lib/types/index.d.ts",
@@ -14,11 +14,11 @@
14
14
  "types": "./lib/types/index.d.ts"
15
15
  },
16
16
  "dependencies": {
17
- "@semcore/utils": "4.48.5",
18
- "@semcore/flex-box": "5.41.4"
17
+ "@semcore/utils": "4.49.0-prerelease.0",
18
+ "@semcore/flex-box": "5.42.0-prerelease.0"
19
19
  },
20
20
  "peerDependencies": {
21
- "@semcore/core": "^2.17.5",
21
+ "@semcore/core": "^2.40.0-prerelease.0",
22
22
  "react": "16.8 - 18",
23
23
  "react-dom": "16.8 - 18"
24
24
  },
@@ -1,2 +0,0 @@
1
- "use strict";
2
- //# sourceMappingURL=index.d.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import React from 'react';\nimport { PropGetterFn, UnknownProperties, Intergalactic } from '@semcore/core';\nimport { Box, BoxProps } from '@semcore/flex-box';\nimport { KeyboardFocusProps } from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\n\nexport type TabPanelValue = string | number | boolean;\n\n/** @deprecated */\nexport interface ITabPanelProps<T extends TabPanelValue = TabPanelValue>\n extends TabPanelProps<T>,\n UnknownProperties {}\nexport type TabPanelProps<T extends TabPanelValue = TabPanelValue> = BoxProps & {\n /** Is invoked when changing the selection */\n onChange?:\n | ((value: T, e?: React.SyntheticEvent<HTMLButtonElement>) => void)\n | React.Dispatch<React.SetStateAction<T>>;\n /** Value of the selected tab */\n value?: T;\n /** Default value of the selected tab\n * @default null\n * */\n defaultValue?: T;\n /**\n * Behavior of tabs.\n * In `auto`, changes the tab immediately when press arrow.\n * In `manual`, needs to press `space` or `enter` for select a choice.\n * @default 'auto'\n */\n behavior?: 'auto' | 'manual';\n};\n\n/** @deprecated */\nexport interface ITabPanelItemProps extends TabPanelItemProps, UnknownProperties {}\nexport type TabPanelItemProps = BoxProps &\n KeyboardFocusProps & {\n /** Makes a tab selected. This property is determined automatically depending on the value. */\n selected?: boolean;\n /** Disabled state */\n disabled?: boolean;\n /** Tab value */\n value?: TabPanelValue;\n /** Left addon tag */\n addonLeft?: React.ElementType;\n /** Right addon tag */\n addonRight?: React.ElementType;\n };\n\n/** @deprecated */\nexport interface ITabPanelContext extends TabPanelContext, UnknownProperties {}\nexport type TabPanelContext = {\n getItemProps: PropGetterFn;\n};\n\n/** @deprecated */\nexport interface ITabPanelHandlers extends TabPanelHandlers, UnknownProperties {}\nexport type TabPanelHandlers = {\n value: (value: TabPanelValue) => void;\n};\n\ntype IntergalacticTabPanelComponent<PropsExtending = {}> = (<\n Value extends TabPanelValue,\n Tag extends Intergalactic.Tag = 'div',\n>(\n props: Intergalactic.InternalTypings.ComponentProps<\n Tag,\n 'div',\n TabPanelProps<Value>,\n TabPanelContext,\n [handlers: TabPanelHandlers]\n > &\n PropsExtending,\n) => Intergalactic.InternalTypings.ComponentRenderingResults) &\n Intergalactic.InternalTypings.ComponentAdditive<'div', 'div', TabPanelProps>;\n\ndeclare const TabPanel: IntergalacticTabPanelComponent & {\n Item: Intergalactic.Component<'div', TabPanelItemProps, {}, [handlers: TabPanelHandlers]> & {\n Text: typeof Box;\n Addon: typeof Box;\n };\n};\n\ndeclare const wrapTabPanel: <PropsExtending extends {}>(\n wrapper: (\n props: Intergalactic.InternalTypings.UntypeRefAndTag<\n Intergalactic.InternalTypings.ComponentPropsNesting<IntergalacticTabPanelComponent>\n > &\n PropsExtending,\n ) => React.ReactNode,\n) => IntergalacticTabPanelComponent<PropsExtending>;\nexport { wrapTabPanel };\n\nexport default TabPanel;\n"],"mappings":""}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=index.d.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.js","names":[],"sources":["../../src/index.d.ts"],"sourcesContent":["import React from 'react';\nimport { PropGetterFn, UnknownProperties, Intergalactic } from '@semcore/core';\nimport { Box, BoxProps } from '@semcore/flex-box';\nimport { KeyboardFocusProps } from '@semcore/utils/lib/enhances/keyboardFocusEnhance';\n\nexport type TabPanelValue = string | number | boolean;\n\n/** @deprecated */\nexport interface ITabPanelProps<T extends TabPanelValue = TabPanelValue>\n extends TabPanelProps<T>,\n UnknownProperties {}\nexport type TabPanelProps<T extends TabPanelValue = TabPanelValue> = BoxProps & {\n /** Is invoked when changing the selection */\n onChange?:\n | ((value: T, e?: React.SyntheticEvent<HTMLButtonElement>) => void)\n | React.Dispatch<React.SetStateAction<T>>;\n /** Value of the selected tab */\n value?: T;\n /** Default value of the selected tab\n * @default null\n * */\n defaultValue?: T;\n /**\n * Behavior of tabs.\n * In `auto`, changes the tab immediately when press arrow.\n * In `manual`, needs to press `space` or `enter` for select a choice.\n * @default 'auto'\n */\n behavior?: 'auto' | 'manual';\n};\n\n/** @deprecated */\nexport interface ITabPanelItemProps extends TabPanelItemProps, UnknownProperties {}\nexport type TabPanelItemProps = BoxProps &\n KeyboardFocusProps & {\n /** Makes a tab selected. This property is determined automatically depending on the value. */\n selected?: boolean;\n /** Disabled state */\n disabled?: boolean;\n /** Tab value */\n value?: TabPanelValue;\n /** Left addon tag */\n addonLeft?: React.ElementType;\n /** Right addon tag */\n addonRight?: React.ElementType;\n };\n\n/** @deprecated */\nexport interface ITabPanelContext extends TabPanelContext, UnknownProperties {}\nexport type TabPanelContext = {\n getItemProps: PropGetterFn;\n};\n\n/** @deprecated */\nexport interface ITabPanelHandlers extends TabPanelHandlers, UnknownProperties {}\nexport type TabPanelHandlers = {\n value: (value: TabPanelValue) => void;\n};\n\ntype IntergalacticTabPanelComponent<PropsExtending = {}> = (<\n Value extends TabPanelValue,\n Tag extends Intergalactic.Tag = 'div',\n>(\n props: Intergalactic.InternalTypings.ComponentProps<\n Tag,\n 'div',\n TabPanelProps<Value>,\n TabPanelContext,\n [handlers: TabPanelHandlers]\n > &\n PropsExtending,\n) => Intergalactic.InternalTypings.ComponentRenderingResults) &\n Intergalactic.InternalTypings.ComponentAdditive<'div', 'div', TabPanelProps>;\n\ndeclare const TabPanel: IntergalacticTabPanelComponent & {\n Item: Intergalactic.Component<'div', TabPanelItemProps, {}, [handlers: TabPanelHandlers]> & {\n Text: typeof Box;\n Addon: typeof Box;\n };\n};\n\ndeclare const wrapTabPanel: <PropsExtending extends {}>(\n wrapper: (\n props: Intergalactic.InternalTypings.UntypeRefAndTag<\n Intergalactic.InternalTypings.ComponentPropsNesting<IntergalacticTabPanelComponent>\n > &\n PropsExtending,\n ) => React.ReactNode,\n) => IntergalacticTabPanelComponent<PropsExtending>;\nexport { wrapTabPanel };\n\nexport default TabPanel;\n"],"mappings":""}