@neynar/ui 0.1.1 → 0.1.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/components/ui/accordion.d.ts +1 -25
- package/dist/components/ui/accordion.d.ts.map +1 -1
- package/dist/components/ui/alert-dialog.d.ts +240 -46
- package/dist/components/ui/alert-dialog.d.ts.map +1 -1
- package/dist/components/ui/alert.d.ts +73 -11
- package/dist/components/ui/alert.d.ts.map +1 -1
- package/dist/components/ui/aspect-ratio.d.ts +44 -10
- package/dist/components/ui/aspect-ratio.d.ts.map +1 -1
- package/dist/components/ui/avatar.d.ts +117 -33
- package/dist/components/ui/avatar.d.ts.map +1 -1
- package/dist/components/ui/badge.d.ts +50 -71
- package/dist/components/ui/badge.d.ts.map +1 -1
- package/dist/components/ui/breadcrumb.d.ts +231 -49
- package/dist/components/ui/breadcrumb.d.ts.map +1 -1
- package/dist/components/ui/button.d.ts +189 -71
- package/dist/components/ui/button.d.ts.map +1 -1
- package/dist/components/ui/calendar.d.ts +197 -40
- package/dist/components/ui/calendar.d.ts.map +1 -1
- package/dist/components/ui/card.d.ts +7 -22
- package/dist/components/ui/card.d.ts.map +1 -1
- package/dist/components/ui/carousel.d.ts +369 -99
- package/dist/components/ui/carousel.d.ts.map +1 -1
- package/dist/components/ui/chart.d.ts.map +1 -1
- package/dist/components/ui/checkbox.d.ts +110 -38
- package/dist/components/ui/checkbox.d.ts.map +1 -1
- package/dist/components/ui/collapsible.d.ts +246 -61
- package/dist/components/ui/collapsible.d.ts.map +1 -1
- package/dist/components/ui/combobox.d.ts +207 -159
- package/dist/components/ui/combobox.d.ts.map +1 -1
- package/dist/components/ui/command.d.ts +336 -67
- package/dist/components/ui/command.d.ts.map +1 -1
- package/dist/components/ui/container.d.ts +159 -64
- package/dist/components/ui/container.d.ts.map +1 -1
- package/dist/components/ui/context-menu.d.ts +321 -39
- package/dist/components/ui/context-menu.d.ts.map +1 -1
- package/dist/components/ui/date-picker.d.ts +113 -86
- package/dist/components/ui/date-picker.d.ts.map +1 -1
- package/dist/components/ui/dialog.d.ts +106 -25
- package/dist/components/ui/dialog.d.ts.map +1 -1
- package/dist/components/ui/drawer.d.ts +388 -59
- package/dist/components/ui/drawer.d.ts.map +1 -1
- package/dist/components/ui/dropdown-menu.d.ts +521 -74
- package/dist/components/ui/dropdown-menu.d.ts.map +1 -1
- package/dist/components/ui/empty-state.d.ts +148 -76
- package/dist/components/ui/empty-state.d.ts.map +1 -1
- package/dist/components/ui/hover-card.d.ts +253 -34
- package/dist/components/ui/hover-card.d.ts.map +1 -1
- package/dist/components/ui/input.d.ts +143 -44
- package/dist/components/ui/input.d.ts.map +1 -1
- package/dist/components/ui/label.d.ts +0 -8
- package/dist/components/ui/label.d.ts.map +1 -1
- package/dist/components/ui/menubar.d.ts +288 -46
- package/dist/components/ui/menubar.d.ts.map +1 -1
- package/dist/components/ui/navigation-menu.d.ts +444 -127
- package/dist/components/ui/navigation-menu.d.ts.map +1 -1
- package/dist/components/ui/pagination.d.ts +342 -66
- package/dist/components/ui/pagination.d.ts.map +1 -1
- package/dist/components/ui/popover.d.ts +0 -8
- package/dist/components/ui/popover.d.ts.map +1 -1
- package/dist/components/ui/progress.d.ts +88 -30
- package/dist/components/ui/progress.d.ts.map +1 -1
- package/dist/components/ui/radio-group.d.ts +189 -45
- package/dist/components/ui/radio-group.d.ts.map +1 -1
- package/dist/components/ui/resizable.d.ts +178 -62
- package/dist/components/ui/resizable.d.ts.map +1 -1
- package/dist/components/ui/scroll-area.d.ts +180 -21
- package/dist/components/ui/scroll-area.d.ts.map +1 -1
- package/dist/components/ui/select.d.ts +382 -60
- package/dist/components/ui/select.d.ts.map +1 -1
- package/dist/components/ui/separator.d.ts +52 -39
- package/dist/components/ui/separator.d.ts.map +1 -1
- package/dist/components/ui/sheet.d.ts +144 -27
- package/dist/components/ui/sheet.d.ts.map +1 -1
- package/dist/components/ui/sidebar.d.ts +81 -31
- package/dist/components/ui/sidebar.d.ts.map +1 -1
- package/dist/components/ui/skeleton.d.ts +94 -32
- package/dist/components/ui/skeleton.d.ts.map +1 -1
- package/dist/components/ui/slider.d.ts +37 -31
- package/dist/components/ui/slider.d.ts.map +1 -1
- package/dist/components/ui/sonner.d.ts +280 -46
- package/dist/components/ui/sonner.d.ts.map +1 -1
- package/dist/components/ui/stack.d.ts +289 -148
- package/dist/components/ui/stack.d.ts.map +1 -1
- package/dist/components/ui/stories/aspect-ratio.stories.d.ts +1 -2
- package/dist/components/ui/stories/aspect-ratio.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/container.stories.d.ts +2 -3
- package/dist/components/ui/stories/container.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/empty-state.stories.d.ts +2 -2
- package/dist/components/ui/stories/scroll-area.stories.d.ts +1 -2
- package/dist/components/ui/stories/scroll-area.stories.d.ts.map +1 -1
- package/dist/components/ui/stories/stack.stories.d.ts +1 -1
- package/dist/components/ui/stories/text-field.stories.d.ts +7 -1
- package/dist/components/ui/stories/text-field.stories.d.ts.map +1 -1
- package/dist/components/ui/switch.d.ts +44 -38
- package/dist/components/ui/switch.d.ts.map +1 -1
- package/dist/components/ui/table.d.ts +33 -0
- package/dist/components/ui/table.d.ts.map +1 -1
- package/dist/components/ui/tabs.d.ts +4 -22
- package/dist/components/ui/tabs.d.ts.map +1 -1
- package/dist/components/ui/text-field.d.ts +170 -84
- package/dist/components/ui/text-field.d.ts.map +1 -1
- package/dist/components/ui/textarea.d.ts +106 -29
- package/dist/components/ui/textarea.d.ts.map +1 -1
- package/dist/components/ui/theme-toggle.d.ts +190 -65
- package/dist/components/ui/theme-toggle.d.ts.map +1 -1
- package/dist/components/ui/theme.d.ts +107 -23
- package/dist/components/ui/theme.d.ts.map +1 -1
- package/dist/components/ui/toggle-group.d.ts +143 -67
- package/dist/components/ui/toggle-group.d.ts.map +1 -1
- package/dist/components/ui/toggle.d.ts +118 -30
- package/dist/components/ui/toggle.d.ts.map +1 -1
- package/dist/components/ui/tooltip.d.ts +152 -28
- package/dist/components/ui/tooltip.d.ts.map +1 -1
- package/dist/components/ui/typography.d.ts +452 -134
- package/dist/components/ui/typography.d.ts.map +1 -1
- package/dist/index.js +9388 -8281
- package/dist/index.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/llms.txt +173 -3
- package/package.json +5 -2
- package/src/components/ui/accordion.tsx +112 -27
- package/src/components/ui/alert-dialog.tsx +401 -46
- package/src/components/ui/alert.tsx +114 -11
- package/src/components/ui/aspect-ratio.tsx +69 -14
- package/src/components/ui/avatar.tsx +179 -33
- package/src/components/ui/badge.tsx +74 -75
- package/src/components/ui/breadcrumb.tsx +335 -50
- package/src/components/ui/button.tsx +198 -90
- package/src/components/ui/calendar.tsx +867 -43
- package/src/components/ui/card.tsx +140 -33
- package/src/components/ui/carousel.tsx +529 -98
- package/src/components/ui/chart.tsx +222 -1
- package/src/components/ui/checkbox.tsx +176 -38
- package/src/components/ui/collapsible.tsx +321 -67
- package/src/components/ui/combobox.tsx +284 -83
- package/src/components/ui/command.tsx +527 -67
- package/src/components/ui/container.tsx +217 -65
- package/src/components/ui/context-menu.tsx +716 -51
- package/src/components/ui/date-picker.tsx +228 -38
- package/src/components/ui/dialog.tsx +270 -33
- package/src/components/ui/drawer.tsx +546 -67
- package/src/components/ui/dropdown-menu.tsx +657 -74
- package/src/components/ui/empty-state.tsx +241 -82
- package/src/components/ui/hover-card.tsx +328 -39
- package/src/components/ui/input.tsx +207 -44
- package/src/components/ui/label.tsx +98 -8
- package/src/components/ui/menubar.tsx +587 -54
- package/src/components/ui/navigation-menu.tsx +557 -128
- package/src/components/ui/pagination.tsx +561 -79
- package/src/components/ui/popover.tsx +119 -8
- package/src/components/ui/progress.tsx +131 -29
- package/src/components/ui/radio-group.tsx +260 -51
- package/src/components/ui/resizable.tsx +289 -63
- package/src/components/ui/scroll-area.tsx +377 -66
- package/src/components/ui/select.tsx +545 -60
- package/src/components/ui/separator.tsx +146 -40
- package/src/components/ui/sheet.tsx +348 -31
- package/src/components/ui/sidebar.tsx +471 -29
- package/src/components/ui/skeleton.tsx +114 -32
- package/src/components/ui/slider.tsx +77 -31
- package/src/components/ui/sonner.tsx +574 -46
- package/src/components/ui/stack.tsx +423 -101
- package/src/components/ui/switch.tsx +78 -39
- package/src/components/ui/table.tsx +170 -4
- package/src/components/ui/tabs.tsx +108 -22
- package/src/components/ui/text-field.tsx +226 -81
- package/src/components/ui/textarea.tsx +180 -29
- package/src/components/ui/theme-toggle.tsx +313 -65
- package/src/components/ui/theme.tsx +117 -23
- package/src/components/ui/toggle-group.tsx +280 -69
- package/src/components/ui/toggle.tsx +124 -35
- package/src/components/ui/tooltip.tsx +239 -29
- package/src/components/ui/typography.tsx +1115 -165
|
@@ -1,27 +1,30 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
2
|
import * as SwitchPrimitive from "@radix-ui/react-switch";
|
|
3
3
|
/**
|
|
4
|
-
* Switch
|
|
4
|
+
* Switch - Binary toggle control for on/off states
|
|
5
5
|
*
|
|
6
|
-
* A versatile toggle switch component built on Radix UI
|
|
6
|
+
* A versatile toggle switch component built on Radix UI Switch primitive that provides
|
|
7
7
|
* an accessible way to toggle between on/off states. Commonly used for settings,
|
|
8
8
|
* preferences, and feature toggles that have immediate effects.
|
|
9
9
|
*
|
|
10
10
|
* Built with Radix UI Switch primitive and styled with Tailwind CSS to ensure
|
|
11
|
-
* consistent visual appearance across light and dark themes.
|
|
11
|
+
* consistent visual appearance across light and dark themes. The component
|
|
12
|
+
* automatically handles state management, accessibility, keyboard navigation,
|
|
13
|
+
* and form integration.
|
|
12
14
|
*
|
|
13
|
-
* @example
|
|
15
|
+
* @example Basic usage with label
|
|
14
16
|
* ```tsx
|
|
15
|
-
*
|
|
17
|
+
* import { Switch } from "@/components/ui/switch";
|
|
18
|
+
* import { Label } from "@/components/ui/label";
|
|
19
|
+
*
|
|
16
20
|
* <div className="flex items-center space-x-2">
|
|
17
21
|
* <Switch id="airplane-mode" />
|
|
18
22
|
* <Label htmlFor="airplane-mode">Airplane Mode</Label>
|
|
19
23
|
* </div>
|
|
20
24
|
* ```
|
|
21
25
|
*
|
|
22
|
-
* @example
|
|
26
|
+
* @example Controlled switch with state
|
|
23
27
|
* ```tsx
|
|
24
|
-
* // Controlled switch with state
|
|
25
28
|
* const [enabled, setEnabled] = useState(false);
|
|
26
29
|
*
|
|
27
30
|
* <Switch
|
|
@@ -31,9 +34,8 @@ import * as SwitchPrimitive from "@radix-ui/react-switch";
|
|
|
31
34
|
* />
|
|
32
35
|
* ```
|
|
33
36
|
*
|
|
34
|
-
* @example
|
|
37
|
+
* @example Switch with custom handler
|
|
35
38
|
* ```tsx
|
|
36
|
-
* // Switch with custom handler
|
|
37
39
|
* <Switch
|
|
38
40
|
* checked={isDarkMode}
|
|
39
41
|
* onCheckedChange={(checked) => {
|
|
@@ -43,42 +45,46 @@ import * as SwitchPrimitive from "@radix-ui/react-switch";
|
|
|
43
45
|
* />
|
|
44
46
|
* ```
|
|
45
47
|
*
|
|
46
|
-
* @example
|
|
48
|
+
* @example Disabled states
|
|
49
|
+
* ```tsx
|
|
50
|
+
* <Switch disabled /> // Disabled unchecked
|
|
51
|
+
* <Switch disabled defaultChecked /> // Disabled checked
|
|
52
|
+
* ```
|
|
53
|
+
*
|
|
54
|
+
* @example Form integration with validation
|
|
55
|
+
* ```tsx
|
|
56
|
+
* <form>
|
|
57
|
+
* <Switch
|
|
58
|
+
* name="notifications"
|
|
59
|
+
* value="enabled"
|
|
60
|
+
* required
|
|
61
|
+
* onCheckedChange={(checked) => console.log('Notifications:', checked)}
|
|
62
|
+
* />
|
|
63
|
+
* </form>
|
|
64
|
+
* ```
|
|
65
|
+
*
|
|
66
|
+
* @example Uncontrolled with default state
|
|
47
67
|
* ```tsx
|
|
48
|
-
*
|
|
49
|
-
*
|
|
50
|
-
*
|
|
68
|
+
* <Switch defaultChecked onCheckedChange={(checked) => {
|
|
69
|
+
* // Handle state changes without controlling the value
|
|
70
|
+
* analytics.track('switch_toggled', { checked });
|
|
71
|
+
* }} />
|
|
51
72
|
* ```
|
|
52
73
|
*
|
|
53
74
|
* @accessibility
|
|
54
|
-
* -
|
|
55
|
-
* -
|
|
56
|
-
* - Screen
|
|
57
|
-
* -
|
|
58
|
-
* -
|
|
59
|
-
* -
|
|
60
|
-
* -
|
|
75
|
+
* - **Keyboard Navigation**: Space and Enter keys toggle the switch
|
|
76
|
+
* - **Focus Management**: Clear focus ring indicator with keyboard navigation
|
|
77
|
+
* - **Screen Readers**: Announces current state ("on" or "off") and changes
|
|
78
|
+
* - **ARIA Compliance**: Follows WAI-ARIA Switch pattern with proper role and attributes
|
|
79
|
+
* - **Label Association**: Works with labels via htmlFor/id pairing for proper announcements
|
|
80
|
+
* - **Form Integration**: Properly participates in form submission and validation
|
|
81
|
+
* - **Disabled State**: Clearly communicated to assistive technology with proper attributes
|
|
82
|
+
* - **State Attributes**: Uses data-state for styling and accessibility context
|
|
61
83
|
*
|
|
62
84
|
* @see {@link https://ui.shadcn.com/docs/components/switch} shadcn/ui Switch documentation
|
|
63
|
-
* @since 1.0.0
|
|
64
85
|
* @see {@link https://www.radix-ui.com/primitives/docs/components/switch} Radix UI Switch primitive
|
|
86
|
+
* @since 1.0.0
|
|
65
87
|
*/
|
|
66
|
-
|
|
67
|
-
* Switch component props
|
|
68
|
-
*
|
|
69
|
-
* Extends all props from Radix UI Switch Root primitive, including:
|
|
70
|
-
* - `checked` - The controlled checked state of the switch
|
|
71
|
-
* - `defaultChecked` - The default checked state when uncontrolled
|
|
72
|
-
* - `onCheckedChange` - Event handler called when the checked state changes
|
|
73
|
-
* - `disabled` - Whether the switch is disabled
|
|
74
|
-
* - `required` - Whether the switch is required in forms
|
|
75
|
-
* - `name` - Name attribute for form submission
|
|
76
|
-
* - `value` - Value attribute for form submission
|
|
77
|
-
*
|
|
78
|
-
* @param className - Additional CSS classes to apply to the switch
|
|
79
|
-
* @param props - All other props from Radix UI Switch Root
|
|
80
|
-
*/
|
|
81
|
-
type SwitchProps = React.ComponentProps<typeof SwitchPrimitive.Root>;
|
|
82
|
-
declare function Switch({ className, ...props }: SwitchProps): import("react/jsx-runtime").JSX.Element;
|
|
88
|
+
declare function Switch({ className, ...props }: React.ComponentProps<typeof SwitchPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
|
|
83
89
|
export { Switch };
|
|
84
90
|
//# sourceMappingURL=switch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../../../src/components/ui/switch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"switch.d.ts","sourceRoot":"","sources":["../../../src/components/ui/switch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAmC1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoFG;AACH,iBAAS,MAAM,CAAC,EACd,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,2CAkBnD;AAED,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
|
@@ -78,6 +78,28 @@ import * as React from "react";
|
|
|
78
78
|
* </Table>
|
|
79
79
|
* ```
|
|
80
80
|
*
|
|
81
|
+
* @example
|
|
82
|
+
* ```tsx
|
|
83
|
+
* // Table with custom attributes for data integration
|
|
84
|
+
* <Table role="table" aria-label="User analytics dashboard">
|
|
85
|
+
* <TableCaption>Showing 1-10 of 50 users</TableCaption>
|
|
86
|
+
* <TableHeader>
|
|
87
|
+
* <TableRow>
|
|
88
|
+
* <TableHead scope="col">User</TableHead>
|
|
89
|
+
* <TableHead scope="col">FID</TableHead>
|
|
90
|
+
* <TableHead scope="col" className="text-right">Casts</TableHead>
|
|
91
|
+
* </TableRow>
|
|
92
|
+
* </TableHeader>
|
|
93
|
+
* <TableBody>
|
|
94
|
+
* <TableRow data-user-id="3">
|
|
95
|
+
* <TableCell>@dwr.eth</TableCell>
|
|
96
|
+
* <TableCell>3</TableCell>
|
|
97
|
+
* <TableCell className="text-right">1,234</TableCell>
|
|
98
|
+
* </TableRow>
|
|
99
|
+
* </TableBody>
|
|
100
|
+
* </Table>
|
|
101
|
+
* ```
|
|
102
|
+
*
|
|
81
103
|
* @accessibility
|
|
82
104
|
* - Semantic HTML table structure with thead, tbody, tfoot elements
|
|
83
105
|
* - Screen reader navigation with proper table headers and data relationships
|
|
@@ -85,14 +107,19 @@ import * as React from "react";
|
|
|
85
107
|
* - Caption support for table descriptions and context
|
|
86
108
|
* - Selection states communicated via data-state attributes
|
|
87
109
|
* - Keyboard navigation support for interactive elements
|
|
110
|
+
* - TableHead components automatically provide column context for screen readers
|
|
111
|
+
* - Table container ensures content remains accessible during horizontal scroll
|
|
88
112
|
*
|
|
89
113
|
* @see {@link https://ui.shadcn.com/docs/components/table} shadcn/ui Table documentation
|
|
90
114
|
* @see {@link https://ui.shadcn.com/docs/components/data-table} TanStack Table integration
|
|
115
|
+
* @see {@link https://tanstack.com/table} TanStack Table library for advanced features
|
|
91
116
|
* @see {@link TableHeader} Table header container component
|
|
92
117
|
* @see {@link TableBody} Table body container component
|
|
93
118
|
* @see {@link TableRow} Table row component with hover and selection states
|
|
94
119
|
* @see {@link TableCell} Table data cell component
|
|
95
120
|
* @see {@link TableHead} Table header cell component
|
|
121
|
+
* @see {@link TableFooter} Table footer container for summary data
|
|
122
|
+
* @see {@link TableCaption} Table caption component for descriptions
|
|
96
123
|
* @since 1.0.0
|
|
97
124
|
*/
|
|
98
125
|
declare function Table({ className, ...props }: React.ComponentProps<"table">): import("react/jsx-runtime").JSX.Element;
|
|
@@ -207,6 +234,9 @@ declare function TableFooter({ className, ...props }: React.ComponentProps<"tfoo
|
|
|
207
234
|
* - Hover state enhances interactivity and focus
|
|
208
235
|
* - Semantic tr element maintains table structure
|
|
209
236
|
* - Visual feedback for user interactions
|
|
237
|
+
* - Compatible with keyboard navigation patterns
|
|
238
|
+
* - Selection state changes are announced to screen readers
|
|
239
|
+
* - Transition animations provide smooth visual feedback
|
|
210
240
|
* @since 1.0.0
|
|
211
241
|
*/
|
|
212
242
|
declare function TableRow({ className, ...props }: React.ComponentProps<"tr">): import("react/jsx-runtime").JSX.Element;
|
|
@@ -240,6 +270,9 @@ declare function TableRow({ className, ...props }: React.ComponentProps<"tr">):
|
|
|
240
270
|
* - Screen readers announce as column headers for navigation
|
|
241
271
|
* - Supports scope attribute for complex table relationships
|
|
242
272
|
* - Special checkbox styling maintains proper alignment
|
|
273
|
+
* - Automatically provides column context for data cells
|
|
274
|
+
* - Works with sorting and filtering interaction patterns
|
|
275
|
+
* - Maintains proper focus order for keyboard navigation
|
|
243
276
|
* @since 1.0.0
|
|
244
277
|
*/
|
|
245
278
|
declare function TableHead({ className, ...props }: React.ComponentProps<"th">): import("react/jsx-runtime").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../src/components/ui/table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"table.d.ts","sourceRoot":"","sources":["../../../src/components/ui/table.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AA4I/B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0HG;AACH,iBAAS,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,2CAapE;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,2CAQ1E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,2CAQxE;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,iBAAS,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,2CAW1E;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAgCG;AACH,iBAAS,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,2CAWpE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,2CAWrE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqCG;AACH,iBAAS,SAAS,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,IAAI,CAAC,2CAWrE;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,iBAAS,YAAY,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,2CAQ7E;AAED,OAAO,EACL,KAAK,EACL,WAAW,EACX,SAAS,EACT,WAAW,EACX,SAAS,EACT,QAAQ,EACR,SAAS,EACT,YAAY,GACb,CAAC"}
|
|
@@ -84,21 +84,13 @@ import * as TabsPrimitive from "@radix-ui/react-tabs";
|
|
|
84
84
|
* </Tabs>
|
|
85
85
|
* ```
|
|
86
86
|
*
|
|
87
|
-
* @param defaultValue - The initial active tab (uncontrolled usage)
|
|
88
|
-
* @param value - The currently active tab (controlled usage)
|
|
89
|
-
* @param onValueChange - Callback fired when the active tab changes
|
|
90
|
-
* @param orientation - Layout direction: "horizontal" (default) or "vertical"
|
|
91
|
-
* @param dir - Text direction for RTL support: "ltr" or "rtl"
|
|
92
|
-
* @param activationMode - When tabs activate: "automatic" (on focus) or "manual" (on click/enter)
|
|
93
|
-
* @param className - Additional CSS classes to apply
|
|
94
|
-
* @param children - Tab list, content panels, and other child elements
|
|
95
|
-
*
|
|
96
87
|
* @accessibility
|
|
97
88
|
* - **Keyboard Navigation**: Arrow keys navigate between tabs, Tab/Shift+Tab moves focus into/out of tab list
|
|
98
89
|
* - **Focus Management**: Home/End keys jump to first/last tab, proper focus visible indicators
|
|
99
90
|
* - **Screen Readers**: Proper ARIA roles (tablist, tab, tabpanel), labels, and state announcements
|
|
100
91
|
* - **Touch Support**: Touch-friendly trigger areas with appropriate spacing
|
|
101
92
|
* - **RTL Support**: Respects text direction for proper layout in right-to-left languages
|
|
93
|
+
* - **Activation Modes**: Automatic (focus) or manual (click/enter) activation patterns
|
|
102
94
|
*
|
|
103
95
|
* @see {@link https://ui.shadcn.com/docs/components/tabs} shadcn/ui tabs documentation
|
|
104
96
|
* @see {@link https://www.radix-ui.com/primitives/docs/components/tabs} Radix UI tabs primitive
|
|
@@ -145,13 +137,11 @@ declare function Tabs({ className, ...props }: React.ComponentProps<typeof TabsP
|
|
|
145
137
|
* </TabsList>
|
|
146
138
|
* ```
|
|
147
139
|
*
|
|
148
|
-
* @param className - Additional CSS classes for custom styling
|
|
149
|
-
* @param children - TabsTrigger components to be grouped
|
|
150
|
-
*
|
|
151
140
|
* @accessibility
|
|
152
141
|
* - Implements ARIA tablist role for screen readers
|
|
153
142
|
* - Maintains proper tab order and focus management
|
|
154
143
|
* - Supports keyboard navigation between triggers
|
|
144
|
+
* - Loop navigation when enabled (default: true)
|
|
155
145
|
*
|
|
156
146
|
* @since 1.0.0
|
|
157
147
|
*/
|
|
@@ -183,17 +173,13 @@ declare function TabsList({ className, ...props }: React.ComponentProps<typeof T
|
|
|
183
173
|
* </TabsTrigger>
|
|
184
174
|
* ```
|
|
185
175
|
*
|
|
186
|
-
* @param value - Unique identifier that associates this trigger with its content panel
|
|
187
|
-
* @param disabled - When true, prevents interaction and shows disabled styling
|
|
188
|
-
* @param className - Additional CSS classes for custom styling
|
|
189
|
-
* @param children - Content to display within the trigger (text, icons, etc.)
|
|
190
|
-
*
|
|
191
176
|
* @accessibility
|
|
192
177
|
* - Implements ARIA tab role with proper attributes
|
|
193
178
|
* - Announces selected state to screen readers
|
|
194
179
|
* - Supports keyboard activation (Space, Enter)
|
|
195
180
|
* - Shows focus visible indicators for keyboard users
|
|
196
181
|
* - Respects disabled state for assistive technology
|
|
182
|
+
* - Data attributes: [data-state], [data-disabled], [data-orientation]
|
|
197
183
|
*
|
|
198
184
|
* @since 1.0.0
|
|
199
185
|
*/
|
|
@@ -242,16 +228,12 @@ declare function TabsTrigger({ className, ...props }: React.ComponentProps<typeo
|
|
|
242
228
|
* </TabsContent>
|
|
243
229
|
* ```
|
|
244
230
|
*
|
|
245
|
-
* @param value - Unique identifier that associates this content with its trigger
|
|
246
|
-
* @param forceMount - When true, content stays mounted even when inactive (useful for preserving state)
|
|
247
|
-
* @param className - Additional CSS classes for custom styling
|
|
248
|
-
* @param children - The content to display when this tab is active
|
|
249
|
-
*
|
|
250
231
|
* @accessibility
|
|
251
232
|
* - Implements ARIA tabpanel role with proper labeling
|
|
252
233
|
* - Hidden from screen readers when inactive
|
|
253
234
|
* - Receives focus when tab is activated via keyboard
|
|
254
235
|
* - Maintains focus within panel content
|
|
236
|
+
* - Supports forceMount for animation control
|
|
255
237
|
*
|
|
256
238
|
* @since 1.0.0
|
|
257
239
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../../src/components/ui/tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,aAAa,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../../src/components/ui/tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B,OAAO,KAAK,aAAa,MAAM,sBAAsB,CAAC;AA4GtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkGG;AACH,iBAAS,IAAI,CAAC,EACZ,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC,2CAQjD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,iBAAS,QAAQ,CAAC,EAChB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC,2CAWjD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC,2CAWpD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,iBAAS,WAAW,CAAC,EACnB,SAAS,EACT,GAAG,KAAK,EACT,EAAE,KAAK,CAAC,cAAc,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC,2CAQpD;AAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC"}
|
|
@@ -1,100 +1,75 @@
|
|
|
1
1
|
import * as React from "react";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
*
|
|
5
|
-
* Extends standard HTML input properties while omitting 'id' to allow
|
|
6
|
-
* automatic ID generation for accessibility.
|
|
7
|
-
*/
|
|
8
|
-
export type TextFieldProps = Omit<React.ComponentProps<"input">, "id"> & {
|
|
9
|
-
/**
|
|
10
|
-
* Label text displayed above the input
|
|
11
|
-
*
|
|
12
|
-
* When provided, creates a semantic label-input relationship
|
|
13
|
-
* for improved accessibility and user experience.
|
|
14
|
-
*/
|
|
2
|
+
import { Input } from "./input";
|
|
3
|
+
type TextFieldProps = {
|
|
15
4
|
label?: string;
|
|
16
|
-
/**
|
|
17
|
-
* Helper text displayed below the input
|
|
18
|
-
*
|
|
19
|
-
* Provides additional context or instructions to help users
|
|
20
|
-
* understand the expected input format or purpose.
|
|
21
|
-
*/
|
|
22
5
|
helperText?: string;
|
|
23
|
-
/**
|
|
24
|
-
* Error message displayed below the input
|
|
25
|
-
*
|
|
26
|
-
* When provided, sets the input to an error state with
|
|
27
|
-
* destructive styling and proper ARIA attributes.
|
|
28
|
-
* Takes precedence over helperText when both are present.
|
|
29
|
-
*/
|
|
30
6
|
error?: string;
|
|
31
|
-
/**
|
|
32
|
-
* Whether the field is required
|
|
33
|
-
*
|
|
34
|
-
* Adds a visual asterisk (*) indicator to the label
|
|
35
|
-
* and semantic meaning for form validation.
|
|
36
|
-
*
|
|
37
|
-
* @default false
|
|
38
|
-
*/
|
|
39
7
|
required?: boolean;
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
*
|
|
43
|
-
* If not provided, an automatic ID will be generated
|
|
44
|
-
* using React.useId() for accessibility compliance.
|
|
45
|
-
*/
|
|
46
|
-
id?: string;
|
|
47
|
-
};
|
|
8
|
+
className?: string;
|
|
9
|
+
} & Omit<React.ComponentProps<typeof Input>, "className">;
|
|
48
10
|
/**
|
|
49
|
-
*
|
|
11
|
+
* TextField - Complete form field with label, input, and descriptive text
|
|
50
12
|
*
|
|
51
|
-
*
|
|
52
|
-
*
|
|
53
|
-
*
|
|
54
|
-
*
|
|
13
|
+
* A comprehensive form field component that combines Input and Label components with
|
|
14
|
+
* additional helper text and error handling capabilities. Automatically manages
|
|
15
|
+
* accessibility attributes, ID generation, and ARIA relationships to ensure forms
|
|
16
|
+
* are usable by all users including those using assistive technologies.
|
|
55
17
|
*
|
|
56
|
-
*
|
|
57
|
-
*
|
|
58
|
-
*
|
|
18
|
+
* Built on top of the Input and Label primitives, TextField provides a complete
|
|
19
|
+
* form field solution with consistent styling, proper semantic markup, and enhanced
|
|
20
|
+
* UX features. Supports all HTML input types while adding form validation states,
|
|
21
|
+
* descriptive text, and automatic accessibility compliance.
|
|
59
22
|
*
|
|
60
|
-
* @example
|
|
23
|
+
* @example
|
|
61
24
|
* ```tsx
|
|
25
|
+
* // Basic text input with label
|
|
62
26
|
* <TextField
|
|
63
27
|
* label="Email Address"
|
|
64
28
|
* type="email"
|
|
65
29
|
* placeholder="Enter your email"
|
|
30
|
+
* name="email"
|
|
66
31
|
* />
|
|
67
32
|
* ```
|
|
68
33
|
*
|
|
69
|
-
* @example
|
|
34
|
+
* @example
|
|
70
35
|
* ```tsx
|
|
36
|
+
* // Required field with helper text
|
|
71
37
|
* <TextField
|
|
72
38
|
* label="Username"
|
|
73
39
|
* placeholder="@username"
|
|
74
|
-
* helperText="Choose a unique username (3-20 characters)"
|
|
40
|
+
* helperText="Choose a unique username (3-20 characters, letters and numbers only)"
|
|
41
|
+
* required
|
|
42
|
+
* minLength={3}
|
|
43
|
+
* maxLength={20}
|
|
44
|
+
* pattern="[a-zA-Z0-9]+"
|
|
75
45
|
* />
|
|
76
46
|
* ```
|
|
77
47
|
*
|
|
78
|
-
* @example
|
|
48
|
+
* @example
|
|
79
49
|
* ```tsx
|
|
50
|
+
* // Password field with validation error
|
|
80
51
|
* <TextField
|
|
81
52
|
* label="Password"
|
|
82
53
|
* type="password"
|
|
83
54
|
* required
|
|
84
|
-
* error="Password must be at least 8 characters"
|
|
55
|
+
* error="Password must be at least 8 characters long"
|
|
85
56
|
* value={password}
|
|
86
57
|
* onChange={(e) => setPassword(e.target.value)}
|
|
58
|
+
* minLength={8}
|
|
59
|
+
* autoComplete="new-password"
|
|
87
60
|
* />
|
|
88
61
|
* ```
|
|
89
62
|
*
|
|
90
|
-
* @example
|
|
63
|
+
* @example
|
|
91
64
|
* ```tsx
|
|
65
|
+
* // Controlled component with real-time validation
|
|
92
66
|
* const [email, setEmail] = useState("");
|
|
93
67
|
* const [error, setError] = useState("");
|
|
94
68
|
*
|
|
95
69
|
* const validateEmail = (value: string) => {
|
|
96
|
-
*
|
|
97
|
-
*
|
|
70
|
+
* const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
|
|
71
|
+
* if (!emailRegex.test(value)) {
|
|
72
|
+
* setError("Please enter a valid email address");
|
|
98
73
|
* } else {
|
|
99
74
|
* setError("");
|
|
100
75
|
* }
|
|
@@ -108,50 +83,161 @@ export type TextFieldProps = Omit<React.ComponentProps<"input">, "id"> & {
|
|
|
108
83
|
* setEmail(e.target.value);
|
|
109
84
|
* validateEmail(e.target.value);
|
|
110
85
|
* }}
|
|
86
|
+
* onBlur={(e) => validateEmail(e.target.value)}
|
|
111
87
|
* error={error}
|
|
112
88
|
* required
|
|
89
|
+
* autoComplete="email"
|
|
90
|
+
* />
|
|
91
|
+
* ```
|
|
92
|
+
*
|
|
93
|
+
* @example
|
|
94
|
+
* ```tsx
|
|
95
|
+
* // Number input with constraints
|
|
96
|
+
* <TextField
|
|
97
|
+
* label="Age"
|
|
98
|
+
* type="number"
|
|
99
|
+
* min={0}
|
|
100
|
+
* max={120}
|
|
101
|
+
* step={1}
|
|
102
|
+
* helperText="Enter your age in years"
|
|
103
|
+
* placeholder="25"
|
|
113
104
|
* />
|
|
114
105
|
* ```
|
|
115
106
|
*
|
|
116
|
-
* @example
|
|
107
|
+
* @example
|
|
117
108
|
* ```tsx
|
|
118
|
-
*
|
|
109
|
+
* // Search input with custom styling
|
|
110
|
+
* <TextField
|
|
111
|
+
* label="Search"
|
|
112
|
+
* type="search"
|
|
113
|
+
* placeholder="Search products..."
|
|
114
|
+
* className="max-w-md"
|
|
115
|
+
* onKeyDown={(e) => {
|
|
116
|
+
* if (e.key === 'Enter') {
|
|
117
|
+
* handleSearch(e.currentTarget.value);
|
|
118
|
+
* }
|
|
119
|
+
* }}
|
|
120
|
+
* />
|
|
121
|
+
* ```
|
|
122
|
+
*
|
|
123
|
+
* @example
|
|
124
|
+
* ```tsx
|
|
125
|
+
* // Form integration with React Hook Form
|
|
126
|
+
* const { register, formState: { errors } } = useForm();
|
|
127
|
+
*
|
|
128
|
+
* <form onSubmit={handleSubmit(onSubmit)}>
|
|
119
129
|
* <TextField
|
|
120
130
|
* label="Full Name"
|
|
121
|
-
*
|
|
122
|
-
*
|
|
123
|
-
* helperText="
|
|
131
|
+
* {...register("fullName", { required: "Full name is required" })}
|
|
132
|
+
* error={errors.fullName?.message}
|
|
133
|
+
* helperText="Enter your first and last name"
|
|
124
134
|
* />
|
|
135
|
+
*
|
|
125
136
|
* <TextField
|
|
126
|
-
* label="
|
|
127
|
-
* type="
|
|
128
|
-
*
|
|
129
|
-
*
|
|
130
|
-
*
|
|
137
|
+
* label="Phone Number"
|
|
138
|
+
* type="tel"
|
|
139
|
+
* {...register("phone", {
|
|
140
|
+
* pattern: {
|
|
141
|
+
* value: /^[\+]?[1-9][\d]{0,15}$/,
|
|
142
|
+
* message: "Please enter a valid phone number"
|
|
143
|
+
* }
|
|
144
|
+
* })}
|
|
145
|
+
* error={errors.phone?.message}
|
|
146
|
+
* autoComplete="tel"
|
|
131
147
|
* />
|
|
132
148
|
* </form>
|
|
133
149
|
* ```
|
|
134
150
|
*
|
|
135
|
-
*
|
|
151
|
+
* @example
|
|
152
|
+
* ```tsx
|
|
153
|
+
* // File input with custom validation
|
|
154
|
+
* <TextField
|
|
155
|
+
* label="Profile Picture"
|
|
156
|
+
* type="file"
|
|
157
|
+
* accept="image/*"
|
|
158
|
+
* helperText="Upload a PNG, JPG or GIF (max 5MB)"
|
|
159
|
+
* onChange={(e) => {
|
|
160
|
+
* const file = e.target.files?.[0];
|
|
161
|
+
* if (file && file.size > 5 * 1024 * 1024) {
|
|
162
|
+
* setError("File size must be less than 5MB");
|
|
163
|
+
* } else {
|
|
164
|
+
* setError("");
|
|
165
|
+
* handleFileUpload(file);
|
|
166
|
+
* }
|
|
167
|
+
* }}
|
|
168
|
+
* error={fileError}
|
|
169
|
+
* />
|
|
170
|
+
* ```
|
|
171
|
+
*
|
|
172
|
+
* @example
|
|
173
|
+
* ```tsx
|
|
174
|
+
* // Date input with range constraints
|
|
175
|
+
* <TextField
|
|
176
|
+
* label="Birth Date"
|
|
177
|
+
* type="date"
|
|
178
|
+
* min="1900-01-01"
|
|
179
|
+
* max={new Date().toISOString().split('T')[0]}
|
|
180
|
+
* helperText="You must be 18 or older to register"
|
|
181
|
+
* required
|
|
182
|
+
* />
|
|
183
|
+
* ```
|
|
136
184
|
*
|
|
137
|
-
*
|
|
138
|
-
*
|
|
139
|
-
*
|
|
140
|
-
*
|
|
141
|
-
*
|
|
142
|
-
*
|
|
185
|
+
* @example
|
|
186
|
+
* ```tsx
|
|
187
|
+
* // Disabled field with explanation
|
|
188
|
+
* <TextField
|
|
189
|
+
* label="Account ID"
|
|
190
|
+
* value="ACC-12345"
|
|
191
|
+
* disabled
|
|
192
|
+
* helperText="This value is automatically generated and cannot be changed"
|
|
193
|
+
* />
|
|
194
|
+
* ```
|
|
195
|
+
*
|
|
196
|
+
* @accessibility
|
|
197
|
+
* - **Semantic Association**: Proper label-input relationship via `htmlFor` and `id` attributes
|
|
198
|
+
* - **ARIA Support**: Implements `aria-invalid`, `aria-describedby`, and `aria-required` attributes
|
|
199
|
+
* - **Focus Management**: Keyboard navigation with visible focus indicators and proper tab order
|
|
200
|
+
* - **Screen Reader Support**: Helper text and error messages are properly announced via `aria-describedby`
|
|
201
|
+
* - **Required Fields**: Visual asterisk indicator and semantic `aria-required` for screen readers
|
|
202
|
+
* - **Error States**: Clear visual styling and programmatic error indication with `aria-invalid`
|
|
203
|
+
* - **Automatic ID Generation**: Uses `React.useId()` to prevent conflicts and ensure accessibility
|
|
204
|
+
* - **Click-to-Focus**: Clicking the label automatically focuses the input field
|
|
205
|
+
* - **Disabled State**: Proper disabled styling and screen reader announcements
|
|
206
|
+
* - **Validation Support**: Works with native HTML5 validation and custom validation libraries
|
|
143
207
|
*
|
|
144
|
-
*
|
|
208
|
+
* @remarks
|
|
209
|
+
* The TextField component automatically handles:
|
|
210
|
+
* - ID generation and label-input association for accessibility compliance
|
|
211
|
+
* - ARIA attribute management based on component state (error, required, helper text)
|
|
212
|
+
* - Error state precedence over helper text display
|
|
213
|
+
* - Focus management and keyboard navigation patterns
|
|
214
|
+
* - Consistent styling inheritance from Input and Label components
|
|
215
|
+
* - Screen reader compatibility with proper announcements
|
|
145
216
|
*
|
|
146
|
-
*
|
|
147
|
-
* - Error state styling with destructive colors
|
|
148
|
-
* - Consistent spacing with `space-y-2` utility
|
|
149
|
-
* - Muted foreground color for helper text
|
|
150
|
-
* - Required field indicator styling
|
|
217
|
+
* ## Component Composition
|
|
151
218
|
*
|
|
152
|
-
*
|
|
153
|
-
*
|
|
154
|
-
*
|
|
219
|
+
* TextField is composed of:
|
|
220
|
+
* - **Root Container**: `div` with `space-y-2` for consistent spacing
|
|
221
|
+
* - **Label**: Radix UI Label primitive with proper association and styling
|
|
222
|
+
* - **Input**: Enhanced HTML input with design system styling and validation states
|
|
223
|
+
* - **Helper/Error Text**: Conditional paragraph elements with proper ARIA linking
|
|
224
|
+
*
|
|
225
|
+
* ## Input Type Support
|
|
226
|
+
*
|
|
227
|
+
* Supports all HTML input types including:
|
|
228
|
+
* - **Text Types**: `text`, `email`, `password`, `tel`, `url`, `search`
|
|
229
|
+
* - **Numeric Types**: `number`, `range` (with min/max/step support)
|
|
230
|
+
* - **Date/Time Types**: `date`, `datetime-local`, `month`, `time`, `week`
|
|
231
|
+
* - **Other Types**: `file`, `hidden`, `color`, `checkbox`, `radio`
|
|
232
|
+
*
|
|
233
|
+
* @see {@link Input} The underlying input component with styling and validation
|
|
234
|
+
* @see {@link Label} The label component used for accessible field labels
|
|
235
|
+
* @see {@link https://ui.shadcn.com/docs/components/input} shadcn/ui Input documentation
|
|
236
|
+
* @see {@link https://www.radix-ui.com/primitives/docs/components/label} Radix UI Label primitive
|
|
237
|
+
* @see {@link https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input} MDN Input element reference
|
|
238
|
+
* @see {@link https://www.w3.org/WAI/tutorials/forms/} W3C Forms accessibility tutorial
|
|
239
|
+
* @since 1.0.0
|
|
240
|
+
*/
|
|
155
241
|
declare const TextField: React.ForwardRefExoticComponent<Omit<TextFieldProps, "ref"> & React.RefAttributes<HTMLInputElement>>;
|
|
156
242
|
export { TextField };
|
|
157
243
|
//# sourceMappingURL=text-field.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"text-field.d.ts","sourceRoot":"","sources":["../../../src/components/ui/text-field.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"text-field.d.ts","sourceRoot":"","sources":["../../../src/components/ui/text-field.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AA+DhC,KAAK,cAAc,GAAG;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,KAAK,CAAC,EAAE,WAAW,CAAC,CAAC;AAE1D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsOG;AACH,QAAA,MAAM,SAAS,sGA0Cd,CAAC;AAIF,OAAO,EAAE,SAAS,EAAE,CAAC"}
|