@mystaline/mysta-lib 1.0.0-alpha.10

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 (43) hide show
  1. package/build-entry.d.ts +4 -0
  2. package/components/button/Button.d.ts +119 -0
  3. package/components/card/Card.d.ts +127 -0
  4. package/components/checkbox/Checkbox.d.ts +81 -0
  5. package/components/dialog/Dialog.d.ts +50 -0
  6. package/components/dialogform/DialogForm.d.ts +26 -0
  7. package/components/fieldwrapper/FieldWrapper.d.ts +53 -0
  8. package/components/form/Form.d.ts +98 -0
  9. package/components/icon/Icon.d.ts +52 -0
  10. package/components/index.d.ts +36 -0
  11. package/components/inputemail/InputEmail.d.ts +17 -0
  12. package/components/inputnumber/InputNumber.d.ts +18 -0
  13. package/components/inputpassword/InputPassword.d.ts +18 -0
  14. package/components/inputtext/InputText.d.ts +17 -0
  15. package/components/kanbanboard/KanbanBoard.d.ts +20 -0
  16. package/components/kanbancolumn/KanbanColumn.d.ts +32 -0
  17. package/components/popover/Popover.d.ts +29 -0
  18. package/components/private/BaseInput.d.ts +113 -0
  19. package/components/radiobutton/RadioButton.d.ts +65 -0
  20. package/components/separator/Separator.d.ts +16 -0
  21. package/components/slot/Slot.d.ts +23 -0
  22. package/components/toggleswitch/ToggleSwitch.d.ts +64 -0
  23. package/components/tooltip/Tooltip.d.ts +26 -0
  24. package/context/FormContext.d.ts +12 -0
  25. package/context/KanbanContext.d.ts +3 -0
  26. package/context/LibContext.d.ts +16 -0
  27. package/context/index.d.ts +3 -0
  28. package/hooks/index.d.ts +4 -0
  29. package/hooks/useComponentPreset.d.ts +5 -0
  30. package/hooks/useEffectiveControl.d.ts +2 -0
  31. package/hooks/useEffectiveRegister.d.ts +2 -0
  32. package/hooks/useValidator.d.ts +22 -0
  33. package/index.d.ts +2 -0
  34. package/main.d.ts +2 -0
  35. package/mysta-lib.es.js +9516 -0
  36. package/mysta-lib.system.js +80 -0
  37. package/package.json +15 -0
  38. package/style.css +1 -0
  39. package/types/index.d.ts +1 -0
  40. package/types/internalFields.type.d.ts +4 -0
  41. package/types/kanban.type.d.ts +18 -0
  42. package/utils/getSeverity.d.ts +9 -0
  43. package/utils/index.d.ts +4 -0
@@ -0,0 +1,4 @@
1
+ export * from './utils';
2
+ export * from './context';
3
+ export * from './hooks';
4
+ export * from './components';
@@ -0,0 +1,119 @@
1
+ import { FC } from 'react';
2
+ import { Severities } from '../../utils';
3
+ import { Icons } from '../icon/Icon.d';
4
+
5
+ /**
6
+ * Props for the PrimaryButton component.
7
+ *
8
+ * @description Defines the props for the PrimaryButton, including visual customization, loading state, icon support, and click handling.
9
+ */
10
+ export interface ButtonProps {
11
+ /**
12
+ * Height of the button (e.g., px, rem, %, etc.)
13
+ * Can be specified as a number (pixels) or string (e.g., '50px', '10rem').
14
+ *
15
+ * @default '26px'
16
+ */
17
+ height?: number | string;
18
+
19
+ /**
20
+ * Width of the button (e.g., px, rem, %, etc.)
21
+ * Can be specified as a number (pixels) or string (e.g., '100px', '50%').
22
+ *
23
+ * @default 'max-content'
24
+ */
25
+ width?: number | string;
26
+
27
+ /**
28
+ * Severity level for styling the button (e.g., "error", "warning", "success").
29
+ * Determines the color and style applied to the button.
30
+ *
31
+ * @default 'primary'
32
+ */
33
+ severity?: Severities;
34
+
35
+ /**
36
+ * If true, displays a loading spinner instead of the icon or label.
37
+ * Useful when the button is performing an asynchronous operation.
38
+ *
39
+ * @default false
40
+ */
41
+ loading?: boolean;
42
+
43
+ /**
44
+ * If true, applies an outlined style (typically a button with just a border).
45
+ *
46
+ * @default false
47
+ */
48
+ outlined?: boolean;
49
+
50
+ /**
51
+ * If true, applies a text-only style (no background, only text).
52
+ *
53
+ * @default false
54
+ */
55
+ text?: boolean;
56
+
57
+ /**
58
+ * If true, disables the button, preventing user interaction.
59
+ *
60
+ * @default false
61
+ */
62
+ disabled?: boolean;
63
+
64
+ /**
65
+ * If true, adds a shadow to indicate elevation (e.g., raised effect).
66
+ *
67
+ * @default false
68
+ */
69
+ raised?: boolean | undefined;
70
+
71
+ /**
72
+ * If true, applies a circular border radius to the button.
73
+ *
74
+ * @default false
75
+ */
76
+ rounded?: boolean | undefined;
77
+
78
+ /**
79
+ * Icon to display inside the button.
80
+ * Should be a valid `Icons` value from the icon library.
81
+ *
82
+ * @default undefined
83
+ */
84
+ icon?: Icons;
85
+
86
+ /**
87
+ * Text label to display inside the button.
88
+ * Can be used alongside or instead of the icon.
89
+ *
90
+ * @default undefined
91
+ */
92
+ label?: string;
93
+
94
+ /**
95
+ * Click handler for the button.
96
+ * Called when the button is clicked.
97
+ *
98
+ * @default undefined
99
+ */
100
+ onClick?: () => void;
101
+
102
+ /**
103
+ * Specifies the type of the button.
104
+ * - 'button': A generic button that does not submit a form.
105
+ * - 'submit': A button that submits the form.
106
+ * - 'reset': A button that resets the form fields.
107
+ *
108
+ * @default 'button'
109
+ */
110
+ type?: 'button' | 'submit' | 'reset';
111
+ }
112
+
113
+ /**
114
+ * Primary button component with loading, severity, and preset support.
115
+ *
116
+ * @component
117
+ * @description Renders a customizable button with support for loading states, severity levels, icons, and text.
118
+ */
119
+ export const Button: FC<ButtonProps>;
@@ -0,0 +1,127 @@
1
+ import { Severities } from '../../utils';
2
+ import { FC, HTMLAttributes, DragEvent } from 'react';
3
+ import { SeparatorProps } from '../separator/Separator.d';
4
+ import { Icons } from '../icon/Icon.d';
5
+
6
+ export interface KanbanDropEvent {
7
+ originalEvent: DragEvent<HTMLDivElement>;
8
+ destinationId?: string;
9
+ destinationGroupId?: string;
10
+ }
11
+
12
+ export interface KanbanDragStartEvent {
13
+ originalEvent: DragEvent<HTMLDivElement>;
14
+ draggedId?: string;
15
+ draggedGroupId?: string;
16
+ }
17
+
18
+ export interface CardData {
19
+ originalEvent: MouseEvent;
20
+ cardId?: string;
21
+ groupId?: string;
22
+ }
23
+
24
+ /**
25
+ * A single entry in a card's context menu, rendered in a popover.
26
+ */
27
+ export interface CardPopoverMenu extends HTMLAttributes<HTMLSpanElement> {
28
+ /** Identifier of the icon to display for this menu item */
29
+ icon: Icons;
30
+ /** Visual severity level (affects icon color/style) */
31
+ severity?: Severities;
32
+ /** Action on click */
33
+ command?: (e: CardData) => void;
34
+ }
35
+
36
+ /**
37
+ * Base props shared by all Card modes.
38
+ */
39
+ interface BaseCardProps
40
+ extends Omit<
41
+ HTMLAttributes<HTMLDivElement>,
42
+ 'content' | 'children' | 'onDrop' | 'onDragStart'
43
+ >,
44
+ CardSeparatorProps {
45
+ /** Optional header text displayed at the top */
46
+ header?: string;
47
+ /** Main body text of the card */
48
+ content?: string;
49
+ /** Optional footer text displayed at the bottom */
50
+ footer?: string;
51
+
52
+ /**
53
+ * Unique identifier for the card element.
54
+ *
55
+ * If not provided, a UUID v4 will be generated internally. This can also be
56
+ * set to your own unique ID or an existing ID from backend data (e.g. a database ObjectID) to
57
+ * maintain consistency between server and client.
58
+ */
59
+ id?: string;
60
+ clickable?: boolean;
61
+
62
+ severity?: Severities;
63
+
64
+ /**
65
+ * @default true
66
+ */
67
+ useSeparator?: boolean;
68
+
69
+ slots?: Record<keyof CardSlots, JSX.Element>;
70
+
71
+ size?:
72
+ | 'xs'
73
+ | 'sm'
74
+ | 'md'
75
+ | 'lg'
76
+ | 'xl'
77
+ | '2xl'
78
+ | '3xl'
79
+ | '4xl'
80
+ | '5xl'
81
+ | '6xl'
82
+ | '7xl'
83
+ | 'full';
84
+ }
85
+
86
+ interface CardKanbanProps extends BaseCardProps {
87
+ onDrop?: (e: KanbanDropEvent) => void;
88
+ onDragStart?: (e: KanbanDragStartEvent) => void;
89
+
90
+ mode?: 'kanban';
91
+ menus?: CardPopoverMenu[];
92
+
93
+ /**
94
+ * Identifier used to associate this card with a specific group or column.
95
+ *
96
+ * This is particularly useful in Kanban-style layouts where cards are categorized
97
+ * into different columns or swimlanes. The `groupId` helps distinguish the logical
98
+ * grouping and can be used to sort, filter, or control drag-and-drop behavior.
99
+ *
100
+ * Example values might include a column ID like 'todo', 'in-progress', or 'done'.
101
+ */
102
+ groupId?: string;
103
+ }
104
+
105
+ interface CardContainerProps extends BaseCardProps {
106
+ mode?: 'container';
107
+ }
108
+
109
+ export type CardProps = CardKanbanProps | CardContainerProps;
110
+
111
+ export interface CardSlots {
112
+ header?: JSX.Element;
113
+ content?: JSX.Element;
114
+ footer?: JSX.Element;
115
+ }
116
+
117
+ export interface CardSeparatorProps {
118
+ orientation?: SeparatorProps['orientation'];
119
+ decorative?: SeparatorProps['decorative'];
120
+ }
121
+
122
+ /**
123
+ * Card component for custom section.
124
+ *
125
+ * @component
126
+ */
127
+ export const Card: FC<CardProps>;
@@ -0,0 +1,81 @@
1
+ import { FC } from 'react';
2
+
3
+ export type CheckboxValue =
4
+ | (string | number | Record<string, unknown>)[]
5
+ | boolean
6
+ | null;
7
+
8
+ /**
9
+ * Props for the Checkbox component.
10
+ *
11
+ * @description This defines the props for the Checkbox component including its field name, label, and event handlers.
12
+ */
13
+ export interface CheckboxProps extends CheckboxEvent, FieldValidation {
14
+ /** The name of the field used for form submission */
15
+ fieldName?: string;
16
+
17
+ /** The label text to display above the input */
18
+ label?: string;
19
+
20
+ /** Whether the input is disabled */
21
+ disabled?: boolean;
22
+
23
+ /** The value for this checkbox, switch mode to value to use this props */
24
+ optionValue?: string | number | Record<string, unknown>;
25
+
26
+ mode?: 'value' | 'binary' | 'tristate';
27
+
28
+ value?: CheckboxValue;
29
+
30
+ /** Additional information to display beside the input, typically as a tooltip */
31
+ info?: string;
32
+
33
+ /**
34
+ * To hide mark asterisk to required field
35
+ *
36
+ * @default false
37
+ */
38
+ hideRequiredMark?: boolean;
39
+
40
+ /**
41
+ * Input role
42
+ *
43
+ * @default checkbox
44
+ */
45
+ role?: 'toggleswitch' | 'checkbox';
46
+ }
47
+
48
+ /**
49
+ * Validation rules for an input field.
50
+ *
51
+ * @description Defines various validation rules for the field, including required fields, min/max length, and custom validation.
52
+ */
53
+ export interface FieldValidation {
54
+ /** Whether the input is required */
55
+ required?: boolean;
56
+
57
+ /** Custom validation function to validate the input value */
58
+ customValidation?: (
59
+ e: (string | number | Record<string, unknown>)[] | boolean | null,
60
+ ) => boolean;
61
+
62
+ customMessage?: string;
63
+ }
64
+
65
+ /**
66
+ * Event handlers for the Checkbox component.
67
+ *
68
+ * @description Defines event handler functions related to changes and input in the Checkbox component.
69
+ */
70
+ export interface CheckboxEvent {
71
+ /** Called when the input value changes */
72
+ onChange?: (value: CheckboxValue) => void;
73
+ }
74
+
75
+ /**
76
+ * Checkbox component for form input with built-in validation and custom event handling.
77
+ *
78
+ * @component
79
+ * @description Renders an input field with support for labels, validation, dynamic event handling, and optional styling.
80
+ */
81
+ export const Checkbox: FC<CheckboxProps>;
@@ -0,0 +1,50 @@
1
+ import { ReactNode } from 'react';
2
+
3
+ export interface DialogProps {
4
+ /**
5
+ * Dialog children
6
+ */
7
+ children?: ReactNode;
8
+
9
+ visible?: boolean;
10
+
11
+ useCloseIcon?: boolean;
12
+ closeOnEscape?: boolean;
13
+ closeOnBlur?: boolean;
14
+
15
+ defaultVisibility?: boolean;
16
+
17
+ header: string;
18
+
19
+ modal?: boolean;
20
+
21
+ slots?: Record<keyof DialogSlots, JSX.Element>;
22
+
23
+ size?:
24
+ | 'xs'
25
+ | 'sm'
26
+ | 'md'
27
+ | 'lg'
28
+ | 'xl'
29
+ | '2xl'
30
+ | '3xl'
31
+ | '4xl'
32
+ | '5xl'
33
+ | '6xl'
34
+ | '7xl'
35
+ | 'full';
36
+
37
+ containerClass?: string;
38
+ headerClass?: string;
39
+ contentClass?: string;
40
+
41
+ onVisibleChange?: (e: boolean) => void;
42
+ }
43
+
44
+ export interface DialogSlots {
45
+ header?: JSX.Element;
46
+ content?: JSX.Element;
47
+ footer?: JSX.Element;
48
+ }
49
+
50
+ export declare const Dialog: (props: DialogProps) => JSX.Element;
@@ -0,0 +1,26 @@
1
+ import { ReactNode } from 'react';
2
+ import { DialogProps } from '../dialog/Dialog.d';
3
+ import { FormProps } from '../form/Form.d';
4
+ import {
5
+ UseFormGetValues,
6
+ UseFormReset,
7
+ UseFormResetField,
8
+ } from 'react-hook-form';
9
+
10
+ export interface DialogFormProps<T extends Record<string, any>>
11
+ extends Omit<DialogProps, 'slots'>,
12
+ Omit<FormProps<T>, 'slots'> {
13
+ closeOnSubmit?: boolean;
14
+ slots?: Record<keyof DialogFormSlots, JSX.Element>;
15
+ }
16
+
17
+ export interface DialogFormSlots {
18
+ header?: JSX.Element;
19
+ content?: JSX.Element;
20
+ footer?: JSX.Element;
21
+ formFooter?: JSX.Element;
22
+ }
23
+
24
+ export declare const DialogForm: <T extends Record<string, any> = any>(
25
+ props: DialogFormProps<T>,
26
+ ) => JSX.Element;
@@ -0,0 +1,53 @@
1
+ // FieldWrapper.d.ts
2
+
3
+ import { ReactNode, FC } from 'react';
4
+ import { FieldErrors } from 'react-hook-form';
5
+
6
+ export interface FieldWrapperProps extends FieldWrapperEvent {
7
+ errors: FieldErrors<any>;
8
+
9
+ /** The name of the field used for form submission */
10
+ fieldName?: string;
11
+
12
+ /**
13
+ * FieldWrapper children
14
+ */
15
+ children?: ReactNode;
16
+
17
+ className?: string;
18
+
19
+ context?: Partial<
20
+ Record<'invalid' | 'disabled' | 'containerless' | 'borderless', boolean>
21
+ >;
22
+
23
+ /** The label text to display above the input */
24
+ label?: string;
25
+
26
+ /** Additional information to display beside the input, typically as a tooltip */
27
+ info?: string;
28
+
29
+ /** Whether the input is required */
30
+ required?: boolean;
31
+
32
+ /**
33
+ * To hide mark asterisk to required field
34
+ *
35
+ * @default false
36
+ */
37
+ hideRequiredMark?: boolean;
38
+ }
39
+
40
+ /**
41
+ * Event handlers for the FieldWrapper component.
42
+ *
43
+ * @description Defines event handler functions related to DOM interaction in the FieldWrapper component.
44
+ */
45
+ export interface FieldWrapperEvent {
46
+ /** Called when the input value changes */
47
+ onClick?: () => void;
48
+ }
49
+
50
+ /**
51
+ * FieldWrapper component.
52
+ */
53
+ export const FieldWrapper: FC<FieldWrapperProps>;
@@ -0,0 +1,98 @@
1
+ import { Severities } from 'lib/utils';
2
+ import { ReactNode, Ref } from 'react';
3
+ import {
4
+ DeepMap,
5
+ DeepPartial,
6
+ FieldErrors,
7
+ SubmitErrorHandler,
8
+ SubmitHandler,
9
+ UseFormClearErrors,
10
+ UseFormGetValues,
11
+ UseFormReset,
12
+ UseFormResetField,
13
+ UseFormSetError,
14
+ UseFormSetValue,
15
+ UseFormWatch,
16
+ } from 'react-hook-form';
17
+
18
+ export type ButtonConfig = {
19
+ type: 'back' | 'reset' | 'submit-raw' | 'submit';
20
+ label?: string;
21
+ severity?: Severities;
22
+ style?: 'outlined' | 'text' | 'fill';
23
+ };
24
+
25
+ export interface FormProps<T extends Record<string, any>> {
26
+ ref?: Ref<FormHandle<T>>;
27
+
28
+ /**
29
+ * Array of buttons configuration to tell form what button that should be rendered on form footer
30
+ * Order of array's value take effect to the rendered button order
31
+ *
32
+ * No need to write all configurations for each type, each type has its default value that will be used unless you give your custom value
33
+ * @default - type submit = {type: 'submit', label: 'Submit', severity: 'success', style: 'fill'}
34
+ * @default - type submit-raw = {type: 'submit-raw', label: 'Save', severity: 'success', style: 'outlined'}
35
+ * @default - type reset = {type: 'reset', label: 'Clear', severity: 'primary', style: 'text'}
36
+ * @default - type back = {type: 'back', label: 'Cancel', severity: 'secondary', style: 'text'}
37
+ *
38
+ * Only types that exist in the given array that will be rendered
39
+ * @example - render only button submit and back will need this array
40
+ * [
41
+ * { type: 'back', label: 'a' },
42
+ * { type: 'submit', label: 'b' },
43
+ * ]
44
+ */
45
+ buttonsConfig: ButtonConfig[];
46
+
47
+ /**
48
+ * Form children
49
+ */
50
+ children?: ReactNode;
51
+
52
+ slots?: Record<keyof FormSlots, JSX.Element>;
53
+
54
+ /**
55
+ * Determine whether form should be reset to default on submit or not
56
+ *
57
+ * @default true
58
+ */
59
+ resetOnSubmit?: boolean;
60
+
61
+ /**
62
+ * To gives default value to form
63
+ *
64
+ * @default {}
65
+ */
66
+ defaultValues?: Record<string, any>;
67
+
68
+ /**
69
+ * Submit emit
70
+ */
71
+ onSubmit?: SubmitHandler<T>;
72
+
73
+ /**
74
+ * Error emit
75
+ */
76
+ onError?: SubmitErrorHandler<T>;
77
+ }
78
+
79
+ export interface FormSlots {
80
+ footer?: JSX.Element;
81
+ }
82
+
83
+ export interface FormHandle<T extends Record<string, any>> {
84
+ resetField: UseFormResetField<T>;
85
+ reset: UseFormReset<T>;
86
+ getValues: UseFormGetValues<T>;
87
+ errors: FieldErrors<T>;
88
+ watch: UseFormWatch<T>;
89
+ setValue: UseFormSetValue<T>;
90
+ setError: UseFormSetError<T>;
91
+ clearErrors: UseFormClearErrors<T>;
92
+ isDirty: boolean;
93
+ dirtyFields: Partial<Readonly<DeepMap<DeepPartial<T>, boolean>>>;
94
+ }
95
+
96
+ export declare const Form: <T extends Record<string, any> = any>(
97
+ props: FormProps<T>,
98
+ ) => JSX.Element;
@@ -0,0 +1,52 @@
1
+ // types/components.d.ts (or you can name it types/icon.d.ts if it's specific)
2
+
3
+ import { Severities } from 'lib/utils';
4
+ import React from 'react';
5
+
6
+ export type Icons =
7
+ | 'plus'
8
+ | 'minus'
9
+ | 'minus-4'
10
+ | 'info'
11
+ | 'eye-on'
12
+ | 'eye-off'
13
+ | 'check'
14
+ | 'check-4'
15
+ | 'x'
16
+ | 'circle'
17
+ | 'circle-fill'
18
+ | 'edit'
19
+ | 'edit-2'
20
+ | 'edit-3'
21
+ | 'trash'
22
+ | 'trash-2'
23
+ | 'settings'
24
+ | 'settings-2'
25
+ | 'user-circle'
26
+ | 'sort-asc'
27
+ | 'sort-desc';
28
+
29
+ export interface IconProps extends React.HTMLAttributes<HTMLSpanElement> {
30
+ /**
31
+ * Icon class like 'plus', 'minus', etc.
32
+ * Should be defined with a `--svg` mask in CSS.
33
+ */
34
+ name: Icons;
35
+
36
+ /**
37
+ * Additional Tailwind/utility classes
38
+ */
39
+ className?: string;
40
+
41
+ /**
42
+ * Tooltip text
43
+ */
44
+ tooltip?: string;
45
+
46
+ /**
47
+ * Tooltip position
48
+ */
49
+ tooltipPos?: 'right' | 'top' | 'bottom' | 'left';
50
+
51
+ severity?: Severities;
52
+ }
@@ -0,0 +1,36 @@
1
+ export { Button } from './button/Button';
2
+ export { Card } from './card/Card';
3
+ export { Checkbox } from './checkbox/Checkbox';
4
+ export { Dialog } from './dialog/Dialog';
5
+ export { DialogForm } from './dialogform/DialogForm';
6
+ export { Form } from './form/Form';
7
+ export { KanbanBoard } from './kanbanboard/KanbanBoard';
8
+ export { KanbanColumn } from './kanbancolumn/KanbanColumn';
9
+ export { Icon } from './icon/Icon';
10
+ export { InputEmail } from './inputemail/InputEmail';
11
+ export { InputNumber } from './inputnumber/InputNumber';
12
+ export { InputPassword } from './inputpassword/InputPassword';
13
+ export { InputText } from './inputtext/InputText';
14
+ export { Popover } from './popover/Popover';
15
+ export { RadioButton } from './radiobutton/RadioButton';
16
+ export { Slot } from './slot/Slot';
17
+ export { ToggleSwitch } from './toggleswitch/ToggleSwitch';
18
+ export { Tooltip } from './tooltip/Tooltip';
19
+ export { Button } from './button/Button';
20
+ export { Card } from './card/Card';
21
+ export { Checkbox } from './checkbox/Checkbox';
22
+ export { Dialog } from './dialog/Dialog';
23
+ export { DialogForm } from './dialogform/DialogForm';
24
+ export { Form } from './form/Form';
25
+ export { KanbanBoard } from './kanbanboard/KanbanBoard';
26
+ export { KanbanColumn } from './kanbancolumn/KanbanColumn';
27
+ export { Icon } from './icon/Icon';
28
+ export { InputEmail } from './inputemail/InputEmail';
29
+ export { InputNumber } from './inputnumber/InputNumber';
30
+ export { InputPassword } from './inputpassword/InputPassword';
31
+ export { InputText } from './inputtext/InputText';
32
+ export { Popover } from './popover/Popover';
33
+ export { RadioButton } from './radiobutton/RadioButton';
34
+ export { Slot } from './slot/Slot';
35
+ export { ToggleSwitch } from './toggleswitch/ToggleSwitch';
36
+ export { Tooltip } from './tooltip/Tooltip';
@@ -0,0 +1,17 @@
1
+ import { FC } from 'react';
2
+ import { BaseInputProps } from '../private/BaseInput.d';
3
+
4
+ /**
5
+ * Props for the InputEmail component.
6
+ *
7
+ * @description This defines the props for the InputEmail component including its field name, label, and event handlers.
8
+ */
9
+ export interface InputEmailProps extends Omit<BaseInputProps<string>, 'type'> {}
10
+
11
+ /**
12
+ * InputEmail component for form input with built-in validation and custom event handling.
13
+ *
14
+ * @component
15
+ * @description Renders an input field with support for labels, validation, dynamic event handling, and optional styling.
16
+ */
17
+ export const InputEmail: FC<InputEmailProps>;
@@ -0,0 +1,18 @@
1
+ import { FC } from 'react';
2
+ import { BaseInputProps } from '../private/BaseInput.d';
3
+
4
+ /**
5
+ * Props for the InputNumber component.
6
+ *
7
+ * @description This defines the props for the InputNumber component including its field name, label, and event handlers.
8
+ */
9
+ export interface InputNumberProps
10
+ extends Omit<BaseInputProps<number>, 'type'> {}
11
+
12
+ /**
13
+ * InputNumber component for form input with built-in validation and custom event handling.
14
+ *
15
+ * @component
16
+ * @description Renders an input field with support for labels, validation, dynamic event handling, and optional styling.
17
+ */
18
+ export const InputNumber: FC<InputNumberProps>;