Skip to content

Commit 23c59c4

Browse files
committed
refactor: migrate form components to a new structure and update imports
- Renamed and exported ButtonGroup as a standalone component. - Removed deprecated FormErrorMessage and FormLegend components. - Introduced new form components: Caption, Checkbox, ControlGroup, Fieldset, Input, Label, Legend, Message, Option, Radio, Select, Separator, Textarea. - Updated imports across various components to use the new form structure. - Adjusted styling and class names for consistency. - Refactored error handling to utilize the new Message component.
1 parent 7ef40bd commit 23c59c4

File tree

32 files changed

+497
-278
lines changed

32 files changed

+497
-278
lines changed

packages/ui/src/components/button-group.tsx

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,13 @@ interface ButtonGroupProps {
1010
verticalAlign?: string
1111
}
1212

13-
function Root({ children, direction = 'horizontal', className, spacing = '4', verticalAlign }: ButtonGroupProps) {
13+
export function ButtonGroup({
14+
children,
15+
direction = 'horizontal',
16+
className,
17+
spacing = '4',
18+
verticalAlign
19+
}: ButtonGroupProps) {
1420
const gapClass = `gap-${spacing}`
1521
const verticalAlignClass = verticalAlign ? `items-${verticalAlign}` : ''
1622

@@ -20,5 +26,3 @@ function Root({ children, direction = 'horizontal', className, spacing = '4', ve
2026
</div>
2127
)
2228
}
23-
24-
export { Root }

packages/ui/src/components/filters/filter-trigger.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from '@components/dropdown-menu'
2+
import { Input } from '@components/form'
23
import { Icon } from '@components/icon'
3-
import { Input } from '@components/input'
44
import { TFunction } from 'i18next'
55

66
import { FilterOption, SortOption } from './types'

packages/ui/src/components/filters/filters-bar/filter-variants/calendar.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { useState } from 'react'
22

33
import { Calendar as UICalendar, type CalendarDateRange } from '@components/calendar'
4-
import { Input } from '@components/input'
4+
import { Input } from '@components/form'
55
import { cn } from '@utils/cn'
66

77
import { FilterValue } from '../../types'

packages/ui/src/components/filters/filters-bar/filter-variants/checkbox.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { DropdownMenuCheckboxItem } from '@components/dropdown-menu'
2+
import { Input } from '@components/form'
23
import { Icon } from '@components/icon'
3-
import { Input } from '@components/input'
44

55
import { CheckboxFilterOption, FilterValue } from '../../types'
66
import { UseFiltersReturn } from '../../use-filters'

packages/ui/src/components/filters/filters-bar/filter-variants/number.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { useState } from 'react'
22

3+
import { Input } from '@components/form'
34
import { Icon } from '@components/icon'
4-
import { Input } from '@components/input'
55

66
import { FilterValue } from '../../types'
77
import { UseFiltersReturn } from '../../use-filters'

packages/ui/src/components/filters/filters-bar/filter-variants/text.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { useState } from 'react'
22

33
import { DropdownMenuItem } from '@components/dropdown-menu'
4+
import { Input } from '@components/form'
45
import { Icon } from '@components/icon'
5-
import { Input } from '@components/input'
66

77
import { FilterValue } from '../../types'
88
import { UseFiltersReturn } from '../../use-filters'

packages/ui/src/components/filters/filters-bar/sorts.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
import { useEffect, useState } from 'react'
22

33
import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger } from '@components/dropdown-menu'
4+
import { Input } from '@components/form'
45
import { Icon } from '@components/icon'
5-
import { Input } from '@components/input'
66
import { closestCenter, DndContext } from '@dnd-kit/core'
77
import { SortableContext, useSortable, verticalListSortingStrategy } from '@dnd-kit/sortable'
88
import { CSS } from '@dnd-kit/utilities'

packages/ui/src/components/form-error-message.tsx

Lines changed: 0 additions & 37 deletions
This file was deleted.

packages/ui/src/components/form-legend.tsx

Lines changed: 0 additions & 24 deletions
This file was deleted.
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import { PropsWithChildren } from 'react'
2+
3+
import { Text } from '@/components'
4+
import { cn } from '@utils/cn'
5+
6+
interface CaptionProps extends PropsWithChildren {
7+
className?: string
8+
}
9+
10+
/**
11+
* Caption component that renders supplementary text below form inputs.
12+
* Used to provide additional context or hints for form fields.
13+
*
14+
* @param {CaptionProps} props - The properties for the Caption component.
15+
* @param {React.ReactNode} props.children - The content to be displayed as the caption text.
16+
* @param {string} [props.className] - Optional additional class names for styling.
17+
* @returns {JSX.Element} The rendered Caption component.
18+
*/
19+
export function Caption({ children, className }: CaptionProps) {
20+
return (
21+
<Text className={cn('text-foreground-4 mt-1 leading-snug', className)} size={2}>
22+
{children}
23+
</Text>
24+
)
25+
}

0 commit comments

Comments
 (0)