@atom-learning/components 5.13.0-beta.0 → 5.14.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.
Files changed (172) hide show
  1. package/CHANGELOG.md +207 -0
  2. package/dist/components/accordion/Accordion.d.ts +0 -2
  3. package/dist/components/accordion/AccordionContent.d.ts +0 -2
  4. package/dist/components/accordion/AccordionItem.d.ts +0 -2
  5. package/dist/components/accordion/AccordionTrigger.d.ts +0 -2
  6. package/dist/components/action-icon/ActionIcon.d.ts +1 -3
  7. package/dist/components/alert-dialog/AlertDialog.d.ts +0 -4
  8. package/dist/components/alert-dialog/AlertDialogContent.d.ts +0 -2
  9. package/dist/components/avatar/Avatar.d.ts +0 -4
  10. package/dist/components/badge/Badge.d.ts +1 -13
  11. package/dist/components/badge/BadgeIcon.d.ts +0 -4
  12. package/dist/components/badge/BadgeText.d.ts +0 -4
  13. package/dist/components/banner/Banner.d.ts +2 -2
  14. package/dist/components/banner/BannerContainer.d.ts +0 -4
  15. package/dist/components/banner/banner-regular/BannerRegular.d.ts +474 -108
  16. package/dist/components/banner/banner-regular/BannerRegularContent.d.ts +0 -4
  17. package/dist/components/banner/banner-regular/BannerRegularDismiss.d.ts +2 -6
  18. package/dist/components/banner/banner-slim/BannerSlim.d.ts +474 -108
  19. package/dist/components/banner/banner-slim/BannerSlimContainer.d.ts +0 -2
  20. package/dist/components/banner/banner-slim/BannerSlimContent.d.ts +0 -4
  21. package/dist/components/banner/banner-slim/BannerSlimDismiss.d.ts +2 -6
  22. package/dist/components/box/Box.d.ts +0 -2
  23. package/dist/components/button/Button.d.ts +0 -2
  24. package/dist/components/calendar/Day.d.ts +0 -2
  25. package/dist/components/carousel/Carousel.d.ts +0 -6
  26. package/dist/components/carousel/CarouselPagination.d.ts +0 -2
  27. package/dist/components/carousel/CarouselSlide.d.ts +0 -2
  28. package/dist/components/carousel/CarouselSlider.d.ts +0 -2
  29. package/dist/components/checkbox/Checkbox.d.ts +0 -2
  30. package/dist/components/checkbox-group/CheckboxGroup.d.ts +90 -96
  31. package/dist/components/checkbox-tree/CheckboxTree.d.ts +344 -352
  32. package/dist/components/chip/Chip.d.ts +0 -14
  33. package/dist/components/chip-dismissible-group/ChipDismissibleGroupItem.d.ts +0 -6
  34. package/dist/components/chip-toggle-group/ChipToggleGroupItem.d.ts +0 -6
  35. package/dist/components/combobox/Combobox.d.ts +0 -10
  36. package/dist/components/combobox/ComboboxInput.d.ts +0 -2
  37. package/dist/components/combobox/ComboboxList.d.ts +0 -2
  38. package/dist/components/combobox/ComboboxOption.d.ts +0 -2
  39. package/dist/components/combobox/ComboboxPopover.d.ts +0 -2
  40. package/dist/components/data-table/DataTable.d.ts +26 -47
  41. package/dist/components/data-table/DataTableHeaderCell.js +1 -1
  42. package/dist/components/data-table/DataTableHeaderCell.js.map +1 -1
  43. package/dist/components/data-table/DataTableLoading.d.ts +0 -2
  44. package/dist/components/data-table/DataTableRow.js +1 -1
  45. package/dist/components/data-table/DataTableRow.js.map +1 -1
  46. package/dist/components/data-table/DataTableTable.d.ts +2 -1
  47. package/dist/components/data-table/DataTableTable.js +1 -1
  48. package/dist/components/data-table/DataTableTable.js.map +1 -1
  49. package/dist/components/data-table/pagination/Pagination.d.ts +0 -2
  50. package/dist/components/dialog/Dialog.d.ts +2 -12
  51. package/dist/components/dialog/DialogBackground.d.ts +0 -4
  52. package/dist/components/dialog/DialogClose.d.ts +0 -2
  53. package/dist/components/dialog/DialogContent.d.ts +0 -2
  54. package/dist/components/dismissible/index.d.ts +2 -2
  55. package/dist/components/dismissible-group/index.d.ts +3 -3
  56. package/dist/components/divider/Divider.d.ts +0 -2
  57. package/dist/components/drawer/Drawer.d.ts +0 -8
  58. package/dist/components/drawer/DrawerContent.d.ts +0 -2
  59. package/dist/components/drawer/DrawerFooter.d.ts +0 -2
  60. package/dist/components/drawer/DrawerHeader.d.ts +0 -2
  61. package/dist/components/drawer/DrawerMain.d.ts +0 -2
  62. package/dist/components/drawer/DrawerOverlay.d.ts +0 -2
  63. package/dist/components/drawer/DrawerTrigger.d.ts +0 -2
  64. package/dist/components/dropdown-menu/DropdownMenu.d.ts +0 -10
  65. package/dist/components/dropdown-menu/DropdownMenuContent.d.ts +0 -2
  66. package/dist/components/dropdown-menu/DropdownMenuItem.d.ts +0 -2
  67. package/dist/components/dropdown-menu/DropdownMenuSeparator.d.ts +0 -2
  68. package/dist/components/dropdown-menu/DropdownMenuTrigger.d.ts +0 -2
  69. package/dist/components/empty-state/EmptyState.d.ts +0 -14
  70. package/dist/components/empty-state/EmptyStateBody.d.ts +0 -4
  71. package/dist/components/empty-state/EmptyStateImage.d.ts +0 -4
  72. package/dist/components/empty-state/EmptyStateTitle.d.ts +0 -2
  73. package/dist/components/flex/Flex.d.ts +0 -2
  74. package/dist/components/form/Form.d.ts +0 -2
  75. package/dist/components/grid/Grid.d.ts +0 -2
  76. package/dist/components/heading/Heading.d.ts +0 -2
  77. package/dist/components/icon/Icon.d.ts +0 -2
  78. package/dist/components/image/Image.d.ts +0 -2
  79. package/dist/components/inline-message/InlineMessage.d.ts +0 -4
  80. package/dist/components/input/Input.d.ts +0 -6
  81. package/dist/components/keyboard-shortcut/KeyboardShortcut.d.ts +0 -4
  82. package/dist/components/keyboard-shortcut/index.d.ts +2 -8
  83. package/dist/components/label/Label.d.ts +0 -2
  84. package/dist/components/link/Link.d.ts +0 -2
  85. package/dist/components/list/List.d.ts +0 -4
  86. package/dist/components/markdown-content/MarkdownContent.d.ts +0 -4
  87. package/dist/components/markdown-content/components/MarkdownEmphasis.d.ts +0 -2
  88. package/dist/components/navigation/NavigationMenu.d.ts +0 -18
  89. package/dist/components/navigation/NavigationMenuDropdownContent.d.ts +0 -2
  90. package/dist/components/navigation/NavigationMenuDropdownItem.d.ts +0 -4
  91. package/dist/components/navigation/NavigationMenuDropdownTrigger.d.ts +0 -2
  92. package/dist/components/navigation/NavigationMenuLink.d.ts +0 -2
  93. package/dist/components/navigation-menu-vertical/NavigationMenuVertical.d.ts +162 -184
  94. package/dist/components/navigation-menu-vertical/NavigationMenuVerticalAccordionContent.d.ts +0 -2
  95. package/dist/components/navigation-menu-vertical/NavigationMenuVerticalAccordionTrigger.d.ts +0 -2
  96. package/dist/components/navigation-menu-vertical/NavigationMenuVerticalIcon.d.ts +0 -4
  97. package/dist/components/navigation-menu-vertical/NavigationMenuVerticalItem.d.ts +0 -2
  98. package/dist/components/navigation-menu-vertical/NavigationMenuVerticalLink.d.ts +0 -2
  99. package/dist/components/navigation-menu-vertical/NavigationMenuVerticalList.d.ts +0 -2
  100. package/dist/components/navigation-menu-vertical/NavigationMenuVerticalText.d.ts +0 -4
  101. package/dist/components/notification-badge/NotificationBadge.d.ts +6 -1
  102. package/dist/components/notification-badge/NotificationBadge.js +1 -1
  103. package/dist/components/notification-badge/NotificationBadge.js.map +1 -1
  104. package/dist/components/number-input/NumberInputStepper.d.ts +2 -6
  105. package/dist/components/pagination/PaginationNextButton.d.ts +2 -6
  106. package/dist/components/pagination/PaginationPreviousButton.d.ts +2 -6
  107. package/dist/components/popover/Popover.d.ts +0 -4
  108. package/dist/components/popover/PopoverContent.d.ts +0 -2
  109. package/dist/components/progress-bar/ProgressBar.d.ts +0 -2
  110. package/dist/components/radio-button/RadioButton.d.ts +0 -2
  111. package/dist/components/radio-button/RadioButtonGroup.d.ts +0 -2
  112. package/dist/components/radio-button-field/RadioButtonField.d.ts +0 -2
  113. package/dist/components/radio-card/RadioCard.d.ts +0 -2
  114. package/dist/components/section-message/SectionMessage.d.ts +0 -4
  115. package/dist/components/segmented-control/SegmentedControl.d.ts +9 -25
  116. package/dist/components/segmented-control/SegmentedControlContent.d.ts +0 -2
  117. package/dist/components/segmented-control/SegmentedControlDescription.d.ts +0 -4
  118. package/dist/components/segmented-control/SegmentedControlHeading.d.ts +0 -4
  119. package/dist/components/segmented-control/SegmentedControlItem.d.ts +0 -4
  120. package/dist/components/segmented-control/SegmentedControlRoot.d.ts +0 -10
  121. package/dist/components/select/Select.d.ts +0 -2
  122. package/dist/components/side-bar/SideBar.d.ts +0 -16
  123. package/dist/components/side-bar/SideBarComponents.d.ts +1 -15
  124. package/dist/components/slider/Slider.d.ts +0 -4
  125. package/dist/components/sortable/Handle.d.ts +2 -6
  126. package/dist/components/sortable/index.d.ts +3 -3
  127. package/dist/components/spacer/Spacer.d.ts +0 -2
  128. package/dist/components/stepper/StepperStepBullet.d.ts +0 -4
  129. package/dist/components/stepper/StepperStepContainer.d.ts +0 -4
  130. package/dist/components/stepper/StepperStepLabel.d.ts +1 -5
  131. package/dist/components/switch/Switch.d.ts +0 -2
  132. package/dist/components/table/Table.d.ts +1 -17
  133. package/dist/components/table/TableBody.d.ts +0 -2
  134. package/dist/components/table/TableCell.d.ts +0 -2
  135. package/dist/components/table/TableFooter.d.ts +0 -2
  136. package/dist/components/table/TableFooterCell.d.ts +0 -2
  137. package/dist/components/table/TableHeader.d.ts +1 -3
  138. package/dist/components/table/TableHeaderCell.d.ts +0 -2
  139. package/dist/components/table/TableRow.d.ts +0 -2
  140. package/dist/components/tabs/Tabs.d.ts +0 -8
  141. package/dist/components/tabs/TabsContent.d.ts +0 -2
  142. package/dist/components/tabs/TabsTrigger.d.ts +0 -2
  143. package/dist/components/tabs/TabsTriggerList.d.ts +0 -2
  144. package/dist/components/text/Text.d.ts +0 -2
  145. package/dist/components/textarea/Textarea.d.ts +0 -2
  146. package/dist/components/tile/Tile.d.ts +0 -2
  147. package/dist/components/tile/TileGroup.d.ts +0 -2
  148. package/dist/components/tile-interactive/TileInteractive.d.ts +0 -4
  149. package/dist/components/tile-toggle-group/TileToggleGroupItem.d.ts +0 -6
  150. package/dist/components/toast/Toast.d.ts +0 -4
  151. package/dist/components/toggle-group/ToggleGroupButton.d.ts +0 -4
  152. package/dist/components/toggle-group/ToggleGroupItem.d.ts +0 -4
  153. package/dist/components/toggle-group/ToggleGroupRoot.d.ts +0 -2
  154. package/dist/components/toggle-group/index.d.ts +2 -14
  155. package/dist/components/tooltip/Tooltip.d.ts +0 -4
  156. package/dist/components/tooltip/TooltipContent.d.ts +0 -2
  157. package/dist/components/top-bar/TopBar.d.ts +2 -12
  158. package/dist/components/top-bar/TopBarBrand.d.ts +0 -6
  159. package/dist/components/tree/Tree.d.ts +243 -267
  160. package/dist/components/tree/TreeCollapsible.d.ts +0 -2
  161. package/dist/components/tree/TreeCollapsibleContent.d.ts +0 -2
  162. package/dist/components/tree/TreeIcon.d.ts +0 -4
  163. package/dist/components/tree/TreeItemContent.d.ts +0 -2
  164. package/dist/components/tree/TreeListItem.d.ts +0 -2
  165. package/dist/components/video/Video.d.ts +0 -2
  166. package/dist/docgen.json +1 -1
  167. package/dist/experiments/color-scheme/ColorScheme.d.ts +0 -2
  168. package/dist/index.cjs.js +1 -1
  169. package/dist/index.cjs.js.map +1 -1
  170. package/dist/stitches.d.ts +0 -22
  171. package/dist/utilities/no-overflow-wrapper/NoOverflowWrapper.d.ts +0 -2
  172. package/package.json +2 -2
@@ -24,8 +24,6 @@ export declare const StyledChipContent: import("@atom-learning/stitches-react/ty
24
24
  textMinimal: string;
25
25
  background: string;
26
26
  backgroundAccent: string;
27
- black: string;
28
- white: string;
29
27
  grey100: string;
30
28
  grey200: string;
31
29
  grey300: string;
@@ -402,8 +400,6 @@ export declare const StyledRoot: import("@atom-learning/stitches-react/types/sty
402
400
  textMinimal: string;
403
401
  background: string;
404
402
  backgroundAccent: string;
405
- black: string;
406
- white: string;
407
403
  grey100: string;
408
404
  grey200: string;
409
405
  grey300: string;
@@ -774,8 +770,6 @@ export declare const StyledRoot: import("@atom-learning/stitches-react/types/sty
774
770
  textMinimal: string;
775
771
  background: string;
776
772
  backgroundAccent: string;
777
- black: string;
778
- white: string;
779
773
  grey100: string;
780
774
  grey200: string;
781
775
  grey300: string;
@@ -1156,8 +1150,6 @@ export declare const ChipRootContext: React.Context<Omit<Omit<Omit<React.Detaile
1156
1150
  textMinimal: string;
1157
1151
  background: string;
1158
1152
  backgroundAccent: string;
1159
- black: string;
1160
- white: string;
1161
1153
  grey100: string;
1162
1154
  grey200: string;
1163
1155
  grey300: string;
@@ -1530,8 +1522,6 @@ export declare const ChipRootContext: React.Context<Omit<Omit<Omit<React.Detaile
1530
1522
  textMinimal: string;
1531
1523
  background: string;
1532
1524
  backgroundAccent: string;
1533
- black: string;
1534
- white: string;
1535
1525
  grey100: string;
1536
1526
  grey200: string;
1537
1527
  grey300: string;
@@ -1913,8 +1903,6 @@ export declare const Chip: React.ForwardRefExoticComponent<Omit<Omit<Omit<React.
1913
1903
  textMinimal: string;
1914
1904
  background: string;
1915
1905
  backgroundAccent: string;
1916
- black: string;
1917
- white: string;
1918
1906
  grey100: string;
1919
1907
  grey200: string;
1920
1908
  grey300: string;
@@ -2287,8 +2275,6 @@ export declare const Chip: React.ForwardRefExoticComponent<Omit<Omit<Omit<React.
2287
2275
  textMinimal: string;
2288
2276
  background: string;
2289
2277
  backgroundAccent: string;
2290
- black: string;
2291
- white: string;
2292
2278
  grey100: string;
2293
2279
  grey200: string;
2294
2280
  grey300: string;
@@ -34,8 +34,6 @@ declare const StyledChipDismissibleGroupItem: import("@atom-learning/stitches-re
34
34
  textMinimal: string;
35
35
  background: string;
36
36
  backgroundAccent: string;
37
- black: string;
38
- white: string;
39
37
  grey100: string;
40
38
  grey200: string;
41
39
  grey300: string;
@@ -408,8 +406,6 @@ declare const StyledChipDismissibleGroupItem: import("@atom-learning/stitches-re
408
406
  textMinimal: string;
409
407
  background: string;
410
408
  backgroundAccent: string;
411
- black: string;
412
- white: string;
413
409
  grey100: string;
414
410
  grey200: string;
415
411
  grey300: string;
@@ -785,8 +781,6 @@ declare const StyledChipDismissibleGroupItem: import("@atom-learning/stitches-re
785
781
  textMinimal: string;
786
782
  background: string;
787
783
  backgroundAccent: string;
788
- black: string;
789
- white: string;
790
784
  grey100: string;
791
785
  grey200: string;
792
786
  grey300: string;
@@ -34,8 +34,6 @@ declare const StyledChipToggleGroupItem: import("@atom-learning/stitches-react/t
34
34
  textMinimal: string;
35
35
  background: string;
36
36
  backgroundAccent: string;
37
- black: string;
38
- white: string;
39
37
  grey100: string;
40
38
  grey200: string;
41
39
  grey300: string;
@@ -408,8 +406,6 @@ declare const StyledChipToggleGroupItem: import("@atom-learning/stitches-react/t
408
406
  textMinimal: string;
409
407
  background: string;
410
408
  backgroundAccent: string;
411
- black: string;
412
- white: string;
413
409
  grey100: string;
414
410
  grey200: string;
415
411
  grey300: string;
@@ -785,8 +781,6 @@ declare const StyledChipToggleGroupItem: import("@atom-learning/stitches-react/t
785
781
  textMinimal: string;
786
782
  background: string;
787
783
  backgroundAccent: string;
788
- black: string;
789
- white: string;
790
784
  grey100: string;
791
785
  grey200: string;
792
786
  grey300: string;
@@ -23,8 +23,6 @@ export declare const Combobox: import("@atom-learning/stitches-react/types/style
23
23
  textMinimal: string;
24
24
  background: string;
25
25
  backgroundAccent: string;
26
- black: string;
27
- white: string;
28
26
  grey100: string;
29
27
  grey200: string;
30
28
  grey300: string;
@@ -395,8 +393,6 @@ export declare const Combobox: import("@atom-learning/stitches-react/types/style
395
393
  textMinimal: string;
396
394
  background: string;
397
395
  backgroundAccent: string;
398
- black: string;
399
- white: string;
400
396
  grey100: string;
401
397
  grey200: string;
402
398
  grey300: string;
@@ -774,8 +770,6 @@ export declare const Combobox: import("@atom-learning/stitches-react/types/style
774
770
  textMinimal: string;
775
771
  background: string;
776
772
  backgroundAccent: string;
777
- black: string;
778
- white: string;
779
773
  grey100: string;
780
774
  grey200: string;
781
775
  grey300: string;
@@ -1146,8 +1140,6 @@ export declare const Combobox: import("@atom-learning/stitches-react/types/style
1146
1140
  textMinimal: string;
1147
1141
  background: string;
1148
1142
  backgroundAccent: string;
1149
- black: string;
1150
- white: string;
1151
1143
  grey100: string;
1152
1144
  grey200: string;
1153
1145
  grey300: string;
@@ -1517,8 +1509,6 @@ export declare const Combobox: import("@atom-learning/stitches-react/types/style
1517
1509
  textMinimal: string;
1518
1510
  background: string;
1519
1511
  backgroundAccent: string;
1520
- black: string;
1521
- white: string;
1522
1512
  grey100: string;
1523
1513
  grey200: string;
1524
1514
  grey300: string;
@@ -26,8 +26,6 @@ export declare const StyledComboboxInput: import("@atom-learning/stitches-react/
26
26
  textMinimal: string;
27
27
  background: string;
28
28
  backgroundAccent: string;
29
- black: string;
30
- white: string;
31
29
  grey100: string;
32
30
  grey200: string;
33
31
  grey300: string;
@@ -22,8 +22,6 @@ export declare const ComboboxList: import("@atom-learning/stitches-react/types/s
22
22
  textMinimal: string;
23
23
  background: string;
24
24
  backgroundAccent: string;
25
- black: string;
26
- white: string;
27
25
  grey100: string;
28
26
  grey200: string;
29
27
  grey300: string;
@@ -22,8 +22,6 @@ export declare const ComboboxOption: import("@atom-learning/stitches-react/types
22
22
  textMinimal: string;
23
23
  background: string;
24
24
  backgroundAccent: string;
25
- black: string;
26
- white: string;
27
25
  grey100: string;
28
26
  grey200: string;
29
27
  grey300: string;
@@ -22,8 +22,6 @@ export declare const ComboboxPopover: import("@atom-learning/stitches-react/type
22
22
  textMinimal: string;
23
23
  background: string;
24
24
  backgroundAccent: string;
25
- black: string;
26
- white: string;
27
25
  grey100: string;
28
26
  grey200: string;
29
27
  grey300: string;
@@ -6,7 +6,7 @@
6
6
  export declare const DataTable: (({ columns, data: dataProp, getAsyncData, defaultSort, initialState, disabledRows, enableRowSelection, onRowSelectionChange, children }: {
7
7
  columns: any;
8
8
  defaultSort?: import("./DataTable.types").TDefaultSort;
9
- children: React.ReactNode;
9
+ children: import("react").ReactNode;
10
10
  initialState?: import("./DataTable.types").InitialState;
11
11
  disabledRows?: Record<string, boolean>;
12
12
  enableRowSelection?: boolean | ((row: import("@tanstack/table-core").Row<unknown>) => boolean);
@@ -52,8 +52,6 @@ export declare const DataTable: (({ columns, data: dataProp, getAsyncData, defau
52
52
  textMinimal: string;
53
53
  background: string;
54
54
  backgroundAccent: string;
55
- black: string;
56
- white: string;
57
55
  grey100: string;
58
56
  grey200: string;
59
57
  grey300: string;
@@ -400,7 +398,7 @@ export declare const DataTable: (({ columns, data: dataProp, getAsyncData, defau
400
398
  };
401
399
  }> | undefined;
402
400
  }, "children"> & {
403
- rowAction?: (row: Record<string, unknown>, event: React.MouseEvent) => void;
401
+ rowAction?: (row: Record<string, unknown>, event: import("react").MouseEvent) => void;
404
402
  }) => import("react").JSX.Element;
405
403
  /** Default table data cell implementation for `DataTable`
406
404
  *
@@ -442,8 +440,6 @@ export declare const DataTable: (({ columns, data: dataProp, getAsyncData, defau
442
440
  textMinimal: string;
443
441
  background: string;
444
442
  backgroundAccent: string;
445
- black: string;
446
- white: string;
447
443
  grey100: string;
448
444
  grey200: string;
449
445
  grey300: string;
@@ -797,7 +793,7 @@ export declare const DataTable: (({ columns, data: dataProp, getAsyncData, defau
797
793
  }, "ref"> & import("react").RefAttributes<HTMLTableElement>, "children" | "numberOfStickyColumns"> & Partial<Pick<Omit<Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLTableSectionElement>, HTMLTableSectionElement>, "ref"> & {
798
794
  ref?: ((instance: HTMLTableSectionElement | null) => void) | import("react").RefObject<HTMLTableSectionElement> | null | undefined;
799
795
  }, "css" | "theme" | "isSticky"> & import("@atom-learning/stitches-react/types/styled-component").TransformProps<{
800
- theme?: "white" | "light" | "primary" | "primaryDark" | "primaryLight" | undefined;
796
+ theme?: "light" | "white" | "primary" | "primaryDark" | "primaryLight" | undefined;
801
797
  isSticky?: boolean | "true" | undefined;
802
798
  }, {
803
799
  sm: string;
@@ -824,8 +820,6 @@ export declare const DataTable: (({ columns, data: dataProp, getAsyncData, defau
824
820
  textMinimal: string;
825
821
  background: string;
826
822
  backgroundAccent: string;
827
- black: string;
828
- white: string;
829
823
  grey100: string;
830
824
  grey200: string;
831
825
  grey300: string;
@@ -1207,8 +1201,6 @@ export declare const DataTable: (({ columns, data: dataProp, getAsyncData, defau
1207
1201
  textMinimal: string;
1208
1202
  background: string;
1209
1203
  backgroundAccent: string;
1210
- black: string;
1211
- white: string;
1212
1204
  grey100: string;
1213
1205
  grey200: string;
1214
1206
  grey300: string;
@@ -1564,7 +1556,8 @@ export declare const DataTable: (({ columns, data: dataProp, getAsyncData, defau
1564
1556
  showTotalInFirstColumn?: boolean;
1565
1557
  totalSuffix?: string;
1566
1558
  };
1567
- rowAction?: (row: Record<string, unknown>, event: React.MouseEvent) => void;
1559
+ rowAction?: (row: Record<string, unknown>, event: import("react").MouseEvent) => void;
1560
+ withContainer?: boolean;
1568
1561
  } & {
1569
1562
  idColumn?: string;
1570
1563
  onDragAndDrop?: (onDragAndDropData: {
@@ -1604,8 +1597,6 @@ export declare const DataTable: (({ columns, data: dataProp, getAsyncData, defau
1604
1597
  textMinimal: string;
1605
1598
  background: string;
1606
1599
  backgroundAccent: string;
1607
- black: string;
1608
- white: string;
1609
1600
  grey100: string;
1610
1601
  grey200: string;
1611
1602
  grey300: string;
@@ -1952,7 +1943,7 @@ export declare const DataTable: (({ columns, data: dataProp, getAsyncData, defau
1952
1943
  };
1953
1944
  }> | undefined;
1954
1945
  }, "size" | "type" | "as"> & {
1955
- size: React.ComponentProps<typeof import("..").Text>["size"];
1946
+ size: import("react").ComponentProps<typeof import("..").Text>["size"];
1956
1947
  type?: "text" | "number" | "email" | "password" | "tel" | "url" | "search";
1957
1948
  as?: never;
1958
1949
  }, "appearance" | "size" | "state"> & {
@@ -1999,7 +1990,7 @@ export declare const DataTable: (({ columns, data: dataProp, getAsyncData, defau
1999
1990
  defaultValue?: string;
2000
1991
  onValueChange?: (newValue: string) => void;
2001
1992
  clearText?: string;
2002
- onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;
1993
+ onChange?: (e: import("react").ChangeEvent<HTMLInputElement>) => void;
2003
1994
  } & {
2004
1995
  label: string;
2005
1996
  hideLabel?: boolean;
@@ -2013,7 +2004,7 @@ export declare const DataTable: (({ columns, data: dataProp, getAsyncData, defau
2013
2004
  Head: ({ sortable, theme, isSticky, stickyOffset, showTotalInFirstColumn, totalSuffix, style, css, ...props }: Omit<Omit<Omit<import("react").DetailedHTMLProps<import("react").HTMLAttributes<HTMLTableSectionElement>, HTMLTableSectionElement>, "ref"> & {
2014
2005
  ref?: ((instance: HTMLTableSectionElement | null) => void) | import("react").RefObject<HTMLTableSectionElement> | null | undefined;
2015
2006
  }, "css" | "theme" | "isSticky"> & import("@atom-learning/stitches-react/types/styled-component").TransformProps<{
2016
- theme?: "white" | "light" | "primary" | "primaryDark" | "primaryLight" | undefined;
2007
+ theme?: "light" | "white" | "primary" | "primaryDark" | "primaryLight" | undefined;
2017
2008
  isSticky?: boolean | "true" | undefined;
2018
2009
  }, {
2019
2010
  sm: string;
@@ -2040,8 +2031,6 @@ export declare const DataTable: (({ columns, data: dataProp, getAsyncData, defau
2040
2031
  textMinimal: string;
2041
2032
  background: string;
2042
2033
  backgroundAccent: string;
2043
- black: string;
2044
- white: string;
2045
2034
  grey100: string;
2046
2035
  grey200: string;
2047
2036
  grey300: string;
@@ -2394,7 +2383,7 @@ export declare const DataTable: (({ columns, data: dataProp, getAsyncData, defau
2394
2383
  showTotalInFirstColumn?: boolean;
2395
2384
  totalSuffix?: string;
2396
2385
  headerCss?: import("../..").CSS;
2397
- }) => React.ReactElement;
2386
+ }) => import("react").ReactElement;
2398
2387
  /** Default header implementation for `DataTable`
2399
2388
  *
2400
2389
  * Can be configured to make the column sortable. If you need more customisation options,
@@ -2427,8 +2416,6 @@ export declare const DataTable: (({ columns, data: dataProp, getAsyncData, defau
2427
2416
  textMinimal: string;
2428
2417
  background: string;
2429
2418
  backgroundAccent: string;
2430
- black: string;
2431
- white: string;
2432
2419
  grey100: string;
2433
2420
  grey200: string;
2434
2421
  grey300: string;
@@ -2826,8 +2813,6 @@ export declare const DataTable: (({ columns, data: dataProp, getAsyncData, defau
2826
2813
  textMinimal: string;
2827
2814
  background: string;
2828
2815
  backgroundAccent: string;
2829
- black: string;
2830
- white: string;
2831
2816
  grey100: string;
2832
2817
  grey200: string;
2833
2818
  grey300: string;
@@ -3193,7 +3178,7 @@ export declare const DataTable: (({ columns, data: dataProp, getAsyncData, defau
3193
3178
  * scratch with `useDataTable` and the UI-only `Table` components.
3194
3179
  *
3195
3180
  */
3196
- Table: ({ sortable, striped, theme, css, scrollOptions, rowAction, ...props }: import("./DataTableTable").DataTableTableProps) => JSX.Element | null;
3181
+ Table: ({ sortable, striped, theme, css, scrollOptions, rowAction, withContainer, ...props }: import("./DataTableTable").DataTableTableProps) => JSX.Element | null;
3197
3182
  /** Default loading implementation for remote data
3198
3183
  *
3199
3184
  * Renders a loading component while fetching the paginated data using `getAsyncData`.
@@ -3201,7 +3186,7 @@ export declare const DataTable: (({ columns, data: dataProp, getAsyncData, defau
3201
3186
  * If you need more customisation, you can compose your own implentation, `asyncDataState`
3202
3187
  * can be retrieved from `useDataTable`
3203
3188
  */
3204
- Loading: (props: React.ComponentProps<import("@atom-learning/stitches-react/types/styled-component").StyledComponent<({ css, message, size, ...props }: {
3189
+ Loading: (props: import("react").ComponentProps<import("@atom-learning/stitches-react/types/styled-component").StyledComponent<({ css, message, size, ...props }: {
3205
3190
  message?: string;
3206
3191
  size?: "sm" | "md" | "lg";
3207
3192
  css?: import("../..").CSS;
@@ -3229,8 +3214,6 @@ export declare const DataTable: (({ columns, data: dataProp, getAsyncData, defau
3229
3214
  textMinimal: string;
3230
3215
  background: string;
3231
3216
  backgroundAccent: string;
3232
- black: string;
3233
- white: string;
3234
3217
  grey100: string;
3235
3218
  grey200: string;
3236
3219
  grey300: string;
@@ -3588,7 +3571,7 @@ export declare const DataTable: (({ columns, data: dataProp, getAsyncData, defau
3588
3571
  *
3589
3572
  */
3590
3573
  Error: ({ children }: {
3591
- children: (retry?: import("./DataTable.types").DataTableContextType["runAsyncData"]) => React.ReactElement;
3574
+ children: (retry?: import("./DataTable.types").DataTableContextType["runAsyncData"]) => import("react").ReactElement;
3592
3575
  }) => import("react").ReactElement<any, string | import("react").JSXElementConstructor<any>> | null;
3593
3576
  /** Empty state implementation for `DataTable`.
3594
3577
  *
@@ -3627,8 +3610,6 @@ export declare const DataTable: (({ columns, data: dataProp, getAsyncData, defau
3627
3610
  textMinimal: string;
3628
3611
  background: string;
3629
3612
  backgroundAccent: string;
3630
- black: string;
3631
- white: string;
3632
3613
  grey100: string;
3633
3614
  grey200: string;
3634
3615
  grey300: string;
@@ -4001,8 +3982,6 @@ export declare const DataTable: (({ columns, data: dataProp, getAsyncData, defau
4001
3982
  textMinimal: string;
4002
3983
  background: string;
4003
3984
  backgroundAccent: string;
4004
- black: string;
4005
- white: string;
4006
3985
  grey100: string;
4007
3986
  grey200: string;
4008
3987
  grey300: string;
@@ -4365,31 +4344,31 @@ export declare const DataTable: (({ columns, data: dataProp, getAsyncData, defau
4365
4344
  checked: boolean | "indeterminate";
4366
4345
  onCheckedChange: (value: boolean) => void;
4367
4346
  label?: string;
4368
- }) => React.ReactElement;
4347
+ }) => import("react").ReactElement;
4369
4348
  /** Bulk actions for selected rows.
4370
4349
  *
4371
4350
  * Renders a toolbar with actions that can be applied to all selected rows
4372
4351
  */
4373
4352
  BulkActions: (({ children, ...rest }: {
4374
4353
  css?: import("../..").CSS;
4375
- children: React.ReactElement<React.ComponentProps<({ children }: {
4376
- children: React.ReactElement;
4377
- }) => React.ReactElement | null>> | React.ReactElement<React.ComponentProps<({ cancelLabel, children }: {
4354
+ children: import("react").ReactElement<import("react").ComponentProps<({ children }: {
4355
+ children: import("react").ReactElement;
4356
+ }) => import("react").ReactElement | null>> | import("react").ReactElement<import("react").ComponentProps<({ cancelLabel, children }: {
4378
4357
  cancelLabel?: string;
4379
- children: React.ReactNode;
4380
- }) => import("react").JSX.Element | null>> | [React.ReactElement<React.ComponentProps<({ children }: {
4381
- children: React.ReactElement;
4382
- }) => React.ReactElement | null>>, React.ReactElement<React.ComponentProps<({ cancelLabel, children }: {
4358
+ children: import("react").ReactNode;
4359
+ }) => import("react").JSX.Element | null>> | [import("react").ReactElement<import("react").ComponentProps<({ children }: {
4360
+ children: import("react").ReactElement;
4361
+ }) => import("react").ReactElement | null>>, import("react").ReactElement<import("react").ComponentProps<({ cancelLabel, children }: {
4383
4362
  cancelLabel?: string;
4384
- children: React.ReactNode;
4363
+ children: import("react").ReactNode;
4385
4364
  }) => import("react").JSX.Element | null>>];
4386
4365
  }) => import("react").JSX.Element) & {
4387
4366
  DefaultActions: ({ children }: {
4388
- children: React.ReactElement;
4389
- }) => React.ReactElement | null;
4367
+ children: import("react").ReactElement;
4368
+ }) => import("react").ReactElement | null;
4390
4369
  SelectedRowActions: ({ cancelLabel, children }: {
4391
4370
  cancelLabel?: string;
4392
- children: React.ReactNode;
4371
+ children: import("react").ReactNode;
4393
4372
  }) => import("react").JSX.Element | null;
4394
4373
  };
4395
4374
  /** Bulk actions for selected rows.
@@ -4398,12 +4377,12 @@ export declare const DataTable: (({ columns, data: dataProp, getAsyncData, defau
4398
4377
  */
4399
4378
  BulkActionsFloating: (({ css, children, ...rest }: {
4400
4379
  css?: import("../..").CSS;
4401
- children: React.ReactNode;
4380
+ children: import("react").ReactNode;
4402
4381
  }) => import("react").JSX.Element | null) & {
4403
4382
  SelectedRowActions: ({ cancelLabel, showDividers, children }: {
4404
4383
  cancelLabel?: string;
4405
4384
  showDividers?: boolean;
4406
- children: React.ReactNode;
4385
+ children: import("react").ReactNode;
4407
4386
  }) => import("react").JSX.Element | null;
4408
4387
  };
4409
4388
  };
@@ -1,2 +1,2 @@
1
- import{ArrowUp as S,ArrowDown as x}from"@atom-learning/icons";import{styled as m}from"@atom-learning/stitches-react";import{flexRender as E}from"@tanstack/react-table";import*as r from"react";import{useHover as k}from"react-aria";import{Flex as c}from"../flex/Flex.js";import{Icon as C}from"../icon/Icon.js";import{Table as D}from"../table/Table.js";import{useDataTable as T}from"./DataTableContext.js";import{Text as H}from"../text/Text.js";const I=m(H,{color:"$grey600",whiteSpace:"nowrap",display:"none","@media (min-width: 800px)":{display:"block"}}),R=m(D.HeaderCell,{variants:{isSortable:{true:{cursor:"pointer",position:"relative","& > *":{position:"relative"},"&:before":{content:"",position:"absolute",inset:0,opacity:0,backgroundColor:"$primary100",transition:"opacity 200ms ease"},"&:hover":{"&::before":{opacity:.5}}}}}}),z={asc:S,desc:x},A=({direction:e})=>r.createElement(C,{is:z[e],size:"sm",css:{position:"absolute",left:"$1",stroke:"$primary900"}}),F=({header:e,includeTotal:p=!1,totalSuffix:d="items",children:K,css:f,...u})=>{var a,l;const s=e.column.getIsSorted(),{isSortable:t,getRowModel:g}=T(),i=e.column.getCanSort(),y=(l=(a=g())==null?void 0:a.rows)==null?void 0:l.length,{hoverProps:b,isHovered:v}=k({}),h=(o,w)=>{(o.key==="Enter"||o.key===" ")&&(o.preventDefault(),w(o))},n=e.column.getToggleSortingHandler();return r.createElement(R,{isSortable:t&&i,colSpan:e.colSpan,onClick:t&&i&&n?n:void 0,onKeyDown:o=>t&&i&&n&&h(o,n),tabIndex:t&&i?0:-1,...b,css:f,...u},r.createElement(c,{align:"center",gap:1,justify:e.colSpan>1?"center":"flex-start"},E(e.column.columnDef.header,e.getContext()),s&&t&&r.createElement(c,{align:"center",css:{position:"relative",width:"24px",height:"24px",ml:"$2",bg:v?"$primary200":"$primary100",borderRadius:"$0"}},r.createElement(A,{direction:s})),p&&r.createElement(I,{size:"sm",weight:"normal"},"(",y," ",d,")")))};export{F as DataTableHeaderCell};
1
+ import{ArrowUp as S,ArrowDown as x}from"@atom-learning/icons";import{styled as m}from"@atom-learning/stitches-react";import{flexRender as E}from"@tanstack/react-table";import*as r from"react";import{useHover as k}from"react-aria";import{Flex as c}from"../flex/Flex.js";import{Icon as C}from"../icon/Icon.js";import{Table as D}from"../table/Table.js";import{Text as T}from"../text/Text.js";import{useDataTable as H}from"./DataTableContext.js";const I=m(T,{color:"$grey600",whiteSpace:"nowrap",display:"none","@media (min-width: 800px)":{display:"block"}}),R=m(D.HeaderCell,{variants:{isSortable:{true:{cursor:"pointer",position:"relative","& > *":{position:"relative"},"&:before":{content:"",position:"absolute",inset:0,opacity:0,backgroundColor:"$primary100",transition:"opacity 200ms ease"},"&:hover":{"&::before":{opacity:.5}}}}}}),z={asc:S,desc:x},A=({direction:e})=>r.createElement(C,{is:z[e],size:"sm",css:{position:"absolute",left:"$1",stroke:"$primary900"}}),F=({header:e,includeTotal:p=!1,totalSuffix:d="items",children:K,css:f,...u})=>{var a,l;const s=e.column.getIsSorted(),{isSortable:t,getRowModel:g}=H(),i=e.column.getCanSort(),y=(l=(a=g())==null?void 0:a.rows)==null?void 0:l.length,{hoverProps:b,isHovered:v}=k({}),h=(o,w)=>{(o.key==="Enter"||o.key===" ")&&(o.preventDefault(),w(o))},n=e.column.getToggleSortingHandler();return r.createElement(R,{isSortable:t&&i,colSpan:e.colSpan,onClick:t&&i&&n?n:void 0,onKeyDown:o=>t&&i&&n&&h(o,n),tabIndex:t&&i?0:-1,...b,css:f,...u},r.createElement(c,{align:"center",gap:1,justify:e.colSpan>1?"center":"flex-start"},E(e.column.columnDef.header,e.getContext()),s&&t&&r.createElement(c,{align:"center",css:{position:"relative",width:"24px",height:"24px",ml:"$2",bg:v?"$primary200":"$primary100",borderRadius:"$0"}},r.createElement(A,{direction:s})),p&&r.createElement(I,{size:"sm",weight:"normal"},"(",y," ",d,")")))};export{F as DataTableHeaderCell};
2
2
  //# sourceMappingURL=DataTableHeaderCell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataTableHeaderCell.js","sources":["../../../src/components/data-table/DataTableHeaderCell.tsx"],"sourcesContent":["import { ArrowDown, ArrowUp } from '@atom-learning/icons'\nimport { styled } from '@atom-learning/stitches-react'\nimport type { Header } from '@tanstack/react-table'\nimport { flexRender } from '@tanstack/react-table'\nimport * as React from 'react'\nimport { useHover } from 'react-aria'\n\nimport { Flex } from '../flex'\nimport { Icon } from '../icon'\nimport { Table } from '../table'\nimport { useDataTable } from './DataTableContext'\nimport { Text } from '../text'\ntype DataTableHeaderProps = React.ComponentProps<typeof Table.HeaderCell> & {\n header: Header<Record<string, unknown>, unknown>\n includeTotal?: boolean\n totalSuffix?: string\n}\n\nconst StyledCount = styled(Text, {\n color: '$grey600',\n whiteSpace: 'nowrap',\n display: 'none',\n '@media (min-width: 800px)': {\n display: 'block'\n }\n})\n\nconst StyledTableHeaderCell = styled(Table.HeaderCell, {\n variants: {\n isSortable: {\n true: {\n cursor: 'pointer',\n position: 'relative',\n '& > *': {\n position: 'relative'\n },\n '&:before': {\n content: '',\n position: 'absolute',\n inset: 0,\n opacity: 0,\n backgroundColor: '$primary100',\n transition: 'opacity 200ms ease'\n },\n '&:hover': {\n '&::before': {\n opacity: 0.5\n }\n }\n }\n }\n }\n})\n\nconst sortIcons = {\n asc: ArrowUp,\n desc: ArrowDown\n}\n\nconst SortIcon = ({ direction }: { direction: 'asc' | 'desc' }) => (\n <Icon\n is={sortIcons[direction]}\n size=\"sm\"\n css={{ position: 'absolute', left: '$1', stroke: '$primary900' }}\n />\n)\n\nexport const DataTableHeaderCell = ({\n header,\n includeTotal = false,\n totalSuffix = 'items',\n children,\n css,\n ...props\n}: DataTableHeaderProps) => {\n const sortDirection = header.column.getIsSorted()\n const { isSortable: isSortableTable, getRowModel } = useDataTable()\n // false for display columns, e.g. \"Actions\"\n const isDataColumn = header.column.getCanSort()\n\n const totalRows = getRowModel()?.rows?.length\n\n const { hoverProps, isHovered } = useHover({})\n\n const handleKeyDown = (\n event: React.KeyboardEvent<HTMLTableCellElement>,\n callback: (event: unknown) => void | undefined\n ) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n callback(event as unknown)\n }\n }\n\n const headerSortingHandler = header.column.getToggleSortingHandler()\n\n return (\n <StyledTableHeaderCell\n isSortable={isSortableTable && isDataColumn}\n colSpan={header.colSpan}\n onClick={\n isSortableTable && isDataColumn && headerSortingHandler\n ? headerSortingHandler\n : undefined\n }\n onKeyDown={(event) =>\n isSortableTable &&\n isDataColumn &&\n headerSortingHandler &&\n handleKeyDown(event, headerSortingHandler)\n }\n tabIndex={isSortableTable && isDataColumn ? 0 : -1}\n {...hoverProps}\n css={css}\n {...props}\n >\n <Flex\n align=\"center\"\n gap={1}\n justify={header.colSpan > 1 ? 'center' : 'flex-start'}\n >\n {flexRender(header.column.columnDef.header, header.getContext())}\n {sortDirection && isSortableTable && (\n <Flex\n align=\"center\"\n css={{\n position: 'relative',\n width: '24px',\n height: '24px',\n ml: '$2',\n bg: isHovered ? '$primary200' : '$primary100',\n borderRadius: '$0'\n }}\n >\n <SortIcon direction={sortDirection} />\n </Flex>\n )}\n {includeTotal && (\n <StyledCount size=\"sm\" weight=\"normal\">\n ({totalRows} {totalSuffix})\n </StyledCount>\n )}\n </Flex>\n </StyledTableHeaderCell>\n )\n}\n"],"names":["StyledCount","styled","Text","StyledTableHeaderCell","Table","sortIcons","ArrowUp","ArrowDown","SortIcon","direction","React","Icon","DataTableHeaderCell","header","includeTotal","totalSuffix","children","css","props","_a","_b","sortDirection","isSortableTable","getRowModel","useDataTable","isDataColumn","totalRows","hoverProps","isHovered","useHover","handleKeyDown","event","callback","headerSortingHandler","Flex","flexRender"],"mappings":"0bAkBA,MAAMA,EAAcC,EAAOC,EAAM,CAC/B,MAAO,WACP,WAAY,SACZ,QAAS,OACT,4BAA6B,CAC3B,QAAS,OACX,CACF,CAAC,EAEKC,EAAwBF,EAAOG,EAAM,WAAY,CACrD,SAAU,CACR,WAAY,CACV,KAAM,CACJ,OAAQ,UACR,SAAU,WACV,QAAS,CACP,SAAU,UACZ,EACA,WAAY,CACV,QAAS,GACT,SAAU,WACV,MAAO,EACP,QAAS,EACT,gBAAiB,cACjB,WAAY,oBACd,EACA,UAAW,CACT,YAAa,CACX,QAAS,EACX,CACF,CACF,CACF,CACF,CACF,CAAC,EAEKC,EAAY,CAChB,IAAKC,EACL,KAAMC,CACR,EAEMC,EAAW,CAAC,CAAE,UAAAC,CAAU,IAC5BC,EAAA,cAACC,EAAA,CACC,GAAIN,EAAUI,GACd,KAAK,KACL,IAAK,CAAE,SAAU,WAAY,KAAM,KAAM,OAAQ,aAAc,EACjE,EAGWG,EAAsB,CAAC,CAClC,OAAAC,EACA,aAAAC,EAAe,GACf,YAAAC,EAAc,QACd,SAAAC,EACA,IAAAC,KACGC,CACL,IAA4B,CA1E5B,IAAAC,EAAAC,EA2EE,MAAMC,EAAgBR,EAAO,OAAO,YAAY,EAC1C,CAAE,WAAYS,EAAiB,YAAAC,CAAY,EAAIC,IAE/CC,EAAeZ,EAAO,OAAO,aAE7Ba,GAAYN,GAAAD,EAAAI,EAAY,IAAZ,YAAAJ,EAAe,OAAf,KAAAC,OAAAA,EAAqB,OAEjC,CAAE,WAAAO,EAAY,UAAAC,CAAU,EAAIC,EAAS,CAAA,CAAE,EAEvCC,EAAgB,CACpBC,EACAC,IACG,EACCD,EAAM,MAAQ,SAAWA,EAAM,MAAQ,OACzCA,EAAM,eAAA,EACNC,EAASD,CAAgB,EAE7B,EAEME,EAAuBpB,EAAO,OAAO,wBAAwB,EAEnE,OACEH,EAAA,cAACP,EAAA,CACC,WAAYmB,GAAmBG,EAC/B,QAASZ,EAAO,QAChB,QACES,GAAmBG,GAAgBQ,EAC/BA,EACA,OAEN,UAAYF,GACVT,GACAG,GACAQ,GACAH,EAAcC,EAAOE,CAAoB,EAE3C,SAAUX,GAAmBG,EAAe,EAAI,GAC/C,GAAGE,EACJ,IAAKV,EACJ,GAAGC,CAAAA,EAEJR,EAAA,cAACwB,EAAA,CACC,MAAM,SACN,IAAK,EACL,QAASrB,EAAO,QAAU,EAAI,SAAW,cAExCsB,EAAWtB,EAAO,OAAO,UAAU,OAAQA,EAAO,WAAA,CAAY,EAC9DQ,GAAiBC,GAChBZ,EAAA,cAACwB,EAAA,CACC,MAAM,SACN,IAAK,CACH,SAAU,WACV,MAAO,OACP,OAAQ,OACR,GAAI,KACJ,GAAIN,EAAY,cAAgB,cAChC,aAAc,IAChB,GAEAlB,EAAA,cAACF,EAAA,CAAS,UAAWa,CAAe,CAAA,CACtC,EAEDP,GACCJ,EAAA,cAACV,EAAA,CAAY,KAAK,KAAK,OAAO,QAAA,EAAS,IACnC0B,EAAU,IAAEX,EAAY,GAC5B,CAEJ,CACF,CAEJ"}
1
+ {"version":3,"file":"DataTableHeaderCell.js","sources":["../../../src/components/data-table/DataTableHeaderCell.tsx"],"sourcesContent":["import { ArrowDown, ArrowUp } from '@atom-learning/icons'\nimport { styled } from '@atom-learning/stitches-react'\nimport type { Header } from '@tanstack/react-table'\nimport { flexRender } from '@tanstack/react-table'\nimport * as React from 'react'\nimport { useHover } from 'react-aria'\n\nimport { Flex } from '../flex'\nimport { Icon } from '../icon'\nimport { Table } from '../table'\nimport { Text } from '../text'\nimport { useDataTable } from './DataTableContext'\ntype DataTableHeaderProps = React.ComponentProps<typeof Table.HeaderCell> & {\n header: Header<Record<string, unknown>, unknown>\n includeTotal?: boolean\n totalSuffix?: string\n}\n\nconst StyledCount = styled(Text, {\n color: '$grey600',\n whiteSpace: 'nowrap',\n display: 'none',\n '@media (min-width: 800px)': {\n display: 'block'\n }\n})\n\nconst StyledTableHeaderCell = styled(Table.HeaderCell, {\n variants: {\n isSortable: {\n true: {\n cursor: 'pointer',\n position: 'relative',\n '& > *': {\n position: 'relative'\n },\n '&:before': {\n content: '',\n position: 'absolute',\n inset: 0,\n opacity: 0,\n backgroundColor: '$primary100',\n transition: 'opacity 200ms ease'\n },\n '&:hover': {\n '&::before': {\n opacity: 0.5\n }\n }\n }\n }\n }\n})\n\nconst sortIcons = {\n asc: ArrowUp,\n desc: ArrowDown\n}\n\nconst SortIcon = ({ direction }: { direction: 'asc' | 'desc' }) => (\n <Icon\n is={sortIcons[direction]}\n size=\"sm\"\n css={{ position: 'absolute', left: '$1', stroke: '$primary900' }}\n />\n)\n\nexport const DataTableHeaderCell = ({\n header,\n includeTotal = false,\n totalSuffix = 'items',\n children,\n css,\n ...props\n}: DataTableHeaderProps) => {\n const sortDirection = header.column.getIsSorted()\n const { isSortable: isSortableTable, getRowModel } = useDataTable()\n // false for display columns, e.g. \"Actions\"\n const isDataColumn = header.column.getCanSort()\n\n const totalRows = getRowModel()?.rows?.length\n\n const { hoverProps, isHovered } = useHover({})\n\n const handleKeyDown = (\n event: React.KeyboardEvent<HTMLTableCellElement>,\n callback: (event: unknown) => void | undefined\n ) => {\n if (event.key === 'Enter' || event.key === ' ') {\n event.preventDefault()\n callback(event as unknown)\n }\n }\n\n const headerSortingHandler = header.column.getToggleSortingHandler()\n\n return (\n <StyledTableHeaderCell\n isSortable={isSortableTable && isDataColumn}\n colSpan={header.colSpan}\n onClick={\n isSortableTable && isDataColumn && headerSortingHandler\n ? headerSortingHandler\n : undefined\n }\n onKeyDown={(event) =>\n isSortableTable &&\n isDataColumn &&\n headerSortingHandler &&\n handleKeyDown(event, headerSortingHandler)\n }\n tabIndex={isSortableTable && isDataColumn ? 0 : -1}\n {...hoverProps}\n css={css}\n {...props}\n >\n <Flex\n align=\"center\"\n gap={1}\n justify={header.colSpan > 1 ? 'center' : 'flex-start'}\n >\n {flexRender(header.column.columnDef.header, header.getContext())}\n {sortDirection && isSortableTable && (\n <Flex\n align=\"center\"\n css={{\n position: 'relative',\n width: '24px',\n height: '24px',\n ml: '$2',\n bg: isHovered ? '$primary200' : '$primary100',\n borderRadius: '$0'\n }}\n >\n <SortIcon direction={sortDirection} />\n </Flex>\n )}\n {includeTotal && (\n <StyledCount size=\"sm\" weight=\"normal\">\n ({totalRows} {totalSuffix})\n </StyledCount>\n )}\n </Flex>\n </StyledTableHeaderCell>\n )\n}\n"],"names":["StyledCount","styled","Text","StyledTableHeaderCell","Table","sortIcons","ArrowUp","ArrowDown","SortIcon","direction","React","Icon","DataTableHeaderCell","header","includeTotal","totalSuffix","children","css","props","_a","_b","sortDirection","isSortableTable","getRowModel","useDataTable","isDataColumn","totalRows","hoverProps","isHovered","useHover","handleKeyDown","event","callback","headerSortingHandler","Flex","flexRender"],"mappings":"0bAkBA,MAAMA,EAAcC,EAAOC,EAAM,CAC/B,MAAO,WACP,WAAY,SACZ,QAAS,OACT,4BAA6B,CAC3B,QAAS,OACX,CACF,CAAC,EAEKC,EAAwBF,EAAOG,EAAM,WAAY,CACrD,SAAU,CACR,WAAY,CACV,KAAM,CACJ,OAAQ,UACR,SAAU,WACV,QAAS,CACP,SAAU,UACZ,EACA,WAAY,CACV,QAAS,GACT,SAAU,WACV,MAAO,EACP,QAAS,EACT,gBAAiB,cACjB,WAAY,oBACd,EACA,UAAW,CACT,YAAa,CACX,QAAS,EACX,CACF,CACF,CACF,CACF,CACF,CAAC,EAEKC,EAAY,CAChB,IAAKC,EACL,KAAMC,CACR,EAEMC,EAAW,CAAC,CAAE,UAAAC,CAAU,IAC5BC,EAAA,cAACC,EAAA,CACC,GAAIN,EAAUI,GACd,KAAK,KACL,IAAK,CAAE,SAAU,WAAY,KAAM,KAAM,OAAQ,aAAc,EACjE,EAGWG,EAAsB,CAAC,CAClC,OAAAC,EACA,aAAAC,EAAe,GACf,YAAAC,EAAc,QACd,SAAAC,EACA,IAAAC,KACGC,CACL,IAA4B,CA1E5B,IAAAC,EAAAC,EA2EE,MAAMC,EAAgBR,EAAO,OAAO,YAAY,EAC1C,CAAE,WAAYS,EAAiB,YAAAC,CAAY,EAAIC,IAE/CC,EAAeZ,EAAO,OAAO,aAE7Ba,GAAYN,GAAAD,EAAAI,EAAY,IAAZ,YAAAJ,EAAe,OAAf,KAAAC,OAAAA,EAAqB,OAEjC,CAAE,WAAAO,EAAY,UAAAC,CAAU,EAAIC,EAAS,CAAA,CAAE,EAEvCC,EAAgB,CACpBC,EACAC,IACG,EACCD,EAAM,MAAQ,SAAWA,EAAM,MAAQ,OACzCA,EAAM,eAAA,EACNC,EAASD,CAAgB,EAE7B,EAEME,EAAuBpB,EAAO,OAAO,wBAAwB,EAEnE,OACEH,EAAA,cAACP,EAAA,CACC,WAAYmB,GAAmBG,EAC/B,QAASZ,EAAO,QAChB,QACES,GAAmBG,GAAgBQ,EAC/BA,EACA,OAEN,UAAYF,GACVT,GACAG,GACAQ,GACAH,EAAcC,EAAOE,CAAoB,EAE3C,SAAUX,GAAmBG,EAAe,EAAI,GAC/C,GAAGE,EACJ,IAAKV,EACJ,GAAGC,CAAAA,EAEJR,EAAA,cAACwB,EAAA,CACC,MAAM,SACN,IAAK,EACL,QAASrB,EAAO,QAAU,EAAI,SAAW,cAExCsB,EAAWtB,EAAO,OAAO,UAAU,OAAQA,EAAO,WAAA,CAAY,EAC9DQ,GAAiBC,GAChBZ,EAAA,cAACwB,EAAA,CACC,MAAM,SACN,IAAK,CACH,SAAU,WACV,MAAO,OACP,OAAQ,OACR,GAAI,KACJ,GAAIN,EAAY,cAAgB,cAChC,aAAc,IAChB,GAEAlB,EAAA,cAACF,EAAA,CAAS,UAAWa,CAAe,CAAA,CACtC,EAEDP,GACCJ,EAAA,cAACV,EAAA,CAAY,KAAK,KAAK,OAAO,QAAA,EAAS,IACnC0B,EAAU,IAAEX,EAAY,GAC5B,CAEJ,CACF,CAEJ"}
@@ -27,8 +27,6 @@ declare const PendingState: import("@atom-learning/stitches-react/types/styled-c
27
27
  textMinimal: string;
28
28
  background: string;
29
29
  backgroundAccent: string;
30
- black: string;
31
- white: string;
32
30
  grey100: string;
33
31
  grey200: string;
34
32
  grey300: string;
@@ -1,2 +1,2 @@
1
- import{ChevronDown as f,ChevronRight as h}from"@atom-learning/icons";import*as n from"react";import{styled as w}from"../../stitches.js";import{Icon as D}from"../icon/Icon.js";import{Table as i}from"../table/Table.js";import{useDataTable as C}from"./DataTableContext.js";import{DataTableDataCell as E}from"./DataTableDataCell.js";import{DataTableRowSelectionCheckbox as S}from"./DataTableRowSelectionCheckbox.js";const v=w(i.Row,{bg:"initial",position:"relative",variants:{isSelected:{true:{"&:nth-child(odd), &:nth-child(even)":{bg:"$primary100"}}},isDisabled:{true:{opacity:"30%"}},isFocusable:{true:{transform:"translateY(0)",boxShadow:"0px 4px 11px 0px hsla(0, 0%, 12%, 0)",transition:"transform 300ms ease-in-out, box-shadow 300ms ease-in-out","&:hover":{transform:"translateY(-1px)",boxShadow:"0px 4px 11px 0px hsla(0, 0%, 12%, 0.12)",transitionDuration:"100ms",zIndex:3},"&:focus":{outline:"2px solid $primary500",outlineOffset:"-4px","& td":{bg:"transparent"}}}}}}),d=e=>e?!!(e.closest("button, a, input, select, textarea")||e.getAttribute("role")==="button"):!1,k=({row:e,rowAction:r})=>{const{enableRowSelection:p,disabledRows:l,getCanSomeRowsExpand:m}=C(),s=!!(l!=null&&l[e.id]),g=e.getToggleExpandedHandler(),u=e.getToggleSelectedHandler(),b=()=>e.getIsSomeSelected()?"indeterminate":e.getIsSelected(),c=(t,o)=>{!r||!o.target.closest("tr")||d(o.target)||r(t.original,o)},x=t=>{if(t.key==="Enter"||t.key===" "){if(d(t.target))return;t.preventDefault(),c(e,t)}if(t.key==="ArrowDown"){t.preventDefault();const o=t.target.closest("tr"),a=o==null?void 0:o.nextElementSibling;a&&a.tagName==="TR"&&a.focus()}if(t.key==="ArrowUp"){t.preventDefault();const o=t.target.closest("tr"),a=o==null?void 0:o.previousElementSibling;a&&a.tagName==="TR"&&a.focus()}};return n.createElement(v,{isSelected:e.getIsSelected(),isDisabled:s,isFocusable:!!r&&!s,...r&&{onClick:t=>c(e,t),tabIndex:0,css:{cursor:"pointer"},onKeyDown:x}},m()&&n.createElement(i.Cell,{"data-testid":`expand-icon-${e.id}`,css:{width:"$4",cursor:e.getCanExpand()?"pointer":"auto"},onClick:g},e.getCanExpand()&&n.createElement(D,{is:e.getIsExpanded()?f:h})),p&&n.createElement(i.Cell,{css:{width:"$4"}},n.createElement(S,{row:e,checked:b(),onCheckedChange:u})),e.getVisibleCells().map((t,o)=>n.createElement(E,{key:t.id,cell:t})))};export{k as DataTableRow};
1
+ import{ChevronDown as f,ChevronRight as h}from"@atom-learning/icons";import*as r from"react";import{styled as w}from"../../stitches.js";import{Icon as S}from"../icon/Icon.js";import{Table as l}from"../table/Table.js";import{useDataTable as C}from"./DataTableContext.js";import{DataTableDataCell as E}from"./DataTableDataCell.js";import{DataTableRowSelectionCheckbox as D}from"./DataTableRowSelectionCheckbox.js";const v=w(l.Row,{bg:"initial",position:"relative",variants:{isSelected:{true:{"&:nth-child(odd), &:nth-child(even)":{bg:"$primary100"}}},isDisabled:{true:{opacity:"30%"}},isFocusable:{true:{transform:"translateY(0)",boxShadow:"0px 4px 11px 0px hsla(0, 0%, 12%, 0)",transition:"transform 200ms ease-out, box-shadow 200ms ease-out","&:hover":{transform:"translateY(-1px)",boxShadow:"0px 4px 11px 0px hsla(0, 0%, 12%, 0.12)",zIndex:3},"&:focus":{outline:"2px solid $primary500",outlineOffset:"-4px","& td":{bg:"transparent"}}}}}}),d=e=>e?!!(e.closest("button, a, input, select, textarea")||e.getAttribute("role")==="button"):!1,k=({row:e,rowAction:n})=>{const{enableRowSelection:p,disabledRows:i,getCanSomeRowsExpand:m}=C(),s=!!(i!=null&&i[e.id]),g=e.getToggleExpandedHandler(),u=e.getToggleSelectedHandler(),b=()=>e.getIsSomeSelected()?"indeterminate":e.getIsSelected(),c=(t,o)=>{!n||!o.target.closest("tr")||d(o.target)||n(t.original,o)},x=t=>{if(t.key==="Enter"||t.key===" "){if(d(t.target))return;t.preventDefault(),c(e,t)}if(t.key==="ArrowDown"){t.preventDefault();const o=t.target.closest("tr"),a=o==null?void 0:o.nextElementSibling;a&&a.tagName==="TR"&&a.focus()}if(t.key==="ArrowUp"){t.preventDefault();const o=t.target.closest("tr"),a=o==null?void 0:o.previousElementSibling;a&&a.tagName==="TR"&&a.focus()}};return r.createElement(v,{isSelected:e.getIsSelected(),isDisabled:s,isFocusable:!!n&&!s,...n&&{onClick:t=>c(e,t),tabIndex:0,css:{cursor:"pointer"},onKeyDown:x}},m()&&r.createElement(l.Cell,{"data-testid":`expand-icon-${e.id}`,css:{width:"$4",cursor:e.getCanExpand()?"pointer":"auto"},onClick:g},e.getCanExpand()&&r.createElement(S,{is:e.getIsExpanded()?f:h})),p&&r.createElement(l.Cell,{css:{width:"$4"}},r.createElement(D,{row:e,checked:b(),onCheckedChange:u})),e.getVisibleCells().map((t,o)=>r.createElement(E,{key:t.id,cell:t})))};export{k as DataTableRow};
2
2
  //# sourceMappingURL=DataTableRow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataTableRow.js","sources":["../../../src/components/data-table/DataTableRow.tsx"],"sourcesContent":["import { ChevronDown, ChevronRight } from '@atom-learning/icons'\nimport type { Row } from '@tanstack/react-table'\nimport * as React from 'react'\n\nimport { styled } from '~/stitches'\n\nimport { Icon } from '../icon'\nimport { Table } from '../table'\nimport { useDataTable } from './DataTableContext'\nimport { DataTableDataCell } from './DataTableDataCell'\nimport { DataTableRowSelectionCheckbox } from './DataTableRowSelectionCheckbox'\n\nexport type DataTableRowProps = React.ComponentProps<typeof Table.Row> & {\n row: Row<Record<string, unknown>>\n rowAction?: (row: Record<string, unknown>, event: React.MouseEvent) => void\n}\n\nconst StyledRow = styled(Table.Row, {\n bg: 'initial',\n position: 'relative',\n variants: {\n isSelected: {\n true: {\n '&:nth-child(odd), &:nth-child(even)': {\n bg: '$primary100'\n }\n }\n },\n isDisabled: {\n true: {\n opacity: '30%'\n }\n },\n isFocusable: {\n true: {\n transform: 'translateY(0)',\n boxShadow: '0px 4px 11px 0px hsla(0, 0%, 12%, 0)',\n transition: 'transform 300ms ease-in-out, box-shadow 300ms ease-in-out',\n '&:hover': {\n transform: 'translateY(-1px)',\n boxShadow: '0px 4px 11px 0px hsla(0, 0%, 12%, 0.12)',\n transitionDuration: '100ms',\n zIndex: 3\n },\n '&:focus': {\n outline: '2px solid $primary500',\n outlineOffset: '-4px',\n '& td': {\n bg: 'transparent'\n }\n }\n }\n }\n }\n})\n\nconst isElementInteractive = (element: Element | null): boolean => {\n if (!element) return false\n if (element.closest('button, a, input, select, textarea')) return true\n if (element.getAttribute('role') === 'button') return true\n return false\n}\n\nexport const DataTableRow = ({ row, rowAction }: DataTableRowProps) => {\n const { enableRowSelection, disabledRows, getCanSomeRowsExpand } =\n useDataTable()\n\n const isDisabled = !!disabledRows?.[row.id]\n\n const toggleExpandHandler = row.getToggleExpandedHandler()\n const toggleSelectHandler = row.getToggleSelectedHandler()\n\n const getCheckedState = (): boolean | 'indeterminate' => {\n if (row.getIsSomeSelected()) return 'indeterminate'\n return row.getIsSelected()\n }\n\n const handleRowClick = (\n rowData: Row<Record<string, unknown>>,\n event: React.MouseEvent<HTMLTableRowElement>\n ) => {\n if (!rowAction) return\n\n // Skip if clicking on an interactive element\n const rowElement = (event.target as Element).closest('tr')\n if (!rowElement || isElementInteractive(event.target as Element)) {\n return\n }\n\n rowAction(rowData.original, event)\n }\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLTableRowElement>) => {\n if (event.key === 'Enter' || event.key === ' ') {\n if (isElementInteractive(event.target as Element)) {\n return\n }\n event.preventDefault()\n handleRowClick(\n row,\n event as unknown as React.MouseEvent<HTMLTableRowElement>\n )\n }\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n const currentRow = (event.target as HTMLElement).closest('tr')\n const nextRow = currentRow?.nextElementSibling as HTMLElement\n if (nextRow && nextRow.tagName === 'TR') {\n nextRow.focus()\n }\n }\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n const currentRow = (event.target as HTMLElement).closest('tr')\n const previousRow = currentRow?.previousElementSibling as HTMLElement\n if (previousRow && previousRow.tagName === 'TR') {\n previousRow.focus()\n }\n }\n }\n\n return (\n <StyledRow\n isSelected={row.getIsSelected()}\n isDisabled={isDisabled}\n isFocusable={!!rowAction && !isDisabled}\n {...(rowAction && {\n onClick: (event) => handleRowClick(row, event),\n tabIndex: 0,\n css: { cursor: 'pointer' },\n onKeyDown: handleKeyDown\n })}\n >\n {getCanSomeRowsExpand() && (\n <Table.Cell\n data-testid={`expand-icon-${row.id}`}\n css={{ width: '$4', cursor: row.getCanExpand() ? 'pointer' : 'auto' }}\n onClick={toggleExpandHandler}\n >\n {row.getCanExpand() && (\n <Icon is={row.getIsExpanded() ? ChevronDown : ChevronRight} />\n )}\n </Table.Cell>\n )}\n\n {enableRowSelection && (\n <Table.Cell css={{ width: '$4' }}>\n <DataTableRowSelectionCheckbox\n row={row}\n checked={getCheckedState()}\n onCheckedChange={toggleSelectHandler}\n />\n </Table.Cell>\n )}\n {row.getVisibleCells().map((cell, i) => {\n return <DataTableDataCell key={cell.id} cell={cell} />\n })}\n </StyledRow>\n )\n}\n"],"names":["StyledRow","styled","Table","isElementInteractive","element","DataTableRow","row","rowAction","enableRowSelection","disabledRows","getCanSomeRowsExpand","useDataTable","isDisabled","toggleExpandHandler","toggleSelectHandler","getCheckedState","handleRowClick","rowData","event","handleKeyDown","currentRow","nextRow","previousRow","React","Icon","ChevronDown","ChevronRight","DataTableRowSelectionCheckbox","cell","i","DataTableDataCell"],"mappings":"4ZAiBA,MAAMA,EAAYC,EAAOC,EAAM,IAAK,CAClC,GAAI,UACJ,SAAU,WACV,SAAU,CACR,WAAY,CACV,KAAM,CACJ,sCAAuC,CACrC,GAAI,aACN,CACF,CACF,EACA,WAAY,CACV,KAAM,CACJ,QAAS,KACX,CACF,EACA,YAAa,CACX,KAAM,CACJ,UAAW,gBACX,UAAW,uCACX,WAAY,4DACZ,UAAW,CACT,UAAW,mBACX,UAAW,0CACX,mBAAoB,QACpB,OAAQ,CACV,EACA,UAAW,CACT,QAAS,wBACT,cAAe,OACf,OAAQ,CACN,GAAI,aACN,CACF,CACF,CACF,CACF,CACF,CAAC,EAEKC,EAAwBC,GACvBA,EACD,CAAAA,EAAAA,EAAQ,QAAQ,oCAAoC,GACpDA,EAAQ,aAAa,MAAM,IAAM,UAFhB,GAMVC,EAAe,CAAC,CAAE,IAAAC,EAAK,UAAAC,CAAU,IAAyB,CACrE,KAAM,CAAE,mBAAAC,EAAoB,aAAAC,EAAc,qBAAAC,CAAqB,EAC7DC,EAAa,EAETC,EAAa,CAAC,EAACH,GAAA,MAAAA,EAAeH,EAAI,KAElCO,EAAsBP,EAAI,yBAAyB,EACnDQ,EAAsBR,EAAI,2BAE1BS,EAAkB,IAClBT,EAAI,kBAAkB,EAAU,gBAC7BA,EAAI,cAAA,EAGPU,EAAiB,CACrBC,EACAC,IACG,CACC,CAACX,GAID,CADgBW,EAAM,OAAmB,QAAQ,IAAI,GACtCf,EAAqBe,EAAM,MAAiB,GAI/DX,EAAUU,EAAQ,SAAUC,CAAK,CACnC,EAEMC,EAAiBD,GAAoD,CACzE,GAAIA,EAAM,MAAQ,SAAWA,EAAM,MAAQ,IAAK,CAC9C,GAAIf,EAAqBe,EAAM,MAAiB,EAC9C,OAEFA,EAAM,iBACNF,EACEV,EACAY,CACF,CACF,CACA,GAAIA,EAAM,MAAQ,YAAa,CAC7BA,EAAM,iBACN,MAAME,EAAcF,EAAM,OAAuB,QAAQ,IAAI,EACvDG,EAAUD,GAAA,KAAA,OAAAA,EAAY,mBACxBC,GAAWA,EAAQ,UAAY,MACjCA,EAAQ,MAAM,CAElB,CACA,GAAIH,EAAM,MAAQ,UAAW,CAC3BA,EAAM,iBACN,MAAME,EAAcF,EAAM,OAAuB,QAAQ,IAAI,EACvDI,EAAcF,GAAA,YAAAA,EAAY,uBAC5BE,GAAeA,EAAY,UAAY,MACzCA,EAAY,OAEhB,CACF,EAEA,OACEC,EAAA,cAACvB,EAAA,CACC,WAAYM,EAAI,cAAc,EAC9B,WAAYM,EACZ,YAAa,CAAC,CAACL,GAAa,CAACK,EAC5B,GAAIL,GAAa,CAChB,QAAUW,GAAUF,EAAeV,EAAKY,CAAK,EAC7C,SAAU,EACV,IAAK,CAAE,OAAQ,SAAU,EACzB,UAAWC,CACb,CAECT,EAAAA,EAAAA,GACCa,EAAA,cAACrB,EAAM,KAAN,CACC,cAAa,eAAeI,EAAI,KAChC,IAAK,CAAE,MAAO,KAAM,OAAQA,EAAI,aAAa,EAAI,UAAY,MAAO,EACpE,QAASO,CAERP,EAAAA,EAAI,gBACHiB,EAAA,cAACC,EAAA,CAAK,GAAIlB,EAAI,gBAAkBmB,EAAcC,CAAAA,CAAc,CAEhE,EAGDlB,GACCe,EAAA,cAACrB,EAAM,KAAN,CAAW,IAAK,CAAE,MAAO,IAAK,GAC7BqB,EAAA,cAACI,EAAA,CACC,IAAKrB,EACL,QAASS,IACT,gBAAiBD,CAAAA,CACnB,CACF,EAEDR,EAAI,gBAAkB,EAAA,IAAI,CAACsB,EAAMC,IACzBN,EAAA,cAACO,EAAA,CAAkB,IAAKF,EAAK,GAAI,KAAMA,CAAAA,CAAM,CACrD,CACH,CAEJ"}
1
+ {"version":3,"file":"DataTableRow.js","sources":["../../../src/components/data-table/DataTableRow.tsx"],"sourcesContent":["import { ChevronDown, ChevronRight } from '@atom-learning/icons'\nimport type { Row } from '@tanstack/react-table'\nimport * as React from 'react'\n\nimport { styled } from '~/stitches'\n\nimport { Icon } from '../icon'\nimport { Table } from '../table'\nimport { useDataTable } from './DataTableContext'\nimport { DataTableDataCell } from './DataTableDataCell'\nimport { DataTableRowSelectionCheckbox } from './DataTableRowSelectionCheckbox'\n\nexport type DataTableRowProps = React.ComponentProps<typeof Table.Row> & {\n row: Row<Record<string, unknown>>\n rowAction?: (row: Record<string, unknown>, event: React.MouseEvent) => void\n}\n\nconst StyledRow = styled(Table.Row, {\n bg: 'initial',\n position: 'relative',\n variants: {\n isSelected: {\n true: {\n '&:nth-child(odd), &:nth-child(even)': {\n bg: '$primary100'\n }\n }\n },\n isDisabled: {\n true: {\n opacity: '30%'\n }\n },\n isFocusable: {\n true: {\n transform: 'translateY(0)',\n boxShadow: '0px 4px 11px 0px hsla(0, 0%, 12%, 0)',\n transition: 'transform 200ms ease-out, box-shadow 200ms ease-out',\n '&:hover': {\n transform: 'translateY(-1px)',\n boxShadow: '0px 4px 11px 0px hsla(0, 0%, 12%, 0.12)',\n zIndex: 3\n },\n '&:focus': {\n outline: '2px solid $primary500',\n outlineOffset: '-4px',\n '& td': {\n bg: 'transparent'\n }\n }\n }\n }\n }\n})\n\nconst isElementInteractive = (element: Element | null): boolean => {\n if (!element) return false\n if (element.closest('button, a, input, select, textarea')) return true\n if (element.getAttribute('role') === 'button') return true\n return false\n}\n\nexport const DataTableRow = ({ row, rowAction }: DataTableRowProps) => {\n const { enableRowSelection, disabledRows, getCanSomeRowsExpand } =\n useDataTable()\n\n const isDisabled = !!disabledRows?.[row.id]\n\n const toggleExpandHandler = row.getToggleExpandedHandler()\n const toggleSelectHandler = row.getToggleSelectedHandler()\n\n const getCheckedState = (): boolean | 'indeterminate' => {\n if (row.getIsSomeSelected()) return 'indeterminate'\n return row.getIsSelected()\n }\n\n const handleRowClick = (\n rowData: Row<Record<string, unknown>>,\n event: React.MouseEvent<HTMLTableRowElement>\n ) => {\n if (!rowAction) return\n\n // Skip if clicking on an interactive element\n const rowElement = (event.target as Element).closest('tr')\n if (!rowElement || isElementInteractive(event.target as Element)) {\n return\n }\n\n rowAction(rowData.original, event)\n }\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLTableRowElement>) => {\n if (event.key === 'Enter' || event.key === ' ') {\n if (isElementInteractive(event.target as Element)) {\n return\n }\n event.preventDefault()\n handleRowClick(\n row,\n event as unknown as React.MouseEvent<HTMLTableRowElement>\n )\n }\n if (event.key === 'ArrowDown') {\n event.preventDefault()\n const currentRow = (event.target as HTMLElement).closest('tr')\n const nextRow = currentRow?.nextElementSibling as HTMLElement\n if (nextRow && nextRow.tagName === 'TR') {\n nextRow.focus()\n }\n }\n if (event.key === 'ArrowUp') {\n event.preventDefault()\n const currentRow = (event.target as HTMLElement).closest('tr')\n const previousRow = currentRow?.previousElementSibling as HTMLElement\n if (previousRow && previousRow.tagName === 'TR') {\n previousRow.focus()\n }\n }\n }\n\n return (\n <StyledRow\n isSelected={row.getIsSelected()}\n isDisabled={isDisabled}\n isFocusable={!!rowAction && !isDisabled}\n {...(rowAction && {\n onClick: (event) => handleRowClick(row, event),\n tabIndex: 0,\n css: { cursor: 'pointer' },\n onKeyDown: handleKeyDown\n })}\n >\n {getCanSomeRowsExpand() && (\n <Table.Cell\n data-testid={`expand-icon-${row.id}`}\n css={{ width: '$4', cursor: row.getCanExpand() ? 'pointer' : 'auto' }}\n onClick={toggleExpandHandler}\n >\n {row.getCanExpand() && (\n <Icon is={row.getIsExpanded() ? ChevronDown : ChevronRight} />\n )}\n </Table.Cell>\n )}\n\n {enableRowSelection && (\n <Table.Cell css={{ width: '$4' }}>\n <DataTableRowSelectionCheckbox\n row={row}\n checked={getCheckedState()}\n onCheckedChange={toggleSelectHandler}\n />\n </Table.Cell>\n )}\n {row.getVisibleCells().map((cell, i) => {\n return <DataTableDataCell key={cell.id} cell={cell} />\n })}\n </StyledRow>\n )\n}\n"],"names":["StyledRow","styled","Table","isElementInteractive","element","DataTableRow","row","rowAction","enableRowSelection","disabledRows","getCanSomeRowsExpand","useDataTable","isDisabled","toggleExpandHandler","toggleSelectHandler","getCheckedState","handleRowClick","rowData","event","handleKeyDown","currentRow","nextRow","previousRow","React","Icon","ChevronDown","ChevronRight","DataTableRowSelectionCheckbox","cell","i","DataTableDataCell"],"mappings":"4ZAiBA,MAAMA,EAAYC,EAAOC,EAAM,IAAK,CAClC,GAAI,UACJ,SAAU,WACV,SAAU,CACR,WAAY,CACV,KAAM,CACJ,sCAAuC,CACrC,GAAI,aACN,CACF,CACF,EACA,WAAY,CACV,KAAM,CACJ,QAAS,KACX,CACF,EACA,YAAa,CACX,KAAM,CACJ,UAAW,gBACX,UAAW,uCACX,WAAY,sDACZ,UAAW,CACT,UAAW,mBACX,UAAW,0CACX,OAAQ,CACV,EACA,UAAW,CACT,QAAS,wBACT,cAAe,OACf,OAAQ,CACN,GAAI,aACN,CACF,CACF,CACF,CACF,CACF,CAAC,EAEKC,EAAwBC,GACvBA,EACD,CAAA,EAAAA,EAAQ,QAAQ,oCAAoC,GACpDA,EAAQ,aAAa,MAAM,IAAM,UAFhB,GAMVC,EAAe,CAAC,CAAE,IAAAC,EAAK,UAAAC,CAAU,IAAyB,CACrE,KAAM,CAAE,mBAAAC,EAAoB,aAAAC,EAAc,qBAAAC,CAAqB,EAC7DC,IAEIC,EAAa,CAAC,EAACH,GAAA,MAAAA,EAAeH,EAAI,KAElCO,EAAsBP,EAAI,2BAC1BQ,EAAsBR,EAAI,yBAE1BS,EAAAA,EAAkB,IAClBT,EAAI,oBAA4B,gBAC7BA,EAAI,gBAGPU,EAAiB,CACrBC,EACAC,IACG,CACC,CAACX,GAID,CADgBW,EAAM,OAAmB,QAAQ,IAAI,GACtCf,EAAqBe,EAAM,MAAiB,GAI/DX,EAAUU,EAAQ,SAAUC,CAAK,CACnC,EAEMC,EAAiBD,GAAoD,CACzE,GAAIA,EAAM,MAAQ,SAAWA,EAAM,MAAQ,IAAK,CAC9C,GAAIf,EAAqBe,EAAM,MAAiB,EAC9C,OAEFA,EAAM,eAAe,EACrBF,EACEV,EACAY,CACF,CACF,CACA,GAAIA,EAAM,MAAQ,YAAa,CAC7BA,EAAM,eAAA,EACN,MAAME,EAAcF,EAAM,OAAuB,QAAQ,IAAI,EACvDG,EAAUD,GAAA,KAAAA,OAAAA,EAAY,mBACxBC,GAAWA,EAAQ,UAAY,MACjCA,EAAQ,OAEZ,CACA,GAAIH,EAAM,MAAQ,UAAW,CAC3BA,EAAM,eACN,EAAA,MAAME,EAAcF,EAAM,OAAuB,QAAQ,IAAI,EACvDI,EAAcF,GAAA,KAAA,OAAAA,EAAY,uBAC5BE,GAAeA,EAAY,UAAY,MACzCA,EAAY,MAEhB,CAAA,CACF,EAEA,OACEC,EAAA,cAACvB,EAAA,CACC,WAAYM,EAAI,cAChB,EAAA,WAAYM,EACZ,YAAa,CAAC,CAACL,GAAa,CAACK,EAC5B,GAAIL,GAAa,CAChB,QAAUW,GAAUF,EAAeV,EAAKY,CAAK,EAC7C,SAAU,EACV,IAAK,CAAE,OAAQ,SAAU,EACzB,UAAWC,CACb,CAECT,EAAAA,KACCa,EAAA,cAACrB,EAAM,KAAN,CACC,cAAa,eAAeI,EAAI,KAChC,IAAK,CAAE,MAAO,KAAM,OAAQA,EAAI,aAAa,EAAI,UAAY,MAAO,EACpE,QAASO,CAERP,EAAAA,EAAI,gBACHiB,EAAA,cAACC,EAAA,CAAK,GAAIlB,EAAI,cAAA,EAAkBmB,EAAcC,CAAAA,CAAc,CAEhE,EAGDlB,GACCe,EAAA,cAACrB,EAAM,KAAN,CAAW,IAAK,CAAE,MAAO,IAAK,GAC7BqB,EAAA,cAACI,EAAA,CACC,IAAKrB,EACL,QAASS,EAAAA,EACT,gBAAiBD,CAAAA,CACnB,CACF,EAEDR,EAAI,kBAAkB,IAAI,CAACsB,EAAMC,IACzBN,EAAA,cAACO,EAAA,CAAkB,IAAKF,EAAK,GAAI,KAAMA,CAAAA,CAAM,CACrD,CACH,CAEJ"}
@@ -14,5 +14,6 @@ export type DataTableTableProps = Omit<React.ComponentProps<typeof Table>, 'chil
14
14
  totalSuffix?: string;
15
15
  };
16
16
  rowAction?: (row: Record<string, unknown>, event: React.MouseEvent) => void;
17
+ withContainer?: boolean;
17
18
  };
18
- export declare const DataTableTable: ({ sortable, striped, theme, css, scrollOptions, rowAction, ...props }: DataTableTableProps) => JSX.Element | null;
19
+ export declare const DataTableTable: ({ sortable, striped, theme, css, scrollOptions, rowAction, withContainer, ...props }: DataTableTableProps) => JSX.Element | null;
@@ -1,2 +1,2 @@
1
- import*as t from"react";import{styled as F}from"../../stitches.js";import{Box as A}from"../box/Box.js";import{Table as B}from"../table/Table.js";import{DataTable as g}from"./DataTable.js";import{AsyncDataState as L}from"./DataTable.types.js";import{useDataTable as _}from"./DataTableContext.js";import{DataTableLoading as P}from"./DataTableLoading.js";const M=F(A,{p:"$2",bg:"white",borderRadius:"$3"}),N=({sortable:h,striped:w,theme:C="white",css:S,scrollOptions:e={numberOfStickyColumns:0,stickyHeaderOffset:0,hasStickyHeader:!1,showTotalInFirstColumn:!0,totalSuffix:"items"},rowAction:k,...E})=>{const{asyncDataState:O,getTotalRows:v,getCanSomeRowsExpand:m,rowSelection:f,enableRowSelection:d,tableId:x,setTablePosition:l}=_(),n=t.useRef(null),I=t.useRef(!1),c=t.useRef(!1),r=t.useMemo(()=>typeof window>"u"?null:window,[]);t.useEffect(()=>{if(!r||typeof IntersectionObserver>"u")return;const o=()=>{if(n.current){const s=n.current.getBoundingClientRect().top,i=n.current.getBoundingClientRect().bottom;l(u=>({...u,top:s,bottom:i}))}c.current=!1},a=()=>{c.current||(requestAnimationFrame(o),c.current=!0)};if(!n.current)return;const b=(e==null?void 0:e.stickyHeaderOffset)||0,R={rootMargin:`-${b}px 0px -${b}px 0px`,threshold:0},D=s=>{if(!s||s.length===0)return;const i=s[0];I.current=i.isIntersecting,r&&(i.isIntersecting?r==null||r.addEventListener("scroll",a):r==null||r.removeEventListener("scroll",a)),l(u=>({...u,isVisible:i.isIntersecting}))},y=new IntersectionObserver(D,R);return n.current&&(e.hasStickyHeader||Object.keys(f||{}).length>0)&&y.observe(n.current),()=>{y.disconnect(),r&&(r==null||r.removeEventListener("scroll",a))}},[f,e.hasStickyHeader,e==null?void 0:e.stickyHeaderOffset,r,l]);const p=O===L.PENDING,T=!p&&v()===0,H=()=>{let o=0;return m()&&!!d?o=2:(m()||!!d)&&(o=1),`${x}_${o}_control_columns`};return T?null:t.createElement(t.Fragment,null,t.createElement(P,null),t.createElement(M,null,t.createElement(B,{corners:"round",size:"lg",...E,ref:n,numberOfStickyColumns:e.numberOfStickyColumns,scrollContainerCss:{...e.scrollContainerCss},scrollContainerkey:H(),css:{...S,...p&&{opacity:.5,pointerEvents:"none",transition:"opacity 250ms linear 150ms"}}},t.createElement(g.Head,{theme:C,sortable:h,isSticky:e.hasStickyHeader,stickyOffset:e.stickyHeaderOffset,css:e.headerCss,showTotalInFirstColumn:e.showTotalInFirstColumn,totalSuffix:e.totalSuffix}),t.createElement(g.Body,{striped:w,rowAction:k}))))};export{N as DataTableTable};
1
+ import*as t from"react";import{styled as A}from"../../stitches.js";import{Box as L}from"../box/Box.js";import{Table as P}from"../table/Table.js";import{DataTable as w}from"./DataTable.js";import{AsyncDataState as _}from"./DataTable.types.js";import{useDataTable as M}from"./DataTableContext.js";import{DataTableLoading as N}from"./DataTableLoading.js";const j=A(L,{p:"$2",bg:"white",borderRadius:"$3"}),q=({sortable:C,striped:S,theme:g="white",css:k,scrollOptions:e={numberOfStickyColumns:0,stickyHeaderOffset:0,hasStickyHeader:!1,showTotalInFirstColumn:!0,totalSuffix:"items"},rowAction:E,withContainer:O=!1,...v})=>{const{asyncDataState:x,getTotalRows:I,getCanSomeRowsExpand:m,rowSelection:f,enableRowSelection:d,tableId:T,setTablePosition:l}=M(),n=t.useRef(null),R=t.useRef(!1),c=t.useRef(!1),r=t.useMemo(()=>typeof window>"u"?null:window,[]);t.useEffect(()=>{if(!r||typeof IntersectionObserver>"u")return;const o=()=>{if(n.current){const s=n.current.getBoundingClientRect().top,i=n.current.getBoundingClientRect().bottom;l(u=>({...u,top:s,bottom:i}))}c.current=!1},a=()=>{c.current||(requestAnimationFrame(o),c.current=!0)};if(!n.current)return;const y=(e==null?void 0:e.stickyHeaderOffset)||0,B={rootMargin:`-${y}px 0px -${y}px 0px`,threshold:0},F=s=>{if(!s||s.length===0)return;const i=s[0];R.current=i.isIntersecting,r&&(i.isIntersecting?r==null||r.addEventListener("scroll",a):r==null||r.removeEventListener("scroll",a)),l(u=>({...u,isVisible:i.isIntersecting}))},h=new IntersectionObserver(F,B);return n.current&&(e.hasStickyHeader||Object.keys(f||{}).length>0)&&h.observe(n.current),()=>{h.disconnect(),r&&(r==null||r.removeEventListener("scroll",a))}},[f,e.hasStickyHeader,e==null?void 0:e.stickyHeaderOffset,r,l]);const p=x===_.PENDING,H=!p&&I()===0,D=()=>{let o=0;return m()&&!!d?o=2:(m()||!!d)&&(o=1),`${T}_${o}_control_columns`};if(H)return null;const b=t.createElement(P,{corners:"round",size:"lg",...v,ref:n,numberOfStickyColumns:e.numberOfStickyColumns,scrollContainerCss:{...e.scrollContainerCss},scrollContainerkey:D(),css:{...k,...p&&{opacity:.5,pointerEvents:"none",transition:"opacity 250ms linear 150ms"}}},t.createElement(w.Head,{theme:g,sortable:C,isSticky:e.hasStickyHeader,stickyOffset:e.stickyHeaderOffset,css:e.headerCss,showTotalInFirstColumn:e.showTotalInFirstColumn,totalSuffix:e.totalSuffix}),t.createElement(w.Body,{striped:S,rowAction:E}));return t.createElement(t.Fragment,null,t.createElement(N,null),O?t.createElement(j,null,b):b)};export{q as DataTableTable};
2
2
  //# sourceMappingURL=DataTableTable.js.map