@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.
Files changed (83) hide show
  1. package/LICENSE +150 -0
  2. package/README.md +37 -0
  3. package/TRADEMARK.md +10 -0
  4. package/components/article/article.d.ts +25 -0
  5. package/components/aside/aside.d.ts +27 -0
  6. package/components/avatar/avatar.d.ts +35 -0
  7. package/components/badge/badge.d.ts +57 -0
  8. package/components/base/boxBase/boxBase.d.ts +126 -0
  9. package/components/base/buttonBase/buttonBase.d.ts +126 -0
  10. package/components/base/checkboxBase/checkboxBase.d.ts +124 -0
  11. package/components/base/dialogBase/dialog.d.ts +35 -0
  12. package/components/base/fieldBase/fieldBase.d.ts +50 -0
  13. package/components/base/inlineBase/inlineBase.d.ts +62 -0
  14. package/components/button/button.d.ts +24 -0
  15. package/components/card/card.d.ts +15 -0
  16. package/components/checkbox/checkbox.d.ts +31 -0
  17. package/components/chip/chip.d.ts +7 -0
  18. package/components/content/content.d.ts +28 -0
  19. package/components/dateInput/dateInput.d.ts +2 -0
  20. package/components/dateTimeInput/dateTimeInput.d.ts +2 -0
  21. package/components/dialog/dialogActions.d.ts +15 -0
  22. package/components/dialog/dialogContent.d.ts +9 -0
  23. package/components/dialog/dialogTitle.d.ts +16 -0
  24. package/components/div/div.d.ts +29 -0
  25. package/components/divider/divider.d.ts +70 -0
  26. package/components/divider/divider.guards.d.ts +15 -0
  27. package/components/emailInput/emailInput.d.ts +2 -0
  28. package/components/fab/fab.d.ts +29 -0
  29. package/components/fieldset/fieldset.d.ts +45 -0
  30. package/components/flex/flex.d.ts +36 -0
  31. package/components/footer/footer.d.ts +27 -0
  32. package/components/grid/grid.d.ts +38 -0
  33. package/components/header/header.d.ts +27 -0
  34. package/components/iconButton/iconButton.d.ts +27 -0
  35. package/components/listItem/listItem.d.ts +179 -0
  36. package/components/listItem/listItem.guards.d.ts +15 -0
  37. package/components/main/main.d.ts +27 -0
  38. package/components/menu/menu.d.ts +177 -0
  39. package/components/menu/menu.guards.d.ts +15 -0
  40. package/components/menuItem/menuItem.d.ts +179 -0
  41. package/components/menuItem/menuItem.guards.d.ts +15 -0
  42. package/components/nav/nav.d.ts +27 -0
  43. package/components/numberInput/numberInput.d.ts +2 -0
  44. package/components/option/option.d.ts +6 -0
  45. package/components/option/option.guards.d.ts +16 -0
  46. package/components/radio/radio.d.ts +31 -0
  47. package/components/radiogroup/radioGroup.d.ts +47 -0
  48. package/components/section/section.d.ts +27 -0
  49. package/components/select/select.d.ts +32 -0
  50. package/components/spinner/spinner.d.ts +7 -0
  51. package/components/switch/switch.d.ts +102 -0
  52. package/components/telInput/telInput.d.ts +2 -0
  53. package/components/textField/textField.d.ts +9 -0
  54. package/components/themeProvider/themeProvider.d.ts +54 -0
  55. package/components/timeInput/timeInput.d.ts +2 -0
  56. package/components/toggleButton/toggleButton.d.ts +6 -0
  57. package/components/tooltip/tooltip.d.ts +8 -0
  58. package/components/urlInput/urlInput.d.ts +2 -0
  59. package/context/fieldsetContext.d.ts +22 -0
  60. package/context/radioGroupContext.d.ts +28 -0
  61. package/context/themeContext.d.ts +61 -0
  62. package/hooks/useAnimate.d.ts +55 -0
  63. package/hooks/useClickOutside.d.ts +36 -0
  64. package/hooks/useEscapeHandler.d.ts +1 -0
  65. package/hooks/useFocusState.d.ts +16 -0
  66. package/hooks/useFocusVisible.d.ts +20 -0
  67. package/hooks/useTheme.d.ts +12 -0
  68. package/index.css +1 -0
  69. package/index.d.ts +53 -0
  70. package/index.mjs +3300 -0
  71. package/internal/inlineTooltip/inlineTooltip.d.ts +11 -0
  72. package/internal/inlineTooltip/inlineTooltip2.d.ts +10 -0
  73. package/internal/inlineTooltip/inlineTooltipManager.d.ts +12 -0
  74. package/package.json +38 -0
  75. package/types/index.d.ts +2 -0
  76. package/types/motion.d.ts +17 -0
  77. package/types/theme.d.ts +246 -0
  78. package/utils/calculateFloatingPosition.d.ts +68 -0
  79. package/utils/color.d.ts +415 -0
  80. package/utils/generateMaterialColors.d.ts +31 -0
  81. package/utils/generateSchemes.d.ts +32 -0
  82. package/utils/inputhMethod.d.ts +17 -0
  83. 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,2 @@
1
+ import { FieldBaseProps } from '../base/fieldBase/fieldBase';
2
+ export declare const DateInput: import('react').ForwardRefExoticComponent<FieldBaseProps & import('react').RefAttributes<HTMLInputElement>>;
@@ -0,0 +1,2 @@
1
+ import { FieldBaseProps } from '../base/fieldBase/fieldBase';
2
+ export declare const DateTimeInput: import('react').ForwardRefExoticComponent<FieldBaseProps & import('react').RefAttributes<HTMLInputElement>>;
@@ -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,2 @@
1
+ import { FieldBaseProps } from '../base/fieldBase/fieldBase';
2
+ export declare const EmailInput: import('react').ForwardRefExoticComponent<FieldBaseProps & import('react').RefAttributes<HTMLInputElement>>;
@@ -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>>;