@salt-ds/lab 1.0.0-alpha.18 → 1.0.0-alpha.19
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/dist-cjs/combo-box-next/ComboBoxNext.css.js +1 -1
- package/dist-cjs/dropdown-next/DropdownNext.css.js +1 -1
- package/dist-cjs/navigation-item/NavigationItem.css.js +1 -1
- package/dist-cjs/navigation-item/NavigationItem.js +3 -2
- package/dist-cjs/navigation-item/NavigationItem.js.map +1 -1
- package/dist-cjs/progress/CircularProgress/CircularProgress.css.js +1 -1
- package/dist-cjs/progress/CircularProgress/CircularProgress.js +6 -16
- package/dist-cjs/progress/CircularProgress/CircularProgress.js.map +1 -1
- package/dist-cjs/progress/Info.js +3 -2
- package/dist-cjs/progress/Info.js.map +1 -1
- package/dist-cjs/progress/LinearProgress/LinearProgress.css.js +1 -1
- package/dist-cjs/progress/LinearProgress/LinearProgress.js +6 -9
- package/dist-cjs/progress/LinearProgress/LinearProgress.js.map +1 -1
- package/dist-cjs/tabs-next/TabNext.css.js +1 -1
- package/dist-cjs/tabs-next/TabNext.js +16 -12
- package/dist-cjs/tabs-next/TabNext.js.map +1 -1
- package/dist-cjs/tabs-next/TabNextContext.js +5 -3
- package/dist-cjs/tabs-next/TabNextContext.js.map +1 -1
- package/dist-cjs/tabs-next/TabstripNext.css.js +1 -1
- package/dist-cjs/tabs-next/TabstripNext.js +37 -26
- package/dist-cjs/tabs-next/TabstripNext.js.map +1 -1
- package/dist-es/combo-box-next/ComboBoxNext.css.js +1 -1
- package/dist-es/dropdown-next/DropdownNext.css.js +1 -1
- package/dist-es/navigation-item/NavigationItem.css.js +1 -1
- package/dist-es/navigation-item/NavigationItem.js +3 -2
- package/dist-es/navigation-item/NavigationItem.js.map +1 -1
- package/dist-es/progress/CircularProgress/CircularProgress.css.js +1 -1
- package/dist-es/progress/CircularProgress/CircularProgress.js +6 -16
- package/dist-es/progress/CircularProgress/CircularProgress.js.map +1 -1
- package/dist-es/progress/Info.js +3 -2
- package/dist-es/progress/Info.js.map +1 -1
- package/dist-es/progress/LinearProgress/LinearProgress.css.js +1 -1
- package/dist-es/progress/LinearProgress/LinearProgress.js +6 -9
- package/dist-es/progress/LinearProgress/LinearProgress.js.map +1 -1
- package/dist-es/tabs-next/TabNext.css.js +1 -1
- package/dist-es/tabs-next/TabNext.js +16 -12
- package/dist-es/tabs-next/TabNext.js.map +1 -1
- package/dist-es/tabs-next/TabNextContext.js +5 -3
- package/dist-es/tabs-next/TabNextContext.js.map +1 -1
- package/dist-es/tabs-next/TabstripNext.css.js +1 -1
- package/dist-es/tabs-next/TabstripNext.js +37 -26
- package/dist-es/tabs-next/TabstripNext.js.map +1 -1
- package/dist-types/progress/CircularProgress/CircularProgress.d.ts +1 -5
- package/dist-types/progress/LinearProgress/LinearProgress.d.ts +2 -6
- package/dist-types/tabs-next/TabNextContext.d.ts +4 -2
- package/dist-types/tabs-next/TabstripNext.d.ts +5 -3
- package/package.json +3 -3
|
@@ -13,13 +13,16 @@ const withBaseName = makePrefixer("saltTabstripNext");
|
|
|
13
13
|
const TabstripNext = forwardRef(
|
|
14
14
|
function TabstripNext2(props, ref) {
|
|
15
15
|
const {
|
|
16
|
+
activeColor = "primary",
|
|
17
|
+
align = "left",
|
|
16
18
|
children,
|
|
17
19
|
className,
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
defaultSelected,
|
|
20
|
+
value: valueProp,
|
|
21
|
+
defaultValue,
|
|
21
22
|
onChange,
|
|
22
23
|
onKeyDown,
|
|
24
|
+
style,
|
|
25
|
+
variant = "main",
|
|
23
26
|
...rest
|
|
24
27
|
} = props;
|
|
25
28
|
const targetWindow = useWindow();
|
|
@@ -30,31 +33,29 @@ const TabstripNext = forwardRef(
|
|
|
30
33
|
});
|
|
31
34
|
const tabstripRef = useRef(null);
|
|
32
35
|
const handleRef = useForkRef(tabstripRef, ref);
|
|
33
|
-
const [
|
|
34
|
-
controlled:
|
|
35
|
-
default:
|
|
36
|
+
const [value, setValue] = useControlled({
|
|
37
|
+
controlled: valueProp,
|
|
38
|
+
default: defaultValue,
|
|
36
39
|
name: "TabstripNext",
|
|
37
40
|
state: "selected"
|
|
38
41
|
});
|
|
39
|
-
const [focusable, setFocusableState] = useState(
|
|
40
|
-
selected
|
|
41
|
-
);
|
|
42
|
+
const [focusable, setFocusableState] = useState(value);
|
|
42
43
|
const [overflowOpen, setOverflowOpen] = useState(false);
|
|
43
|
-
const
|
|
44
|
+
const activate = useCallback(
|
|
44
45
|
(event) => {
|
|
45
46
|
const newValue = event.currentTarget.value;
|
|
46
|
-
|
|
47
|
-
if (
|
|
47
|
+
setValue(newValue);
|
|
48
|
+
if (value !== newValue) {
|
|
48
49
|
onChange == null ? void 0 : onChange(event, { value: newValue });
|
|
49
50
|
}
|
|
50
51
|
},
|
|
51
|
-
[onChange,
|
|
52
|
+
[onChange, value, setValue]
|
|
52
53
|
);
|
|
53
|
-
const
|
|
54
|
+
const isActive = useCallback(
|
|
54
55
|
(id) => {
|
|
55
|
-
return
|
|
56
|
+
return value === id;
|
|
56
57
|
},
|
|
57
|
-
[
|
|
58
|
+
[value]
|
|
58
59
|
);
|
|
59
60
|
const setFocusable = useCallback((id) => {
|
|
60
61
|
setFocusableState(id);
|
|
@@ -105,7 +106,7 @@ const TabstripNext = forwardRef(
|
|
|
105
106
|
};
|
|
106
107
|
const handleOverflowItemClick = (event, item) => {
|
|
107
108
|
if (item) {
|
|
108
|
-
|
|
109
|
+
setValue(item.value);
|
|
109
110
|
requestAnimationFrame(() => {
|
|
110
111
|
var _a;
|
|
111
112
|
const element = (_a = tabstripRef.current) == null ? void 0 : _a.querySelector(
|
|
@@ -115,7 +116,7 @@ const TabstripNext = forwardRef(
|
|
|
115
116
|
element == null ? void 0 : element.focus();
|
|
116
117
|
}
|
|
117
118
|
});
|
|
118
|
-
if (
|
|
119
|
+
if (value !== item.value) {
|
|
119
120
|
onChange == null ? void 0 : onChange(event, { value: item.value });
|
|
120
121
|
}
|
|
121
122
|
}
|
|
@@ -123,26 +124,34 @@ const TabstripNext = forwardRef(
|
|
|
123
124
|
const handleOverflowOpenChange = (isOpen) => {
|
|
124
125
|
setOverflowOpen(isOpen);
|
|
125
126
|
};
|
|
126
|
-
const
|
|
127
|
+
const contextValue = useMemo(
|
|
127
128
|
() => ({
|
|
128
|
-
|
|
129
|
-
|
|
129
|
+
activate,
|
|
130
|
+
isActive,
|
|
130
131
|
setFocusable,
|
|
131
132
|
isFocusable,
|
|
132
133
|
registerTab,
|
|
133
|
-
unregisterTab
|
|
134
|
+
unregisterTab,
|
|
135
|
+
variant,
|
|
136
|
+
activeColor
|
|
134
137
|
}),
|
|
135
138
|
[
|
|
136
|
-
|
|
137
|
-
|
|
139
|
+
activate,
|
|
140
|
+
isActive,
|
|
138
141
|
setFocusable,
|
|
139
142
|
isFocusable,
|
|
140
143
|
registerTab,
|
|
141
|
-
unregisterTab
|
|
144
|
+
unregisterTab,
|
|
145
|
+
variant,
|
|
146
|
+
activeColor
|
|
142
147
|
]
|
|
143
148
|
);
|
|
149
|
+
const tabstripStyle = {
|
|
150
|
+
"--tabstripNext-justifyContent": align,
|
|
151
|
+
...style
|
|
152
|
+
};
|
|
144
153
|
return /* @__PURE__ */ jsx(TabsContext.Provider, {
|
|
145
|
-
value,
|
|
154
|
+
value: contextValue,
|
|
146
155
|
children: /* @__PURE__ */ jsx(Overflow, {
|
|
147
156
|
ref: handleRef,
|
|
148
157
|
children: /* @__PURE__ */ jsxs("div", {
|
|
@@ -150,9 +159,11 @@ const TabstripNext = forwardRef(
|
|
|
150
159
|
className: clsx(
|
|
151
160
|
withBaseName(),
|
|
152
161
|
withBaseName("horizontal"),
|
|
162
|
+
withBaseName(variant),
|
|
153
163
|
className
|
|
154
164
|
),
|
|
155
165
|
onKeyDown: handleKeyDown,
|
|
166
|
+
style: tabstripStyle,
|
|
156
167
|
...rest,
|
|
157
168
|
children: [
|
|
158
169
|
children,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TabstripNext.js","sources":["../src/tabs-next/TabstripNext.tsx"],"sourcesContent":["import { makePrefixer, useControlled, useForkRef } from \"@salt-ds/core\";\nimport clsx from \"clsx\";\nimport {\n ComponentPropsWithoutRef,\n forwardRef,\n ReactNode,\n SyntheticEvent,\n KeyboardEvent,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { Overflow } from \"@fluentui/react-overflow\";\nimport { OverflowMenu } from \"./OverflowMenu\";\nimport tabstripCss from \"./TabstripNext.css\";\nimport { TabsContext } from \"./TabNextContext\";\nimport { SelectionChangeHandler } from \"../common-hooks\";\n\nconst withBaseName = makePrefixer(\"saltTabstripNext\");\n\nexport interface TabstripNextProps\n extends Omit<ComponentPropsWithoutRef<\"div\">, \"onChange\"> {\n disabled?: boolean;\n /* Value for the uncontrolled version. */\n selected?: string;\n /* Callback for the controlled version. */\n onChange?: (e: SyntheticEvent, data: { value: string }) => void;\n /* Initial value for the uncontrolled version. */\n defaultSelected?: string;\n}\n\ntype TabValue = {\n value: string;\n label: ReactNode;\n};\n\nexport const TabstripNext = forwardRef<HTMLDivElement, TabstripNextProps>(\n function TabstripNext(props, ref) {\n const {\n children,\n className,\n disabled,\n selected: selectedProp,\n defaultSelected,\n onChange,\n onKeyDown,\n ...rest\n } = props;\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-tabstrip-next\",\n css: tabstripCss,\n window: targetWindow,\n });\n\n const tabstripRef = useRef<HTMLDivElement>(null);\n const handleRef = useForkRef(tabstripRef, ref);\n\n const [selected, setSelected] = useControlled({\n controlled: selectedProp,\n default: defaultSelected,\n name: \"TabstripNext\",\n state: \"selected\",\n });\n const [focusable, setFocusableState] = useState<string | undefined>(\n selected\n );\n const [overflowOpen, setOverflowOpen] = useState(false);\n\n const select = useCallback(\n (event: SyntheticEvent<HTMLButtonElement>) => {\n const newValue = event.currentTarget.value;\n setSelected(newValue);\n if (selected !== newValue) {\n onChange?.(event, { value: newValue });\n }\n },\n [onChange, selected, setSelected]\n );\n\n const isSelected = useCallback(\n (id: string | undefined) => {\n return selected === id;\n },\n [selected]\n );\n\n const setFocusable = useCallback((id: string | undefined) => {\n setFocusableState(id);\n }, []);\n\n const isFocusable = useCallback(\n (id: string | undefined) => {\n return focusable === id || !focusable;\n },\n [focusable]\n );\n\n const [tabList, setTabList] = useState<TabValue[]>([]);\n const registerTab = useCallback((tab: TabValue) => {\n setTabList((list) => list.concat([tab]));\n }, []);\n\n const unregisterTab = useCallback((id: string) => {\n setTabList((list) => list.filter((item) => item.value !== id));\n }, []);\n\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (overflowOpen) return;\n\n const elements: HTMLElement[] = Array.from(\n tabstripRef.current?.querySelectorAll(\n `div:not([data-overflowing]) > [role=\"tab\"]:not([disabled])`\n ) ?? []\n );\n\n const currentIndex = elements.findIndex(\n (element) => element === targetWindow?.document.activeElement\n );\n\n if (currentIndex < 0) return;\n\n switch (event.key) {\n case \"ArrowDown\":\n case \"ArrowRight\":\n elements[Math.min(currentIndex + 1, elements.length)]?.focus();\n break;\n case \"ArrowUp\":\n case \"ArrowLeft\":\n elements[Math.max(0, currentIndex - 1)]?.focus();\n break;\n case \"Home\":\n elements[0]?.focus();\n break;\n case \"End\":\n elements[elements.length - 1]?.focus();\n }\n\n onKeyDown?.(event);\n };\n\n const handleOverflowItemClick: SelectionChangeHandler<TabValue> = (\n event,\n item\n ) => {\n if (item) {\n setSelected(item.value);\n requestAnimationFrame(() => {\n const element = tabstripRef.current?.querySelector(\n `[value=\"${item.value}\"]`\n );\n if (element instanceof HTMLElement) {\n element?.focus();\n }\n });\n if (selected !== item.value) {\n onChange?.(event, { value: item.value });\n }\n }\n };\n\n const handleOverflowOpenChange = (isOpen: boolean) => {\n setOverflowOpen(isOpen);\n };\n\n const value = useMemo(\n () => ({\n select,\n isSelected,\n setFocusable,\n isFocusable,\n registerTab,\n unregisterTab,\n }),\n [\n select,\n isSelected,\n setFocusable,\n isFocusable,\n registerTab,\n unregisterTab,\n ]\n );\n\n return (\n <TabsContext.Provider value={value}>\n <Overflow ref={handleRef}>\n <div\n role=\"tablist\"\n className={clsx(\n withBaseName(),\n withBaseName(\"horizontal\"),\n className\n )}\n onKeyDown={handleKeyDown}\n {...rest}\n >\n {children}\n <OverflowMenu\n tabs={tabList}\n onOpenChange={handleOverflowOpenChange}\n onSelectionChange={handleOverflowItemClick}\n />\n </div>\n </Overflow>\n </TabsContext.Provider>\n );\n }\n);\n"],"names":["TabstripNext","tabstripCss"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TabstripNext.js","sources":["../src/tabs-next/TabstripNext.tsx"],"sourcesContent":["import { makePrefixer, useControlled, useForkRef } from \"@salt-ds/core\";\nimport clsx from \"clsx\";\nimport {\n ComponentPropsWithoutRef,\n forwardRef,\n ReactNode,\n SyntheticEvent,\n KeyboardEvent,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { Overflow } from \"@fluentui/react-overflow\";\nimport { OverflowMenu } from \"./OverflowMenu\";\nimport tabstripCss from \"./TabstripNext.css\";\nimport { TabsContext } from \"./TabNextContext\";\nimport { SelectionChangeHandler } from \"../common-hooks\";\n\nconst withBaseName = makePrefixer(\"saltTabstripNext\");\n\nexport interface TabstripNextProps\n extends Omit<ComponentPropsWithoutRef<\"div\">, \"onChange\"> {\n /* Styling active color variant. Defaults to \"primary\". */\n activeColor?: \"primary\" | \"secondary\";\n /* Tabs alignment. Defaults to \"left\" */\n align?: \"left\" | \"center\" | \"right\";\n /* Value for the uncontrolled version. */\n value?: string;\n /* Callback for the controlled version. */\n onChange?: (e: SyntheticEvent, data: { value: string }) => void;\n /* Initial value for the uncontrolled version. */\n defaultValue?: string;\n /* The Tabs variant */\n variant?: \"main\" | \"inline\";\n}\n\ninterface TabValue {\n value: string;\n label: ReactNode;\n}\n\nexport const TabstripNext = forwardRef<HTMLDivElement, TabstripNextProps>(\n function TabstripNext(props, ref) {\n const {\n activeColor = \"primary\",\n align = \"left\",\n children,\n className,\n value: valueProp,\n defaultValue,\n onChange,\n onKeyDown,\n style,\n variant = \"main\",\n ...rest\n } = props;\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-tabstrip-next\",\n css: tabstripCss,\n window: targetWindow,\n });\n\n const tabstripRef = useRef<HTMLDivElement>(null);\n const handleRef = useForkRef(tabstripRef, ref);\n\n const [value, setValue] = useControlled({\n controlled: valueProp,\n default: defaultValue,\n name: \"TabstripNext\",\n state: \"selected\",\n });\n const [focusable, setFocusableState] = useState<string | undefined>(value);\n const [overflowOpen, setOverflowOpen] = useState(false);\n\n const activate = useCallback(\n (event: SyntheticEvent<HTMLButtonElement>) => {\n const newValue = event.currentTarget.value;\n setValue(newValue);\n if (value !== newValue) {\n onChange?.(event, { value: newValue });\n }\n },\n [onChange, value, setValue]\n );\n\n const isActive = useCallback(\n (id: string | undefined) => {\n return value === id;\n },\n [value]\n );\n\n const setFocusable = useCallback((id: string | undefined) => {\n setFocusableState(id);\n }, []);\n\n const isFocusable = useCallback(\n (id: string | undefined) => {\n return focusable === id || !focusable;\n },\n [focusable]\n );\n\n const [tabList, setTabList] = useState<TabValue[]>([]);\n const registerTab = useCallback((tab: TabValue) => {\n setTabList((list) => list.concat([tab]));\n }, []);\n\n const unregisterTab = useCallback((id: string) => {\n setTabList((list) => list.filter((item) => item.value !== id));\n }, []);\n\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n if (overflowOpen) return;\n\n const elements: HTMLElement[] = Array.from(\n tabstripRef.current?.querySelectorAll(\n `div:not([data-overflowing]) > [role=\"tab\"]:not([disabled])`\n ) ?? []\n );\n\n const currentIndex = elements.findIndex(\n (element) => element === targetWindow?.document.activeElement\n );\n\n if (currentIndex < 0) return;\n\n switch (event.key) {\n case \"ArrowDown\":\n case \"ArrowRight\":\n elements[Math.min(currentIndex + 1, elements.length)]?.focus();\n break;\n case \"ArrowUp\":\n case \"ArrowLeft\":\n elements[Math.max(0, currentIndex - 1)]?.focus();\n break;\n case \"Home\":\n elements[0]?.focus();\n break;\n case \"End\":\n elements[elements.length - 1]?.focus();\n }\n\n onKeyDown?.(event);\n };\n\n const handleOverflowItemClick: SelectionChangeHandler<TabValue> = (\n event,\n item\n ) => {\n if (item) {\n setValue(item.value);\n requestAnimationFrame(() => {\n const element = tabstripRef.current?.querySelector(\n `[value=\"${item.value}\"]`\n );\n if (element instanceof HTMLElement) {\n element?.focus();\n }\n });\n if (value !== item.value) {\n onChange?.(event, { value: item.value });\n }\n }\n };\n\n const handleOverflowOpenChange = (isOpen: boolean) => {\n setOverflowOpen(isOpen);\n };\n\n const contextValue = useMemo(\n () => ({\n activate,\n isActive,\n setFocusable,\n isFocusable,\n registerTab,\n unregisterTab,\n variant,\n activeColor,\n }),\n [\n activate,\n isActive,\n setFocusable,\n isFocusable,\n registerTab,\n unregisterTab,\n variant,\n activeColor,\n ]\n );\n\n const tabstripStyle = {\n \"--tabstripNext-justifyContent\": align,\n ...style,\n };\n\n return (\n <TabsContext.Provider value={contextValue}>\n <Overflow ref={handleRef}>\n <div\n role=\"tablist\"\n className={clsx(\n withBaseName(),\n withBaseName(\"horizontal\"),\n withBaseName(variant),\n className\n )}\n onKeyDown={handleKeyDown}\n style={tabstripStyle}\n {...rest}\n >\n {children}\n <OverflowMenu\n tabs={tabList}\n onOpenChange={handleOverflowOpenChange}\n onSelectionChange={handleOverflowItemClick}\n />\n </div>\n </Overflow>\n </TabsContext.Provider>\n );\n }\n);\n"],"names":["TabstripNext","tabstripCss"],"mappings":"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"}
|
|
@@ -13,10 +13,6 @@ export interface CircularProgressProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
13
13
|
* Default value is 100.
|
|
14
14
|
*/
|
|
15
15
|
max?: number;
|
|
16
|
-
/**
|
|
17
|
-
* If `true`, the info panel will be displayed.
|
|
18
|
-
*/
|
|
19
|
-
showInfo?: boolean;
|
|
20
16
|
/**
|
|
21
17
|
* The value of the progress indicator.
|
|
22
18
|
* Value between 0 and max.
|
|
@@ -24,6 +20,6 @@ export interface CircularProgressProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
24
20
|
value?: number;
|
|
25
21
|
}
|
|
26
22
|
/**
|
|
27
|
-
* Circular progress bar with an
|
|
23
|
+
* Circular progress bar with an Info element showing the current value
|
|
28
24
|
*/
|
|
29
25
|
export declare const CircularProgress: import("react").ForwardRefExoticComponent<CircularProgressProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -10,11 +10,7 @@ export interface LinearProgressProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
10
10
|
*/
|
|
11
11
|
max?: number;
|
|
12
12
|
/**
|
|
13
|
-
*
|
|
14
|
-
*/
|
|
15
|
-
showInfo?: boolean;
|
|
16
|
-
/**
|
|
17
|
-
* Default unit is`%`.
|
|
13
|
+
* Default unit is `%`.
|
|
18
14
|
*/
|
|
19
15
|
unit?: string;
|
|
20
16
|
/**
|
|
@@ -24,6 +20,6 @@ export interface LinearProgressProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
24
20
|
value?: number;
|
|
25
21
|
}
|
|
26
22
|
/**
|
|
27
|
-
* Linear progress bar with an
|
|
23
|
+
* Linear progress bar with an Info element showing the current value
|
|
28
24
|
*/
|
|
29
25
|
export declare const LinearProgress: import("react").ForwardRefExoticComponent<LinearProgressProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -4,13 +4,15 @@ declare type TabValue = {
|
|
|
4
4
|
label: ReactNode;
|
|
5
5
|
};
|
|
6
6
|
export interface TabsContextValue {
|
|
7
|
+
activeColor: "primary" | "secondary";
|
|
7
8
|
disabled?: boolean;
|
|
8
|
-
|
|
9
|
-
|
|
9
|
+
activate: (event: SyntheticEvent<HTMLButtonElement>) => void;
|
|
10
|
+
isActive: (id: string) => boolean;
|
|
10
11
|
setFocusable: (id: string) => void;
|
|
11
12
|
isFocusable: (id: string) => boolean;
|
|
12
13
|
registerTab: (tab: TabValue) => void;
|
|
13
14
|
unregisterTab: (id: string) => void;
|
|
15
|
+
variant: "main" | "inline";
|
|
14
16
|
}
|
|
15
17
|
export declare const TabsContext: import("react").Context<TabsContextValue>;
|
|
16
18
|
export declare function useTabs(): TabsContextValue;
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { ComponentPropsWithoutRef, SyntheticEvent } from "react";
|
|
2
2
|
export interface TabstripNextProps extends Omit<ComponentPropsWithoutRef<"div">, "onChange"> {
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
activeColor?: "primary" | "secondary";
|
|
4
|
+
align?: "left" | "center" | "right";
|
|
5
|
+
value?: string;
|
|
5
6
|
onChange?: (e: SyntheticEvent, data: {
|
|
6
7
|
value: string;
|
|
7
8
|
}) => void;
|
|
8
|
-
|
|
9
|
+
defaultValue?: string;
|
|
10
|
+
variant?: "main" | "inline";
|
|
9
11
|
}
|
|
10
12
|
export declare const TabstripNext: import("react").ForwardRefExoticComponent<TabstripNextProps & import("react").RefAttributes<HTMLDivElement>>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@salt-ds/lab",
|
|
3
|
-
"version": "1.0.0-alpha.
|
|
3
|
+
"version": "1.0.0-alpha.19",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -26,9 +26,9 @@
|
|
|
26
26
|
"react-window": "^1.8.6",
|
|
27
27
|
"rifm": "^0.12.0",
|
|
28
28
|
"tinycolor2": "^1.4.2",
|
|
29
|
-
"@salt-ds/core": "^1.
|
|
29
|
+
"@salt-ds/core": "^1.10.0",
|
|
30
30
|
"@salt-ds/window": "^0.1.1",
|
|
31
|
-
"@salt-ds/styles": "^0.1.
|
|
31
|
+
"@salt-ds/styles": "^0.1.2",
|
|
32
32
|
"@salt-ds/icons": "^1.7.0"
|
|
33
33
|
},
|
|
34
34
|
"peerDependencies": {
|