@salt-ds/lab 1.0.0-alpha.10 → 1.0.0-alpha.11
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/common-hooks/useKeyboardNavigation.js +0 -3
- package/dist-cjs/common-hooks/useKeyboardNavigation.js.map +1 -1
- package/dist-cjs/dialog/DialogTitle.css.js +1 -1
- package/dist-cjs/dialog/DialogTitle.js +2 -3
- package/dist-cjs/dialog/DialogTitle.js.map +1 -1
- package/dist-cjs/dropdown/Dropdown.js +5 -2
- package/dist-cjs/dropdown/Dropdown.js.map +1 -1
- package/dist-cjs/dropdown/useDropdown.js +12 -0
- package/dist-cjs/dropdown/useDropdown.js.map +1 -1
- package/dist-cjs/index.js +15 -1
- package/dist-cjs/index.js.map +1 -1
- package/dist-cjs/list/useList.js +0 -1
- package/dist-cjs/list/useList.js.map +1 -1
- package/dist-cjs/list-next/ListItemNext.css.js +6 -0
- package/dist-cjs/list-next/ListItemNext.css.js.map +1 -0
- package/dist-cjs/list-next/ListItemNext.js +74 -0
- package/dist-cjs/list-next/ListItemNext.js.map +1 -0
- package/dist-cjs/list-next/ListNext.css.js +6 -0
- package/dist-cjs/list-next/ListNext.css.js.map +1 -0
- package/dist-cjs/list-next/ListNext.js +92 -0
- package/dist-cjs/list-next/ListNext.js.map +1 -0
- package/dist-cjs/list-next/ListNextContext.js +18 -0
- package/dist-cjs/list-next/ListNextContext.js.map +1 -0
- package/dist-cjs/list-next/useList.js +188 -0
- package/dist-cjs/list-next/useList.js.map +1 -0
- package/dist-cjs/logo/Logo.css.js +1 -1
- package/dist-cjs/logo/Logo.js +4 -36
- package/dist-cjs/logo/Logo.js.map +1 -1
- package/dist-cjs/logo/LogoImage.js +24 -0
- package/dist-cjs/logo/LogoImage.js.map +1 -0
- package/dist-cjs/logo/LogoSeparator.css.js +6 -0
- package/dist-cjs/logo/LogoSeparator.css.js.map +1 -0
- package/dist-cjs/logo/LogoSeparator.js +32 -0
- package/dist-cjs/logo/LogoSeparator.js.map +1 -0
- package/dist-cjs/query-input/internal/QueryInputBody.js +5 -5
- package/dist-cjs/query-input/internal/QueryInputBody.js.map +1 -1
- package/dist-cjs/tabs-next/OverflowMenu.js +49 -0
- package/dist-cjs/tabs-next/OverflowMenu.js.map +1 -0
- package/dist-cjs/tabs-next/TabNext.css.js +6 -0
- package/dist-cjs/tabs-next/TabNext.css.js.map +1 -0
- package/dist-cjs/tabs-next/TabNext.js +87 -0
- package/dist-cjs/tabs-next/TabNext.js.map +1 -0
- package/dist-cjs/tabs-next/TabNextContext.js +23 -0
- package/dist-cjs/tabs-next/TabNextContext.js.map +1 -0
- package/dist-cjs/tabs-next/TabstripNext.css.js +6 -0
- package/dist-cjs/tabs-next/TabstripNext.css.js.map +1 -0
- package/dist-cjs/tabs-next/TabstripNext.js +180 -0
- package/dist-cjs/tabs-next/TabstripNext.js.map +1 -0
- package/dist-cjs/toggle-button/ToggleButton.css.js +1 -1
- package/dist-cjs/toggle-button/ToggleButton.js +44 -74
- package/dist-cjs/toggle-button/ToggleButton.js.map +1 -1
- package/dist-cjs/toggle-button-group/ToggleButtonGroup.css.js +6 -0
- package/dist-cjs/toggle-button-group/ToggleButtonGroup.js +111 -0
- package/dist-cjs/toggle-button-group/ToggleButtonGroup.js.map +1 -0
- package/dist-cjs/toggle-button-group/ToggleButtonGroupContext.js +15 -0
- package/dist-cjs/toggle-button-group/ToggleButtonGroupContext.js.map +1 -0
- package/dist-es/common-hooks/useKeyboardNavigation.js +0 -3
- package/dist-es/common-hooks/useKeyboardNavigation.js.map +1 -1
- package/dist-es/dialog/DialogTitle.css.js +1 -1
- package/dist-es/dialog/DialogTitle.js +3 -4
- package/dist-es/dialog/DialogTitle.js.map +1 -1
- package/dist-es/dropdown/Dropdown.js +5 -2
- package/dist-es/dropdown/Dropdown.js.map +1 -1
- package/dist-es/dropdown/useDropdown.js +12 -0
- package/dist-es/dropdown/useDropdown.js.map +1 -1
- package/dist-es/index.js +8 -1
- package/dist-es/index.js.map +1 -1
- package/dist-es/list/useList.js +0 -1
- package/dist-es/list/useList.js.map +1 -1
- package/dist-es/list-next/ListItemNext.css.js +4 -0
- package/dist-es/list-next/ListItemNext.css.js.map +1 -0
- package/dist-es/list-next/ListItemNext.js +70 -0
- package/dist-es/list-next/ListItemNext.js.map +1 -0
- package/dist-es/list-next/ListNext.css.js +4 -0
- package/dist-es/list-next/ListNext.css.js.map +1 -0
- package/dist-es/list-next/ListNext.js +88 -0
- package/dist-es/list-next/ListNext.js.map +1 -0
- package/dist-es/list-next/ListNextContext.js +13 -0
- package/dist-es/list-next/ListNextContext.js.map +1 -0
- package/dist-es/list-next/useList.js +184 -0
- package/dist-es/list-next/useList.js.map +1 -0
- package/dist-es/logo/Logo.css.js +1 -1
- package/dist-es/logo/Logo.js +5 -37
- package/dist-es/logo/Logo.js.map +1 -1
- package/dist-es/logo/LogoImage.js +20 -0
- package/dist-es/logo/LogoImage.js.map +1 -0
- package/dist-es/logo/LogoSeparator.css.js +4 -0
- package/dist-es/logo/LogoSeparator.css.js.map +1 -0
- package/dist-es/logo/LogoSeparator.js +28 -0
- package/dist-es/logo/LogoSeparator.js.map +1 -0
- package/dist-es/query-input/internal/QueryInputBody.js +5 -5
- package/dist-es/query-input/internal/QueryInputBody.js.map +1 -1
- package/dist-es/tabs-next/OverflowMenu.js +45 -0
- package/dist-es/tabs-next/OverflowMenu.js.map +1 -0
- package/dist-es/tabs-next/TabNext.css.js +4 -0
- package/dist-es/tabs-next/TabNext.css.js.map +1 -0
- package/dist-es/tabs-next/TabNext.js +79 -0
- package/dist-es/tabs-next/TabNext.js.map +1 -0
- package/dist-es/tabs-next/TabNextContext.js +18 -0
- package/dist-es/tabs-next/TabNextContext.js.map +1 -0
- package/dist-es/tabs-next/TabstripNext.css.js +4 -0
- package/dist-es/tabs-next/TabstripNext.css.js.map +1 -0
- package/dist-es/tabs-next/TabstripNext.js +172 -0
- package/dist-es/tabs-next/TabstripNext.js.map +1 -0
- package/dist-es/toggle-button/ToggleButton.css.js +1 -1
- package/dist-es/toggle-button/ToggleButton.js +45 -75
- package/dist-es/toggle-button/ToggleButton.js.map +1 -1
- package/dist-es/toggle-button-group/ToggleButtonGroup.css.js +4 -0
- package/dist-es/toggle-button-group/ToggleButtonGroup.js +107 -0
- package/dist-es/toggle-button-group/ToggleButtonGroup.js.map +1 -0
- package/dist-es/toggle-button-group/ToggleButtonGroupContext.js +10 -0
- package/dist-es/toggle-button-group/ToggleButtonGroupContext.js.map +1 -0
- package/dist-types/dropdown/useDropdown.d.ts +1 -1
- package/dist-types/index.d.ts +3 -0
- package/dist-types/list-next/ListItemNext.d.ts +11 -0
- package/dist-types/list-next/ListNext.d.ts +10 -0
- package/dist-types/list-next/ListNextContext.d.ts +10 -0
- package/dist-types/list-next/index.d.ts +2 -0
- package/dist-types/list-next/useList.d.ts +29 -0
- package/dist-types/logo/Logo.d.ts +3 -31
- package/dist-types/logo/LogoImage.d.ts +5 -0
- package/dist-types/logo/LogoSeparator.d.ts +3 -0
- package/dist-types/logo/index.d.ts +2 -0
- package/dist-types/tabs-next/OverflowMenu.d.ts +11 -0
- package/dist-types/tabs-next/TabNext.d.ts +5 -0
- package/dist-types/tabs-next/TabNextContext.d.ts +17 -0
- package/dist-types/tabs-next/TabstripNext.d.ts +10 -0
- package/dist-types/tabs-next/index.d.ts +2 -0
- package/dist-types/toggle-button/ToggleButton.d.ts +6 -11
- package/dist-types/toggle-button/index.d.ts +0 -1
- package/dist-types/toggle-button-group/ToggleButtonGroup.d.ts +25 -0
- package/dist-types/toggle-button-group/ToggleButtonGroupContext.d.ts +10 -0
- package/dist-types/toggle-button-group/index.d.ts +2 -0
- package/package.json +6 -4
- package/dist-cjs/logo/internal/LogoTitle.js +0 -28
- package/dist-cjs/logo/internal/LogoTitle.js.map +0 -1
- package/dist-cjs/toggle-button/ToggleButtonGroup.css.js +0 -6
- package/dist-cjs/toggle-button/ToggleButtonGroup.js +0 -147
- package/dist-cjs/toggle-button/ToggleButtonGroup.js.map +0 -1
- package/dist-cjs/toggle-button/internal/ToggleButtonGroupContext.js +0 -10
- package/dist-cjs/toggle-button/internal/ToggleButtonGroupContext.js.map +0 -1
- package/dist-es/logo/internal/LogoTitle.js +0 -24
- package/dist-es/logo/internal/LogoTitle.js.map +0 -1
- package/dist-es/toggle-button/ToggleButtonGroup.css.js +0 -4
- package/dist-es/toggle-button/ToggleButtonGroup.js +0 -143
- package/dist-es/toggle-button/ToggleButtonGroup.js.map +0 -1
- package/dist-es/toggle-button/internal/ToggleButtonGroupContext.js +0 -6
- package/dist-es/toggle-button/internal/ToggleButtonGroupContext.js.map +0 -1
- package/dist-types/logo/internal/LogoTitle.d.ts +0 -6
- package/dist-types/toggle-button/ToggleButtonGroup.d.ts +0 -18
- package/dist-types/toggle-button/internal/ToggleButtonGroupContext.d.ts +0 -14
- /package/dist-cjs/{toggle-button → toggle-button-group}/ToggleButtonGroup.css.js.map +0 -0
- /package/dist-es/{toggle-button → toggle-button-group}/ToggleButtonGroup.css.js.map +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ToggleButton.js","sources":["../src/toggle-button/ToggleButton.tsx"],"sourcesContent":["import {
|
|
1
|
+
{"version":3,"file":"ToggleButton.js","sources":["../src/toggle-button/ToggleButton.tsx"],"sourcesContent":["import {\n ComponentProps,\n forwardRef,\n useRef,\n MouseEvent,\n FocusEvent,\n} from \"react\";\nimport { makePrefixer, useControlled, useForkRef } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport { useToggleButtonGroup } from \"../toggle-button-group\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport toggleButtonCss from \"./ToggleButton.css\";\n\nexport interface ToggleButtonProps extends ComponentProps<\"button\"> {\n selected?: boolean;\n onChange?: (event: MouseEvent<HTMLButtonElement>) => void;\n value: string | ReadonlyArray<string> | number | undefined;\n}\n\nconst withBaseName = makePrefixer(\"saltToggleButton\");\n\nexport const ToggleButton = forwardRef<HTMLButtonElement, ToggleButtonProps>(\n function ToggleButton(props, ref) {\n const {\n children,\n className,\n disabled: disabledProp,\n value,\n onClick,\n onFocus,\n onChange,\n selected: selectedProp,\n ...rest\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-toggle-button\",\n css: toggleButtonCss,\n window: targetWindow,\n });\n\n const buttonRef = useRef<HTMLButtonElement>(null);\n const handleRef = useForkRef(ref, buttonRef);\n\n const toggleButtonGroup = useToggleButtonGroup();\n\n const toggleButtonGroupSelected = toggleButtonGroup\n ? toggleButtonGroup.isSelected(value)\n : selectedProp;\n const focusable = toggleButtonGroup\n ? toggleButtonGroup?.isFocused(value)\n : true;\n const disabled = toggleButtonGroup?.disabled || disabledProp;\n\n const [selected, setSelected] = useControlled({\n controlled: toggleButtonGroupSelected,\n default: Boolean(selectedProp),\n name: \"ToggleButton\",\n state: \"selected\",\n });\n\n const handleClick = (event: MouseEvent<HTMLButtonElement>) => {\n toggleButtonGroup?.select(event);\n setSelected(!selected);\n onChange?.(event);\n onClick?.(event);\n };\n\n const handleFocus = (event: FocusEvent<HTMLButtonElement>) => {\n toggleButtonGroup?.focus(value);\n onFocus?.(event);\n };\n\n const ariaChecked = selected && !disabled;\n\n return (\n <button\n aria-checked={ariaChecked}\n className={clsx(withBaseName(), className)}\n disabled={disabled}\n role={toggleButtonGroup ? \"radio\" : \"checkbox\"}\n ref={handleRef}\n onClick={handleClick}\n onFocus={handleFocus}\n tabIndex={focusable && !disabled ? 0 : -1}\n value={value}\n {...rest}\n >\n {children}\n </button>\n );\n }\n);\n"],"names":["ToggleButton","toggleButtonCss"],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
var css_248z = ".saltToggleButtonGroup {\n display: flex;\n background: var(--salt-container-primary-background);\n border: var(--salt-size-border) var(--salt-container-borderStyle) var(--salt-container-primary-borderColor);\n width: fit-content;\n gap: var(--salt-spacing-50);\n padding: calc(var(--salt-spacing-50) - var(--salt-size-border));\n flex-direction: row;\n}\n\n.saltToggleButtonGroup-horizontal .saltToggleButton {\n height: calc(var(--salt-size-base) - var(--salt-spacing-100));\n}\n\n.saltToggleButtonGroup-vertical {\n flex-direction: column;\n}\n\n.saltToggleButtonGroup-vertical .saltToggleButton {\n justify-content: start;\n}\n";
|
|
2
|
+
|
|
3
|
+
export { css_248z as default };
|
|
4
|
+
//# sourceMappingURL=ToggleButtonGroup.css.js.map
|
|
@@ -0,0 +1,107 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { forwardRef, useRef, useState, useCallback, useMemo } from 'react';
|
|
3
|
+
import { makePrefixer, useForkRef, useControlled } from '@salt-ds/core';
|
|
4
|
+
import { clsx } from 'clsx';
|
|
5
|
+
import { useWindow } from '@salt-ds/window';
|
|
6
|
+
import { useComponentCssInjection } from '@salt-ds/styles';
|
|
7
|
+
import { ToggleButtonGroupContext } from './ToggleButtonGroupContext.js';
|
|
8
|
+
import css_248z from './ToggleButtonGroup.css.js';
|
|
9
|
+
|
|
10
|
+
const withBaseName = makePrefixer("saltToggleButtonGroup");
|
|
11
|
+
const ToggleButtonGroup = forwardRef(function ToggleButtonGroup2(props, ref) {
|
|
12
|
+
const {
|
|
13
|
+
children,
|
|
14
|
+
className,
|
|
15
|
+
value: valueProp,
|
|
16
|
+
defaultValue,
|
|
17
|
+
disabled,
|
|
18
|
+
onChange,
|
|
19
|
+
onKeyDown,
|
|
20
|
+
orientation = "horizontal",
|
|
21
|
+
...rest
|
|
22
|
+
} = props;
|
|
23
|
+
const targetWindow = useWindow();
|
|
24
|
+
useComponentCssInjection({
|
|
25
|
+
testId: "salt-toggle-button-group",
|
|
26
|
+
css: css_248z,
|
|
27
|
+
window: targetWindow
|
|
28
|
+
});
|
|
29
|
+
const groupRef = useRef(null);
|
|
30
|
+
const handleRef = useForkRef(ref, groupRef);
|
|
31
|
+
const [value, setValue] = useControlled({
|
|
32
|
+
default: defaultValue,
|
|
33
|
+
controlled: valueProp,
|
|
34
|
+
name: "ToggleButtonGroup",
|
|
35
|
+
state: "value"
|
|
36
|
+
});
|
|
37
|
+
const [focused, setFocused] = useState(value);
|
|
38
|
+
const select = useCallback(
|
|
39
|
+
(event) => {
|
|
40
|
+
const newValue = event.currentTarget.value;
|
|
41
|
+
setValue(newValue);
|
|
42
|
+
if (value !== newValue) {
|
|
43
|
+
onChange == null ? void 0 : onChange(event);
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
[onChange, value, setValue]
|
|
47
|
+
);
|
|
48
|
+
const isSelected = useCallback(
|
|
49
|
+
(id) => {
|
|
50
|
+
return value === id;
|
|
51
|
+
},
|
|
52
|
+
[value]
|
|
53
|
+
);
|
|
54
|
+
const focus = (id) => {
|
|
55
|
+
setFocused(id);
|
|
56
|
+
};
|
|
57
|
+
const isFocused = useCallback(
|
|
58
|
+
(id) => {
|
|
59
|
+
return focused === id || !focused;
|
|
60
|
+
},
|
|
61
|
+
[focused]
|
|
62
|
+
);
|
|
63
|
+
const contextValue = useMemo(
|
|
64
|
+
() => ({
|
|
65
|
+
select,
|
|
66
|
+
isSelected,
|
|
67
|
+
focus,
|
|
68
|
+
isFocused,
|
|
69
|
+
disabled
|
|
70
|
+
}),
|
|
71
|
+
[select, isSelected, isFocused, disabled]
|
|
72
|
+
);
|
|
73
|
+
const handleKeyDown = (event) => {
|
|
74
|
+
var _a, _b, _c, _d;
|
|
75
|
+
const elements = Array.from(
|
|
76
|
+
(_b = (_a = groupRef.current) == null ? void 0 : _a.querySelectorAll("button:not([disabled])")) != null ? _b : []
|
|
77
|
+
);
|
|
78
|
+
const currentIndex = elements.findIndex(
|
|
79
|
+
(element) => element === document.activeElement
|
|
80
|
+
);
|
|
81
|
+
switch (event.key) {
|
|
82
|
+
case "ArrowDown":
|
|
83
|
+
case "ArrowRight":
|
|
84
|
+
(_c = elements[(currentIndex + 1) % elements.length]) == null ? void 0 : _c.focus();
|
|
85
|
+
break;
|
|
86
|
+
case "ArrowUp":
|
|
87
|
+
case "ArrowLeft":
|
|
88
|
+
(_d = elements[(currentIndex - 1 + elements.length) % elements.length]) == null ? void 0 : _d.focus();
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
onKeyDown == null ? void 0 : onKeyDown(event);
|
|
92
|
+
};
|
|
93
|
+
return /* @__PURE__ */ jsx(ToggleButtonGroupContext.Provider, {
|
|
94
|
+
value: contextValue,
|
|
95
|
+
children: /* @__PURE__ */ jsx("div", {
|
|
96
|
+
className: clsx(withBaseName(), withBaseName(orientation), className),
|
|
97
|
+
role: "radiogroup",
|
|
98
|
+
ref: handleRef,
|
|
99
|
+
onKeyDown: handleKeyDown,
|
|
100
|
+
...rest,
|
|
101
|
+
children
|
|
102
|
+
})
|
|
103
|
+
});
|
|
104
|
+
});
|
|
105
|
+
|
|
106
|
+
export { ToggleButtonGroup };
|
|
107
|
+
//# sourceMappingURL=ToggleButtonGroup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToggleButtonGroup.js","sources":["../src/toggle-button-group/ToggleButtonGroup.tsx"],"sourcesContent":["import {\n ComponentPropsWithoutRef,\n forwardRef,\n KeyboardEvent,\n SyntheticEvent,\n useCallback,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { makePrefixer, useControlled, useForkRef } from \"@salt-ds/core\";\nimport { clsx } from \"clsx\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport { ToggleButtonGroupContext } from \"./ToggleButtonGroupContext\";\nimport toggleButtonGroupCss from \"./ToggleButtonGroup.css\";\n\nexport interface ToggleButtonGroupProps\n extends Omit<ComponentPropsWithoutRef<\"div\">, \"onChange\"> {\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue?: string | ReadonlyArray<string> | number | undefined;\n /**\n * If `true`, the Toggle Button Group will be disabled.\n */\n disabled?: boolean;\n /**\n * The value. Use when the component is controlled.\n */\n value?: string | ReadonlyArray<string> | number | undefined;\n /**\n * Callback fired when the selection changes.\n * @param event\n */\n onChange?: (event: SyntheticEvent<HTMLButtonElement>) => void;\n /**\n * The orientation of the toggle buttons.\n */\n orientation?: \"horizontal\" | \"vertical\";\n}\n\nconst withBaseName = makePrefixer(\"saltToggleButtonGroup\");\n\nexport const ToggleButtonGroup = forwardRef<\n HTMLDivElement,\n ToggleButtonGroupProps\n>(function ToggleButtonGroup(props, ref) {\n const {\n children,\n className,\n value: valueProp,\n defaultValue,\n disabled,\n onChange,\n onKeyDown,\n orientation = \"horizontal\",\n ...rest\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-toggle-button-group\",\n css: toggleButtonGroupCss,\n window: targetWindow,\n });\n\n const groupRef = useRef<HTMLDivElement>(null);\n const handleRef = useForkRef(ref, groupRef);\n\n const [value, setValue] = useControlled({\n default: defaultValue,\n controlled: valueProp,\n name: \"ToggleButtonGroup\",\n state: \"value\",\n });\n const [focused, setFocused] = useState<\n string | ReadonlyArray<string> | number | undefined\n >(value);\n\n const select = useCallback(\n (event: SyntheticEvent<HTMLButtonElement>) => {\n const newValue = event.currentTarget.value;\n setValue(newValue);\n if (value !== newValue) {\n onChange?.(event);\n }\n },\n [onChange, value, setValue]\n );\n\n const isSelected = useCallback(\n (id: string | ReadonlyArray<string> | number | undefined) => {\n return value === id;\n },\n [value]\n );\n\n const focus = (id: string | ReadonlyArray<string> | number | undefined) => {\n setFocused(id);\n };\n\n const isFocused = useCallback(\n (id: string | ReadonlyArray<string> | number | undefined) => {\n return focused === id || !focused;\n },\n [focused]\n );\n\n const contextValue = useMemo(\n () => ({\n select,\n isSelected,\n focus,\n isFocused,\n disabled,\n }),\n [select, isSelected, isFocused, disabled]\n );\n\n const handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n const elements: HTMLElement[] = Array.from(\n groupRef.current?.querySelectorAll(\"button:not([disabled])\") ?? []\n );\n const currentIndex = elements.findIndex(\n (element) => element === document.activeElement\n );\n switch (event.key) {\n case \"ArrowDown\":\n case \"ArrowRight\":\n elements[(currentIndex + 1) % elements.length]?.focus();\n break;\n case \"ArrowUp\":\n case \"ArrowLeft\":\n elements[\n (currentIndex - 1 + elements.length) % elements.length\n ]?.focus();\n break;\n }\n\n onKeyDown?.(event);\n };\n\n return (\n <ToggleButtonGroupContext.Provider value={contextValue}>\n <div\n className={clsx(withBaseName(), withBaseName(orientation), className)}\n role=\"radiogroup\"\n ref={handleRef}\n onKeyDown={handleKeyDown}\n {...rest}\n >\n {children}\n </div>\n </ToggleButtonGroupContext.Provider>\n );\n});\n"],"names":["ToggleButtonGroup","toggleButtonGroupCss"],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { createContext } from '@salt-ds/core';
|
|
2
|
+
import { useContext } from 'react';
|
|
3
|
+
|
|
4
|
+
const ToggleButtonGroupContext = createContext("ToggleButtonGroupContext", void 0);
|
|
5
|
+
function useToggleButtonGroup() {
|
|
6
|
+
return useContext(ToggleButtonGroupContext);
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export { ToggleButtonGroupContext, useToggleButtonGroup };
|
|
10
|
+
//# sourceMappingURL=ToggleButtonGroupContext.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToggleButtonGroupContext.js","sources":["../src/toggle-button-group/ToggleButtonGroupContext.ts"],"sourcesContent":["import { createContext } from \"@salt-ds/core\";\nimport { SyntheticEvent, useContext } from \"react\";\n\nexport interface ToggleButtonGroupContextValue {\n disabled?: boolean;\n select: (event: SyntheticEvent<HTMLButtonElement>) => void;\n isSelected: (\n id: string | ReadonlyArray<string> | number | undefined\n ) => boolean;\n focus: (id: string | ReadonlyArray<string> | number | undefined) => void;\n isFocused: (\n id: string | ReadonlyArray<string> | number | undefined\n ) => boolean;\n}\n\nexport const ToggleButtonGroupContext = createContext<\n ToggleButtonGroupContextValue | undefined\n>(\"ToggleButtonGroupContext\", undefined);\n\nexport function useToggleButtonGroup() {\n return useContext(ToggleButtonGroupContext);\n}\n"],"names":[],"mappings":";;;AAea,MAAA,wBAAA,GAA2B,aAEtC,CAAA,0BAAA,EAA4B,KAAS,CAAA,EAAA;AAEhC,SAAS,oBAAuB,GAAA;AACrC,EAAA,OAAO,WAAW,wBAAwB,CAAA,CAAA;AAC5C;;;;"}
|
|
@@ -8,4 +8,4 @@ export interface DropdownListHookResult<Item, Selection extends SelectionStrateg
|
|
|
8
8
|
onOpenChange: any;
|
|
9
9
|
triggerLabel?: string;
|
|
10
10
|
}
|
|
11
|
-
export declare const useDropdown: <Item, Selection_1 extends SelectionStrategy = "default">({ collectionHook, defaultHighlightedIndex: defaultHighlightedIndexProp, defaultIsOpen, defaultSelected, highlightedIndex: highlightedIndexProp, isOpen: isOpenProp, itemToString, onHighlight, onOpenChange, onSelectionChange, selected, selectionStrategy, }: DropdownListHookProps<Item, Selection_1>) => DropdownListHookResult<Item, Selection_1>;
|
|
11
|
+
export declare const useDropdown: <Item, Selection_1 extends SelectionStrategy = "default">({ collectionHook, defaultHighlightedIndex: defaultHighlightedIndexProp, defaultIsOpen, defaultSelected, highlightedIndex: highlightedIndexProp, isOpen: isOpenProp, itemToString, onHighlight, onOpenChange, onSelectionChange, onSelect, selected, selectionStrategy, }: DropdownListHookProps<Item, Selection_1>) => DropdownListHookResult<Item, Selection_1>;
|
package/dist-types/index.d.ts
CHANGED
|
@@ -28,6 +28,7 @@ export * from "./formatted-input";
|
|
|
28
28
|
export { InputLegacy as Input, type InputLegacyProps as InputProps, StaticInputAdornment, } from "./input-legacy";
|
|
29
29
|
export * from "./layer-layout";
|
|
30
30
|
export * from "./list";
|
|
31
|
+
export * from "./list-next";
|
|
31
32
|
export * from "./logo";
|
|
32
33
|
export * from "./menu-button";
|
|
33
34
|
export * from "./metric";
|
|
@@ -48,7 +49,9 @@ export * from "./slider";
|
|
|
48
49
|
export * from "./stepper-input";
|
|
49
50
|
export * from "./switch";
|
|
50
51
|
export * from "./tabs";
|
|
52
|
+
export * from "./tabs-next";
|
|
51
53
|
export * from "./toggle-button";
|
|
54
|
+
export * from "./toggle-button-group";
|
|
52
55
|
export * from "./tokenized-input";
|
|
53
56
|
export * from "./toolbar";
|
|
54
57
|
export * from "./tree";
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { HTMLAttributes } from "react";
|
|
2
|
+
export interface ListItemNextProps extends HTMLAttributes<HTMLLIElement> {
|
|
3
|
+
/**
|
|
4
|
+
* If true, the particular list item in list will be disabled.
|
|
5
|
+
*/
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
selected?: boolean;
|
|
8
|
+
id?: string;
|
|
9
|
+
value: string;
|
|
10
|
+
}
|
|
11
|
+
export declare const ListItemNext: import("react").ForwardRefExoticComponent<ListItemNextProps & import("react").RefAttributes<HTMLLIElement>>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { HTMLAttributes } from "react";
|
|
2
|
+
export interface ListNextProps extends HTMLAttributes<HTMLUListElement> {
|
|
3
|
+
/**
|
|
4
|
+
* If true, all items in list will be disabled.
|
|
5
|
+
*/
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
selected?: string;
|
|
8
|
+
defaultSelected?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare const ListNext: import("react").ForwardRefExoticComponent<ListNextProps & import("react").RefAttributes<HTMLUListElement>>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { SyntheticEvent } from "react";
|
|
2
|
+
export interface ListNextContextValue {
|
|
3
|
+
disabled?: boolean;
|
|
4
|
+
id?: string;
|
|
5
|
+
select: (event: SyntheticEvent<HTMLLIElement>) => void;
|
|
6
|
+
isSelected: (id: string) => boolean;
|
|
7
|
+
isFocused: (id: string) => boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare const ListNextContext: import("react").Context<ListNextContextValue | undefined>;
|
|
10
|
+
export declare function useListItem(): ListNextContextValue | undefined;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { KeyboardEvent, RefObject, SyntheticEvent } from "react";
|
|
2
|
+
interface UseListProps {
|
|
3
|
+
/**
|
|
4
|
+
* If true, all items in list will be disabled.
|
|
5
|
+
*/
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
selected?: string;
|
|
8
|
+
defaultSelected?: string;
|
|
9
|
+
onChange?: (e: SyntheticEvent, data: {
|
|
10
|
+
value: string;
|
|
11
|
+
}) => void;
|
|
12
|
+
id?: string;
|
|
13
|
+
ref: RefObject<HTMLUListElement>;
|
|
14
|
+
}
|
|
15
|
+
export declare const useList: ({ disabled, selected: selectedProp, defaultSelected, onChange, id, ref, }: UseListProps) => {
|
|
16
|
+
focusHandler: () => void;
|
|
17
|
+
keyDownHandler: (event: KeyboardEvent<HTMLUListElement>) => void;
|
|
18
|
+
blurHandler: () => void;
|
|
19
|
+
mouseDownHandler: () => void;
|
|
20
|
+
activeDescendant: string | undefined;
|
|
21
|
+
contextValue: {
|
|
22
|
+
disabled: boolean;
|
|
23
|
+
id: string | undefined;
|
|
24
|
+
select: (event: SyntheticEvent<HTMLLIElement>) => void;
|
|
25
|
+
isSelected: (id: string) => boolean;
|
|
26
|
+
isFocused: (id: string | undefined) => boolean;
|
|
27
|
+
};
|
|
28
|
+
};
|
|
29
|
+
export {};
|
|
@@ -1,31 +1,3 @@
|
|
|
1
|
-
import { ComponentPropsWithoutRef
|
|
2
|
-
|
|
3
|
-
export
|
|
4
|
-
/**
|
|
5
|
-
* Used to provide application title
|
|
6
|
-
*/
|
|
7
|
-
appTitle?: string;
|
|
8
|
-
/**
|
|
9
|
-
* If `true`, the logo will be compact;
|
|
10
|
-
*/
|
|
11
|
-
compact?: boolean;
|
|
12
|
-
/**
|
|
13
|
-
* Props passed to the Logo.
|
|
14
|
-
*/
|
|
15
|
-
ImageProps?: Partial<ComponentPropsWithoutRef<"img">>;
|
|
16
|
-
/**
|
|
17
|
-
* Custom Component to render the logo image.
|
|
18
|
-
* e.g. if a custom renderer instead of static image using `src` prop.
|
|
19
|
-
*/
|
|
20
|
-
LogoImageComponent?: ComponentType<Partial<ComponentPropsWithoutRef<"img">>>;
|
|
21
|
-
/**
|
|
22
|
-
* Image src for logo.
|
|
23
|
-
*/
|
|
24
|
-
src?: string;
|
|
25
|
-
/**
|
|
26
|
-
* Props passed to the Application Title if used.
|
|
27
|
-
* If using a custom image then ImageProps.alt should be set to include a screen reader alternative text.
|
|
28
|
-
*/
|
|
29
|
-
TitleProps?: Omit<Partial<LogoTitleProps>, "label">;
|
|
30
|
-
}
|
|
31
|
-
export declare const Logo: import("react").ForwardRefExoticComponent<LogoProps & import("react").RefAttributes<HTMLSpanElement>>;
|
|
1
|
+
import { ComponentPropsWithoutRef } from "react";
|
|
2
|
+
export declare type LogoProps = ComponentPropsWithoutRef<"span">;
|
|
3
|
+
export declare const Logo: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & import("react").RefAttributes<HTMLSpanElement>>;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ComponentPropsWithoutRef } from "react";
|
|
2
|
+
export interface LogoImageProps extends Omit<ComponentPropsWithoutRef<"img">, "alt"> {
|
|
3
|
+
alt: string;
|
|
4
|
+
}
|
|
5
|
+
export declare const LogoImage: import("react").ForwardRefExoticComponent<LogoImageProps & import("react").RefAttributes<HTMLImageElement>>;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { ComponentPropsWithoutRef } from "react";
|
|
2
|
+
export declare type LogoSeparatorProps = ComponentPropsWithoutRef<"span">;
|
|
3
|
+
export declare const LogoSeparator: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLSpanElement>, HTMLSpanElement>, "ref"> & import("react").RefAttributes<HTMLImageElement>>;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
2
|
+
import { DropdownProps } from "../dropdown";
|
|
3
|
+
declare type TabValue = {
|
|
4
|
+
value: string;
|
|
5
|
+
label: ReactNode;
|
|
6
|
+
};
|
|
7
|
+
export interface OverflowMenuProps extends DropdownProps<TabValue> {
|
|
8
|
+
tabs: TabValue[];
|
|
9
|
+
}
|
|
10
|
+
export declare const OverflowMenu: import("react").ForwardRefExoticComponent<OverflowMenuProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
11
|
+
export {};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { ComponentPropsWithoutRef } from "react";
|
|
2
|
+
export interface TabNextProps extends ComponentPropsWithoutRef<"button"> {
|
|
3
|
+
value: string;
|
|
4
|
+
}
|
|
5
|
+
export declare const TabNext: import("react").ForwardRefExoticComponent<TabNextProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ReactNode, SyntheticEvent } from "react";
|
|
2
|
+
declare type TabValue = {
|
|
3
|
+
value: string;
|
|
4
|
+
label: ReactNode;
|
|
5
|
+
};
|
|
6
|
+
export interface TabsContextValue {
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
select: (event: SyntheticEvent<HTMLButtonElement>) => void;
|
|
9
|
+
isSelected: (id: string) => boolean;
|
|
10
|
+
setFocusable: (id: string) => void;
|
|
11
|
+
isFocusable: (id: string) => boolean;
|
|
12
|
+
registerTab: (tab: TabValue) => void;
|
|
13
|
+
unregisterTab: (id: string) => void;
|
|
14
|
+
}
|
|
15
|
+
export declare const TabsContext: import("react").Context<TabsContextValue>;
|
|
16
|
+
export declare function useTabs(): TabsContextValue;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ComponentPropsWithoutRef, SyntheticEvent } from "react";
|
|
2
|
+
export interface TabstripNextProps extends Omit<ComponentPropsWithoutRef<"div">, "onChange"> {
|
|
3
|
+
disabled?: boolean;
|
|
4
|
+
selected?: string;
|
|
5
|
+
onChange?: (e: SyntheticEvent, data: {
|
|
6
|
+
value: string;
|
|
7
|
+
}) => void;
|
|
8
|
+
defaultSelected?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare const TabstripNext: import("react").ForwardRefExoticComponent<TabstripNextProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -1,12 +1,7 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
"data-button-index"?: number;
|
|
7
|
-
toggled?: boolean;
|
|
8
|
-
tooltipText?: string;
|
|
9
|
-
disableTooltip?: boolean;
|
|
10
|
-
onToggle?: ToggleButtonToggleEventHandler;
|
|
1
|
+
import { ComponentProps, MouseEvent } from "react";
|
|
2
|
+
export interface ToggleButtonProps extends ComponentProps<"button"> {
|
|
3
|
+
selected?: boolean;
|
|
4
|
+
onChange?: (event: MouseEvent<HTMLButtonElement>) => void;
|
|
5
|
+
value: string | ReadonlyArray<string> | number | undefined;
|
|
11
6
|
}
|
|
12
|
-
export declare const ToggleButton: import("react").ForwardRefExoticComponent<ToggleButtonProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
7
|
+
export declare const ToggleButton: import("react").ForwardRefExoticComponent<Omit<ToggleButtonProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { ComponentPropsWithoutRef, SyntheticEvent } from "react";
|
|
2
|
+
export interface ToggleButtonGroupProps extends Omit<ComponentPropsWithoutRef<"div">, "onChange"> {
|
|
3
|
+
/**
|
|
4
|
+
* The default value. Use when the component is not controlled.
|
|
5
|
+
*/
|
|
6
|
+
defaultValue?: string | ReadonlyArray<string> | number | undefined;
|
|
7
|
+
/**
|
|
8
|
+
* If `true`, the Toggle Button Group will be disabled.
|
|
9
|
+
*/
|
|
10
|
+
disabled?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* The value. Use when the component is controlled.
|
|
13
|
+
*/
|
|
14
|
+
value?: string | ReadonlyArray<string> | number | undefined;
|
|
15
|
+
/**
|
|
16
|
+
* Callback fired when the selection changes.
|
|
17
|
+
* @param event
|
|
18
|
+
*/
|
|
19
|
+
onChange?: (event: SyntheticEvent<HTMLButtonElement>) => void;
|
|
20
|
+
/**
|
|
21
|
+
* The orientation of the toggle buttons.
|
|
22
|
+
*/
|
|
23
|
+
orientation?: "horizontal" | "vertical";
|
|
24
|
+
}
|
|
25
|
+
export declare const ToggleButtonGroup: import("react").ForwardRefExoticComponent<ToggleButtonGroupProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { SyntheticEvent } from "react";
|
|
2
|
+
export interface ToggleButtonGroupContextValue {
|
|
3
|
+
disabled?: boolean;
|
|
4
|
+
select: (event: SyntheticEvent<HTMLButtonElement>) => void;
|
|
5
|
+
isSelected: (id: string | ReadonlyArray<string> | number | undefined) => boolean;
|
|
6
|
+
focus: (id: string | ReadonlyArray<string> | number | undefined) => void;
|
|
7
|
+
isFocused: (id: string | ReadonlyArray<string> | number | undefined) => boolean;
|
|
8
|
+
}
|
|
9
|
+
export declare const ToggleButtonGroupContext: import("react").Context<ToggleButtonGroupContextValue | undefined>;
|
|
10
|
+
export declare function useToggleButtonGroup(): ToggleButtonGroupContextValue | undefined;
|
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.11",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"main": "dist-cjs/index.js",
|
|
6
6
|
"sideEffects": false,
|
|
@@ -15,12 +15,13 @@
|
|
|
15
15
|
}
|
|
16
16
|
},
|
|
17
17
|
"publishConfig": {
|
|
18
|
-
"directory": "../../dist/salt-ds-lab"
|
|
18
|
+
"directory": "../../dist/salt-ds-lab",
|
|
19
|
+
"provenance": true
|
|
19
20
|
},
|
|
20
21
|
"module": "dist-es/index.js",
|
|
21
22
|
"typings": "dist-types/index.d.ts",
|
|
22
23
|
"dependencies": {
|
|
23
|
-
"@salt-ds/core": "^1.8.0-rc.
|
|
24
|
+
"@salt-ds/core": "^1.8.0-rc.2",
|
|
24
25
|
"clsx": "^1.2.1",
|
|
25
26
|
"react-window": "^1.8.6",
|
|
26
27
|
"compute-scroll-into-view": "^3.0.0",
|
|
@@ -36,7 +37,8 @@
|
|
|
36
37
|
"aria-hidden": "^1.1.1",
|
|
37
38
|
"no-scroll": "^2.1.1",
|
|
38
39
|
"attr-accept": "^2.0.0",
|
|
39
|
-
"rifm": "^0.12.0"
|
|
40
|
+
"rifm": "^0.12.0",
|
|
41
|
+
"@fluentui/react-overflow": "^9.0.19"
|
|
40
42
|
},
|
|
41
43
|
"files": [
|
|
42
44
|
"dist-cjs",
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
-
|
|
5
|
-
var jsxRuntime = require('react/jsx-runtime');
|
|
6
|
-
var React = require('react');
|
|
7
|
-
|
|
8
|
-
const LogoTitle = React.forwardRef(
|
|
9
|
-
function LogoTitle2({ label, separatorClassname, ...rest }, ref) {
|
|
10
|
-
return label ? /* @__PURE__ */ jsxRuntime.jsxs(jsxRuntime.Fragment, {
|
|
11
|
-
children: [
|
|
12
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", {
|
|
13
|
-
className: separatorClassname
|
|
14
|
-
}),
|
|
15
|
-
/* @__PURE__ */ jsxRuntime.jsx("span", {
|
|
16
|
-
ref,
|
|
17
|
-
...rest,
|
|
18
|
-
children: /* @__PURE__ */ jsxRuntime.jsx("span", {
|
|
19
|
-
children: label
|
|
20
|
-
})
|
|
21
|
-
})
|
|
22
|
-
]
|
|
23
|
-
}) : null;
|
|
24
|
-
}
|
|
25
|
-
);
|
|
26
|
-
|
|
27
|
-
exports.LogoTitle = LogoTitle;
|
|
28
|
-
//# sourceMappingURL=LogoTitle.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"LogoTitle.js","sources":["../src/logo/internal/LogoTitle.tsx"],"sourcesContent":["import { ComponentPropsWithoutRef, forwardRef } from \"react\";\n\nexport interface LogoTitleProps extends ComponentPropsWithoutRef<\"span\"> {\n label?: string;\n separatorClassname?: string;\n}\n\nexport const LogoTitle = forwardRef<HTMLSpanElement, LogoTitleProps>(\n function LogoTitle({ label, separatorClassname, ...rest }, ref) {\n return label ? (\n <>\n <span className={separatorClassname} />\n <span ref={ref} {...rest}>\n <span>{label}</span>\n </span>\n </>\n ) : null;\n }\n);\n"],"names":["forwardRef","LogoTitle","jsxs","Fragment","jsx"],"mappings":";;;;;;;AAOO,MAAM,SAAY,GAAAA,gBAAA;AAAA,EACvB,SAASC,UAAU,CAAA,EAAE,OAAO,kBAAuB,EAAA,GAAA,IAAA,IAAQ,GAAK,EAAA;AAC9D,IAAA,OAAO,KACL,mBAAAC,eAAA,CAAAC,mBAAA,EAAA;AAAA,MACE,QAAA,EAAA;AAAA,wBAACC,cAAA,CAAA,MAAA,EAAA;AAAA,UAAK,SAAW,EAAA,kBAAA;AAAA,SAAoB,CAAA;AAAA,wBACpCA,cAAA,CAAA,MAAA,EAAA;AAAA,UAAK,GAAA;AAAA,UAAW,GAAG,IAAA;AAAA,UAClB,QAAC,kBAAAA,cAAA,CAAA,MAAA,EAAA;AAAA,YAAM,QAAA,EAAA,KAAA;AAAA,WAAM,CAAA;AAAA,SACf,CAAA;AAAA,OAAA;AAAA,KACF,CACE,GAAA,IAAA,CAAA;AAAA,GACN;AACF;;;;"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
var css_248z = ".salt-density-high {\n --toggleButton-group-height: calc(var(--salt-size-base) - var(--salt-size-unit) + 2px);\n}\n.salt-density-medium {\n --toggleButton-group-height: calc(var(--salt-size-base) - (var(--salt-size-unit) * 0.5) + 2px);\n}\n.salt-density-low {\n --toggleButton-group-height: calc(var(--salt-size-base) - (var(--salt-size-unit) * 2 / 3) + 2px);\n}\n.salt-density-touch {\n --toggleButton-group-height: calc(var(--salt-size-base) - (var(--salt-size-unit) * 0.5) + 2px);\n}\n\n.saltToggleButtonGroup.saltToggleButtonGroup-cta {\n --toggleButton-group-borderColor: var(--saltToggleButton-group-cta-borderColor, var(--salt-container-secondary-borderColor));\n}\n.saltToggleButtonGroup.saltToggleButtonGroup-primary {\n --toggleButton-group-borderColor: var(--saltToggleButton-group-primary-borderColor, var(--salt-container-primary-borderColor));\n}\n\n.saltToggleButtonGroup {\n --toggleButton-group-borderWidth: var(--saltToggleButton-group-borderWidth, var(--salt-size-border));\n --toggleButton-group-borderStyle: var(--saltToggleButton-group-borderWidth, var(--salt-container-borderStyle));\n\n display: inline-flex;\n overflow: hidden;\n padding: 2px;\n border: var(--toggleButton-group-borderWidth) var(--toggleButton-group-borderStyle) var(--toggleButton-group-borderColor);\n}\n\n.saltToggleButtonGroup.saltToggleButtonGroup-secondary {\n --toggleButton-group-borderColor: var(--saltToggleButton-group-secondary-borderColor, var(--salt-container-tertiary-borderColor));\n}\n\n.saltToggleButtonGroup-horizontal .saltToggleButton {\n height: var(--toggleButton-group-height);\n}\n\n.saltToggleButtonGroup-horizontal .saltToggleButton:not(:first-child) {\n margin-left: 2px;\n}\n\n.saltToggleButtonGroup-vertical {\n flex-direction: column;\n}\n\n.saltToggleButtonGroup-vertical .saltToggleButton:not(:first-child) {\n margin-top: 2px;\n}\n";
|
|
4
|
-
|
|
5
|
-
module.exports = css_248z;
|
|
6
|
-
//# sourceMappingURL=ToggleButtonGroup.css.js.map
|