@salt-ds/core 1.60.0 → 1.62.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 +61 -0
- package/css/salt-core.css +492 -1
- package/dist-cjs/index.js +32 -0
- package/dist-cjs/index.js.map +1 -1
- package/dist-cjs/navigation-item/NavigationItem.js +2 -0
- package/dist-cjs/navigation-item/NavigationItem.js.map +1 -1
- package/dist-cjs/rating/Rating.css.js +6 -0
- package/dist-cjs/rating/Rating.css.js.map +1 -0
- package/dist-cjs/rating/Rating.js +140 -0
- package/dist-cjs/rating/Rating.js.map +1 -0
- package/dist-cjs/rating/RatingItem.css.js +6 -0
- package/dist-cjs/rating/RatingItem.css.js.map +1 -0
- package/dist-cjs/rating/RatingItem.js +75 -0
- package/dist-cjs/rating/RatingItem.js.map +1 -0
- package/dist-cjs/semantic-icon-provider/SemanticIconProvider.js +22 -20
- package/dist-cjs/semantic-icon-provider/SemanticIconProvider.js.map +1 -1
- package/dist-cjs/side-panel/SidePanel.css.js +6 -0
- package/dist-cjs/side-panel/SidePanel.css.js.map +1 -0
- package/dist-cjs/side-panel/SidePanel.js +205 -0
- package/dist-cjs/side-panel/SidePanel.js.map +1 -0
- package/dist-cjs/side-panel/SidePanelCloseButton.js +44 -0
- package/dist-cjs/side-panel/SidePanelCloseButton.js.map +1 -0
- package/dist-cjs/side-panel/SidePanelContent.css.js +6 -0
- package/dist-cjs/side-panel/SidePanelContent.css.js.map +1 -0
- package/dist-cjs/side-panel/SidePanelContent.js +70 -0
- package/dist-cjs/side-panel/SidePanelContent.js.map +1 -0
- package/dist-cjs/side-panel/SidePanelHeader.css.js +6 -0
- package/dist-cjs/side-panel/SidePanelHeader.css.js.map +1 -0
- package/dist-cjs/side-panel/SidePanelHeader.js +30 -0
- package/dist-cjs/side-panel/SidePanelHeader.js.map +1 -0
- package/dist-cjs/side-panel/SidePanelProvider.js +83 -0
- package/dist-cjs/side-panel/SidePanelProvider.js.map +1 -0
- package/dist-cjs/side-panel/SidePanelTitle.css.js +6 -0
- package/dist-cjs/side-panel/SidePanelTitle.css.js.map +1 -0
- package/dist-cjs/side-panel/SidePanelTitle.js +60 -0
- package/dist-cjs/side-panel/SidePanelTitle.js.map +1 -0
- package/dist-cjs/side-panel/SidePanelTrigger.js +43 -0
- package/dist-cjs/side-panel/SidePanelTrigger.js.map +1 -0
- package/dist-cjs/side-panel/internal/SidePanelContext.js +38 -0
- package/dist-cjs/side-panel/internal/SidePanelContext.js.map +1 -0
- package/dist-cjs/side-panel/internal/useIsScrollable.js +50 -0
- package/dist-cjs/side-panel/internal/useIsScrollable.js.map +1 -0
- package/dist-cjs/side-panel/internal/useSidePanelTabOrder.js +214 -0
- package/dist-cjs/side-panel/internal/useSidePanelTabOrder.js.map +1 -0
- package/dist-cjs/side-panel/useSidePanel.js +49 -0
- package/dist-cjs/side-panel/useSidePanel.js.map +1 -0
- package/dist-cjs/tabs/Tab.css.js +6 -0
- package/dist-cjs/tabs/Tab.css.js.map +1 -0
- package/dist-cjs/tabs/Tab.js +211 -0
- package/dist-cjs/tabs/Tab.js.map +1 -0
- package/dist-cjs/tabs/TabAction.js +63 -0
- package/dist-cjs/tabs/TabAction.js.map +1 -0
- package/dist-cjs/tabs/TabBar.css.js +6 -0
- package/dist-cjs/tabs/TabBar.css.js.map +1 -0
- package/dist-cjs/tabs/TabBar.js +45 -0
- package/dist-cjs/tabs/TabBar.js.map +1 -0
- package/dist-cjs/tabs/TabList.css.js +6 -0
- package/dist-cjs/tabs/TabList.css.js.map +1 -0
- package/dist-cjs/tabs/TabList.js +281 -0
- package/dist-cjs/tabs/TabList.js.map +1 -0
- package/dist-cjs/tabs/TabPanel.css.js +6 -0
- package/dist-cjs/tabs/TabPanel.css.js.map +1 -0
- package/dist-cjs/tabs/TabPanel.js +98 -0
- package/dist-cjs/tabs/TabPanel.js.map +1 -0
- package/dist-cjs/tabs/TabTrigger.css.js +6 -0
- package/dist-cjs/tabs/TabTrigger.css.js.map +1 -0
- package/dist-cjs/tabs/TabTrigger.js +188 -0
- package/dist-cjs/tabs/TabTrigger.js.map +1 -0
- package/dist-cjs/tabs/Tabs.css.js +6 -0
- package/dist-cjs/tabs/Tabs.css.js.map +1 -0
- package/dist-cjs/tabs/Tabs.js +200 -0
- package/dist-cjs/tabs/Tabs.js.map +1 -0
- package/dist-cjs/tabs/internal/contexts/TabContext.js +26 -0
- package/dist-cjs/tabs/internal/contexts/TabContext.js.map +1 -0
- package/dist-cjs/tabs/internal/contexts/TabListLayoutContext.js +19 -0
- package/dist-cjs/tabs/internal/contexts/TabListLayoutContext.js.map +1 -0
- package/dist-cjs/tabs/internal/contexts/TabSlotRegistryContext.js +22 -0
- package/dist-cjs/tabs/internal/contexts/TabSlotRegistryContext.js.map +1 -0
- package/dist-cjs/tabs/internal/contexts/TabsContext.js +50 -0
- package/dist-cjs/tabs/internal/contexts/TabsContext.js.map +1 -0
- package/dist-cjs/tabs/internal/hooks/useFocusWithRetry.js +64 -0
- package/dist-cjs/tabs/internal/hooks/useFocusWithRetry.js.map +1 -0
- package/dist-cjs/tabs/internal/hooks/useTabListRecovery.js +76 -0
- package/dist-cjs/tabs/internal/hooks/useTabListRecovery.js.map +1 -0
- package/dist-cjs/tabs/internal/hooks/useTabRemovalHandler.js +165 -0
- package/dist-cjs/tabs/internal/hooks/useTabRemovalHandler.js.map +1 -0
- package/dist-cjs/tabs/internal/hooks/useTabSelectionFocus.js +87 -0
- package/dist-cjs/tabs/internal/hooks/useTabSelectionFocus.js.map +1 -0
- package/dist-cjs/tabs/internal/overflow/TabOverflowList.css.js +6 -0
- package/dist-cjs/tabs/internal/overflow/TabOverflowList.css.js.map +1 -0
- package/dist-cjs/tabs/internal/overflow/TabOverflowList.js +245 -0
- package/dist-cjs/tabs/internal/overflow/TabOverflowList.js.map +1 -0
- package/dist-cjs/tabs/internal/overflow/TabSlot.js +30 -0
- package/dist-cjs/tabs/internal/overflow/TabSlot.js.map +1 -0
- package/dist-cjs/tabs/internal/overflow/overflowMath.js +86 -0
- package/dist-cjs/tabs/internal/overflow/overflowMath.js.map +1 -0
- package/dist-cjs/tabs/internal/overflow/useOverflow.js +273 -0
- package/dist-cjs/tabs/internal/overflow/useOverflow.js.map +1 -0
- package/dist-cjs/tabs/internal/overflow/useOverflowLayoutState.js +99 -0
- package/dist-cjs/tabs/internal/overflow/useOverflowLayoutState.js.map +1 -0
- package/dist-cjs/tabs/internal/overflow/useOverflowSelectionState.js +68 -0
- package/dist-cjs/tabs/internal/overflow/useOverflowSelectionState.js.map +1 -0
- package/dist-cjs/tabs/internal/overflow/useRenderedTabWidth.js +92 -0
- package/dist-cjs/tabs/internal/overflow/useRenderedTabWidth.js.map +1 -0
- package/dist-cjs/tabs/internal/overflow/widthMeasurement.js +42 -0
- package/dist-cjs/tabs/internal/overflow/widthMeasurement.js.map +1 -0
- package/dist-cjs/tabs/internal/registry/useCollection.js +197 -0
- package/dist-cjs/tabs/internal/registry/useCollection.js.map +1 -0
- package/dist-cjs/tabs/internal/registry/useRenderedTabsRegistry.js +206 -0
- package/dist-cjs/tabs/internal/registry/useRenderedTabsRegistry.js.map +1 -0
- package/dist-cjs/tabs/internal/utils/domUtils.js +13 -0
- package/dist-cjs/tabs/internal/utils/domUtils.js.map +1 -0
- package/dist-es/index.js +16 -0
- package/dist-es/index.js.map +1 -1
- package/dist-es/navigation-item/NavigationItem.js +2 -0
- package/dist-es/navigation-item/NavigationItem.js.map +1 -1
- package/dist-es/rating/Rating.css.js +4 -0
- package/dist-es/rating/Rating.css.js.map +1 -0
- package/dist-es/rating/Rating.js +138 -0
- package/dist-es/rating/Rating.js.map +1 -0
- package/dist-es/rating/RatingItem.css.js +4 -0
- package/dist-es/rating/RatingItem.css.js.map +1 -0
- package/dist-es/rating/RatingItem.js +73 -0
- package/dist-es/rating/RatingItem.js.map +1 -0
- package/dist-es/semantic-icon-provider/SemanticIconProvider.js +23 -21
- package/dist-es/semantic-icon-provider/SemanticIconProvider.js.map +1 -1
- package/dist-es/side-panel/SidePanel.css.js +4 -0
- package/dist-es/side-panel/SidePanel.css.js.map +1 -0
- package/dist-es/side-panel/SidePanel.js +203 -0
- package/dist-es/side-panel/SidePanel.js.map +1 -0
- package/dist-es/side-panel/SidePanelCloseButton.js +42 -0
- package/dist-es/side-panel/SidePanelCloseButton.js.map +1 -0
- package/dist-es/side-panel/SidePanelContent.css.js +4 -0
- package/dist-es/side-panel/SidePanelContent.css.js.map +1 -0
- package/dist-es/side-panel/SidePanelContent.js +68 -0
- package/dist-es/side-panel/SidePanelContent.js.map +1 -0
- package/dist-es/side-panel/SidePanelHeader.css.js +4 -0
- package/dist-es/side-panel/SidePanelHeader.css.js.map +1 -0
- package/dist-es/side-panel/SidePanelHeader.js +28 -0
- package/dist-es/side-panel/SidePanelHeader.js.map +1 -0
- package/dist-es/side-panel/SidePanelProvider.js +81 -0
- package/dist-es/side-panel/SidePanelProvider.js.map +1 -0
- package/dist-es/side-panel/SidePanelTitle.css.js +4 -0
- package/dist-es/side-panel/SidePanelTitle.css.js.map +1 -0
- package/dist-es/side-panel/SidePanelTitle.js +58 -0
- package/dist-es/side-panel/SidePanelTitle.js.map +1 -0
- package/dist-es/side-panel/SidePanelTrigger.js +41 -0
- package/dist-es/side-panel/SidePanelTrigger.js.map +1 -0
- package/dist-es/side-panel/internal/SidePanelContext.js +35 -0
- package/dist-es/side-panel/internal/SidePanelContext.js.map +1 -0
- package/dist-es/side-panel/internal/useIsScrollable.js +48 -0
- package/dist-es/side-panel/internal/useIsScrollable.js.map +1 -0
- package/dist-es/side-panel/internal/useSidePanelTabOrder.js +212 -0
- package/dist-es/side-panel/internal/useSidePanelTabOrder.js.map +1 -0
- package/dist-es/side-panel/useSidePanel.js +47 -0
- package/dist-es/side-panel/useSidePanel.js.map +1 -0
- package/dist-es/tabs/Tab.css.js +4 -0
- package/dist-es/tabs/Tab.css.js.map +1 -0
- package/dist-es/tabs/Tab.js +209 -0
- package/dist-es/tabs/Tab.js.map +1 -0
- package/dist-es/tabs/TabAction.js +61 -0
- package/dist-es/tabs/TabAction.js.map +1 -0
- package/dist-es/tabs/TabBar.css.js +4 -0
- package/dist-es/tabs/TabBar.css.js.map +1 -0
- package/dist-es/tabs/TabBar.js +43 -0
- package/dist-es/tabs/TabBar.js.map +1 -0
- package/dist-es/tabs/TabList.css.js +4 -0
- package/dist-es/tabs/TabList.css.js.map +1 -0
- package/dist-es/tabs/TabList.js +279 -0
- package/dist-es/tabs/TabList.js.map +1 -0
- package/dist-es/tabs/TabPanel.css.js +4 -0
- package/dist-es/tabs/TabPanel.css.js.map +1 -0
- package/dist-es/tabs/TabPanel.js +96 -0
- package/dist-es/tabs/TabPanel.js.map +1 -0
- package/dist-es/tabs/TabTrigger.css.js +4 -0
- package/dist-es/tabs/TabTrigger.css.js.map +1 -0
- package/dist-es/tabs/TabTrigger.js +186 -0
- package/dist-es/tabs/TabTrigger.js.map +1 -0
- package/dist-es/tabs/Tabs.css.js +4 -0
- package/dist-es/tabs/Tabs.css.js.map +1 -0
- package/dist-es/tabs/Tabs.js +198 -0
- package/dist-es/tabs/Tabs.js.map +1 -0
- package/dist-es/tabs/internal/contexts/TabContext.js +23 -0
- package/dist-es/tabs/internal/contexts/TabContext.js.map +1 -0
- package/dist-es/tabs/internal/contexts/TabListLayoutContext.js +16 -0
- package/dist-es/tabs/internal/contexts/TabListLayoutContext.js.map +1 -0
- package/dist-es/tabs/internal/contexts/TabSlotRegistryContext.js +19 -0
- package/dist-es/tabs/internal/contexts/TabSlotRegistryContext.js.map +1 -0
- package/dist-es/tabs/internal/contexts/TabsContext.js +47 -0
- package/dist-es/tabs/internal/contexts/TabsContext.js.map +1 -0
- package/dist-es/tabs/internal/hooks/useFocusWithRetry.js +62 -0
- package/dist-es/tabs/internal/hooks/useFocusWithRetry.js.map +1 -0
- package/dist-es/tabs/internal/hooks/useTabListRecovery.js +74 -0
- package/dist-es/tabs/internal/hooks/useTabListRecovery.js.map +1 -0
- package/dist-es/tabs/internal/hooks/useTabRemovalHandler.js +163 -0
- package/dist-es/tabs/internal/hooks/useTabRemovalHandler.js.map +1 -0
- package/dist-es/tabs/internal/hooks/useTabSelectionFocus.js +85 -0
- package/dist-es/tabs/internal/hooks/useTabSelectionFocus.js.map +1 -0
- package/dist-es/tabs/internal/overflow/TabOverflowList.css.js +4 -0
- package/dist-es/tabs/internal/overflow/TabOverflowList.css.js.map +1 -0
- package/dist-es/tabs/internal/overflow/TabOverflowList.js +243 -0
- package/dist-es/tabs/internal/overflow/TabOverflowList.js.map +1 -0
- package/dist-es/tabs/internal/overflow/TabSlot.js +28 -0
- package/dist-es/tabs/internal/overflow/TabSlot.js.map +1 -0
- package/dist-es/tabs/internal/overflow/overflowMath.js +82 -0
- package/dist-es/tabs/internal/overflow/overflowMath.js.map +1 -0
- package/dist-es/tabs/internal/overflow/useOverflow.js +271 -0
- package/dist-es/tabs/internal/overflow/useOverflow.js.map +1 -0
- package/dist-es/tabs/internal/overflow/useOverflowLayoutState.js +97 -0
- package/dist-es/tabs/internal/overflow/useOverflowLayoutState.js.map +1 -0
- package/dist-es/tabs/internal/overflow/useOverflowSelectionState.js +66 -0
- package/dist-es/tabs/internal/overflow/useOverflowSelectionState.js.map +1 -0
- package/dist-es/tabs/internal/overflow/useRenderedTabWidth.js +90 -0
- package/dist-es/tabs/internal/overflow/useRenderedTabWidth.js.map +1 -0
- package/dist-es/tabs/internal/overflow/widthMeasurement.js +36 -0
- package/dist-es/tabs/internal/overflow/widthMeasurement.js.map +1 -0
- package/dist-es/tabs/internal/registry/useCollection.js +195 -0
- package/dist-es/tabs/internal/registry/useCollection.js.map +1 -0
- package/dist-es/tabs/internal/registry/useRenderedTabsRegistry.js +204 -0
- package/dist-es/tabs/internal/registry/useRenderedTabsRegistry.js.map +1 -0
- package/dist-es/tabs/internal/utils/domUtils.js +11 -0
- package/dist-es/tabs/internal/utils/domUtils.js.map +1 -0
- package/dist-types/index.d.ts +3 -0
- package/dist-types/rating/Rating.d.ts +48 -0
- package/dist-types/rating/RatingItem.d.ts +47 -0
- package/dist-types/rating/index.d.ts +1 -0
- package/dist-types/semantic-icon-provider/SemanticIconProvider.d.ts +21 -19
- package/dist-types/side-panel/SidePanel.d.ts +26 -0
- package/dist-types/side-panel/SidePanelCloseButton.d.ts +2 -0
- package/dist-types/side-panel/SidePanelContent.d.ts +5 -0
- package/dist-types/side-panel/SidePanelHeader.d.ts +5 -0
- package/dist-types/side-panel/SidePanelProvider.d.ts +20 -0
- package/dist-types/side-panel/SidePanelTitle.d.ts +3 -0
- package/dist-types/side-panel/SidePanelTrigger.d.ts +3 -0
- package/dist-types/side-panel/index.d.ts +8 -0
- package/dist-types/side-panel/internal/SidePanelContext.d.ts +52 -0
- package/dist-types/side-panel/internal/index.d.ts +3 -0
- package/dist-types/side-panel/internal/useIsScrollable.d.ts +2 -0
- package/dist-types/side-panel/internal/useSidePanelTabOrder.d.ts +7 -0
- package/dist-types/side-panel/useSidePanel.d.ts +58 -0
- package/dist-types/tabs/Tab.d.ts +12 -0
- package/dist-types/tabs/TabAction.d.ts +4 -0
- package/dist-types/tabs/TabBar.d.ts +12 -0
- package/dist-types/tabs/TabList.d.ts +12 -0
- package/dist-types/tabs/TabPanel.d.ts +9 -0
- package/dist-types/tabs/TabTrigger.d.ts +4 -0
- package/dist-types/tabs/Tabs.d.ts +20 -0
- package/dist-types/tabs/index.d.ts +7 -0
- package/dist-types/tabs/internal/contexts/TabContext.d.ts +12 -0
- package/dist-types/tabs/internal/contexts/TabListLayoutContext.d.ts +9 -0
- package/dist-types/tabs/internal/contexts/TabSlotRegistryContext.d.ts +5 -0
- package/dist-types/tabs/internal/contexts/TabsContext.d.ts +43 -0
- package/dist-types/tabs/internal/hooks/useFocusWithRetry.d.ts +9 -0
- package/dist-types/tabs/internal/hooks/useTabListRecovery.d.ts +12 -0
- package/dist-types/tabs/internal/hooks/useTabRemovalHandler.d.ts +32 -0
- package/dist-types/tabs/internal/hooks/useTabSelectionFocus.d.ts +15 -0
- package/dist-types/tabs/internal/overflow/TabOverflowList.d.ts +10 -0
- package/dist-types/tabs/internal/overflow/TabSlot.d.ts +6 -0
- package/dist-types/tabs/internal/overflow/overflowMath.d.ts +18 -0
- package/dist-types/tabs/internal/overflow/useOverflow.d.ts +11 -0
- package/dist-types/tabs/internal/overflow/useOverflowLayoutState.d.ts +13 -0
- package/dist-types/tabs/internal/overflow/useOverflowSelectionState.d.ts +13 -0
- package/dist-types/tabs/internal/overflow/useRenderedTabWidth.d.ts +12 -0
- package/dist-types/tabs/internal/overflow/widthMeasurement.d.ts +5 -0
- package/dist-types/tabs/internal/registry/useCollection.d.ts +30 -0
- package/dist-types/tabs/internal/registry/useRenderedTabsRegistry.d.ts +12 -0
- package/dist-types/tabs/internal/utils/domUtils.d.ts +1 -0
- package/package.json +3 -1
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { type ChangeEvent, type ComponentPropsWithoutRef } from "react";
|
|
2
|
+
export interface RatingProps extends Omit<ComponentPropsWithoutRef<"div">, "onChange"> {
|
|
3
|
+
/**
|
|
4
|
+
* When provided, the component is controlled.
|
|
5
|
+
*/
|
|
6
|
+
value?: number;
|
|
7
|
+
/**
|
|
8
|
+
* Default rating value for uncontrolled mode.
|
|
9
|
+
* @default 0
|
|
10
|
+
*/
|
|
11
|
+
defaultValue?: number;
|
|
12
|
+
/**
|
|
13
|
+
* Callback function for rating change.
|
|
14
|
+
* The first parameter is the event, and the second is the selected rating value.
|
|
15
|
+
*/
|
|
16
|
+
onChange?: (event: ChangeEvent<HTMLInputElement>, value: number) => void;
|
|
17
|
+
/**
|
|
18
|
+
* If true, the rating component will be in a read-only state.
|
|
19
|
+
*/
|
|
20
|
+
readOnly?: boolean;
|
|
21
|
+
/**
|
|
22
|
+
* If true, the rating component will be in a disabled state.
|
|
23
|
+
*/
|
|
24
|
+
disabled?: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* Total number of icons displayed.
|
|
27
|
+
* @default 5
|
|
28
|
+
*/
|
|
29
|
+
max?: number;
|
|
30
|
+
/**
|
|
31
|
+
* Function used to provide a user-friendly name for the current value of the rating. Primarily used by screen readers.
|
|
32
|
+
*/
|
|
33
|
+
getLabel?: (value: number) => string;
|
|
34
|
+
/**
|
|
35
|
+
* Function used to provide a visible label for the rating.
|
|
36
|
+
*/
|
|
37
|
+
getVisibleLabel?: (value: number, max: number) => string;
|
|
38
|
+
/**
|
|
39
|
+
* Position of the label relative to the rating component.
|
|
40
|
+
* @default "right"
|
|
41
|
+
*/
|
|
42
|
+
labelPlacement?: "right" | "bottom";
|
|
43
|
+
/**
|
|
44
|
+
* The name to be set on each radio button within the group. If not set, then one will be generated for you.
|
|
45
|
+
*/
|
|
46
|
+
name?: string;
|
|
47
|
+
}
|
|
48
|
+
export declare const Rating: import("react").ForwardRefExoticComponent<RatingProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { type ChangeEvent, type ComponentPropsWithoutRef, type MouseEvent } from "react";
|
|
2
|
+
export interface RatingItemProps extends ComponentPropsWithoutRef<"div"> {
|
|
3
|
+
/**
|
|
4
|
+
* specifies the value of the feedback item.
|
|
5
|
+
*/
|
|
6
|
+
value: number;
|
|
7
|
+
/**
|
|
8
|
+
* To define if the current star is being hovered.
|
|
9
|
+
*/
|
|
10
|
+
isHovered?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* To specify if the item is selected.
|
|
13
|
+
*/
|
|
14
|
+
isSelected?: boolean;
|
|
15
|
+
/**
|
|
16
|
+
* defines the current selected rating.
|
|
17
|
+
*/
|
|
18
|
+
currentRating?: number;
|
|
19
|
+
/**
|
|
20
|
+
* callback function when feedback item is hovered.
|
|
21
|
+
*/
|
|
22
|
+
onMouseEnter: (event: MouseEvent<HTMLInputElement>) => void;
|
|
23
|
+
/**
|
|
24
|
+
* callback function when feedback item is clicked.
|
|
25
|
+
*/
|
|
26
|
+
onChange: (event: ChangeEvent<HTMLInputElement>) => void;
|
|
27
|
+
/**
|
|
28
|
+
* If true, the rating item will be in a read-only state.
|
|
29
|
+
*/
|
|
30
|
+
readOnly?: boolean;
|
|
31
|
+
/**
|
|
32
|
+
* If true, the rating item will be in a disabled state.
|
|
33
|
+
*/
|
|
34
|
+
disabled?: boolean;
|
|
35
|
+
/**
|
|
36
|
+
* Indicates whether the current rating item is in an active state.
|
|
37
|
+
* An active state typically means that the item is visually highlighted
|
|
38
|
+
* or styled differently to indicate that it is part of the current selection
|
|
39
|
+
* or interaction (e.g., hover or focus).
|
|
40
|
+
*/
|
|
41
|
+
isUnselecting?: boolean;
|
|
42
|
+
/**
|
|
43
|
+
* Name of the radio group
|
|
44
|
+
*/
|
|
45
|
+
name?: string;
|
|
46
|
+
}
|
|
47
|
+
export declare const RatingItem: import("react").ForwardRefExoticComponent<RatingItemProps & import("react").RefAttributes<HTMLInputElement>>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./Rating";
|
|
@@ -1,34 +1,36 @@
|
|
|
1
1
|
import { type ElementType, type ReactNode } from "react";
|
|
2
2
|
export interface SemanticIconMap {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
3
|
+
ActiveIcon: ElementType;
|
|
4
|
+
CalendarIcon: ElementType;
|
|
5
|
+
CloseIcon: ElementType;
|
|
6
6
|
CollapseGroupIcon: ElementType;
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
CollapseIcon: ElementType;
|
|
8
|
+
CollapseLeftIcon: ElementType;
|
|
9
|
+
CollapseRightIcon: ElementType;
|
|
10
|
+
CompletedIcon: ElementType;
|
|
10
11
|
DecreaseIcon: ElementType;
|
|
11
|
-
UploadIcon: ElementType;
|
|
12
12
|
ErrorIcon: ElementType;
|
|
13
|
-
|
|
13
|
+
ErrorStatusAdornment: ElementType;
|
|
14
|
+
ExpandGroupIcon: ElementType;
|
|
15
|
+
ExpandIcon: ElementType;
|
|
16
|
+
ExternalIcon: ElementType;
|
|
17
|
+
IncreaseIcon: ElementType;
|
|
14
18
|
InfoIcon: ElementType;
|
|
15
|
-
|
|
19
|
+
InProgressIcon: ElementType;
|
|
20
|
+
LockedIcon: ElementType;
|
|
21
|
+
NextIcon: ElementType;
|
|
16
22
|
OverflowIcon: ElementType;
|
|
17
|
-
UserIcon: ElementType;
|
|
18
|
-
CalendarIcon: ElementType;
|
|
19
|
-
CloseIcon: ElementType;
|
|
20
|
-
ExternalIcon: ElementType;
|
|
21
23
|
PendingIcon: ElementType;
|
|
22
|
-
|
|
23
|
-
CompletedIcon: ElementType;
|
|
24
|
-
LockedIcon: ElementType;
|
|
25
|
-
InProgressIcon: ElementType;
|
|
24
|
+
PreviousIcon: ElementType;
|
|
26
25
|
RatingIcon: ElementType;
|
|
27
26
|
RatingSelectedIcon: ElementType;
|
|
28
27
|
RatingUnselectingIcon: ElementType;
|
|
29
|
-
|
|
30
|
-
WarningStatusAdornment: ElementType;
|
|
28
|
+
SuccessIcon: ElementType;
|
|
31
29
|
SuccessStatusAdornment: ElementType;
|
|
30
|
+
UploadIcon: ElementType;
|
|
31
|
+
UserIcon: ElementType;
|
|
32
|
+
WarningIcon: ElementType;
|
|
33
|
+
WarningStatusAdornment: ElementType;
|
|
32
34
|
}
|
|
33
35
|
export interface SemanticIconProviderProps {
|
|
34
36
|
/**
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { type ComponentPropsWithRef, type RefObject } from "react";
|
|
2
|
+
export interface SidePanelProps extends ComponentPropsWithRef<"div"> {
|
|
3
|
+
/**
|
|
4
|
+
* Disable the panel's own open/close animation.
|
|
5
|
+
* Set to `true` when the parent controls sizing and animation (e.g. inside a splitter).
|
|
6
|
+
* @default false
|
|
7
|
+
*/
|
|
8
|
+
disableAnimation?: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* Edge the panel is anchored to; controls animation direction and divider side.
|
|
11
|
+
* @default "right"
|
|
12
|
+
*/
|
|
13
|
+
position?: "right" | "left";
|
|
14
|
+
/**
|
|
15
|
+
* Which element receives focus when the panel opens.
|
|
16
|
+
* Pass a number for the tabbable element index (0 = first), or a ref to a specific element.
|
|
17
|
+
* Defaults to the first tabbable element inside the panel (close button if present).
|
|
18
|
+
*/
|
|
19
|
+
initialFocus?: number | RefObject<HTMLElement | null>;
|
|
20
|
+
/**
|
|
21
|
+
* The background color palette. Options are 'primary', 'secondary', 'tertiary' and 'none'.
|
|
22
|
+
* @default "primary"
|
|
23
|
+
*/
|
|
24
|
+
variant?: "primary" | "secondary" | "tertiary" | "none";
|
|
25
|
+
}
|
|
26
|
+
export declare const SidePanel: import("react").ForwardRefExoticComponent<Omit<SidePanelProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type ComponentPropsWithRef } from "react";
|
|
2
|
+
export type SidePanelContentProps = ComponentPropsWithRef<"div">;
|
|
3
|
+
export declare const SidePanelContent: import("react").ForwardRefExoticComponent<Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
4
|
+
ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
5
|
+
}, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { type ComponentPropsWithRef } from "react";
|
|
2
|
+
export type SidePanelHeaderProps = ComponentPropsWithRef<"div">;
|
|
3
|
+
export declare const SidePanelHeader: import("react").ForwardRefExoticComponent<Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLDivElement>, HTMLDivElement>, "ref"> & {
|
|
4
|
+
ref?: ((instance: HTMLDivElement | null) => void | import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES[keyof import("react").DO_NOT_USE_OR_YOU_WILL_BE_FIRED_CALLBACK_REF_RETURN_VALUES]) | import("react").RefObject<HTMLDivElement> | null | undefined;
|
|
5
|
+
}, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type ReactNode } from "react";
|
|
2
|
+
export interface SidePanelProviderProps {
|
|
3
|
+
/**
|
|
4
|
+
* Whether the panel is open.
|
|
5
|
+
*/
|
|
6
|
+
open?: boolean;
|
|
7
|
+
/**
|
|
8
|
+
* Default open state when initially rendered.
|
|
9
|
+
*/
|
|
10
|
+
defaultOpen?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Callback when open state changes.
|
|
13
|
+
*/
|
|
14
|
+
onOpenChange?: (open: boolean) => void;
|
|
15
|
+
/**
|
|
16
|
+
* SidePanelProvider children, should include SidePanel and SidePanelTrigger.
|
|
17
|
+
*/
|
|
18
|
+
children: ReactNode;
|
|
19
|
+
}
|
|
20
|
+
export declare function SidePanelProvider(props: SidePanelProviderProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef } from "react";
|
|
2
|
+
export type SidePanelTriggerProps = ComponentPropsWithoutRef<"button">;
|
|
3
|
+
export declare const SidePanelTrigger: import("react").ForwardRefExoticComponent<Omit<import("react").DetailedHTMLProps<import("react").ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, "ref"> & import("react").RefAttributes<HTMLButtonElement>>;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export * from "./SidePanel";
|
|
2
|
+
export * from "./SidePanelCloseButton";
|
|
3
|
+
export * from "./SidePanelContent";
|
|
4
|
+
export * from "./SidePanelHeader";
|
|
5
|
+
export * from "./SidePanelProvider";
|
|
6
|
+
export * from "./SidePanelTitle";
|
|
7
|
+
export * from "./SidePanelTrigger";
|
|
8
|
+
export * from "./useSidePanel";
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type { FloatingRootContext } from "@floating-ui/react";
|
|
2
|
+
import { type Dispatch, type SetStateAction } from "react";
|
|
3
|
+
export interface SidePanelContextValue {
|
|
4
|
+
/**
|
|
5
|
+
* Whether the side panel is currently open.
|
|
6
|
+
*/
|
|
7
|
+
openState: boolean;
|
|
8
|
+
/**
|
|
9
|
+
* The floating-ui root context shared between the trigger and the panel.
|
|
10
|
+
* Coordinates interactions (click, dismiss, role) across both elements.
|
|
11
|
+
*/
|
|
12
|
+
floatingRootContext: FloatingRootContext;
|
|
13
|
+
/**
|
|
14
|
+
* Ref setter for the panel element.
|
|
15
|
+
* Registers the panel DOM node with floating-ui.
|
|
16
|
+
*/
|
|
17
|
+
setFloating: Dispatch<SetStateAction<HTMLDivElement | null>>;
|
|
18
|
+
/**
|
|
19
|
+
* Ref setter for the reference (trigger) element.
|
|
20
|
+
* Registers the trigger DOM node with floating-ui for focus return.
|
|
21
|
+
*/
|
|
22
|
+
setReference: Dispatch<SetStateAction<HTMLElement | null>>;
|
|
23
|
+
/**
|
|
24
|
+
* Sets the open state of the panel.
|
|
25
|
+
* Called by the close button in SidePanelHeader, or any consumer that needs to close the panel.
|
|
26
|
+
*/
|
|
27
|
+
setOpen: (open: boolean) => void;
|
|
28
|
+
/**
|
|
29
|
+
* Side panel id used for aria-controls on the trigger.
|
|
30
|
+
*/
|
|
31
|
+
panelId?: string;
|
|
32
|
+
/**
|
|
33
|
+
* Registers or clears the side panel id used for aria-controls/id linkage.
|
|
34
|
+
*/
|
|
35
|
+
setPanelId: Dispatch<SetStateAction<string | undefined>>;
|
|
36
|
+
/**
|
|
37
|
+
* The auto-generated id placed on SidePanelTitle.
|
|
38
|
+
* Used for aria-labelledby on the panel region and the scrollable body.
|
|
39
|
+
*/
|
|
40
|
+
titleId?: string;
|
|
41
|
+
/**
|
|
42
|
+
* Registers the title id from SidePanelTitle back to the context
|
|
43
|
+
* so that SidePanel and SidePanelContent can use it for aria-labelledby.
|
|
44
|
+
*/
|
|
45
|
+
setTitleId: Dispatch<SetStateAction<string | undefined>>;
|
|
46
|
+
/**
|
|
47
|
+
* Edge the panel is anchored to. Set by SidePanel for its own subtree.
|
|
48
|
+
*/
|
|
49
|
+
position?: "right" | "left";
|
|
50
|
+
}
|
|
51
|
+
export declare const SidePanelContext: import("react").Context<SidePanelContextValue>;
|
|
52
|
+
export declare function useSidePanelContext(): SidePanelContextValue;
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import type { ComponentPropsWithoutRef, MouseEvent, MutableRefObject, RefCallback } from "react";
|
|
2
|
+
export interface SidePanelTriggerExtraProps {
|
|
3
|
+
/**
|
|
4
|
+
* Optional ref to forward alongside the focus-return registration.
|
|
5
|
+
*/
|
|
6
|
+
ref?: RefCallback<HTMLElement | null> | MutableRefObject<HTMLElement | null> | null;
|
|
7
|
+
/**
|
|
8
|
+
* Click handler. Runs before the built-in toggle so consumers can
|
|
9
|
+
* preventDefault to skip the toggle.
|
|
10
|
+
*/
|
|
11
|
+
onClick?: (event: MouseEvent<HTMLButtonElement>) => void;
|
|
12
|
+
}
|
|
13
|
+
export type SidePanelTriggerPropsResult = ComponentPropsWithoutRef<"button"> & {
|
|
14
|
+
"aria-expanded": boolean;
|
|
15
|
+
"aria-controls": string | undefined;
|
|
16
|
+
ref: RefCallback<HTMLElement | null>;
|
|
17
|
+
};
|
|
18
|
+
export interface SidePanelValue {
|
|
19
|
+
/**
|
|
20
|
+
* Whether the side panel is currently open.
|
|
21
|
+
*/
|
|
22
|
+
openState: boolean;
|
|
23
|
+
/**
|
|
24
|
+
* Sets the open state of the panel.
|
|
25
|
+
*/
|
|
26
|
+
setOpen: (open: boolean) => void;
|
|
27
|
+
/**
|
|
28
|
+
* Props getter for a trigger element outside of `SidePanelTrigger`.
|
|
29
|
+
* Returns `aria-expanded`, `aria-controls`, a `ref` (for focus-return),
|
|
30
|
+
* and an `onClick` that toggles the panel.
|
|
31
|
+
*
|
|
32
|
+
* Spread the result onto a Button to get full trigger behavior:
|
|
33
|
+
* ```tsx
|
|
34
|
+
* <Button {...getTriggerProps()}>Toggle panel</Button>
|
|
35
|
+
* ```
|
|
36
|
+
*
|
|
37
|
+
* You can pass additional props which are merged in. If you provide your
|
|
38
|
+
* own `onClick`, it runs before the built-in toggle. If you provide your
|
|
39
|
+
* own `ref`, it is forwarded alongside the internal focus-return ref.
|
|
40
|
+
*
|
|
41
|
+
* For multi-trigger scenarios (e.g. table rows), use `setTriggerRef` and
|
|
42
|
+
* manage ARIA attributes yourself instead.
|
|
43
|
+
*/
|
|
44
|
+
getTriggerProps: (userProps?: SidePanelTriggerExtraProps) => SidePanelTriggerPropsResult;
|
|
45
|
+
/**
|
|
46
|
+
* Registers the element that should receive focus when the panel closes.
|
|
47
|
+
* Use this in multi-trigger scenarios (e.g. table rows) where each trigger
|
|
48
|
+
* needs explicit control over which element is the reference. Pass `null`
|
|
49
|
+
* to clear the previously-registered trigger.
|
|
50
|
+
*/
|
|
51
|
+
setTriggerRef: (element: HTMLElement | null) => void;
|
|
52
|
+
/**
|
|
53
|
+
* The panel's DOM id. Use this for `aria-controls` in multi-trigger
|
|
54
|
+
* scenarios where you manage ARIA attributes yourself.
|
|
55
|
+
*/
|
|
56
|
+
panelId: string | undefined;
|
|
57
|
+
}
|
|
58
|
+
export declare function useSidePanel(): SidePanelValue;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef } from "react";
|
|
2
|
+
export interface TabProps extends ComponentPropsWithoutRef<"div"> {
|
|
3
|
+
/**
|
|
4
|
+
* If `true`, the tab will be disabled.
|
|
5
|
+
*/
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
/**
|
|
8
|
+
* The value of the tab. This must be unique within a `Tabs` instance.
|
|
9
|
+
*/
|
|
10
|
+
value: string;
|
|
11
|
+
}
|
|
12
|
+
export declare const Tab: import("react").ForwardRefExoticComponent<TabProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type ComponentPropsWithRef } from "react";
|
|
2
|
+
export interface TabBarProps extends ComponentPropsWithRef<"div"> {
|
|
3
|
+
/**
|
|
4
|
+
* Styling variant with a bottom separator. Defaults to false
|
|
5
|
+
*/
|
|
6
|
+
divider?: boolean;
|
|
7
|
+
/**
|
|
8
|
+
* Styling variant with left and right padding. Defaults to false
|
|
9
|
+
*/
|
|
10
|
+
inset?: boolean;
|
|
11
|
+
}
|
|
12
|
+
export declare const TabBar: import("react").ForwardRefExoticComponent<Omit<TabBarProps, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef } from "react";
|
|
2
|
+
export interface TabListProps extends Omit<ComponentPropsWithoutRef<"div">, "onChange"> {
|
|
3
|
+
/**
|
|
4
|
+
* Styling active color variant. Defaults to "primary".
|
|
5
|
+
*/
|
|
6
|
+
activeColor?: "primary" | "secondary" | "tertiary";
|
|
7
|
+
/**
|
|
8
|
+
* The appearance of the tabs. Defaults to "bordered".
|
|
9
|
+
*/
|
|
10
|
+
appearance?: "bordered" | "transparent";
|
|
11
|
+
}
|
|
12
|
+
export declare const TabList: import("react").ForwardRefExoticComponent<TabListProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef } from "react";
|
|
2
|
+
export interface TabPanelProps extends ComponentPropsWithoutRef<"div"> {
|
|
3
|
+
/**
|
|
4
|
+
* The value of the panel. This should map to the corresponding tab and must
|
|
5
|
+
* be unique within a `Tabs` instance.
|
|
6
|
+
*/
|
|
7
|
+
value: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const TabPanel: import("react").ForwardRefExoticComponent<TabPanelProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef } from "react";
|
|
2
|
+
export interface TabTriggerProps extends Omit<ComponentPropsWithoutRef<"button">, "id"> {
|
|
3
|
+
}
|
|
4
|
+
export declare const TabTrigger: import("react").ForwardRefExoticComponent<TabTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef, type ReactNode, type SyntheticEvent } from "react";
|
|
2
|
+
export interface TabsProps extends Omit<ComponentPropsWithoutRef<"div">, "onChange"> {
|
|
3
|
+
children?: ReactNode;
|
|
4
|
+
/**
|
|
5
|
+
* The default value. Use when the component is not controlled.
|
|
6
|
+
*/
|
|
7
|
+
defaultValue?: string;
|
|
8
|
+
/**
|
|
9
|
+
* The value. Use when the component is controlled.
|
|
10
|
+
*/
|
|
11
|
+
value?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Callback fired when the selection changes.
|
|
14
|
+
* The event will be null when selection is moved automatically, such as when
|
|
15
|
+
* the currently selected tab is removed and the next available tab is
|
|
16
|
+
* selected.
|
|
17
|
+
*/
|
|
18
|
+
onChange?: (event: SyntheticEvent | null, value: string) => void;
|
|
19
|
+
}
|
|
20
|
+
export declare const Tabs: import("react").ForwardRefExoticComponent<TabsProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
interface TabContextValue {
|
|
2
|
+
tabId?: string;
|
|
3
|
+
focused: boolean;
|
|
4
|
+
selected: boolean;
|
|
5
|
+
value: string;
|
|
6
|
+
disabled: boolean;
|
|
7
|
+
actions: string[];
|
|
8
|
+
registerAction: (id: string) => () => void;
|
|
9
|
+
}
|
|
10
|
+
export declare const TabContext: import("react").Context<TabContextValue>;
|
|
11
|
+
export declare function useTab(): TabContextValue;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export type TabSlotLocation = "hidden" | "main" | "overflow";
|
|
2
|
+
export interface TabListLayoutContextValue {
|
|
3
|
+
getLocation: (value: string) => TabSlotLocation;
|
|
4
|
+
overflowActiveValue: string | null;
|
|
5
|
+
setOverflowActiveValue: (value: string | null) => void;
|
|
6
|
+
moveOverflowFocus: (key: "ArrowDown" | "ArrowUp" | "Home" | "End", value: string) => boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare const TabListLayoutContext: import("react").Context<TabListLayoutContextValue | null>;
|
|
9
|
+
export declare function useTabListLayout(): TabListLayoutContextValue | null;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export interface TabSlotRegistryContextValue {
|
|
2
|
+
registerSlot: (slotId: string, element: HTMLDivElement | null) => void;
|
|
3
|
+
}
|
|
4
|
+
export declare const TabSlotRegistryContext: import("react").Context<TabSlotRegistryContextValue | null>;
|
|
5
|
+
export declare function useTabSlotRegistry(): TabSlotRegistryContextValue | null;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { type Dispatch, type MutableRefObject, type SetStateAction, type SyntheticEvent } from "react";
|
|
2
|
+
import type { useCollection } from "../registry/useCollection";
|
|
3
|
+
export interface Item {
|
|
4
|
+
id: string;
|
|
5
|
+
value: string;
|
|
6
|
+
element: HTMLElement | null;
|
|
7
|
+
location?: "hidden" | "main" | "overflow";
|
|
8
|
+
order?: number;
|
|
9
|
+
}
|
|
10
|
+
export interface RenderedTab {
|
|
11
|
+
host: HTMLDivElement;
|
|
12
|
+
id: string;
|
|
13
|
+
marker: HTMLElement | null;
|
|
14
|
+
root: HTMLElement | null;
|
|
15
|
+
trigger: HTMLButtonElement | null;
|
|
16
|
+
value: string;
|
|
17
|
+
width: number;
|
|
18
|
+
}
|
|
19
|
+
export type TabsRenderMode = "inline" | "portal";
|
|
20
|
+
export interface TabsContextValue extends Omit<ReturnType<typeof useCollection>, "registerItem" | "updateItem"> {
|
|
21
|
+
renderMode: TabsRenderMode;
|
|
22
|
+
registerBootstrapTab: (value: string) => () => void;
|
|
23
|
+
setBootstrapTabReady: (value: string, ready: boolean) => void;
|
|
24
|
+
setBootstrapOverflowReady: (ready: boolean) => void;
|
|
25
|
+
registerTab: (item: Item) => () => void;
|
|
26
|
+
updateTab: (id: string, updates: Partial<Omit<Item, "id" | "value">>) => void;
|
|
27
|
+
registerRenderedTab: (tab: RenderedTab) => () => void;
|
|
28
|
+
updateRenderedTab: (value: string, updates: Partial<Omit<RenderedTab, "value">>) => void;
|
|
29
|
+
getRenderedTab: (value: string) => RenderedTab | undefined;
|
|
30
|
+
getRenderedTabOrder: (value: string) => number;
|
|
31
|
+
renderedTabs: RenderedTab[];
|
|
32
|
+
registerPanel: (id: string, value: string) => () => void;
|
|
33
|
+
getPanelId: (value: string) => string | undefined;
|
|
34
|
+
getTabId: (value: string) => string | undefined;
|
|
35
|
+
selected?: string;
|
|
36
|
+
setSelected: (event: SyntheticEvent | null, value: string, source?: "main" | "overflow") => void;
|
|
37
|
+
activeTab: MutableRefObject<Pick<Item, "id" | "value"> | undefined>;
|
|
38
|
+
selectionFromOverflowValueRef: MutableRefObject<string | null>;
|
|
39
|
+
menuOpen: boolean;
|
|
40
|
+
setMenuOpen: Dispatch<SetStateAction<boolean>>;
|
|
41
|
+
}
|
|
42
|
+
export declare const TabsContext: import("react").Context<TabsContextValue>;
|
|
43
|
+
export declare function useTabs(): TabsContextValue;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
interface UseFocusWithRetryArgs {
|
|
2
|
+
maxAttempts?: number;
|
|
3
|
+
targetWindow: Window | null | undefined;
|
|
4
|
+
}
|
|
5
|
+
export declare function useFocusWithRetry({ maxAttempts, targetWindow, }: UseFocusWithRetryArgs): {
|
|
6
|
+
cancelScheduledFocus: () => void;
|
|
7
|
+
focusElementWithRetry: (getElement: () => HTMLElement | null | undefined) => void;
|
|
8
|
+
};
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type MutableRefObject, type RefObject } from "react";
|
|
2
|
+
interface UseTabListRecoveryArgs {
|
|
3
|
+
removalVersion: number;
|
|
4
|
+
targetWindow: Window | null | undefined;
|
|
5
|
+
tabstripRef: RefObject<HTMLDivElement | null>;
|
|
6
|
+
overflowListRef: RefObject<HTMLDivElement | null>;
|
|
7
|
+
handleTabRemoval: () => void;
|
|
8
|
+
pendingRemovalRecoveryRef: MutableRefObject<boolean>;
|
|
9
|
+
pendingRemovalRecoveryRetriesRef: MutableRefObject<number>;
|
|
10
|
+
}
|
|
11
|
+
export declare function useTabListRecovery({ removalVersion, targetWindow, tabstripRef, overflowListRef, handleTabRemoval, pendingRemovalRecoveryRef, pendingRemovalRecoveryRetriesRef, }: UseTabListRecoveryArgs): void;
|
|
12
|
+
export {};
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { type MutableRefObject, type RefObject } from "react";
|
|
2
|
+
import type { Item, TabsContextValue } from "../contexts/TabsContext";
|
|
3
|
+
interface RemovedItem {
|
|
4
|
+
id: string;
|
|
5
|
+
value: string;
|
|
6
|
+
staleIndex?: number;
|
|
7
|
+
}
|
|
8
|
+
interface UseTabRemovalHandlerArgs {
|
|
9
|
+
activeTab: MutableRefObject<Pick<Item, "id" | "value"> | undefined>;
|
|
10
|
+
focusElementWithRetry: (getElement: () => HTMLElement | null | undefined) => void;
|
|
11
|
+
getFirst: TabsContextValue["getFirst"];
|
|
12
|
+
getIndex: TabsContextValue["getIndex"];
|
|
13
|
+
getLast: TabsContextValue["getLast"];
|
|
14
|
+
getRemovedItems: () => Map<string, RemovedItem>;
|
|
15
|
+
getRenderedTab: TabsContextValue["getRenderedTab"];
|
|
16
|
+
getSelectedTabElement: () => HTMLElement | null | undefined;
|
|
17
|
+
item: TabsContextValue["item"];
|
|
18
|
+
itemAt: TabsContextValue["itemAt"];
|
|
19
|
+
maxRetryAttempts: number;
|
|
20
|
+
menuOpen: boolean;
|
|
21
|
+
overflowButtonRef: RefObject<HTMLButtonElement | null>;
|
|
22
|
+
overflowListRef: RefObject<HTMLDivElement | null>;
|
|
23
|
+
pendingRemovalRecoveryRef: MutableRefObject<boolean>;
|
|
24
|
+
pendingRemovalRecoveryRetriesRef: MutableRefObject<number>;
|
|
25
|
+
removalRecoveryRafRef: MutableRefObject<number | null>;
|
|
26
|
+
selected?: string;
|
|
27
|
+
setSelected: TabsContextValue["setSelected"];
|
|
28
|
+
tabstripRef: RefObject<HTMLDivElement | null>;
|
|
29
|
+
targetWindow: Window | null | undefined;
|
|
30
|
+
}
|
|
31
|
+
export declare function useTabRemovalHandler({ activeTab, focusElementWithRetry, getFirst, getIndex, getLast, getRemovedItems, getRenderedTab, getSelectedTabElement, item, itemAt, maxRetryAttempts, menuOpen, overflowButtonRef, overflowListRef, pendingRemovalRecoveryRef, pendingRemovalRecoveryRetriesRef, removalRecoveryRafRef, selected, setSelected, tabstripRef, targetWindow, }: UseTabRemovalHandlerArgs): () => void;
|
|
32
|
+
export {};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { MutableRefObject } from "react";
|
|
2
|
+
import type { TabsContextValue } from "../contexts/TabsContext";
|
|
3
|
+
interface UseTabSelectionFocusArgs {
|
|
4
|
+
announce: (message: string, timeout?: number) => void;
|
|
5
|
+
focusElementWithRetry: (getElement: () => HTMLElement | null | undefined) => void;
|
|
6
|
+
getRenderedTab: TabsContextValue["getRenderedTab"];
|
|
7
|
+
getSelectedTabElement: () => HTMLElement | null | undefined;
|
|
8
|
+
menuOpen: boolean;
|
|
9
|
+
resolvedOverflowActiveValue: string | null;
|
|
10
|
+
selected?: string;
|
|
11
|
+
selectionFromOverflowValueRef: MutableRefObject<string | null>;
|
|
12
|
+
targetWindow: Window | null | undefined;
|
|
13
|
+
}
|
|
14
|
+
export declare function useTabSelectionFocus({ announce, focusElementWithRetry, getRenderedTab, getSelectedTabElement, menuOpen, resolvedOverflowActiveValue, selected, selectionFromOverflowValueRef, targetWindow, }: UseTabSelectionFocusArgs): void;
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef, type Dispatch, type Ref, type SetStateAction } from "react";
|
|
2
|
+
interface TabOverflowListProps extends ComponentPropsWithoutRef<"button"> {
|
|
3
|
+
buttonRef?: Ref<HTMLButtonElement>;
|
|
4
|
+
hiddenValues: string[];
|
|
5
|
+
open: boolean;
|
|
6
|
+
setOpen: Dispatch<SetStateAction<boolean>>;
|
|
7
|
+
order: number;
|
|
8
|
+
}
|
|
9
|
+
export declare const TabOverflowList: import("react").ForwardRefExoticComponent<TabOverflowListProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { type ComponentPropsWithoutRef } from "react";
|
|
2
|
+
export interface TabSlotProps extends ComponentPropsWithoutRef<"div"> {
|
|
3
|
+
slotId: string;
|
|
4
|
+
value: string;
|
|
5
|
+
}
|
|
6
|
+
export declare function TabSlot({ slotId, value, ...rest }: TabSlotProps): import("react/jsx-runtime").JSX.Element;
|