@salt-ds/core 1.73.0 → 1.74.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.
- package/CHANGELOG.md +56 -0
- package/css/salt-core.css +269 -28
- package/dist-cjs/drawer/Drawer.css.js +1 -1
- package/dist-cjs/drawer/Drawer.js +54 -6
- package/dist-cjs/drawer/Drawer.js.map +1 -1
- package/dist-cjs/drawer/DrawerContext.js +2 -0
- package/dist-cjs/drawer/DrawerContext.js.map +1 -1
- package/dist-cjs/drawer/DrawerFooter.css.js +1 -1
- package/dist-cjs/drawer/DrawerHeader.css.js +1 -1
- package/dist-cjs/drawer/DrawerHeader.js +6 -3
- package/dist-cjs/drawer/DrawerHeader.js.map +1 -1
- package/dist-cjs/drawer/internal/DrawerResizeGuide.css.js +6 -0
- package/dist-cjs/drawer/internal/DrawerResizeGuide.css.js.map +1 -0
- package/dist-cjs/drawer/internal/DrawerResizeGuide.js +44 -0
- package/dist-cjs/drawer/internal/DrawerResizeGuide.js.map +1 -0
- package/dist-cjs/drawer/internal/DrawerResizeHandle.css.js +6 -0
- package/dist-cjs/drawer/internal/DrawerResizeHandle.css.js.map +1 -0
- package/dist-cjs/drawer/internal/DrawerResizeHandle.js +43 -0
- package/dist-cjs/drawer/internal/DrawerResizeHandle.js.map +1 -0
- package/dist-cjs/drawer/internal/useDrawerResize.js +519 -0
- package/dist-cjs/drawer/internal/useDrawerResize.js.map +1 -0
- package/dist-cjs/link-button/LinkButton.css.js +1 -1
- package/dist-cjs/menu/MenuAlignmentContext.js +55 -0
- package/dist-cjs/menu/MenuAlignmentContext.js.map +1 -0
- package/dist-cjs/menu/MenuBase.js +9 -3
- package/dist-cjs/menu/MenuBase.js.map +1 -1
- package/dist-cjs/menu/MenuGroup.js +42 -3
- package/dist-cjs/menu/MenuGroup.js.map +1 -1
- package/dist-cjs/menu/MenuGroupContext.js +27 -0
- package/dist-cjs/menu/MenuGroupContext.js.map +1 -0
- package/dist-cjs/menu/MenuItem.css.js +1 -1
- package/dist-cjs/menu/MenuItem.js +176 -50
- package/dist-cjs/menu/MenuItem.js.map +1 -1
- package/dist-cjs/menu/MenuPanel.js +12 -3
- package/dist-cjs/menu/MenuPanel.js.map +1 -1
- package/dist-cjs/menu/MenuPanelContext.js +3 -1
- package/dist-cjs/menu/MenuPanelContext.js.map +1 -1
- package/dist-cjs/toggle-button/ToggleButton.css.js +1 -1
- package/dist-cjs/tree/TreeNodeTrigger.css.js +1 -1
- package/dist-cjs/tree/TreeNodeTrigger.js +0 -1
- package/dist-cjs/tree/TreeNodeTrigger.js.map +1 -1
- package/dist-es/drawer/Drawer.css.js +1 -1
- package/dist-es/drawer/Drawer.js +54 -6
- package/dist-es/drawer/Drawer.js.map +1 -1
- package/dist-es/drawer/DrawerContext.js +2 -0
- package/dist-es/drawer/DrawerContext.js.map +1 -1
- package/dist-es/drawer/DrawerFooter.css.js +1 -1
- package/dist-es/drawer/DrawerHeader.css.js +1 -1
- package/dist-es/drawer/DrawerHeader.js +6 -3
- package/dist-es/drawer/DrawerHeader.js.map +1 -1
- package/dist-es/drawer/internal/DrawerResizeGuide.css.js +4 -0
- package/dist-es/drawer/internal/DrawerResizeGuide.css.js.map +1 -0
- package/dist-es/drawer/internal/DrawerResizeGuide.js +42 -0
- package/dist-es/drawer/internal/DrawerResizeGuide.js.map +1 -0
- package/dist-es/drawer/internal/DrawerResizeHandle.css.js +4 -0
- package/dist-es/drawer/internal/DrawerResizeHandle.css.js.map +1 -0
- package/dist-es/drawer/internal/DrawerResizeHandle.js +41 -0
- package/dist-es/drawer/internal/DrawerResizeHandle.js.map +1 -0
- package/dist-es/drawer/internal/useDrawerResize.js +517 -0
- package/dist-es/drawer/internal/useDrawerResize.js.map +1 -0
- package/dist-es/link-button/LinkButton.css.js +1 -1
- package/dist-es/menu/MenuAlignmentContext.js +50 -0
- package/dist-es/menu/MenuAlignmentContext.js.map +1 -0
- package/dist-es/menu/MenuBase.js +9 -3
- package/dist-es/menu/MenuBase.js.map +1 -1
- package/dist-es/menu/MenuGroup.js +44 -5
- package/dist-es/menu/MenuGroup.js.map +1 -1
- package/dist-es/menu/MenuGroupContext.js +23 -0
- package/dist-es/menu/MenuGroupContext.js.map +1 -0
- package/dist-es/menu/MenuItem.css.js +1 -1
- package/dist-es/menu/MenuItem.js +177 -51
- package/dist-es/menu/MenuItem.js.map +1 -1
- package/dist-es/menu/MenuPanel.js +12 -3
- package/dist-es/menu/MenuPanel.js.map +1 -1
- package/dist-es/menu/MenuPanelContext.js +3 -1
- package/dist-es/menu/MenuPanelContext.js.map +1 -1
- package/dist-es/toggle-button/ToggleButton.css.js +1 -1
- package/dist-es/tree/TreeNodeTrigger.css.js +1 -1
- package/dist-es/tree/TreeNodeTrigger.js +0 -1
- package/dist-es/tree/TreeNodeTrigger.js.map +1 -1
- package/dist-types/drawer/Drawer.d.ts +6 -0
- package/dist-types/drawer/DrawerContext.d.ts +3 -0
- package/dist-types/drawer/DrawerHeader.d.ts +1 -1
- package/dist-types/drawer/internal/DrawerResizeGuide.d.ts +7 -0
- package/dist-types/drawer/internal/DrawerResizeHandle.d.ts +8 -0
- package/dist-types/drawer/internal/index.d.ts +3 -0
- package/dist-types/drawer/internal/useDrawerResize.d.ts +34 -0
- package/dist-types/menu/MenuAlignmentContext.d.ts +14 -0
- package/dist-types/menu/MenuGroup.d.ts +26 -4
- package/dist-types/menu/MenuGroupContext.d.ts +10 -0
- package/dist-types/menu/MenuItem.d.ts +4 -0
- package/dist-types/menu/MenuPanelContext.d.ts +2 -0
- package/package.json +1 -1
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import type { AriaAttributes, CSSProperties, KeyboardEvent as ReactKeyboardEvent, MouseEvent as ReactMouseEvent, PointerEvent as ReactPointerEvent } from "react";
|
|
2
|
+
import type { DrawerProps } from "../Drawer";
|
|
3
|
+
type DrawerPosition = NonNullable<DrawerProps["position"]>;
|
|
4
|
+
export interface SeparatorProps extends Pick<AriaAttributes, "aria-orientation" | "aria-valuenow" | "aria-valuemin" | "aria-valuemax"> {
|
|
5
|
+
role: "separator";
|
|
6
|
+
tabIndex: number;
|
|
7
|
+
ref: (element: HTMLElement | null) => void;
|
|
8
|
+
onKeyDown: (event: ReactKeyboardEvent<HTMLElement>) => void;
|
|
9
|
+
onFocus: () => void;
|
|
10
|
+
}
|
|
11
|
+
export interface GuideProps {
|
|
12
|
+
ref: (element: HTMLElement | null) => void;
|
|
13
|
+
onPointerDown: (event: ReactPointerEvent<HTMLElement>) => void;
|
|
14
|
+
onPointerMove: (event: ReactPointerEvent<HTMLElement>) => void;
|
|
15
|
+
onClick: (event: ReactMouseEvent<HTMLElement>) => void;
|
|
16
|
+
onContextMenu: () => void;
|
|
17
|
+
}
|
|
18
|
+
export interface UseDrawerResizeProps {
|
|
19
|
+
enabled: boolean;
|
|
20
|
+
position: DrawerPosition;
|
|
21
|
+
element: HTMLElement | null | undefined;
|
|
22
|
+
}
|
|
23
|
+
export interface UseDrawerResizeResult {
|
|
24
|
+
sizeStyle: CSSProperties | undefined;
|
|
25
|
+
isResizing: boolean;
|
|
26
|
+
isHovered: boolean;
|
|
27
|
+
isPlacing: boolean;
|
|
28
|
+
/** Whether the event is the Escape that cancelled a resize, so it shouldn't close the drawer. */
|
|
29
|
+
isCancelResizeEvent: (event?: Event) => boolean;
|
|
30
|
+
separatorProps: SeparatorProps;
|
|
31
|
+
guideProps: GuideProps;
|
|
32
|
+
}
|
|
33
|
+
export declare function useDrawerResize({ enabled, position, element, }: UseDrawerResizeProps): UseDrawerResizeResult;
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The leading slots that items in one alignment scope reserve for each other.
|
|
3
|
+
* Each `MenuGroup` is a scope, and items outside a group share their `MenuPanel`'s scope.
|
|
4
|
+
*/
|
|
5
|
+
export interface MenuAlignmentContextValue {
|
|
6
|
+
reserveIconSpace: boolean;
|
|
7
|
+
reserveSelectionIconSpace: boolean;
|
|
8
|
+
registerIcon: () => () => void;
|
|
9
|
+
registerSelectionIcon: () => () => void;
|
|
10
|
+
}
|
|
11
|
+
export declare const MenuAlignmentContext: import("react").Context<MenuAlignmentContextValue>;
|
|
12
|
+
export declare function useSlotRegistry(): readonly [boolean, () => () => void];
|
|
13
|
+
export declare function useMenuAlignmentScope(): MenuAlignmentContextValue;
|
|
14
|
+
export declare function useMenuAlignment(): MenuAlignmentContextValue;
|
|
@@ -1,12 +1,34 @@
|
|
|
1
|
-
import { type ComponentPropsWithoutRef, type ReactNode } from "react";
|
|
2
|
-
|
|
1
|
+
import { type ComponentPropsWithoutRef, type ReactNode, type SyntheticEvent } from "react";
|
|
2
|
+
interface BaseMenuGroupProps extends ComponentPropsWithoutRef<"div"> {
|
|
3
|
+
/**
|
|
4
|
+
* Menus to be rendered inside the menu group.
|
|
5
|
+
*/
|
|
6
|
+
children?: ReactNode;
|
|
3
7
|
/**
|
|
4
8
|
* The label of the menu group.
|
|
5
9
|
*/
|
|
6
10
|
label?: string;
|
|
7
11
|
/**
|
|
8
|
-
*
|
|
12
|
+
* Selection variant of the menu group. If "single", the menu items inside behave like radio buttons. If "multiple", they behave like checkboxes. Each selectable menu item needs a `value`. When omitted, the menu items are not selectable.
|
|
9
13
|
*/
|
|
10
|
-
|
|
14
|
+
selectionVariant?: "single" | "multiple";
|
|
15
|
+
}
|
|
16
|
+
interface SelectableMenuGroupProps extends BaseMenuGroupProps {
|
|
17
|
+
/**
|
|
18
|
+
* Callback fired when the selection changes.
|
|
19
|
+
* @param event
|
|
20
|
+
* @param newSelected The new selected values.
|
|
21
|
+
*/
|
|
22
|
+
onSelectionChange?: (event: SyntheticEvent, newSelected: string[]) => void;
|
|
23
|
+
/**
|
|
24
|
+
* The values of the selected menu items. Required when `selectionVariant` is "single" or "multiple". The menu's content unmounts when it closes, so keep the selection in state and update it in `onSelectionChange`.
|
|
25
|
+
*/
|
|
26
|
+
selected: string[];
|
|
27
|
+
selectionVariant: "single" | "multiple";
|
|
28
|
+
}
|
|
29
|
+
interface NonSelectableMenuGroupProps extends BaseMenuGroupProps {
|
|
30
|
+
selectionVariant?: undefined;
|
|
11
31
|
}
|
|
32
|
+
export type MenuGroupProps = SelectableMenuGroupProps | NonSelectableMenuGroupProps;
|
|
12
33
|
export declare const MenuGroup: import("react").ForwardRefExoticComponent<MenuGroupProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
34
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type SyntheticEvent } from "react";
|
|
2
|
+
import type { MenuGroupProps } from "./MenuGroup";
|
|
3
|
+
export interface MenuGroupContextValue {
|
|
4
|
+
isSelected: (value: string) => boolean;
|
|
5
|
+
select: (event: SyntheticEvent, value: string) => void;
|
|
6
|
+
selectionVariant?: MenuGroupProps["selectionVariant"];
|
|
7
|
+
}
|
|
8
|
+
export declare const defaultMenuGroupContextValue: MenuGroupContextValue;
|
|
9
|
+
export declare const MenuGroupContext: import("react").Context<MenuGroupContextValue>;
|
|
10
|
+
export declare function useMenuGroup(): MenuGroupContextValue;
|
|
@@ -4,5 +4,9 @@ export interface MenuItemProps extends ComponentPropsWithoutRef<"div"> {
|
|
|
4
4
|
* If `true`, the item will be disabled.
|
|
5
5
|
*/
|
|
6
6
|
disabled?: boolean;
|
|
7
|
+
/**
|
|
8
|
+
* The value of the item. Identifies the item inside a `MenuGroup` whose `selectionVariant` is "single" or "multiple".
|
|
9
|
+
*/
|
|
10
|
+
value?: string;
|
|
7
11
|
}
|
|
8
12
|
export declare const MenuItem: import("react").ForwardRefExoticComponent<MenuItemProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
import type { MenuContextValue } from "./MenuContext";
|
|
2
2
|
export interface MenuPanelContextValue extends Pick<MenuContextValue, "getItemProps" | "activeIndex" | "setFocusInside"> {
|
|
3
|
+
hasSelectionIcon: boolean;
|
|
4
|
+
registerPanelSelectionIcon: () => () => void;
|
|
3
5
|
}
|
|
4
6
|
export declare const MenuPanelContext: import("react").Context<MenuPanelContextValue>;
|
|
5
7
|
export declare function useMenuPanelContext(): MenuPanelContextValue;
|