@clickhouse/click-ui 0.6.2-rc3 → 0.7.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 (212) hide show
  1. package/dist/cjs/click-ui.css +1872 -59
  2. package/dist/cjs/components/Alert/index.cjs +2 -2
  3. package/dist/cjs/components/Alert/index.cjs.map +1 -1
  4. package/dist/cjs/components/Assets/Logos/Polaris.cjs +22 -0
  5. package/dist/cjs/components/Assets/Logos/Polaris.cjs.map +1 -0
  6. package/dist/cjs/components/Assets/Logos/system/LogosDark.cjs +2 -0
  7. package/dist/cjs/components/Assets/Logos/system/LogosDark.cjs.map +1 -1
  8. package/dist/cjs/components/Assets/Logos/system/LogosLight.cjs +2 -0
  9. package/dist/cjs/components/Assets/Logos/system/LogosLight.cjs.map +1 -1
  10. package/dist/cjs/components/BigStat/BigStat.css +77 -0
  11. package/dist/cjs/components/BigStat/BigStat.module.css.cjs +22 -0
  12. package/dist/cjs/components/BigStat/BigStat.module.css.cjs.map +1 -0
  13. package/dist/cjs/components/BigStat/index.cjs +60 -52
  14. package/dist/cjs/components/BigStat/index.cjs.map +1 -1
  15. package/dist/cjs/components/ButtonGroup/index.cjs +1 -1
  16. package/dist/cjs/components/ButtonGroup/index.cjs.map +1 -1
  17. package/dist/cjs/components/CardPromotion/index.cjs +1 -1
  18. package/dist/cjs/components/CardPromotion/index.cjs.map +1 -1
  19. package/dist/cjs/components/CardSecondary/CardSecondary.css +99 -0
  20. package/dist/cjs/components/CardSecondary/CardSecondary.module.css.cjs +39 -0
  21. package/dist/cjs/components/CardSecondary/CardSecondary.module.css.cjs.map +1 -0
  22. package/dist/cjs/components/CardSecondary/index.cjs +35 -84
  23. package/dist/cjs/components/CardSecondary/index.cjs.map +1 -1
  24. package/dist/cjs/components/ConfirmationDialog/ConfirmationDialog.css +20 -0
  25. package/dist/cjs/components/ConfirmationDialog/ConfirmationDialog.module.css.cjs +15 -0
  26. package/dist/cjs/components/ConfirmationDialog/ConfirmationDialog.module.css.cjs.map +1 -0
  27. package/dist/cjs/components/ConfirmationDialog/index.cjs +6 -11
  28. package/dist/cjs/components/ConfirmationDialog/index.cjs.map +1 -1
  29. package/dist/cjs/components/ContextMenu/ContextMenu.css +28 -0
  30. package/dist/cjs/components/ContextMenu/ContextMenu.module.css.cjs +10 -0
  31. package/dist/cjs/components/ContextMenu/ContextMenu.module.css.cjs.map +1 -0
  32. package/dist/cjs/components/ContextMenu/index.cjs +27 -29
  33. package/dist/cjs/components/ContextMenu/index.cjs.map +1 -1
  34. package/dist/cjs/components/CrossButton/index.cjs +5 -1
  35. package/dist/cjs/components/CrossButton/index.cjs.map +1 -1
  36. package/dist/cjs/components/DatePicker/Common.cjs +1 -1
  37. package/dist/cjs/components/DatePicker/Common.cjs.map +1 -1
  38. package/dist/cjs/components/Dropdown/Dropdown.css +13 -0
  39. package/dist/cjs/components/Dropdown/Dropdown.module.css.cjs +11 -0
  40. package/dist/cjs/components/Dropdown/Dropdown.module.css.cjs.map +1 -0
  41. package/dist/cjs/components/Dropdown/index.cjs +19 -13
  42. package/dist/cjs/components/Dropdown/index.cjs.map +1 -1
  43. package/dist/cjs/components/FileTabs/index.cjs +1 -1
  44. package/dist/cjs/components/FileTabs/index.cjs.map +1 -1
  45. package/dist/cjs/components/Flyout/Flyout.css +231 -0
  46. package/dist/cjs/components/Flyout/Flyout.module.css.cjs +93 -0
  47. package/dist/cjs/components/Flyout/Flyout.module.css.cjs.map +1 -0
  48. package/dist/cjs/components/Flyout/index.cjs +148 -126
  49. package/dist/cjs/components/Flyout/index.cjs.map +1 -1
  50. package/dist/cjs/components/GenericMenu/GenericMenu.css +176 -0
  51. package/dist/cjs/components/GenericMenu/GenericMenu.module.css.cjs +23 -0
  52. package/dist/cjs/components/GenericMenu/GenericMenu.module.css.cjs.map +1 -0
  53. package/dist/cjs/components/GenericMenu/index.cjs +93 -99
  54. package/dist/cjs/components/GenericMenu/index.cjs.map +1 -1
  55. package/dist/cjs/components/HoverCard/index.cjs +1 -1
  56. package/dist/cjs/components/HoverCard/index.cjs.map +1 -1
  57. package/dist/cjs/components/IconButton/index.cjs +2 -1
  58. package/dist/cjs/components/IconButton/index.cjs.map +1 -1
  59. package/dist/cjs/components/InputWrapper/InputWrapper.css +221 -0
  60. package/dist/cjs/components/InputWrapper/InputWrapper.module.css.cjs +39 -0
  61. package/dist/cjs/components/InputWrapper/InputWrapper.module.css.cjs.map +1 -0
  62. package/dist/cjs/components/InputWrapper/index.cjs +84 -185
  63. package/dist/cjs/components/InputWrapper/index.cjs.map +1 -1
  64. package/dist/cjs/components/Popover/Popover.css +12 -0
  65. package/dist/cjs/components/Popover/Popover.module.css.cjs +11 -0
  66. package/dist/cjs/components/Popover/Popover.module.css.cjs.map +1 -0
  67. package/dist/cjs/components/Popover/index.cjs +26 -19
  68. package/dist/cjs/components/Popover/index.cjs.map +1 -1
  69. package/dist/cjs/components/RadioGroup/RadioGroup.css +99 -0
  70. package/dist/cjs/components/RadioGroup/RadioGroup.module.css.cjs +18 -0
  71. package/dist/cjs/components/RadioGroup/RadioGroup.module.css.cjs.map +1 -0
  72. package/dist/cjs/components/RadioGroup/index.cjs +28 -77
  73. package/dist/cjs/components/RadioGroup/index.cjs.map +1 -1
  74. package/dist/cjs/components/Select/common/InternalSelect.cjs +1 -1
  75. package/dist/cjs/components/Select/common/InternalSelect.cjs.map +1 -1
  76. package/dist/cjs/components/SplitButton/index.cjs +2 -1
  77. package/dist/cjs/components/SplitButton/index.cjs.map +1 -1
  78. package/dist/cjs/components/Table/Table.css +376 -0
  79. package/dist/cjs/components/Table/Table.module.css.cjs +86 -0
  80. package/dist/cjs/components/Table/Table.module.css.cjs.map +1 -0
  81. package/dist/cjs/components/Table/index.cjs +132 -214
  82. package/dist/cjs/components/Table/index.cjs.map +1 -1
  83. package/dist/cjs/components/Toast/Toast.css +142 -0
  84. package/dist/cjs/components/Toast/Toast.module.css.cjs +38 -0
  85. package/dist/cjs/components/Toast/Toast.module.css.cjs.map +1 -0
  86. package/dist/cjs/components/Toast/index.cjs +43 -96
  87. package/dist/cjs/components/Toast/index.cjs.map +1 -1
  88. package/dist/cjs/components/Tooltip/Tooltip.css +17 -0
  89. package/dist/cjs/components/Tooltip/Tooltip.module.css.cjs +15 -0
  90. package/dist/cjs/components/Tooltip/Tooltip.module.css.cjs.map +1 -0
  91. package/dist/cjs/components/Tooltip/index.cjs +12 -24
  92. package/dist/cjs/components/Tooltip/index.cjs.map +1 -1
  93. package/dist/cjs/components/VerticalStepper/VerticalStepper.css +302 -0
  94. package/dist/cjs/components/VerticalStepper/VerticalStepper.module.css.cjs +84 -0
  95. package/dist/cjs/components/VerticalStepper/VerticalStepper.module.css.cjs.map +1 -0
  96. package/dist/cjs/components/VerticalStepper/index.cjs +85 -110
  97. package/dist/cjs/components/VerticalStepper/index.cjs.map +1 -1
  98. package/dist/esm/click-ui.css +1872 -59
  99. package/dist/esm/components/Alert/index.js +2 -2
  100. package/dist/esm/components/Alert/index.js.map +1 -1
  101. package/dist/esm/components/Assets/Logos/Polaris.js +18 -0
  102. package/dist/esm/components/Assets/Logos/Polaris.js.map +1 -0
  103. package/dist/esm/components/Assets/Logos/system/LogosDark.js +2 -0
  104. package/dist/esm/components/Assets/Logos/system/LogosDark.js.map +1 -1
  105. package/dist/esm/components/Assets/Logos/system/LogosLight.js +2 -0
  106. package/dist/esm/components/Assets/Logos/system/LogosLight.js.map +1 -1
  107. package/dist/esm/components/BigStat/BigStat.css +77 -0
  108. package/dist/esm/components/BigStat/BigStat.module.css.js +18 -0
  109. package/dist/esm/components/BigStat/BigStat.module.css.js.map +1 -0
  110. package/dist/esm/components/BigStat/index.js +60 -52
  111. package/dist/esm/components/BigStat/index.js.map +1 -1
  112. package/dist/esm/components/ButtonGroup/index.js +1 -1
  113. package/dist/esm/components/ButtonGroup/index.js.map +1 -1
  114. package/dist/esm/components/CardPromotion/index.js +1 -1
  115. package/dist/esm/components/CardPromotion/index.js.map +1 -1
  116. package/dist/esm/components/CardSecondary/CardSecondary.css +99 -0
  117. package/dist/esm/components/CardSecondary/CardSecondary.module.css.js +25 -0
  118. package/dist/esm/components/CardSecondary/CardSecondary.module.css.js.map +1 -0
  119. package/dist/esm/components/CardSecondary/index.js +35 -84
  120. package/dist/esm/components/CardSecondary/index.js.map +1 -1
  121. package/dist/esm/components/ConfirmationDialog/ConfirmationDialog.css +20 -0
  122. package/dist/esm/components/ConfirmationDialog/ConfirmationDialog.module.css.js +9 -0
  123. package/dist/esm/components/ConfirmationDialog/ConfirmationDialog.module.css.js.map +1 -0
  124. package/dist/esm/components/ConfirmationDialog/index.js +6 -11
  125. package/dist/esm/components/ConfirmationDialog/index.js.map +1 -1
  126. package/dist/esm/components/ContextMenu/ContextMenu.css +28 -0
  127. package/dist/esm/components/ContextMenu/ContextMenu.module.css.js +6 -0
  128. package/dist/esm/components/ContextMenu/ContextMenu.module.css.js.map +1 -0
  129. package/dist/esm/components/ContextMenu/index.js +28 -30
  130. package/dist/esm/components/ContextMenu/index.js.map +1 -1
  131. package/dist/esm/components/CrossButton/index.js +5 -1
  132. package/dist/esm/components/CrossButton/index.js.map +1 -1
  133. package/dist/esm/components/DatePicker/Common.js +1 -1
  134. package/dist/esm/components/DatePicker/Common.js.map +1 -1
  135. package/dist/esm/components/Dropdown/Dropdown.css +13 -0
  136. package/dist/esm/components/Dropdown/Dropdown.module.css.js +7 -0
  137. package/dist/esm/components/Dropdown/Dropdown.module.css.js.map +1 -0
  138. package/dist/esm/components/Dropdown/index.js +19 -13
  139. package/dist/esm/components/Dropdown/index.js.map +1 -1
  140. package/dist/esm/components/FileTabs/index.js +1 -1
  141. package/dist/esm/components/FileTabs/index.js.map +1 -1
  142. package/dist/esm/components/Flyout/Flyout.css +231 -0
  143. package/dist/esm/components/Flyout/Flyout.module.css.js +62 -0
  144. package/dist/esm/components/Flyout/Flyout.module.css.js.map +1 -0
  145. package/dist/esm/components/Flyout/index.js +149 -127
  146. package/dist/esm/components/Flyout/index.js.map +1 -1
  147. package/dist/esm/components/GenericMenu/GenericMenu.css +176 -0
  148. package/dist/esm/components/GenericMenu/GenericMenu.module.css.js +18 -0
  149. package/dist/esm/components/GenericMenu/GenericMenu.module.css.js.map +1 -0
  150. package/dist/esm/components/GenericMenu/index.js +93 -99
  151. package/dist/esm/components/GenericMenu/index.js.map +1 -1
  152. package/dist/esm/components/HoverCard/index.js +1 -1
  153. package/dist/esm/components/HoverCard/index.js.map +1 -1
  154. package/dist/esm/components/IconButton/index.js +2 -1
  155. package/dist/esm/components/IconButton/index.js.map +1 -1
  156. package/dist/esm/components/InputWrapper/InputWrapper.css +221 -0
  157. package/dist/esm/components/InputWrapper/InputWrapper.module.css.js +27 -0
  158. package/dist/esm/components/InputWrapper/InputWrapper.module.css.js.map +1 -0
  159. package/dist/esm/components/InputWrapper/index.js +84 -185
  160. package/dist/esm/components/InputWrapper/index.js.map +1 -1
  161. package/dist/esm/components/Popover/Popover.css +12 -0
  162. package/dist/esm/components/Popover/Popover.module.css.js +7 -0
  163. package/dist/esm/components/Popover/Popover.module.css.js.map +1 -0
  164. package/dist/esm/components/Popover/index.js +26 -19
  165. package/dist/esm/components/Popover/index.js.map +1 -1
  166. package/dist/esm/components/RadioGroup/RadioGroup.css +99 -0
  167. package/dist/esm/components/RadioGroup/RadioGroup.module.css.js +13 -0
  168. package/dist/esm/components/RadioGroup/RadioGroup.module.css.js.map +1 -0
  169. package/dist/esm/components/RadioGroup/index.js +28 -77
  170. package/dist/esm/components/RadioGroup/index.js.map +1 -1
  171. package/dist/esm/components/Select/common/InternalSelect.js +1 -1
  172. package/dist/esm/components/Select/common/InternalSelect.js.map +1 -1
  173. package/dist/esm/components/SplitButton/index.js +2 -1
  174. package/dist/esm/components/SplitButton/index.js.map +1 -1
  175. package/dist/esm/components/Table/Table.css +376 -0
  176. package/dist/esm/components/Table/Table.module.css.js +63 -0
  177. package/dist/esm/components/Table/Table.module.css.js.map +1 -0
  178. package/dist/esm/components/Table/index.js +132 -214
  179. package/dist/esm/components/Table/index.js.map +1 -1
  180. package/dist/esm/components/Toast/Toast.css +142 -0
  181. package/dist/esm/components/Toast/Toast.module.css.js +26 -0
  182. package/dist/esm/components/Toast/Toast.module.css.js.map +1 -0
  183. package/dist/esm/components/Toast/index.js +43 -96
  184. package/dist/esm/components/Toast/index.js.map +1 -1
  185. package/dist/esm/components/Tooltip/Tooltip.css +17 -0
  186. package/dist/esm/components/Tooltip/Tooltip.module.css.js +9 -0
  187. package/dist/esm/components/Tooltip/Tooltip.module.css.js.map +1 -0
  188. package/dist/esm/components/Tooltip/index.js +12 -24
  189. package/dist/esm/components/Tooltip/index.js.map +1 -1
  190. package/dist/esm/components/VerticalStepper/VerticalStepper.css +302 -0
  191. package/dist/esm/components/VerticalStepper/VerticalStepper.module.css.js +55 -0
  192. package/dist/esm/components/VerticalStepper/VerticalStepper.module.css.js.map +1 -0
  193. package/dist/esm/components/VerticalStepper/index.js +85 -110
  194. package/dist/esm/components/VerticalStepper/index.js.map +1 -1
  195. package/dist/types/components/Assets/Logos/Polaris.d.ts +3 -0
  196. package/dist/types/components/Assets/Logos/system/types.d.ts +1 -1
  197. package/dist/types/components/BigStat/BigStat.d.ts +1 -1
  198. package/dist/types/components/CardSecondary/CardSecondary.d.ts +1 -1
  199. package/dist/types/components/ConfirmationDialog/ConfirmationDialog.d.ts +1 -1
  200. package/dist/types/components/CrossButton/CrossButton.d.ts +6 -2
  201. package/dist/types/components/Flyout/Flyout.d.ts +8 -6
  202. package/dist/types/components/Flyout/Flyout.types.d.ts +3 -0
  203. package/dist/types/components/GenericMenu/GenericMenu.d.ts +29 -12
  204. package/dist/types/components/IconButton/IconButton.types.d.ts +3 -0
  205. package/dist/types/components/InputWrapper/InputWrapper.d.ts +17 -13
  206. package/dist/types/components/RadioGroup/RadioGroup.d.ts +2 -2
  207. package/dist/types/components/SplitButton/SplitButton.d.ts +1 -1
  208. package/dist/types/components/SplitButton/SplitButton.types.d.ts +3 -0
  209. package/dist/types/components/Toast/Toast.d.ts +1 -1
  210. package/dist/types/components/Tooltip/Tooltip.d.ts +1 -1
  211. package/dist/types/components/VerticalStepper/VerticalStepper.d.ts +2 -2
  212. package/package.json +1 -1
@@ -1,44 +1,39 @@
1
+ import "./Table.css";
1
2
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
2
3
  import { forwardRef, useState, useRef, useLayoutEffect, useMemo, useEffect, useCallback } from 'react';
3
- import { styled } from 'styled-components';
4
4
  import { MiddleTruncator } from '../MiddleTruncator/index.js';
5
+ import { cn } from '../../lib/cva.js';
6
+ import styles from './Table.module.css.js';
5
7
  import { Checkbox } from '../Checkbox/index.js';
6
8
  import { IconButton } from '../IconButton/index.js';
7
9
  import { Icon as SvgImage } from '../Icon/index.js';
8
10
  import { Text } from '../Text/index.js';
9
11
  import { EllipsisContent } from '../EllipsisContent/index.js';
12
+ import { cva } from 'class-variance-authority';
10
13
 
11
- const StyledHeader = styled.th.withConfig({
12
- componentId: "sc-1q458rb-0"
13
- })(["", " text-align:left;", ""], ({
14
- theme,
15
- $size
16
- }) => `
17
- padding: ${theme.click.table.header.cell.space[$size].y} ${theme.click.table.body.cell.space[$size].x};
18
- font: ${theme.click.table.header.title.default};
19
- color: ${theme.click.table.header.color.title.default};
20
- `, ({
21
- $resizable
22
- }) => $resizable && `
23
- position: relative;
24
- `);
25
- const Resizer = styled.div.withConfig({
26
- componentId: "sc-1q458rb-1"
27
- })(["position:absolute;top:0;right:0;width:24px;height:100%;cursor:col-resize;user-select:none;z-index:1;transition:opacity 0.2s;border-radius:0.5rem;transform:translateX(50%);&:hover{opacity:0.6;}&::before{content:' ';background:", ";display:inline-block;top:25%;width:2px;height:20px;position:relative;left:50%;transform:translateX(-50%);}&:focus-visible{outline:2px solid ", ";outline-offset:2px;opacity:1;}"], ({
28
- theme
29
- }) => theme.click.table.header.color.checkbox.border.default, ({
30
- theme
31
- }) => theme.click.global.color.outline.default);
32
- const HeaderContentWrapper = styled.div.withConfig({
33
- componentId: "sc-1q458rb-2"
34
- })(["display:flex;align-items:center;justify-content:start;gap:inherit;", ""], ({
35
- $interactive
36
- }) => $interactive && "cursor: pointer;");
37
- const SortIcon = styled(SvgImage).withConfig({
38
- componentId: "sc-1q458rb-3"
39
- })(["transition:all 200ms;transform:rotate(", ");"], ({
40
- $sortDir
41
- }) => $sortDir === "desc" ? "180deg" : "0deg");
14
+ const headerVariants = cva(styles.table__header, {
15
+ variants: {
16
+ size: {
17
+ sm: styles.table__header_size_sm,
18
+ md: styles.table__header_size_md
19
+ },
20
+ resizable: {
21
+ true: styles.table__header_resizable,
22
+ false: ""
23
+ }
24
+ },
25
+ defaultVariants: {
26
+ resizable: false
27
+ }
28
+ });
29
+ const sortIconVariants = cva(styles["table__sort-icon"], {
30
+ variants: {
31
+ dir: {
32
+ asc: styles["table__sort-icon_dir_asc"],
33
+ desc: styles["table__sort-icon_dir_desc"]
34
+ }
35
+ }
36
+ });
42
37
  const TableHeader = ({
43
38
  label,
44
39
  sortDir,
@@ -52,6 +47,7 @@ const TableHeader = ({
52
47
  onResizeStart,
53
48
  onKeyboardResize,
54
49
  overflowMode,
50
+ className,
55
51
  ...props
56
52
  }) => {
57
53
  if (overflowMode === "wrap" && resizable) {
@@ -87,13 +83,20 @@ const TableHeader = ({
87
83
  break;
88
84
  }
89
85
  };
90
- return /* @__PURE__ */ jsxs(StyledHeader, { $size: size, $resizable: resizable, ...props, children: [
91
- /* @__PURE__ */ jsxs(HeaderContentWrapper, { onClick: onHeaderClick, $interactive: isInteractive, children: [
92
- isSorted && isSortable && sortPosition == "start" && /* @__PURE__ */ jsx(SortIcon, { $sortDir: sortDir, name: "arrow-down", size: "sm" }),
86
+ return /* @__PURE__ */ jsxs("th", { ...props, className: cn(headerVariants({
87
+ size,
88
+ resizable
89
+ }), className), children: [
90
+ /* @__PURE__ */ jsxs("div", { onClick: onHeaderClick, className: cn(styles["table__header-content"], isInteractive && styles["table__header-content_interactive"]), children: [
91
+ isSorted && isSortable && sortPosition == "start" && /* @__PURE__ */ jsx(SvgImage, { name: "arrow-down", size: "sm", className: cn(sortIconVariants({
92
+ dir: sortDir
93
+ })) }),
93
94
  label,
94
- isSorted && isSortable && sortPosition == "end" && /* @__PURE__ */ jsx(SortIcon, { $sortDir: sortDir, name: "arrow-down", size: "sm" })
95
+ isSorted && isSortable && sortPosition == "end" && /* @__PURE__ */ jsx(SvgImage, { name: "arrow-down", size: "sm", className: cn(sortIconVariants({
96
+ dir: sortDir
97
+ })) })
95
98
  ] }),
96
- showResizer && /* @__PURE__ */ jsx(Resizer, { ref: resizerRef, onMouseDown: onResizeStart, role: "separator", "aria-orientation": "vertical", "aria-label": `Resize ${typeof label === "string" ? label : "column"}`, tabIndex: 0, onKeyDown: onResizerKeyDown })
99
+ showResizer && /* @__PURE__ */ jsx("div", { ref: resizerRef, onMouseDown: onResizeStart, role: "separator", "aria-orientation": "vertical", "aria-label": `Resize ${typeof label === "string" ? label : "column"}`, tabIndex: 0, onKeyDown: onResizerKeyDown, className: cn(styles.table__resizer) })
97
100
  ] });
98
101
  };
99
102
  const Thead = ({
@@ -117,7 +120,7 @@ const Thead = ({
117
120
  }
118
121
  };
119
122
  return /* @__PURE__ */ jsxs(Fragment, { children: [
120
- /* @__PURE__ */ jsxs(StyledColGroup, { children: [
123
+ /* @__PURE__ */ jsxs("colgroup", { className: cn(styles.table__colgroup), children: [
121
124
  isSelectable && /* @__PURE__ */ jsx("col", { width: 48 }),
122
125
  headers.map((headerProps, index) => {
123
126
  const headerLabel = typeof headerProps.label === "string" ? headerProps.label : `__index_${index}`;
@@ -126,161 +129,67 @@ const Thead = ({
126
129
  }),
127
130
  actionsList.length > 0 && /* @__PURE__ */ jsx("col", { width: (actionsList.length + 1) * 32 + 10 })
128
131
  ] }),
129
- /* @__PURE__ */ jsx(StyledThead, { ref: theadRef, children: /* @__PURE__ */ jsxs("tr", { children: [
130
- isSelectable && /* @__PURE__ */ jsx(StyledHeader, { $size: size, "aria-label": "Select column", children: /* @__PURE__ */ jsx(SelectAllCheckbox, { onCheckedChange: onSelectAll, rows, selectedIds }) }),
132
+ /* @__PURE__ */ jsx("thead", { ref: theadRef, className: cn(styles.table__thead), children: /* @__PURE__ */ jsxs("tr", { children: [
133
+ isSelectable && /* @__PURE__ */ jsx("th", { "aria-label": "Select column", className: cn(headerVariants({
134
+ size
135
+ })), children: /* @__PURE__ */ jsx(SelectAllCheckbox, { onCheckedChange: onSelectAll, rows, selectedIds }) }),
131
136
  headers.map((headerProps, index) => /* @__PURE__ */ jsx(TableHeader, { onSort: onSort(headerProps, index), size, resizable: resizableColumns, showResizer: resizableColumns && index < headers.length - 1, onResizeStart: onResizeStart?.(index), onKeyboardResize: onKeyboardResize?.(index), ...headerProps }, `table-header-${index}`)),
132
- actionsList.length > 0 && /* @__PURE__ */ jsx(StyledHeader, { "aria-label": "Actions", $size: size })
137
+ actionsList.length > 0 && /* @__PURE__ */ jsx("th", { "aria-label": "Actions", className: cn(headerVariants({
138
+ size
139
+ })) })
133
140
  ] }) })
134
141
  ] });
135
142
  };
136
- const TableRow = styled.tr.withConfig({
137
- componentId: "sc-1q458rb-4"
138
- })(["overflow:hidden;", " &:last-of-type,&:last-child{border-bottom:none;}[data-mobile-layout='list'] &{@media (max-width:", "){position:relative;display:flex;flex-wrap:wrap;", "}}"], ({
139
- theme,
140
- $isDeleted,
141
- $isDisabled,
142
- $isActive,
143
- $rowHeight
144
- }) => `
145
- ${$rowHeight ? `height: ${$rowHeight};` : ""}
146
- background-color: ${theme.click.table.row.color.background.default};
147
- border-bottom: ${theme.click.table.cell.stroke} solid ${theme.click.table.row.color.stroke.default};
148
-
149
- ${$isActive && `background-color: ${theme.click.table.row.color.background.active};`}
150
-
151
- &:active {
152
- background-color: ${theme.click.table.row.color.background.active};
143
+ const rowVariants = cva(styles.table__row, {
144
+ variants: {
145
+ isSelectable: {
146
+ true: styles.table__row_selectable,
147
+ false: ""
148
+ },
149
+ isActive: {
150
+ true: styles.table__row_active,
151
+ false: ""
152
+ },
153
+ isDisabled: {
154
+ true: styles.table__row_disabled,
155
+ false: ""
156
+ },
157
+ showActions: {
158
+ true: styles["table__row_show-actions"],
159
+ false: ""
160
+ }
161
+ },
162
+ defaultVariants: {
163
+ isSelectable: false,
164
+ isActive: false,
165
+ isDisabled: false,
166
+ showActions: false
167
+ }
168
+ });
169
+ const cellVariants = cva(styles.table__data, {
170
+ variants: {
171
+ size: {
172
+ sm: styles.table__data_size_sm,
173
+ md: styles.table__data_size_md
153
174
  }
154
- &:hover {
155
- background-color: ${theme.click.table.row.color.background.hover};
175
+ }
176
+ });
177
+ const selectDataVariants = cva(styles["table__select-data"], {
178
+ variants: {
179
+ size: {
180
+ sm: styles["table__select-data_size_sm"],
181
+ md: styles["table__select-data_size_md"]
156
182
  }
157
- opacity: ${$isDeleted || $isDisabled ? 0.5 : 1};
158
- cursor: ${$isDeleted || $isDisabled ? "not-allowed" : "default"}
159
- `, ({
160
- theme
161
- }) => theme.breakpoint.sizes.md, ({
162
- theme,
163
- $isSelectable = false,
164
- $showActions = false
165
- }) => `
166
- border: ${theme.click.table.cell.stroke} solid ${theme.click.table.row.color.stroke.default};
167
- border-radius: ${theme.click.table.radii.all};
168
- ${$isSelectable ? `padding-left: calc(${theme.click.table.body.cell.space.sm.x} + ${theme.click.table.body.cell.space.sm.x} + ${theme.click.checkbox.size.all});` : ""}
169
- ${$showActions ? `padding-right: calc(${theme.click.table.body.cell.space.sm.x} + ${theme.click.table.body.cell.space.sm.x} + ${theme.click.image.sm.size.width} + ${theme.click.button.iconButton.default.space.x} + ${theme.click.button.iconButton.default.space.x});` : ""}
170
- `);
171
- const TableData = styled.td.withConfig({
172
- componentId: "sc-1q458rb-5"
173
- })(["overflow:hidden;", " [data-mobile-layout='list'] &{@media (max-width:", "){width:auto;min-width:40%;", "}}"], ({
174
- theme,
175
- $size
176
- }) => `
177
- color: ${theme.click.table.row.color.text.default};
178
- font: ${theme.click.table.cell.text.default};
179
- padding: ${theme.click.table.body.cell.space[$size].y} ${theme.click.table.body.cell.space[$size].x};
180
- `, ({
181
- theme
182
- }) => theme.breakpoint.sizes.md, ({
183
- theme
184
- }) => `
185
- padding: ${theme.click.table.body.cell.space.sm.y} ${theme.click.table.body.cell.space.sm.x};
186
- `);
187
- const StyledColGroup = styled.colgroup.withConfig({
188
- componentId: "sc-1q458rb-6"
189
- })(["[data-mobile-layout='list'] &{@media (max-width:", "){display:none;}}"], ({
190
- theme
191
- }) => theme.breakpoint.sizes.md);
192
- const StyledThead = styled.thead.withConfig({
193
- componentId: "sc-1q458rb-7"
194
- })(["tr{overflow:hidden;background-color:", ";", "}[data-mobile-layout='list'] &{@media (max-width:", "){display:none;}}"], ({
195
- theme
196
- }) => theme.click.table.header.color.background.default, ({
197
- theme
198
- }) => ` border-bottom: ${theme.click.table.cell.stroke} solid ${theme.click.table.row.color.stroke.default};
199
- `, ({
200
- theme
201
- }) => theme.breakpoint.sizes.md);
202
- const MobileHeader = styled.div.withConfig({
203
- componentId: "sc-1q458rb-8"
204
- })(["display:none;", " [data-mobile-layout='list'] &{@media (max-width:", "){display:block;}}"], ({
205
- theme
206
- }) => `
207
- color: ${theme.click.table.row.color.label.default};
208
- font: ${theme.click.table.cell.label.default};
209
- `, ({
210
- theme
211
- }) => theme.breakpoint.sizes.md);
212
- const Tbody = styled.tbody.withConfig({
213
- componentId: "sc-1q458rb-9"
214
- })(["[data-mobile-layout='list'] &{@media (max-width:", "){display:flex;flex-direction:column;gap:0.25rem;}}"], ({
215
- theme
216
- }) => theme.breakpoint.sizes.md);
217
- const SelectData = styled.td.withConfig({
218
- componentId: "sc-1q458rb-10"
219
- })(["overflow:hidden;", " [data-mobile-layout='list'] &{@media (max-width:", "){width:auto;align-self:stretch;position:absolute;left:0;top:0;bottom:0;", "}}"], ({
220
- theme,
221
- $size
222
- }) => `
223
- color: ${theme.click.table.row.color.text.default};
224
- font: ${theme.click.table.cell.text.default};
225
- padding: ${theme.click.table.body.cell.space[$size].y} ${theme.click.table.body.cell.space[$size].x};
226
- `, ({
227
- theme
228
- }) => theme.breakpoint.sizes.md, ({
229
- theme
230
- }) => `
231
- padding: ${theme.click.table.body.cell.space.sm.y} ${theme.click.table.body.cell.space.sm.x};
232
- border-right: ${theme.click.table.cell.stroke} solid ${theme.click.table.row.color.stroke.default};
233
- `);
234
- const ActionsList = styled.td.withConfig({
235
- componentId: "sc-1q458rb-11"
236
- })(["overflow:hidden;", " [data-mobile-layout='list'] &{@media (max-width:", "){width:auto;align-self:stretch;position:absolute;right:0;top:0;bottom:0;", "}}"], ({
237
- theme,
238
- $size
239
- }) => `
240
- color: ${theme.click.table.row.color.text.default};
241
- font: ${theme.click.table.cell.text.default};
242
- padding: ${theme.click.table.body.cell.space[$size].y} ${theme.click.table.body.cell.space[$size].x};
243
- `, ({
244
- theme
245
- }) => theme.breakpoint.sizes.md, ({
246
- theme
247
- }) => `
248
- padding: ${theme.click.table.body.cell.space.sm.y} ${theme.click.table.body.cell.space.sm.x};
249
- border-left: 1px solid ${theme.click.table.row.color.stroke.default};
250
- `);
251
- const ActionsContainer = styled.div.withConfig({
252
- componentId: "sc-1q458rb-12"
253
- })(["display:flex;flex-wrap:wrap;gap:0.5rem;overflow:hidden;[data-mobile-layout='list'] &{@media (max-width:", "){flex-direction:column;overflow:auto;flex-wrap:nowrap;}}"], ({
254
- theme
255
- }) => theme.breakpoint.sizes.md);
256
- const TableWrapper = styled.div.withConfig({
257
- componentId: "sc-1q458rb-13"
258
- })(["width:100%;height:100%;overflow-x:auto;", ""], ({
259
- theme
260
- }) => `
261
- border: ${theme.click.table.cell.stroke} solid ${theme.click.table.global.color.stroke.default};
262
- border-radius: ${theme.click.table.radii.all}
263
- `);
264
- const TableOuterContainer = styled.div.withConfig({
265
- componentId: "sc-1q458rb-14"
266
- })(["display:flex;flex-direction:column;gap:1rem;width:100%;"]);
267
- const MobileActions = styled.div.withConfig({
268
- componentId: "sc-1q458rb-15"
269
- })(["display:none;[data-mobile-layout='list'] &{@media (max-width:", "){display:flex;justify-content:space-between;align-items:center;padding:0 ", ";}}"], ({
270
- theme
271
- }) => theme.breakpoint.sizes.md, ({
272
- theme
273
- }) => theme.click.table.body.cell.space.sm.x);
274
- const EditButton = styled.button.withConfig({
275
- componentId: "sc-1q458rb-16"
276
- })(["&:disabled{background:transparent;}"]);
277
- const TableRowCloseButton = styled.button.withConfig({
278
- componentId: "sc-1q458rb-17"
279
- })(["svg{transition:transform 200ms;", "}&:disabled{background:transparent;}"], ({
280
- $isDeleted
281
- }) => `
282
- ${$isDeleted ? "transform: rotate(45deg)" : ""};
283
- `);
183
+ }
184
+ });
185
+ const actionsCellVariants = cva(styles["table__actions-cell"], {
186
+ variants: {
187
+ size: {
188
+ sm: styles["table__actions-cell_size_sm"],
189
+ md: styles["table__actions-cell_size_md"]
190
+ }
191
+ }
192
+ });
284
193
  const TableBodyRow = ({
285
194
  headers,
286
195
  items,
@@ -296,32 +205,46 @@ const TableBodyRow = ({
296
205
  size,
297
206
  actionsList,
298
207
  rowHeight,
208
+ className,
209
+ style,
299
210
  ...rowProps
300
211
  }) => {
301
212
  const isDeletable = typeof onDelete === "function";
302
213
  const isEditable = typeof onEdit === "function";
303
- return /* @__PURE__ */ jsxs(TableRow, { $isSelectable: isSelectable, $isDeleted: isDeleted, $isDisabled: isDisabled, $isActive: isActive, $showActions: isDeletable || isEditable, $rowHeight: rowHeight, ...rowProps, children: [
304
- isSelectable && /* @__PURE__ */ jsx(SelectData, { $size: size, children: /* @__PURE__ */ jsx(Checkbox, { checked: isIndeterminate ? "indeterminate" : isSelected, onCheckedChange: onSelect, disabled: isDisabled || isDeleted }) }),
214
+ const rowStyle = useMemo(() => ({
215
+ ...rowHeight ? {
216
+ "--table-row-height": rowHeight
217
+ } : {},
218
+ ...style
219
+ }), [rowHeight, style]);
220
+ return /* @__PURE__ */ jsxs("tr", { style: rowStyle, ...rowProps, className: cn(rowVariants({
221
+ isSelectable,
222
+ isActive,
223
+ isDisabled: isDeleted || isDisabled,
224
+ showActions: isDeletable || isEditable
225
+ }), className), children: [
226
+ isSelectable && /* @__PURE__ */ jsx("td", { className: cn(selectDataVariants({
227
+ size
228
+ })), children: /* @__PURE__ */ jsx(Checkbox, { checked: isIndeterminate ? "indeterminate" : isSelected, onCheckedChange: onSelect, disabled: isDisabled || isDeleted }) }),
305
229
  items.map(({
306
230
  label,
307
231
  overflowMode,
232
+ className: cellClassName,
308
233
  ...cellProps
309
- }, cellIndex) => /* @__PURE__ */ jsxs(TableData, { $size: size, ...cellProps, children: [
310
- headers[cellIndex] && /* @__PURE__ */ jsx(MobileHeader, { children: headers[cellIndex].label }),
234
+ }, cellIndex) => /* @__PURE__ */ jsxs("td", { ...cellProps, className: cn(cellVariants({
235
+ size
236
+ }), cellClassName), children: [
237
+ headers[cellIndex] && /* @__PURE__ */ jsx("div", { className: cn(styles["table__mobile-header"]), children: headers[cellIndex].label }),
311
238
  /* @__PURE__ */ jsx(Cell, { label, overflowMode: overflowMode ?? headers[cellIndex]?.overflowMode })
312
239
  ] }, `table-cell-${cellIndex}`)),
313
- actionsList.length > 0 && /* @__PURE__ */ jsx(ActionsList, { $size: size, children: /* @__PURE__ */ jsxs(ActionsContainer, { children: [
314
- actionsList.includes("editAction") && /* @__PURE__ */ jsx(EditButton, { as: IconButton, type: "ghost", disabled: isDisabled || isDeleted || !isEditable, icon: "pencil", onClick: onEdit, "data-testid": "table-row-edit" }),
315
- actionsList.includes("deleteAction") && /* @__PURE__ */ jsx(TableRowCloseButton, { as: IconButton, disabled: isDisabled || !isDeletable, $isDeleted: isDeleted, type: "ghost", icon: "cross", onClick: onDelete, "data-testid": "table-row-delete" })
240
+ actionsList.length > 0 && /* @__PURE__ */ jsx("td", { className: cn(actionsCellVariants({
241
+ size
242
+ })), children: /* @__PURE__ */ jsxs("div", { className: cn(styles.table__actions), children: [
243
+ actionsList.includes("editAction") && /* @__PURE__ */ jsx(IconButton, { type: "ghost", htmlType: "button", disabled: isDisabled || isDeleted || !isEditable, icon: "pencil", onClick: onEdit, "data-testid": "table-row-edit", className: cn(styles["table__edit-button"]) }),
244
+ actionsList.includes("deleteAction") && /* @__PURE__ */ jsx(IconButton, { disabled: isDisabled || !isDeletable, type: "ghost", htmlType: "button", icon: "cross", onClick: onDelete, "data-testid": "table-row-delete", className: cn(styles["table__close-button"], isDeleted && styles["table__close-button_deleted"]) })
316
245
  ] }) })
317
246
  ] });
318
247
  };
319
- const SpanedTableData = styled(TableData).withConfig({
320
- componentId: "sc-1q458rb-18"
321
- })(["text-align:center;"]);
322
- const CustomTableDataMessage = styled.div.withConfig({
323
- componentId: "sc-1q458rb-19"
324
- })(["display:flex;gap:0.5rem;justify-content:center;"]);
325
248
  const LoadingData = () => {
326
249
  return /* @__PURE__ */ jsxs(Fragment, { children: [
327
250
  /* @__PURE__ */ jsx(SvgImage, { name: "loading-animated", size: "sm" }),
@@ -334,7 +257,9 @@ const CustomTableRow = ({
334
257
  colSpan,
335
258
  size
336
259
  }) => {
337
- return /* @__PURE__ */ jsx(TableRow, { children: /* @__PURE__ */ jsx(SpanedTableData, { $size: size, colSpan, children: /* @__PURE__ */ jsx(CustomTableDataMessage, { children: loading ? /* @__PURE__ */ jsx(LoadingData, {}) : noDataMessage ?? "No Data available" }) }) });
260
+ return /* @__PURE__ */ jsx("tr", { className: cn(rowVariants({})), children: /* @__PURE__ */ jsx("td", { colSpan, className: cn(cellVariants({
261
+ size
262
+ }), styles["table__spanned-data"]), children: /* @__PURE__ */ jsx("div", { className: cn(styles["table__custom-message"]), children: loading ? /* @__PURE__ */ jsx(LoadingData, {}) : noDataMessage ?? "No Data available" }) }) });
338
263
  };
339
264
  const MIN_COLUMN_WIDTH = 120;
340
265
  const Table = forwardRef(({
@@ -353,6 +278,7 @@ const Table = forwardRef(({
353
278
  rowHeight,
354
279
  resizableColumns,
355
280
  mobileLayout = "list",
281
+ className,
356
282
  ...props
357
283
  }, ref) => {
358
284
  const isDeletable = typeof onDelete === "function";
@@ -525,11 +451,11 @@ const Table = forwardRef(({
525
451
  return updated;
526
452
  });
527
453
  }, [columnWidths, headers]);
528
- return /* @__PURE__ */ jsxs(TableOuterContainer, { "data-mobile-layout": mobileLayout, children: [
529
- hasRows && showHeader && /* @__PURE__ */ jsx(MobileActions, { children: isSelectable && /* @__PURE__ */ jsx(SelectAllCheckbox, { label: "Select All", onCheckedChange: onSelect, rows, selectedIds }) }),
530
- /* @__PURE__ */ jsx(TableWrapper, { children: /* @__PURE__ */ jsxs(StyledTable, { ref, ...props, children: [
454
+ return /* @__PURE__ */ jsxs("div", { "data-mobile-layout": mobileLayout, className: cn(styles.table), children: [
455
+ hasRows && showHeader && /* @__PURE__ */ jsx("div", { className: cn(styles["table__mobile-actions"]), children: isSelectable && /* @__PURE__ */ jsx(SelectAllCheckbox, { label: "Select All", onCheckedChange: onSelect, rows, selectedIds }) }),
456
+ /* @__PURE__ */ jsx("div", { className: cn(styles.table__wrapper), children: /* @__PURE__ */ jsxs("table", { ref, ...props, className: cn(styles["table__table"], className), children: [
531
457
  showHeader && /* @__PURE__ */ jsx(Thead, { headers, isSelectable, onSelectAll: onSelect, actionsList, onSort, size, rows, selectedIds, resizableColumns, columnWidths: resizableColumns ? columnWidths : void 0, onResizeStart: resizableColumns ? handleResizeStart : void 0, theadRef, onKeyboardResize: resizableColumns ? onKeyboardResize : void 0 }),
532
- /* @__PURE__ */ jsxs(Tbody, { children: [
458
+ /* @__PURE__ */ jsxs("tbody", { className: cn(styles.table__tbody), children: [
533
459
  (loading || !hasRows) && /* @__PURE__ */ jsx(CustomTableRow, { colSpan: headers.length + (isEditable || isDeletable ? 1 : 0) + (isSelectable ? 1 : 0), loading, noDataMessage, size }),
534
460
  rows.map(({
535
461
  id,
@@ -596,9 +522,6 @@ const SelectAllCheckbox = ({
596
522
  };
597
523
  return /* @__PURE__ */ jsx(Checkbox, { checked, disabled, onCheckedChange: handleCheckedChange, ...checkboxProps });
598
524
  };
599
- const TextWrapped = styled.span.withConfig({
600
- componentId: "sc-1q458rb-20"
601
- })(["overflow-wrap:break-word;word-break:break-all;display:inline-block;max-width:100%;"]);
602
525
  const Cell = ({
603
526
  label,
604
527
  overflowMode = "truncated"
@@ -611,15 +534,10 @@ const Cell = ({
611
534
  return /* @__PURE__ */ jsx(MiddleTruncator, { text: label });
612
535
  }
613
536
  if (overflowMode === "wrap") {
614
- return /* @__PURE__ */ jsx(TextWrapped, { children: label });
537
+ return /* @__PURE__ */ jsx("span", { className: cn(styles["table__text-wrapped"]), children: label });
615
538
  }
616
539
  return /* @__PURE__ */ jsx(EllipsisContent, { component: "div", children: label });
617
540
  };
618
- const StyledTable = styled.table.withConfig({
619
- componentId: "sc-1q458rb-21"
620
- })(["width:100%;border-collapse:collapse;overflow:visible;table-layout:fixed;[data-mobile-layout='list'] &{@media (max-width:", "){border:none;table-layout:auto;}}"], ({
621
- theme
622
- }) => theme.breakpoint.sizes.md);
623
541
 
624
542
  export { Table };
625
543
  //# sourceMappingURL=index.js.map