@salt-ds/data-grid 1.0.5 → 1.0.7

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 (277) hide show
  1. package/CHANGELOG.md +216 -0
  2. package/dist-cjs/BaseCell.js +50 -48
  3. package/dist-cjs/BaseCell.js.map +1 -1
  4. package/dist-cjs/CellEditor.js +0 -2
  5. package/dist-cjs/CellEditor.js.map +1 -1
  6. package/dist-cjs/CellFrame.js +25 -33
  7. package/dist-cjs/CellFrame.js.map +1 -1
  8. package/dist-cjs/ColumnDataContext.js +1 -3
  9. package/dist-cjs/ColumnDataContext.js.map +1 -1
  10. package/dist-cjs/ColumnDragContext.js +1 -3
  11. package/dist-cjs/ColumnDragContext.js.map +1 -1
  12. package/dist-cjs/ColumnGroup.js +2 -6
  13. package/dist-cjs/ColumnGroup.js.map +1 -1
  14. package/dist-cjs/ColumnSortContext.js +1 -3
  15. package/dist-cjs/ColumnSortContext.js.map +1 -1
  16. package/dist-cjs/CornerTag.js +7 -6
  17. package/dist-cjs/CornerTag.js.map +1 -1
  18. package/dist-cjs/CursorContext.js +1 -3
  19. package/dist-cjs/CursorContext.js.map +1 -1
  20. package/dist-cjs/DropdownCellEditor.js +25 -28
  21. package/dist-cjs/DropdownCellEditor.js.map +1 -1
  22. package/dist-cjs/EditorContext.js +1 -3
  23. package/dist-cjs/EditorContext.js.map +1 -1
  24. package/dist-cjs/Grid.css.js +1 -1
  25. package/dist-cjs/Grid.js +174 -183
  26. package/dist-cjs/Grid.js.map +1 -1
  27. package/dist-cjs/GridColumn.js +4 -8
  28. package/dist-cjs/GridColumn.js.map +1 -1
  29. package/dist-cjs/GridContext.js +1 -3
  30. package/dist-cjs/GridContext.js.map +1 -1
  31. package/dist-cjs/GroupHeaderCell.js +29 -30
  32. package/dist-cjs/GroupHeaderCell.js.map +1 -1
  33. package/dist-cjs/GroupHeaderCellValue.js +1 -5
  34. package/dist-cjs/GroupHeaderCellValue.js.map +1 -1
  35. package/dist-cjs/HeaderCell.js +94 -90
  36. package/dist-cjs/HeaderCell.js.map +1 -1
  37. package/dist-cjs/HeaderCellValue.js +1 -6
  38. package/dist-cjs/HeaderCellValue.js.map +1 -1
  39. package/dist-cjs/LayoutContext.js +0 -2
  40. package/dist-cjs/LayoutContext.js.map +1 -1
  41. package/dist-cjs/NumberRange.js +2 -4
  42. package/dist-cjs/NumberRange.js.map +1 -1
  43. package/dist-cjs/NumericColumn.css.js +1 -1
  44. package/dist-cjs/NumericColumn.js +31 -30
  45. package/dist-cjs/NumericColumn.js.map +1 -1
  46. package/dist-cjs/RowSelectionCheckboxCellValue.js +7 -10
  47. package/dist-cjs/RowSelectionCheckboxCellValue.js.map +1 -1
  48. package/dist-cjs/RowSelectionCheckboxColumn.js +14 -13
  49. package/dist-cjs/RowSelectionCheckboxColumn.js.map +1 -1
  50. package/dist-cjs/RowSelectionCheckboxHeaderCellValue.js +22 -18
  51. package/dist-cjs/RowSelectionCheckboxHeaderCellValue.js.map +1 -1
  52. package/dist-cjs/RowSelectionRadioCellValue.js +6 -8
  53. package/dist-cjs/RowSelectionRadioCellValue.js.map +1 -1
  54. package/dist-cjs/RowSelectionRadioColumn.js +12 -11
  55. package/dist-cjs/RowSelectionRadioColumn.js.map +1 -1
  56. package/dist-cjs/RowSelectionRadioHeaderCell.js +2 -10
  57. package/dist-cjs/RowSelectionRadioHeaderCell.js.map +1 -1
  58. package/dist-cjs/RowValidationStatus.js +0 -2
  59. package/dist-cjs/RowValidationStatus.js.map +1 -1
  60. package/dist-cjs/SelectionContext.js +1 -3
  61. package/dist-cjs/SelectionContext.js.map +1 -1
  62. package/dist-cjs/SizingContext.js +1 -3
  63. package/dist-cjs/SizingContext.js.map +1 -1
  64. package/dist-cjs/TextCellEditor.css.js +1 -1
  65. package/dist-cjs/TextCellEditor.js +14 -20
  66. package/dist-cjs/TextCellEditor.js.map +1 -1
  67. package/dist-cjs/index.js +0 -2
  68. package/dist-cjs/index.js.map +1 -1
  69. package/dist-cjs/internal/CellMeasure.css.js +1 -1
  70. package/dist-cjs/internal/CellMeasure.js +3 -18
  71. package/dist-cjs/internal/CellMeasure.js.map +1 -1
  72. package/dist-cjs/internal/CellStatusIcons.js +41 -37
  73. package/dist-cjs/internal/CellStatusIcons.js.map +1 -1
  74. package/dist-cjs/internal/ColumnDropTarget.js +3 -8
  75. package/dist-cjs/internal/ColumnDropTarget.js.map +1 -1
  76. package/dist-cjs/internal/ColumnGhost.js +17 -29
  77. package/dist-cjs/internal/ColumnGhost.js.map +1 -1
  78. package/dist-cjs/internal/Cursor.js +3 -7
  79. package/dist-cjs/internal/Cursor.js.map +1 -1
  80. package/dist-cjs/internal/DefaultCellValue.js +11 -10
  81. package/dist-cjs/internal/DefaultCellValue.js.map +1 -1
  82. package/dist-cjs/internal/FakeCell.js +8 -16
  83. package/dist-cjs/internal/FakeCell.js.map +1 -1
  84. package/dist-cjs/internal/FakeGroupCell.js +0 -2
  85. package/dist-cjs/internal/FakeGroupCell.js.map +1 -1
  86. package/dist-cjs/internal/FakeHeaderCell.js +1 -5
  87. package/dist-cjs/internal/FakeHeaderCell.js.map +1 -1
  88. package/dist-cjs/internal/GroupHeaderRow.js +9 -20
  89. package/dist-cjs/internal/GroupHeaderRow.js.map +1 -1
  90. package/dist-cjs/internal/HeaderRow.js +17 -23
  91. package/dist-cjs/internal/HeaderRow.js.map +1 -1
  92. package/dist-cjs/internal/LeftPart.js +21 -27
  93. package/dist-cjs/internal/LeftPart.js.map +1 -1
  94. package/dist-cjs/internal/MiddlePart.js +19 -25
  95. package/dist-cjs/internal/MiddlePart.js.map +1 -1
  96. package/dist-cjs/internal/RightPart.js +21 -26
  97. package/dist-cjs/internal/RightPart.js.map +1 -1
  98. package/dist-cjs/internal/Scrollable.js +12 -13
  99. package/dist-cjs/internal/Scrollable.js.map +1 -1
  100. package/dist-cjs/internal/TableBody.js +17 -19
  101. package/dist-cjs/internal/TableBody.js.map +1 -1
  102. package/dist-cjs/internal/TableColGroup.js +7 -17
  103. package/dist-cjs/internal/TableColGroup.js.map +1 -1
  104. package/dist-cjs/internal/TableRow.js +87 -79
  105. package/dist-cjs/internal/TableRow.js.map +1 -1
  106. package/dist-cjs/internal/TopLeftPart.js +20 -31
  107. package/dist-cjs/internal/TopLeftPart.js.map +1 -1
  108. package/dist-cjs/internal/TopPart.js +20 -37
  109. package/dist-cjs/internal/TopPart.js.map +1 -1
  110. package/dist-cjs/internal/TopRightPart.js +26 -30
  111. package/dist-cjs/internal/TopRightPart.js.map +1 -1
  112. package/dist-cjs/internal/gridHooks.js +23 -25
  113. package/dist-cjs/internal/gridHooks.js.map +1 -1
  114. package/dist-cjs/internal/utils.js +5 -7
  115. package/dist-cjs/internal/utils.js.map +1 -1
  116. package/dist-es/BaseCell.js +50 -46
  117. package/dist-es/BaseCell.js.map +1 -1
  118. package/dist-es/CellEditor.js.map +1 -1
  119. package/dist-es/CellFrame.js +25 -31
  120. package/dist-es/CellFrame.js.map +1 -1
  121. package/dist-es/ColumnDataContext.js +1 -1
  122. package/dist-es/ColumnDataContext.js.map +1 -1
  123. package/dist-es/ColumnDragContext.js +1 -1
  124. package/dist-es/ColumnDragContext.js.map +1 -1
  125. package/dist-es/ColumnGroup.js +2 -4
  126. package/dist-es/ColumnGroup.js.map +1 -1
  127. package/dist-es/ColumnSortContext.js +1 -1
  128. package/dist-es/ColumnSortContext.js.map +1 -1
  129. package/dist-es/CornerTag.js +7 -4
  130. package/dist-es/CornerTag.js.map +1 -1
  131. package/dist-es/CursorContext.js +1 -1
  132. package/dist-es/CursorContext.js.map +1 -1
  133. package/dist-es/DropdownCellEditor.js +25 -26
  134. package/dist-es/DropdownCellEditor.js.map +1 -1
  135. package/dist-es/EditorContext.js +1 -1
  136. package/dist-es/EditorContext.js.map +1 -1
  137. package/dist-es/Grid.css.js +1 -1
  138. package/dist-es/Grid.js +174 -181
  139. package/dist-es/Grid.js.map +1 -1
  140. package/dist-es/GridColumn.js +4 -6
  141. package/dist-es/GridColumn.js.map +1 -1
  142. package/dist-es/GridContext.js +1 -1
  143. package/dist-es/GridContext.js.map +1 -1
  144. package/dist-es/GroupHeaderCell.js +29 -28
  145. package/dist-es/GroupHeaderCell.js.map +1 -1
  146. package/dist-es/GroupHeaderCellValue.js +1 -3
  147. package/dist-es/GroupHeaderCellValue.js.map +1 -1
  148. package/dist-es/HeaderCell.js +94 -88
  149. package/dist-es/HeaderCell.js.map +1 -1
  150. package/dist-es/HeaderCellValue.js +1 -4
  151. package/dist-es/HeaderCellValue.js.map +1 -1
  152. package/dist-es/LayoutContext.js.map +1 -1
  153. package/dist-es/NumberRange.js +2 -2
  154. package/dist-es/NumberRange.js.map +1 -1
  155. package/dist-es/NumericColumn.css.js +1 -1
  156. package/dist-es/NumericColumn.js +31 -28
  157. package/dist-es/NumericColumn.js.map +1 -1
  158. package/dist-es/RowSelectionCheckboxCellValue.js +7 -8
  159. package/dist-es/RowSelectionCheckboxCellValue.js.map +1 -1
  160. package/dist-es/RowSelectionCheckboxColumn.js +14 -11
  161. package/dist-es/RowSelectionCheckboxColumn.js.map +1 -1
  162. package/dist-es/RowSelectionCheckboxHeaderCellValue.js +22 -16
  163. package/dist-es/RowSelectionCheckboxHeaderCellValue.js.map +1 -1
  164. package/dist-es/RowSelectionRadioCellValue.js +6 -6
  165. package/dist-es/RowSelectionRadioCellValue.js.map +1 -1
  166. package/dist-es/RowSelectionRadioColumn.js +12 -9
  167. package/dist-es/RowSelectionRadioColumn.js.map +1 -1
  168. package/dist-es/RowSelectionRadioHeaderCell.js +2 -8
  169. package/dist-es/RowSelectionRadioHeaderCell.js.map +1 -1
  170. package/dist-es/RowValidationStatus.js.map +1 -1
  171. package/dist-es/SelectionContext.js +1 -1
  172. package/dist-es/SelectionContext.js.map +1 -1
  173. package/dist-es/SizingContext.js +1 -1
  174. package/dist-es/SizingContext.js.map +1 -1
  175. package/dist-es/TextCellEditor.css.js +1 -1
  176. package/dist-es/TextCellEditor.js +14 -18
  177. package/dist-es/TextCellEditor.js.map +1 -1
  178. package/dist-es/internal/CellMeasure.css.js +1 -1
  179. package/dist-es/internal/CellMeasure.js +3 -16
  180. package/dist-es/internal/CellMeasure.js.map +1 -1
  181. package/dist-es/internal/CellStatusIcons.js +41 -35
  182. package/dist-es/internal/CellStatusIcons.js.map +1 -1
  183. package/dist-es/internal/ColumnDropTarget.js +3 -6
  184. package/dist-es/internal/ColumnDropTarget.js.map +1 -1
  185. package/dist-es/internal/ColumnGhost.js +17 -27
  186. package/dist-es/internal/ColumnGhost.js.map +1 -1
  187. package/dist-es/internal/Cursor.js +3 -5
  188. package/dist-es/internal/Cursor.js.map +1 -1
  189. package/dist-es/internal/DefaultCellValue.js +11 -8
  190. package/dist-es/internal/DefaultCellValue.js.map +1 -1
  191. package/dist-es/internal/FakeCell.js +8 -14
  192. package/dist-es/internal/FakeCell.js.map +1 -1
  193. package/dist-es/internal/FakeGroupCell.js.map +1 -1
  194. package/dist-es/internal/FakeHeaderCell.js +1 -3
  195. package/dist-es/internal/FakeHeaderCell.js.map +1 -1
  196. package/dist-es/internal/GroupHeaderRow.js +9 -18
  197. package/dist-es/internal/GroupHeaderRow.js.map +1 -1
  198. package/dist-es/internal/HeaderRow.js +17 -21
  199. package/dist-es/internal/HeaderRow.js.map +1 -1
  200. package/dist-es/internal/LeftPart.js +21 -25
  201. package/dist-es/internal/LeftPart.js.map +1 -1
  202. package/dist-es/internal/MiddlePart.js +19 -23
  203. package/dist-es/internal/MiddlePart.js.map +1 -1
  204. package/dist-es/internal/RightPart.js +21 -24
  205. package/dist-es/internal/RightPart.js.map +1 -1
  206. package/dist-es/internal/Scrollable.js +12 -11
  207. package/dist-es/internal/Scrollable.js.map +1 -1
  208. package/dist-es/internal/TableBody.js +17 -17
  209. package/dist-es/internal/TableBody.js.map +1 -1
  210. package/dist-es/internal/TableColGroup.js +7 -15
  211. package/dist-es/internal/TableColGroup.js.map +1 -1
  212. package/dist-es/internal/TableRow.js +87 -77
  213. package/dist-es/internal/TableRow.js.map +1 -1
  214. package/dist-es/internal/TopLeftPart.js +20 -29
  215. package/dist-es/internal/TopLeftPart.js.map +1 -1
  216. package/dist-es/internal/TopPart.js +20 -35
  217. package/dist-es/internal/TopPart.js.map +1 -1
  218. package/dist-es/internal/TopRightPart.js +26 -28
  219. package/dist-es/internal/TopRightPart.js.map +1 -1
  220. package/dist-es/internal/gridHooks.js +23 -23
  221. package/dist-es/internal/gridHooks.js.map +1 -1
  222. package/dist-es/internal/utils.js +5 -5
  223. package/dist-es/internal/utils.js.map +1 -1
  224. package/dist-types/BaseCell.d.ts +3 -3
  225. package/dist-types/CellEditor.d.ts +1 -1
  226. package/dist-types/CellFrame.d.ts +2 -2
  227. package/dist-types/ColumnDragContext.d.ts +1 -1
  228. package/dist-types/ColumnGroup.d.ts +4 -4
  229. package/dist-types/ColumnSortContext.d.ts +5 -5
  230. package/dist-types/CornerTag.d.ts +1 -1
  231. package/dist-types/DropdownCellEditor.d.ts +2 -2
  232. package/dist-types/Grid.d.ts +4 -4
  233. package/dist-types/GridColumn.d.ts +3 -3
  234. package/dist-types/GridContext.d.ts +2 -2
  235. package/dist-types/GroupHeaderCell.d.ts +3 -3
  236. package/dist-types/GroupHeaderCellValue.d.ts +2 -2
  237. package/dist-types/HeaderCell.d.ts +5 -5
  238. package/dist-types/HeaderCellValue.d.ts +2 -2
  239. package/dist-types/NumericColumn.d.ts +6 -6
  240. package/dist-types/RowSelectionCheckboxCellValue.d.ts +2 -2
  241. package/dist-types/RowSelectionCheckboxColumn.d.ts +2 -2
  242. package/dist-types/RowSelectionCheckboxHeaderCellValue.d.ts +2 -2
  243. package/dist-types/RowSelectionRadioCellValue.d.ts +2 -2
  244. package/dist-types/RowSelectionRadioColumn.d.ts +2 -2
  245. package/dist-types/RowSelectionRadioHeaderCell.d.ts +2 -2
  246. package/dist-types/RowValidationStatus.d.ts +2 -2
  247. package/dist-types/SelectionContext.d.ts +1 -1
  248. package/dist-types/SizingContext.d.ts +3 -3
  249. package/dist-types/TextCellEditor.d.ts +2 -2
  250. package/dist-types/internal/CellMeasure.d.ts +1 -1
  251. package/dist-types/internal/CellStatusIcons.d.ts +3 -3
  252. package/dist-types/internal/ColumnDropTarget.d.ts +1 -1
  253. package/dist-types/internal/ColumnGhost.d.ts +3 -3
  254. package/dist-types/internal/Cursor.d.ts +1 -3
  255. package/dist-types/internal/DefaultCellValue.d.ts +2 -2
  256. package/dist-types/internal/FakeCell.d.ts +2 -2
  257. package/dist-types/internal/FakeGroupCell.d.ts +1 -1
  258. package/dist-types/internal/FakeHeaderCell.d.ts +1 -1
  259. package/dist-types/internal/GroupHeaderRow.d.ts +2 -2
  260. package/dist-types/internal/HeaderRow.d.ts +2 -2
  261. package/dist-types/internal/LeftPart.d.ts +4 -4
  262. package/dist-types/internal/MiddlePart.d.ts +4 -4
  263. package/dist-types/internal/RightPart.d.ts +4 -4
  264. package/dist-types/internal/Scrollable.d.ts +2 -2
  265. package/dist-types/internal/TableBody.d.ts +3 -3
  266. package/dist-types/internal/TableColGroup.d.ts +3 -3
  267. package/dist-types/internal/TableRow.d.ts +4 -4
  268. package/dist-types/internal/TopLeftPart.d.ts +2 -2
  269. package/dist-types/internal/TopPart.d.ts +3 -3
  270. package/dist-types/internal/TopRightPart.d.ts +2 -2
  271. package/dist-types/internal/gridHooks.d.ts +13 -13
  272. package/dist-types/internal/utils.d.ts +1 -1
  273. package/package.json +11 -8
  274. package/dist-cjs/internal/FakeCell.css.js +0 -6
  275. package/dist-cjs/internal/FakeCell.css.js.map +0 -1
  276. package/dist-es/internal/FakeCell.css.js +0 -4
  277. package/dist-es/internal/FakeCell.css.js.map +0 -1
@@ -1,7 +1,7 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
- import { useWindow } from '@salt-ds/window';
3
- import { useComponentCssInjection } from '@salt-ds/styles';
4
2
  import { Checkbox } from '@salt-ds/core';
3
+ import { useComponentCssInjection } from '@salt-ds/styles';
4
+ import { useWindow } from '@salt-ds/window';
5
5
  import { useSelectionContext } from './SelectionContext.js';
6
6
  import css_248z from './CheckboxCell.css.js';
7
7
 
@@ -32,20 +32,26 @@ function RowSelectionCheckboxHeaderCellValue(props) {
32
32
  event.stopPropagation();
33
33
  }
34
34
  };
35
- return /* @__PURE__ */ jsx("div", {
36
- onMouseDown: onMousedown,
37
- className: "saltGridCheckboxContainer",
38
- onKeyDown,
39
- children: /* @__PURE__ */ jsx(Checkbox, {
40
- "data-testid": "grid-row-select-all-checkbox",
41
- inputProps: {
42
- "aria-label": "Select All",
43
- tabIndex: isFocused ? 0 : -1
44
- },
45
- checked: isAllSelected,
46
- indeterminate: !isAllSelected && isAnySelected
47
- })
48
- });
35
+ return /* @__PURE__ */ jsx(
36
+ "div",
37
+ {
38
+ onMouseDown: onMousedown,
39
+ className: "saltGridCheckboxContainer",
40
+ onKeyDown,
41
+ children: /* @__PURE__ */ jsx(
42
+ Checkbox,
43
+ {
44
+ "data-testid": "grid-row-select-all-checkbox",
45
+ inputProps: {
46
+ "aria-label": "Select All",
47
+ tabIndex: isFocused ? 0 : -1
48
+ },
49
+ checked: isAllSelected,
50
+ indeterminate: !isAllSelected && isAnySelected
51
+ }
52
+ )
53
+ }
54
+ );
49
55
  }
50
56
 
51
57
  export { RowSelectionCheckboxHeaderCellValue };
@@ -1 +1 @@
1
- {"version":3,"file":"RowSelectionCheckboxHeaderCellValue.js","sources":["../src/RowSelectionCheckboxHeaderCellValue.tsx"],"sourcesContent":["import { KeyboardEventHandler, MouseEventHandler } from \"react\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { Checkbox } from \"@salt-ds/core\";\n\nimport { useSelectionContext } from \"./SelectionContext\";\nimport { GridHeaderValueProps } from \"./GridColumn\";\n\nimport checkboxCellCss from \"./CheckboxCell.css\";\n\nexport function RowSelectionCheckboxHeaderCellValue<T>(\n props: GridHeaderValueProps<T>\n) {\n const { isFocused } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-checkbox-cell\",\n css: checkboxCellCss,\n window: targetWindow,\n });\n\n const { selectAll, unselectAll, isAllSelected, isAnySelected } =\n useSelectionContext();\n\n const onMousedown: MouseEventHandler<HTMLDivElement> = (event) => {\n if (isAllSelected) {\n unselectAll();\n } else {\n selectAll();\n }\n };\n\n const onKeyDown: KeyboardEventHandler<HTMLDivElement> = (event) => {\n if (event.key === \" \") {\n if (isAllSelected) {\n unselectAll();\n } else {\n selectAll();\n }\n event.preventDefault();\n event.stopPropagation();\n }\n };\n\n return (\n <div\n onMouseDown={onMousedown}\n className=\"saltGridCheckboxContainer\"\n onKeyDown={onKeyDown}\n >\n <Checkbox\n data-testid=\"grid-row-select-all-checkbox\"\n inputProps={{\n \"aria-label\": \"Select All\",\n tabIndex: isFocused ? 0 : -1,\n }}\n checked={isAllSelected}\n indeterminate={!isAllSelected && isAnySelected}\n />\n </div>\n );\n}\n"],"names":["checkboxCellCss"],"mappings":";;;;;;;AAUO,SAAS,oCACd,KACA,EAAA;AACA,EAAM,MAAA,EAAE,WAAc,GAAA,KAAA,CAAA;AAEtB,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,oBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAA,MAAM,EAAE,SAAW,EAAA,WAAA,EAAa,aAAe,EAAA,aAAA,KAC7C,mBAAoB,EAAA,CAAA;AAEtB,EAAM,MAAA,WAAA,GAAiD,CAAC,KAAU,KAAA;AAChE,IAAA,IAAI,aAAe,EAAA;AACjB,MAAY,WAAA,EAAA,CAAA;AAAA,KACP,MAAA;AACL,MAAU,SAAA,EAAA,CAAA;AAAA,KACZ;AAAA,GACF,CAAA;AAEA,EAAM,MAAA,SAAA,GAAkD,CAAC,KAAU,KAAA;AACjE,IAAI,IAAA,KAAA,CAAM,QAAQ,GAAK,EAAA;AACrB,MAAA,IAAI,aAAe,EAAA;AACjB,QAAY,WAAA,EAAA,CAAA;AAAA,OACP,MAAA;AACL,QAAU,SAAA,EAAA,CAAA;AAAA,OACZ;AACA,MAAA,KAAA,CAAM,cAAe,EAAA,CAAA;AACrB,MAAA,KAAA,CAAM,eAAgB,EAAA,CAAA;AAAA,KACxB;AAAA,GACF,CAAA;AAEA,EAAA,uBACG,GAAA,CAAA,KAAA,EAAA;AAAA,IACC,WAAa,EAAA,WAAA;AAAA,IACb,SAAU,EAAA,2BAAA;AAAA,IACV,SAAA;AAAA,IAEA,QAAC,kBAAA,GAAA,CAAA,QAAA,EAAA;AAAA,MACC,aAAY,EAAA,8BAAA;AAAA,MACZ,UAAY,EAAA;AAAA,QACV,YAAc,EAAA,YAAA;AAAA,QACd,QAAA,EAAU,YAAY,CAAI,GAAA,CAAA,CAAA;AAAA,OAC5B;AAAA,MACA,OAAS,EAAA,aAAA;AAAA,MACT,aAAA,EAAe,CAAC,aAAiB,IAAA,aAAA;AAAA,KACnC,CAAA;AAAA,GACF,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"RowSelectionCheckboxHeaderCellValue.js","sources":["../src/RowSelectionCheckboxHeaderCellValue.tsx"],"sourcesContent":["import { Checkbox } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport type { KeyboardEventHandler, MouseEventHandler } from \"react\";\n\nimport type { GridHeaderValueProps } from \"./GridColumn\";\nimport { useSelectionContext } from \"./SelectionContext\";\n\nimport checkboxCellCss from \"./CheckboxCell.css\";\n\nexport function RowSelectionCheckboxHeaderCellValue<T>(\n props: GridHeaderValueProps<T>,\n) {\n const { isFocused } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-checkbox-cell\",\n css: checkboxCellCss,\n window: targetWindow,\n });\n\n const { selectAll, unselectAll, isAllSelected, isAnySelected } =\n useSelectionContext();\n\n const onMousedown: MouseEventHandler<HTMLDivElement> = (event) => {\n if (isAllSelected) {\n unselectAll();\n } else {\n selectAll();\n }\n };\n\n const onKeyDown: KeyboardEventHandler<HTMLDivElement> = (event) => {\n if (event.key === \" \") {\n if (isAllSelected) {\n unselectAll();\n } else {\n selectAll();\n }\n event.preventDefault();\n event.stopPropagation();\n }\n };\n\n return (\n <div\n onMouseDown={onMousedown}\n className=\"saltGridCheckboxContainer\"\n onKeyDown={onKeyDown}\n >\n <Checkbox\n data-testid=\"grid-row-select-all-checkbox\"\n inputProps={{\n \"aria-label\": \"Select All\",\n tabIndex: isFocused ? 0 : -1,\n }}\n checked={isAllSelected}\n indeterminate={!isAllSelected && isAnySelected}\n />\n </div>\n );\n}\n"],"names":["checkboxCellCss"],"mappings":";;;;;;;AAUO,SAAS,oCACd,KACA,EAAA;AACA,EAAM,MAAA,EAAE,WAAc,GAAA,KAAA;AAEtB,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,oBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAA,MAAM,EAAE,SAAW,EAAA,WAAA,EAAa,aAAe,EAAA,aAAA,KAC7C,mBAAoB,EAAA;AAEtB,EAAM,MAAA,WAAA,GAAiD,CAAC,KAAU,KAAA;AAChE,IAAA,IAAI,aAAe,EAAA;AACjB,MAAY,WAAA,EAAA;AAAA,KACP,MAAA;AACL,MAAU,SAAA,EAAA;AAAA;AACZ,GACF;AAEA,EAAM,MAAA,SAAA,GAAkD,CAAC,KAAU,KAAA;AACjE,IAAI,IAAA,KAAA,CAAM,QAAQ,GAAK,EAAA;AACrB,MAAA,IAAI,aAAe,EAAA;AACjB,QAAY,WAAA,EAAA;AAAA,OACP,MAAA;AACL,QAAU,SAAA,EAAA;AAAA;AAEZ,MAAA,KAAA,CAAM,cAAe,EAAA;AACrB,MAAA,KAAA,CAAM,eAAgB,EAAA;AAAA;AACxB,GACF;AAEA,EACE,uBAAA,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,WAAa,EAAA,WAAA;AAAA,MACb,SAAU,EAAA,2BAAA;AAAA,MACV,SAAA;AAAA,MAEA,QAAA,kBAAA,GAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,aAAY,EAAA,8BAAA;AAAA,UACZ,UAAY,EAAA;AAAA,YACV,YAAc,EAAA,YAAA;AAAA,YACd,QAAA,EAAU,YAAY,CAAI,GAAA,CAAA;AAAA,WAC5B;AAAA,UACA,OAAS,EAAA,aAAA;AAAA,UACT,aAAA,EAAe,CAAC,aAAiB,IAAA;AAAA;AAAA;AACnC;AAAA,GACF;AAEJ;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { RadioButton } from '@salt-ds/core';
3
- import { useWindow } from '@salt-ds/window';
4
3
  import { useComponentCssInjection } from '@salt-ds/styles';
4
+ import { useWindow } from '@salt-ds/window';
5
5
  import { useSelectionContext } from './SelectionContext.js';
6
6
  import css_248z from './CheckboxCell.css.js';
7
7
 
@@ -15,14 +15,14 @@ function RowSelectionRadioCellValue(props) {
15
15
  });
16
16
  const { selRowIdxs } = useSelectionContext();
17
17
  const isSelected = selRowIdxs.has(row.index);
18
- return /* @__PURE__ */ jsx("div", {
19
- className: "saltGridCheckboxContainer",
20
- children: /* @__PURE__ */ jsx(RadioButton, {
18
+ return /* @__PURE__ */ jsx("div", { className: "saltGridCheckboxContainer", children: /* @__PURE__ */ jsx(
19
+ RadioButton,
20
+ {
21
21
  checked: isSelected,
22
22
  "data-testid": "grid-row-selection-radiobox",
23
23
  tabIndex: isFocused ? 0 : -1
24
- })
25
- });
24
+ }
25
+ ) });
26
26
  }
27
27
 
28
28
  export { RowSelectionRadioCellValue };
@@ -1 +1 @@
1
- {"version":3,"file":"RowSelectionRadioCellValue.js","sources":["../src/RowSelectionRadioCellValue.tsx"],"sourcesContent":["import { RadioButton } from \"@salt-ds/core\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport { GridCellValueProps } from \"./GridColumn\";\nimport { useSelectionContext } from \"./SelectionContext\";\n\nimport checkboxCellCss from \"./CheckboxCell.css\";\n\nexport function RowSelectionRadioCellValue<T>(props: GridCellValueProps<T>) {\n const { row, isFocused } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-checkbox-cell\",\n css: checkboxCellCss,\n window: targetWindow,\n });\n\n const { selRowIdxs } = useSelectionContext();\n\n const isSelected = selRowIdxs.has(row.index);\n\n return (\n <div className=\"saltGridCheckboxContainer\">\n <RadioButton\n checked={isSelected}\n data-testid=\"grid-row-selection-radiobox\"\n tabIndex={isFocused ? 0 : -1}\n />\n </div>\n );\n}\n"],"names":["checkboxCellCss"],"mappings":";;;;;;;AASO,SAAS,2BAA8B,KAA8B,EAAA;AAC1E,EAAM,MAAA,EAAE,GAAK,EAAA,SAAA,EAAc,GAAA,KAAA,CAAA;AAE3B,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,oBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAM,MAAA,EAAE,UAAW,EAAA,GAAI,mBAAoB,EAAA,CAAA;AAE3C,EAAA,MAAM,UAAa,GAAA,UAAA,CAAW,GAAI,CAAA,GAAA,CAAI,KAAK,CAAA,CAAA;AAE3C,EAAA,uBACG,GAAA,CAAA,KAAA,EAAA;AAAA,IAAI,SAAU,EAAA,2BAAA;AAAA,IACb,QAAC,kBAAA,GAAA,CAAA,WAAA,EAAA;AAAA,MACC,OAAS,EAAA,UAAA;AAAA,MACT,aAAY,EAAA,6BAAA;AAAA,MACZ,QAAA,EAAU,YAAY,CAAI,GAAA,CAAA,CAAA;AAAA,KAC5B,CAAA;AAAA,GACF,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"RowSelectionRadioCellValue.js","sources":["../src/RowSelectionRadioCellValue.tsx"],"sourcesContent":["import { RadioButton } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport type { GridCellValueProps } from \"./GridColumn\";\nimport { useSelectionContext } from \"./SelectionContext\";\n\nimport checkboxCellCss from \"./CheckboxCell.css\";\n\nexport function RowSelectionRadioCellValue<T>(props: GridCellValueProps<T>) {\n const { row, isFocused } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-checkbox-cell\",\n css: checkboxCellCss,\n window: targetWindow,\n });\n\n const { selRowIdxs } = useSelectionContext();\n\n const isSelected = selRowIdxs.has(row.index);\n\n return (\n <div className=\"saltGridCheckboxContainer\">\n <RadioButton\n checked={isSelected}\n data-testid=\"grid-row-selection-radiobox\"\n tabIndex={isFocused ? 0 : -1}\n />\n </div>\n );\n}\n"],"names":["checkboxCellCss"],"mappings":";;;;;;;AASO,SAAS,2BAA8B,KAA8B,EAAA;AAC1E,EAAM,MAAA,EAAE,GAAK,EAAA,SAAA,EAAc,GAAA,KAAA;AAE3B,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,oBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAM,MAAA,EAAE,UAAW,EAAA,GAAI,mBAAoB,EAAA;AAE3C,EAAA,MAAM,UAAa,GAAA,UAAA,CAAW,GAAI,CAAA,GAAA,CAAI,KAAK,CAAA;AAE3C,EACE,uBAAA,GAAA,CAAC,KAAI,EAAA,EAAA,SAAA,EAAU,2BACb,EAAA,QAAA,kBAAA,GAAA;AAAA,IAAC,WAAA;AAAA,IAAA;AAAA,MACC,OAAS,EAAA,UAAA;AAAA,MACT,aAAY,EAAA,6BAAA;AAAA,MACZ,QAAA,EAAU,YAAY,CAAI,GAAA,CAAA;AAAA;AAAA,GAE9B,EAAA,CAAA;AAEJ;;;;"}
@@ -1,9 +1,9 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
- import { RowSelectionRadioCellValue } from './RowSelectionRadioCellValue.js';
2
+ import { useCallback } from 'react';
3
3
  import { GridColumn } from './GridColumn.js';
4
+ import { RowSelectionRadioCellValue } from './RowSelectionRadioCellValue.js';
4
5
  import { RowSelectionRadioHeaderCell } from './RowSelectionRadioHeaderCell.js';
5
6
  import { useSelectionContext } from './SelectionContext.js';
6
- import { useCallback } from 'react';
7
7
 
8
8
  function RowSelectionRadioColumn(props) {
9
9
  const { selectRows } = useSelectionContext();
@@ -17,13 +17,16 @@ function RowSelectionRadioColumn(props) {
17
17
  },
18
18
  [selectRows]
19
19
  );
20
- return /* @__PURE__ */ jsx(GridColumn, {
21
- ...props,
22
- defaultWidth: 100,
23
- headerComponent: RowSelectionRadioHeaderCell,
24
- cellValueComponent: RowSelectionRadioCellValue,
25
- onKeyDown
26
- });
20
+ return /* @__PURE__ */ jsx(
21
+ GridColumn,
22
+ {
23
+ ...props,
24
+ defaultWidth: 100,
25
+ headerComponent: RowSelectionRadioHeaderCell,
26
+ cellValueComponent: RowSelectionRadioCellValue,
27
+ onKeyDown
28
+ }
29
+ );
27
30
  }
28
31
 
29
32
  export { RowSelectionRadioColumn };
@@ -1 +1 @@
1
- {"version":3,"file":"RowSelectionRadioColumn.js","sources":["../src/RowSelectionRadioColumn.tsx"],"sourcesContent":["import { RowSelectionRadioCellValue } from \"./RowSelectionRadioCellValue\";\nimport { GridColumn, GridColumnProps } from \"./GridColumn\";\nimport { RowSelectionRadioHeaderCell } from \"./RowSelectionRadioHeaderCell\";\nimport { useSelectionContext } from \"./SelectionContext\";\nimport { KeyboardEvent, useCallback } from \"react\";\n\nexport type RowSelectionRadioColumnProps<T> = Omit<\n GridColumnProps<T>,\n \"width\" | \"name\"\n>;\n\nexport function RowSelectionRadioColumn<T>(\n props: RowSelectionRadioColumnProps<T>\n) {\n const { selectRows } = useSelectionContext();\n\n const onKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>, rowIndex: number) => {\n if (event.key === \" \") {\n selectRows({ rowIndex });\n event.preventDefault();\n event.stopPropagation();\n }\n },\n [selectRows]\n );\n\n return (\n <GridColumn\n {...props}\n defaultWidth={100}\n headerComponent={RowSelectionRadioHeaderCell}\n cellValueComponent={RowSelectionRadioCellValue}\n onKeyDown={onKeyDown}\n />\n );\n}\n"],"names":[],"mappings":";;;;;;;AAWO,SAAS,wBACd,KACA,EAAA;AACA,EAAM,MAAA,EAAE,UAAW,EAAA,GAAI,mBAAoB,EAAA,CAAA;AAE3C,EAAA,MAAM,SAAY,GAAA,WAAA;AAAA,IAChB,CAAC,OAAsC,QAAqB,KAAA;AAC1D,MAAI,IAAA,KAAA,CAAM,QAAQ,GAAK,EAAA;AACrB,QAAW,UAAA,CAAA,EAAE,UAAU,CAAA,CAAA;AACvB,QAAA,KAAA,CAAM,cAAe,EAAA,CAAA;AACrB,QAAA,KAAA,CAAM,eAAgB,EAAA,CAAA;AAAA,OACxB;AAAA,KACF;AAAA,IACA,CAAC,UAAU,CAAA;AAAA,GACb,CAAA;AAEA,EAAA,uBACG,GAAA,CAAA,UAAA,EAAA;AAAA,IACE,GAAG,KAAA;AAAA,IACJ,YAAc,EAAA,GAAA;AAAA,IACd,eAAiB,EAAA,2BAAA;AAAA,IACjB,kBAAoB,EAAA,0BAAA;AAAA,IACpB,SAAA;AAAA,GACF,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"RowSelectionRadioColumn.js","sources":["../src/RowSelectionRadioColumn.tsx"],"sourcesContent":["import { type KeyboardEvent, useCallback } from \"react\";\nimport { GridColumn, type GridColumnProps } from \"./GridColumn\";\nimport { RowSelectionRadioCellValue } from \"./RowSelectionRadioCellValue\";\nimport { RowSelectionRadioHeaderCell } from \"./RowSelectionRadioHeaderCell\";\nimport { useSelectionContext } from \"./SelectionContext\";\n\nexport type RowSelectionRadioColumnProps<T> = Omit<\n GridColumnProps<T>,\n \"width\" | \"name\"\n>;\n\nexport function RowSelectionRadioColumn<T>(\n props: RowSelectionRadioColumnProps<T>,\n) {\n const { selectRows } = useSelectionContext();\n\n const onKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>, rowIndex: number) => {\n if (event.key === \" \") {\n selectRows({ rowIndex });\n event.preventDefault();\n event.stopPropagation();\n }\n },\n [selectRows],\n );\n\n return (\n <GridColumn\n {...props}\n defaultWidth={100}\n headerComponent={RowSelectionRadioHeaderCell}\n cellValueComponent={RowSelectionRadioCellValue}\n onKeyDown={onKeyDown}\n />\n );\n}\n"],"names":[],"mappings":";;;;;;;AAWO,SAAS,wBACd,KACA,EAAA;AACA,EAAM,MAAA,EAAE,UAAW,EAAA,GAAI,mBAAoB,EAAA;AAE3C,EAAA,MAAM,SAAY,GAAA,WAAA;AAAA,IAChB,CAAC,OAAsC,QAAqB,KAAA;AAC1D,MAAI,IAAA,KAAA,CAAM,QAAQ,GAAK,EAAA;AACrB,QAAW,UAAA,CAAA,EAAE,UAAU,CAAA;AACvB,QAAA,KAAA,CAAM,cAAe,EAAA;AACrB,QAAA,KAAA,CAAM,eAAgB,EAAA;AAAA;AACxB,KACF;AAAA,IACA,CAAC,UAAU;AAAA,GACb;AAEA,EACE,uBAAA,GAAA;AAAA,IAAC,UAAA;AAAA,IAAA;AAAA,MACE,GAAG,KAAA;AAAA,MACJ,YAAc,EAAA,GAAA;AAAA,MACd,eAAiB,EAAA,2BAAA;AAAA,MACjB,kBAAoB,EAAA,0BAAA;AAAA,MACpB;AAAA;AAAA,GACF;AAEJ;;;;"}
@@ -1,8 +1,8 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
  import { clsx } from 'clsx';
3
3
  import { RadioButtonIcon } from '@salt-ds/core';
4
- import { useWindow } from '@salt-ds/window';
5
4
  import { useComponentCssInjection } from '@salt-ds/styles';
5
+ import { useWindow } from '@salt-ds/window';
6
6
  import { AutoSizeHeaderCell } from './HeaderCell.js';
7
7
  import css_248z from './CheckboxCell.css.js';
8
8
 
@@ -13,13 +13,7 @@ function RowSelectionRadioHeaderCell(props) {
13
13
  css: css_248z,
14
14
  window: targetWindow
15
15
  });
16
- return /* @__PURE__ */ jsx(AutoSizeHeaderCell, {
17
- ...props,
18
- children: /* @__PURE__ */ jsx("div", {
19
- className: clsx("saltGridCheckboxContainer", "saltGrid-hidden"),
20
- children: /* @__PURE__ */ jsx(RadioButtonIcon, {})
21
- })
22
- });
16
+ return /* @__PURE__ */ jsx(AutoSizeHeaderCell, { ...props, children: /* @__PURE__ */ jsx("div", { className: clsx("saltGridCheckboxContainer", "saltGrid-hidden"), children: /* @__PURE__ */ jsx(RadioButtonIcon, {}) }) });
23
17
  }
24
18
 
25
19
  export { RowSelectionRadioHeaderCell };
@@ -1 +1 @@
1
- {"version":3,"file":"RowSelectionRadioHeaderCell.js","sources":["../src/RowSelectionRadioHeaderCell.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\n\nimport { RadioButtonIcon } from \"@salt-ds/core\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport { AutoSizeHeaderCell } from \"./HeaderCell\";\nimport { HeaderCellProps } from \"./GridColumn\";\n\nimport checkboxCellCss from \"./CheckboxCell.css\";\n\nexport function RowSelectionRadioHeaderCell<T>(props: HeaderCellProps<T>) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-checkbox-cell\",\n css: checkboxCellCss,\n window: targetWindow,\n });\n\n return (\n <AutoSizeHeaderCell {...props}>\n <div className={clsx(\"saltGridCheckboxContainer\", \"saltGrid-hidden\")}>\n <RadioButtonIcon />\n </div>\n </AutoSizeHeaderCell>\n );\n}\n"],"names":["checkboxCellCss"],"mappings":";;;;;;;;AAWO,SAAS,4BAA+B,KAA2B,EAAA;AACxE,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,oBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAA,uBACG,GAAA,CAAA,kBAAA,EAAA;AAAA,IAAoB,GAAG,KAAA;AAAA,IACtB,QAAC,kBAAA,GAAA,CAAA,KAAA,EAAA;AAAA,MAAI,SAAA,EAAW,IAAK,CAAA,2BAAA,EAA6B,iBAAiB,CAAA;AAAA,MACjE,8BAAC,eAAgB,EAAA,EAAA,CAAA;AAAA,KACnB,CAAA;AAAA,GACF,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"RowSelectionRadioHeaderCell.js","sources":["../src/RowSelectionRadioHeaderCell.tsx"],"sourcesContent":["import { clsx } from \"clsx\";\n\nimport { RadioButtonIcon } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport type { HeaderCellProps } from \"./GridColumn\";\nimport { AutoSizeHeaderCell } from \"./HeaderCell\";\n\nimport checkboxCellCss from \"./CheckboxCell.css\";\n\nexport function RowSelectionRadioHeaderCell<T>(props: HeaderCellProps<T>) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-checkbox-cell\",\n css: checkboxCellCss,\n window: targetWindow,\n });\n\n return (\n <AutoSizeHeaderCell {...props}>\n <div className={clsx(\"saltGridCheckboxContainer\", \"saltGrid-hidden\")}>\n <RadioButtonIcon />\n </div>\n </AutoSizeHeaderCell>\n );\n}\n"],"names":["checkboxCellCss"],"mappings":";;;;;;;;AAWO,SAAS,4BAA+B,KAA2B,EAAA;AACxE,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,oBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAA,uBACG,GAAA,CAAA,kBAAA,EAAA,EAAoB,GAAG,KAAA,EACtB,8BAAC,KAAI,EAAA,EAAA,SAAA,EAAW,IAAK,CAAA,2BAAA,EAA6B,iBAAiB,CAAA,EACjE,QAAC,kBAAA,GAAA,CAAA,eAAA,EAAA,EAAgB,GACnB,CACF,EAAA,CAAA;AAEJ;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"RowValidationStatus.js","sources":["../src/RowValidationStatus.tsx"],"sourcesContent":["import { StatusIndicator } from \"@salt-ds/core\";\nimport { createContext, useContext } from \"react\";\nimport { CellValidationState, GridColumn, GridColumnProps } from \"./GridColumn\";\n\nexport const RowValidationStatusContext = createContext<{\n status?: CellValidationState;\n}>({});\n\nexport type RowValidationStatusColumnProps<T> = Omit<\n GridColumnProps<T>,\n \"width\" | \"name\"\n>;\n\nexport function RowValidationStatusColumn<T>(\n props: RowValidationStatusColumnProps<T>\n) {\n return (\n <GridColumn\n aria-label=\"Row status\"\n defaultWidth={30}\n cellValueComponent={RowValidationCell}\n {...props}\n />\n );\n}\n\nconst knownStatus = new Set([\"error\", \"warning\", \"success\"]);\n\nfunction RowValidationCell() {\n const rowValidationContext = useContext(RowValidationStatusContext);\n if (\n !rowValidationContext?.status ||\n !knownStatus.has(rowValidationContext.status)\n )\n return null;\n\n const validationStatus = rowValidationContext.status;\n\n return (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n height: \"100%\",\n width: \"100%\",\n }}\n >\n <StatusIndicator\n aria-label={`Row ${validationStatus}`}\n status={validationStatus}\n />\n </div>\n );\n}\n"],"names":[],"mappings":";;;;;AAIa,MAAA,0BAAA,GAA6B,aAEvC,CAAA,EAAE;;;;"}
1
+ {"version":3,"file":"RowValidationStatus.js","sources":["../src/RowValidationStatus.tsx"],"sourcesContent":["import { StatusIndicator } from \"@salt-ds/core\";\nimport { createContext, useContext } from \"react\";\nimport {\n type CellValidationState,\n GridColumn,\n type GridColumnProps,\n} from \"./GridColumn\";\n\nexport const RowValidationStatusContext = createContext<{\n status?: CellValidationState;\n}>({});\n\nexport type RowValidationStatusColumnProps<T> = Omit<\n GridColumnProps<T>,\n \"width\" | \"name\"\n>;\n\nexport function RowValidationStatusColumn<T>(\n props: RowValidationStatusColumnProps<T>,\n) {\n return (\n <GridColumn\n aria-label=\"Row status\"\n defaultWidth={30}\n cellValueComponent={RowValidationCell}\n {...props}\n />\n );\n}\n\nconst knownStatus = new Set([\"error\", \"warning\", \"success\"]);\n\nfunction RowValidationCell() {\n const rowValidationContext = useContext(RowValidationStatusContext);\n if (\n !rowValidationContext?.status ||\n !knownStatus.has(rowValidationContext.status)\n )\n return null;\n\n const validationStatus = rowValidationContext.status;\n\n return (\n <div\n style={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n height: \"100%\",\n width: \"100%\",\n }}\n >\n <StatusIndicator\n aria-label={`Row ${validationStatus}`}\n status={validationStatus}\n />\n </div>\n );\n}\n"],"names":[],"mappings":";;;;;AAQa,MAAA,0BAAA,GAA6B,aAEvC,CAAA,EAAE;;;;"}
@@ -6,7 +6,7 @@ const SelectionContext = createContext(
6
6
  const useSelectionContext = () => {
7
7
  const c = useContext(SelectionContext);
8
8
  if (!c) {
9
- throw new Error(`useSelectionContext invoked outside of a Grid`);
9
+ throw new Error("useSelectionContext invoked outside of a Grid");
10
10
  }
11
11
  return c;
12
12
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SelectionContext.js","sources":["../src/SelectionContext.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport { CellRange, SelectRowsOptions } from \"./internal\";\n\nexport interface SelectionContext {\n selectedCellRange: CellRange | undefined;\n selRowIdxs: Set<number>;\n isAnySelected: boolean;\n isAllSelected: boolean;\n selectRows: (args: SelectRowsOptions) => void;\n selectAll: () => void;\n unselectAll: () => void;\n}\n\nexport const SelectionContext = createContext<SelectionContext | undefined>(\n undefined\n);\n\nexport const useSelectionContext = () => {\n const c = useContext(SelectionContext);\n if (!c) {\n throw new Error(`useSelectionContext invoked outside of a Grid`);\n }\n return c;\n};\n"],"names":[],"mappings":";;AAaO,MAAM,gBAAmB,GAAA,aAAA;AAAA,EAC9B,KAAA,CAAA;AACF,EAAA;AAEO,MAAM,sBAAsB,MAAM;AACvC,EAAM,MAAA,CAAA,GAAI,WAAW,gBAAgB,CAAA,CAAA;AACrC,EAAA,IAAI,CAAC,CAAG,EAAA;AACN,IAAM,MAAA,IAAI,MAAM,CAA+C,6CAAA,CAAA,CAAA,CAAA;AAAA,GACjE;AACA,EAAO,OAAA,CAAA,CAAA;AACT;;;;"}
1
+ {"version":3,"file":"SelectionContext.js","sources":["../src/SelectionContext.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport type { CellRange, SelectRowsOptions } from \"./internal\";\n\nexport interface SelectionContext {\n selectedCellRange: CellRange | undefined;\n selRowIdxs: Set<number>;\n isAnySelected: boolean;\n isAllSelected: boolean;\n selectRows: (args: SelectRowsOptions) => void;\n selectAll: () => void;\n unselectAll: () => void;\n}\n\nexport const SelectionContext = createContext<SelectionContext | undefined>(\n undefined,\n);\n\nexport const useSelectionContext = () => {\n const c = useContext(SelectionContext);\n if (!c) {\n throw new Error(\"useSelectionContext invoked outside of a Grid\");\n }\n return c;\n};\n"],"names":[],"mappings":";;AAaO,MAAM,gBAAmB,GAAA,aAAA;AAAA,EAC9B,KAAA;AACF;AAEO,MAAM,sBAAsB,MAAM;AACvC,EAAM,MAAA,CAAA,GAAI,WAAW,gBAAgB,CAAA;AACrC,EAAA,IAAI,CAAC,CAAG,EAAA;AACN,IAAM,MAAA,IAAI,MAAM,+CAA+C,CAAA;AAAA;AAEjE,EAAO,OAAA,CAAA;AACT;;;;"}
@@ -6,7 +6,7 @@ const SizingContext = createContext(
6
6
  const useSizingContext = () => {
7
7
  const c = useContext(SizingContext);
8
8
  if (!c) {
9
- throw new Error(`useSizingContext invoked outside of a Grid`);
9
+ throw new Error("useSizingContext invoked outside of a Grid");
10
10
  }
11
11
  return c;
12
12
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SizingContext.js","sources":["../src/SizingContext.ts"],"sourcesContent":["import React, { createContext, useContext } from \"react\";\n\nexport interface SizingContext {\n rowHeight: number;\n resizeColumn: (colIdx: number, width: number) => void;\n onResizeHandleMouseDown: (event: React.MouseEvent<HTMLDivElement>) => void;\n}\n\nexport const SizingContext = createContext<SizingContext | undefined>(\n undefined\n);\nexport const useSizingContext = () => {\n const c = useContext(SizingContext);\n if (!c) {\n throw new Error(`useSizingContext invoked outside of a Grid`);\n }\n return c;\n};\n"],"names":[],"mappings":";;AAQO,MAAM,aAAgB,GAAA,aAAA;AAAA,EAC3B,KAAA,CAAA;AACF,EAAA;AACO,MAAM,mBAAmB,MAAM;AACpC,EAAM,MAAA,CAAA,GAAI,WAAW,aAAa,CAAA,CAAA;AAClC,EAAA,IAAI,CAAC,CAAG,EAAA;AACN,IAAM,MAAA,IAAI,MAAM,CAA4C,0CAAA,CAAA,CAAA,CAAA;AAAA,GAC9D;AACA,EAAO,OAAA,CAAA,CAAA;AACT;;;;"}
1
+ {"version":3,"file":"SizingContext.js","sources":["../src/SizingContext.ts"],"sourcesContent":["import type { MouseEvent } from \"react\";\nimport { createContext, useContext } from \"react\";\n\nexport interface SizingContext {\n rowHeight: number;\n resizeColumn: (colIdx: number, width: number) => void;\n onResizeHandleMouseDown: (event: MouseEvent<HTMLDivElement>) => void;\n}\n\nexport const SizingContext = createContext<SizingContext | undefined>(\n undefined,\n);\nexport const useSizingContext = () => {\n const c = useContext(SizingContext);\n if (!c) {\n throw new Error(\"useSizingContext invoked outside of a Grid\");\n }\n return c;\n};\n"],"names":[],"mappings":";;AASO,MAAM,aAAgB,GAAA,aAAA;AAAA,EAC3B,KAAA;AACF;AACO,MAAM,mBAAmB,MAAM;AACpC,EAAM,MAAA,CAAA,GAAI,WAAW,aAAa,CAAA;AAClC,EAAA,IAAI,CAAC,CAAG,EAAA;AACN,IAAM,MAAA,IAAI,MAAM,4CAA4C,CAAA;AAAA;AAE9D,EAAO,OAAA,CAAA;AACT;;;;"}
@@ -1,4 +1,4 @@
1
- var css_248z = ".saltGridTextCellEditor {\n}\n\n.saltGridTextCellEditor-inputContainer {\n background: var(--grid-background);\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n box-sizing: border-box;\n border-style: var(--grid-cursor-border-style);\n border-width: var(--grid-cursor-border-width);\n border-color: var(--grid-cursor-borderColor);\n padding: 0;\n}\n\n.saltGridTextCellEditor input {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n outline: none;\n border: none;\n padding: 0 calc(var(--grid-padding) - 2px);\n font-size: var(--grid-fontSize);\n font-family: inherit;\n background: var(--grid-editableCell-background-active);\n color: var(--grid-editableCell-color-active);\n}\n";
1
+ var css_248z = ".saltGridTextCellEditor-inputContainer {\n background: var(--grid-background);\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n box-sizing: border-box;\n border-style: var(--grid-cursor-border-style);\n border-width: var(--grid-cursor-border-width);\n border-color: var(--grid-cursor-borderColor);\n padding: 0;\n}\n\n.saltGridTextCellEditor input {\n position: absolute;\n top: 0;\n left: 0;\n bottom: 0;\n right: 0;\n outline: none;\n border: none;\n padding: 0 calc(var(--grid-padding) - 2px);\n font-size: var(--grid-fontSize);\n font-family: inherit;\n background: var(--grid-editableCell-background-active);\n color: var(--grid-editableCell-color-active);\n}\n";
2
2
 
3
3
  export { css_248z as default };
4
4
  //# sourceMappingURL=TextCellEditor.css.js.map
@@ -60,24 +60,20 @@ function TextCellEditor(props) {
60
60
  document == null ? void 0 : document.removeEventListener("mousedown", focusOut, true);
61
61
  };
62
62
  }, [endEditMode, editorText]);
63
- return /* @__PURE__ */ jsxs(CellFrame, {
64
- separator: column == null ? void 0 : column.separator,
65
- className: withBaseName(),
66
- children: [
67
- /* @__PURE__ */ jsx("div", {
68
- className: withBaseName("inputContainer"),
69
- children: /* @__PURE__ */ jsx("input", {
70
- "data-testid": "grid-cell-editor-input",
71
- ref: inputRef,
72
- autoFocus: true,
73
- value: editorText,
74
- onChange,
75
- onKeyDown
76
- })
77
- }),
78
- /* @__PURE__ */ jsx(CornerTag, {})
79
- ]
80
- });
63
+ return /* @__PURE__ */ jsxs(CellFrame, { separator: column == null ? void 0 : column.separator, className: withBaseName(), children: [
64
+ /* @__PURE__ */ jsx("div", { className: withBaseName("inputContainer"), children: /* @__PURE__ */ jsx(
65
+ "input",
66
+ {
67
+ "data-testid": "grid-cell-editor-input",
68
+ ref: inputRef,
69
+ autoFocus: true,
70
+ value: editorText,
71
+ onChange,
72
+ onKeyDown
73
+ }
74
+ ) }),
75
+ /* @__PURE__ */ jsx(CornerTag, {})
76
+ ] });
81
77
  }
82
78
 
83
79
  export { TextCellEditor };
@@ -1 +1 @@
1
- {"version":3,"file":"TextCellEditor.js","sources":["../src/TextCellEditor.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport {\n ChangeEventHandler,\n KeyboardEventHandler,\n useEffect,\n useRef,\n useState,\n} from \"react\";\n\nimport { CellFrame } from \"./CellFrame\";\nimport { CornerTag } from \"./CornerTag\";\nimport { useEditorContext } from \"./EditorContext\";\nimport { GridColumnModel, GridRowModel } from \"./Grid\";\n\nimport textCellEditorCss from \"./TextCellEditor.css\";\n\nconst withBaseName = makePrefixer(\"saltGridTextCellEditor\");\n\nexport interface TextCellEditorProps<T> {\n row?: GridRowModel<T>;\n column?: GridColumnModel<T>;\n}\n\nexport function TextCellEditor<T>(props: TextCellEditorProps<T>) {\n const { column, row } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-text-cell-editor\",\n css: textCellEditorCss,\n window: targetWindow,\n });\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n const { endEditMode, cancelEditMode, initialText } = useEditorContext();\n\n const [editorText, setEditorText] = useState<string>(\n initialText != null ? initialText : column!.info.props.getValue!(row!.data)\n );\n\n const initialSelectionRef = useRef(!!initialText);\n\n const onChange: ChangeEventHandler<HTMLInputElement> = (e) => {\n setEditorText(e.target.value);\n };\n\n const onKeyDown: KeyboardEventHandler<HTMLInputElement> = (event) => {\n if (event.key === \"Enter\") {\n endEditMode(editorText);\n return;\n }\n if (event.key === \"Escape\") {\n cancelEditMode();\n return;\n }\n if (event.key === \"Tab\") {\n endEditMode(editorText);\n event.preventDefault();\n return;\n }\n event.stopPropagation();\n };\n\n useEffect(() => {\n if (inputRef.current && !initialSelectionRef.current) {\n inputRef.current.select();\n initialSelectionRef.current = true;\n }\n }, [inputRef.current]);\n\n useEffect(() => {\n const input = inputRef.current;\n const focusOut = (event: FocusEvent) => {\n if (!input?.contains(event.target as Node)) {\n endEditMode(editorText);\n }\n };\n\n // This uses the capture phase to detect clicks outside the input to avoid a race condition where the component gets unmounted when edit mode ends.\n document?.addEventListener(\"mousedown\", focusOut, true);\n\n return () => {\n document?.removeEventListener(\"mousedown\", focusOut, true);\n };\n }, [endEditMode, editorText]);\n\n return (\n <CellFrame separator={column?.separator} className={withBaseName()}>\n <div className={withBaseName(\"inputContainer\")}>\n <input\n data-testid=\"grid-cell-editor-input\"\n ref={inputRef}\n autoFocus={true}\n value={editorText}\n onChange={onChange}\n onKeyDown={onKeyDown}\n />\n </div>\n <CornerTag />\n </CellFrame>\n );\n}\n"],"names":["textCellEditorCss"],"mappings":"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"}
1
+ {"version":3,"file":"TextCellEditor.js","sources":["../src/TextCellEditor.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport {\n type ChangeEventHandler,\n type KeyboardEventHandler,\n useEffect,\n useRef,\n useState,\n} from \"react\";\n\nimport { CellFrame } from \"./CellFrame\";\nimport { CornerTag } from \"./CornerTag\";\nimport { useEditorContext } from \"./EditorContext\";\nimport type { GridColumnModel, GridRowModel } from \"./Grid\";\n\nimport textCellEditorCss from \"./TextCellEditor.css\";\n\nconst withBaseName = makePrefixer(\"saltGridTextCellEditor\");\n\nexport interface TextCellEditorProps<T> {\n row?: GridRowModel<T>;\n column?: GridColumnModel<T>;\n}\n\nexport function TextCellEditor<T>(props: TextCellEditorProps<T>) {\n const { column, row } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-text-cell-editor\",\n css: textCellEditorCss,\n window: targetWindow,\n });\n\n const inputRef = useRef<HTMLInputElement>(null);\n\n const { endEditMode, cancelEditMode, initialText } = useEditorContext();\n\n const [editorText, setEditorText] = useState<string>(\n initialText != null ? initialText : column!.info.props.getValue!(row!.data),\n );\n\n const initialSelectionRef = useRef(!!initialText);\n\n const onChange: ChangeEventHandler<HTMLInputElement> = (e) => {\n setEditorText(e.target.value);\n };\n\n const onKeyDown: KeyboardEventHandler<HTMLInputElement> = (event) => {\n if (event.key === \"Enter\") {\n endEditMode(editorText);\n return;\n }\n if (event.key === \"Escape\") {\n cancelEditMode();\n return;\n }\n if (event.key === \"Tab\") {\n endEditMode(editorText);\n event.preventDefault();\n return;\n }\n event.stopPropagation();\n };\n\n useEffect(() => {\n if (inputRef.current && !initialSelectionRef.current) {\n inputRef.current.select();\n initialSelectionRef.current = true;\n }\n }, [inputRef.current]);\n\n useEffect(() => {\n const input = inputRef.current;\n const focusOut = (event: FocusEvent) => {\n if (!input?.contains(event.target as Node)) {\n endEditMode(editorText);\n }\n };\n\n // This uses the capture phase to detect clicks outside the input to avoid a race condition where the component gets unmounted when edit mode ends.\n document?.addEventListener(\"mousedown\", focusOut, true);\n\n return () => {\n document?.removeEventListener(\"mousedown\", focusOut, true);\n };\n }, [endEditMode, editorText]);\n\n return (\n <CellFrame separator={column?.separator} className={withBaseName()}>\n <div className={withBaseName(\"inputContainer\")}>\n <input\n data-testid=\"grid-cell-editor-input\"\n ref={inputRef}\n autoFocus={true}\n value={editorText}\n onChange={onChange}\n onKeyDown={onKeyDown}\n />\n </div>\n <CornerTag />\n </CellFrame>\n );\n}\n"],"names":["textCellEditorCss"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- var css_248z = ".saltGridCellMeasure {\n position: fixed;\n top: -1000px;\n left: 0;\n}\n\n.saltGridCellMeasure table {\n}\n\n.saltGridCellMeasure tr {\n height: var(--grid-row-height);\n}\n\n.saltGridCellMeasure th {\n box-sizing: border-box;\n overflow: hidden;\n}\n";
1
+ var css_248z = ".saltGridCellMeasure {\n position: fixed;\n top: -1000px;\n left: 0;\n}\n\n.saltGridCellMeasure tr {\n height: var(--grid-row-height);\n}\n\n.saltGridCellMeasure th {\n box-sizing: border-box;\n overflow: hidden;\n}\n";
2
2
 
3
3
  export { css_248z as default };
4
4
  //# sourceMappingURL=CellMeasure.css.js.map
@@ -1,8 +1,8 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
- import { useRef, useEffect } from 'react';
3
2
  import { makePrefixer } from '@salt-ds/core';
4
- import { useWindow } from '@salt-ds/window';
5
3
  import { useComponentCssInjection } from '@salt-ds/styles';
4
+ import { useWindow } from '@salt-ds/window';
5
+ import { useRef, useEffect } from 'react';
6
6
  import css_248z from './CellMeasure.css.js';
7
7
 
8
8
  const withBaseName = makePrefixer("saltGridCellMeasure");
@@ -25,20 +25,7 @@ function CellMeasure(props) {
25
25
  }
26
26
  }
27
27
  });
28
- return /* @__PURE__ */ jsx("div", {
29
- className: withBaseName(),
30
- children: /* @__PURE__ */ jsx("table", {
31
- "aria-hidden": true,
32
- children: /* @__PURE__ */ jsx("thead", {
33
- children: /* @__PURE__ */ jsx("tr", {
34
- ref: rowRef,
35
- children: /* @__PURE__ */ jsx("th", {
36
- children: "Invisible Cell"
37
- })
38
- })
39
- })
40
- })
41
- });
28
+ return /* @__PURE__ */ jsx("div", { className: withBaseName(), children: /* @__PURE__ */ jsx("table", { "aria-hidden": true, children: /* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsx("tr", { ref: rowRef, children: /* @__PURE__ */ jsx("th", { children: "Invisible Cell" }) }) }) }) });
42
29
  }
43
30
 
44
31
  export { CellMeasure };
@@ -1 +1 @@
1
- {"version":3,"file":"CellMeasure.js","sources":["../src/internal/CellMeasure.tsx"],"sourcesContent":["import { useEffect, useRef } from \"react\";\nimport { makePrefixer } from \"@salt-ds/core\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport cellMeasureCss from \"./CellMeasure.css\";\n\nconst withBaseName = makePrefixer(\"saltGridCellMeasure\");\n\nexport interface CellMeasureProps<T> {\n setRowHeight: (rowHeight: number) => void;\n}\n\n// Renders a cell in invisible location, measures its height and provides it to\n// the grid.\nexport function CellMeasure<T>(props: CellMeasureProps<T>) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-cell-measure\",\n css: cellMeasureCss,\n window: targetWindow,\n });\n\n const rowRef = useRef<HTMLTableRowElement>(null);\n const heightRef = useRef<number>(-1);\n\n const { setRowHeight } = props;\n\n useEffect(() => {\n if (rowRef.current) {\n const height = rowRef.current.getBoundingClientRect().height;\n if (heightRef.current !== height) {\n // console.log(`Row height changing to ${height}px`);\n heightRef.current = height;\n setRowHeight(height);\n }\n }\n });\n\n return (\n <div className={withBaseName()}>\n <table aria-hidden>\n <thead>\n <tr ref={rowRef}>\n <th>Invisible Cell</th>\n </tr>\n </thead>\n </table>\n </div>\n );\n}\n"],"names":["cellMeasureCss"],"mappings":";;;;;;;AAOA,MAAM,YAAA,GAAe,aAAa,qBAAqB,CAAA,CAAA;AAQhD,SAAS,YAAe,KAA4B,EAAA;AACzD,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,mBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAM,MAAA,MAAA,GAAS,OAA4B,IAAI,CAAA,CAAA;AAC/C,EAAM,MAAA,SAAA,GAAY,OAAe,CAAE,CAAA,CAAA,CAAA;AAEnC,EAAM,MAAA,EAAE,cAAiB,GAAA,KAAA,CAAA;AAEzB,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,OAAO,OAAS,EAAA;AAClB,MAAA,MAAM,MAAS,GAAA,MAAA,CAAO,OAAQ,CAAA,qBAAA,EAAwB,CAAA,MAAA,CAAA;AACtD,MAAI,IAAA,SAAA,CAAU,YAAY,MAAQ,EAAA;AAEhC,QAAA,SAAA,CAAU,OAAU,GAAA,MAAA,CAAA;AACpB,QAAA,YAAA,CAAa,MAAM,CAAA,CAAA;AAAA,OACrB;AAAA,KACF;AAAA,GACD,CAAA,CAAA;AAED,EAAA,uBACG,GAAA,CAAA,KAAA,EAAA;AAAA,IAAI,WAAW,YAAa,EAAA;AAAA,IAC3B,QAAC,kBAAA,GAAA,CAAA,OAAA,EAAA;AAAA,MAAM,aAAW,EAAA,IAAA;AAAA,MAChB,QAAC,kBAAA,GAAA,CAAA,OAAA,EAAA;AAAA,QACC,QAAC,kBAAA,GAAA,CAAA,IAAA,EAAA;AAAA,UAAG,GAAK,EAAA,MAAA;AAAA,UACP,QAAC,kBAAA,GAAA,CAAA,IAAA,EAAA;AAAA,YAAG,QAAA,EAAA,gBAAA;AAAA,WAAc,CAAA;AAAA,SACpB,CAAA;AAAA,OACF,CAAA;AAAA,KACF,CAAA;AAAA,GACF,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"CellMeasure.js","sources":["../src/internal/CellMeasure.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useEffect, useRef } from \"react\";\n\nimport cellMeasureCss from \"./CellMeasure.css\";\n\nconst withBaseName = makePrefixer(\"saltGridCellMeasure\");\n\nexport interface CellMeasureProps<T> {\n setRowHeight: (rowHeight: number) => void;\n}\n\n// Renders a cell in invisible location, measures its height and provides it to\n// the grid.\nexport function CellMeasure<T>(props: CellMeasureProps<T>) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-cell-measure\",\n css: cellMeasureCss,\n window: targetWindow,\n });\n\n const rowRef = useRef<HTMLTableRowElement>(null);\n const heightRef = useRef<number>(-1);\n\n const { setRowHeight } = props;\n\n useEffect(() => {\n if (rowRef.current) {\n const height = rowRef.current.getBoundingClientRect().height;\n if (heightRef.current !== height) {\n // console.log(`Row height changing to ${height}px`);\n heightRef.current = height;\n setRowHeight(height);\n }\n }\n });\n\n return (\n <div className={withBaseName()}>\n <table aria-hidden>\n <thead>\n <tr ref={rowRef}>\n <th>Invisible Cell</th>\n </tr>\n </thead>\n </table>\n </div>\n );\n}\n"],"names":["cellMeasureCss"],"mappings":";;;;;;;AAOA,MAAM,YAAA,GAAe,aAAa,qBAAqB,CAAA;AAQhD,SAAS,YAAe,KAA4B,EAAA;AACzD,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,mBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAM,MAAA,MAAA,GAAS,OAA4B,IAAI,CAAA;AAC/C,EAAM,MAAA,SAAA,GAAY,OAAe,CAAE,CAAA,CAAA;AAEnC,EAAM,MAAA,EAAE,cAAiB,GAAA,KAAA;AAEzB,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,OAAO,OAAS,EAAA;AAClB,MAAA,MAAM,MAAS,GAAA,MAAA,CAAO,OAAQ,CAAA,qBAAA,EAAwB,CAAA,MAAA;AACtD,MAAI,IAAA,SAAA,CAAU,YAAY,MAAQ,EAAA;AAEhC,QAAA,SAAA,CAAU,OAAU,GAAA,MAAA;AACpB,QAAA,YAAA,CAAa,MAAM,CAAA;AAAA;AACrB;AACF,GACD,CAAA;AAED,EACE,uBAAA,GAAA,CAAC,SAAI,SAAW,EAAA,YAAA,IACd,QAAC,kBAAA,GAAA,CAAA,OAAA,EAAA,EAAM,eAAW,IAChB,EAAA,QAAA,kBAAA,GAAA,CAAC,WACC,QAAC,kBAAA,GAAA,CAAA,IAAA,EAAA,EAAG,KAAK,MACP,EAAA,QAAA,kBAAA,GAAA,CAAC,QAAG,QAAc,EAAA,gBAAA,EAAA,CAAA,EACpB,CACF,EAAA,CAAA,EACF,CACF,EAAA,CAAA;AAEJ;;;;"}
@@ -1,40 +1,46 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
2
 
3
- const CellWarningIcon = /* @__PURE__ */ jsx("svg", {
4
- "aria-hidden": true,
5
- height: "1em",
6
- viewBox: "0 0 10 8",
7
- fill: "none",
8
- xmlns: "http://www.w3.org/2000/svg",
9
- children: /* @__PURE__ */ jsx("path", {
10
- d: "M4.6188 0L9.2376 8H0L4.6188 0Z"
11
- })
12
- });
13
- const CellErrorIcon = /* @__PURE__ */ jsx("svg", {
14
- "aria-hidden": true,
15
- width: "1em",
16
- height: "1em",
17
- viewBox: "0 0 8 8",
18
- fill: "none",
19
- xmlns: "http://www.w3.org/2000/svg",
20
- children: /* @__PURE__ */ jsx("circle", {
21
- cx: "4",
22
- cy: "4",
23
- r: "4"
24
- })
25
- });
26
- const CellSuccessIcon = /* @__PURE__ */ jsx("svg", {
27
- xmlns: "http://www.w3.org/2000/svg",
28
- width: "1em",
29
- viewBox: "0 0 14 14",
30
- fill: "none",
31
- children: /* @__PURE__ */ jsx("path", {
32
- fillRule: "evenodd",
33
- clipRule: "evenodd",
34
- d: "M13.7668 2.63645L5.06034 12.0309L0.277532 7.56074L1.47248 6.28223L4.97136 9.55242L12.4832 1.4469L13.7668 2.63645Z",
35
- fill: "#24874B"
36
- })
37
- });
3
+ const CellWarningIcon = /* @__PURE__ */ jsx(
4
+ "svg",
5
+ {
6
+ "aria-hidden": true,
7
+ height: "1em",
8
+ viewBox: "0 0 10 8",
9
+ fill: "none",
10
+ xmlns: "http://www.w3.org/2000/svg",
11
+ children: /* @__PURE__ */ jsx("path", { d: "M4.6188 0L9.2376 8H0L4.6188 0Z" })
12
+ }
13
+ );
14
+ const CellErrorIcon = /* @__PURE__ */ jsx(
15
+ "svg",
16
+ {
17
+ "aria-hidden": true,
18
+ width: "1em",
19
+ height: "1em",
20
+ viewBox: "0 0 8 8",
21
+ fill: "none",
22
+ xmlns: "http://www.w3.org/2000/svg",
23
+ children: /* @__PURE__ */ jsx("circle", { cx: "4", cy: "4", r: "4" })
24
+ }
25
+ );
26
+ const CellSuccessIcon = /* @__PURE__ */ jsx(
27
+ "svg",
28
+ {
29
+ xmlns: "http://www.w3.org/2000/svg",
30
+ width: "1em",
31
+ viewBox: "0 0 14 14",
32
+ fill: "none",
33
+ children: /* @__PURE__ */ jsx(
34
+ "path",
35
+ {
36
+ fillRule: "evenodd",
37
+ clipRule: "evenodd",
38
+ d: "M13.7668 2.63645L5.06034 12.0309L0.277532 7.56074L1.47248 6.28223L4.97136 9.55242L12.4832 1.4469L13.7668 2.63645Z",
39
+ fill: "#24874B"
40
+ }
41
+ )
42
+ }
43
+ );
38
44
 
39
45
  export { CellErrorIcon, CellSuccessIcon, CellWarningIcon };
40
46
  //# sourceMappingURL=CellStatusIcons.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CellStatusIcons.js","sources":["../src/internal/CellStatusIcons.tsx"],"sourcesContent":["export const CellWarningIcon = (\n <svg\n aria-hidden\n height=\"1em\"\n viewBox=\"0 0 10 8\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M4.6188 0L9.2376 8H0L4.6188 0Z\" />\n </svg>\n);\n\nexport const CellErrorIcon = (\n <svg\n aria-hidden\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 8 8\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"4\" cy=\"4\" r=\"4\" />\n </svg>\n);\n\nexport const CellSuccessIcon = (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"1em\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M13.7668 2.63645L5.06034 12.0309L0.277532 7.56074L1.47248 6.28223L4.97136 9.55242L12.4832 1.4469L13.7668 2.63645Z\"\n fill=\"#24874B\"\n />\n </svg>\n);\n"],"names":[],"mappings":";;AAAO,MAAM,kCACV,GAAA,CAAA,KAAA,EAAA;AAAA,EACC,aAAW,EAAA,IAAA;AAAA,EACX,MAAO,EAAA,KAAA;AAAA,EACP,OAAQ,EAAA,UAAA;AAAA,EACR,IAAK,EAAA,MAAA;AAAA,EACL,KAAM,EAAA,4BAAA;AAAA,EAEN,QAAC,kBAAA,GAAA,CAAA,MAAA,EAAA;AAAA,IAAK,CAAE,EAAA,gCAAA;AAAA,GAAiC,CAAA;AAAA,CAC3C,EAAA;AAGK,MAAM,gCACV,GAAA,CAAA,KAAA,EAAA;AAAA,EACC,aAAW,EAAA,IAAA;AAAA,EACX,KAAM,EAAA,KAAA;AAAA,EACN,MAAO,EAAA,KAAA;AAAA,EACP,OAAQ,EAAA,SAAA;AAAA,EACR,IAAK,EAAA,MAAA;AAAA,EACL,KAAM,EAAA,4BAAA;AAAA,EAEN,QAAC,kBAAA,GAAA,CAAA,QAAA,EAAA;AAAA,IAAO,EAAG,EAAA,GAAA;AAAA,IAAI,EAAG,EAAA,GAAA;AAAA,IAAI,CAAE,EAAA,GAAA;AAAA,GAAI,CAAA;AAAA,CAC9B,EAAA;AAGK,MAAM,kCACV,GAAA,CAAA,KAAA,EAAA;AAAA,EACC,KAAM,EAAA,4BAAA;AAAA,EACN,KAAM,EAAA,KAAA;AAAA,EACN,OAAQ,EAAA,WAAA;AAAA,EACR,IAAK,EAAA,MAAA;AAAA,EAEL,QAAC,kBAAA,GAAA,CAAA,MAAA,EAAA;AAAA,IACC,QAAS,EAAA,SAAA;AAAA,IACT,QAAS,EAAA,SAAA;AAAA,IACT,CAAE,EAAA,mHAAA;AAAA,IACF,IAAK,EAAA,SAAA;AAAA,GACP,CAAA;AAAA,CACF;;;;"}
1
+ {"version":3,"file":"CellStatusIcons.js","sources":["../src/internal/CellStatusIcons.tsx"],"sourcesContent":["export const CellWarningIcon = (\n <svg\n aria-hidden\n height=\"1em\"\n viewBox=\"0 0 10 8\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <path d=\"M4.6188 0L9.2376 8H0L4.6188 0Z\" />\n </svg>\n);\n\nexport const CellErrorIcon = (\n <svg\n aria-hidden\n width=\"1em\"\n height=\"1em\"\n viewBox=\"0 0 8 8\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n >\n <circle cx=\"4\" cy=\"4\" r=\"4\" />\n </svg>\n);\n\nexport const CellSuccessIcon = (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"1em\"\n viewBox=\"0 0 14 14\"\n fill=\"none\"\n >\n <path\n fillRule=\"evenodd\"\n clipRule=\"evenodd\"\n d=\"M13.7668 2.63645L5.06034 12.0309L0.277532 7.56074L1.47248 6.28223L4.97136 9.55242L12.4832 1.4469L13.7668 2.63645Z\"\n fill=\"#24874B\"\n />\n </svg>\n);\n"],"names":[],"mappings":";;AAAO,MAAM,eACX,mBAAA,GAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,aAAW,EAAA,IAAA;AAAA,IACX,MAAO,EAAA,KAAA;AAAA,IACP,OAAQ,EAAA,UAAA;AAAA,IACR,IAAK,EAAA,MAAA;AAAA,IACL,KAAM,EAAA,4BAAA;AAAA,IAEN,QAAA,kBAAA,GAAA,CAAC,MAAK,EAAA,EAAA,CAAA,EAAE,gCAAiC,EAAA;AAAA;AAC3C;AAGK,MAAM,aACX,mBAAA,GAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,aAAW,EAAA,IAAA;AAAA,IACX,KAAM,EAAA,KAAA;AAAA,IACN,MAAO,EAAA,KAAA;AAAA,IACP,OAAQ,EAAA,SAAA;AAAA,IACR,IAAK,EAAA,MAAA;AAAA,IACL,KAAM,EAAA,4BAAA;AAAA,IAEN,8BAAC,QAAO,EAAA,EAAA,EAAA,EAAG,KAAI,EAAG,EAAA,GAAA,EAAI,GAAE,GAAI,EAAA;AAAA;AAC9B;AAGK,MAAM,eACX,mBAAA,GAAA;AAAA,EAAC,KAAA;AAAA,EAAA;AAAA,IACC,KAAM,EAAA,4BAAA;AAAA,IACN,KAAM,EAAA,KAAA;AAAA,IACN,OAAQ,EAAA,WAAA;AAAA,IACR,IAAK,EAAA,MAAA;AAAA,IAEL,QAAA,kBAAA,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,QAAS,EAAA,SAAA;AAAA,QACT,QAAS,EAAA,SAAA;AAAA,QACT,CAAE,EAAA,mHAAA;AAAA,QACF,IAAK,EAAA;AAAA;AAAA;AACP;AACF;;;;"}
@@ -1,8 +1,8 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
- import { useMemo } from 'react';
3
2
  import { makePrefixer } from '@salt-ds/core';
4
- import { useWindow } from '@salt-ds/window';
5
3
  import { useComponentCssInjection } from '@salt-ds/styles';
4
+ import { useWindow } from '@salt-ds/window';
5
+ import { useMemo } from 'react';
6
6
  import css_248z from './ColumnDropTarget.css.js';
7
7
 
8
8
  const withBaseName = makePrefixer("saltGridColumnDropTarget");
@@ -22,10 +22,7 @@ function ColumnDropTarget(props) {
22
22
  if (props.x === void 0) {
23
23
  return null;
24
24
  }
25
- return /* @__PURE__ */ jsx("div", {
26
- className: withBaseName(),
27
- style
28
- });
25
+ return /* @__PURE__ */ jsx("div", { className: withBaseName(), style });
29
26
  }
30
27
 
31
28
  export { ColumnDropTarget };
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnDropTarget.js","sources":["../src/internal/ColumnDropTarget.tsx"],"sourcesContent":["import { useMemo } from \"react\";\nimport { makePrefixer } from \"@salt-ds/core\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport columDropTargetCss from \"./ColumnDropTarget.css\";\n\nconst withBaseName = makePrefixer(\"saltGridColumnDropTarget\");\n\nexport interface ColumnDropTargetProps {\n x?: number;\n}\n\n// When the user drags a column, this component is used to show the potential\n// drop target. Experimental feature. No UX yet.\nexport function ColumnDropTarget(props: ColumnDropTargetProps) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-column-drop-target\",\n css: columDropTargetCss,\n window: targetWindow,\n });\n\n const { x = 0 } = props;\n\n const style = useMemo(() => {\n return {\n left: `${x - 2}px`,\n };\n }, [x]);\n\n if (props.x === undefined) {\n return null;\n }\n\n return <div className={withBaseName()} style={style} />;\n}\n"],"names":["columDropTargetCss"],"mappings":";;;;;;;AAOA,MAAM,YAAA,GAAe,aAAa,0BAA0B,CAAA,CAAA;AAQrD,SAAS,iBAAiB,KAA8B,EAAA;AAC7D,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,yBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAM,MAAA,EAAE,CAAI,GAAA,CAAA,EAAM,GAAA,KAAA,CAAA;AAElB,EAAM,MAAA,KAAA,GAAQ,QAAQ,MAAM;AAC1B,IAAO,OAAA;AAAA,MACL,IAAA,EAAM,GAAG,CAAI,GAAA,CAAA,CAAA,EAAA,CAAA;AAAA,KACf,CAAA;AAAA,GACF,EAAG,CAAC,CAAC,CAAC,CAAA,CAAA;AAEN,EAAI,IAAA,KAAA,CAAM,MAAM,KAAW,CAAA,EAAA;AACzB,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AAEA,EAAA,uBAAQ,GAAA,CAAA,KAAA,EAAA;AAAA,IAAI,WAAW,YAAa,EAAA;AAAA,IAAG,KAAA;AAAA,GAAc,CAAA,CAAA;AACvD;;;;"}
1
+ {"version":3,"file":"ColumnDropTarget.js","sources":["../src/internal/ColumnDropTarget.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useMemo } from \"react\";\n\nimport columDropTargetCss from \"./ColumnDropTarget.css\";\n\nconst withBaseName = makePrefixer(\"saltGridColumnDropTarget\");\n\nexport interface ColumnDropTargetProps {\n x?: number;\n}\n\n// When the user drags a column, this component is used to show the potential\n// drop target. Experimental feature. No UX yet.\nexport function ColumnDropTarget(props: ColumnDropTargetProps) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-column-drop-target\",\n css: columDropTargetCss,\n window: targetWindow,\n });\n\n const { x = 0 } = props;\n\n const style = useMemo(() => {\n return {\n left: `${x - 2}px`,\n };\n }, [x]);\n\n if (props.x === undefined) {\n return null;\n }\n\n return <div className={withBaseName()} style={style} />;\n}\n"],"names":["columDropTargetCss"],"mappings":";;;;;;;AAOA,MAAM,YAAA,GAAe,aAAa,0BAA0B,CAAA;AAQrD,SAAS,iBAAiB,KAA8B,EAAA;AAC7D,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,yBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAM,MAAA,EAAE,CAAI,GAAA,CAAA,EAAM,GAAA,KAAA;AAElB,EAAM,MAAA,KAAA,GAAQ,QAAQ,MAAM;AAC1B,IAAO,OAAA;AAAA,MACL,IAAA,EAAM,CAAG,EAAA,CAAA,GAAI,CAAC,CAAA,EAAA;AAAA,KAChB;AAAA,GACF,EAAG,CAAC,CAAC,CAAC,CAAA;AAEN,EAAI,IAAA,KAAA,CAAM,MAAM,KAAW,CAAA,EAAA;AACzB,IAAO,OAAA,IAAA;AAAA;AAGT,EAAA,uBAAQ,GAAA,CAAA,KAAA,EAAA,EAAI,SAAW,EAAA,YAAA,IAAgB,KAAc,EAAA,CAAA;AACvD;;;;"}
@@ -1,10 +1,10 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
- import { useWindow } from '@salt-ds/window';
3
- import { useComponentCssInjection } from '@salt-ds/styles';
4
2
  import { makePrefixer } from '@salt-ds/core';
5
- import { TableColGroup } from './TableColGroup.js';
3
+ import { useComponentCssInjection } from '@salt-ds/styles';
4
+ import { useWindow } from '@salt-ds/window';
6
5
  import { HeaderRow } from './HeaderRow.js';
7
6
  import { TableBody } from './TableBody.js';
7
+ import { TableColGroup } from './TableColGroup.js';
8
8
  import css_248z from './ColumnGhost.css.js';
9
9
 
10
10
  const withBaseName = makePrefixer("saltGridColumnGhost");
@@ -25,30 +25,20 @@ function ColumnGhost(props) {
25
25
  left: x,
26
26
  top: y
27
27
  };
28
- return /* @__PURE__ */ jsx("div", {
29
- className: withBaseName(),
30
- style,
31
- children: /* @__PURE__ */ jsxs("table", {
32
- "aria-hidden": true,
33
- children: [
34
- /* @__PURE__ */ jsx(TableColGroup, {
35
- columns: [movingColumn]
36
- }),
37
- /* @__PURE__ */ jsx("thead", {
38
- children: /* @__PURE__ */ jsx(HeaderRow, {
39
- columns: [movingColumn]
40
- })
41
- }),
42
- /* @__PURE__ */ jsx(TableBody, {
43
- columns: [movingColumn],
44
- rows,
45
- setHoverRowKey: () => {
46
- },
47
- zebra
48
- })
49
- ]
50
- })
51
- });
28
+ return /* @__PURE__ */ jsx("div", { className: withBaseName(), style, children: /* @__PURE__ */ jsxs("table", { "aria-hidden": true, children: [
29
+ /* @__PURE__ */ jsx(TableColGroup, { columns: [movingColumn] }),
30
+ /* @__PURE__ */ jsx("thead", { children: /* @__PURE__ */ jsx(HeaderRow, { columns: [movingColumn] }) }),
31
+ /* @__PURE__ */ jsx(
32
+ TableBody,
33
+ {
34
+ columns: [movingColumn],
35
+ rows,
36
+ setHoverRowKey: () => {
37
+ },
38
+ zebra
39
+ }
40
+ )
41
+ ] }) });
52
42
  }
53
43
 
54
44
  export { ColumnGhost };
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnGhost.js","sources":["../src/internal/ColumnGhost.tsx"],"sourcesContent":["import { CSSProperties } from \"react\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { makePrefixer } from \"@salt-ds/core\";\n\nimport { GridColumnModel, GridRowModel } from \"../Grid\";\n\nimport { TableColGroup } from \"./TableColGroup\";\nimport { HeaderRow } from \"./HeaderRow\";\nimport { TableBody } from \"./TableBody\";\nimport { ColumnDragState } from \"./gridHooks\";\n\nimport columnGhostCss from \"./ColumnGhost.css\";\n\nconst withBaseName = makePrefixer(\"saltGridColumnGhost\");\n\nexport interface ColumnGhostProps<T> {\n dragState?: ColumnDragState;\n columns: GridColumnModel<T>[];\n rows: GridRowModel<T>[];\n zebra?: boolean;\n}\n\n// When the user drags a column this component renders a partially transparent\n// copy of the dragged column.\nexport function ColumnGhost<T = any>(props: ColumnGhostProps<T>) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-column-ghost\",\n css: columnGhostCss,\n window: targetWindow,\n });\n\n if (!props.dragState) {\n return null;\n }\n\n const { columnIndex, x, y } = props.dragState;\n const { columns, rows, zebra } = props;\n const movingColumn = columns[columnIndex];\n\n const style: CSSProperties = {\n left: x,\n top: y,\n };\n\n return (\n <div className={withBaseName()} style={style}>\n <table aria-hidden>\n <TableColGroup columns={[movingColumn]} />\n <thead>\n <HeaderRow columns={[movingColumn]} />\n </thead>\n <TableBody\n columns={[movingColumn]}\n rows={rows}\n setHoverRowKey={() => {}}\n zebra={zebra}\n />\n </table>\n </div>\n );\n}\n"],"names":["columnGhostCss"],"mappings":";;;;;;;;;AAcA,MAAM,YAAA,GAAe,aAAa,qBAAqB,CAAA,CAAA;AAWhD,SAAS,YAAqB,KAA4B,EAAA;AAC/D,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,mBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAI,IAAA,CAAC,MAAM,SAAW,EAAA;AACpB,IAAO,OAAA,IAAA,CAAA;AAAA,GACT;AAEA,EAAA,MAAM,EAAE,WAAA,EAAa,CAAG,EAAA,CAAA,KAAM,KAAM,CAAA,SAAA,CAAA;AACpC,EAAA,MAAM,EAAE,OAAA,EAAS,IAAM,EAAA,KAAA,EAAU,GAAA,KAAA,CAAA;AACjC,EAAA,MAAM,eAAe,OAAQ,CAAA,WAAA,CAAA,CAAA;AAE7B,EAAA,MAAM,KAAuB,GAAA;AAAA,IAC3B,IAAM,EAAA,CAAA;AAAA,IACN,GAAK,EAAA,CAAA;AAAA,GACP,CAAA;AAEA,EAAA,uBACG,GAAA,CAAA,KAAA,EAAA;AAAA,IAAI,WAAW,YAAa,EAAA;AAAA,IAAG,KAAA;AAAA,IAC9B,QAAC,kBAAA,IAAA,CAAA,OAAA,EAAA;AAAA,MAAM,aAAW,EAAA,IAAA;AAAA,MAChB,QAAA,EAAA;AAAA,wBAAC,GAAA,CAAA,aAAA,EAAA;AAAA,UAAc,OAAA,EAAS,CAAC,YAAY,CAAA;AAAA,SAAG,CAAA;AAAA,wBACvC,GAAA,CAAA,OAAA,EAAA;AAAA,UACC,QAAC,kBAAA,GAAA,CAAA,SAAA,EAAA;AAAA,YAAU,OAAA,EAAS,CAAC,YAAY,CAAA;AAAA,WAAG,CAAA;AAAA,SACtC,CAAA;AAAA,wBACC,GAAA,CAAA,SAAA,EAAA;AAAA,UACC,OAAA,EAAS,CAAC,YAAY,CAAA;AAAA,UACtB,IAAA;AAAA,UACA,gBAAgB,MAAM;AAAA,WAAC;AAAA,UACvB,KAAA;AAAA,SACF,CAAA;AAAA,OAAA;AAAA,KACF,CAAA;AAAA,GACF,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"ColumnGhost.js","sources":["../src/internal/ColumnGhost.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport type { CSSProperties } from \"react\";\n\nimport type { GridColumnModel, GridRowModel } from \"../Grid\";\n\nimport { HeaderRow } from \"./HeaderRow\";\nimport { TableBody } from \"./TableBody\";\nimport { TableColGroup } from \"./TableColGroup\";\nimport type { ColumnDragState } from \"./gridHooks\";\n\nimport columnGhostCss from \"./ColumnGhost.css\";\n\nconst withBaseName = makePrefixer(\"saltGridColumnGhost\");\n\nexport interface ColumnGhostProps<T> {\n dragState?: ColumnDragState;\n columns: GridColumnModel<T>[];\n rows: GridRowModel<T>[];\n zebra?: boolean;\n}\n\n// When the user drags a column this component renders a partially transparent\n// copy of the dragged column.\nexport function ColumnGhost<T = any>(props: ColumnGhostProps<T>) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-column-ghost\",\n css: columnGhostCss,\n window: targetWindow,\n });\n\n if (!props.dragState) {\n return null;\n }\n\n const { columnIndex, x, y } = props.dragState;\n const { columns, rows, zebra } = props;\n const movingColumn = columns[columnIndex];\n\n const style: CSSProperties = {\n left: x,\n top: y,\n };\n\n return (\n <div className={withBaseName()} style={style}>\n <table aria-hidden>\n <TableColGroup columns={[movingColumn]} />\n <thead>\n <HeaderRow columns={[movingColumn]} />\n </thead>\n <TableBody\n columns={[movingColumn]}\n rows={rows}\n setHoverRowKey={() => {}}\n zebra={zebra}\n />\n </table>\n </div>\n );\n}\n"],"names":["columnGhostCss"],"mappings":";;;;;;;;;AAcA,MAAM,YAAA,GAAe,aAAa,qBAAqB,CAAA;AAWhD,SAAS,YAAqB,KAA4B,EAAA;AAC/D,EAAA,MAAM,eAAe,SAAU,EAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,mBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA;AAAA,GACT,CAAA;AAED,EAAI,IAAA,CAAC,MAAM,SAAW,EAAA;AACpB,IAAO,OAAA,IAAA;AAAA;AAGT,EAAA,MAAM,EAAE,WAAA,EAAa,CAAG,EAAA,CAAA,KAAM,KAAM,CAAA,SAAA;AACpC,EAAA,MAAM,EAAE,OAAA,EAAS,IAAM,EAAA,KAAA,EAAU,GAAA,KAAA;AACjC,EAAM,MAAA,YAAA,GAAe,QAAQ,WAAW,CAAA;AAExC,EAAA,MAAM,KAAuB,GAAA;AAAA,IAC3B,IAAM,EAAA,CAAA;AAAA,IACN,GAAK,EAAA;AAAA,GACP;AAEA,EACE,uBAAA,GAAA,CAAC,SAAI,SAAW,EAAA,YAAA,IAAgB,KAC9B,EAAA,QAAA,kBAAA,IAAA,CAAC,OAAM,EAAA,EAAA,aAAA,EAAW,IAChB,EAAA,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,aAAc,EAAA,EAAA,OAAA,EAAS,CAAC,YAAY,CAAG,EAAA,CAAA;AAAA,oBACxC,GAAA,CAAC,WACC,QAAC,kBAAA,GAAA,CAAA,SAAA,EAAA,EAAU,SAAS,CAAC,YAAY,GAAG,CACtC,EAAA,CAAA;AAAA,oBACA,GAAA;AAAA,MAAC,SAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAS,CAAC,YAAY,CAAA;AAAA,QACtB,IAAA;AAAA,QACA,gBAAgB,MAAM;AAAA,SAAC;AAAA,QACvB;AAAA;AAAA;AACF,GAAA,EACF,CACF,EAAA,CAAA;AAEJ;;;;"}