@deadragdoll/reactnu 0.1.9
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/LICENSE +21 -0
- package/README.md +151 -0
- package/dist/appHost/NuAppHostProvider.d.ts +6 -0
- package/dist/appHost/appHostContext.d.ts +26 -0
- package/dist/components/Button/Button.d.ts +13 -0
- package/dist/components/Button/index.d.ts +1 -0
- package/dist/components/CheckBox/CheckBox.d.ts +14 -0
- package/dist/components/CheckBox/index.d.ts +1 -0
- package/dist/components/ComboBox/ComboBox.d.ts +23 -0
- package/dist/components/ComboBox/index.d.ts +1 -0
- package/dist/components/CommandButton/CommandButton.d.ts +17 -0
- package/dist/components/CommandButton/index.d.ts +1 -0
- package/dist/components/CrtGlitch/CrtGlitch.d.ts +23 -0
- package/dist/components/CrtGlitch/index.d.ts +1 -0
- package/dist/components/Dashboard/Dashboard.d.ts +25 -0
- package/dist/components/Dashboard/index.d.ts +1 -0
- package/dist/components/Desktop/Desktop.d.ts +6 -0
- package/dist/components/Desktop/index.d.ts +1 -0
- package/dist/components/Dropdown/Dropdown.d.ts +19 -0
- package/dist/components/Dropdown/index.d.ts +1 -0
- package/dist/components/Frame/Frame.d.ts +24 -0
- package/dist/components/Frame/index.d.ts +1 -0
- package/dist/components/Glyph/NuGlyph.d.ts +6 -0
- package/dist/components/Glyph/index.d.ts +1 -0
- package/dist/components/Info/Info.d.ts +13 -0
- package/dist/components/Info/index.d.ts +1 -0
- package/dist/components/ListBox/ListBox.d.ts +23 -0
- package/dist/components/ListBox/index.d.ts +1 -0
- package/dist/components/ListBox/internals/ListBoxCategoryView.d.ts +6 -0
- package/dist/components/ListBox/internals/ListBoxCheckControl.d.ts +8 -0
- package/dist/components/ListBox/internals/ListBoxGroupView.d.ts +17 -0
- package/dist/components/ListBox/internals/ListBoxItemView.d.ts +18 -0
- package/dist/components/ListBox/internals/helpers.d.ts +5 -0
- package/dist/components/ListBox/internals/renderLabel.d.ts +2 -0
- package/dist/components/ListBox/internals/types.d.ts +27 -0
- package/dist/components/ListView/ListView.d.ts +27 -0
- package/dist/components/ListView/index.d.ts +1 -0
- package/dist/components/ListView/internals/ListViewCheckControl.d.ts +8 -0
- package/dist/components/ListView/internals/ListViewRow.d.ts +18 -0
- package/dist/components/ListView/internals/helpers.d.ts +5 -0
- package/dist/components/ListView/internals/types.d.ts +17 -0
- package/dist/components/MainMenu/MainMenu.d.ts +8 -0
- package/dist/components/MainMenu/MainMenu.types.d.ts +23 -0
- package/dist/components/MainMenu/index.d.ts +3 -0
- package/dist/components/MainMenu/internals/MainMenuList.d.ts +12 -0
- package/dist/components/MainMenu/menuState.d.ts +40 -0
- package/dist/components/MaskedField/MaskedField.d.ts +13 -0
- package/dist/components/MaskedField/index.d.ts +2 -0
- package/dist/components/MaskedField/textMask.d.ts +8 -0
- package/dist/components/Memo/Memo.d.ts +14 -0
- package/dist/components/Memo/index.d.ts +1 -0
- package/dist/components/PageControl/PageControl.d.ts +20 -0
- package/dist/components/PageControl/index.d.ts +1 -0
- package/dist/components/Panel/Panel.d.ts +11 -0
- package/dist/components/Panel/index.d.ts +1 -0
- package/dist/components/PopupMenu/PopupMenu.d.ts +22 -0
- package/dist/components/PopupMenu/index.d.ts +2 -0
- package/dist/components/PopupMenu/usePopupMenu.d.ts +12 -0
- package/dist/components/ProgressBar/ProgressBar.d.ts +17 -0
- package/dist/components/ProgressBar/index.d.ts +1 -0
- package/dist/components/PropertyGrid/PropertyGrid.d.ts +38 -0
- package/dist/components/PropertyGrid/index.d.ts +1 -0
- package/dist/components/RadioGroup/RadioButton.d.ts +9 -0
- package/dist/components/RadioGroup/RadioGroup.d.ts +21 -0
- package/dist/components/RadioGroup/index.d.ts +2 -0
- package/dist/components/ReportCell/ReportCell.d.ts +6 -0
- package/dist/components/ReportCell/index.d.ts +1 -0
- package/dist/components/SearchBox/SearchBox.d.ts +23 -0
- package/dist/components/SearchBox/index.d.ts +1 -0
- package/dist/components/SpinBox/SpinBox.d.ts +16 -0
- package/dist/components/SpinBox/index.d.ts +1 -0
- package/dist/components/Splitter/Splitter.d.ts +15 -0
- package/dist/components/Splitter/index.d.ts +1 -0
- package/dist/components/Stack/Stack.d.ts +13 -0
- package/dist/components/Stack/index.d.ts +1 -0
- package/dist/components/TextField/TextField.d.ts +12 -0
- package/dist/components/TextField/index.d.ts +1 -0
- package/dist/components/TickBar/TickBar.d.ts +22 -0
- package/dist/components/TickBar/index.d.ts +1 -0
- package/dist/components/ToolBar/ToolBar.d.ts +25 -0
- package/dist/components/ToolBar/index.d.ts +1 -0
- package/dist/components/TreeListView/TreeListView.d.ts +33 -0
- package/dist/components/TreeListView/index.d.ts +1 -0
- package/dist/components/TreeListView/internals/TreeListViewRow.d.ts +28 -0
- package/dist/components/TreeListView/internals/helpers.d.ts +14 -0
- package/dist/components/TreeListView/internals/types.d.ts +32 -0
- package/dist/components/TreeView/TreeView.d.ts +26 -0
- package/dist/components/TreeView/index.d.ts +1 -0
- package/dist/components/TreeView/internals/TreeViewItem.d.ts +21 -0
- package/dist/components/TreeView/internals/helpers.d.ts +5 -0
- package/dist/components/TreeView/internals/types.d.ts +10 -0
- package/dist/components/View/NuView.d.ts +10 -0
- package/dist/components/View/index.d.ts +1 -0
- package/dist/components/Window/StatusBarItem.d.ts +7 -0
- package/dist/components/Window/Window.d.ts +41 -0
- package/dist/components/Window/WindowTitleButton.d.ts +17 -0
- package/dist/components/Window/index.d.ts +5 -0
- package/dist/components/Window/internals/WindowStatusBar.d.ts +8 -0
- package/dist/components/Window/internals/WindowTitleBar.d.ts +10 -0
- package/dist/components/Window/useWindowTitleButtons.d.ts +12 -0
- package/dist/components/Window/windowMenuContext.d.ts +3 -0
- package/dist/components/_shared/ControlOpener.d.ts +18 -0
- package/dist/components/_shared/portalPositioning.d.ts +16 -0
- package/dist/components/_shared/slotProps.d.ts +867 -0
- package/dist/components/_shared/themePortal.d.ts +2 -0
- package/dist/components/_shared/treeData.d.ts +19 -0
- package/dist/components/_shared/usePopupPosition.d.ts +40 -0
- package/dist/index.cjs +9848 -0
- package/dist/index.d.ts +45 -0
- package/dist/index.js +9885 -0
- package/dist/styles.css +3644 -0
- package/dist/theme/NuThemeProvider.d.ts +26 -0
- package/dist/theme/themeContext.d.ts +15 -0
- package/dist/theme/themes.d.ts +49 -0
- package/dist/utils/renderMnemonicText.d.ts +10 -0
- package/dist/windowing/AppBarHost.d.ts +6 -0
- package/dist/windowing/AppBarItem.d.ts +587 -0
- package/dist/windowing/NuWindowProvider.d.ts +9 -0
- package/dist/windowing/WindowBar.d.ts +13 -0
- package/dist/windowing/dialogHelpers.d.ts +1793 -0
- package/dist/windowing/internals/MdiWindowPickerDialog.d.ts +10 -0
- package/dist/windowing/mdiMenu.d.ts +3 -0
- package/dist/windowing/windowContext.d.ts +18 -0
- package/dist/windowing/windowing.constants.d.ts +1 -0
- package/dist/windowing/windowing.types.d.ts +54 -0
- package/docs/API_REFERENCE.md +150 -0
- package/docs/ARCHITECTURE.md +170 -0
- package/docs/AppBarHost.md +22 -0
- package/docs/AppBarItem.md +22 -0
- package/docs/Button.md +24 -0
- package/docs/COMPONENT_INDEX.md +64 -0
- package/docs/CONTRIBUTOR_GUIDE.md +393 -0
- package/docs/CheckBox.md +30 -0
- package/docs/ComboBox.md +41 -0
- package/docs/CommandButton.md +45 -0
- package/docs/CrtGlitch.md +49 -0
- package/docs/Dashboard.md +73 -0
- package/docs/Desktop.md +27 -0
- package/docs/DialogHelpers.md +85 -0
- package/docs/Dropdown.md +44 -0
- package/docs/Frame.md +38 -0
- package/docs/GETTING_STARTED.md +110 -0
- package/docs/Glyph.md +29 -0
- package/docs/Info.md +51 -0
- package/docs/ListBox.md +35 -0
- package/docs/ListView.md +62 -0
- package/docs/MainMenu.md +36 -0
- package/docs/MaskedField.md +124 -0
- package/docs/Memo.md +32 -0
- package/docs/NuAppHostProvider.md +28 -0
- package/docs/NuThemeProvider.md +64 -0
- package/docs/NuView.md +58 -0
- package/docs/NuWindowProvider.md +81 -0
- package/docs/PageControl.md +28 -0
- package/docs/Panel.md +23 -0
- package/docs/PopupMenu.md +42 -0
- package/docs/ProgressBar.md +33 -0
- package/docs/PropertyGrid.md +63 -0
- package/docs/RadioGroup.md +36 -0
- package/docs/ReportCell.md +27 -0
- package/docs/SLOT_CUSTOMIZATION.md +85 -0
- package/docs/STORYBOOK.md +96 -0
- package/docs/SearchBox.md +41 -0
- package/docs/SpinBox.md +25 -0
- package/docs/Splitter.md +91 -0
- package/docs/Stack.md +26 -0
- package/docs/StatusBarItem.md +31 -0
- package/docs/TOKEN_CHECKLIST.md +122 -0
- package/docs/TextField.md +27 -0
- package/docs/TickBar.md +57 -0
- package/docs/ToolBar.md +51 -0
- package/docs/TreeListView.md +84 -0
- package/docs/TreeView.md +53 -0
- package/docs/Window.md +53 -0
- package/docs/WindowBar.md +24 -0
- package/package.json +47 -0
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
2
|
+
import { TreeDataItemBase, VisibleTreeDataItem } from "../../_shared/treeData";
|
|
3
|
+
export type TreeListColumnAlign = "left" | "center" | "right" | "start" | "end";
|
|
4
|
+
export type TreeListItemBase<TItem = unknown> = TreeDataItemBase<TItem> & {
|
|
5
|
+
checked?: boolean;
|
|
6
|
+
className?: string;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
hint?: ReactNode;
|
|
9
|
+
icon?: ReactNode;
|
|
10
|
+
title: ReactNode;
|
|
11
|
+
};
|
|
12
|
+
export type TreeListColumn<T extends TreeListItemBase<T>> = {
|
|
13
|
+
align?: TreeListColumnAlign;
|
|
14
|
+
className?: string;
|
|
15
|
+
field?: keyof T;
|
|
16
|
+
headerAlign?: TreeListColumnAlign;
|
|
17
|
+
id: string;
|
|
18
|
+
minWidth?: number;
|
|
19
|
+
renderCell?: (item: T) => ReactNode;
|
|
20
|
+
resizable?: boolean;
|
|
21
|
+
title: string;
|
|
22
|
+
tree?: boolean;
|
|
23
|
+
width?: number | string;
|
|
24
|
+
};
|
|
25
|
+
export type TreeListCellContext<T extends TreeListItemBase<T>> = {
|
|
26
|
+
depth: number;
|
|
27
|
+
isLeaf: boolean;
|
|
28
|
+
item: T;
|
|
29
|
+
rowIndex: number;
|
|
30
|
+
};
|
|
31
|
+
export type TreeListGetCellContent<T extends TreeListItemBase<T>> = (itemId: string, columnId: string, context: TreeListCellContext<T>) => ReactNode;
|
|
32
|
+
export type VisibleTreeListItem<T extends TreeListItemBase<T>> = VisibleTreeDataItem<T>;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ForwardedRef, HTMLAttributes, RefAttributes } from "react";
|
|
2
|
+
import { TreeItem } from "./internals/types";
|
|
3
|
+
export type { TreeItem } from "./internals/types";
|
|
4
|
+
export type TreeViewHandle = {
|
|
5
|
+
activateItem: (itemId: string) => void;
|
|
6
|
+
collapseItem: (itemId: string) => void;
|
|
7
|
+
expandItem: (itemId: string) => void;
|
|
8
|
+
focus: () => void;
|
|
9
|
+
getActiveItemId: () => string | null;
|
|
10
|
+
scrollToItem: (itemId: string) => void;
|
|
11
|
+
toggleItemCheck: (itemId: string) => void;
|
|
12
|
+
};
|
|
13
|
+
export type TreeViewProps = Omit<HTMLAttributes<HTMLDivElement>, "onSelect"> & {
|
|
14
|
+
data: TreeItem[];
|
|
15
|
+
defaultExpandedIds?: string[];
|
|
16
|
+
emptyText?: string;
|
|
17
|
+
expandedIds?: string[];
|
|
18
|
+
onExpandedIdsChange?: (expandedIds: string[]) => void;
|
|
19
|
+
onItemCheckChange?: (item: TreeItem, checked: boolean) => void;
|
|
20
|
+
onItemDoubleClick?: (item: TreeItem) => void;
|
|
21
|
+
onItemSelect?: (item: TreeItem) => void;
|
|
22
|
+
selectedId?: string;
|
|
23
|
+
uncheckedShape?: "box" | "none";
|
|
24
|
+
};
|
|
25
|
+
declare function TreeViewInner({ className, data, defaultExpandedIds, emptyText, expandedIds, onExpandedIdsChange, onItemCheckChange, onItemDoubleClick, onItemSelect, selectedId, uncheckedShape, ...props }: TreeViewProps, ref: ForwardedRef<TreeViewHandle>): import("react/jsx-runtime").JSX.Element;
|
|
26
|
+
export declare const TreeView: (props: TreeViewProps & RefAttributes<TreeViewHandle>) => ReturnType<typeof TreeViewInner>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./TreeView";
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { TreeItem } from "./types";
|
|
2
|
+
type TreeViewItemProps = {
|
|
3
|
+
depth: number;
|
|
4
|
+
expandedIdSet: Set<string>;
|
|
5
|
+
guideMask: boolean[];
|
|
6
|
+
guideOffsets: number[];
|
|
7
|
+
hasNextSibling: boolean;
|
|
8
|
+
originOffset: number;
|
|
9
|
+
onActivateItem: (item: TreeItem, itemId: string) => void;
|
|
10
|
+
onDoubleClickItem?: (item: TreeItem) => void;
|
|
11
|
+
onToggleItemCheck?: (item: TreeItem, checked: boolean) => void;
|
|
12
|
+
onToggleItemExpanded: (item: TreeItem, expanded: boolean) => void;
|
|
13
|
+
registerItemRef: (itemId: string, node: HTMLDivElement | null) => void;
|
|
14
|
+
resolvedSelectedId: string | null;
|
|
15
|
+
treeId: string;
|
|
16
|
+
item: TreeItem;
|
|
17
|
+
uncheckedShape: "box" | "none";
|
|
18
|
+
};
|
|
19
|
+
declare function TreeViewItemInner({ depth, expandedIdSet, guideMask, guideOffsets, hasNextSibling, item, originOffset, onActivateItem, onDoubleClickItem, onToggleItemCheck, onToggleItemExpanded, registerItemRef, resolvedSelectedId, treeId, uncheckedShape }: TreeViewItemProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export declare const TreeViewItem: import("react").MemoExoticComponent<typeof TreeViewItemInner>;
|
|
21
|
+
export {};
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { TreeItem, VisibleTreeItem } from "./types";
|
|
2
|
+
export declare function collectExpandedTreeIds(items: TreeItem[]): string[];
|
|
3
|
+
export declare function findSelectedTreeItemId(items: TreeItem[]): string | null;
|
|
4
|
+
export declare function findTreeItemById(items: TreeItem[], targetId: string): TreeItem | null;
|
|
5
|
+
export declare function collectVisibleTreeItems(items: TreeItem[], expandedIds: Set<string>, depth?: number, guideMask?: boolean[], parentId?: string | null): VisibleTreeItem[];
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { ReactNode } from "react";
|
|
2
|
+
import { TreeDataItemBase, VisibleTreeDataItem } from "../../_shared/treeData";
|
|
3
|
+
export interface TreeItem extends TreeDataItemBase<TreeItem> {
|
|
4
|
+
checked?: boolean;
|
|
5
|
+
disabled?: boolean;
|
|
6
|
+
hint?: ReactNode;
|
|
7
|
+
icon?: ReactNode;
|
|
8
|
+
title: ReactNode;
|
|
9
|
+
}
|
|
10
|
+
export type VisibleTreeItem = VisibleTreeDataItem<TreeItem>;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { HTMLAttributes } from "react";
|
|
2
|
+
type NuViewPadding = "none" | "cell" | "sm" | "md" | "lg";
|
|
3
|
+
type NuViewScroll = "auto" | "x" | "y" | "both" | "hidden";
|
|
4
|
+
export type NuViewProps = HTMLAttributes<HTMLDivElement> & {
|
|
5
|
+
fill?: boolean;
|
|
6
|
+
padding?: NuViewPadding;
|
|
7
|
+
scroll?: NuViewScroll;
|
|
8
|
+
};
|
|
9
|
+
export declare function NuView({ children, className, fill, padding, scroll, ...props }: NuViewProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from "./NuView";
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { HTMLAttributes, ReactNode } from "react";
|
|
2
|
+
export type StatusBarItemProps = HTMLAttributes<HTMLSpanElement> & {
|
|
3
|
+
align?: "start" | "center" | "end";
|
|
4
|
+
children: ReactNode;
|
|
5
|
+
grow?: boolean;
|
|
6
|
+
};
|
|
7
|
+
export declare function StatusBarItem({ align, children, className, grow, ...props }: StatusBarItemProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { HTMLAttributes, PropsWithChildren, ReactNode } from "react";
|
|
2
|
+
import { WindowTitleButtonDefinition } from "./WindowTitleButton";
|
|
3
|
+
import { NuWindowBounds } from "../../windowing/windowing.types";
|
|
4
|
+
export type WindowMode = "dialog" | "window";
|
|
5
|
+
export type WindowBorder = "single" | "double";
|
|
6
|
+
export type WindowPosition = {
|
|
7
|
+
left: number;
|
|
8
|
+
top: number;
|
|
9
|
+
};
|
|
10
|
+
export type WindowSize = {
|
|
11
|
+
height: number;
|
|
12
|
+
width: number;
|
|
13
|
+
};
|
|
14
|
+
export type WindowProps = PropsWithChildren<Omit<HTMLAttributes<HTMLElement>, "title"> & {
|
|
15
|
+
active?: boolean;
|
|
16
|
+
bodyClassName?: string;
|
|
17
|
+
border?: WindowBorder;
|
|
18
|
+
closeable?: boolean;
|
|
19
|
+
draggable?: boolean;
|
|
20
|
+
maximizable?: boolean;
|
|
21
|
+
maximized?: boolean;
|
|
22
|
+
minimizable?: boolean;
|
|
23
|
+
minimized?: boolean;
|
|
24
|
+
mode?: WindowMode;
|
|
25
|
+
onActivate?: () => void;
|
|
26
|
+
onBoundsChange?: (bounds: NuWindowBounds) => void;
|
|
27
|
+
onClose?: () => void;
|
|
28
|
+
onPositionChange?: (position: WindowPosition) => void;
|
|
29
|
+
onSizeChange?: (size: WindowSize) => void;
|
|
30
|
+
onToggleMaximized?: () => void;
|
|
31
|
+
onToggleMinimized?: () => void;
|
|
32
|
+
resizable?: boolean;
|
|
33
|
+
scrollable?: boolean;
|
|
34
|
+
statusBarClassName?: string;
|
|
35
|
+
statusBar?: ReactNode;
|
|
36
|
+
titleButtons?: WindowTitleButtonDefinition[];
|
|
37
|
+
title: string;
|
|
38
|
+
}>;
|
|
39
|
+
declare function WindowInner({ active, bodyClassName, border, children, className, closeable, draggable, maximizable, maximized, minimizable, minimized, mode, onActivate, onBoundsChange, onClose, onPointerDownCapture, onPositionChange, onSizeChange, onToggleMaximized, onToggleMinimized, resizable, scrollable, statusBarClassName, statusBar, style, titleButtons, title, ...props }: WindowProps): import("react/jsx-runtime").JSX.Element;
|
|
40
|
+
export declare const Window: import("react").MemoExoticComponent<typeof WindowInner>;
|
|
41
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { ButtonHTMLAttributes, ReactNode } from "react";
|
|
2
|
+
export type WindowTitleButtonIcon = "close" | "maximize" | "minimize" | "restore" | ReactNode;
|
|
3
|
+
export type WindowTitleButtonVariant = "default" | "close";
|
|
4
|
+
export type WindowTitleButtonProps = Omit<ButtonHTMLAttributes<HTMLButtonElement>, "children"> & {
|
|
5
|
+
ariaLabel?: string;
|
|
6
|
+
icon: WindowTitleButtonIcon;
|
|
7
|
+
variant?: WindowTitleButtonVariant;
|
|
8
|
+
};
|
|
9
|
+
export type WindowTitleButtonDefinition = {
|
|
10
|
+
ariaLabel?: string;
|
|
11
|
+
className?: string;
|
|
12
|
+
icon: WindowTitleButtonIcon;
|
|
13
|
+
key?: string;
|
|
14
|
+
onClick?: () => void;
|
|
15
|
+
variant?: WindowTitleButtonVariant;
|
|
16
|
+
};
|
|
17
|
+
export declare function WindowTitleButton({ ariaLabel, className, icon, onClick, onPointerDown, type, variant, ...props }: WindowTitleButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { PointerEventHandler, PropsWithChildren } from "react";
|
|
2
|
+
type WindowStatusBarProps = PropsWithChildren<{
|
|
3
|
+
onResizeStart?: PointerEventHandler<HTMLButtonElement>;
|
|
4
|
+
resizable?: boolean;
|
|
5
|
+
statusBarClassName?: string;
|
|
6
|
+
}>;
|
|
7
|
+
export declare function WindowStatusBar({ children, onResizeStart, resizable, statusBarClassName }: WindowStatusBarProps): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { PointerEventHandler } from "react";
|
|
2
|
+
import { WindowTitleButtonDefinition } from "../WindowTitleButton";
|
|
3
|
+
type WindowTitleBarProps = {
|
|
4
|
+
draggable: boolean;
|
|
5
|
+
onDragStart?: PointerEventHandler<HTMLElement>;
|
|
6
|
+
titleButtons: WindowTitleButtonDefinition[];
|
|
7
|
+
title: string;
|
|
8
|
+
};
|
|
9
|
+
export declare function WindowTitleBar({ draggable, onDragStart, titleButtons, title }: WindowTitleBarProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { WindowTitleButtonDefinition } from "./WindowTitleButton";
|
|
2
|
+
export type UseWindowTitleButtonsOptions = {
|
|
3
|
+
closeable?: boolean;
|
|
4
|
+
maximizable?: boolean;
|
|
5
|
+
maximized?: boolean;
|
|
6
|
+
minimizable?: boolean;
|
|
7
|
+
minimized?: boolean;
|
|
8
|
+
onClose?: () => void;
|
|
9
|
+
onToggleMaximized?: () => void;
|
|
10
|
+
onToggleMinimized?: () => void;
|
|
11
|
+
};
|
|
12
|
+
export declare function useWindowTitleButtons({ closeable, maximizable, maximized, minimizable, minimized, onClose, onToggleMaximized, onToggleMinimized }: UseWindowTitleButtonsOptions): WindowTitleButtonDefinition[];
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { ButtonHTMLAttributes, CSSProperties, HTMLAttributes, ReactNode } from "react";
|
|
2
|
+
type ControlOpenerBaseProps = {
|
|
3
|
+
children?: ReactNode;
|
|
4
|
+
className?: string;
|
|
5
|
+
glyphClassName?: string;
|
|
6
|
+
glyphStyle?: CSSProperties;
|
|
7
|
+
style?: CSSProperties;
|
|
8
|
+
};
|
|
9
|
+
type ControlOpenerSpanProps = ControlOpenerBaseProps & Omit<HTMLAttributes<HTMLSpanElement>, "children" | "style"> & {
|
|
10
|
+
ariaHidden?: boolean;
|
|
11
|
+
as?: "span";
|
|
12
|
+
};
|
|
13
|
+
type ControlOpenerButtonProps = ControlOpenerBaseProps & Omit<ButtonHTMLAttributes<HTMLButtonElement>, "children" | "style"> & {
|
|
14
|
+
as: "button";
|
|
15
|
+
};
|
|
16
|
+
export type ControlOpenerProps = ControlOpenerSpanProps | ControlOpenerButtonProps;
|
|
17
|
+
export declare function ControlOpener(props: ControlOpenerProps): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
type PortalViewportRect = {
|
|
2
|
+
left: number;
|
|
3
|
+
top: number;
|
|
4
|
+
width: number;
|
|
5
|
+
height: number;
|
|
6
|
+
};
|
|
7
|
+
export declare function isDocumentViewportRoot(portalRoot: HTMLElement | null): boolean;
|
|
8
|
+
export declare function getPortalViewportRect(portalRoot: HTMLElement | null): PortalViewportRect;
|
|
9
|
+
export declare function toPortalCoordinates(portalRoot: HTMLElement | null, position: {
|
|
10
|
+
left: number;
|
|
11
|
+
top: number;
|
|
12
|
+
}): {
|
|
13
|
+
left: number;
|
|
14
|
+
top: number;
|
|
15
|
+
};
|
|
16
|
+
export {};
|