@tribepad/themis 1.0.1 → 1.0.2
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/dist/elements/Accordion/index.js +1 -335
- package/dist/elements/Accordion/index.js.map +1 -1
- package/dist/elements/Accordion/index.mjs +1 -317
- package/dist/elements/Accordion/index.mjs.map +1 -1
- package/dist/elements/AlertDialog/AlertDialog.d.ts +43 -0
- package/dist/elements/AlertDialog/AlertDialog.d.ts.map +1 -0
- package/dist/elements/AlertDialog/AlertDialog.styles.d.ts +15 -0
- package/dist/elements/AlertDialog/AlertDialog.styles.d.ts.map +1 -0
- package/dist/elements/AlertDialog/AlertDialog.types.d.ts +72 -0
- package/dist/elements/AlertDialog/AlertDialog.types.d.ts.map +1 -0
- package/dist/elements/AlertDialog/index.d.ts +25 -0
- package/dist/elements/AlertDialog/index.d.ts.map +1 -0
- package/dist/elements/AlertDialog/index.js +3 -0
- package/dist/elements/AlertDialog/index.js.map +1 -0
- package/dist/elements/AlertDialog/index.mjs +3 -0
- package/dist/elements/AlertDialog/index.mjs.map +1 -0
- package/dist/elements/Avatar/index.js +1 -468
- package/dist/elements/Avatar/index.js.map +1 -1
- package/dist/elements/Avatar/index.mjs +1 -456
- package/dist/elements/Avatar/index.mjs.map +1 -1
- package/dist/elements/Badge/index.js +1 -243
- package/dist/elements/Badge/index.js.map +1 -1
- package/dist/elements/Badge/index.mjs +1 -234
- package/dist/elements/Badge/index.mjs.map +1 -1
- package/dist/elements/Breadcrumbs/index.js +1 -821
- package/dist/elements/Breadcrumbs/index.js.map +1 -1
- package/dist/elements/Breadcrumbs/index.mjs +1 -810
- package/dist/elements/Breadcrumbs/index.mjs.map +1 -1
- package/dist/elements/Button/Button.d.ts +26 -81
- package/dist/elements/Button/Button.d.ts.map +1 -1
- package/dist/elements/Button/Button.styles.d.ts +35 -0
- package/dist/elements/Button/Button.styles.d.ts.map +1 -0
- package/dist/elements/Button/Button.types.d.ts +20 -8
- package/dist/elements/Button/Button.types.d.ts.map +1 -1
- package/dist/elements/Button/index.js +1 -288
- package/dist/elements/Button/index.js.map +1 -1
- package/dist/elements/Button/index.mjs +1 -283
- package/dist/elements/Button/index.mjs.map +1 -1
- package/dist/elements/ButtonGroup/index.js +1 -237
- package/dist/elements/ButtonGroup/index.js.map +1 -1
- package/dist/elements/ButtonGroup/index.mjs +1 -222
- package/dist/elements/ButtonGroup/index.mjs.map +1 -1
- package/dist/elements/Card/index.js +1 -579
- package/dist/elements/Card/index.js.map +1 -1
- package/dist/elements/Card/index.mjs +1 -560
- package/dist/elements/Card/index.mjs.map +1 -1
- package/dist/elements/Carousel/Carousel.d.ts +1 -11
- package/dist/elements/Carousel/Carousel.d.ts.map +1 -1
- package/dist/elements/Carousel/LazyCarousel.d.ts +1 -1
- package/dist/elements/Carousel/LazyCarousel.d.ts.map +1 -1
- package/dist/elements/Carousel/index.js +1 -789
- package/dist/elements/Carousel/index.js.map +1 -1
- package/dist/elements/Carousel/index.mjs +1 -786
- package/dist/elements/Carousel/index.mjs.map +1 -1
- package/dist/elements/Chart/ChartContext.d.ts.map +1 -1
- package/dist/elements/Chart/index.js +1 -1842
- package/dist/elements/Chart/index.js.map +1 -1
- package/dist/elements/Chart/index.mjs +1 -1832
- package/dist/elements/Chart/index.mjs.map +1 -1
- package/dist/elements/Checkbox/index.js +1 -316
- package/dist/elements/Checkbox/index.js.map +1 -1
- package/dist/elements/Checkbox/index.mjs +1 -306
- package/dist/elements/Checkbox/index.mjs.map +1 -1
- package/dist/elements/CheckboxGroup/index.js +1 -455
- package/dist/elements/CheckboxGroup/index.js.map +1 -1
- package/dist/elements/CheckboxGroup/index.mjs +1 -439
- package/dist/elements/CheckboxGroup/index.mjs.map +1 -1
- package/dist/elements/Combobox/Combobox.d.ts +56 -0
- package/dist/elements/Combobox/Combobox.d.ts.map +1 -0
- package/dist/elements/Combobox/Combobox.styles.d.ts +29 -0
- package/dist/elements/Combobox/Combobox.styles.d.ts.map +1 -0
- package/dist/elements/Combobox/Combobox.types.d.ts +67 -0
- package/dist/elements/Combobox/Combobox.types.d.ts.map +1 -0
- package/dist/elements/Combobox/index.d.ts +20 -0
- package/dist/elements/Combobox/index.d.ts.map +1 -0
- package/dist/elements/Combobox/index.js +3 -0
- package/dist/elements/Combobox/index.js.map +1 -0
- package/dist/elements/Combobox/index.mjs +3 -0
- package/dist/elements/Combobox/index.mjs.map +1 -0
- package/dist/elements/DatePicker/DatePicker.d.ts +1 -1
- package/dist/elements/DatePicker/DatePicker.d.ts.map +1 -1
- package/dist/elements/DatePicker/index.js +1 -903
- package/dist/elements/DatePicker/index.js.map +1 -1
- package/dist/elements/DatePicker/index.mjs +1 -853
- package/dist/elements/DatePicker/index.mjs.map +1 -1
- package/dist/elements/Dropdown/Dropdown.d.ts +7 -15
- package/dist/elements/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/elements/Dropdown/Dropdown.styles.d.ts +22 -0
- package/dist/elements/Dropdown/Dropdown.styles.d.ts.map +1 -0
- package/dist/elements/Dropdown/index.d.ts +1 -0
- package/dist/elements/Dropdown/index.d.ts.map +1 -1
- package/dist/elements/Dropdown/index.js +1 -193
- package/dist/elements/Dropdown/index.js.map +1 -1
- package/dist/elements/Dropdown/index.mjs +1 -184
- package/dist/elements/Dropdown/index.mjs.map +1 -1
- package/dist/elements/FileField/index.js +1 -1539
- package/dist/elements/FileField/index.js.map +1 -1
- package/dist/elements/FileField/index.mjs +1 -1507
- package/dist/elements/FileField/index.mjs.map +1 -1
- package/dist/elements/FormLayout/index.js +1 -170
- package/dist/elements/FormLayout/index.js.map +1 -1
- package/dist/elements/FormLayout/index.mjs +1 -167
- package/dist/elements/FormLayout/index.mjs.map +1 -1
- package/dist/elements/Modal/Modal.d.ts +9 -14
- package/dist/elements/Modal/Modal.d.ts.map +1 -1
- package/dist/elements/Modal/Modal.styles.d.ts +29 -0
- package/dist/elements/Modal/Modal.styles.d.ts.map +1 -0
- package/dist/elements/Modal/index.d.ts +1 -0
- package/dist/elements/Modal/index.d.ts.map +1 -1
- package/dist/elements/Modal/index.js +1 -232
- package/dist/elements/Modal/index.js.map +1 -1
- package/dist/elements/Modal/index.mjs +1 -220
- package/dist/elements/Modal/index.mjs.map +1 -1
- package/dist/elements/NumberField/index.js +1 -666
- package/dist/elements/NumberField/index.js.map +1 -1
- package/dist/elements/NumberField/index.mjs +1 -654
- package/dist/elements/NumberField/index.mjs.map +1 -1
- package/dist/elements/OTPInput/OTPInput.d.ts.map +1 -1
- package/dist/elements/OTPInput/index.js +1 -734
- package/dist/elements/OTPInput/index.js.map +1 -1
- package/dist/elements/OTPInput/index.mjs +1 -732
- package/dist/elements/OTPInput/index.mjs.map +1 -1
- package/dist/elements/Pagination/Pagination.d.ts +45 -0
- package/dist/elements/Pagination/Pagination.d.ts.map +1 -0
- package/dist/elements/Pagination/Pagination.styles.d.ts +10 -0
- package/dist/elements/Pagination/Pagination.styles.d.ts.map +1 -0
- package/dist/elements/Pagination/Pagination.types.d.ts +55 -0
- package/dist/elements/Pagination/Pagination.types.d.ts.map +1 -0
- package/dist/elements/Pagination/index.d.ts +21 -0
- package/dist/elements/Pagination/index.d.ts.map +1 -0
- package/dist/elements/Pagination/index.js +3 -0
- package/dist/elements/Pagination/index.js.map +1 -0
- package/dist/elements/Pagination/index.mjs +3 -0
- package/dist/elements/Pagination/index.mjs.map +1 -0
- package/dist/elements/Panel/index.js +1 -330
- package/dist/elements/Panel/index.js.map +1 -1
- package/dist/elements/Panel/index.mjs +1 -323
- package/dist/elements/Panel/index.mjs.map +1 -1
- package/dist/elements/PasswordField/PasswordField.d.ts +27 -0
- package/dist/elements/PasswordField/PasswordField.d.ts.map +1 -0
- package/dist/elements/PasswordField/PasswordField.styles.d.ts +32 -0
- package/dist/elements/PasswordField/PasswordField.styles.d.ts.map +1 -0
- package/dist/elements/PasswordField/PasswordField.types.d.ts +100 -0
- package/dist/elements/PasswordField/PasswordField.types.d.ts.map +1 -0
- package/dist/elements/PasswordField/index.css +2 -0
- package/dist/elements/PasswordField/index.css.map +1 -0
- package/dist/elements/PasswordField/index.d.ts +20 -0
- package/dist/elements/PasswordField/index.d.ts.map +1 -0
- package/dist/elements/PasswordField/index.js +3 -0
- package/dist/elements/PasswordField/index.js.map +1 -0
- package/dist/elements/PasswordField/index.mjs +3 -0
- package/dist/elements/PasswordField/index.mjs.map +1 -0
- package/dist/elements/Progress/index.js +1 -187
- package/dist/elements/Progress/index.js.map +1 -1
- package/dist/elements/Progress/index.mjs +1 -181
- package/dist/elements/Progress/index.mjs.map +1 -1
- package/dist/elements/RadioGroup/index.js +1 -369
- package/dist/elements/RadioGroup/index.js.map +1 -1
- package/dist/elements/RadioGroup/index.mjs +1 -359
- package/dist/elements/RadioGroup/index.mjs.map +1 -1
- package/dist/elements/Resizable/index.js +1 -1580
- package/dist/elements/Resizable/index.js.map +1 -1
- package/dist/elements/Resizable/index.mjs +1 -1566
- package/dist/elements/Resizable/index.mjs.map +1 -1
- package/dist/elements/SearchField/SearchField.d.ts +27 -0
- package/dist/elements/SearchField/SearchField.d.ts.map +1 -0
- package/dist/elements/SearchField/SearchField.styles.d.ts +32 -0
- package/dist/elements/SearchField/SearchField.styles.d.ts.map +1 -0
- package/dist/elements/SearchField/SearchField.types.d.ts +45 -0
- package/dist/elements/SearchField/SearchField.types.d.ts.map +1 -0
- package/dist/elements/SearchField/index.css +2 -0
- package/dist/elements/SearchField/index.css.map +1 -0
- package/dist/elements/SearchField/index.d.ts +21 -0
- package/dist/elements/SearchField/index.d.ts.map +1 -0
- package/dist/elements/SearchField/index.js +3 -0
- package/dist/elements/SearchField/index.js.map +1 -0
- package/dist/elements/SearchField/index.mjs +3 -0
- package/dist/elements/SearchField/index.mjs.map +1 -0
- package/dist/elements/Select/Select.d.ts +19 -48
- package/dist/elements/Select/Select.d.ts.map +1 -1
- package/dist/elements/Select/Select.styles.d.ts +55 -0
- package/dist/elements/Select/Select.styles.d.ts.map +1 -0
- package/dist/elements/Select/index.js +1 -589
- package/dist/elements/Select/index.js.map +1 -1
- package/dist/elements/Select/index.mjs +1 -582
- package/dist/elements/Select/index.mjs.map +1 -1
- package/dist/elements/Skeleton/index.js +1 -82
- package/dist/elements/Skeleton/index.js.map +1 -1
- package/dist/elements/Skeleton/index.mjs +1 -78
- package/dist/elements/Skeleton/index.mjs.map +1 -1
- package/dist/elements/Switch/index.js +1 -179
- package/dist/elements/Switch/index.js.map +1 -1
- package/dist/elements/Switch/index.mjs +1 -173
- package/dist/elements/Switch/index.mjs.map +1 -1
- package/dist/elements/Table/Table.d.ts +3 -24
- package/dist/elements/Table/Table.d.ts.map +1 -1
- package/dist/elements/Table/Table.styles.d.ts +24 -0
- package/dist/elements/Table/Table.styles.d.ts.map +1 -0
- package/dist/elements/Table/index.js +1 -595
- package/dist/elements/Table/index.js.map +1 -1
- package/dist/elements/Table/index.mjs +1 -578
- package/dist/elements/Table/index.mjs.map +1 -1
- package/dist/elements/Tabs/index.js +1 -337
- package/dist/elements/Tabs/index.js.map +1 -1
- package/dist/elements/Tabs/index.mjs +1 -320
- package/dist/elements/Tabs/index.mjs.map +1 -1
- package/dist/elements/TextField/TextField.d.ts +6 -42
- package/dist/elements/TextField/TextField.d.ts.map +1 -1
- package/dist/elements/TextField/TextField.hooks.d.ts +63 -0
- package/dist/elements/TextField/TextField.hooks.d.ts.map +1 -0
- package/dist/elements/TextField/TextField.icons.d.ts +19 -0
- package/dist/elements/TextField/TextField.icons.d.ts.map +1 -0
- package/dist/elements/TextField/TextField.styles.d.ts +37 -0
- package/dist/elements/TextField/TextField.styles.d.ts.map +1 -0
- package/dist/elements/TextField/TextField.types.d.ts +3 -0
- package/dist/elements/TextField/TextField.types.d.ts.map +1 -1
- package/dist/elements/TextField/index.css +1 -22
- package/dist/elements/TextField/index.css.map +1 -1
- package/dist/elements/TextField/index.js +1 -902
- package/dist/elements/TextField/index.js.map +1 -1
- package/dist/elements/TextField/index.mjs +1 -882
- package/dist/elements/TextField/index.mjs.map +1 -1
- package/dist/elements/TimeField/index.js +1 -254
- package/dist/elements/TimeField/index.js.map +1 -1
- package/dist/elements/TimeField/index.mjs +1 -238
- package/dist/elements/TimeField/index.mjs.map +1 -1
- package/dist/elements/Toast/Toast.d.ts +0 -22
- package/dist/elements/Toast/Toast.d.ts.map +1 -1
- package/dist/elements/Toast/index.js +1 -737
- package/dist/elements/Toast/index.js.map +1 -1
- package/dist/elements/Toast/index.mjs +1 -724
- package/dist/elements/Toast/index.mjs.map +1 -1
- package/dist/elements/Tooltip/index.js +1 -323
- package/dist/elements/Tooltip/index.js.map +1 -1
- package/dist/elements/Tooltip/index.mjs +1 -310
- package/dist/elements/Tooltip/index.mjs.map +1 -1
- package/dist/elements/index.css +1 -22
- package/dist/elements/index.css.map +1 -1
- package/dist/elements/index.d.ts +13 -1
- package/dist/elements/index.d.ts.map +1 -1
- package/dist/elements/index.js +1 -12455
- package/dist/elements/index.js.map +1 -1
- package/dist/elements/index.mjs +1 -12233
- package/dist/elements/index.mjs.map +1 -1
- package/dist/index.css +1 -22
- package/dist/index.css.map +1 -1
- package/dist/index.js +2 -12490
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -12262
- package/dist/index.mjs.map +1 -1
- package/dist/schemas/index.js +2 -54
- package/dist/schemas/index.js.map +1 -1
- package/dist/schemas/index.mjs +2 -48
- package/dist/schemas/index.mjs.map +1 -1
- package/dist/styles/defaults.css +151 -0
- package/dist/styles/index.js +1 -166
- package/dist/styles/index.js.map +1 -1
- package/dist/styles/index.mjs +1 -129
- package/dist/styles/index.mjs.map +1 -1
- package/dist/utils/index.js +1 -12
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/index.mjs +1 -10
- package/dist/utils/index.mjs.map +1 -1
- package/package.json +9 -7
- package/src/elements/Accordion/Accordion.stories.tsx +1 -1
- package/src/elements/AlertDialog/AlertDialog.stories.tsx +124 -0
- package/src/elements/Avatar/Avatar.stories.tsx +1 -1
- package/src/elements/Badge/Badge.stories.tsx +1 -1
- package/src/elements/Breadcrumbs/Breadcrumbs.stories.tsx +1 -1
- package/src/elements/Button/Button.stories.tsx +1 -1
- package/src/elements/ButtonGroup/ButtonGroup.stories.tsx +1 -1
- package/src/elements/Card/Card.stories.tsx +1 -1
- package/src/elements/Carousel/Carousel.stories.tsx +1 -1
- package/src/elements/Chart/Chart.stories.tsx +1 -1
- package/src/elements/Checkbox/Checkbox.stories.tsx +1 -1
- package/src/elements/CheckboxGroup/CheckboxGroup.stories.tsx +1 -1
- package/src/elements/Combobox/Combobox.stories.tsx +133 -0
- package/src/elements/DatePicker/DatePicker.stories.tsx +1 -1
- package/src/elements/Dropdown/Dropdown.stories.tsx +1 -1
- package/src/elements/FileField/FileField.stories.tsx +1 -1
- package/src/elements/FileField/FileProgress.stories.tsx +1 -1
- package/src/elements/FormLayout/FormLayout.stories.tsx +1 -1
- package/src/elements/Modal/Modal.stories.tsx +1 -1
- package/src/elements/NumberField/NumberField.stories.tsx +1 -1
- package/src/elements/OTPInput/OTPInput.stories.tsx +1 -1
- package/src/elements/Pagination/Pagination.stories.tsx +203 -0
- package/src/elements/Panel/Panel.stories.tsx +1 -1
- package/src/elements/PasswordField/PasswordField.stories.tsx +167 -0
- package/src/elements/Progress/Progress.stories.tsx +1 -1
- package/src/elements/RadioGroup/RadioGroup.stories.tsx +1 -1
- package/src/elements/Resizable/Resizable.stories.tsx +1 -1
- package/src/elements/SearchField/SearchField.stories.tsx +146 -0
- package/src/elements/Select/Select.stories.tsx +1 -1
- package/src/elements/Skeleton/Skeleton.stories.tsx +1 -1
- package/src/elements/Switch/Switch.stories.tsx +1 -1
- package/src/elements/Table/Table.stories.tsx +1 -1
- package/src/elements/Tabs/Tabs.stories.tsx +1 -1
- package/src/elements/TextField/TextField.stories.tsx +1 -1
- package/src/elements/TimeField/TimeField.stories.tsx +1 -1
- package/src/elements/Toast/Toast.stories.tsx +1 -1
- package/src/elements/Tooltip/Tooltip.stories.tsx +1 -1
|
@@ -9,33 +9,8 @@
|
|
|
9
9
|
* @see constitution.md Principle IV (Accessibility First)
|
|
10
10
|
*/
|
|
11
11
|
import './TextField.css';
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
* Adapts ShadCN Input styling with Themis semantic tokens
|
|
15
|
-
*/
|
|
16
|
-
export declare const inputVariants: (props?: ({
|
|
17
|
-
size?: "default" | "sm" | "lg" | null | undefined;
|
|
18
|
-
state?: "success" | "default" | "readonly" | "error" | "disabled" | null | undefined;
|
|
19
|
-
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
20
|
-
/**
|
|
21
|
-
* Label variant styles using CVA
|
|
22
|
-
* Adapts ShadCN Label styling with Themis semantic tokens
|
|
23
|
-
*/
|
|
24
|
-
export declare const labelVariants: (props?: ({
|
|
25
|
-
state?: "default" | "error" | "disabled" | null | undefined;
|
|
26
|
-
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
27
|
-
/**
|
|
28
|
-
* Description text variant styles
|
|
29
|
-
*/
|
|
30
|
-
export declare const descriptionVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
31
|
-
/**
|
|
32
|
-
* Error message variant styles
|
|
33
|
-
*/
|
|
34
|
-
export declare const errorMessageVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
35
|
-
/**
|
|
36
|
-
* Success message variant styles
|
|
37
|
-
*/
|
|
38
|
-
export declare const successMessageVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
12
|
+
import { inputVariants, labelVariants, descriptionVariants, errorMessageVariants, successMessageVariants } from './TextField.styles';
|
|
13
|
+
export { inputVariants, labelVariants, descriptionVariants, errorMessageVariants, successMessageVariants, };
|
|
39
14
|
/**
|
|
40
15
|
* TextFieldLabel Sub-component
|
|
41
16
|
* Styled label with optional required indicator
|
|
@@ -84,13 +59,6 @@ export declare const TextFieldSuccess: import("react").ForwardRefExoticComponent
|
|
|
84
59
|
* TextField Component
|
|
85
60
|
* Fully accessible text input with React Aria and themed styling
|
|
86
61
|
*
|
|
87
|
-
* Composition:
|
|
88
|
-
* - TextField (container with React Aria context)
|
|
89
|
-
* - Label (optional, linked to input)
|
|
90
|
-
* - Input (text input element)
|
|
91
|
-
* - Description (optional helper text)
|
|
92
|
-
* - ErrorMessage (optional, shown when invalid)
|
|
93
|
-
*
|
|
94
62
|
* @example
|
|
95
63
|
* <TextField
|
|
96
64
|
* label="Email"
|
|
@@ -98,13 +66,6 @@ export declare const TextFieldSuccess: import("react").ForwardRefExoticComponent
|
|
|
98
66
|
* isRequired
|
|
99
67
|
* type="email"
|
|
100
68
|
* />
|
|
101
|
-
*
|
|
102
|
-
* @example
|
|
103
|
-
* <TextField
|
|
104
|
-
* label="Username"
|
|
105
|
-
* errorMessage="Username is required"
|
|
106
|
-
* isInvalid
|
|
107
|
-
* />
|
|
108
69
|
*/
|
|
109
70
|
export declare const TextField: import("react").ForwardRefExoticComponent<Partial<{
|
|
110
71
|
size: "default" | "sm" | "lg";
|
|
@@ -114,6 +75,7 @@ export declare const TextField: import("react").ForwardRefExoticComponent<Partia
|
|
|
114
75
|
suffixSize: number;
|
|
115
76
|
expandOnFocus: boolean;
|
|
116
77
|
collapsedWidth: string;
|
|
78
|
+
isIconHidden: boolean;
|
|
117
79
|
className?: string | undefined;
|
|
118
80
|
children?: any;
|
|
119
81
|
id?: string | undefined;
|
|
@@ -145,7 +107,9 @@ export declare const TextField: import("react").ForwardRefExoticComponent<Partia
|
|
|
145
107
|
prefix?: any;
|
|
146
108
|
suffix?: any;
|
|
147
109
|
showPasswordToggle?: boolean | undefined;
|
|
148
|
-
|
|
110
|
+
onSubmit?: ((value: string) => void) | undefined;
|
|
111
|
+
onClear?: (() => void) | undefined;
|
|
112
|
+
}> & Omit<import("react-aria-components").TextFieldProps, "className" | "children" | "id" | "aria-label" | "aria-labelledby" | "aria-describedby" | "aria-live" | "aria-hidden" | "data-testid" | "pattern" | "type" | "isDisabled" | "value" | "autoFocus" | "name" | "onSubmit" | "size" | "label" | "autoComplete" | "defaultValue" | "maxLength" | "minLength" | "prefix" | "isReadOnly" | "isInvalid" | "isRequired" | "description" | "errorMessage" | "onClear" | "successMessage" | "isValid" | "placeholder" | "patternDescription" | "disableCopyPaste" | "suffix" | "prefixSize" | "suffixSize" | "expandOnFocus" | "collapsedWidth" | "showPasswordToggle" | "isIconHidden"> & {
|
|
149
113
|
onChange?: (value: string) => void;
|
|
150
114
|
validate?: (value: string) => string | undefined | null;
|
|
151
115
|
prefix?: import("react").ReactNode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextField.d.ts","sourceRoot":"","sources":["../../../src/elements/TextField/TextField.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,OAAO,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"TextField.d.ts","sourceRoot":"","sources":["../../../src/elements/TextField/TextField.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;GASG;AAEH,OAAO,iBAAiB,CAAC;AAqBzB,OAAO,EACL,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,EACvB,MAAM,oBAAoB,CAAC;AAI5B,OAAO,EACL,aAAa,EACb,aAAa,EACb,mBAAmB,EACnB,oBAAoB,EACpB,sBAAsB,GACvB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;;uJAY1B,CAAC;AAIF;;;GAGG;AACH,eAAO,MAAM,cAAc;;;;uIAU1B,CAAC;AAIF;;;GAGG;AACH,eAAO,MAAM,oBAAoB;;;8HAahC,CAAC;AAIF;;;;GAIG;AACH,eAAO,MAAM,cAAc;;;8HAY1B,CAAC;AAIF;;;GAGG;AACH,eAAO,MAAM,gBAAgB;;;8HAa5B,CAAC;AAIF;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,SAAS;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kDAmTrB,CAAC;AAIF,OAAO,EAAE,aAAa,IAAI,sBAAsB,EAAE,aAAa,IAAI,sBAAsB,EAAE,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TextField Custom Hooks
|
|
3
|
+
* Extracted from TextField.tsx for separation of concerns
|
|
4
|
+
*
|
|
5
|
+
* These hooks encapsulate the behavioral logic for:
|
|
6
|
+
* - Expand on focus
|
|
7
|
+
* - Copy/paste protection
|
|
8
|
+
* - Password visibility toggle
|
|
9
|
+
*/
|
|
10
|
+
import type { FocusEvent, ClipboardEvent } from 'react';
|
|
11
|
+
/**
|
|
12
|
+
* Hook: useExpandOnFocus
|
|
13
|
+
* Manages the expand-on-focus behavior where an input starts narrow
|
|
14
|
+
* and expands to full width when focused or when it has a value.
|
|
15
|
+
*
|
|
16
|
+
* @param expandOnFocus - Whether expand-on-focus is enabled
|
|
17
|
+
* @param collapsedWidth - CSS width when collapsed (e.g., '200px')
|
|
18
|
+
* @param value - Controlled value (if any)
|
|
19
|
+
* @param defaultValue - Default value (if any)
|
|
20
|
+
* @param userOnFocus - User-provided onFocus handler to call through
|
|
21
|
+
* @param userOnBlur - User-provided onBlur handler to call through
|
|
22
|
+
*/
|
|
23
|
+
export declare function useExpandOnFocus({ expandOnFocus, collapsedWidth, value, defaultValue, userOnFocus, userOnBlur, }: {
|
|
24
|
+
expandOnFocus: boolean;
|
|
25
|
+
collapsedWidth: string;
|
|
26
|
+
value: string | undefined;
|
|
27
|
+
defaultValue: string | undefined;
|
|
28
|
+
userOnFocus: ((e: FocusEvent<HTMLInputElement>) => void) | undefined;
|
|
29
|
+
userOnBlur: ((e: FocusEvent<HTMLInputElement>) => void) | undefined;
|
|
30
|
+
}): {
|
|
31
|
+
handleFocus: (e: FocusEvent<HTMLInputElement>) => void;
|
|
32
|
+
handleBlur: (e: FocusEvent<HTMLInputElement>) => void;
|
|
33
|
+
inputWidth: string | undefined;
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Hook: useCopyPasteProtection
|
|
37
|
+
* Manages copy/paste prevention with shake animation and screen reader announcements.
|
|
38
|
+
*
|
|
39
|
+
* @param disableCopyPaste - Whether copy/paste should be disabled
|
|
40
|
+
*/
|
|
41
|
+
export declare function useCopyPasteProtection({ disableCopyPaste, }: {
|
|
42
|
+
disableCopyPaste: boolean;
|
|
43
|
+
}): {
|
|
44
|
+
isShaking: boolean;
|
|
45
|
+
screenReaderMessage: string;
|
|
46
|
+
handlePaste: (e: ClipboardEvent<HTMLInputElement>) => void;
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Hook: usePasswordToggle
|
|
50
|
+
* Manages password show/hide toggle state and determines the actual input type.
|
|
51
|
+
*
|
|
52
|
+
* @param type - The input type ('text', 'email', 'password', etc.)
|
|
53
|
+
* @param showPasswordToggle - Whether the toggle button should be shown
|
|
54
|
+
*/
|
|
55
|
+
export declare function usePasswordToggle({ type, showPasswordToggle, }: {
|
|
56
|
+
type: string;
|
|
57
|
+
showPasswordToggle: boolean | undefined;
|
|
58
|
+
}): {
|
|
59
|
+
showPassword: boolean;
|
|
60
|
+
actualType: string;
|
|
61
|
+
handlePasswordToggle: () => void;
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=TextField.hooks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextField.hooks.d.ts","sourceRoot":"","sources":["../../../src/elements/TextField/TextField.hooks.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAExD;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAAC,EAC/B,aAAa,EACb,cAAc,EACd,KAAK,EACL,YAAY,EACZ,WAAW,EACX,UAAU,GACX,EAAE;IACD,aAAa,EAAE,OAAO,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,WAAW,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACrE,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,gBAAgB,CAAC,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;CACrE;qBAGqC,UAAU,CAAC,gBAAgB,CAAC;oBAO7B,UAAU,CAAC,gBAAgB,CAAC;;EAuBhE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,EACrC,gBAAgB,GACjB,EAAE;IACD,gBAAgB,EAAE,OAAO,CAAC;CAC3B;;;qBAcqC,cAAc,CAAC,gBAAgB,CAAC;EAmBrE;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,EAChC,IAAI,EACJ,kBAAkB,GACnB,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,kBAAkB,EAAE,OAAO,GAAG,SAAS,CAAC;CACzC;;;;EAeA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TextField Icon Components
|
|
3
|
+
* SVG icons for password toggle functionality
|
|
4
|
+
*
|
|
5
|
+
* Extracted from TextField.tsx to keep the main component file focused.
|
|
6
|
+
* These are module-level components to avoid re-creating on every render.
|
|
7
|
+
*/
|
|
8
|
+
import type { ReactElement } from 'react';
|
|
9
|
+
/**
|
|
10
|
+
* Eye icon for "show password" state
|
|
11
|
+
* Rendered when the password is currently hidden
|
|
12
|
+
*/
|
|
13
|
+
export declare const EyeIcon: () => ReactElement;
|
|
14
|
+
/**
|
|
15
|
+
* Eye-off icon for "hide password" state
|
|
16
|
+
* Rendered when the password is currently visible
|
|
17
|
+
*/
|
|
18
|
+
export declare const EyeOffIcon: () => ReactElement;
|
|
19
|
+
//# sourceMappingURL=TextField.icons.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextField.icons.d.ts","sourceRoot":"","sources":["../../../src/elements/TextField/TextField.icons.tsx"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AAE1C;;;GAGG;AACH,eAAO,MAAM,OAAO,QAAO,YAe1B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,UAAU,QAAO,YAiB7B,CAAC"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* TextField CVA Variant Styles
|
|
3
|
+
* Extracted from TextField.tsx for separation of concerns
|
|
4
|
+
*
|
|
5
|
+
* @see spec.md FR-009 to FR-014 (Accessibility Requirements - WCAG 2.2 AAA)
|
|
6
|
+
* @see React Aria TextField: https://react-spectrum.adobe.com/react-aria/TextField.html
|
|
7
|
+
* @see ShadCN Input: https://ui.shadcn.com/docs/components/input
|
|
8
|
+
* @see ShadCN Label: https://ui.shadcn.com/docs/components/label
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Input variant styles using CVA
|
|
12
|
+
* Adapts ShadCN Input styling with Themis semantic tokens
|
|
13
|
+
*/
|
|
14
|
+
export declare const inputVariants: (props?: ({
|
|
15
|
+
size?: "default" | "sm" | "lg" | null | undefined;
|
|
16
|
+
state?: "success" | "default" | "readonly" | "error" | "disabled" | null | undefined;
|
|
17
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
18
|
+
/**
|
|
19
|
+
* Label variant styles using CVA
|
|
20
|
+
* Adapts ShadCN Label styling with Themis semantic tokens
|
|
21
|
+
*/
|
|
22
|
+
export declare const labelVariants: (props?: ({
|
|
23
|
+
state?: "default" | "error" | "disabled" | null | undefined;
|
|
24
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
25
|
+
/**
|
|
26
|
+
* Description text variant styles
|
|
27
|
+
*/
|
|
28
|
+
export declare const descriptionVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
29
|
+
/**
|
|
30
|
+
* Error message variant styles
|
|
31
|
+
*/
|
|
32
|
+
export declare const errorMessageVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
33
|
+
/**
|
|
34
|
+
* Success message variant styles
|
|
35
|
+
*/
|
|
36
|
+
export declare const successMessageVariants: (props?: import("class-variance-authority/types").ClassProp | undefined) => string;
|
|
37
|
+
//# sourceMappingURL=TextField.styles.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TextField.styles.d.ts","sourceRoot":"","sources":["../../../src/elements/TextField/TextField.styles.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAIH;;;GAGG;AACH,eAAO,MAAM,aAAa;;;8EAyBzB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa;;8EAezB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,mBAAmB,oFAE/B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,oBAAoB,oFAEhC,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,sBAAsB,oFAElC,CAAC"}
|
|
@@ -184,6 +184,9 @@ export declare const TextFieldPropsSchema: z.ZodObject<{
|
|
|
184
184
|
expandOnFocus: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
185
185
|
collapsedWidth: z.ZodDefault<z.ZodOptional<z.ZodString>>;
|
|
186
186
|
showPasswordToggle: z.ZodOptional<z.ZodBoolean>;
|
|
187
|
+
isIconHidden: z.ZodDefault<z.ZodOptional<z.ZodBoolean>>;
|
|
188
|
+
onSubmit: z.ZodOptional<z.ZodCustom<(value: string) => void, (value: string) => void>>;
|
|
189
|
+
onClear: z.ZodOptional<z.ZodCustom<() => void, () => void>>;
|
|
187
190
|
}, z.core.$strip>;
|
|
188
191
|
export type TextFieldProps = Partial<z.infer<typeof TextFieldPropsSchema>> & Omit<AriaTextFieldProps, keyof z.infer<typeof TextFieldPropsSchema>> & {
|
|
189
192
|
onChange?: (value: string) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextField.types.d.ts","sourceRoot":"","sources":["../../../src/elements/TextField/TextField.types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAEvC,OAAO,KAAK,EACV,cAAc,IAAI,kBAAkB,EACpC,UAAU,IAAI,cAAc,EAC5B,UAAU,IAAI,cAAc,EAC5B,SAAS,IAAI,aAAa,EAC3B,MAAM,uBAAuB,CAAC;AAE/B;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAkE5B,CAAC;AAEH,MAAM,MAAM,qBAAqB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,iBAAiB,CAAC,CAAC;AActE;;;;GAIG;AACH,eAAO,MAAM,qBAAqB,GAAI,SAAS,MAAM,KAAG,OAevD,CAAC;AAEF;;;;;;;GAOG;AACH,eAAO,MAAM,oBAAoB
|
|
1
|
+
{"version":3,"file":"TextField.types.d.ts","sourceRoot":"","sources":["../../../src/elements/TextField/TextField.types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
@keyframes shake {
|
|
3
|
-
0%, 100% {
|
|
4
|
-
transform: translateX(0);
|
|
5
|
-
}
|
|
6
|
-
10%, 30%, 50%, 70%, 90% {
|
|
7
|
-
transform: translateX(-4px);
|
|
8
|
-
}
|
|
9
|
-
20%, 40%, 60%, 80% {
|
|
10
|
-
transform: translateX(4px);
|
|
11
|
-
}
|
|
12
|
-
}
|
|
13
|
-
.shake {
|
|
14
|
-
animation: shake 400ms ease-in-out;
|
|
15
|
-
}
|
|
16
|
-
@media (prefers-reduced-motion: reduce) {
|
|
17
|
-
.shake {
|
|
18
|
-
animation: none;
|
|
19
|
-
border-color: var(--destructive);
|
|
20
|
-
transition: border-color 100ms;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
1
|
+
@keyframes shake{0%,to{transform:translate(0)}10%,30%,50%,70%,90%{transform:translate(-4px)}20%,40%,60%,80%{transform:translate(4px)}}.shake{animation:shake .4s ease-in-out}@media(prefers-reduced-motion:reduce){.shake{animation:none;border-color:var(--destructive);transition:border-color .1s}}
|
|
23
2
|
/*# sourceMappingURL=index.css.map */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/elements/TextField/TextField.css"],"sourcesContent":["/**\n * TextField Component Styles\n * Additional CSS for animations and effects\n */\n\n/* Shake animation for paste prevention (Phase 3) */\n@keyframes shake {\n 0%, 100% { transform: translateX(0); }\n 10%, 30%, 50%, 70%, 90% { transform: translateX(-4px); }\n 20%, 40%, 60%, 80% { transform: translateX(4px); }\n}\n\n.shake {\n animation: shake 400ms ease-in-out;\n}\n\n/* Respect reduced motion preference (WCAG 2.2) */\n@media (prefers-reduced-motion: reduce) {\n .shake {\n animation: none;\n /* Alternative: brief border color flash */\n border-color: var(--destructive);\n transition: border-color 100ms;\n }\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"sources":["../../../src/elements/TextField/TextField.css"],"sourcesContent":["/**\n * TextField Component Styles\n * Additional CSS for animations and effects\n */\n\n/* Shake animation for paste prevention (Phase 3) */\n@keyframes shake {\n 0%, 100% { transform: translateX(0); }\n 10%, 30%, 50%, 70%, 90% { transform: translateX(-4px); }\n 20%, 40%, 60%, 80% { transform: translateX(4px); }\n}\n\n.shake {\n animation: shake 400ms ease-in-out;\n}\n\n/* Respect reduced motion preference (WCAG 2.2) */\n@media (prefers-reduced-motion: reduce) {\n .shake {\n animation: none;\n /* Alternative: brief border color flash */\n border-color: var(--destructive);\n transition: border-color 100ms;\n }\n}\n"],"mappings":"AAMA,WAAW,MACT,MAAW,UAAW,UAAW,EAAI,CACrC,oBAA0B,UAAW,UAAW,KAAO,CACvD,gBAAqB,UAAW,UAAW,IAAM,CACnD,CAEA,CANW,MAOT,UAAW,MAAM,IAAM,WACzB,CAGA,OAAO,uBAAyB,QAC9B,CAZS,MAaP,UAAW,KAEX,aAAc,IAAI,eAClB,WAAY,aAAa,GAC3B,CACF","names":[]}
|