@clickhouse/click-ui 0.8.0 → 0.9.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 (96) hide show
  1. package/dist/cjs/click-ui.css +362 -0
  2. package/dist/cjs/components/Assets/Icons/Horizontal-Loading.cjs +13 -49
  3. package/dist/cjs/components/Assets/Icons/Horizontal-Loading.cjs.map +1 -1
  4. package/dist/cjs/components/Assets/Icons/Loaders.css +94 -0
  5. package/dist/cjs/components/Assets/Icons/Loaders.module.css.cjs +13 -0
  6. package/dist/cjs/components/Assets/Icons/Loaders.module.css.cjs.map +1 -0
  7. package/dist/cjs/components/Assets/Icons/Loading-Animated.cjs +8 -12
  8. package/dist/cjs/components/Assets/Icons/Loading-Animated.cjs.map +1 -1
  9. package/dist/cjs/components/Assets/Icons/Loading.cjs +13 -6
  10. package/dist/cjs/components/Assets/Icons/Loading.cjs.map +1 -1
  11. package/dist/cjs/components/DatePicker/DateRangePicker.cjs +12 -2
  12. package/dist/cjs/components/DatePicker/DateRangePicker.cjs.map +1 -1
  13. package/dist/cjs/components/DatePicker/index.cjs +1 -3
  14. package/dist/cjs/components/DatePicker/index.cjs.map +1 -1
  15. package/dist/cjs/components/DatePicker/utils.cjs +3 -0
  16. package/dist/cjs/components/DatePicker/utils.cjs.map +1 -1
  17. package/dist/cjs/components/Grid/Cell.cjs +1 -3
  18. package/dist/cjs/components/Grid/Cell.cjs.map +1 -1
  19. package/dist/cjs/components/Grid/ColumnResizer.cjs +18 -15
  20. package/dist/cjs/components/Grid/ColumnResizer.cjs.map +1 -1
  21. package/dist/cjs/components/Grid/ColumnResizer.css +22 -0
  22. package/dist/cjs/components/Grid/ColumnResizer.module.css.cjs +11 -0
  23. package/dist/cjs/components/Grid/ColumnResizer.module.css.cjs.map +1 -0
  24. package/dist/cjs/components/Grid/Grid.css +34 -0
  25. package/dist/cjs/components/Grid/Grid.module.css.cjs +21 -0
  26. package/dist/cjs/components/Grid/Grid.module.css.cjs.map +1 -0
  27. package/dist/cjs/components/Grid/Header.cjs +22 -43
  28. package/dist/cjs/components/Grid/Header.cjs.map +1 -1
  29. package/dist/cjs/components/Grid/Header.css +44 -0
  30. package/dist/cjs/components/Grid/Header.module.css.cjs +19 -0
  31. package/dist/cjs/components/Grid/Header.module.css.cjs.map +1 -0
  32. package/dist/cjs/components/Grid/RowNumberColumn.cjs +12 -29
  33. package/dist/cjs/components/Grid/RowNumberColumn.cjs.map +1 -1
  34. package/dist/cjs/components/Grid/RowNumberColumn.css +22 -0
  35. package/dist/cjs/components/Grid/RowNumberColumn.module.css.cjs +12 -0
  36. package/dist/cjs/components/Grid/RowNumberColumn.module.css.cjs.map +1 -0
  37. package/dist/cjs/components/Grid/StyledCell.cjs +84 -56
  38. package/dist/cjs/components/Grid/StyledCell.cjs.map +1 -1
  39. package/dist/cjs/components/Grid/StyledCell.css +146 -0
  40. package/dist/cjs/components/Grid/StyledCell.module.css.cjs +47 -0
  41. package/dist/cjs/components/Grid/StyledCell.module.css.cjs.map +1 -0
  42. package/dist/cjs/components/Grid/index.cjs +30 -30
  43. package/dist/cjs/components/Grid/index.cjs.map +1 -1
  44. package/dist/esm/click-ui.css +362 -0
  45. package/dist/esm/components/Assets/Icons/Horizontal-Loading.js +13 -49
  46. package/dist/esm/components/Assets/Icons/Horizontal-Loading.js.map +1 -1
  47. package/dist/esm/components/Assets/Icons/Loaders.css +94 -0
  48. package/dist/esm/components/Assets/Icons/Loaders.module.css.js +8 -0
  49. package/dist/esm/components/Assets/Icons/Loaders.module.css.js.map +1 -0
  50. package/dist/esm/components/Assets/Icons/Loading-Animated.js +9 -13
  51. package/dist/esm/components/Assets/Icons/Loading-Animated.js.map +1 -1
  52. package/dist/esm/components/Assets/Icons/Loading.js +13 -6
  53. package/dist/esm/components/Assets/Icons/Loading.js.map +1 -1
  54. package/dist/esm/components/Assets/Icons/system/IconsLight.js +2 -2
  55. package/dist/esm/components/Assets/Icons/system/IconsLight.js.map +1 -1
  56. package/dist/esm/components/DatePicker/DateRangePicker.js +14 -4
  57. package/dist/esm/components/DatePicker/DateRangePicker.js.map +1 -1
  58. package/dist/esm/components/DatePicker/index.js +2 -4
  59. package/dist/esm/components/DatePicker/index.js.map +1 -1
  60. package/dist/esm/components/DatePicker/utils.js +3 -1
  61. package/dist/esm/components/DatePicker/utils.js.map +1 -1
  62. package/dist/esm/components/Grid/Cell.js +1 -3
  63. package/dist/esm/components/Grid/Cell.js.map +1 -1
  64. package/dist/esm/components/Grid/ColumnResizer.css +22 -0
  65. package/dist/esm/components/Grid/ColumnResizer.js +18 -15
  66. package/dist/esm/components/Grid/ColumnResizer.js.map +1 -1
  67. package/dist/esm/components/Grid/ColumnResizer.module.css.js +7 -0
  68. package/dist/esm/components/Grid/ColumnResizer.module.css.js.map +1 -0
  69. package/dist/esm/components/Grid/Grid.css +34 -0
  70. package/dist/esm/components/Grid/Grid.module.css.js +13 -0
  71. package/dist/esm/components/Grid/Grid.module.css.js.map +1 -0
  72. package/dist/esm/components/Grid/Header.css +44 -0
  73. package/dist/esm/components/Grid/Header.js +22 -43
  74. package/dist/esm/components/Grid/Header.js.map +1 -1
  75. package/dist/esm/components/Grid/Header.module.css.js +13 -0
  76. package/dist/esm/components/Grid/Header.module.css.js.map +1 -0
  77. package/dist/esm/components/Grid/RowNumberColumn.css +22 -0
  78. package/dist/esm/components/Grid/RowNumberColumn.js +12 -29
  79. package/dist/esm/components/Grid/RowNumberColumn.js.map +1 -1
  80. package/dist/esm/components/Grid/RowNumberColumn.module.css.js +8 -0
  81. package/dist/esm/components/Grid/RowNumberColumn.module.css.js.map +1 -0
  82. package/dist/esm/components/Grid/StyledCell.css +146 -0
  83. package/dist/esm/components/Grid/StyledCell.js +84 -56
  84. package/dist/esm/components/Grid/StyledCell.js.map +1 -1
  85. package/dist/esm/components/Grid/StyledCell.module.css.js +32 -0
  86. package/dist/esm/components/Grid/StyledCell.module.css.js.map +1 -0
  87. package/dist/esm/components/Grid/index.js +30 -30
  88. package/dist/esm/components/Grid/index.js.map +1 -1
  89. package/dist/types/components/Assets/Icons/Horizontal-Loading.d.ts +2 -3
  90. package/dist/types/components/Assets/Icons/Loading-Animated.d.ts +2 -3
  91. package/dist/types/components/Assets/Icons/Loading.d.ts +2 -4
  92. package/dist/types/components/DatePicker/DateRangePicker.d.ts +2 -1
  93. package/dist/types/components/DatePicker/utils.d.ts +1 -0
  94. package/dist/types/components/Grid/RowNumberColumn.d.ts +1 -2
  95. package/dist/types/components/Grid/StyledCell.d.ts +10 -5
  96. package/package.json +1 -1
@@ -1,66 +1,94 @@
1
- import { styled } from 'styled-components';
1
+ import "./StyledCell.css";
2
+ import { jsx } from 'react/jsx-runtime';
3
+ import { cn } from '../../lib/cva.js';
4
+ import styles from './StyledCell.module.css.js';
5
+ import { cva } from 'class-variance-authority';
2
6
 
3
- const StyledCell = styled.div.withConfig({
4
- componentId: "sc-30izhw-0"
5
- })(["display:block;text-align:left;&[data-align='right']{text-align:right;}overflow:hidden;text-overflow:ellipsis;white-space:nowrap;cursor:default;width:100%;box-sizing:border-box;", " ", ";"], ({
6
- theme,
7
+ const cellVariants = cva(styles.cell, {
8
+ variants: {
9
+ type: {
10
+ body: styles.cell_type_body,
11
+ header: styles.cell_type_header
12
+ },
13
+ selection: {
14
+ default: null,
15
+ selectDirect: styles["cell_selection_direct"],
16
+ selectIndirect: styles["cell_selection_indirect"]
17
+ },
18
+ noBorder: {
19
+ true: styles["cell_no-border"]
20
+ },
21
+ focused: {
22
+ true: styles.cell_focused
23
+ },
24
+ lastRow: {
25
+ true: styles["cell_last-row"]
26
+ },
27
+ lastColumn: {
28
+ true: styles["cell_last-column"]
29
+ },
30
+ rowAutoHeight: {
31
+ true: styles["cell_row-auto-height"]
32
+ },
33
+ overlay: {
34
+ true: styles.cell__overlay
35
+ },
36
+ overlayTop: {
37
+ true: styles["cell__overlay_selected_top"]
38
+ },
39
+ overlayLeft: {
40
+ true: styles["cell__overlay_selected_left"]
41
+ },
42
+ overlayBottom: {
43
+ true: styles["cell__overlay_selected_bottom"]
44
+ },
45
+ overlayRight: {
46
+ true: styles["cell__overlay_selected_right"]
47
+ },
48
+ overlayAutoHeight: {
49
+ true: styles["cell__overlay_row-auto-height"]
50
+ }
51
+ }
52
+ });
53
+ const StyledCell = ({
54
+ as,
7
55
  $isFocused,
56
+ $selectionType,
57
+ $isSelectedTop,
58
+ $isSelectedLeft,
8
59
  $isLastRow,
9
60
  $isLastColumn,
10
- $selectionType,
11
61
  $height,
12
62
  $type = "body",
13
63
  $showBorder,
14
- $rowAutoHeight
15
- }) => `
16
- height: ${$rowAutoHeight ? "100%" : `${$height}px`};
17
- min-height: ${$rowAutoHeight ? "auto" : ""};
18
- overflow-y: ${$rowAutoHeight ? "auto" : ""};
19
- background: ${theme.click.grid[$type].cell.color.background[$selectionType]};
20
- color: ${$type === "header" ? theme.click.grid.header.cell.color.title[$selectionType] : theme.click.grid.body.cell.color.text[$selectionType]};
21
- font: ${theme.click.grid.cell.text.default};
22
- padding: ${theme.click.grid[$type].cell.space.y} ${theme.click.grid[$type].cell.space.x};
23
- border: 1px solid ${theme.click.grid[$type].cell.color.stroke.default};
24
- ${$type === "header" && !$showBorder ? `
25
- &[data-grid-row="-1"] {
26
- border-top: none;
27
- }
28
- &[data-grid-column="-1"] {
29
- border-left: none;
30
- }
31
- ` : ""}
32
- ${$isFocused ? `box-shadow: inset 0 0 0 1px ${theme.click.grid[$type].cell.color.stroke.selectDirect};` : ""}
33
- ${$isLastRow ? `
34
- border-bottom-color: ${theme.click.grid[$type].cell.color.stroke[$isFocused ? "selectDirect" : $selectionType]};
35
- ` : "border-bottom: none;"}
36
- ${$isLastColumn ? `
37
- border-right-color: ${theme.click.grid[$type].cell.color.stroke[$isFocused ? "selectDirect" : $selectionType]};
38
- ` : "border-right: none;"}
39
- ${$rowAutoHeight && "border: none;"}
40
- `, ({
41
- theme,
42
- $isLastRow,
43
- $isLastColumn,
44
- $selectionType,
45
- $type = "body",
46
- $isSelectedTop,
47
- $isSelectedLeft,
48
- $rowAutoHeight
49
- }) => $isSelectedTop || $isSelectedLeft || $selectionType === "selectDirect" && ($isLastRow || $isLastColumn) || $rowAutoHeight ? `
50
- &::before {
51
- content: "";
52
- position: absolute;
53
- top: 0;
54
- bottom: 0;
55
- right: 0;
56
- left: 0;
57
- ${$isSelectedTop ? `border-top: 1px solid ${theme.click.grid[$type].cell.color.stroke.selectDirect};` : ""}
58
- ${$isSelectedLeft ? `border-left: 1px solid ${theme.click.grid[$type].cell.color.stroke.selectDirect};` : ""}
59
- ${$selectionType === "selectDirect" && $isLastRow ? `border-bottom: 1px solid ${theme.click.grid[$type].cell.color.stroke.selectDirect};` : ""}
60
- ${$selectionType === "selectDirect" && $isLastColumn ? `border-right: 1px solid ${theme.click.grid[$type].cell.color.stroke.selectDirect};` : ""}
61
- ${$rowAutoHeight && "border: none;"}
62
- }
63
- ` : "");
64
+ $rowAutoHeight,
65
+ className,
66
+ style,
67
+ children,
68
+ ...props
69
+ }) => {
70
+ const Component = as ?? "div";
71
+ const hasOverlay = $isSelectedTop || $isSelectedLeft || $selectionType === "selectDirect" && ($isLastRow || $isLastColumn) || !!$rowAutoHeight;
72
+ const mergedStyle = {
73
+ height: $rowAutoHeight ? "100%" : `${$height}px`,
74
+ ...style
75
+ };
76
+ return /* @__PURE__ */ jsx(Component, { className: cn(cellVariants({
77
+ type: $type,
78
+ selection: $selectionType,
79
+ noBorder: $type === "header" && !$showBorder,
80
+ focused: $isFocused,
81
+ lastRow: $isLastRow,
82
+ lastColumn: $isLastColumn,
83
+ rowAutoHeight: !!$rowAutoHeight,
84
+ overlay: hasOverlay,
85
+ overlayTop: $isSelectedTop,
86
+ overlayLeft: $isSelectedLeft,
87
+ overlayBottom: $selectionType === "selectDirect" && $isLastRow,
88
+ overlayRight: $selectionType === "selectDirect" && $isLastColumn,
89
+ overlayAutoHeight: !!$rowAutoHeight
90
+ }), className), style: mergedStyle, ...props, children });
91
+ };
64
92
 
65
93
  export { StyledCell };
66
94
  //# sourceMappingURL=StyledCell.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StyledCell.js","sources":["../../../../src/components/Grid/StyledCell.tsx"],"sourcesContent":["import { styled } from 'styled-components';\nimport { SelectionType } from './types';\n\nexport const StyledCell = styled.div<{\n $isFocused: boolean;\n $selectionType: SelectionType;\n $isSelectedTop: boolean;\n $isSelectedLeft: boolean;\n $isLastRow: boolean;\n $isLastColumn: boolean;\n $isFirstRow: boolean;\n $isFirstColumn: boolean;\n $height: number;\n $type?: 'body' | 'header';\n $showBorder: boolean;\n $rowAutoHeight?: boolean;\n}>`\n display: block;\n text-align: left;\n &[data-align='right'] {\n text-align: right;\n }\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n cursor: default;\n width: 100%;\n box-sizing: border-box;\n ${({\n theme,\n $isFocused,\n $isLastRow,\n $isLastColumn,\n $selectionType,\n $height,\n $type = 'body',\n $showBorder,\n $rowAutoHeight,\n }) => `\n height: ${$rowAutoHeight ? '100%' : `${$height}px`};\n min-height: ${$rowAutoHeight ? 'auto' : ''};\n overflow-y: ${$rowAutoHeight ? 'auto' : ''};\n background: ${theme.click.grid[$type].cell.color.background[$selectionType]};\n color: ${\n $type === 'header'\n ? theme.click.grid.header.cell.color.title[$selectionType]\n : theme.click.grid.body.cell.color.text[$selectionType]\n };\n font: ${theme.click.grid.cell.text.default};\n padding: ${theme.click.grid[$type].cell.space.y} ${\n theme.click.grid[$type].cell.space.x\n };\n border: 1px solid ${theme.click.grid[$type].cell.color.stroke.default};\n ${\n $type === 'header' && !$showBorder\n ? `\n &[data-grid-row=\"-1\"] {\n border-top: none;\n }\n &[data-grid-column=\"-1\"] {\n border-left: none;\n }\n `\n : ''\n }\n ${\n $isFocused\n ? `box-shadow: inset 0 0 0 1px ${theme.click.grid[$type].cell.color.stroke.selectDirect};`\n : ''\n }\n ${\n $isLastRow\n ? `\n border-bottom-color: ${\n theme.click.grid[$type].cell.color.stroke[\n $isFocused ? 'selectDirect' : $selectionType\n ]\n };\n `\n : 'border-bottom: none;'\n }\n ${\n $isLastColumn\n ? `\n border-right-color: ${\n theme.click.grid[$type].cell.color.stroke[\n $isFocused ? 'selectDirect' : $selectionType\n ]\n };\n `\n : 'border-right: none;'\n }\n ${$rowAutoHeight && 'border: none;'}\n `}\n ${({\n theme,\n $isLastRow,\n $isLastColumn,\n $selectionType,\n $type = 'body',\n $isSelectedTop,\n $isSelectedLeft,\n $rowAutoHeight,\n }) =>\n $isSelectedTop ||\n $isSelectedLeft ||\n ($selectionType === 'selectDirect' && ($isLastRow || $isLastColumn)) ||\n $rowAutoHeight\n ? `\n &::before {\n content: \"\";\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n left: 0;\n ${\n $isSelectedTop\n ? `border-top: 1px solid ${theme.click.grid[$type].cell.color.stroke.selectDirect};`\n : ''\n }\n ${\n $isSelectedLeft\n ? `border-left: 1px solid ${theme.click.grid[$type].cell.color.stroke.selectDirect};`\n : ''\n }\n ${\n $selectionType === 'selectDirect' && $isLastRow\n ? `border-bottom: 1px solid ${theme.click.grid[$type].cell.color.stroke.selectDirect};`\n : ''\n }\n ${\n $selectionType === 'selectDirect' && $isLastColumn\n ? `border-right: 1px solid ${theme.click.grid[$type].cell.color.stroke.selectDirect};`\n : ''\n }\n ${$rowAutoHeight && 'border: none;'}\n }\n `\n : ''};\n`;\n"],"names":["StyledCell","styled","div","withConfig","componentId","theme","$isFocused","$isLastRow","$isLastColumn","$selectionType","$height","$type","$showBorder","$rowAutoHeight","click","grid","cell","color","background","header","title","body","text","default","space","y","x","stroke","selectDirect","$isSelectedTop","$isSelectedLeft"],"mappings":"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"}
1
+ {"version":3,"file":"StyledCell.js","sources":["../../../../src/components/Grid/StyledCell.tsx"],"sourcesContent":["import { ComponentProps, CSSProperties, ElementType, ReactNode } from 'react';\nimport { cn, cva } from '@/lib/cva';\nimport styles from './StyledCell.module.css';\nimport { SelectionType } from './types';\n\ninterface StyledCellOwnProps {\n $isFocused: boolean;\n $selectionType: SelectionType;\n $isSelectedTop: boolean;\n $isSelectedLeft: boolean;\n $isLastRow: boolean;\n $isLastColumn: boolean;\n $height: number;\n $type?: 'body' | 'header';\n $showBorder: boolean;\n $rowAutoHeight?: boolean;\n}\n\nconst cellVariants = cva(styles.cell, {\n variants: {\n type: {\n body: styles.cell_type_body,\n header: styles.cell_type_header,\n },\n selection: {\n default: null,\n selectDirect: styles['cell_selection_direct'],\n selectIndirect: styles['cell_selection_indirect'],\n },\n noBorder: { true: styles['cell_no-border'] },\n focused: { true: styles.cell_focused },\n lastRow: { true: styles['cell_last-row'] },\n lastColumn: { true: styles['cell_last-column'] },\n rowAutoHeight: { true: styles['cell_row-auto-height'] },\n overlay: { true: styles.cell__overlay },\n overlayTop: { true: styles['cell__overlay_selected_top'] },\n overlayLeft: { true: styles['cell__overlay_selected_left'] },\n overlayBottom: { true: styles['cell__overlay_selected_bottom'] },\n overlayRight: { true: styles['cell__overlay_selected_right'] },\n overlayAutoHeight: { true: styles['cell__overlay_row-auto-height'] },\n },\n});\n\ntype StyledCellProps<T extends ElementType> = StyledCellOwnProps & {\n as?: T;\n children?: ReactNode;\n} & Omit<ComponentProps<T>, keyof StyledCellOwnProps | 'as' | 'children'>;\n\nexport const StyledCell = <T extends ElementType = 'div'>({\n as,\n $isFocused,\n $selectionType,\n $isSelectedTop,\n $isSelectedLeft,\n $isLastRow,\n $isLastColumn,\n $height,\n $type = 'body',\n $showBorder,\n $rowAutoHeight,\n className,\n style,\n children,\n ...props\n}: StyledCellProps<T>) => {\n const Component = (as ?? 'div') as ElementType;\n // A single overlay `::before` is drawn whenever any selection/focus edge or\n // auto-height needs to paint on top of the cell (see Grid.module.css).\n const hasOverlay =\n $isSelectedTop ||\n $isSelectedLeft ||\n ($selectionType === 'selectDirect' && ($isLastRow || $isLastColumn)) ||\n !!$rowAutoHeight;\n const mergedStyle = {\n height: $rowAutoHeight ? '100%' : `${$height}px`,\n ...style,\n } as CSSProperties;\n return (\n <Component\n className={cn(\n cellVariants({\n type: $type,\n selection: $selectionType,\n noBorder: $type === 'header' && !$showBorder,\n focused: $isFocused,\n lastRow: $isLastRow,\n lastColumn: $isLastColumn,\n rowAutoHeight: !!$rowAutoHeight,\n overlay: hasOverlay,\n overlayTop: $isSelectedTop,\n overlayLeft: $isSelectedLeft,\n overlayBottom: $selectionType === 'selectDirect' && $isLastRow,\n overlayRight: $selectionType === 'selectDirect' && $isLastColumn,\n overlayAutoHeight: !!$rowAutoHeight,\n }),\n className\n )}\n style={mergedStyle}\n {...props}\n >\n {children}\n </Component>\n );\n};\n"],"names":["cellVariants","cva","styles","cell","variants","type","body","cell_type_body","header","cell_type_header","selection","default","selectDirect","selectIndirect","noBorder","true","focused","cell_focused","lastRow","lastColumn","rowAutoHeight","overlay","cell__overlay","overlayTop","overlayLeft","overlayBottom","overlayRight","overlayAutoHeight","StyledCell","as","$isFocused","$selectionType","$isSelectedTop","$isSelectedLeft","$isLastRow","$isLastColumn","$height","$type","$showBorder","$rowAutoHeight","className","style","children","props","Component","hasOverlay","mergedStyle","height","cn"],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ const cell = "cell__OXAxg";
2
+ const cell_type_body = "cell_type_body__SohuF";
3
+ const cell_selection_indirect = "cell_selection_indirect__6e6yy";
4
+ const cell_selection_direct = "cell_selection_direct__QEL9m";
5
+ const cell_type_header = "cell_type_header__3tsr-";
6
+ const cell_focused = "cell_focused__cmh-b";
7
+ const cell__overlay = "cell__overlay__U9XGO";
8
+ const cell__overlay_selected_top = "cell__overlay_selected_top__OMUJB";
9
+ const cell__overlay_selected_left = "cell__overlay_selected_left__MiimG";
10
+ const cell__overlay_selected_bottom = "cell__overlay_selected_bottom__2ra9F";
11
+ const cell__overlay_selected_right = "cell__overlay_selected_right__Dt-g5";
12
+ const styles = {
13
+ cell: cell,
14
+ cell_type_body: cell_type_body,
15
+ cell_selection_indirect: cell_selection_indirect,
16
+ cell_selection_direct: cell_selection_direct,
17
+ cell_type_header: cell_type_header,
18
+ "cell_no-border": "cell_no-border__9gXDK",
19
+ cell_focused: cell_focused,
20
+ "cell_last-row": "cell_last-row__DoJdk",
21
+ "cell_last-column": "cell_last-column__LgKM7",
22
+ "cell_row-auto-height": "cell_row-auto-height__yzQUR",
23
+ cell__overlay: cell__overlay,
24
+ cell__overlay_selected_top: cell__overlay_selected_top,
25
+ cell__overlay_selected_left: cell__overlay_selected_left,
26
+ cell__overlay_selected_bottom: cell__overlay_selected_bottom,
27
+ cell__overlay_selected_right: cell__overlay_selected_right,
28
+ "cell__overlay_row-auto-height": "cell__overlay_row-auto-height__teKk1"
29
+ };
30
+
31
+ export { cell, cell__overlay, cell__overlay_selected_bottom, cell__overlay_selected_left, cell__overlay_selected_right, cell__overlay_selected_top, cell_focused, cell_selection_direct, cell_selection_indirect, cell_type_body, cell_type_header, styles as default };
32
+ //# sourceMappingURL=StyledCell.module.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StyledCell.module.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,10 +1,12 @@
1
+ import "./Grid.css";
1
2
  import { jsxs, jsx } from 'react/jsx-runtime';
2
3
  import { forwardRef, useState, useCallback, useRef, useMemo, useEffect } from 'react';
3
4
  import { VariableSizeGrid } from 'react-window';
4
5
  import AutoSizer from 'react-virtualized-auto-sizer';
5
6
  import RowNumberColumn from './RowNumberColumn.js';
6
7
  import Header from './Header.js';
7
- import { styled } from 'styled-components';
8
+ import { cn } from '../../lib/cva.js';
9
+ import styles from './Grid.module.css.js';
8
10
  import { useSelectionActions } from './useSelectionActions.js';
9
11
  import { mergeRefs } from '../../utils/mergeRefs.js';
10
12
  import { Cell } from './Cell.js';
@@ -13,13 +15,18 @@ import copyGridElements from './copyGridElements.js';
13
15
  import useColumns from './useColumns.js';
14
16
  import useResizingState from './useResizingState.js';
15
17
  import { ContextMenu } from '../ContextMenu/index.js';
18
+ import { cva } from 'class-variance-authority';
16
19
 
20
+ const gridVariants = cva(styles["grid"], {
21
+ variants: {
22
+ bordered: {
23
+ true: styles["grid_bordered"]
24
+ }
25
+ }
26
+ });
17
27
  const NO_BUTTONS_PRESSED = 0;
18
28
  const LEFT_BUTTON_PRESSED = 1;
19
29
  const RIGHT_BUTTON_PRESSED = 2;
20
- const GridContainer = styled.div.withConfig({
21
- componentId: "sc-175eneg-0"
22
- })(["display:flex;flex-direction:column-reverse;user-select:none;overflow-anchor:none;"]);
23
30
  const getRenderedCursor = (children) => children.reduce(([minRow, maxRow, minColumn, maxColumn], {
24
31
  props: {
25
32
  columnIndex,
@@ -40,28 +47,12 @@ const getRenderedCursor = (children) => children.reduce(([minRow, maxRow, minCol
40
47
  }
41
48
  return [minRow, maxRow, minColumn, maxColumn];
42
49
  }, [Number.POSITIVE_INFINITY, Number.NEGATIVE_INFINITY, Number.POSITIVE_INFINITY, Number.NEGATIVE_INFINITY]);
43
- const GridDataContainer = styled.div.withConfig({
44
- componentId: "sc-175eneg-1"
45
- })(["position:absolute;top:0;left:0;", ""], ({
46
- $top,
47
- $left
48
- }) => `
49
- margin-top: ${$top}px;
50
- margin-left: ${$left}px;
51
- `);
52
- const ContextMenuTrigger = styled.div.withConfig({
53
- componentId: "sc-175eneg-2"
54
- })(["outline:none;overflow:hidden;height:", ";width:100%;background:", ";border-radius:", ";", ";"], ({
55
- $height
56
- }) => $height ? `${$height}px` : "100%", ({
57
- theme
58
- }) => theme.click.grid.body.cell.color.background.default, ({
59
- theme,
60
- $rounded
61
- }) => theme.click.grid.radii[$rounded], ({
62
- $showBorder,
63
- theme
64
- }) => $showBorder && `border: 1px solid ${theme.click.grid.header.cell.color.stroke.default}`);
50
+ const roundedRadii = {
51
+ none: "var(--click-grid-radii-none)",
52
+ lg: "var(--click-grid-radii-lg)",
53
+ md: "var(--click-grid-radii-md)",
54
+ sm: "var(--click-grid-radii-sm)"
55
+ };
65
56
  const OuterElementType = forwardRef((props, ref) => /* @__PURE__ */ jsx("div", { ref, "data-testid": "grid-outer-element", tabIndex: 0, ...props }));
66
57
  const Grid = forwardRef(({
67
58
  autoFocus,
@@ -331,9 +322,12 @@ const Grid = forwardRef(({
331
322
  ...containerProps
332
323
  }, ref) => {
333
324
  const [minRow, maxRow, minColumn, maxColumn] = getRenderedCursor(children);
334
- return /* @__PURE__ */ jsxs(GridContainer, { ...containerProps, className: `sticky-grid__container grid-outer ${props.className ?? ""}`, children: [
335
- /* @__PURE__ */ jsx(GridDataContainer, { $top: showHeader ? headerHeight : 0, $left: showRowNumber ? rowNumberWidth : 0, ref, children }),
336
- showRowNumber && /* @__PURE__ */ jsx(RowNumberColumn, { scrolledHorizontal, minRow, maxRow, rowHeight, headerHeight, rowWidth: rowNumberWidth, rowCount, getSelectionType, showHeader, rowStart, showBorder, rowAutoHeight }),
325
+ return /* @__PURE__ */ jsxs("div", { ...containerProps, className: cn(styles["grid__inner"], `sticky-grid__container grid-outer ${props.className ?? ""}`), children: [
326
+ /* @__PURE__ */ jsx("div", { className: styles["grid__data"], style: {
327
+ "--grid-data-top": `${showHeader ? headerHeight : 0}px`,
328
+ "--grid-data-left": `${showRowNumber ? rowNumberWidth : 0}px`
329
+ }, ref, children }),
330
+ showRowNumber && /* @__PURE__ */ jsx(RowNumberColumn, { scrolledHorizontal, minRow, maxRow, rowHeight, headerHeight, rowWidth: rowNumberWidth, rowCount, getSelectionType, rowStart, showBorder, rowAutoHeight }),
337
331
  showHeader && /* @__PURE__ */ jsx(Header, { scrolledVertical, scrolledHorizontal, showRowNumber, minColumn, maxColumn, height: headerHeight, getColumnWidth: columnWidth, cell, rowNumberWidth, getSelectionType, columnCount, onColumnResize, getColumnHorizontalPosition, getResizerPosition, showBorder, resizingState })
338
332
  ] });
339
333
  });
@@ -587,8 +581,14 @@ const Grid = forwardRef(({
587
581
  gridRef.current.resetAfterRowIndex(0);
588
582
  }
589
583
  }, [rowCount, columnCount]);
584
+ const contextMenuTriggerHeight = autoHeight ? rowCount * rowHeight + (showHeader ? headerHeight : 0) + elementBorderRef.current.scrollBarHeight : void 0;
590
585
  return /* @__PURE__ */ jsxs(ContextMenu, { modal: false, onOpenChange: setContextMenuOpen, children: [
591
- /* @__PURE__ */ jsx(ContextMenuTrigger, { as: ContextMenu.Trigger, ref: mergeRefs([forwardedRef, containerRef]), tabIndex: 0, onMouseDown, onMouseMove, onKeyDown, onPointerDown, onPointerUp, onPointerLeave: setPointerCapture, onPointerEnter: setPointerCapture, onContextMenu, $rounded: rounded, $height: autoHeight ? rowCount * rowHeight + (showHeader ? headerHeight : 0) + elementBorderRef.current.scrollBarHeight : void 0, $showBorder: showBorder, children: /* @__PURE__ */ jsx(AutoSizer, { onResize, children: ({
586
+ /* @__PURE__ */ jsx(ContextMenu.Trigger, { className: gridVariants({
587
+ bordered: showBorder
588
+ }), style: {
589
+ "--grid-radius": roundedRadii[rounded],
590
+ "--grid-height": contextMenuTriggerHeight ? `${contextMenuTriggerHeight}px` : "100%"
591
+ }, ref: mergeRefs([forwardedRef, containerRef]), tabIndex: 0, onMouseDown, onMouseMove, onKeyDown, onPointerDown, onPointerUp, onPointerLeave: setPointerCapture, onPointerEnter: setPointerCapture, onContextMenu, children: /* @__PURE__ */ jsx(AutoSizer, { onResize, children: ({
592
592
  height,
593
593
  width
594
594
  }) => /* @__PURE__ */ jsx(VariableSizeGrid, { ref: forwardedGridRef ? mergeRefs([forwardedGridRef, gridRef]) : gridRef, height, width, columnCount, rowHeight: getRowHeight, useIsScrolling, innerElementType: InnerElementType, itemData: data, initialScrollTop: focus.row < rowStart ? focus.row * rowHeight : (focus.row - rowStart) * rowHeight, initialScrollLeft: getColumnHorizontalPosition(focus.column), columnWidth, rowCount, onScroll, outerRef, outerElementType: OuterElementType, onItemsRendered, ...props, children: CellWithWidth }) }) }),