@ufoui/core 0.0.1
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 +150 -0
- package/README.md +37 -0
- package/TRADEMARK.md +10 -0
- package/components/article/article.d.ts +25 -0
- package/components/aside/aside.d.ts +27 -0
- package/components/avatar/avatar.d.ts +35 -0
- package/components/badge/badge.d.ts +57 -0
- package/components/base/boxBase/boxBase.d.ts +126 -0
- package/components/base/buttonBase/buttonBase.d.ts +126 -0
- package/components/base/checkboxBase/checkboxBase.d.ts +124 -0
- package/components/base/dialogBase/dialog.d.ts +35 -0
- package/components/base/fieldBase/fieldBase.d.ts +50 -0
- package/components/base/inlineBase/inlineBase.d.ts +62 -0
- package/components/button/button.d.ts +24 -0
- package/components/card/card.d.ts +15 -0
- package/components/checkbox/checkbox.d.ts +31 -0
- package/components/chip/chip.d.ts +7 -0
- package/components/content/content.d.ts +28 -0
- package/components/dateInput/dateInput.d.ts +2 -0
- package/components/dateTimeInput/dateTimeInput.d.ts +2 -0
- package/components/dialog/dialogActions.d.ts +15 -0
- package/components/dialog/dialogContent.d.ts +9 -0
- package/components/dialog/dialogTitle.d.ts +16 -0
- package/components/div/div.d.ts +29 -0
- package/components/divider/divider.d.ts +70 -0
- package/components/divider/divider.guards.d.ts +15 -0
- package/components/emailInput/emailInput.d.ts +2 -0
- package/components/fab/fab.d.ts +29 -0
- package/components/fieldset/fieldset.d.ts +45 -0
- package/components/flex/flex.d.ts +36 -0
- package/components/footer/footer.d.ts +27 -0
- package/components/grid/grid.d.ts +38 -0
- package/components/header/header.d.ts +27 -0
- package/components/iconButton/iconButton.d.ts +27 -0
- package/components/listItem/listItem.d.ts +179 -0
- package/components/listItem/listItem.guards.d.ts +15 -0
- package/components/main/main.d.ts +27 -0
- package/components/menu/menu.d.ts +177 -0
- package/components/menu/menu.guards.d.ts +15 -0
- package/components/menuItem/menuItem.d.ts +179 -0
- package/components/menuItem/menuItem.guards.d.ts +15 -0
- package/components/nav/nav.d.ts +27 -0
- package/components/numberInput/numberInput.d.ts +2 -0
- package/components/option/option.d.ts +6 -0
- package/components/option/option.guards.d.ts +16 -0
- package/components/radio/radio.d.ts +31 -0
- package/components/radiogroup/radioGroup.d.ts +47 -0
- package/components/section/section.d.ts +27 -0
- package/components/select/select.d.ts +32 -0
- package/components/spinner/spinner.d.ts +7 -0
- package/components/switch/switch.d.ts +102 -0
- package/components/telInput/telInput.d.ts +2 -0
- package/components/textField/textField.d.ts +9 -0
- package/components/themeProvider/themeProvider.d.ts +54 -0
- package/components/timeInput/timeInput.d.ts +2 -0
- package/components/toggleButton/toggleButton.d.ts +6 -0
- package/components/tooltip/tooltip.d.ts +8 -0
- package/components/urlInput/urlInput.d.ts +2 -0
- package/context/fieldsetContext.d.ts +22 -0
- package/context/radioGroupContext.d.ts +28 -0
- package/context/themeContext.d.ts +61 -0
- package/hooks/useAnimate.d.ts +55 -0
- package/hooks/useClickOutside.d.ts +36 -0
- package/hooks/useEscapeHandler.d.ts +1 -0
- package/hooks/useFocusState.d.ts +16 -0
- package/hooks/useFocusVisible.d.ts +20 -0
- package/hooks/useTheme.d.ts +12 -0
- package/index.css +1 -0
- package/index.d.ts +53 -0
- package/index.mjs +3300 -0
- package/internal/inlineTooltip/inlineTooltip.d.ts +11 -0
- package/internal/inlineTooltip/inlineTooltip2.d.ts +10 -0
- package/internal/inlineTooltip/inlineTooltipManager.d.ts +12 -0
- package/package.json +38 -0
- package/types/index.d.ts +2 -0
- package/types/motion.d.ts +17 -0
- package/types/theme.d.ts +246 -0
- package/utils/calculateFloatingPosition.d.ts +68 -0
- package/utils/color.d.ts +415 -0
- package/utils/generateMaterialColors.d.ts +31 -0
- package/utils/generateSchemes.d.ts +32 -0
- package/utils/inputhMethod.d.ts +17 -0
- package/utils/utils.d.ts +202 -0
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
import { default as React, ReactNode } from 'react';
|
|
2
|
+
import { ElementAlign, ElementBorder, ElementDensity, ElementElevation, ElementFocusEffect, ElementFont, ElementHoverEffect, ElementOutline, ElementPressedEffect, ElementSelectedEffect, ElementShape, ElementSize, ElementTextPlacement, ElementTouchEffect } from '../../utils';
|
|
3
|
+
import { MotionAnimation, MotionStyle } from '../../types';
|
|
4
|
+
import { BorderColor, SemanticColor, SurfaceColor } from '../../../utils/color';
|
|
5
|
+
/**
|
|
6
|
+
* Props for the CheckboxBase component.
|
|
7
|
+
*
|
|
8
|
+
* Supports controlled and uncontrolled usage, visual effects,
|
|
9
|
+
* animation configuration, and accessibility features.
|
|
10
|
+
*
|
|
11
|
+
* @category Base components
|
|
12
|
+
*/
|
|
13
|
+
export interface CheckboxBaseProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'color' | 'size'> {
|
|
14
|
+
/** Animation preset for check and uncheck transitions. */
|
|
15
|
+
animation?: MotionAnimation;
|
|
16
|
+
/** Border style. */
|
|
17
|
+
border?: ElementBorder;
|
|
18
|
+
/** Border color override. */
|
|
19
|
+
borderColor?: BorderColor;
|
|
20
|
+
/** Custom content rendered instead of the default glyph. */
|
|
21
|
+
children?: ReactNode;
|
|
22
|
+
/** Additional root class name. */
|
|
23
|
+
className?: string;
|
|
24
|
+
/** Semantic color used when checked. */
|
|
25
|
+
color?: SemanticColor;
|
|
26
|
+
/** Visual density of the control. */
|
|
27
|
+
density?: ElementDensity;
|
|
28
|
+
/** Supporting text displayed below the label. */
|
|
29
|
+
description?: string;
|
|
30
|
+
/** Text color override for the description. */
|
|
31
|
+
descriptionColor?: SurfaceColor;
|
|
32
|
+
/** Font applied to the description text. */
|
|
33
|
+
descriptionFont?: ElementFont;
|
|
34
|
+
/** Duration in milliseconds for the check or uncheck animation. */
|
|
35
|
+
duration?: number;
|
|
36
|
+
/** Required root class name for styling. */
|
|
37
|
+
elementClass: string;
|
|
38
|
+
/** Elevation level applied to the glyph. */
|
|
39
|
+
elevation?: ElementElevation;
|
|
40
|
+
/** Error message text. Overrides description when present. */
|
|
41
|
+
error?: string;
|
|
42
|
+
/** Enables filled visual style. */
|
|
43
|
+
filled?: boolean;
|
|
44
|
+
/** Focus color override. */
|
|
45
|
+
focusColor?: BorderColor;
|
|
46
|
+
/** Visual effects applied on focus. */
|
|
47
|
+
focusEffects?: ElementFocusEffect[];
|
|
48
|
+
/** Font applied to the label text. */
|
|
49
|
+
font?: ElementFont;
|
|
50
|
+
/** Visual effects applied on hover. */
|
|
51
|
+
hoverEffects?: ElementHoverEffect[];
|
|
52
|
+
/** Icon rendered in checked state. */
|
|
53
|
+
icon?: ReactNode;
|
|
54
|
+
/** DOM id. Auto-generated when not provided. */
|
|
55
|
+
id?: string;
|
|
56
|
+
/** Enables indeterminate (mixed) state. */
|
|
57
|
+
indeterminate?: boolean;
|
|
58
|
+
/** Icon rendered in indeterminate state. */
|
|
59
|
+
indeterminateIcon?: ReactNode;
|
|
60
|
+
/** Text label displayed next to the control. */
|
|
61
|
+
label?: string;
|
|
62
|
+
/** Text color override for the label. */
|
|
63
|
+
labelColor?: SurfaceColor;
|
|
64
|
+
/** Motion style applied to animated elements. */
|
|
65
|
+
motionStyle?: MotionStyle;
|
|
66
|
+
/** DOM name attribute. */
|
|
67
|
+
name?: string;
|
|
68
|
+
/** Change event handler. */
|
|
69
|
+
onChange?: React.ChangeEventHandler<HTMLInputElement>;
|
|
70
|
+
/** Visual effects applied while pressed. */
|
|
71
|
+
pressedEffects?: ElementPressedEffect[];
|
|
72
|
+
/** Marks the control as read-only without disabling focus. */
|
|
73
|
+
readOnly?: boolean;
|
|
74
|
+
/** Marks the control as required. Visual indicator only. */
|
|
75
|
+
required?: boolean;
|
|
76
|
+
/** Visual effects applied when selected. */
|
|
77
|
+
selectedEffects?: ElementSelectedEffect[];
|
|
78
|
+
/** Shape variant of the control. */
|
|
79
|
+
shape?: ElementShape;
|
|
80
|
+
/** Size of the control. */
|
|
81
|
+
size?: ElementSize;
|
|
82
|
+
/** Text color override for label and content. */
|
|
83
|
+
textColor?: SurfaceColor;
|
|
84
|
+
/** Placement of text relative to the control. */
|
|
85
|
+
textPlacement?: ElementTextPlacement;
|
|
86
|
+
/** Tooltip alignment relative to the control. */
|
|
87
|
+
tooltipAlign?: ElementAlign;
|
|
88
|
+
/** Touch and click visual effects. */
|
|
89
|
+
touchEffects?: ElementTouchEffect[];
|
|
90
|
+
/** Input type. */
|
|
91
|
+
type: 'radio' | 'checkbox';
|
|
92
|
+
/** Border style when unchecked. */
|
|
93
|
+
uncheckedBorder?: ElementOutline;
|
|
94
|
+
/** Border color when unchecked. */
|
|
95
|
+
uncheckedBorderColor?: BorderColor;
|
|
96
|
+
/** Semantic color used when unchecked. */
|
|
97
|
+
uncheckedColor?: SemanticColor;
|
|
98
|
+
/** Icon rendered when unchecked. */
|
|
99
|
+
uncheckedIcon?: ReactNode;
|
|
100
|
+
/** Controlled value for radio buttons. */
|
|
101
|
+
value?: string;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Low-level base component for checkbox and radio controls.
|
|
105
|
+
*
|
|
106
|
+
* Supports controlled and uncontrolled usage.
|
|
107
|
+
*
|
|
108
|
+
*
|
|
109
|
+
* @param props Component properties.
|
|
110
|
+
* @function
|
|
111
|
+
*
|
|
112
|
+
* @example
|
|
113
|
+
* <CheckboxBase label="Accept terms" />
|
|
114
|
+
*
|
|
115
|
+
* @example
|
|
116
|
+
* <CheckboxBase
|
|
117
|
+
* type="checkbox"
|
|
118
|
+
* label="Select all"
|
|
119
|
+
* indeterminate
|
|
120
|
+
* />
|
|
121
|
+
*
|
|
122
|
+
* @category Base components
|
|
123
|
+
*/
|
|
124
|
+
export declare const CheckboxBase: React.ForwardRefExoticComponent<CheckboxBaseProps & React.RefAttributes<HTMLInputElement>>;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { default as React, ReactNode } from 'react';
|
|
2
|
+
import { ElementElevation, ElementOutline, ElementShape, ElementSize } from '../../utils';
|
|
3
|
+
import { MotionAnimation, MotionStyle } from '../../types';
|
|
4
|
+
import { BorderColor, SurfaceColor } from '../../../utils/color';
|
|
5
|
+
export type DialogType = 'basic' | 'fullscreen' | 'dockRight' | 'dockLeft' | 'dockTop' | 'dockBottom';
|
|
6
|
+
export type DialogAnimation = 'auto' | 'none' | MotionAnimation;
|
|
7
|
+
export interface DialogProps {
|
|
8
|
+
open: boolean;
|
|
9
|
+
onClose?: () => void;
|
|
10
|
+
type?: DialogType;
|
|
11
|
+
color?: SurfaceColor;
|
|
12
|
+
elevation?: ElementElevation;
|
|
13
|
+
size?: ElementSize;
|
|
14
|
+
shape?: ElementShape;
|
|
15
|
+
border?: ElementOutline;
|
|
16
|
+
borderColor?: BorderColor;
|
|
17
|
+
animation?: DialogAnimation;
|
|
18
|
+
duration?: number;
|
|
19
|
+
disableBackdropClose?: boolean;
|
|
20
|
+
disableEscapeKey?: boolean;
|
|
21
|
+
children?: ReactNode;
|
|
22
|
+
className?: string;
|
|
23
|
+
motionStyle?: MotionStyle;
|
|
24
|
+
modal?: boolean;
|
|
25
|
+
title?: string;
|
|
26
|
+
actions?: ReactNode[];
|
|
27
|
+
icon?: ReactNode;
|
|
28
|
+
showCloseButton?: boolean;
|
|
29
|
+
showHandle?: boolean;
|
|
30
|
+
autoFocus?: boolean;
|
|
31
|
+
}
|
|
32
|
+
export declare const Dialog: {
|
|
33
|
+
({ open, onClose, type, color, elevation, shape, border, borderColor, size, animation, duration, disableBackdropClose, disableEscapeKey, children, className, motionStyle, modal, }: DialogProps): React.ReactPortal | null;
|
|
34
|
+
displayName: string;
|
|
35
|
+
};
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { ElementBorder, ElementDensity, ElementFont, ElementShape } from '../../utils';
|
|
3
|
+
import { BorderColor, SemanticColor, SurfaceColor } from '../../../utils/color';
|
|
4
|
+
type FieldVariant = 'filled' | 'outlined' | 'classic';
|
|
5
|
+
export interface FieldBaseProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'color' | 'children'> {
|
|
6
|
+
color?: SemanticColor;
|
|
7
|
+
/** Required root class name. */
|
|
8
|
+
elementClass: string;
|
|
9
|
+
/** Visual density of the button. */
|
|
10
|
+
density?: ElementDensity;
|
|
11
|
+
/** Text label for the field. */
|
|
12
|
+
label?: string;
|
|
13
|
+
labelFont?: ElementFont;
|
|
14
|
+
error?: string;
|
|
15
|
+
/** Supporting text displayed below control. */
|
|
16
|
+
description?: string;
|
|
17
|
+
/** Text color override for the description. */
|
|
18
|
+
descriptionColor?: SurfaceColor;
|
|
19
|
+
/** Font style applied to the description text. */
|
|
20
|
+
descriptionFont?: ElementFont;
|
|
21
|
+
variant?: FieldVariant;
|
|
22
|
+
outlined?: boolean;
|
|
23
|
+
filled?: boolean;
|
|
24
|
+
classic?: boolean;
|
|
25
|
+
fullWidth?: boolean;
|
|
26
|
+
/** Control shape variant. */
|
|
27
|
+
shape?: ElementShape;
|
|
28
|
+
/** Text color override for the label. */
|
|
29
|
+
labelColor?: SurfaceColor;
|
|
30
|
+
/** Text color override for the placeholder. */
|
|
31
|
+
placeholderColor?: SurfaceColor;
|
|
32
|
+
border?: ElementBorder;
|
|
33
|
+
borderColor?: BorderColor;
|
|
34
|
+
placeholder?: string;
|
|
35
|
+
leading?: React.ReactNode;
|
|
36
|
+
trailing?: React.ReactNode;
|
|
37
|
+
icon?: React.ReactNode;
|
|
38
|
+
endIcon?: React.ReactNode;
|
|
39
|
+
value?: string;
|
|
40
|
+
defaultValue?: string;
|
|
41
|
+
/** Font style applied to the label. */
|
|
42
|
+
font?: ElementFont;
|
|
43
|
+
placeholderFont?: ElementFont;
|
|
44
|
+
/** Marks the control as required (visual indicator only). */
|
|
45
|
+
required?: boolean;
|
|
46
|
+
/** Text color override for label and content. */
|
|
47
|
+
textColor?: SurfaceColor;
|
|
48
|
+
}
|
|
49
|
+
export declare const FieldBase: React.ForwardRefExoticComponent<FieldBaseProps & React.RefAttributes<HTMLInputElement>>;
|
|
50
|
+
export {};
|
|
@@ -0,0 +1,62 @@
|
|
|
1
|
+
import { default as React, HTMLAttributes, ReactNode } from 'react';
|
|
2
|
+
import { ElementBorder, ElementElevation, ElementFont, ElementShape } from '../../utils';
|
|
3
|
+
import { BorderColor, SurfaceColor } from '../../../utils/color';
|
|
4
|
+
/**
|
|
5
|
+
* Props for {@link InlineBase}.
|
|
6
|
+
*
|
|
7
|
+
* @remarks
|
|
8
|
+
* Defines visual and typographic styling for inline-level elements
|
|
9
|
+
* without imposing any layout behaviour.
|
|
10
|
+
*
|
|
11
|
+
* @category Inline
|
|
12
|
+
*/
|
|
13
|
+
export interface InlineBaseProps extends Omit<HTMLAttributes<HTMLElement>, 'color'> {
|
|
14
|
+
/** Custom HTML element/component. Default: `span`. */
|
|
15
|
+
component?: React.ElementType;
|
|
16
|
+
/** Font token controlling typography (size, weight, line-height). */
|
|
17
|
+
font?: ElementFont;
|
|
18
|
+
/** Surface background token. */
|
|
19
|
+
color?: SurfaceColor;
|
|
20
|
+
/** Elevation level (0–5). */
|
|
21
|
+
elevation?: ElementElevation;
|
|
22
|
+
/** Shape/border-radius token. */
|
|
23
|
+
shape?: ElementShape;
|
|
24
|
+
/** Border width (0–5). */
|
|
25
|
+
border?: ElementBorder;
|
|
26
|
+
/** Border color token. */
|
|
27
|
+
borderColor?: BorderColor;
|
|
28
|
+
/** Renders as `inline-block` instead of `inline`. */
|
|
29
|
+
inlineBlock?: boolean;
|
|
30
|
+
/** Semantic UUI element class (e.g. 'uui-text', 'uui-heading'). */
|
|
31
|
+
elementClass?: string;
|
|
32
|
+
/** Inline content. */
|
|
33
|
+
children?: ReactNode;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* `InlineBase` — core primitive for inline semantic components.
|
|
37
|
+
*
|
|
38
|
+
* Provides typography, color, border, shape and elevation styling
|
|
39
|
+
* for inline-level elements without introducing layout semantics.
|
|
40
|
+
*
|
|
41
|
+
* Intended as a foundation for components such as `Text`, `Heading`,
|
|
42
|
+
* `Label`, `Code`, or inline UI tokens.
|
|
43
|
+
*
|
|
44
|
+
* @category Inline
|
|
45
|
+
* @function
|
|
46
|
+
* @param props - Inline styling and typography props.
|
|
47
|
+
*
|
|
48
|
+
* @example
|
|
49
|
+
* ```tsx
|
|
50
|
+
* <InlineBase font="bodyMedium">
|
|
51
|
+
* Inline text
|
|
52
|
+
* </InlineBase>
|
|
53
|
+
* ```
|
|
54
|
+
*
|
|
55
|
+
* @example
|
|
56
|
+
* ```tsx
|
|
57
|
+
* <InlineBase component="h2" font="headlineSmall">
|
|
58
|
+
* Section title
|
|
59
|
+
* </InlineBase>
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export declare const InlineBase: React.ForwardRefExoticComponent<InlineBaseProps & React.RefAttributes<HTMLElement>>;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { ButtonBaseProps } from '../core';
|
|
2
|
+
/**
|
|
3
|
+
* Props for {@link Button}.
|
|
4
|
+
* Extends {@link ButtonBaseProps}.
|
|
5
|
+
*
|
|
6
|
+
* @category Button
|
|
7
|
+
*/
|
|
8
|
+
export type ButtonProps = Omit<ButtonBaseProps, 'elementClass'>;
|
|
9
|
+
/**
|
|
10
|
+
* Primary action button used to trigger user actions.
|
|
11
|
+
*
|
|
12
|
+
* Use for actions such as submit, confirm, save, or navigate within the application.
|
|
13
|
+
*
|
|
14
|
+
* @category Button
|
|
15
|
+
* @function
|
|
16
|
+
* @param props - All button props inherited from {@link ButtonBase}.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* <Button label="Save" filled />
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* <Button label="Cancel" />
|
|
23
|
+
*/
|
|
24
|
+
export declare const Button: import('react').ForwardRefExoticComponent<ButtonProps & import('react').RefAttributes<HTMLButtonElement>>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { HTMLProps } from 'react';
|
|
2
|
+
import { ElementAlign, ElementShape, ElementSize } from '../../utils/utils';
|
|
3
|
+
import { SemanticColor } from '../../utils/color';
|
|
4
|
+
export interface CardProps extends Omit<HTMLProps<HTMLSpanElement>, 'ref' | 'size'> {
|
|
5
|
+
value: string | number;
|
|
6
|
+
color?: SemanticColor;
|
|
7
|
+
position?: ElementAlign;
|
|
8
|
+
size?: ElementSize;
|
|
9
|
+
shape?: ElementShape;
|
|
10
|
+
raised?: boolean;
|
|
11
|
+
elevated?: boolean;
|
|
12
|
+
outlined?: boolean;
|
|
13
|
+
filled?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export declare const Card: import('react').ForwardRefExoticComponent<CardProps & import('react').RefAttributes<HTMLSpanElement>>;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { CheckboxBaseProps } from '../base/checkboxBase/checkboxBase';
|
|
2
|
+
/**
|
|
3
|
+
* Props for the Checkbox component.
|
|
4
|
+
*
|
|
5
|
+
* Extends {@link CheckboxBaseProps} with preset defaults
|
|
6
|
+
* for checkbox-specific behavior.
|
|
7
|
+
*
|
|
8
|
+
* @category Checkbox
|
|
9
|
+
*/
|
|
10
|
+
export type CheckboxProps = Omit<CheckboxBaseProps, 'type' | 'elementClass'>;
|
|
11
|
+
/**
|
|
12
|
+
* Checkbox component built on top of {@link CheckboxBase}.
|
|
13
|
+
*
|
|
14
|
+
* Provides default checkbox icons, filled style,
|
|
15
|
+
* and sensible border defaults.
|
|
16
|
+
*
|
|
17
|
+
* @param props Component properties.
|
|
18
|
+
* @function
|
|
19
|
+
*
|
|
20
|
+
* @example
|
|
21
|
+
* <Checkbox label="Accept terms" />
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* <Checkbox
|
|
25
|
+
* label="Select all"
|
|
26
|
+
* indeterminate
|
|
27
|
+
* />
|
|
28
|
+
*
|
|
29
|
+
* @category Checkbox
|
|
30
|
+
*/
|
|
31
|
+
export declare const Checkbox: import('react').ForwardRefExoticComponent<CheckboxProps & import('react').RefAttributes<HTMLInputElement>>;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ButtonBaseProps } from '../core';
|
|
2
|
+
export type ChipType = 'assist' | 'filter' | 'input' | 'suggestion';
|
|
3
|
+
export interface ChipProps extends Omit<ButtonBaseProps, 'elementClass' | 'iconClass' | 'labelClass'> {
|
|
4
|
+
/** Defines the visual style and behavior of the chip. @default 'assist' */
|
|
5
|
+
chipType?: ChipType;
|
|
6
|
+
}
|
|
7
|
+
export declare const Chip: import('react').ForwardRefExoticComponent<ChipProps & import('react').RefAttributes<HTMLButtonElement>>;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { BoxBaseProps } from '../core';
|
|
2
|
+
/**
|
|
3
|
+
* Props for {@link Content}.
|
|
4
|
+
* Extends {@link BoxBaseProps} except for `elementClass` and `component`.
|
|
5
|
+
*
|
|
6
|
+
* @category Box
|
|
7
|
+
*/
|
|
8
|
+
export type ContentProps = Omit<BoxBaseProps, 'elementClass' | 'component'>;
|
|
9
|
+
/**
|
|
10
|
+
* Layout wrapper for the main article content.
|
|
11
|
+
*
|
|
12
|
+
* Renders a native div and forwards all layout props to {@link BoxBase}.
|
|
13
|
+
* Intended as a structural container for Sections, typically paired with Aside.
|
|
14
|
+
*
|
|
15
|
+
* @function
|
|
16
|
+
* @example
|
|
17
|
+
* <Article elevation={1} shape="rounded">
|
|
18
|
+
* <Content>
|
|
19
|
+
* <Section />
|
|
20
|
+
* <Section />
|
|
21
|
+
* <Section />
|
|
22
|
+
* </Content>
|
|
23
|
+
* <Aside />
|
|
24
|
+
* </Article>
|
|
25
|
+
*
|
|
26
|
+
* @category Box
|
|
27
|
+
*/
|
|
28
|
+
export declare const Content: import('react').ForwardRefExoticComponent<ContentProps & import('react').RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { ElementOutline } from '../utils';
|
|
3
|
+
import { BorderColor, SurfaceColor } from '../../utils/color';
|
|
4
|
+
export interface DialogActionsProps {
|
|
5
|
+
children?: ReactNode;
|
|
6
|
+
className?: string;
|
|
7
|
+
color?: SurfaceColor;
|
|
8
|
+
borderTop?: boolean;
|
|
9
|
+
borderTopWidth?: ElementOutline;
|
|
10
|
+
borderColor?: BorderColor;
|
|
11
|
+
}
|
|
12
|
+
export declare const DialogActions: {
|
|
13
|
+
({ children, className, color, borderTop, borderTopWidth, borderColor, }: DialogActionsProps): import("react/jsx-runtime").JSX.Element | null;
|
|
14
|
+
displayName: string;
|
|
15
|
+
};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
export interface DialogContentProps {
|
|
3
|
+
children?: ReactNode;
|
|
4
|
+
className?: string;
|
|
5
|
+
}
|
|
6
|
+
export declare const DialogContent: {
|
|
7
|
+
({ children, className }: DialogContentProps): import("react/jsx-runtime").JSX.Element | null;
|
|
8
|
+
displayName: string;
|
|
9
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { ElementFont } from '../utils';
|
|
3
|
+
import { SurfaceColor } from '../../utils/color';
|
|
4
|
+
export interface DialogTitleProps {
|
|
5
|
+
icon?: ReactNode;
|
|
6
|
+
label?: string;
|
|
7
|
+
children?: ReactNode;
|
|
8
|
+
className?: string;
|
|
9
|
+
font?: ElementFont;
|
|
10
|
+
color?: SurfaceColor;
|
|
11
|
+
textColor?: SurfaceColor;
|
|
12
|
+
}
|
|
13
|
+
export declare const DialogTitle: {
|
|
14
|
+
({ icon, label, children, className, font }: DialogTitleProps): import("react/jsx-runtime").JSX.Element | null;
|
|
15
|
+
displayName: string;
|
|
16
|
+
};
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { BoxBaseProps } from '../core';
|
|
2
|
+
/**
|
|
3
|
+
* Props for the {@link Div} component.
|
|
4
|
+
*
|
|
5
|
+
* Extends {@link BoxBaseProps} with all layout-related props removed.
|
|
6
|
+
* Intended as a neutral block-level wrapper.
|
|
7
|
+
*
|
|
8
|
+
* @category Div
|
|
9
|
+
*/
|
|
10
|
+
export type DivProps = Omit<BoxBaseProps, 'type' | 'direction' | 'flow' | 'cols' | 'rows' | 'wrap'>;
|
|
11
|
+
/**
|
|
12
|
+
* Generic block-level container.
|
|
13
|
+
*
|
|
14
|
+
* Renders a plain block element without imposing layout semantics.
|
|
15
|
+
* Use this component when you need a structural wrapper for styling,
|
|
16
|
+
* spacing, elevation, or surface color — but not layout.
|
|
17
|
+
*
|
|
18
|
+
* Built on top of {@link BoxBase} with `type="block"`.
|
|
19
|
+
*
|
|
20
|
+
* @category Div
|
|
21
|
+
* @function
|
|
22
|
+
* @param props - Block-level props inherited from {@link BoxBase}.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* <Div p={16} elevation={1}>
|
|
26
|
+
* <Content />
|
|
27
|
+
* </Div>
|
|
28
|
+
*/
|
|
29
|
+
export declare const Div: import('react').ForwardRefExoticComponent<DivProps & import('react').RefAttributes<HTMLDivElement>>;
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import { HTMLProps } from 'react';
|
|
2
|
+
import { BorderColor, ElementBorder, ElementElevation, ElementInset, ElementShape } from '../core';
|
|
3
|
+
import { IS_DIVIDER } from './divider.guards';
|
|
4
|
+
/**
|
|
5
|
+
* Props for the {@link Divider} component.
|
|
6
|
+
*
|
|
7
|
+
* @category Divider
|
|
8
|
+
*/
|
|
9
|
+
export interface DividerProps extends Omit<HTMLProps<HTMLDivElement>, 'ref'> {
|
|
10
|
+
/** Line color token used for the divider. */
|
|
11
|
+
borderColor?: BorderColor;
|
|
12
|
+
/** Alias for `borderColor`. */
|
|
13
|
+
color?: BorderColor;
|
|
14
|
+
/** Divider thickness (0–4). Default: 1 */
|
|
15
|
+
border?: ElementBorder;
|
|
16
|
+
/** If true, renders divider vertically. */
|
|
17
|
+
vertical?: boolean;
|
|
18
|
+
/** Inset alignment mode (`left`, `right`, `top`, `bottom`, `middle`). */
|
|
19
|
+
inset?: ElementInset;
|
|
20
|
+
/** Offset applied for inset margins. */
|
|
21
|
+
insetSize?: number;
|
|
22
|
+
/** Spacing around the divider in px. Default: 8. */
|
|
23
|
+
spacing?: number;
|
|
24
|
+
/** Opacity preset applied to the divider. */
|
|
25
|
+
variant?: 'subtle' | 'medium' | 'strong';
|
|
26
|
+
/** Elevation level applied to the divider. */
|
|
27
|
+
elevation?: ElementElevation;
|
|
28
|
+
/** Corner shape applied to the divider. */
|
|
29
|
+
shape?: ElementShape;
|
|
30
|
+
/** Height of a vertical divider in inline and flex-column layouts. */
|
|
31
|
+
height?: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* **Divider** - thin line used to separate content.
|
|
35
|
+
*
|
|
36
|
+
* Supports horizontal and vertical orientation, thickness, spacing,
|
|
37
|
+
* inset offsets, color tokens, opacity presets, elevation and corner shapes
|
|
38
|
+
*
|
|
39
|
+
* @param props
|
|
40
|
+
* @function
|
|
41
|
+
* @example
|
|
42
|
+
* ```tsx
|
|
43
|
+
* <Divider spacing={12} variant="subtle" />
|
|
44
|
+
* ```
|
|
45
|
+
*
|
|
46
|
+
* @example
|
|
47
|
+
* ```tsx
|
|
48
|
+
* <Divider vertical inset="middle" insetWidth={24} />
|
|
49
|
+
* ```
|
|
50
|
+
*
|
|
51
|
+
* @category Divider
|
|
52
|
+
*/
|
|
53
|
+
export declare const Divider: {
|
|
54
|
+
(props: DividerProps): import("react/jsx-runtime").JSX.Element;
|
|
55
|
+
/**
|
|
56
|
+
* Display name used by React DevTools.
|
|
57
|
+
*
|
|
58
|
+
* @internal
|
|
59
|
+
*/
|
|
60
|
+
displayName: string;
|
|
61
|
+
/**
|
|
62
|
+
* Marks this component as a Divider for runtime type guards.
|
|
63
|
+
*
|
|
64
|
+
* Used internally to identify Divider elements via a shared Symbol.
|
|
65
|
+
* Not part of the public API.
|
|
66
|
+
*
|
|
67
|
+
* @internal
|
|
68
|
+
*/
|
|
69
|
+
[IS_DIVIDER]: boolean;
|
|
70
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { DividerProps } from '../core';
|
|
3
|
+
export declare const IS_DIVIDER: unique symbol;
|
|
4
|
+
/**
|
|
5
|
+
* Type guard that checks whether a React node is a Divider component.
|
|
6
|
+
*
|
|
7
|
+
* Identifies Divider elements by the presence of the internal
|
|
8
|
+
* {@link IS_DIVIDER} symbol marker on the component type.
|
|
9
|
+
*
|
|
10
|
+
* @param el - React node to test.
|
|
11
|
+
* @returns `true` if the node is a Divider element.
|
|
12
|
+
*
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
export declare function isDivider(el: React.ReactNode): el is React.ReactElement<DividerProps>;
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ReactElement } from 'react';
|
|
2
|
+
import { ButtonBaseProps } from '../core';
|
|
3
|
+
/**
|
|
4
|
+
* Props for {@link Fab}.
|
|
5
|
+
* Extends {@link ButtonBaseProps}.
|
|
6
|
+
*
|
|
7
|
+
* @category Fab
|
|
8
|
+
*/
|
|
9
|
+
export interface FabButtonProps extends Omit<ButtonBaseProps, 'elementClass'> {
|
|
10
|
+
/** Icon rendered inside the FAB. */
|
|
11
|
+
icon: ReactElement;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Floating action button used for primary contextual actions.
|
|
15
|
+
*
|
|
16
|
+
* Use to highlight the main action on a screen, such as create, add,
|
|
17
|
+
* or compose. Supports regular and extended variants (with label).
|
|
18
|
+
*
|
|
19
|
+
* @category Fab
|
|
20
|
+
* @function
|
|
21
|
+
* @param props - All FAB props inherited from {@link ButtonBase}.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* <Fab icon={<AddIcon />} />
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* <Fab icon={<AddIcon />} label="Create" />
|
|
28
|
+
*/
|
|
29
|
+
export declare const Fab: import('react').ForwardRefExoticComponent<FabButtonProps & import('react').RefAttributes<HTMLButtonElement>>;
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { default as React } from 'react';
|
|
2
|
+
import { BoxBaseProps, ElementFont, SurfaceColor } from '../core';
|
|
3
|
+
/**
|
|
4
|
+
* Props for {@link Fieldset}.
|
|
5
|
+
* Extends {@link BoxBaseProps} except for `elementClass` and `component`.
|
|
6
|
+
*
|
|
7
|
+
* @category Fieldset
|
|
8
|
+
*/
|
|
9
|
+
export interface FieldsetProps extends Omit<BoxBaseProps, 'component' | 'elementClass'> {
|
|
10
|
+
/** Supporting text displayed below the fieldset content. */
|
|
11
|
+
description?: string;
|
|
12
|
+
/** Text color of the description. */
|
|
13
|
+
descriptionColor?: SurfaceColor;
|
|
14
|
+
/** Font token applied to the description text. */
|
|
15
|
+
descriptionFont?: ElementFont;
|
|
16
|
+
/** Disables all form controls inside the fieldset. */
|
|
17
|
+
disabled?: boolean;
|
|
18
|
+
/** Error message displayed below the fieldset content. Overrides `description`. */
|
|
19
|
+
error?: string;
|
|
20
|
+
/** Font token applied to the legend text. */
|
|
21
|
+
font?: ElementFont;
|
|
22
|
+
/** Alias for `legend`. Used as fallback when `legend` is not provided. */
|
|
23
|
+
label?: string;
|
|
24
|
+
/** Text rendered inside the native `<legend>` element. */
|
|
25
|
+
legend?: string;
|
|
26
|
+
/** Marks the fieldset as required. Adds a required indicator to the legend. */
|
|
27
|
+
required?: boolean;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Semantic wrapper for grouping related form controls.
|
|
31
|
+
*
|
|
32
|
+
* Renders a native fieldset with an optional legend.
|
|
33
|
+
* Used to group checkboxes or radio buttons.
|
|
34
|
+
*
|
|
35
|
+
* @function
|
|
36
|
+
* @example
|
|
37
|
+
* <Fieldset legend="Fieldset">
|
|
38
|
+
* <Checkbox>
|
|
39
|
+
* <Checkbox>
|
|
40
|
+
* <Checkbox>
|
|
41
|
+
* </Fieldset>
|
|
42
|
+
*
|
|
43
|
+
* @category Fieldset
|
|
44
|
+
*/
|
|
45
|
+
export declare const Fieldset: React.ForwardRefExoticComponent<FieldsetProps & React.RefAttributes<HTMLFieldSetElement>>;
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { BoxBaseProps } from '../core';
|
|
2
|
+
/**
|
|
3
|
+
* Props for the {@link Flex} component.
|
|
4
|
+
*
|
|
5
|
+
* Extends {@link BoxBaseProps} with grid-related props removed.
|
|
6
|
+
* Intended for flexbox-only layouts.
|
|
7
|
+
*
|
|
8
|
+
* @category Flex
|
|
9
|
+
*/
|
|
10
|
+
export type FlexProps = Omit<BoxBaseProps, 'elementClass' | 'type' | 'cols' | 'rows' | 'flow'>;
|
|
11
|
+
/**
|
|
12
|
+
* Flex layout container.
|
|
13
|
+
*
|
|
14
|
+
* Renders a flexbox-based layout with a horizontal direction by default.
|
|
15
|
+
* Use this component whenever you want to explicitly work with flexbox
|
|
16
|
+
* semantics instead of relying on generic containers.
|
|
17
|
+
*
|
|
18
|
+
* Built on top of {@link BoxBase} and exposes only flex-relevant layout props.
|
|
19
|
+
*
|
|
20
|
+
* @category Flex
|
|
21
|
+
* @function
|
|
22
|
+
* @param props - Flex layout props inherited from {@link BoxBase}.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* <Flex gap={12}>
|
|
26
|
+
* <Item />
|
|
27
|
+
* <Item />
|
|
28
|
+
* </Flex>
|
|
29
|
+
*
|
|
30
|
+
* @example
|
|
31
|
+
* <Flex direction="col" gap={8}>
|
|
32
|
+
* <Header />
|
|
33
|
+
* <Content />
|
|
34
|
+
* </Flex>
|
|
35
|
+
*/
|
|
36
|
+
export declare const Flex: import('react').ForwardRefExoticComponent<FlexProps & import('react').RefAttributes<HTMLDivElement>>;
|