@ssa-ui-kit/core 2.33.0 → 3.1.0
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/AccordionGroup/Accordion.d.ts +37 -0
- package/dist/components/AccordionGroup/AccordionContent.d.ts +48 -0
- package/dist/components/AccordionGroup/AccordionContext.d.ts +76 -2
- package/dist/components/AccordionGroup/AccordionGroup.d.ts +56 -0
- package/dist/components/AccordionGroup/AccordionTitle.d.ts +41 -0
- package/dist/components/AccordionGroup/types.d.ts +199 -1
- package/dist/components/Avatar/Avatar.d.ts +33 -0
- package/dist/components/Button/Button.d.ts +61 -0
- package/dist/components/Button/fixtures.d.ts +52 -31
- package/dist/components/Button/styles.d.ts +7 -12
- package/dist/components/Button/types.d.ts +98 -4
- package/dist/components/Charts/BarGaugeChart/components/BarGaugeChartHeader.d.ts +1 -1
- package/dist/components/Charts/BarLineComplexChart/BarLineComplexChartView.d.ts +2 -2
- package/dist/components/Charts/BarLineComplexChart/types.d.ts +2 -2
- package/dist/components/Charts/BigNumberChart/BigNumberChart.d.ts +4 -2
- package/dist/components/Charts/BigNumberChart/components/BigNumberChartHeader.d.ts +1 -1
- package/dist/components/Charts/BigNumberChart/components/TrendLine.d.ts +8 -3
- package/dist/components/Charts/BigNumberChart/components/TrendLineTooltip.d.ts +8 -5
- package/dist/components/Charts/GaugeChart/components/GaugeChartBase.d.ts +3 -1
- package/dist/components/Charts/GaugeChart/components/GaugeChartHeader.d.ts +1 -1
- package/dist/components/Charts/PieChart/PieChartLegendMarker.d.ts +1 -1
- package/dist/components/Charts/PieChart/styles.d.ts +1 -1
- package/dist/components/Charts/PieChart/types.d.ts +1 -1
- package/dist/components/Charts/RadarChart/RadarChart.d.ts +1 -1
- package/dist/components/Charts/RadarChart/components/RadarChartHeader.d.ts +1 -1
- package/dist/components/Charts/TreeMapChart/TreeMapChart.d.ts +1 -1
- package/dist/components/Charts/TreeMapChart/TreeMapChartHeader.d.ts +1 -1
- package/dist/components/Charts/index.d.ts +1 -0
- package/dist/components/Charts/utils/nivoReact19Compat.d.ts +18 -0
- package/dist/components/Checkbox/Checkbox.d.ts +84 -0
- package/dist/components/Checkbox/CheckboxBase.d.ts +1 -1
- package/dist/components/Checkbox/styles.d.ts +2 -2
- package/dist/components/Checkbox/types.d.ts +104 -3
- package/dist/components/Chip/Chip.d.ts +70 -0
- package/dist/components/Chip/constants.d.ts +1 -1
- package/dist/components/Chip/helpers.d.ts +6 -0
- package/dist/components/Chip/types.d.ts +129 -1
- package/dist/components/CollapsibleNavBar/CollapsibleNavBar.d.ts +1 -1
- package/dist/components/CollapsibleNavBar/CollapsibleNavBarContext.d.ts +2 -2
- package/dist/components/CollapsibleNavBar/components/TriggerIcon.d.ts +4 -2
- package/dist/components/CollapsibleNavBar/types.d.ts +9 -2
- package/dist/components/ColorPicker/components/CopyButton.d.ts +1 -1
- package/dist/components/DatePicker/constants.d.ts +22 -0
- package/dist/components/DatePicker/hooks/useDatePicker.d.ts +7 -5
- package/dist/components/DatePicker/index.d.ts +1 -0
- package/dist/components/DatePicker/styles.d.ts +3 -2
- package/dist/components/DatePicker/types.d.ts +10 -2
- package/dist/components/DatePicker/utils/dates.d.ts +2 -2
- package/dist/components/DateRangePicker/DateRangePicker.d.ts +1 -1
- package/dist/components/DateRangePicker/DateRangePickerFormBridge.d.ts +46 -0
- package/dist/components/DateRangePicker/components/DatesListWrapper.d.ts +3 -2
- package/dist/components/DateRangePicker/constants.d.ts +1 -0
- package/dist/components/DateRangePicker/hooks/useDateRangePicker.d.ts +22 -17
- package/dist/components/DateRangePicker/index.d.ts +3 -0
- package/dist/components/DateRangePicker/styles.d.ts +6 -4
- package/dist/components/DateRangePicker/types.d.ts +24 -7
- package/dist/components/DateRangePicker/utils/dates.d.ts +2 -2
- package/dist/components/Drawer/index.d.ts +2 -1
- package/dist/components/Dropdown/Dropdown.d.ts +88 -0
- package/dist/components/Dropdown/types.d.ts +102 -1
- package/dist/components/DropdownOption/DropdownOption.d.ts +2 -0
- package/dist/components/DropdownOptions/DropdownOptions.d.ts +31 -0
- package/dist/components/DropdownOptions/types.d.ts +22 -0
- package/dist/components/DropdownToggle/DropdownToggle.d.ts +3 -2
- package/dist/components/DropdownToggle/types.d.ts +5 -3
- package/dist/components/Field/FieldControl.d.ts +62 -1
- package/dist/components/Field/FieldDescription.d.ts +33 -0
- package/dist/components/Field/FieldError.d.ts +36 -0
- package/dist/components/Field/FieldLabel.d.ts +37 -0
- package/dist/components/Field/FieldProvider.d.ts +19 -1
- package/dist/components/Field/FieldRoot.d.ts +90 -0
- package/dist/components/Field/FieldSuccess.d.ts +34 -0
- package/dist/components/Field/index.d.ts +4 -0
- package/dist/components/Filters/FilterBlockWrapper.d.ts +3 -2
- package/dist/components/Filters/FiltersContext.d.ts +4 -4
- package/dist/components/Filters/hooks/useVisibility.d.ts +2 -2
- package/dist/components/FullscreenModeContext.d.ts +1 -4
- package/dist/components/Icon/icons/Assessment.d.ts +1 -1
- package/dist/components/Icon/icons/Award.d.ts +3 -0
- package/dist/components/Icon/icons/Bench.d.ts +3 -0
- package/dist/components/Icon/icons/Briefcase.d.ts +3 -0
- package/dist/components/Icon/icons/Building.d.ts +3 -0
- package/dist/components/Icon/icons/CalendarSchedule.d.ts +3 -0
- package/dist/components/Icon/icons/Camera.d.ts +3 -0
- package/dist/components/Icon/icons/CardText.d.ts +3 -0
- package/dist/components/Icon/icons/Case.d.ts +3 -0
- package/dist/components/Icon/icons/Comments.d.ts +3 -0
- package/dist/components/Icon/icons/Compensation.d.ts +3 -0
- package/dist/components/Icon/icons/Contacts.d.ts +3 -0
- package/dist/components/Icon/icons/CopyLink.d.ts +3 -0
- package/dist/components/Icon/icons/Delete.d.ts +3 -0
- package/dist/components/Icon/icons/DiamondRing.d.ts +3 -0
- package/dist/components/Icon/icons/Document.d.ts +3 -0
- package/dist/components/Icon/icons/Documents.d.ts +3 -0
- package/dist/components/Icon/icons/Education.d.ts +3 -0
- package/dist/components/Icon/icons/EmployeeProfile.d.ts +3 -0
- package/dist/components/Icon/icons/Export.d.ts +3 -0
- package/dist/components/Icon/icons/FollowLink.d.ts +3 -0
- package/dist/components/Icon/icons/Form.d.ts +3 -0
- package/dist/components/Icon/icons/Gender.d.ts +3 -0
- package/dist/components/Icon/icons/Gift.d.ts +3 -0
- package/dist/components/Icon/icons/Inventory.d.ts +3 -0
- package/dist/components/Icon/icons/Link.d.ts +3 -0
- package/dist/components/Icon/icons/OfficeChair.d.ts +3 -0
- package/dist/components/Icon/icons/OpenBook.d.ts +3 -0
- package/dist/components/Icon/icons/Report.d.ts +1 -1
- package/dist/components/Icon/icons/Results.d.ts +3 -0
- package/dist/components/Icon/icons/Signature.d.ts +3 -0
- package/dist/components/Icon/icons/Summery.d.ts +3 -0
- package/dist/components/Icon/icons/Team.d.ts +3 -0
- package/dist/components/Icon/icons/TechnicalReview.d.ts +3 -0
- package/dist/components/Icon/icons/TennisBall.d.ts +3 -0
- package/dist/components/Icon/icons/Timeline.d.ts +3 -0
- package/dist/components/Icon/icons/UnionCircle.d.ts +3 -0
- package/dist/components/Icon/icons/Url.d.ts +3 -0
- package/dist/components/Icon/icons/all.d.ts +36 -1
- package/dist/components/Icon/icons/iconsList.d.ts +1 -1
- package/dist/components/IconButton/IconButton.d.ts +39 -0
- package/dist/components/IconButton/index.d.ts +2 -0
- package/dist/components/IconButton/styles.d.ts +2 -0
- package/dist/components/IconButton/types.d.ts +41 -0
- package/dist/components/Indicator/types.d.ts +4 -2
- package/dist/components/Input/types.d.ts +157 -0
- package/dist/components/JsonSchemaForm/fields/DateRangeField.d.ts +15 -1
- package/dist/components/JsonSchemaForm/utils/dateFormats.d.ts +37 -0
- package/dist/components/JsonSchemaForm/utils/dateRangeField.d.ts +24 -0
- package/dist/components/JsonSchemaForm/utils/index.d.ts +1 -0
- package/dist/components/JsonSchemaForm/utils/selectWidget.d.ts +16 -0
- package/dist/components/Modal/Modal.d.ts +60 -0
- package/dist/components/Modal/types.d.ts +21 -1
- package/dist/components/ModalContent/ModalContent.d.ts +42 -1
- package/dist/components/ModalDialog/ModalDialog.d.ts +27 -0
- package/dist/components/ModalDialog/types.d.ts +18 -0
- package/dist/components/ModalDismissButton/ModalDismissButton.d.ts +29 -2
- package/dist/components/ModalOpenButton/ModalOpenButton.d.ts +25 -1
- package/dist/components/MultipleDropdown/index.d.ts +1 -0
- package/dist/components/MultipleDropdown/types.d.ts +74 -0
- package/dist/components/NavBar/types.d.ts +1 -1
- package/dist/components/NotificationMenu/types.d.ts +3 -3
- package/dist/components/Pagination/ArrowButton.d.ts +32 -0
- package/dist/components/Pagination/Pagination.d.ts +81 -0
- package/dist/components/Pagination/PaginationButtons.d.ts +35 -0
- package/dist/components/Pagination/PaginationContext.d.ts +30 -0
- package/dist/components/Pagination/WithPagination.d.ts +47 -4
- package/dist/components/Pagination/components/RowsPerPageDropdown/RowsPerPageDropdown.d.ts +41 -0
- package/dist/components/Pagination/components/RowsPerPageDropdown/types.d.ts +39 -0
- package/dist/components/Pagination/styles.d.ts +1 -1
- package/dist/components/Pagination/types.d.ts +178 -0
- package/dist/components/PersonInfo/styles.d.ts +1 -1
- package/dist/components/Popover/Popover.d.ts +120 -0
- package/dist/components/Popover/PopoverClose.d.ts +26 -0
- package/dist/components/Popover/PopoverContent.d.ts +33 -0
- package/dist/components/Popover/PopoverDescription.d.ts +22 -1
- package/dist/components/Popover/PopoverHeading.d.ts +22 -1
- package/dist/components/Popover/PopoverTrigger.d.ts +30 -0
- package/dist/components/Popover/hooks/usePopover.d.ts +21 -0
- package/dist/components/Popover/hooks/usePopoverContext.d.ts +23 -0
- package/dist/components/Popover/types.d.ts +86 -0
- package/dist/components/Radio/Radio.d.ts +69 -1
- package/dist/components/Radio/RadioBase.d.ts +1 -1
- package/dist/components/Radio/types.d.ts +109 -0
- package/dist/components/RadioGroup/RadioGroup.d.ts +1 -1
- package/dist/components/RadioGroup/index.d.ts +1 -0
- package/dist/components/RadioGroup/types.d.ts +42 -0
- package/dist/components/SearchBox/SearchBox.d.ts +60 -0
- package/dist/components/SearchBox/SearchBoxInput.d.ts +1 -1
- package/dist/components/SearchBox/types.d.ts +46 -0
- package/dist/components/Slider/Slider.d.ts +53 -0
- package/dist/components/Slider/consts.d.ts +4 -0
- package/dist/components/Slider/index.d.ts +4 -0
- package/dist/components/Slider/styles.d.ts +90 -0
- package/dist/components/Slider/types.d.ts +69 -0
- package/dist/components/Switch/Switch.d.ts +66 -1
- package/dist/components/Switch/SwitchBase.d.ts +5 -1
- package/dist/components/Switch/SwitchContext.d.ts +50 -0
- package/dist/components/Switch/types.d.ts +74 -0
- package/dist/components/Table/Table.d.ts +74 -0
- package/dist/components/TableBody/TableBody.d.ts +55 -0
- package/dist/components/TableCell/TableCell.d.ts +56 -4
- package/dist/components/TableCell/types.d.ts +33 -0
- package/dist/components/TableCellHeader/TableCellHeader.d.ts +63 -2
- package/dist/components/TableCellHeader/types.d.ts +28 -0
- package/dist/components/TableFilters/TableFilters.d.ts +72 -0
- package/dist/components/TableFilters/hooks/useTableData.d.ts +3 -3
- package/dist/components/TableFilters/types.d.ts +130 -2
- package/dist/components/TableHead/TableHead.d.ts +37 -0
- package/dist/components/TableRow/TableRow.d.ts +2 -7
- package/dist/components/TableRow/types.d.ts +34 -0
- package/dist/components/TextField/TextField.d.ts +76 -0
- package/dist/components/TextField/types.d.ts +80 -0
- package/dist/components/Textarea/Textarea.d.ts +81 -0
- package/dist/components/Textarea/TextareaBase.d.ts +6 -1
- package/dist/components/Textarea/types.d.ts +109 -0
- package/dist/components/Tooltip/SimpleChartTooltip.d.ts +2 -1
- package/dist/components/Tooltip/Tooltip.d.ts +73 -0
- package/dist/components/Tooltip/types.d.ts +116 -5
- package/dist/components/TooltipContent/TooltipContent.d.ts +45 -0
- package/dist/components/TooltipTrigger/TooltipTrigger.d.ts +27 -1
- package/dist/components/Typeahead/Typeahead.context.d.ts +10 -4
- package/dist/components/Typeahead/Typeahead.d.ts +173 -9
- package/dist/components/Typeahead/components/TypeaheadOption.d.ts +1 -1
- package/dist/components/Typeahead/styles.d.ts +10 -5
- package/dist/components/Typeahead/types.d.ts +191 -1
- package/dist/components/Typeahead/useTypeahead.d.ts +13 -5
- package/dist/components/Typography/Typography.d.ts +50 -0
- package/dist/components/Typography/types.d.ts +67 -0
- package/dist/components/UserProfile/UserProfile.d.ts +76 -0
- package/dist/components/UserProfile/styles.d.ts +6 -4
- package/dist/components/UserProfile/types.d.ts +85 -1
- package/dist/components/WidgetCard/Title.d.ts +1 -1
- package/dist/components/WidgetCard/WidgetCardBase.d.ts +1 -1
- package/dist/components/WithLink.d.ts +1 -1
- package/dist/components/Wrapper/Wrapper.d.ts +83 -2
- package/dist/components/Wrapper/index.d.ts +1 -0
- package/dist/components/index.d.ts +113 -85
- package/dist/index.d.ts +1 -0
- package/dist/index.js +48942 -19624
- package/dist/index.js.map +1 -1
- package/dist/types/emotion.d.ts +65 -0
- package/dist/utils/react19HocCompat.d.ts +14 -0
- package/package.json +42 -33
- package/dist/components/Icon/icons/Company.d.ts +0 -3
|
@@ -1,4 +1,78 @@
|
|
|
1
1
|
import { CommonProps } from '../../types/emotion';
|
|
2
|
+
/**
|
|
3
|
+
* Table - Base table component for displaying tabular data
|
|
4
|
+
*
|
|
5
|
+
* A styled table element that serves as the foundation for displaying
|
|
6
|
+
* structured tabular data. Works in conjunction with TableHead, TableBody,
|
|
7
|
+
* TableRow, TableCell, and TableCellHeader components to create complete
|
|
8
|
+
* data tables with proper semantics and styling.
|
|
9
|
+
*
|
|
10
|
+
* Component structure:
|
|
11
|
+
* - Table (root container)
|
|
12
|
+
* - TableHead (header section with column headers)
|
|
13
|
+
* - TableRow
|
|
14
|
+
* - TableCellHeader (header cells)
|
|
15
|
+
* - TableBody (body section with data rows)
|
|
16
|
+
* - TableRow (data rows)
|
|
17
|
+
* - TableCell (data cells)
|
|
18
|
+
*
|
|
19
|
+
* @category Components
|
|
20
|
+
* @subcategory Data Display
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```tsx
|
|
24
|
+
* // Basic table
|
|
25
|
+
* <Table>
|
|
26
|
+
* <TableHead>
|
|
27
|
+
* <TableRow>
|
|
28
|
+
* <TableCellHeader>Name</TableCellHeader>
|
|
29
|
+
* <TableCellHeader>Email</TableCellHeader>
|
|
30
|
+
* <TableCellHeader>Role</TableCellHeader>
|
|
31
|
+
* </TableRow>
|
|
32
|
+
* </TableHead>
|
|
33
|
+
* <TableBody>
|
|
34
|
+
* {users.map(user => (
|
|
35
|
+
* <TableRow key={user.id}>
|
|
36
|
+
* <TableCell>{user.name}</TableCell>
|
|
37
|
+
* <TableCell>{user.email}</TableCell>
|
|
38
|
+
* <TableCell>{user.role}</TableCell>
|
|
39
|
+
* </TableRow>
|
|
40
|
+
* ))}
|
|
41
|
+
* </TableBody>
|
|
42
|
+
* </Table>
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```tsx
|
|
47
|
+
* // Table with custom styling
|
|
48
|
+
* <Table css={{ border: '1px solid #ccc' }}>
|
|
49
|
+
* <TableHead>
|
|
50
|
+
* <TableRow>
|
|
51
|
+
* <TableCellHeader>Column 1</TableCellHeader>
|
|
52
|
+
* <TableCellHeader align="center">Column 2</TableCellHeader>
|
|
53
|
+
* </TableRow>
|
|
54
|
+
* </TableHead>
|
|
55
|
+
* <TableBody>
|
|
56
|
+
* <TableRow>
|
|
57
|
+
* <TableCell>Data 1</TableCell>
|
|
58
|
+
* <TableCell align="center">Data 2</TableCell>
|
|
59
|
+
* </TableRow>
|
|
60
|
+
* </TableBody>
|
|
61
|
+
* </Table>
|
|
62
|
+
* ```
|
|
63
|
+
*
|
|
64
|
+
* @see {@link TableHead} - Header section component
|
|
65
|
+
* @see {@link TableBody} - Body section component
|
|
66
|
+
* @see {@link TableRow} - Row component
|
|
67
|
+
* @see {@link TableCell} - Data cell component
|
|
68
|
+
* @see {@link TableCellHeader} - Header cell component
|
|
69
|
+
*
|
|
70
|
+
* @accessibility
|
|
71
|
+
* - Semantic HTML table element
|
|
72
|
+
* - Proper table structure for screen readers
|
|
73
|
+
* - Keyboard navigation support
|
|
74
|
+
* - ARIA attributes when needed
|
|
75
|
+
*/
|
|
2
76
|
declare const Table: import("@emotion/styled").StyledComponent<{
|
|
3
77
|
theme?: import("@emotion/react").Theme;
|
|
4
78
|
as?: React.ElementType;
|
|
@@ -1,4 +1,59 @@
|
|
|
1
1
|
import { CommonProps } from '../../types/emotion';
|
|
2
|
+
/**
|
|
3
|
+
* TableBody - Body section container for table data rows
|
|
4
|
+
*
|
|
5
|
+
* A styled tbody element that wraps table data rows. Provides styling
|
|
6
|
+
* for the table body section including hover effects on rows, rounded
|
|
7
|
+
* corners for the last row, and proper spacing. Used with TableRow and
|
|
8
|
+
* TableCell components.
|
|
9
|
+
*
|
|
10
|
+
* @category Components
|
|
11
|
+
* @subcategory Data Display
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```tsx
|
|
15
|
+
* // Basic table body
|
|
16
|
+
* <Table>
|
|
17
|
+
* <TableHead>
|
|
18
|
+
* // header rows go here
|
|
19
|
+
* </TableHead>
|
|
20
|
+
* <TableBody>
|
|
21
|
+
* {data.map(item => (
|
|
22
|
+
* <TableRow key={item.id}>
|
|
23
|
+
* <TableCell>{item.name}</TableCell>
|
|
24
|
+
* <TableCell>{item.email}</TableCell>
|
|
25
|
+
* <TableCell>{item.role}</TableCell>
|
|
26
|
+
* </TableRow>
|
|
27
|
+
* ))}
|
|
28
|
+
* </TableBody>
|
|
29
|
+
* </Table>
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```tsx
|
|
34
|
+
* // Table body with disabled rows (aria-disabled is automatically set)
|
|
35
|
+
* <TableBody>
|
|
36
|
+
* {items.map(item => (
|
|
37
|
+
* <TableRow
|
|
38
|
+
* key={item.id}
|
|
39
|
+
* isDisabled={item.disabled}>
|
|
40
|
+
* <TableCell>{item.name}</TableCell>
|
|
41
|
+
* </TableRow>
|
|
42
|
+
* ))}
|
|
43
|
+
* </TableBody>
|
|
44
|
+
* ```
|
|
45
|
+
*
|
|
46
|
+
* @see {@link Table} - Parent table component
|
|
47
|
+
* @see {@link TableRow} - Row component for data
|
|
48
|
+
* @see {@link TableCell} - Data cell component
|
|
49
|
+
* @see {@link TableHead} - Header section component
|
|
50
|
+
*
|
|
51
|
+
* @accessibility
|
|
52
|
+
* - Semantic HTML tbody element
|
|
53
|
+
* - Proper table structure for screen readers
|
|
54
|
+
* - Hover effects respect aria-disabled attribute
|
|
55
|
+
* - Supports ARIA attributes via CommonProps
|
|
56
|
+
*/
|
|
2
57
|
declare const TableBody: import("@emotion/styled").StyledComponent<{
|
|
3
58
|
theme?: import("@emotion/react").Theme;
|
|
4
59
|
as?: React.ElementType;
|
|
@@ -1,8 +1,60 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TableCellProps } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* TableCell - Table data cell component
|
|
4
|
+
*
|
|
5
|
+
* A styled td element that represents a single data cell in a table row.
|
|
6
|
+
* Used within TableRow components in the TableBody section. Supports
|
|
7
|
+
* text alignment customization. For header cells, use TableCellHeader instead.
|
|
8
|
+
*
|
|
9
|
+
* @category Components
|
|
10
|
+
* @subcategory Data Display
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```tsx
|
|
14
|
+
* // Basic table cell
|
|
15
|
+
* <TableRow>
|
|
16
|
+
* <TableCell>John Doe</TableCell>
|
|
17
|
+
* <TableCell>john@example.com</TableCell>
|
|
18
|
+
* <TableCell>Admin</TableCell>
|
|
19
|
+
* </TableRow>
|
|
20
|
+
* ```
|
|
21
|
+
*
|
|
22
|
+
* @example
|
|
23
|
+
* ```tsx
|
|
24
|
+
* // Table cell with center alignment
|
|
25
|
+
* <TableRow>
|
|
26
|
+
* <TableCell>Name</TableCell>
|
|
27
|
+
* <TableCell align="center">Status</TableCell>
|
|
28
|
+
* <TableCell align="right">Price</TableCell>
|
|
29
|
+
* </TableRow>
|
|
30
|
+
* ```
|
|
31
|
+
*
|
|
32
|
+
* @example
|
|
33
|
+
* ```tsx
|
|
34
|
+
* // Table cell with custom content
|
|
35
|
+
* <TableRow>
|
|
36
|
+
* <TableCell>
|
|
37
|
+
* <Badge color="success">Active</Badge>
|
|
38
|
+
* </TableCell>
|
|
39
|
+
* <TableCell>
|
|
40
|
+
* <Button size="small">Edit</Button>
|
|
41
|
+
* </TableCell>
|
|
42
|
+
* </TableRow>
|
|
43
|
+
* ```
|
|
44
|
+
*
|
|
45
|
+
* @see {@link Table} - Parent table component
|
|
46
|
+
* @see {@link TableRow} - Row component (use this in TableBody)
|
|
47
|
+
* @see {@link TableCellHeader} - Header cell component (use in TableHead)
|
|
48
|
+
* @see {@link TableHead} - Header section component
|
|
49
|
+
* @see {@link TableBody} - Body section component
|
|
50
|
+
*
|
|
51
|
+
* @accessibility
|
|
52
|
+
* - Semantic HTML td element
|
|
53
|
+
* - Proper table structure for screen readers
|
|
54
|
+
* - Supports ARIA attributes via CommonProps
|
|
55
|
+
*/
|
|
2
56
|
declare const TableCell: import("@emotion/styled").StyledComponent<{
|
|
3
57
|
theme?: import("@emotion/react").Theme;
|
|
4
58
|
as?: React.ElementType;
|
|
5
|
-
} & {
|
|
6
|
-
align?: string;
|
|
7
|
-
} & CommonProps, import("react").DetailedHTMLProps<import("react").TdHTMLAttributes<HTMLTableDataCellElement>, HTMLTableDataCellElement>, {}>;
|
|
59
|
+
} & TableCellProps, import("react").DetailedHTMLProps<import("react").TdHTMLAttributes<HTMLTableDataCellElement>, HTMLTableDataCellElement>, {}>;
|
|
8
60
|
export default TableCell;
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { HTMLAttributes } from 'react';
|
|
2
|
+
import { CommonProps } from '../../types/emotion';
|
|
3
|
+
/**
|
|
4
|
+
* Props for the TableCell component
|
|
5
|
+
*
|
|
6
|
+
* A styled table cell component that represents a single data cell in a table row.
|
|
7
|
+
* Supports text alignment customization.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```tsx
|
|
11
|
+
* // Basic table cell
|
|
12
|
+
* <TableCell>Data content</TableCell>
|
|
13
|
+
* ```
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```tsx
|
|
17
|
+
* // Table cell with center alignment
|
|
18
|
+
* <TableCell align="center">Centered</TableCell>
|
|
19
|
+
* ```
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```tsx
|
|
23
|
+
* // Table cell with right alignment
|
|
24
|
+
* <TableCell align="right">Right aligned</TableCell>
|
|
25
|
+
* ```
|
|
26
|
+
*/
|
|
27
|
+
export interface TableCellProps extends CommonProps, Omit<HTMLAttributes<HTMLTableCellElement>, 'align'> {
|
|
28
|
+
/**
|
|
29
|
+
* Text alignment for the cell content
|
|
30
|
+
* @default 'left'
|
|
31
|
+
*/
|
|
32
|
+
align?: 'left' | 'center' | 'right' | 'justify';
|
|
33
|
+
}
|
|
@@ -1,3 +1,64 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { TableCellHeaderProps } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* TableCellHeader - Table header cell component
|
|
5
|
+
*
|
|
6
|
+
* A wrapper component that renders TableCell as a semantic th element for
|
|
7
|
+
* table headers. Used within TableRow components in the TableHead section.
|
|
8
|
+
* Provides the same styling and props as TableCell but with proper semantic
|
|
9
|
+
* HTML for header cells.
|
|
10
|
+
*
|
|
11
|
+
* @category Components
|
|
12
|
+
* @subcategory Data Display
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```tsx
|
|
16
|
+
* // Basic table header
|
|
17
|
+
* <TableHead>
|
|
18
|
+
* <TableRow>
|
|
19
|
+
* <TableCellHeader>Name</TableCellHeader>
|
|
20
|
+
* <TableCellHeader>Email</TableCellHeader>
|
|
21
|
+
* <TableCellHeader>Role</TableCellHeader>
|
|
22
|
+
* </TableRow>
|
|
23
|
+
* </TableHead>
|
|
24
|
+
* ```
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```tsx
|
|
28
|
+
* // Table header with alignment
|
|
29
|
+
* <TableHead>
|
|
30
|
+
* <TableRow>
|
|
31
|
+
* <TableCellHeader>Product</TableCellHeader>
|
|
32
|
+
* <TableCellHeader align="center">Quantity</TableCellHeader>
|
|
33
|
+
* <TableCellHeader align="right">Price</TableCellHeader>
|
|
34
|
+
* </TableRow>
|
|
35
|
+
* </TableHead>
|
|
36
|
+
* ```
|
|
37
|
+
*
|
|
38
|
+
* @example
|
|
39
|
+
* ```tsx
|
|
40
|
+
* // Table header with custom content
|
|
41
|
+
* <TableHead>
|
|
42
|
+
* <TableRow>
|
|
43
|
+
* <TableCellHeader>
|
|
44
|
+
* <Icon name="user" /> User
|
|
45
|
+
* </TableCellHeader>
|
|
46
|
+
* <TableCellHeader>Email</TableCellHeader>
|
|
47
|
+
* </TableRow>
|
|
48
|
+
* </TableHead>
|
|
49
|
+
* ```
|
|
50
|
+
*
|
|
51
|
+
* @see {@link Table} - Parent table component
|
|
52
|
+
* @see {@link TableHead} - Header section component (use this component here)
|
|
53
|
+
* @see {@link TableRow} - Row component (use in TableHead)
|
|
54
|
+
* @see {@link TableCell} - Data cell component (use in TableBody)
|
|
55
|
+
* @see {@link TableBody} - Body section component
|
|
56
|
+
*
|
|
57
|
+
* @accessibility
|
|
58
|
+
* - Semantic HTML th element (renders as th)
|
|
59
|
+
* - Proper table header semantics for screen readers
|
|
60
|
+
* - Supports ARIA attributes via TableCellProps
|
|
61
|
+
* - Better accessibility than using TableCell in headers
|
|
62
|
+
*/
|
|
63
|
+
declare const TableCellHeader: ({ children, ...props }: React.PropsWithChildren<TableCellHeaderProps>) => import("@emotion/react/jsx-runtime").JSX.Element;
|
|
3
64
|
export default TableCellHeader;
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { TableCellProps } from '../TableCell/types';
|
|
2
|
+
/**
|
|
3
|
+
* Props for the TableCellHeader component
|
|
4
|
+
*
|
|
5
|
+
* A wrapper component that renders TableCell as a th element for table headers.
|
|
6
|
+
* Inherits all props from TableCell but renders as a header cell semantically.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```tsx
|
|
10
|
+
* // Basic table cell header
|
|
11
|
+
* <TableRow>
|
|
12
|
+
* <TableCellHeader>Name</TableCellHeader>
|
|
13
|
+
* <TableCellHeader>Email</TableCellHeader>
|
|
14
|
+
* <TableCellHeader>Role</TableCellHeader>
|
|
15
|
+
* </TableRow>
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```tsx
|
|
20
|
+
* // Table cell header with alignment
|
|
21
|
+
* <TableRow>
|
|
22
|
+
* <TableCellHeader>Name</TableCellHeader>
|
|
23
|
+
* <TableCellHeader align="center">Status</TableCellHeader>
|
|
24
|
+
* <TableCellHeader align="right">Price</TableCellHeader>
|
|
25
|
+
* </TableRow>
|
|
26
|
+
* ```
|
|
27
|
+
*/
|
|
28
|
+
export type TableCellHeaderProps = TableCellProps;
|
|
@@ -1,2 +1,74 @@
|
|
|
1
1
|
import { TableFiltersView } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* TableFilters - Filter component for table data with grouped checkboxes
|
|
4
|
+
*
|
|
5
|
+
* A comprehensive filter component that provides grouped checkbox filters in a
|
|
6
|
+
* popover with accordion-style collapsible groups. Supports draft state management
|
|
7
|
+
* with submit, reset, and clear actions. Displays notification badge with selected
|
|
8
|
+
* filter group count.
|
|
9
|
+
*
|
|
10
|
+
* Component structure:
|
|
11
|
+
* - TableFilters (main component)
|
|
12
|
+
* - Popover (wrapper with trigger and content)
|
|
13
|
+
* - TableFilterTriggerWithNotification (trigger button with badge)
|
|
14
|
+
* - PopoverContent (filter content)
|
|
15
|
+
* - AccordionGroup (collapsible filter groups)
|
|
16
|
+
* - TableFiltersAccordion (individual filter group)
|
|
17
|
+
* - TableFiltersAccordionContent
|
|
18
|
+
* - TableFilterCheckbox (filter items)
|
|
19
|
+
* - TableFiltersButtons (submit, cancel, clear actions)
|
|
20
|
+
*
|
|
21
|
+
* @category Components
|
|
22
|
+
* @subcategory Data Display
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```tsx
|
|
26
|
+
* const filterConfig: TableFilterConfig = {
|
|
27
|
+
* status: {
|
|
28
|
+
* id: 'status',
|
|
29
|
+
* title: 'Status',
|
|
30
|
+
* isOpened: true,
|
|
31
|
+
* ariaControls: 'status-controls',
|
|
32
|
+
* items: {
|
|
33
|
+
* active: {
|
|
34
|
+
* key: 'active',
|
|
35
|
+
* name: 'active',
|
|
36
|
+
* content: { statePath: [], text: 'Active' },
|
|
37
|
+
* },
|
|
38
|
+
* },
|
|
39
|
+
* selectedItems: [],
|
|
40
|
+
* },
|
|
41
|
+
* };
|
|
42
|
+
*
|
|
43
|
+
* <TableFilters
|
|
44
|
+
* checkboxData={filterConfig}
|
|
45
|
+
* onSubmit={() => applyFilters()}
|
|
46
|
+
* onReset={() => resetFilters()}
|
|
47
|
+
* onClear={() => clearFilters()}
|
|
48
|
+
* />
|
|
49
|
+
* ```
|
|
50
|
+
*
|
|
51
|
+
* @example
|
|
52
|
+
* ```tsx
|
|
53
|
+
* // With checkbox toggle callback
|
|
54
|
+
* <TableFilters
|
|
55
|
+
* checkboxData={filterConfig}
|
|
56
|
+
* onCheckboxToggle={(groupName, itemName) => {
|
|
57
|
+
* console.log(`Toggled ${itemName} in ${groupName}`);
|
|
58
|
+
* }}
|
|
59
|
+
* onSubmit={handleSubmit}
|
|
60
|
+
* />
|
|
61
|
+
* ```
|
|
62
|
+
*
|
|
63
|
+
* @see {@link AccordionGroup} - Used for collapsible filter groups
|
|
64
|
+
* @see {@link Popover} - Used for filter popover overlay
|
|
65
|
+
* @see {@link TableFilterConfig} - Configuration type for filter data
|
|
66
|
+
*
|
|
67
|
+
* @accessibility
|
|
68
|
+
* - ARIA attributes for accordion groups
|
|
69
|
+
* - Keyboard navigation support
|
|
70
|
+
* - Screen reader friendly
|
|
71
|
+
* - Proper focus management
|
|
72
|
+
* - Notification badge for selected filters
|
|
73
|
+
*/
|
|
2
74
|
export declare const TableFilters: ({ checkboxData, onReset, onSubmit, onClear, onCheckboxToggle, handleMoreButtonVisibleChange, }: TableFiltersView) => import("@emotion/react/jsx-runtime").JSX.Element;
|
|
@@ -2,7 +2,7 @@ import { BaseSyntheticEvent } from 'react';
|
|
|
2
2
|
import { TableFilterConfig } from '../types';
|
|
3
3
|
export interface UseTableDataParameters {
|
|
4
4
|
initialState?: TableFilterConfig;
|
|
5
|
-
wrapperRef?: React.RefObject<HTMLElement>;
|
|
5
|
+
wrapperRef?: React.RefObject<HTMLElement | null>;
|
|
6
6
|
updatedCheckboxData?: TableFilterConfig;
|
|
7
7
|
handleCancel?: () => void;
|
|
8
8
|
handleClear?: () => void;
|
|
@@ -15,8 +15,8 @@ export interface UseTableDataParameters {
|
|
|
15
15
|
}
|
|
16
16
|
export declare const useTableData: ({ initialState, wrapperRef, updatedCheckboxData, handleCancel, handleSubmit, handleClear, handleDropdownChange, }: UseTableDataParameters) => {
|
|
17
17
|
checkboxData: TableFilterConfig;
|
|
18
|
-
wrapperRef: import("react").RefObject<HTMLElement> | undefined;
|
|
19
|
-
refsList: import("react").
|
|
18
|
+
wrapperRef: import("react").RefObject<HTMLElement | null> | undefined;
|
|
19
|
+
refsList: import("react").RefObject<HTMLElement | null>[];
|
|
20
20
|
setElementRef: (groupName: string, element: HTMLElement | null) => void;
|
|
21
21
|
onCheckboxToggle: (groupName: string, name: string | number) => void;
|
|
22
22
|
onDropdownChange: (groupName: string, name: string | number) => void;
|
|
@@ -1,30 +1,158 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Checkbox data structure
|
|
3
|
+
* Maps filter group names to arrays of selected item names
|
|
4
|
+
*/
|
|
1
5
|
export type CheckboxData = Record<string, string[]>;
|
|
6
|
+
/**
|
|
7
|
+
* Not changed data structure
|
|
8
|
+
* Tracks checkbox states that haven't been modified
|
|
9
|
+
*/
|
|
2
10
|
export type NotChangedData = Record<string, Record<string, boolean>>;
|
|
11
|
+
/**
|
|
12
|
+
* Single filter item configuration
|
|
13
|
+
* Represents an individual checkbox option within a filter group
|
|
14
|
+
*/
|
|
3
15
|
export interface SingleItem {
|
|
16
|
+
/**
|
|
17
|
+
* Unique identifier for the item
|
|
18
|
+
*/
|
|
4
19
|
key: string;
|
|
20
|
+
/**
|
|
21
|
+
* Item name/identifier
|
|
22
|
+
*/
|
|
5
23
|
name: string;
|
|
24
|
+
/**
|
|
25
|
+
* Whether the item is disabled
|
|
26
|
+
* @default false
|
|
27
|
+
*/
|
|
6
28
|
isDisabled?: boolean;
|
|
29
|
+
/**
|
|
30
|
+
* Item content configuration
|
|
31
|
+
*/
|
|
7
32
|
content: {
|
|
33
|
+
/**
|
|
34
|
+
* State path for nested data structures
|
|
35
|
+
*/
|
|
8
36
|
statePath: string[];
|
|
37
|
+
/**
|
|
38
|
+
* Display text for the checkbox label
|
|
39
|
+
*/
|
|
9
40
|
text: string;
|
|
10
41
|
};
|
|
11
42
|
}
|
|
43
|
+
/**
|
|
44
|
+
* Accordion group information
|
|
45
|
+
* Represents a filter group with collapsible accordion functionality
|
|
46
|
+
*/
|
|
12
47
|
export interface AccordionInfo {
|
|
48
|
+
/**
|
|
49
|
+
* Unique identifier for the accordion group
|
|
50
|
+
*/
|
|
13
51
|
id: string;
|
|
52
|
+
/**
|
|
53
|
+
* Group title displayed in accordion header
|
|
54
|
+
*/
|
|
14
55
|
title: string;
|
|
56
|
+
/**
|
|
57
|
+
* Whether the accordion is initially open
|
|
58
|
+
*/
|
|
15
59
|
isOpened: boolean;
|
|
60
|
+
/**
|
|
61
|
+
* ARIA controls attribute for accessibility
|
|
62
|
+
*/
|
|
16
63
|
ariaControls: string;
|
|
64
|
+
/**
|
|
65
|
+
* Whether the entire group is disabled
|
|
66
|
+
* @default false
|
|
67
|
+
*/
|
|
17
68
|
isDisabled?: boolean;
|
|
69
|
+
/**
|
|
70
|
+
* Filter items within this group
|
|
71
|
+
*/
|
|
18
72
|
items: Record<string, SingleItem>;
|
|
73
|
+
/**
|
|
74
|
+
* Currently selected items (committed state)
|
|
75
|
+
*/
|
|
19
76
|
selectedItems: string[];
|
|
77
|
+
/**
|
|
78
|
+
* Draft selected items (uncommitted changes)
|
|
79
|
+
* Used to track temporary selections before submit
|
|
80
|
+
*/
|
|
20
81
|
selectedItemsDraft?: string[];
|
|
21
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* Table filter configuration
|
|
85
|
+
* Maps filter group names to their accordion information
|
|
86
|
+
*/
|
|
22
87
|
export type TableFilterConfig = Record<string, AccordionInfo>;
|
|
88
|
+
/**
|
|
89
|
+
* Props for the TableFilters component
|
|
90
|
+
*
|
|
91
|
+
* A comprehensive filter component for table data that provides grouped checkbox
|
|
92
|
+
* filters in a popover with accordion-style collapsible groups. Supports submit,
|
|
93
|
+
* reset, and clear actions with draft state management.
|
|
94
|
+
*
|
|
95
|
+
* @example
|
|
96
|
+
* ```tsx
|
|
97
|
+
* const filterConfig: TableFilterConfig = {
|
|
98
|
+
* status: {
|
|
99
|
+
* id: 'status',
|
|
100
|
+
* title: 'Status',
|
|
101
|
+
* isOpened: true,
|
|
102
|
+
* ariaControls: 'status-controls',
|
|
103
|
+
* items: {
|
|
104
|
+
* active: {
|
|
105
|
+
* key: 'active',
|
|
106
|
+
* name: 'active',
|
|
107
|
+
* content: { statePath: [], text: 'Active' },
|
|
108
|
+
* },
|
|
109
|
+
* inactive: {
|
|
110
|
+
* key: 'inactive',
|
|
111
|
+
* name: 'inactive',
|
|
112
|
+
* content: { statePath: [], text: 'Inactive' },
|
|
113
|
+
* },
|
|
114
|
+
* },
|
|
115
|
+
* selectedItems: [],
|
|
116
|
+
* },
|
|
117
|
+
* };
|
|
118
|
+
*
|
|
119
|
+
* <TableFilters
|
|
120
|
+
* checkboxData={filterConfig}
|
|
121
|
+
* onSubmit={() => console.log('Filters applied')}
|
|
122
|
+
* onReset={() => console.log('Filters reset')}
|
|
123
|
+
* onClear={() => console.log('Filters cleared')}
|
|
124
|
+
* />
|
|
125
|
+
* ```
|
|
126
|
+
*/
|
|
23
127
|
export interface TableFiltersView {
|
|
128
|
+
/**
|
|
129
|
+
* Filter configuration data
|
|
130
|
+
* Maps group names to accordion information with checkbox items
|
|
131
|
+
*/
|
|
132
|
+
checkboxData?: TableFilterConfig;
|
|
133
|
+
/**
|
|
134
|
+
* Callback when filters are submitted/applied
|
|
135
|
+
* Called when user clicks submit button
|
|
136
|
+
*/
|
|
137
|
+
onSubmit?: () => void;
|
|
138
|
+
/**
|
|
139
|
+
* Callback when filters are reset
|
|
140
|
+
* Called when user clicks cancel button (resets to initial state)
|
|
141
|
+
*/
|
|
24
142
|
onReset?: () => void;
|
|
143
|
+
/**
|
|
144
|
+
* Callback when filters are cleared
|
|
145
|
+
* Called when user clicks clear button (removes all selections)
|
|
146
|
+
*/
|
|
25
147
|
onClear?: () => void;
|
|
26
|
-
|
|
148
|
+
/**
|
|
149
|
+
* Callback when a checkbox is toggled
|
|
150
|
+
* Provides group name and item name for the toggled checkbox
|
|
151
|
+
*/
|
|
27
152
|
onCheckboxToggle?: (groupName: string, name: string) => void;
|
|
153
|
+
/**
|
|
154
|
+
* Callback when filter button visibility changes
|
|
155
|
+
* Called when filter groups are added/removed to show/hide filter button
|
|
156
|
+
*/
|
|
28
157
|
handleMoreButtonVisibleChange?: (isVisible: boolean) => void;
|
|
29
|
-
checkboxData?: TableFilterConfig;
|
|
30
158
|
}
|
|
@@ -1,4 +1,41 @@
|
|
|
1
1
|
import { CommonProps } from '../../types/emotion';
|
|
2
|
+
/**
|
|
3
|
+
* TableHead - Header section container for table columns
|
|
4
|
+
*
|
|
5
|
+
* A styled thead element that wraps table header rows. Provides styling
|
|
6
|
+
* for the table header section including bold font weight, border styling,
|
|
7
|
+
* and rounded corners. Used with TableRow and TableCellHeader components.
|
|
8
|
+
*
|
|
9
|
+
* @category Components
|
|
10
|
+
* @subcategory Data Display
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* ```tsx
|
|
14
|
+
* // Basic table head
|
|
15
|
+
* <Table>
|
|
16
|
+
* <TableHead>
|
|
17
|
+
* <TableRow>
|
|
18
|
+
* <TableCellHeader>Name</TableCellHeader>
|
|
19
|
+
* <TableCellHeader>Email</TableCellHeader>
|
|
20
|
+
* <TableCellHeader>Role</TableCellHeader>
|
|
21
|
+
* </TableRow>
|
|
22
|
+
* </TableHead>
|
|
23
|
+
* <TableBody>
|
|
24
|
+
* // data rows go here
|
|
25
|
+
* </TableBody>
|
|
26
|
+
* </Table>
|
|
27
|
+
* ```
|
|
28
|
+
*
|
|
29
|
+
* @see {@link Table} - Parent table component
|
|
30
|
+
* @see {@link TableRow} - Row component for header
|
|
31
|
+
* @see {@link TableCellHeader} - Header cell component
|
|
32
|
+
* @see {@link TableBody} - Body section component
|
|
33
|
+
*
|
|
34
|
+
* @accessibility
|
|
35
|
+
* - Semantic HTML thead element
|
|
36
|
+
* - Proper table structure for screen readers
|
|
37
|
+
* - Supports ARIA attributes via CommonProps
|
|
38
|
+
*/
|
|
2
39
|
declare const TableHead: import("@emotion/styled").StyledComponent<{
|
|
3
40
|
theme?: import("@emotion/react").Theme;
|
|
4
41
|
as?: React.ElementType;
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
import {
|
|
2
|
-
declare const TableRow: import("
|
|
3
|
-
theme?: import("@emotion/react").Theme;
|
|
4
|
-
as?: React.ElementType;
|
|
5
|
-
} & CommonProps & {
|
|
6
|
-
isDisabled?: boolean;
|
|
7
|
-
}, import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLTableRowElement>, HTMLTableRowElement>, {}>;
|
|
1
|
+
import { TableRowProps } from './types';
|
|
2
|
+
declare const TableRow: import("react").ForwardRefExoticComponent<TableRowProps & import("react").RefAttributes<HTMLTableRowElement>>;
|
|
8
3
|
export default TableRow;
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { HTMLAttributes } from 'react';
|
|
2
|
+
import { CommonProps } from '../../types/emotion';
|
|
3
|
+
/**
|
|
4
|
+
* Props for the TableRow component
|
|
5
|
+
*
|
|
6
|
+
* A styled table row component that represents a single row in a table.
|
|
7
|
+
* Supports disabled state for non-interactive rows.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```tsx
|
|
11
|
+
* // Basic table row
|
|
12
|
+
* <TableRow>
|
|
13
|
+
* <TableCell>Data 1</TableCell>
|
|
14
|
+
* <TableCell>Data 2</TableCell>
|
|
15
|
+
* </TableRow>
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* ```tsx
|
|
20
|
+
* // Disabled table row (aria-disabled is automatically set)
|
|
21
|
+
* <TableRow isDisabled>
|
|
22
|
+
* <TableCell>Disabled Row</TableCell>
|
|
23
|
+
* </TableRow>
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export interface TableRowProps extends CommonProps, HTMLAttributes<HTMLTableRowElement> {
|
|
27
|
+
/**
|
|
28
|
+
* Whether the row is disabled
|
|
29
|
+
* Disabled rows have reduced opacity and no pointer cursor.
|
|
30
|
+
* Automatically sets aria-disabled attribute when true.
|
|
31
|
+
* @default false
|
|
32
|
+
*/
|
|
33
|
+
isDisabled?: boolean;
|
|
34
|
+
}
|