@clickhouse/click-ui 0.8.0 → 0.9.1-rc1

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 (116) hide show
  1. package/dist/cjs/click-ui.css +366 -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/Common.cjs +1 -1
  12. package/dist/cjs/components/DatePicker/Common.cjs.map +1 -1
  13. package/dist/cjs/components/DatePicker/DateRangePicker.cjs +13 -3
  14. package/dist/cjs/components/DatePicker/DateRangePicker.cjs.map +1 -1
  15. package/dist/cjs/components/DatePicker/DateTimeRangePicker.cjs +17 -11
  16. package/dist/cjs/components/DatePicker/DateTimeRangePicker.cjs.map +1 -1
  17. package/dist/cjs/components/DatePicker/index.cjs +1 -3
  18. package/dist/cjs/components/DatePicker/index.cjs.map +1 -1
  19. package/dist/cjs/components/DatePicker/utils.cjs +26 -6
  20. package/dist/cjs/components/DatePicker/utils.cjs.map +1 -1
  21. package/dist/cjs/components/Grid/Cell.cjs +1 -3
  22. package/dist/cjs/components/Grid/Cell.cjs.map +1 -1
  23. package/dist/cjs/components/Grid/ColumnResizer.cjs +18 -15
  24. package/dist/cjs/components/Grid/ColumnResizer.cjs.map +1 -1
  25. package/dist/cjs/components/Grid/ColumnResizer.css +22 -0
  26. package/dist/cjs/components/Grid/ColumnResizer.module.css.cjs +11 -0
  27. package/dist/cjs/components/Grid/ColumnResizer.module.css.cjs.map +1 -0
  28. package/dist/cjs/components/Grid/Grid.css +34 -0
  29. package/dist/cjs/components/Grid/Grid.module.css.cjs +21 -0
  30. package/dist/cjs/components/Grid/Grid.module.css.cjs.map +1 -0
  31. package/dist/cjs/components/Grid/Header.cjs +22 -43
  32. package/dist/cjs/components/Grid/Header.cjs.map +1 -1
  33. package/dist/cjs/components/Grid/Header.css +44 -0
  34. package/dist/cjs/components/Grid/Header.module.css.cjs +19 -0
  35. package/dist/cjs/components/Grid/Header.module.css.cjs.map +1 -0
  36. package/dist/cjs/components/Grid/RowNumberColumn.cjs +12 -29
  37. package/dist/cjs/components/Grid/RowNumberColumn.cjs.map +1 -1
  38. package/dist/cjs/components/Grid/RowNumberColumn.css +22 -0
  39. package/dist/cjs/components/Grid/RowNumberColumn.module.css.cjs +12 -0
  40. package/dist/cjs/components/Grid/RowNumberColumn.module.css.cjs.map +1 -0
  41. package/dist/cjs/components/Grid/StyledCell.cjs +84 -56
  42. package/dist/cjs/components/Grid/StyledCell.cjs.map +1 -1
  43. package/dist/cjs/components/Grid/StyledCell.css +146 -0
  44. package/dist/cjs/components/Grid/StyledCell.module.css.cjs +47 -0
  45. package/dist/cjs/components/Grid/StyledCell.module.css.cjs.map +1 -0
  46. package/dist/cjs/components/Grid/index.cjs +30 -30
  47. package/dist/cjs/components/Grid/index.cjs.map +1 -1
  48. package/dist/cjs/components/Select/common/InternalSelect.cjs +91 -135
  49. package/dist/cjs/components/Select/common/InternalSelect.cjs.map +1 -1
  50. package/dist/cjs/components/Select/common/SelectComponents.css +4 -0
  51. package/dist/cjs/components/Select/common/SelectComponents.module.css.cjs +1 -0
  52. package/dist/cjs/components/Select/common/SelectComponents.module.css.cjs.map +1 -1
  53. package/dist/esm/click-ui.css +366 -0
  54. package/dist/esm/components/Assets/Icons/Horizontal-Loading.js +13 -49
  55. package/dist/esm/components/Assets/Icons/Horizontal-Loading.js.map +1 -1
  56. package/dist/esm/components/Assets/Icons/Loaders.css +94 -0
  57. package/dist/esm/components/Assets/Icons/Loaders.module.css.js +8 -0
  58. package/dist/esm/components/Assets/Icons/Loaders.module.css.js.map +1 -0
  59. package/dist/esm/components/Assets/Icons/Loading-Animated.js +9 -13
  60. package/dist/esm/components/Assets/Icons/Loading-Animated.js.map +1 -1
  61. package/dist/esm/components/Assets/Icons/Loading.js +13 -6
  62. package/dist/esm/components/Assets/Icons/Loading.js.map +1 -1
  63. package/dist/esm/components/Assets/Icons/system/IconsLight.js +2 -2
  64. package/dist/esm/components/Assets/Icons/system/IconsLight.js.map +1 -1
  65. package/dist/esm/components/DatePicker/Common.js +2 -2
  66. package/dist/esm/components/DatePicker/Common.js.map +1 -1
  67. package/dist/esm/components/DatePicker/DateRangePicker.js +15 -5
  68. package/dist/esm/components/DatePicker/DateRangePicker.js.map +1 -1
  69. package/dist/esm/components/DatePicker/DateTimeRangePicker.js +18 -12
  70. package/dist/esm/components/DatePicker/DateTimeRangePicker.js.map +1 -1
  71. package/dist/esm/components/DatePicker/index.js +2 -4
  72. package/dist/esm/components/DatePicker/index.js.map +1 -1
  73. package/dist/esm/components/DatePicker/utils.js +23 -5
  74. package/dist/esm/components/DatePicker/utils.js.map +1 -1
  75. package/dist/esm/components/Grid/Cell.js +1 -3
  76. package/dist/esm/components/Grid/Cell.js.map +1 -1
  77. package/dist/esm/components/Grid/ColumnResizer.css +22 -0
  78. package/dist/esm/components/Grid/ColumnResizer.js +18 -15
  79. package/dist/esm/components/Grid/ColumnResizer.js.map +1 -1
  80. package/dist/esm/components/Grid/ColumnResizer.module.css.js +7 -0
  81. package/dist/esm/components/Grid/ColumnResizer.module.css.js.map +1 -0
  82. package/dist/esm/components/Grid/Grid.css +34 -0
  83. package/dist/esm/components/Grid/Grid.module.css.js +13 -0
  84. package/dist/esm/components/Grid/Grid.module.css.js.map +1 -0
  85. package/dist/esm/components/Grid/Header.css +44 -0
  86. package/dist/esm/components/Grid/Header.js +22 -43
  87. package/dist/esm/components/Grid/Header.js.map +1 -1
  88. package/dist/esm/components/Grid/Header.module.css.js +13 -0
  89. package/dist/esm/components/Grid/Header.module.css.js.map +1 -0
  90. package/dist/esm/components/Grid/RowNumberColumn.css +22 -0
  91. package/dist/esm/components/Grid/RowNumberColumn.js +12 -29
  92. package/dist/esm/components/Grid/RowNumberColumn.js.map +1 -1
  93. package/dist/esm/components/Grid/RowNumberColumn.module.css.js +8 -0
  94. package/dist/esm/components/Grid/RowNumberColumn.module.css.js.map +1 -0
  95. package/dist/esm/components/Grid/StyledCell.css +146 -0
  96. package/dist/esm/components/Grid/StyledCell.js +84 -56
  97. package/dist/esm/components/Grid/StyledCell.js.map +1 -1
  98. package/dist/esm/components/Grid/StyledCell.module.css.js +32 -0
  99. package/dist/esm/components/Grid/StyledCell.module.css.js.map +1 -0
  100. package/dist/esm/components/Grid/index.js +30 -30
  101. package/dist/esm/components/Grid/index.js.map +1 -1
  102. package/dist/esm/components/Select/common/InternalSelect.js +92 -136
  103. package/dist/esm/components/Select/common/InternalSelect.js.map +1 -1
  104. package/dist/esm/components/Select/common/SelectComponents.css +4 -0
  105. package/dist/esm/components/Select/common/SelectComponents.module.css.js +1 -0
  106. package/dist/esm/components/Select/common/SelectComponents.module.css.js.map +1 -1
  107. package/dist/types/components/Assets/Icons/Horizontal-Loading.d.ts +2 -3
  108. package/dist/types/components/Assets/Icons/Loading-Animated.d.ts +2 -3
  109. package/dist/types/components/Assets/Icons/Loading.d.ts +2 -4
  110. package/dist/types/components/DatePicker/DateRangePicker.d.ts +2 -1
  111. package/dist/types/components/DatePicker/utils.d.ts +4 -2
  112. package/dist/types/components/Grid/RowNumberColumn.d.ts +1 -2
  113. package/dist/types/components/Grid/StyledCell.d.ts +10 -5
  114. package/dist/types/components/Select/common/index.d.ts +1 -1
  115. package/dist/types/components/Select/common/types.d.ts +0 -6
  116. package/package.json +1 -1
@@ -1,26 +1,24 @@
1
+ require("./ColumnResizer.css");
1
2
  'use strict';
2
3
 
3
4
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
4
5
 
5
6
  const jsxRuntime = require('react/jsx-runtime');
6
7
  const react = require('react');
7
- const styledComponents = require('styled-components');
8
+ const classVarianceAuthority = require('class-variance-authority');
9
+ require('clsx');
10
+ const ColumnResizer_module = require('./ColumnResizer.module.css.cjs');
8
11
  const lodashEs = require('lodash-es');
9
12
  const useResizingState = require('./useResizingState.cjs');
10
13
 
11
14
  const DOUBLE_CLICK_THRESHOLD_MSEC = 300;
12
- const ResizeSpan = styledComponents.styled.div.withConfig({
13
- componentId: "sc-1r6e5v3-0"
14
- })(["top:", ";left:", ";z-index:1;position:absolute;height:", "px;cursor:col-resize;width:4px;overflow:auto;&:hover,&:active,&:hover{background:", ";}", ""], useResizingState.initialPosition.top, useResizingState.initialPosition.left, ({
15
- $height
16
- }) => $height, ({
17
- theme
18
- }) => theme.click.grid.header.cell.color.stroke.selectDirect, ({
19
- $isPressed
20
- }) => $isPressed && `
21
- height: 100%;
22
- position: fixed;
23
- `);
15
+ const resizerVariants = classVarianceAuthority.cva(ColumnResizer_module.default["column-resizer"], {
16
+ variants: {
17
+ pressed: {
18
+ true: ColumnResizer_module.default["column-resizer_pressed"]
19
+ }
20
+ }
21
+ });
24
22
  const ColumnResizer = ({
25
23
  height,
26
24
  onColumnResize: onColumnResizeProp,
@@ -86,7 +84,9 @@ const ColumnResizer = ({
86
84
  pointer.width = Math.max(width, 50);
87
85
  }
88
86
  }, [pointer, isPressed, columnWidth, getResizerPosition, columnIndex, setPosition]);
89
- return /* @__PURE__ */ jsxRuntime.jsx(ResizeSpan, { ref: resizeRef, $height: height, $isPressed: isPressed, onPointerDown, onPointerUp: (e) => {
87
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { ref: resizeRef, className: resizerVariants({
88
+ pressed: isPressed
89
+ }), onPointerDown, onPointerUp: (e) => {
90
90
  e.preventDefault();
91
91
  e.stopPropagation();
92
92
  if (resizeRef.current && // 0 is a valid pointerId in Firefox
@@ -105,7 +105,10 @@ const ColumnResizer = ({
105
105
  setPosition(useResizingState.initialPosition);
106
106
  setPointer(null);
107
107
  setIsPressed(columnIndex, false);
108
- }, onClick: (e) => e.stopPropagation(), "data-resize": true, style: position });
108
+ }, onClick: (e) => e.stopPropagation(), "data-resize": true, style: {
109
+ "--column-resizer-height": `${height}px`,
110
+ ...position
111
+ } });
109
112
  };
110
113
 
111
114
  exports.default = ColumnResizer;
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnResizer.cjs","sources":["../../../../src/components/Grid/ColumnResizer.tsx"],"sourcesContent":["import { PointerEventHandler, useCallback, useEffect, useRef } from 'react';\nimport { styled } from 'styled-components';\nimport { ColumnResizeFn, GetResizerPositionFn } from './types';\nimport { throttle } from 'lodash-es';\nimport { initialPosition, ResizingState } from './useResizingState';\n\nconst DOUBLE_CLICK_THRESHOLD_MSEC = 300;\n\nconst ResizeSpan = styled.div<{ $height: number; $isPressed: boolean }>`\n top: ${initialPosition.top};\n left: ${initialPosition.left};\n z-index: 1;\n position: absolute;\n height: ${({ $height }) => $height}px;\n cursor: col-resize;\n width: 4px;\n overflow: auto;\n &:hover,\n &:active,\n &:hover {\n background: ${({ theme }) => theme.click.grid.header.cell.color.stroke.selectDirect};\n }\n ${({ $isPressed }) =>\n $isPressed &&\n `\n height: 100%;\n position: fixed;\n `}\n`;\n\ninterface Props {\n height: number;\n onColumnResize: ColumnResizeFn;\n columnIndex: number;\n getResizerPosition: GetResizerPositionFn;\n columnWidth: number;\n resizingState: ResizingState;\n}\n\nconst ColumnResizer = ({\n height,\n onColumnResize: onColumnResizeProp,\n columnIndex,\n getResizerPosition,\n columnWidth,\n resizingState,\n}: Props) => {\n const resizeRef = useRef<HTMLDivElement>(null);\n const {\n pointer,\n setPointer,\n getIsPressed,\n setIsPressed,\n getPosition,\n setPosition,\n lastPressedTimestamp,\n } = resizingState;\n const isPressed = getIsPressed(columnIndex);\n const position = getPosition(columnIndex);\n const onColumnResize = throttle(onColumnResizeProp, 1000);\n\n useEffect(() => {\n // Capture the pointer when pressed to ensure we receive move events outside the element.\n // Capturing must be properly handled when the component unmounts and mounts again,\n // based on its pressed state.\n const control = resizeRef.current;\n if (!isPressed || !control || !pointer) {\n return;\n }\n const pointerId = pointer.pointerId;\n try {\n control.setPointerCapture(pointerId);\n return () => {\n if (control.hasPointerCapture(pointerId)) {\n control.releasePointerCapture(pointerId);\n }\n };\n } catch (e) {\n console.error(e);\n }\n }, [pointer, isPressed, columnIndex]);\n\n /**\n * Handler for pointer down events to initiate resizing or auto-sizing on double-click.\n * @type {PointerEventHandler<HTMLDivElement>}\n */\n const onPointerDown: PointerEventHandler<HTMLDivElement> = useCallback(\n e => {\n e.stopPropagation();\n e.preventDefault();\n if (resizeRef.current) {\n // We cannot detect double-click with onDoubleClick event,\n // because this component might be unmounted before the second click and mounted again.\n // We keep track of the last click timestamp and check if it was a double-click.\n if (lastPressedTimestamp > Date.now() - DOUBLE_CLICK_THRESHOLD_MSEC) {\n // Auto-size the column on double click.\n onColumnResize(columnIndex, 0, 'auto');\n }\n setPointer({\n pointerId: e.pointerId,\n initialClientX: e.clientX,\n width: columnWidth,\n });\n setIsPressed(columnIndex, true);\n const pos = getResizerPosition(e.clientX, columnWidth, columnIndex);\n setPosition(pos);\n }\n },\n [\n lastPressedTimestamp,\n setPointer,\n columnWidth,\n setIsPressed,\n columnIndex,\n getResizerPosition,\n setPosition,\n onColumnResize,\n ]\n );\n\n /**\n * Handler for pointer move events to update the column width as the user drags.\n * @type {PointerEventHandler<HTMLDivElement>}\n */\n const onPointerMove: PointerEventHandler<HTMLDivElement> = useCallback(\n e => {\n e.stopPropagation();\n e.preventDefault();\n if (isPressed && pointer) {\n const width = columnWidth + (e.clientX - pointer.initialClientX);\n const pos = getResizerPosition(e.clientX, width, columnIndex);\n setPosition(pos);\n // Ensure minimum width of 50px\n pointer.width = Math.max(width, 50);\n }\n },\n [pointer, isPressed, columnWidth, getResizerPosition, columnIndex, setPosition]\n );\n\n return (\n <ResizeSpan\n ref={resizeRef}\n $height={height}\n $isPressed={isPressed}\n onPointerDown={onPointerDown}\n onPointerUp={e => {\n e.preventDefault();\n e.stopPropagation();\n if (\n resizeRef.current &&\n // 0 is a valid pointerId in Firefox\n (pointer?.pointerId || pointer?.pointerId === 0)\n ) {\n const shouldCallResize = e.clientX !== pointer.initialClientX;\n if (shouldCallResize) {\n onColumnResize(columnIndex, pointer.width, 'manual');\n }\n setPosition(initialPosition);\n setPointer(null);\n setIsPressed(columnIndex, false);\n }\n }}\n onPointerMove={onPointerMove}\n onPointerCancel={e => {\n e.preventDefault();\n e.stopPropagation();\n setPosition(initialPosition);\n setPointer(null);\n setIsPressed(columnIndex, false);\n }}\n onClick={e => e.stopPropagation()}\n data-resize\n style={position}\n />\n );\n};\n\nexport default ColumnResizer;\n"],"names":["DOUBLE_CLICK_THRESHOLD_MSEC","ResizeSpan","styled","div","withConfig","componentId","initialPosition","top","left","$height","theme","click","grid","header","cell","color","stroke","selectDirect","$isPressed","ColumnResizer","height","onColumnResize","onColumnResizeProp","columnIndex","getResizerPosition","columnWidth","resizingState","resizeRef","useRef","pointer","setPointer","getIsPressed","setIsPressed","getPosition","setPosition","lastPressedTimestamp","isPressed","position","throttle","useEffect","control","current","pointerId","setPointerCapture","hasPointerCapture","releasePointerCapture","e","console","error","onPointerDown","useCallback","stopPropagation","preventDefault","Date","now","initialClientX","clientX","width","pos","onPointerMove","Math","max","jsx","shouldCallResize"],"mappings":"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"}
1
+ {"version":3,"file":"ColumnResizer.cjs","sources":["../../../../src/components/Grid/ColumnResizer.tsx"],"sourcesContent":["import {\n CSSProperties,\n PointerEventHandler,\n useCallback,\n useEffect,\n useRef,\n} from 'react';\nimport { cva } from '@/lib/cva';\nimport styles from './ColumnResizer.module.css';\nimport { ColumnResizeFn, GetResizerPositionFn } from './types';\nimport { throttle } from 'lodash-es';\nimport { initialPosition, ResizingState } from './useResizingState';\n\nconst DOUBLE_CLICK_THRESHOLD_MSEC = 300;\n\nconst resizerVariants = cva(styles['column-resizer'], {\n variants: {\n pressed: { true: styles['column-resizer_pressed'] },\n },\n});\n\ninterface Props {\n height: number;\n onColumnResize: ColumnResizeFn;\n columnIndex: number;\n getResizerPosition: GetResizerPositionFn;\n columnWidth: number;\n resizingState: ResizingState;\n}\n\nconst ColumnResizer = ({\n height,\n onColumnResize: onColumnResizeProp,\n columnIndex,\n getResizerPosition,\n columnWidth,\n resizingState,\n}: Props) => {\n const resizeRef = useRef<HTMLDivElement>(null);\n const {\n pointer,\n setPointer,\n getIsPressed,\n setIsPressed,\n getPosition,\n setPosition,\n lastPressedTimestamp,\n } = resizingState;\n const isPressed = getIsPressed(columnIndex);\n const position = getPosition(columnIndex);\n const onColumnResize = throttle(onColumnResizeProp, 1000);\n\n useEffect(() => {\n // Capture the pointer when pressed to ensure we receive move events outside the element.\n // Capturing must be properly handled when the component unmounts and mounts again,\n // based on its pressed state.\n const control = resizeRef.current;\n if (!isPressed || !control || !pointer) {\n return;\n }\n const pointerId = pointer.pointerId;\n try {\n control.setPointerCapture(pointerId);\n return () => {\n if (control.hasPointerCapture(pointerId)) {\n control.releasePointerCapture(pointerId);\n }\n };\n } catch (e) {\n console.error(e);\n }\n }, [pointer, isPressed, columnIndex]);\n\n /**\n * Handler for pointer down events to initiate resizing or auto-sizing on double-click.\n * @type {PointerEventHandler<HTMLDivElement>}\n */\n const onPointerDown: PointerEventHandler<HTMLDivElement> = useCallback(\n e => {\n e.stopPropagation();\n e.preventDefault();\n if (resizeRef.current) {\n // We cannot detect double-click with onDoubleClick event,\n // because this component might be unmounted before the second click and mounted again.\n // We keep track of the last click timestamp and check if it was a double-click.\n if (lastPressedTimestamp > Date.now() - DOUBLE_CLICK_THRESHOLD_MSEC) {\n // Auto-size the column on double click.\n onColumnResize(columnIndex, 0, 'auto');\n }\n setPointer({\n pointerId: e.pointerId,\n initialClientX: e.clientX,\n width: columnWidth,\n });\n setIsPressed(columnIndex, true);\n const pos = getResizerPosition(e.clientX, columnWidth, columnIndex);\n setPosition(pos);\n }\n },\n [\n lastPressedTimestamp,\n setPointer,\n columnWidth,\n setIsPressed,\n columnIndex,\n getResizerPosition,\n setPosition,\n onColumnResize,\n ]\n );\n\n /**\n * Handler for pointer move events to update the column width as the user drags.\n * @type {PointerEventHandler<HTMLDivElement>}\n */\n const onPointerMove: PointerEventHandler<HTMLDivElement> = useCallback(\n e => {\n e.stopPropagation();\n e.preventDefault();\n if (isPressed && pointer) {\n const width = columnWidth + (e.clientX - pointer.initialClientX);\n const pos = getResizerPosition(e.clientX, width, columnIndex);\n setPosition(pos);\n // Ensure minimum width of 50px\n pointer.width = Math.max(width, 50);\n }\n },\n [pointer, isPressed, columnWidth, getResizerPosition, columnIndex, setPosition]\n );\n\n return (\n <div\n ref={resizeRef}\n className={resizerVariants({ pressed: isPressed })}\n onPointerDown={onPointerDown}\n onPointerUp={e => {\n e.preventDefault();\n e.stopPropagation();\n if (\n resizeRef.current &&\n // 0 is a valid pointerId in Firefox\n (pointer?.pointerId || pointer?.pointerId === 0)\n ) {\n const shouldCallResize = e.clientX !== pointer.initialClientX;\n if (shouldCallResize) {\n onColumnResize(columnIndex, pointer.width, 'manual');\n }\n setPosition(initialPosition);\n setPointer(null);\n setIsPressed(columnIndex, false);\n }\n }}\n onPointerMove={onPointerMove}\n onPointerCancel={e => {\n e.preventDefault();\n e.stopPropagation();\n setPosition(initialPosition);\n setPointer(null);\n setIsPressed(columnIndex, false);\n }}\n onClick={e => e.stopPropagation()}\n data-resize\n style={\n {\n '--column-resizer-height': `${height}px`,\n ...position,\n } as CSSProperties\n }\n />\n );\n};\n\nexport default ColumnResizer;\n"],"names":["DOUBLE_CLICK_THRESHOLD_MSEC","resizerVariants","cva","styles","variants","pressed","true","ColumnResizer","height","onColumnResize","onColumnResizeProp","columnIndex","getResizerPosition","columnWidth","resizingState","resizeRef","useRef","pointer","setPointer","getIsPressed","setIsPressed","getPosition","setPosition","lastPressedTimestamp","isPressed","position","throttle","useEffect","control","current","pointerId","setPointerCapture","hasPointerCapture","releasePointerCapture","e","console","error","onPointerDown","useCallback","stopPropagation","preventDefault","Date","now","initialClientX","clientX","width","pos","onPointerMove","Math","max","jsx","shouldCallResize","initialPosition"],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ /* stylelint-disable custom-property-pattern -- design tokens use camelCase (e.g. selectDirect) */
2
+
3
+ .column-resizer__8f12T {
4
+ position: absolute;
5
+ z-index: 1;
6
+ top: 0;
7
+ left: calc(100% - 4px);
8
+ width: 4px;
9
+ height: var(--column-resizer-height);
10
+ overflow: auto;
11
+ cursor: col-resize;
12
+ }
13
+
14
+ .column-resizer__8f12T:hover,
15
+ .column-resizer__8f12T:active {
16
+ background: var(--click-grid-header-cell-color-stroke-selectDirect);
17
+ }
18
+
19
+ .column-resizer_pressed__JGAln {
20
+ position: fixed;
21
+ height: 100%;
22
+ }
@@ -0,0 +1,11 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
4
+
5
+ const styles = {
6
+ "column-resizer": "column-resizer__8f12T",
7
+ "column-resizer_pressed": "column-resizer_pressed__JGAln"
8
+ };
9
+
10
+ exports.default = styles;
11
+ //# sourceMappingURL=ColumnResizer.module.css.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColumnResizer.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
@@ -0,0 +1,34 @@
1
+ /*
2
+ * `.grid` is the Grid's outer container. It is rendered as the ContextMenu.Trigger
3
+ * (the root element the whole grid mounts into), which is why the trigger carries
4
+ * the grid's own box styling rather than a context-menu-specific class.
5
+ */
6
+ .grid__h49fk {
7
+ width: 100%;
8
+ height: var(--grid-height, 100%);
9
+ overflow: hidden;
10
+ border-radius: var(--grid-radius);
11
+ background: var(--click-grid-body-cell-color-background-default);
12
+ outline: none;
13
+ }
14
+
15
+ .grid_bordered__kFqF5 {
16
+ border: 1px solid var(--click-grid-header-cell-color-stroke-default);
17
+ }
18
+
19
+ /* react-window's inner element that lays out the scrolling cell grid */
20
+ .grid__inner__IZhj9 {
21
+ display: flex;
22
+ flex-direction: column-reverse;
23
+ /* stylelint-disable-next-line plugin/no-unsupported-browser-features -- the original styled rule used overflow-anchor */
24
+ overflow-anchor: none;
25
+ user-select: none;
26
+ }
27
+
28
+ .grid__data__Mn4TK {
29
+ position: absolute;
30
+ top: 0;
31
+ left: 0;
32
+ margin-top: var(--grid-data-top, 0);
33
+ margin-left: var(--grid-data-left, 0);
34
+ }
@@ -0,0 +1,21 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
4
+
5
+ const grid = "grid__h49fk";
6
+ const grid_bordered = "grid_bordered__kFqF5";
7
+ const grid__inner = "grid__inner__IZhj9";
8
+ const grid__data = "grid__data__Mn4TK";
9
+ const styles = {
10
+ grid: grid,
11
+ grid_bordered: grid_bordered,
12
+ grid__inner: grid__inner,
13
+ grid__data: grid__data
14
+ };
15
+
16
+ exports.default = styles;
17
+ exports.grid = grid;
18
+ exports.grid__data = grid__data;
19
+ exports.grid__inner = grid__inner;
20
+ exports.grid_bordered = grid_bordered;
21
+ //# sourceMappingURL=Grid.module.css.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Grid.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;"}
@@ -1,54 +1,21 @@
1
+ require("./Header.css");
1
2
  'use strict';
2
3
 
3
4
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
4
5
 
5
6
  const jsxRuntime = require('react/jsx-runtime');
6
- const styledComponents = require('styled-components');
7
+ const cva = require('../../lib/cva.cjs');
8
+ const Header_module = require('./Header.module.css.cjs');
7
9
  const StyledCell = require('./StyledCell.cjs');
8
10
  const ColumnResizer = require('./ColumnResizer.cjs');
9
11
 
10
- const HeaderContainer = styledComponents.styled.div.withConfig({
11
- componentId: "sc-1oadqc8-0"
12
- })(["position:sticky;top:0;left:0;display:flex;flex-direction:row;height:", "px;", ""], ({
13
- $height
14
- }) => $height, ({
15
- $scrolledVertical,
16
- theme
17
- }) => $scrolledVertical ? `box-shadow: 0px 0 0px 1px ${theme.click.grid.header.cell.color.stroke.default};` : "");
18
- const ScrollableHeaderContainer = styledComponents.styled.div.withConfig({
19
- componentId: "sc-1oadqc8-1"
20
- })(["position:relative;left:", "px;"], ({
21
- $left
22
- }) => $left);
23
- const HeaderCellContainer = styledComponents.styled.div.withConfig({
24
- componentId: "sc-1oadqc8-2"
25
- })(["position:absolute;display:flex;width:", ";height:", "px;left:", "px;&:hover [data-resize]{background:", ";}"], ({
26
- $width
27
- }) => typeof $width === "string" ? $width : `${$width}px`, ({
28
- $height
29
- }) => $height, ({
30
- $columnPosition
31
- }) => $columnPosition, ({
32
- theme
33
- }) => theme.click.grid.header.cell.color.stroke.selectDirect);
34
- const RowColumnContainer = styledComponents.styled(HeaderCellContainer).withConfig({
35
- componentId: "sc-1oadqc8-3"
36
- })(["position:sticky;top:0;left:0;width:", ";text-align:right;", ""], ({
37
- $width
38
- }) => typeof $width === "string" ? $width : `${$width}px`, ({
39
- $scrolledHorizontal,
40
- theme
41
- }) => $scrolledHorizontal ? `box-shadow: 0px 0 0px 1px ${theme.click.grid.header.cell.color.stroke.default};` : "");
42
- const RowColumn = styledComponents.styled(StyledCell.StyledCell).withConfig({
43
- componentId: "sc-1oadqc8-4"
44
- })(["width:100%;text-align:right;overflow:hidden;"]);
12
+ const toCssSize = ($width) => typeof $width === "string" ? $width : `${$width}px`;
45
13
  const Column = ({
46
14
  columnIndex,
47
15
  cell,
48
16
  getColumnWidth,
49
17
  getColumnHorizontalPosition,
50
18
  getSelectionType,
51
- isFirstColumn,
52
19
  isLastColumn,
53
20
  onColumnResize,
54
21
  height,
@@ -68,8 +35,12 @@ const Column = ({
68
35
  const isSelected = selectionType === "selectDirect";
69
36
  const isSelectedLeft = (leftSelectionType === "selectDirect" || isSelected) && leftSelectionType !== selectionType;
70
37
  const columnWidth = getColumnWidth(columnIndex);
71
- return /* @__PURE__ */ jsxRuntime.jsxs(HeaderCellContainer, { $width: columnWidth, $columnPosition: columnPosition, $height: height, "data-header": columnIndex, children: [
72
- /* @__PURE__ */ jsxRuntime.jsx(StyledCell.StyledCell, { $type: "header", as: cell, columnIndex, type: "header-cell", $isFirstColumn: isFirstColumn, $selectionType: selectionType, $isLastColumn: isLastColumn, $isFocused: false, $isSelectedLeft: isSelectedLeft, $isSelectedTop: isSelected, $isLastRow: false, $isFirstRow: true, $height: height, "data-grid-row": -1, "data-grid-column": columnIndex, "data-selected": isSelected, $showBorder: showBorder, width: columnWidth }),
38
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: Header_module.default["header__cell"], style: {
39
+ "--header-cell-width": toCssSize(columnWidth),
40
+ "--header-cell-height": `${height}px`,
41
+ "--header-cell-left": `${columnPosition}px`
42
+ }, "data-header": columnIndex, children: [
43
+ /* @__PURE__ */ jsxRuntime.jsx(StyledCell.StyledCell, { $type: "header", as: cell, columnIndex, type: "header-cell", $selectionType: selectionType, $isLastColumn: isLastColumn, $isFocused: false, $isSelectedLeft: isSelectedLeft, $isSelectedTop: isSelected, $isLastRow: false, $height: height, "data-grid-row": -1, "data-grid-column": columnIndex, "data-selected": isSelected, $showBorder: showBorder, width: columnWidth }),
73
44
  /* @__PURE__ */ jsxRuntime.jsx(ColumnResizer.default, { height, onColumnResize, columnIndex, getResizerPosition, columnWidth, resizingState })
74
45
  ] });
75
46
  };
@@ -94,11 +65,19 @@ const Header = ({
94
65
  const selectedAllType = getSelectionType({
95
66
  type: "all"
96
67
  });
97
- return /* @__PURE__ */ jsxRuntime.jsxs(HeaderContainer, { $height: height, $scrolledVertical: scrolledVertical, children: [
98
- /* @__PURE__ */ jsxRuntime.jsx(ScrollableHeaderContainer, { $left: rowNumberWidth, children: Array.from({
68
+ return /* @__PURE__ */ jsxRuntime.jsxs("div", { className: cva.cn(Header_module.default["header"], scrolledVertical && Header_module.default["header_scrolled-vertical"]), style: {
69
+ "--header-height": `${height}px`
70
+ }, children: [
71
+ /* @__PURE__ */ jsxRuntime.jsx("div", { className: Header_module.default["header__scroll-area"], style: {
72
+ "--header-scroll-area-left": `${rowNumberWidth}px`
73
+ }, children: Array.from({
99
74
  length: maxColumn - minColumn + 1
100
- }, (_, index) => minColumn + index).map((columnIndex) => /* @__PURE__ */ jsxRuntime.jsx(Column, { getSelectionType, columnIndex, getColumnWidth, getColumnHorizontalPosition, cell, isFirstColumn: columnIndex === 0 && !showRowNumber, isLastColumn: columnIndex + 1 === columnCount, onColumnResize, height, getResizerPosition, showBorder, resizingState }, `header-${columnIndex}`)) }),
101
- showRowNumber && /* @__PURE__ */ jsxRuntime.jsx(RowColumnContainer, { $width: rowNumberWidth, $height: height, $columnPosition: 0, $scrolledHorizontal: scrolledHorizontal, children: /* @__PURE__ */ jsxRuntime.jsx(RowColumn, { "data-selected": selectedAllType === "selectDirect", $type: "header", $isFirstRow: true, $isFirstColumn: true, $selectionType: selectedAllType, $isLastRow: false, $isLastColumn: false, $height: height, $isFocused: false, $isSelectedLeft: false, $isSelectedTop: false, "data-grid-row": -1, "data-grid-column": -1, $showBorder: showBorder, children: "#" }) })
75
+ }, (_, index) => minColumn + index).map((columnIndex) => /* @__PURE__ */ jsxRuntime.jsx(Column, { getSelectionType, columnIndex, getColumnWidth, getColumnHorizontalPosition, cell, isLastColumn: columnIndex + 1 === columnCount, onColumnResize, height, getResizerPosition, showBorder, resizingState }, `header-${columnIndex}`)) }),
76
+ showRowNumber && /* @__PURE__ */ jsxRuntime.jsx("div", { className: cva.cn(Header_module.default["header__cell"], Header_module.default["header__row-column"], scrolledHorizontal && Header_module.default["header__row-column_scrolled-horizontal"]), style: {
77
+ "--header-cell-width": toCssSize(rowNumberWidth),
78
+ "--header-cell-height": `${height}px`,
79
+ "--header-cell-left": "0px"
80
+ }, children: /* @__PURE__ */ jsxRuntime.jsx(StyledCell.StyledCell, { "data-align": "right", "data-selected": selectedAllType === "selectDirect", $type: "header", $selectionType: selectedAllType, $isLastRow: false, $isLastColumn: false, $height: height, $isFocused: false, $isSelectedLeft: false, $isSelectedTop: false, "data-grid-row": -1, "data-grid-column": -1, $showBorder: showBorder, children: "#" }) })
102
81
  ] });
103
82
  };
104
83
 
@@ -1 +1 @@
1
- {"version":3,"file":"Header.cjs","sources":["../../../../src/components/Grid/Header.tsx"],"sourcesContent":["import { styled } from 'styled-components';\nimport {\n CellProps,\n ColumnResizeFn,\n GetResizerPositionFn,\n SelectionTypeFn,\n} from './types';\nimport { StyledCell } from './StyledCell';\nimport ColumnResizer from './ColumnResizer';\nimport { ResizingState } from './useResizingState';\n\ninterface HeaderProps {\n showRowNumber: boolean;\n rowNumberWidth: number;\n minColumn: number;\n maxColumn: number;\n height: number;\n getColumnWidth: (index: number) => number;\n cell: CellProps;\n getSelectionType: SelectionTypeFn;\n columnCount: number;\n onColumnResize: ColumnResizeFn;\n getColumnHorizontalPosition: (columnIndex: number) => number;\n scrolledVertical: boolean;\n getResizerPosition: GetResizerPositionFn;\n showBorder: boolean;\n scrolledHorizontal: boolean;\n resizingState: ResizingState;\n}\n\nconst HeaderContainer = styled.div<{ $height: number; $scrolledVertical: boolean }>`\n position: sticky;\n top: 0;\n left: 0;\n display: flex;\n flex-direction: row;\n height: ${({ $height }) => $height}px;\n ${({ $scrolledVertical, theme }) =>\n $scrolledVertical\n ? `box-shadow: 0px 0 0px 1px ${theme.click.grid.header.cell.color.stroke.default};`\n : ''}\n`;\n\nconst ScrollableHeaderContainer = styled.div<{\n $left: number;\n}>`\n position: relative;\n left: ${({ $left }) => $left}px;\n`;\n\ninterface ColumnProps extends Pick<\n HeaderProps,\n | 'cell'\n | 'getSelectionType'\n | 'onColumnResize'\n | 'getColumnWidth'\n | 'height'\n | 'getResizerPosition'\n | 'showBorder'\n | 'getColumnHorizontalPosition'\n | 'resizingState'\n> {\n columnIndex: number;\n isFirstColumn: boolean;\n isLastColumn: boolean;\n}\n\nconst HeaderCellContainer = styled.div<{\n $width: string | number;\n $height: number;\n $columnPosition: number;\n}>`\n position: absolute;\n display: flex;\n width: ${({ $width }) => (typeof $width === 'string' ? $width : `${$width}px`)};\n height: ${({ $height }) => $height}px;\n left: ${({ $columnPosition }) => $columnPosition}px;\n &:hover [data-resize] {\n background: ${({ theme }) => theme.click.grid.header.cell.color.stroke.selectDirect};\n }\n`;\n\nconst RowColumnContainer = styled(HeaderCellContainer)<{\n $width: string | number;\n $scrolledHorizontal: boolean;\n}>`\n position: sticky;\n top: 0;\n left: 0;\n width: ${({ $width }) => (typeof $width === 'string' ? $width : `${$width}px`)};\n text-align: right;\n ${({ $scrolledHorizontal, theme }) =>\n $scrolledHorizontal\n ? `box-shadow: 0px 0 0px 1px ${theme.click.grid.header.cell.color.stroke.default};`\n : ''}\n`;\n\nconst RowColumn = styled(StyledCell)`\n width: 100%;\n text-align: right;\n overflow: hidden;\n`;\n\nconst Column = ({\n columnIndex,\n cell,\n getColumnWidth,\n getColumnHorizontalPosition,\n getSelectionType,\n isFirstColumn,\n isLastColumn,\n onColumnResize,\n height,\n getResizerPosition,\n showBorder,\n resizingState,\n}: ColumnProps) => {\n const selectionType = getSelectionType({\n column: columnIndex,\n type: 'column',\n });\n const leftSelectionType = getSelectionType({\n column: columnIndex - 1,\n type: 'column',\n });\n const columnPosition = getColumnHorizontalPosition(columnIndex);\n\n const isSelected = selectionType === 'selectDirect';\n const isSelectedLeft =\n (leftSelectionType === 'selectDirect' || isSelected) &&\n leftSelectionType !== selectionType;\n\n const columnWidth = getColumnWidth(columnIndex);\n return (\n <HeaderCellContainer\n $width={columnWidth}\n $columnPosition={columnPosition}\n $height={height}\n data-header={columnIndex}\n >\n <StyledCell\n $type=\"header\"\n as={cell}\n columnIndex={columnIndex}\n type=\"header-cell\"\n $isFirstColumn={isFirstColumn}\n $selectionType={selectionType}\n $isLastColumn={isLastColumn}\n $isFocused={false}\n $isSelectedLeft={isSelectedLeft}\n $isSelectedTop={isSelected}\n $isLastRow={false}\n $isFirstRow\n $height={height}\n data-grid-row={-1}\n data-grid-column={columnIndex}\n data-selected={isSelected}\n $showBorder={showBorder}\n width={columnWidth}\n />\n <ColumnResizer\n height={height}\n onColumnResize={onColumnResize}\n columnIndex={columnIndex}\n getResizerPosition={getResizerPosition}\n columnWidth={columnWidth}\n resizingState={resizingState}\n />\n </HeaderCellContainer>\n );\n};\n\nconst Header = ({\n scrolledVertical,\n scrolledHorizontal,\n showRowNumber,\n rowNumberWidth,\n minColumn,\n maxColumn,\n height,\n getColumnWidth,\n cell,\n columnCount,\n getSelectionType,\n onColumnResize,\n getColumnHorizontalPosition,\n getResizerPosition,\n showBorder,\n resizingState,\n}: HeaderProps) => {\n const selectedAllType = getSelectionType({\n type: 'all',\n });\n return (\n <HeaderContainer\n $height={height}\n $scrolledVertical={scrolledVertical}\n >\n <ScrollableHeaderContainer $left={rowNumberWidth}>\n {Array.from(\n { length: maxColumn - minColumn + 1 },\n (_, index) => minColumn + index\n ).map(columnIndex => (\n <Column\n key={`header-${columnIndex}`}\n getSelectionType={getSelectionType}\n columnIndex={columnIndex}\n getColumnWidth={getColumnWidth}\n getColumnHorizontalPosition={getColumnHorizontalPosition}\n cell={cell}\n isFirstColumn={columnIndex === 0 && !showRowNumber}\n isLastColumn={columnIndex + 1 === columnCount}\n onColumnResize={onColumnResize}\n height={height}\n getResizerPosition={getResizerPosition}\n showBorder={showBorder}\n resizingState={resizingState}\n />\n ))}\n </ScrollableHeaderContainer>\n {showRowNumber && (\n <RowColumnContainer\n $width={rowNumberWidth}\n $height={height}\n $columnPosition={0}\n $scrolledHorizontal={scrolledHorizontal}\n >\n <RowColumn\n data-selected={selectedAllType === 'selectDirect'}\n $type=\"header\"\n $isFirstRow\n $isFirstColumn\n $selectionType={selectedAllType}\n $isLastRow={false}\n $isLastColumn={false}\n $height={height}\n $isFocused={false}\n $isSelectedLeft={false}\n $isSelectedTop={false}\n data-grid-row={-1}\n data-grid-column={-1}\n $showBorder={showBorder}\n >\n #\n </RowColumn>\n </RowColumnContainer>\n )}\n </HeaderContainer>\n );\n};\n\nexport default Header;\n"],"names":["HeaderContainer","styled","div","withConfig","componentId","$height","$scrolledVertical","theme","click","grid","header","cell","color","stroke","default","ScrollableHeaderContainer","$left","HeaderCellContainer","$width","$columnPosition","selectDirect","RowColumnContainer","$scrolledHorizontal","RowColumn","StyledCell","Column","columnIndex","getColumnWidth","getColumnHorizontalPosition","getSelectionType","isFirstColumn","isLastColumn","onColumnResize","height","getResizerPosition","showBorder","resizingState","selectionType","column","type","leftSelectionType","columnPosition","isSelected","isSelectedLeft","columnWidth","jsxs","jsx","ColumnResizer","Header","scrolledVertical","scrolledHorizontal","showRowNumber","rowNumberWidth","minColumn","maxColumn","columnCount","selectedAllType","Array","from","length","_","index","map"],"mappings":"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"}
1
+ {"version":3,"file":"Header.cjs","sources":["../../../../src/components/Grid/Header.tsx"],"sourcesContent":["import { CSSProperties } from 'react';\nimport { cn } from '@/lib/cva';\nimport styles from './Header.module.css';\nimport {\n CellProps,\n ColumnResizeFn,\n GetResizerPositionFn,\n SelectionTypeFn,\n} from './types';\nimport { StyledCell } from './StyledCell';\nimport ColumnResizer from './ColumnResizer';\nimport { ResizingState } from './useResizingState';\n\ninterface HeaderProps {\n showRowNumber: boolean;\n rowNumberWidth: number;\n minColumn: number;\n maxColumn: number;\n height: number;\n getColumnWidth: (index: number) => number;\n cell: CellProps;\n getSelectionType: SelectionTypeFn;\n columnCount: number;\n onColumnResize: ColumnResizeFn;\n getColumnHorizontalPosition: (columnIndex: number) => number;\n scrolledVertical: boolean;\n getResizerPosition: GetResizerPositionFn;\n showBorder: boolean;\n scrolledHorizontal: boolean;\n resizingState: ResizingState;\n}\n\ninterface ColumnProps extends Pick<\n HeaderProps,\n | 'cell'\n | 'getSelectionType'\n | 'onColumnResize'\n | 'getColumnWidth'\n | 'height'\n | 'getResizerPosition'\n | 'showBorder'\n | 'getColumnHorizontalPosition'\n | 'resizingState'\n> {\n columnIndex: number;\n isLastColumn: boolean;\n}\n\nconst toCssSize = ($width: string | number): string =>\n typeof $width === 'string' ? $width : `${$width}px`;\n\nconst Column = ({\n columnIndex,\n cell,\n getColumnWidth,\n getColumnHorizontalPosition,\n getSelectionType,\n isLastColumn,\n onColumnResize,\n height,\n getResizerPosition,\n showBorder,\n resizingState,\n}: ColumnProps) => {\n const selectionType = getSelectionType({\n column: columnIndex,\n type: 'column',\n });\n const leftSelectionType = getSelectionType({\n column: columnIndex - 1,\n type: 'column',\n });\n const columnPosition = getColumnHorizontalPosition(columnIndex);\n\n const isSelected = selectionType === 'selectDirect';\n const isSelectedLeft =\n (leftSelectionType === 'selectDirect' || isSelected) &&\n leftSelectionType !== selectionType;\n\n const columnWidth = getColumnWidth(columnIndex);\n return (\n <div\n className={styles['header__cell']}\n style={\n {\n '--header-cell-width': toCssSize(columnWidth),\n '--header-cell-height': `${height}px`,\n '--header-cell-left': `${columnPosition}px`,\n } as CSSProperties\n }\n data-header={columnIndex}\n >\n <StyledCell\n $type=\"header\"\n as={cell}\n columnIndex={columnIndex}\n type=\"header-cell\"\n $selectionType={selectionType}\n $isLastColumn={isLastColumn}\n $isFocused={false}\n $isSelectedLeft={isSelectedLeft}\n $isSelectedTop={isSelected}\n $isLastRow={false}\n $height={height}\n data-grid-row={-1}\n data-grid-column={columnIndex}\n data-selected={isSelected}\n $showBorder={showBorder}\n width={columnWidth}\n />\n <ColumnResizer\n height={height}\n onColumnResize={onColumnResize}\n columnIndex={columnIndex}\n getResizerPosition={getResizerPosition}\n columnWidth={columnWidth}\n resizingState={resizingState}\n />\n </div>\n );\n};\n\nconst Header = ({\n scrolledVertical,\n scrolledHorizontal,\n showRowNumber,\n rowNumberWidth,\n minColumn,\n maxColumn,\n height,\n getColumnWidth,\n cell,\n columnCount,\n getSelectionType,\n onColumnResize,\n getColumnHorizontalPosition,\n getResizerPosition,\n showBorder,\n resizingState,\n}: HeaderProps) => {\n const selectedAllType = getSelectionType({\n type: 'all',\n });\n return (\n <div\n className={cn(\n styles['header'],\n scrolledVertical && styles['header_scrolled-vertical']\n )}\n style={{ '--header-height': `${height}px` } as CSSProperties}\n >\n <div\n className={styles['header__scroll-area']}\n style={{ '--header-scroll-area-left': `${rowNumberWidth}px` } as CSSProperties}\n >\n {Array.from(\n { length: maxColumn - minColumn + 1 },\n (_, index) => minColumn + index\n ).map(columnIndex => (\n <Column\n key={`header-${columnIndex}`}\n getSelectionType={getSelectionType}\n columnIndex={columnIndex}\n getColumnWidth={getColumnWidth}\n getColumnHorizontalPosition={getColumnHorizontalPosition}\n cell={cell}\n isLastColumn={columnIndex + 1 === columnCount}\n onColumnResize={onColumnResize}\n height={height}\n getResizerPosition={getResizerPosition}\n showBorder={showBorder}\n resizingState={resizingState}\n />\n ))}\n </div>\n {showRowNumber && (\n <div\n className={cn(\n styles['header__cell'],\n styles['header__row-column'],\n scrolledHorizontal && styles['header__row-column_scrolled-horizontal']\n )}\n style={\n {\n '--header-cell-width': toCssSize(rowNumberWidth),\n '--header-cell-height': `${height}px`,\n '--header-cell-left': '0px',\n } as CSSProperties\n }\n >\n <StyledCell\n data-align=\"right\"\n data-selected={selectedAllType === 'selectDirect'}\n $type=\"header\"\n $selectionType={selectedAllType}\n $isLastRow={false}\n $isLastColumn={false}\n $height={height}\n $isFocused={false}\n $isSelectedLeft={false}\n $isSelectedTop={false}\n data-grid-row={-1}\n data-grid-column={-1}\n $showBorder={showBorder}\n >\n #\n </StyledCell>\n </div>\n )}\n </div>\n );\n};\n\nexport default Header;\n"],"names":["toCssSize","$width","Column","columnIndex","cell","getColumnWidth","getColumnHorizontalPosition","getSelectionType","isLastColumn","onColumnResize","height","getResizerPosition","showBorder","resizingState","selectionType","column","type","leftSelectionType","columnPosition","isSelected","isSelectedLeft","columnWidth","styles","jsx","StyledCell","ColumnResizer","Header","scrolledVertical","scrolledHorizontal","showRowNumber","rowNumberWidth","minColumn","maxColumn","columnCount","selectedAllType","jsxs","cn","Array","from","length","_","index","map"],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ /* stylelint-disable custom-property-pattern -- design tokens use camelCase (e.g. selectDirect) */
2
+
3
+ .header__hXzAE {
4
+ display: flex;
5
+ position: sticky;
6
+ top: 0;
7
+ left: 0;
8
+ height: var(--header-height);
9
+ flex-direction: row;
10
+ }
11
+
12
+ .header_scrolled-vertical__mIp2- {
13
+ box-shadow: 0 0 0 1px var(--click-grid-header-cell-color-stroke-default);
14
+ }
15
+
16
+ .header__scroll-area__Nok8G {
17
+ position: relative;
18
+ left: var(--header-scroll-area-left);
19
+ }
20
+
21
+ .header__cell__ZCE9p {
22
+ display: flex;
23
+ position: absolute;
24
+ left: var(--header-cell-left);
25
+ width: var(--header-cell-width);
26
+ height: var(--header-cell-height);
27
+ }
28
+
29
+ .header__cell__ZCE9p:hover [data-resize] {
30
+ background: var(--click-grid-header-cell-color-stroke-selectDirect);
31
+ }
32
+
33
+ /* the sticky "select all" corner extends a header cell (styled(HeaderCellContainer)) */
34
+ .header__row-column__ceu5w {
35
+ position: sticky;
36
+ top: 0;
37
+ left: 0;
38
+ width: var(--header-cell-width);
39
+ text-align: right;
40
+ }
41
+
42
+ .header__row-column_scrolled-horizontal__QZO4p {
43
+ box-shadow: 0 0 0 1px var(--click-grid-header-cell-color-stroke-default);
44
+ }
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
4
+
5
+ const header = "header__hXzAE";
6
+ const header__cell = "header__cell__ZCE9p";
7
+ const styles = {
8
+ header: header,
9
+ "header_scrolled-vertical": "header_scrolled-vertical__mIp2-",
10
+ "header__scroll-area": "header__scroll-area__Nok8G",
11
+ header__cell: header__cell,
12
+ "header__row-column": "header__row-column__ceu5w",
13
+ "header__row-column_scrolled-horizontal": "header__row-column_scrolled-horizontal__QZO4p"
14
+ };
15
+
16
+ exports.default = styles;
17
+ exports.header = header;
18
+ exports.header__cell = header__cell;
19
+ //# sourceMappingURL=Header.module.css.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Header.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;"}
@@ -1,40 +1,18 @@
1
+ require("./RowNumberColumn.css");
1
2
  'use strict';
2
3
 
3
4
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
4
5
 
5
6
  const jsxRuntime = require('react/jsx-runtime');
6
- const styledComponents = require('styled-components');
7
+ const cva = require('../../lib/cva.cjs');
8
+ const RowNumberColumn_module = require('./RowNumberColumn.module.css.cjs');
7
9
  const StyledCell = require('./StyledCell.cjs');
8
10
 
9
- const RowNumberColumnContainer = styledComponents.styled.div.withConfig({
10
- componentId: "sc-7gbi4d-0"
11
- })(["position:sticky;left:0;", " ", ""], ({
12
- $height,
13
- $width
14
- }) => `
15
- top: ${$height}px;
16
- width: ${$width}px;
17
- height: 100%;
18
- `, ({
19
- $scrolledHorizontal,
20
- theme
21
- }) => $scrolledHorizontal ? `box-shadow: 0px 0 0px 1px ${theme.click.grid.header.cell.color.stroke.default};` : "");
22
- const RowNumberCell = styledComponents.styled.div.withConfig({
23
- componentId: "sc-7gbi4d-1"
24
- })(["position:absolute;left:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%;", ""], ({
25
- $height,
26
- $rowNumber,
27
- $rowAutoHeight
28
- }) => `
29
- top: ${$height * $rowNumber}px;
30
- height: ${$rowAutoHeight ? "100%" : `${$height}px`};
31
- `);
32
11
  const RowNumber = ({
33
12
  rowIndex,
34
13
  rowHeight,
35
14
  getSelectionType,
36
15
  isLastRow,
37
- isFirstRow,
38
16
  showBorder,
39
17
  rowStart,
40
18
  rowAutoHeight
@@ -50,7 +28,10 @@ const RowNumber = ({
50
28
  type: "row"
51
29
  });
52
30
  const isSelectedTop = (topSelectionType === "selectDirect" || isSelected) && topSelectionType !== selectionType;
53
- return /* @__PURE__ */ jsxRuntime.jsx(RowNumberCell, { $rowNumber: rowIndex, $height: rowHeight, $rowAutoHeight: rowAutoHeight, children: /* @__PURE__ */ jsxRuntime.jsx(StyledCell.StyledCell, { $height: rowHeight, $isLastColumn: false, $selectionType: selectionType, $isFirstColumn: true, $type: "header", $isFirstRow: isFirstRow, $isFocused: false, $isLastRow: isLastRow, $isSelectedLeft: isSelected, $isSelectedTop: isSelectedTop, $rowAutoHeight: rowAutoHeight, "data-selected": isSelected, "data-grid-row": currentRowIndex, "data-grid-column": -1, "data-testid": `header-cell-${currentRowIndex}-x`, $showBorder: showBorder, "data-align": "right", children: currentRowIndex }) });
31
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: RowNumberColumn_module.default["row-number-column__cell"], style: {
32
+ "--row-number-cell-top": `${rowHeight * rowIndex}px`,
33
+ "--row-number-cell-height": rowAutoHeight ? "100%" : `${rowHeight}px`
34
+ }, children: /* @__PURE__ */ jsxRuntime.jsx(StyledCell.StyledCell, { $height: rowHeight, $isLastColumn: false, $selectionType: selectionType, $type: "header", $isFocused: false, $isLastRow: isLastRow, $isSelectedLeft: isSelected, $isSelectedTop: isSelectedTop, $rowAutoHeight: rowAutoHeight, "data-selected": isSelected, "data-grid-row": currentRowIndex, "data-grid-column": -1, "data-testid": `header-cell-${currentRowIndex}-x`, $showBorder: showBorder, "data-align": "right", children: currentRowIndex }) });
54
35
  };
55
36
  const RowNumberColumn = ({
56
37
  minRow,
@@ -60,15 +41,17 @@ const RowNumberColumn = ({
60
41
  rowWidth,
61
42
  getSelectionType,
62
43
  rowCount,
63
- showHeader,
64
44
  scrolledHorizontal,
65
45
  rowStart = 0,
66
46
  showBorder,
67
47
  rowAutoHeight
68
48
  }) => {
69
- return /* @__PURE__ */ jsxRuntime.jsx(RowNumberColumnContainer, { $height: headerHeight, $width: rowWidth, $scrolledHorizontal: scrolledHorizontal, $rowAutoHeight: rowAutoHeight, children: Array.from({
49
+ return /* @__PURE__ */ jsxRuntime.jsx("div", { className: cva.cn(RowNumberColumn_module.default["row-number-column"], scrolledHorizontal && RowNumberColumn_module.default["row-number-column_scrolled-horizontal"]), style: {
50
+ "--row-number-column-top": `${headerHeight}px`,
51
+ "--row-number-column-width": `${rowWidth}px`
52
+ }, children: Array.from({
70
53
  length: maxRow - minRow + 1
71
- }, (_, index) => minRow + index).map((rowIndex) => /* @__PURE__ */ jsxRuntime.jsx(RowNumber, { getSelectionType, rowHeight, rowIndex, isLastRow: rowIndex === rowCount, isFirstRow: !showHeader && rowIndex === 0, showBorder, rowStart, rowAutoHeight }, `row-number-${rowIndex}`)) });
54
+ }, (_, index) => minRow + index).map((rowIndex) => /* @__PURE__ */ jsxRuntime.jsx(RowNumber, { getSelectionType, rowHeight, rowIndex, isLastRow: rowIndex === rowCount, showBorder, rowStart, rowAutoHeight }, `row-number-${rowIndex}`)) });
72
55
  };
73
56
 
74
57
  exports.default = RowNumberColumn;
@@ -1 +1 @@
1
- {"version":3,"file":"RowNumberColumn.cjs","sources":["../../../../src/components/Grid/RowNumberColumn.tsx"],"sourcesContent":["import { styled } from 'styled-components';\nimport { SelectionTypeFn } from './types';\nimport { StyledCell } from './StyledCell';\nconst RowNumberColumnContainer = styled.div<{\n $height: number;\n $width: number;\n $scrolledHorizontal: boolean;\n $rowAutoHeight?: boolean;\n}>`\n position: sticky;\n left: 0;\n ${({ $height, $width }) => `\n top: ${$height}px;\n width: ${$width}px;\n height: 100%;\n `}\n\n ${({ $scrolledHorizontal, theme }) =>\n $scrolledHorizontal\n ? `box-shadow: 0px 0 0px 1px ${theme.click.grid.header.cell.color.stroke.default};`\n : ''}\n`;\n\nconst RowNumberCell = styled.div<{\n $height: number;\n $rowNumber: number;\n $rowAutoHeight?: boolean;\n}>`\n position: absolute;\n left: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n width: 100%;\n ${({ $height, $rowNumber, $rowAutoHeight }) => `\n top: ${$height * $rowNumber}px;\n height: ${$rowAutoHeight ? '100%' : `${$height}px`};\n `}\n`;\ninterface RowNumberColumnProps {\n minRow: number;\n maxRow: number;\n rowHeight: number;\n headerHeight: number;\n rowWidth: number;\n getSelectionType: SelectionTypeFn;\n rowCount: number;\n showHeader: boolean;\n scrolledHorizontal: boolean;\n rowStart: number;\n showBorder: boolean;\n rowAutoHeight?: boolean;\n}\ninterface RowNumberProps extends Pick<\n RowNumberColumnProps,\n 'rowHeight' | 'getSelectionType' | 'showBorder' | 'rowStart'\n> {\n rowIndex: number;\n isLastRow: boolean;\n isFirstRow: boolean;\n rowAutoHeight?: boolean;\n}\nconst RowNumber = ({\n rowIndex,\n rowHeight,\n getSelectionType,\n isLastRow,\n isFirstRow,\n showBorder,\n rowStart,\n rowAutoHeight,\n}: RowNumberProps) => {\n const currentRowIndex = rowIndex + rowStart;\n const selectionType = getSelectionType({\n row: currentRowIndex,\n type: 'row',\n });\n const isSelected = selectionType === 'selectDirect';\n const topSelectionType = getSelectionType({\n row: currentRowIndex - 1,\n type: 'row',\n });\n const isSelectedTop =\n (topSelectionType === 'selectDirect' || isSelected) &&\n topSelectionType !== selectionType;\n\n return (\n <RowNumberCell\n $rowNumber={rowIndex}\n $height={rowHeight}\n $rowAutoHeight={rowAutoHeight}\n >\n <StyledCell\n $height={rowHeight}\n $isLastColumn={false}\n $selectionType={selectionType}\n $isFirstColumn\n $type=\"header\"\n $isFirstRow={isFirstRow}\n $isFocused={false}\n $isLastRow={isLastRow}\n $isSelectedLeft={isSelected}\n $isSelectedTop={isSelectedTop}\n $rowAutoHeight={rowAutoHeight}\n data-selected={isSelected}\n data-grid-row={currentRowIndex}\n data-grid-column={-1}\n data-testid={`header-cell-${currentRowIndex}-x`}\n $showBorder={showBorder}\n data-align=\"right\"\n >\n {currentRowIndex}\n </StyledCell>\n </RowNumberCell>\n );\n};\n\nconst RowNumberColumn = ({\n minRow,\n maxRow,\n rowHeight,\n headerHeight,\n rowWidth,\n getSelectionType,\n rowCount,\n showHeader,\n scrolledHorizontal,\n rowStart = 0,\n showBorder,\n rowAutoHeight,\n}: RowNumberColumnProps) => {\n return (\n <RowNumberColumnContainer\n $height={headerHeight}\n $width={rowWidth}\n $scrolledHorizontal={scrolledHorizontal}\n $rowAutoHeight={rowAutoHeight}\n >\n {Array.from({ length: maxRow - minRow + 1 }, (_, index) => minRow + index).map(\n rowIndex => (\n <RowNumber\n key={`row-number-${rowIndex}`}\n getSelectionType={getSelectionType}\n rowHeight={rowHeight}\n rowIndex={rowIndex}\n isLastRow={rowIndex === rowCount}\n isFirstRow={!showHeader && rowIndex === 0}\n showBorder={showBorder}\n rowStart={rowStart}\n rowAutoHeight={rowAutoHeight}\n />\n )\n )}\n </RowNumberColumnContainer>\n );\n};\n\nexport default RowNumberColumn;\n"],"names":["RowNumberColumnContainer","styled","div","withConfig","componentId","$height","$width","$scrolledHorizontal","theme","click","grid","header","cell","color","stroke","default","RowNumberCell","$rowNumber","$rowAutoHeight","RowNumber","rowIndex","rowHeight","getSelectionType","isLastRow","isFirstRow","showBorder","rowStart","rowAutoHeight","currentRowIndex","selectionType","row","type","isSelected","topSelectionType","isSelectedTop","jsx","StyledCell","RowNumberColumn","minRow","maxRow","headerHeight","rowWidth","rowCount","showHeader","scrolledHorizontal","Array","from","length","_","index","map"],"mappings":"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"}
1
+ {"version":3,"file":"RowNumberColumn.cjs","sources":["../../../../src/components/Grid/RowNumberColumn.tsx"],"sourcesContent":["import { CSSProperties } from 'react';\nimport { cn } from '@/lib/cva';\nimport styles from './RowNumberColumn.module.css';\nimport { SelectionTypeFn } from './types';\nimport { StyledCell } from './StyledCell';\n\ninterface RowNumberColumnProps {\n minRow: number;\n maxRow: number;\n rowHeight: number;\n headerHeight: number;\n rowWidth: number;\n getSelectionType: SelectionTypeFn;\n rowCount: number;\n scrolledHorizontal: boolean;\n rowStart: number;\n showBorder: boolean;\n rowAutoHeight?: boolean;\n}\ninterface RowNumberProps extends Pick<\n RowNumberColumnProps,\n 'rowHeight' | 'getSelectionType' | 'showBorder' | 'rowStart'\n> {\n rowIndex: number;\n isLastRow: boolean;\n rowAutoHeight?: boolean;\n}\nconst RowNumber = ({\n rowIndex,\n rowHeight,\n getSelectionType,\n isLastRow,\n showBorder,\n rowStart,\n rowAutoHeight,\n}: RowNumberProps) => {\n const currentRowIndex = rowIndex + rowStart;\n const selectionType = getSelectionType({\n row: currentRowIndex,\n type: 'row',\n });\n const isSelected = selectionType === 'selectDirect';\n const topSelectionType = getSelectionType({\n row: currentRowIndex - 1,\n type: 'row',\n });\n const isSelectedTop =\n (topSelectionType === 'selectDirect' || isSelected) &&\n topSelectionType !== selectionType;\n\n return (\n <div\n className={styles['row-number-column__cell']}\n style={\n {\n '--row-number-cell-top': `${rowHeight * rowIndex}px`,\n '--row-number-cell-height': rowAutoHeight ? '100%' : `${rowHeight}px`,\n } as CSSProperties\n }\n >\n <StyledCell\n $height={rowHeight}\n $isLastColumn={false}\n $selectionType={selectionType}\n $type=\"header\"\n $isFocused={false}\n $isLastRow={isLastRow}\n $isSelectedLeft={isSelected}\n $isSelectedTop={isSelectedTop}\n $rowAutoHeight={rowAutoHeight}\n data-selected={isSelected}\n data-grid-row={currentRowIndex}\n data-grid-column={-1}\n data-testid={`header-cell-${currentRowIndex}-x`}\n $showBorder={showBorder}\n data-align=\"right\"\n >\n {currentRowIndex}\n </StyledCell>\n </div>\n );\n};\n\nconst RowNumberColumn = ({\n minRow,\n maxRow,\n rowHeight,\n headerHeight,\n rowWidth,\n getSelectionType,\n rowCount,\n scrolledHorizontal,\n rowStart = 0,\n showBorder,\n rowAutoHeight,\n}: RowNumberColumnProps) => {\n return (\n <div\n className={cn(\n styles['row-number-column'],\n scrolledHorizontal && styles['row-number-column_scrolled-horizontal']\n )}\n style={\n {\n '--row-number-column-top': `${headerHeight}px`,\n '--row-number-column-width': `${rowWidth}px`,\n } as CSSProperties\n }\n >\n {Array.from({ length: maxRow - minRow + 1 }, (_, index) => minRow + index).map(\n rowIndex => (\n <RowNumber\n key={`row-number-${rowIndex}`}\n getSelectionType={getSelectionType}\n rowHeight={rowHeight}\n rowIndex={rowIndex}\n isLastRow={rowIndex === rowCount}\n showBorder={showBorder}\n rowStart={rowStart}\n rowAutoHeight={rowAutoHeight}\n />\n )\n )}\n </div>\n );\n};\n\nexport default RowNumberColumn;\n"],"names":["RowNumber","rowIndex","rowHeight","getSelectionType","isLastRow","showBorder","rowStart","rowAutoHeight","currentRowIndex","selectionType","row","type","isSelected","topSelectionType","isSelectedTop","styles","jsx","StyledCell","RowNumberColumn","minRow","maxRow","headerHeight","rowWidth","rowCount","scrolledHorizontal","cn","Array","from","length","_","index","map"],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ .row-number-column__n-aQm {
2
+ position: sticky;
3
+ top: var(--row-number-column-top);
4
+ left: 0;
5
+ width: var(--row-number-column-width);
6
+ height: 100%;
7
+ }
8
+
9
+ .row-number-column_scrolled-horizontal__L9fAB {
10
+ box-shadow: 0 0 0 1px var(--click-grid-header-cell-color-stroke-default);
11
+ }
12
+
13
+ .row-number-column__cell__00w03 {
14
+ position: absolute;
15
+ top: var(--row-number-cell-top);
16
+ left: 0;
17
+ width: 100%;
18
+ height: var(--row-number-cell-height);
19
+ overflow: hidden;
20
+ white-space: nowrap;
21
+ text-overflow: ellipsis;
22
+ }
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: 'Module' } });
4
+
5
+ const styles = {
6
+ "row-number-column": "row-number-column__n-aQm",
7
+ "row-number-column_scrolled-horizontal": "row-number-column_scrolled-horizontal__L9fAB",
8
+ "row-number-column__cell": "row-number-column__cell__00w03"
9
+ };
10
+
11
+ exports.default = styles;
12
+ //# sourceMappingURL=RowNumberColumn.module.css.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RowNumberColumn.module.css.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}