@salt-ds/data-grid 0.0.0-snapshot-20230920133053 → 0.0.0-snapshot-20240719143459

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 (259) hide show
  1. package/dist-cjs/BaseCell.js +8 -8
  2. package/dist-cjs/BaseCell.js.map +1 -1
  3. package/dist-cjs/CellEditor.js.map +1 -1
  4. package/dist-cjs/{internal/Cell.css.js → CellFrame.css.js} +1 -1
  5. package/dist-cjs/CellFrame.css.js.map +1 -0
  6. package/dist-cjs/{internal/Cell.js → CellFrame.js} +9 -9
  7. package/dist-cjs/CellFrame.js.map +1 -0
  8. package/dist-cjs/ColumnDataContext.js +1 -1
  9. package/dist-cjs/ColumnDataContext.js.map +1 -1
  10. package/dist-cjs/ColumnDragContext.js +1 -1
  11. package/dist-cjs/ColumnDragContext.js.map +1 -1
  12. package/dist-cjs/ColumnGroup.js +1 -1
  13. package/dist-cjs/ColumnGroup.js.map +1 -1
  14. package/dist-cjs/ColumnSortContext.js +1 -1
  15. package/dist-cjs/ColumnSortContext.js.map +1 -1
  16. package/dist-cjs/CornerTag.js +1 -1
  17. package/dist-cjs/CornerTag.js.map +1 -1
  18. package/dist-cjs/CursorContext.js +1 -1
  19. package/dist-cjs/CursorContext.js.map +1 -1
  20. package/dist-cjs/DropdownCellEditor.js +5 -21
  21. package/dist-cjs/DropdownCellEditor.js.map +1 -1
  22. package/dist-cjs/EditorContext.js +1 -1
  23. package/dist-cjs/EditorContext.js.map +1 -1
  24. package/dist-cjs/Grid.css.js +1 -1
  25. package/dist-cjs/Grid.js +36 -42
  26. package/dist-cjs/Grid.js.map +1 -1
  27. package/dist-cjs/GridColumn.js.map +1 -1
  28. package/dist-cjs/GridContext.js +1 -1
  29. package/dist-cjs/GridContext.js.map +1 -1
  30. package/dist-cjs/GroupHeaderCell.js +2 -2
  31. package/dist-cjs/GroupHeaderCell.js.map +1 -1
  32. package/dist-cjs/GroupHeaderCellValue.js.map +1 -1
  33. package/dist-cjs/HeaderCell.css.js +1 -1
  34. package/dist-cjs/HeaderCell.js +10 -10
  35. package/dist-cjs/HeaderCell.js.map +1 -1
  36. package/dist-cjs/HeaderCellValue.js.map +1 -1
  37. package/dist-cjs/LayoutContext.js.map +1 -1
  38. package/dist-cjs/NumericColumn.js +6 -23
  39. package/dist-cjs/NumericColumn.js.map +1 -1
  40. package/dist-cjs/RowSelectionCheckboxCellValue.js +2 -2
  41. package/dist-cjs/RowSelectionCheckboxCellValue.js.map +1 -1
  42. package/dist-cjs/RowSelectionCheckboxColumn.js +3 -3
  43. package/dist-cjs/RowSelectionCheckboxColumn.js.map +1 -1
  44. package/dist-cjs/RowSelectionCheckboxHeaderCellValue.js +2 -2
  45. package/dist-cjs/RowSelectionCheckboxHeaderCellValue.js.map +1 -1
  46. package/dist-cjs/RowSelectionRadioCellValue.js +1 -1
  47. package/dist-cjs/RowSelectionRadioCellValue.js.map +1 -1
  48. package/dist-cjs/RowSelectionRadioColumn.js +2 -2
  49. package/dist-cjs/RowSelectionRadioColumn.js.map +1 -1
  50. package/dist-cjs/RowSelectionRadioHeaderCell.js +1 -1
  51. package/dist-cjs/RowSelectionRadioHeaderCell.js.map +1 -1
  52. package/dist-cjs/RowValidationStatus.js.map +1 -1
  53. package/dist-cjs/SelectionContext.js +1 -1
  54. package/dist-cjs/SelectionContext.js.map +1 -1
  55. package/dist-cjs/SizingContext.js +1 -1
  56. package/dist-cjs/SizingContext.js.map +1 -1
  57. package/dist-cjs/TextCellEditor.js +5 -21
  58. package/dist-cjs/TextCellEditor.js.map +1 -1
  59. package/dist-cjs/index.js +5 -0
  60. package/dist-cjs/index.js.map +1 -1
  61. package/dist-cjs/internal/CellMeasure.js +2 -2
  62. package/dist-cjs/internal/CellMeasure.js.map +1 -1
  63. package/dist-cjs/internal/ColumnDropTarget.js +2 -2
  64. package/dist-cjs/internal/ColumnDropTarget.js.map +1 -1
  65. package/dist-cjs/internal/ColumnGhost.js +3 -3
  66. package/dist-cjs/internal/ColumnGhost.js.map +1 -1
  67. package/dist-cjs/internal/Cursor.js +2 -2
  68. package/dist-cjs/internal/Cursor.js.map +1 -1
  69. package/dist-cjs/internal/DefaultCellValue.js +2 -2
  70. package/dist-cjs/internal/DefaultCellValue.js.map +1 -1
  71. package/dist-cjs/internal/FakeCell.js +3 -3
  72. package/dist-cjs/internal/FakeCell.js.map +1 -1
  73. package/dist-cjs/internal/GroupHeaderRow.js +1 -1
  74. package/dist-cjs/internal/GroupHeaderRow.js.map +1 -1
  75. package/dist-cjs/internal/HeaderRow.js +2 -2
  76. package/dist-cjs/internal/HeaderRow.js.map +1 -1
  77. package/dist-cjs/internal/LeftPart.js +4 -4
  78. package/dist-cjs/internal/LeftPart.js.map +1 -1
  79. package/dist-cjs/internal/MiddlePart.js +3 -3
  80. package/dist-cjs/internal/MiddlePart.js.map +1 -1
  81. package/dist-cjs/internal/RightPart.js +3 -3
  82. package/dist-cjs/internal/RightPart.js.map +1 -1
  83. package/dist-cjs/internal/Scrollable.js +2 -2
  84. package/dist-cjs/internal/Scrollable.js.map +1 -1
  85. package/dist-cjs/internal/TableBody.js +6 -6
  86. package/dist-cjs/internal/TableBody.js.map +1 -1
  87. package/dist-cjs/internal/TableColGroup.js.map +1 -1
  88. package/dist-cjs/internal/TableRow.js +9 -9
  89. package/dist-cjs/internal/TableRow.js.map +1 -1
  90. package/dist-cjs/internal/TopLeftPart.js +3 -3
  91. package/dist-cjs/internal/TopLeftPart.js.map +1 -1
  92. package/dist-cjs/internal/TopPart.js +3 -3
  93. package/dist-cjs/internal/TopPart.js.map +1 -1
  94. package/dist-cjs/internal/TopRightPart.js +3 -3
  95. package/dist-cjs/internal/TopRightPart.js.map +1 -1
  96. package/dist-cjs/internal/gridHooks.js +23 -23
  97. package/dist-cjs/internal/gridHooks.js.map +1 -1
  98. package/dist-cjs/internal/utils.js +5 -5
  99. package/dist-cjs/internal/utils.js.map +1 -1
  100. package/dist-es/BaseCell.js +8 -8
  101. package/dist-es/BaseCell.js.map +1 -1
  102. package/dist-es/CellEditor.js.map +1 -1
  103. package/dist-es/{internal/Cell.css.js → CellFrame.css.js} +1 -1
  104. package/dist-es/CellFrame.css.js.map +1 -0
  105. package/dist-es/{internal/Cell.js → CellFrame.js} +8 -8
  106. package/dist-es/CellFrame.js.map +1 -0
  107. package/dist-es/ColumnDataContext.js +1 -1
  108. package/dist-es/ColumnDataContext.js.map +1 -1
  109. package/dist-es/ColumnDragContext.js +1 -1
  110. package/dist-es/ColumnDragContext.js.map +1 -1
  111. package/dist-es/ColumnGroup.js +1 -1
  112. package/dist-es/ColumnGroup.js.map +1 -1
  113. package/dist-es/ColumnSortContext.js +1 -1
  114. package/dist-es/ColumnSortContext.js.map +1 -1
  115. package/dist-es/CornerTag.js +1 -1
  116. package/dist-es/CornerTag.js.map +1 -1
  117. package/dist-es/CursorContext.js +1 -1
  118. package/dist-es/CursorContext.js.map +1 -1
  119. package/dist-es/DropdownCellEditor.js +5 -21
  120. package/dist-es/DropdownCellEditor.js.map +1 -1
  121. package/dist-es/EditorContext.js +1 -1
  122. package/dist-es/EditorContext.js.map +1 -1
  123. package/dist-es/Grid.css.js +1 -1
  124. package/dist-es/Grid.js +36 -42
  125. package/dist-es/Grid.js.map +1 -1
  126. package/dist-es/GridColumn.js.map +1 -1
  127. package/dist-es/GridContext.js +1 -1
  128. package/dist-es/GridContext.js.map +1 -1
  129. package/dist-es/GroupHeaderCell.js +2 -2
  130. package/dist-es/GroupHeaderCell.js.map +1 -1
  131. package/dist-es/GroupHeaderCellValue.js.map +1 -1
  132. package/dist-es/HeaderCell.css.js +1 -1
  133. package/dist-es/HeaderCell.js +10 -10
  134. package/dist-es/HeaderCell.js.map +1 -1
  135. package/dist-es/HeaderCellValue.js.map +1 -1
  136. package/dist-es/LayoutContext.js.map +1 -1
  137. package/dist-es/NumericColumn.js +6 -23
  138. package/dist-es/NumericColumn.js.map +1 -1
  139. package/dist-es/RowSelectionCheckboxCellValue.js +2 -2
  140. package/dist-es/RowSelectionCheckboxCellValue.js.map +1 -1
  141. package/dist-es/RowSelectionCheckboxColumn.js +3 -3
  142. package/dist-es/RowSelectionCheckboxColumn.js.map +1 -1
  143. package/dist-es/RowSelectionCheckboxHeaderCellValue.js +2 -2
  144. package/dist-es/RowSelectionCheckboxHeaderCellValue.js.map +1 -1
  145. package/dist-es/RowSelectionRadioCellValue.js +1 -1
  146. package/dist-es/RowSelectionRadioCellValue.js.map +1 -1
  147. package/dist-es/RowSelectionRadioColumn.js +2 -2
  148. package/dist-es/RowSelectionRadioColumn.js.map +1 -1
  149. package/dist-es/RowSelectionRadioHeaderCell.js +1 -1
  150. package/dist-es/RowSelectionRadioHeaderCell.js.map +1 -1
  151. package/dist-es/RowValidationStatus.js.map +1 -1
  152. package/dist-es/SelectionContext.js +1 -1
  153. package/dist-es/SelectionContext.js.map +1 -1
  154. package/dist-es/SizingContext.js +1 -1
  155. package/dist-es/SizingContext.js.map +1 -1
  156. package/dist-es/TextCellEditor.js +5 -21
  157. package/dist-es/TextCellEditor.js.map +1 -1
  158. package/dist-es/index.js +2 -0
  159. package/dist-es/index.js.map +1 -1
  160. package/dist-es/internal/CellMeasure.js +2 -2
  161. package/dist-es/internal/CellMeasure.js.map +1 -1
  162. package/dist-es/internal/ColumnDropTarget.js +2 -2
  163. package/dist-es/internal/ColumnDropTarget.js.map +1 -1
  164. package/dist-es/internal/ColumnGhost.js +3 -3
  165. package/dist-es/internal/ColumnGhost.js.map +1 -1
  166. package/dist-es/internal/Cursor.js +2 -2
  167. package/dist-es/internal/Cursor.js.map +1 -1
  168. package/dist-es/internal/DefaultCellValue.js +2 -2
  169. package/dist-es/internal/DefaultCellValue.js.map +1 -1
  170. package/dist-es/internal/FakeCell.js +3 -3
  171. package/dist-es/internal/FakeCell.js.map +1 -1
  172. package/dist-es/internal/GroupHeaderRow.js +1 -1
  173. package/dist-es/internal/GroupHeaderRow.js.map +1 -1
  174. package/dist-es/internal/HeaderRow.js +2 -2
  175. package/dist-es/internal/HeaderRow.js.map +1 -1
  176. package/dist-es/internal/LeftPart.js +4 -4
  177. package/dist-es/internal/LeftPart.js.map +1 -1
  178. package/dist-es/internal/MiddlePart.js +3 -3
  179. package/dist-es/internal/MiddlePart.js.map +1 -1
  180. package/dist-es/internal/RightPart.js +3 -3
  181. package/dist-es/internal/RightPart.js.map +1 -1
  182. package/dist-es/internal/Scrollable.js +2 -2
  183. package/dist-es/internal/Scrollable.js.map +1 -1
  184. package/dist-es/internal/TableBody.js +6 -6
  185. package/dist-es/internal/TableBody.js.map +1 -1
  186. package/dist-es/internal/TableColGroup.js.map +1 -1
  187. package/dist-es/internal/TableRow.js +9 -9
  188. package/dist-es/internal/TableRow.js.map +1 -1
  189. package/dist-es/internal/TopLeftPart.js +3 -3
  190. package/dist-es/internal/TopLeftPart.js.map +1 -1
  191. package/dist-es/internal/TopPart.js +3 -3
  192. package/dist-es/internal/TopPart.js.map +1 -1
  193. package/dist-es/internal/TopRightPart.js +3 -3
  194. package/dist-es/internal/TopRightPart.js.map +1 -1
  195. package/dist-es/internal/gridHooks.js +23 -23
  196. package/dist-es/internal/gridHooks.js.map +1 -1
  197. package/dist-es/internal/utils.js +5 -5
  198. package/dist-es/internal/utils.js.map +1 -1
  199. package/dist-types/BaseCell.d.ts +3 -4
  200. package/dist-types/CellEditor.d.ts +1 -1
  201. package/dist-types/CellFrame.d.ts +9 -0
  202. package/dist-types/ColumnDataContext.d.ts +0 -1
  203. package/dist-types/ColumnDragContext.d.ts +1 -1
  204. package/dist-types/ColumnGroup.d.ts +4 -4
  205. package/dist-types/ColumnSortContext.d.ts +5 -5
  206. package/dist-types/CornerTag.d.ts +1 -2
  207. package/dist-types/CursorContext.d.ts +0 -1
  208. package/dist-types/DropdownCellEditor.d.ts +2 -3
  209. package/dist-types/EditorContext.d.ts +0 -1
  210. package/dist-types/Grid.d.ts +4 -4
  211. package/dist-types/GridColumn.d.ts +3 -3
  212. package/dist-types/GridContext.d.ts +2 -3
  213. package/dist-types/GroupHeaderCell.d.ts +3 -3
  214. package/dist-types/GroupHeaderCellValue.d.ts +2 -3
  215. package/dist-types/HeaderCell.d.ts +5 -6
  216. package/dist-types/HeaderCellValue.d.ts +2 -3
  217. package/dist-types/LayoutContext.d.ts +0 -1
  218. package/dist-types/NumericColumn.d.ts +6 -6
  219. package/dist-types/RowSelectionCheckboxCellValue.d.ts +2 -3
  220. package/dist-types/RowSelectionCheckboxColumn.d.ts +2 -3
  221. package/dist-types/RowSelectionCheckboxHeaderCellValue.d.ts +2 -3
  222. package/dist-types/RowSelectionRadioCellValue.d.ts +2 -3
  223. package/dist-types/RowSelectionRadioColumn.d.ts +2 -3
  224. package/dist-types/RowSelectionRadioHeaderCell.d.ts +2 -3
  225. package/dist-types/RowValidationStatus.d.ts +2 -3
  226. package/dist-types/SelectionContext.d.ts +1 -2
  227. package/dist-types/SizingContext.d.ts +3 -3
  228. package/dist-types/TextCellEditor.d.ts +2 -3
  229. package/dist-types/index.d.ts +2 -0
  230. package/dist-types/internal/CellMeasure.d.ts +1 -2
  231. package/dist-types/internal/CellStatusIcons.d.ts +3 -4
  232. package/dist-types/internal/ColumnDropTarget.d.ts +1 -2
  233. package/dist-types/internal/ColumnGhost.d.ts +3 -4
  234. package/dist-types/internal/Cursor.d.ts +1 -4
  235. package/dist-types/internal/DefaultCellValue.d.ts +2 -3
  236. package/dist-types/internal/FakeCell.d.ts +2 -3
  237. package/dist-types/internal/FakeGroupCell.d.ts +1 -2
  238. package/dist-types/internal/FakeHeaderCell.d.ts +1 -2
  239. package/dist-types/internal/GroupHeaderRow.d.ts +2 -3
  240. package/dist-types/internal/HeaderRow.d.ts +2 -3
  241. package/dist-types/internal/LeftPart.d.ts +4 -4
  242. package/dist-types/internal/MiddlePart.d.ts +4 -4
  243. package/dist-types/internal/RightPart.d.ts +4 -4
  244. package/dist-types/internal/Scrollable.d.ts +2 -2
  245. package/dist-types/internal/TableBody.d.ts +3 -4
  246. package/dist-types/internal/TableColGroup.d.ts +3 -4
  247. package/dist-types/internal/TableRow.d.ts +4 -4
  248. package/dist-types/internal/TopLeftPart.d.ts +2 -3
  249. package/dist-types/internal/TopPart.d.ts +3 -3
  250. package/dist-types/internal/TopRightPart.d.ts +2 -3
  251. package/dist-types/internal/gridHooks.d.ts +13 -13
  252. package/dist-types/internal/index.d.ts +0 -1
  253. package/dist-types/internal/utils.d.ts +1 -1
  254. package/package.json +5 -6
  255. package/dist-cjs/internal/Cell.css.js.map +0 -1
  256. package/dist-cjs/internal/Cell.js.map +0 -1
  257. package/dist-es/internal/Cell.css.js.map +0 -1
  258. package/dist-es/internal/Cell.js.map +0 -1
  259. package/dist-types/internal/Cell.d.ts +0 -8
@@ -1 +1 @@
1
- {"version":3,"file":"CellEditor.js","sources":["../src/CellEditor.tsx"],"sourcesContent":["import { ReactNode, useEffect, useMemo } from \"react\";\nimport { useGridContext } from \"./GridContext\";\n\nexport interface CellEditorInfo<T> {\n columnId: string;\n children: ReactNode;\n}\n\nexport interface CellEditorProps<T> {\n columnId?: string;\n children: ReactNode;\n}\n\n// Non-rendered component. Used as a child of GridColumn. Children prop is\n// expected to be a specific implementation of cell editor (text, dropdown etc)\n// Registers the editor in the grid. The grid then renders the editor when\n// edit mode is activated.\n// TODO This feature is experimental.\nexport function CellEditor<T>(props: CellEditorProps<T>) {\n const { children } = props;\n const columnId = props.columnId!;\n const grid = useGridContext();\n\n const info = useMemo(\n () => ({\n columnId,\n children,\n }),\n [columnId, children]\n );\n\n useEffect(() => {\n grid.onEditorAdded(info);\n return () => {\n grid.onEditorRemoved(info);\n };\n }, [info]);\n\n return null;\n}\n"],"names":[],"mappings":";;;AAkBO,SAAS,WAAc,KAA2B,EAAA;AACvD,EAAM,MAAA,EAAE,UAAa,GAAA,KAAA,CAAA;AACrB,EAAA,MAAM,WAAW,KAAM,CAAA,QAAA,CAAA;AACvB,EAAA,MAAM,OAAO,cAAe,EAAA,CAAA;AAE5B,EAAA,MAAM,IAAO,GAAA,OAAA;AAAA,IACX,OAAO;AAAA,MACL,QAAA;AAAA,MACA,QAAA;AAAA,KACF,CAAA;AAAA,IACA,CAAC,UAAU,QAAQ,CAAA;AAAA,GACrB,CAAA;AAEA,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAA,CAAK,cAAc,IAAI,CAAA,CAAA;AACvB,IAAA,OAAO,MAAM;AACX,MAAA,IAAA,CAAK,gBAAgB,IAAI,CAAA,CAAA;AAAA,KAC3B,CAAA;AAAA,GACF,EAAG,CAAC,IAAI,CAAC,CAAA,CAAA;AAET,EAAO,OAAA,IAAA,CAAA;AACT;;;;"}
1
+ {"version":3,"file":"CellEditor.js","sources":["../src/CellEditor.tsx"],"sourcesContent":["import { type ReactNode, useEffect, useMemo } from \"react\";\nimport { useGridContext } from \"./GridContext\";\n\nexport interface CellEditorInfo<T> {\n columnId: string;\n children: ReactNode;\n}\n\nexport interface CellEditorProps<T> {\n columnId?: string;\n children: ReactNode;\n}\n\n// Non-rendered component. Used as a child of GridColumn. Children prop is\n// expected to be a specific implementation of cell editor (text, dropdown etc)\n// Registers the editor in the grid. The grid then renders the editor when\n// edit mode is activated.\n// TODO This feature is experimental.\nexport function CellEditor<T>(props: CellEditorProps<T>) {\n const { children } = props;\n const columnId = props.columnId!;\n const grid = useGridContext();\n\n const info = useMemo(\n () => ({\n columnId,\n children,\n }),\n [columnId, children],\n );\n\n useEffect(() => {\n grid.onEditorAdded(info);\n return () => {\n grid.onEditorRemoved(info);\n };\n }, [info]);\n\n return null;\n}\n"],"names":[],"mappings":";;;AAkBO,SAAS,WAAc,KAA2B,EAAA;AACvD,EAAM,MAAA,EAAE,UAAa,GAAA,KAAA,CAAA;AACrB,EAAA,MAAM,WAAW,KAAM,CAAA,QAAA,CAAA;AACvB,EAAA,MAAM,OAAO,cAAe,EAAA,CAAA;AAE5B,EAAA,MAAM,IAAO,GAAA,OAAA;AAAA,IACX,OAAO;AAAA,MACL,QAAA;AAAA,MACA,QAAA;AAAA,KACF,CAAA;AAAA,IACA,CAAC,UAAU,QAAQ,CAAA;AAAA,GACrB,CAAA;AAEA,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAA,CAAK,cAAc,IAAI,CAAA,CAAA;AACvB,IAAA,OAAO,MAAM;AACX,MAAA,IAAA,CAAK,gBAAgB,IAAI,CAAA,CAAA;AAAA,KAC3B,CAAA;AAAA,GACF,EAAG,CAAC,IAAI,CAAC,CAAA,CAAA;AAET,EAAO,OAAA,IAAA,CAAA;AACT;;;;"}
@@ -1,4 +1,4 @@
1
1
  var css_248z = ".saltGridCell {\n box-sizing: border-box;\n margin: 0;\n padding: 0;\n\n white-space: nowrap;\n position: relative;\n font-size: var(--grid-fontSize);\n font-weight: normal;\n\n outline: 0;\n}\n\n.saltGridCell-selected {\n background: var(--grid-cell-background-selected);\n}\n\n.saltGridCell-rowSeparator {\n position: absolute;\n right: 0;\n bottom: 0;\n left: 0;\n height: 1px;\n background-color: var(--grid-row-borderColor);\n}\n\n.saltGridCell-topSeparator {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n height: 1px;\n background-color: transparent;\n display: none;\n}\n\n.saltGridTableRow-first .saltGridCell-topSeparator {\n display: unset;\n}\n\n.saltGridCell-columnSeparator {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n width: 1px;\n background-color: var(--grid-row-background);\n}\n\n.saltGrid-columnSeparators .saltGridCell-regularSeparator .saltGridCell-columnSeparator {\n background-color: var(--grid-columnSeparator-color);\n}\n\n.saltGrid-columnSeparators .saltGridCell-pinnedSeparator .saltGridCell-columnSeparator {\n background-color: var(--grid-columnSeparator-color);\n}\n\n.saltGrid-pinnedSeparators .saltGridCell-pinnedSeparator .saltGridCell-columnSeparator {\n background-color: var(--grid-pinnedSeparator-color);\n}\n\n.saltGridTableRow-selected.saltGridTableRow-first .saltGridCell-topSeparator {\n background-color: var(--grid-row-borderColor);\n}\n\n.saltGridCell-body {\n box-sizing: border-box;\n position: absolute;\n top: 0;\n right: 0;\n bottom: 1px;\n left: 0;\n background: var(--grid-row-background);\n border-right: solid 1px transparent;\n}\n\n.saltGridTableRow-first .saltGridCell-body {\n top: 1px;\n}\n";
2
2
 
3
3
  export { css_248z as default };
4
- //# sourceMappingURL=Cell.css.js.map
4
+ //# sourceMappingURL=CellFrame.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CellFrame.css.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,14 +1,14 @@
1
1
  import { jsxs, jsx } from 'react/jsx-runtime';
2
2
  import { makePrefixer } from '@salt-ds/core';
3
- import { useWindow } from '@salt-ds/window';
4
3
  import { useComponentCssInjection } from '@salt-ds/styles';
5
- import { forwardRef } from 'react';
4
+ import { useWindow } from '@salt-ds/window';
6
5
  import { clsx } from 'clsx';
7
- import css_248z from './Cell.css.js';
6
+ import { forwardRef } from 'react';
7
+ import css_248z from './CellFrame.css.js';
8
8
 
9
9
  const withBaseName = makePrefixer("saltGridCell");
10
- const Cell = forwardRef(
11
- function CellFrame(props, ref) {
10
+ const CellFrame = forwardRef(
11
+ function CellFrame2(props, ref) {
12
12
  const {
13
13
  children,
14
14
  separator,
@@ -39,7 +39,7 @@ const Cell = forwardRef(
39
39
  children: [
40
40
  /* @__PURE__ */ jsx("div", {
41
41
  className: withBaseName("body"),
42
- children: props.children
42
+ children
43
43
  }),
44
44
  /* @__PURE__ */ jsx("div", {
45
45
  className: withBaseName("columnSeparator")
@@ -55,5 +55,5 @@ const Cell = forwardRef(
55
55
  }
56
56
  );
57
57
 
58
- export { Cell };
59
- //# sourceMappingURL=Cell.js.map
58
+ export { CellFrame };
59
+ //# sourceMappingURL=CellFrame.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CellFrame.js","sources":["../src/CellFrame.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { clsx } from \"clsx\";\nimport { type HTMLAttributes, forwardRef } from \"react\";\n\nimport type { ColumnSeparatorType } from \"./Grid\";\n\nimport cellCss from \"./CellFrame.css\";\n\nexport interface CellProps extends HTMLAttributes<HTMLTableCellElement> {\n isSelected?: boolean;\n isEditable?: boolean;\n separator?: ColumnSeparatorType;\n}\n\n// TODO: rename the prefix in next major version to match component name.\nconst withBaseName = makePrefixer(\"saltGridCell\");\n\n/** Cell frame used for creating custom cells and editors */\nexport const CellFrame = forwardRef<HTMLTableCellElement, CellProps>(\n function CellFrame(props, ref) {\n const {\n children,\n separator,\n isSelected,\n isEditable,\n className,\n ...tdProps\n } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-cell\",\n css: cellCss,\n window: targetWindow,\n });\n\n return (\n <td\n ref={ref}\n className={clsx(\n withBaseName(),\n {\n [withBaseName(\"selected\")]: isSelected,\n [withBaseName(\"editable\")]: isEditable,\n [withBaseName(\"regularSeparator\")]:\n separator === \"regular\" || separator === \"groupEdge\",\n [withBaseName(\"pinnedSeparator\")]: separator === \"pinned\",\n },\n className,\n )}\n {...tdProps}\n >\n <div className={withBaseName(\"body\")}>{children}</div>\n <div className={withBaseName(\"columnSeparator\")} />\n <div className={withBaseName(\"rowSeparator\")} />\n <div className={withBaseName(\"topSeparator\")} />\n </td>\n );\n },\n);\n"],"names":["CellFrame","cellCss"],"mappings":";;;;;;;;AAiBA,MAAM,YAAA,GAAe,aAAa,cAAc,CAAA,CAAA;AAGzC,MAAM,SAAY,GAAA,UAAA;AAAA,EACvB,SAASA,UAAU,CAAA,KAAA,EAAO,GAAK,EAAA;AAC7B,IAAM,MAAA;AAAA,MACJ,QAAA;AAAA,MACA,SAAA;AAAA,MACA,UAAA;AAAA,MACA,UAAA;AAAA,MACA,SAAA;AAAA,MACG,GAAA,OAAA;AAAA,KACD,GAAA,KAAA,CAAA;AAEJ,IAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,IAAyB,wBAAA,CAAA;AAAA,MACvB,MAAQ,EAAA,WAAA;AAAA,MACR,GAAK,EAAAC,QAAA;AAAA,MACL,MAAQ,EAAA,YAAA;AAAA,KACT,CAAA,CAAA;AAED,IAAA,uBACG,IAAA,CAAA,IAAA,EAAA;AAAA,MACC,GAAA;AAAA,MACA,SAAW,EAAA,IAAA;AAAA,QACT,YAAa,EAAA;AAAA,QACb;AAAA,UACE,CAAC,YAAa,CAAA,UAAU,CAAI,GAAA,UAAA;AAAA,UAC5B,CAAC,YAAa,CAAA,UAAU,CAAI,GAAA,UAAA;AAAA,UAC5B,CAAC,YAAa,CAAA,kBAAkB,CAC9B,GAAA,SAAA,KAAc,aAAa,SAAc,KAAA,WAAA;AAAA,UAC3C,CAAC,YAAA,CAAa,iBAAiB,CAAA,GAAI,SAAc,KAAA,QAAA;AAAA,SACnD;AAAA,QACA,SAAA;AAAA,OACF;AAAA,MACC,GAAG,OAAA;AAAA,MAEJ,QAAA,EAAA;AAAA,wBAAC,GAAA,CAAA,KAAA,EAAA;AAAA,UAAI,SAAA,EAAW,aAAa,MAAM,CAAA;AAAA,UAAI,QAAA;AAAA,SAAS,CAAA;AAAA,wBAC/C,GAAA,CAAA,KAAA,EAAA;AAAA,UAAI,SAAA,EAAW,aAAa,iBAAiB,CAAA;AAAA,SAAG,CAAA;AAAA,wBAChD,GAAA,CAAA,KAAA,EAAA;AAAA,UAAI,SAAA,EAAW,aAAa,cAAc,CAAA;AAAA,SAAG,CAAA;AAAA,wBAC7C,GAAA,CAAA,KAAA,EAAA;AAAA,UAAI,SAAA,EAAW,aAAa,cAAc,CAAA;AAAA,SAAG,CAAA;AAAA,OAAA;AAAA,KAChD,CAAA,CAAA;AAAA,GAEJ;AACF;;;;"}
@@ -4,7 +4,7 @@ const ColumnDataContext = createContext(void 0);
4
4
  const useColumnDataContext = () => {
5
5
  const c = useContext(ColumnDataContext);
6
6
  if (!c) {
7
- throw new Error(`useColumnDataContext invoked outside of a Grid`);
7
+ throw new Error("useColumnDataContext invoked outside of a Grid");
8
8
  }
9
9
  return c;
10
10
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnDataContext.js","sources":["../src/ColumnDataContext.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport type { GridColumnModel } from \"./Grid\";\n\nexport interface ColumnDataContext<T> {\n getColById: (id: string) => GridColumnModel<T> | undefined;\n}\n\nexport const ColumnDataContext = createContext<\n ColumnDataContext<any> | undefined\n>(undefined);\n\nexport const useColumnDataContext = () => {\n const c = useContext(ColumnDataContext);\n if (!c) {\n throw new Error(`useColumnDataContext invoked outside of a Grid`);\n }\n return c;\n};\n"],"names":[],"mappings":";;AAOa,MAAA,iBAAA,GAAoB,cAE/B,KAAS,CAAA,EAAA;AAEJ,MAAM,uBAAuB,MAAM;AACxC,EAAM,MAAA,CAAA,GAAI,WAAW,iBAAiB,CAAA,CAAA;AACtC,EAAA,IAAI,CAAC,CAAG,EAAA;AACN,IAAM,MAAA,IAAI,MAAM,CAAgD,8CAAA,CAAA,CAAA,CAAA;AAAA,GAClE;AACA,EAAO,OAAA,CAAA,CAAA;AACT;;;;"}
1
+ {"version":3,"file":"ColumnDataContext.js","sources":["../src/ColumnDataContext.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\nimport type { GridColumnModel } from \"./Grid\";\n\nexport interface ColumnDataContext<T> {\n getColById: (id: string) => GridColumnModel<T> | undefined;\n}\n\nexport const ColumnDataContext = createContext<\n ColumnDataContext<any> | undefined\n>(undefined);\n\nexport const useColumnDataContext = () => {\n const c = useContext(ColumnDataContext);\n if (!c) {\n throw new Error(\"useColumnDataContext invoked outside of a Grid\");\n }\n return c;\n};\n"],"names":[],"mappings":";;AAOa,MAAA,iBAAA,GAAoB,cAE/B,KAAS,CAAA,EAAA;AAEJ,MAAM,uBAAuB,MAAM;AACxC,EAAM,MAAA,CAAA,GAAI,WAAW,iBAAiB,CAAA,CAAA;AACtC,EAAA,IAAI,CAAC,CAAG,EAAA;AACN,IAAM,MAAA,IAAI,MAAM,gDAAgD,CAAA,CAAA;AAAA,GAClE;AACA,EAAO,OAAA,CAAA,CAAA;AACT;;;;"}
@@ -6,7 +6,7 @@ const ColumnDragContext = createContext(
6
6
  const useColumnDragContext = () => {
7
7
  const c = useContext(ColumnDragContext);
8
8
  if (!c) {
9
- throw new Error(`useColumnDragContext invoked outside of a Grid`);
9
+ throw new Error("useColumnDragContext invoked outside of a Grid");
10
10
  }
11
11
  return c;
12
12
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnDragContext.js","sources":["../src/ColumnDragContext.ts"],"sourcesContent":["import { createContext, MouseEventHandler, useContext } from \"react\";\n\nexport interface ColumnDragContext {\n columnMove?: boolean;\n onColumnMoveHandleMouseDown: MouseEventHandler<HTMLDivElement>;\n}\n\nexport const ColumnDragContext = createContext<ColumnDragContext | undefined>(\n undefined\n);\n\nexport const useColumnDragContext = () => {\n const c = useContext(ColumnDragContext);\n if (!c) {\n throw new Error(`useColumnDragContext invoked outside of a Grid`);\n }\n return c;\n};\n"],"names":[],"mappings":";;AAOO,MAAM,iBAAoB,GAAA,aAAA;AAAA,EAC/B,KAAA,CAAA;AACF,EAAA;AAEO,MAAM,uBAAuB,MAAM;AACxC,EAAM,MAAA,CAAA,GAAI,WAAW,iBAAiB,CAAA,CAAA;AACtC,EAAA,IAAI,CAAC,CAAG,EAAA;AACN,IAAM,MAAA,IAAI,MAAM,CAAgD,8CAAA,CAAA,CAAA,CAAA;AAAA,GAClE;AACA,EAAO,OAAA,CAAA,CAAA;AACT;;;;"}
1
+ {"version":3,"file":"ColumnDragContext.js","sources":["../src/ColumnDragContext.ts"],"sourcesContent":["import { type MouseEventHandler, createContext, useContext } from \"react\";\n\nexport interface ColumnDragContext {\n columnMove?: boolean;\n onColumnMoveHandleMouseDown: MouseEventHandler<HTMLDivElement>;\n}\n\nexport const ColumnDragContext = createContext<ColumnDragContext | undefined>(\n undefined,\n);\n\nexport const useColumnDragContext = () => {\n const c = useContext(ColumnDragContext);\n if (!c) {\n throw new Error(\"useColumnDragContext invoked outside of a Grid\");\n }\n return c;\n};\n"],"names":[],"mappings":";;AAOO,MAAM,iBAAoB,GAAA,aAAA;AAAA,EAC/B,KAAA,CAAA;AACF,EAAA;AAEO,MAAM,uBAAuB,MAAM;AACxC,EAAM,MAAA,CAAA,GAAI,WAAW,iBAAiB,CAAA,CAAA;AACtC,EAAA,IAAI,CAAC,CAAG,EAAA;AACN,IAAM,MAAA,IAAI,MAAM,gDAAgD,CAAA,CAAA;AAAA,GAClE;AACA,EAAO,OAAA,CAAA,CAAA;AACT;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { jsx, Fragment } from 'react/jsx-runtime';
2
- import { useGridContext } from './GridContext.js';
3
2
  import { useRef, useEffect, Children, isValidElement, cloneElement } from 'react';
3
+ import { useGridContext } from './GridContext.js';
4
4
 
5
5
  function ColumnGroup(props) {
6
6
  const pinned = props.pinned || null;
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnGroup.js","sources":["../src/ColumnGroup.tsx"],"sourcesContent":["import { useGridContext } from \"./GridContext\";\nimport {\n Children,\n cloneElement,\n ComponentType,\n isValidElement,\n ReactNode,\n useEffect,\n useRef,\n} from \"react\";\nimport { GridColumnPin } from \"./GridColumn\";\nimport { GridColumnGroupModel } from \"./Grid\";\n\nexport interface ColumnGroupCellProps {\n group: GridColumnGroupModel;\n}\n\nexport interface ColumnGroupCellValueProps {\n group: GridColumnGroupModel;\n}\n\nexport interface ColumnGroupProps {\n children: ReactNode;\n name: string;\n id: string;\n pinned?: GridColumnPin;\n headerComponent?: ComponentType<ColumnGroupCellProps>;\n headerValueComponent?: ComponentType<ColumnGroupCellValueProps>;\n}\n\nexport function ColumnGroup(props: ColumnGroupProps) {\n const pinned = props.pinned || null;\n const indexRef = useRef<number>();\n const grid = useGridContext();\n useEffect(() => {\n indexRef.current = grid.getChildIndex(props.id);\n grid.onColumnGroupAdded(props);\n return () => {\n grid.onColumnGroupRemoved(indexRef.current!, props);\n };\n });\n const childrenWithPinnedOverridden = Children.map(props.children, (child) => {\n if (isValidElement(child)) {\n return cloneElement(child, { pinned });\n }\n return child;\n });\n return <>{childrenWithPinnedOverridden}</>;\n}\n"],"names":[],"mappings":";;;;AA8BO,SAAS,YAAY,KAAyB,EAAA;AACnD,EAAM,MAAA,MAAA,GAAS,MAAM,MAAU,IAAA,IAAA,CAAA;AAC/B,EAAA,MAAM,WAAW,MAAe,EAAA,CAAA;AAChC,EAAA,MAAM,OAAO,cAAe,EAAA,CAAA;AAC5B,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,QAAA,CAAS,OAAU,GAAA,IAAA,CAAK,aAAc,CAAA,KAAA,CAAM,EAAE,CAAA,CAAA;AAC9C,IAAA,IAAA,CAAK,mBAAmB,KAAK,CAAA,CAAA;AAC7B,IAAA,OAAO,MAAM;AACX,MAAK,IAAA,CAAA,oBAAA,CAAqB,QAAS,CAAA,OAAA,EAAU,KAAK,CAAA,CAAA;AAAA,KACpD,CAAA;AAAA,GACD,CAAA,CAAA;AACD,EAAA,MAAM,+BAA+B,QAAS,CAAA,GAAA,CAAI,KAAM,CAAA,QAAA,EAAU,CAAC,KAAU,KAAA;AAC3E,IAAI,IAAA,cAAA,CAAe,KAAK,CAAG,EAAA;AACzB,MAAA,OAAO,YAAa,CAAA,KAAA,EAAO,EAAE,MAAA,EAAQ,CAAA,CAAA;AAAA,KACvC;AACA,IAAO,OAAA,KAAA,CAAA;AAAA,GACR,CAAA,CAAA;AACD,EAAO,uBAAA,GAAA,CAAA,QAAA,EAAA;AAAA,IAAG,QAAA,EAAA,4BAAA;AAAA,GAA6B,CAAA,CAAA;AACzC;;;;"}
1
+ {"version":3,"file":"ColumnGroup.js","sources":["../src/ColumnGroup.tsx"],"sourcesContent":["import {\n Children,\n type ComponentType,\n type ReactNode,\n cloneElement,\n isValidElement,\n useEffect,\n useRef,\n} from \"react\";\nimport type { GridColumnGroupModel } from \"./Grid\";\nimport type { GridColumnPin } from \"./GridColumn\";\nimport { useGridContext } from \"./GridContext\";\n\nexport interface ColumnGroupCellProps {\n group: GridColumnGroupModel;\n}\n\nexport interface ColumnGroupCellValueProps {\n group: GridColumnGroupModel;\n}\n\nexport interface ColumnGroupProps {\n children: ReactNode;\n name: string;\n id: string;\n pinned?: GridColumnPin;\n headerComponent?: ComponentType<ColumnGroupCellProps>;\n headerValueComponent?: ComponentType<ColumnGroupCellValueProps>;\n}\n\nexport function ColumnGroup(props: ColumnGroupProps) {\n const pinned = props.pinned || null;\n const indexRef = useRef<number>();\n const grid = useGridContext();\n useEffect(() => {\n indexRef.current = grid.getChildIndex(props.id);\n grid.onColumnGroupAdded(props);\n return () => {\n grid.onColumnGroupRemoved(indexRef.current!, props);\n };\n });\n const childrenWithPinnedOverridden = Children.map(props.children, (child) => {\n if (isValidElement(child)) {\n return cloneElement(child, { pinned });\n }\n return child;\n });\n return <>{childrenWithPinnedOverridden}</>;\n}\n"],"names":[],"mappings":";;;;AA8BO,SAAS,YAAY,KAAyB,EAAA;AACnD,EAAM,MAAA,MAAA,GAAS,MAAM,MAAU,IAAA,IAAA,CAAA;AAC/B,EAAA,MAAM,WAAW,MAAe,EAAA,CAAA;AAChC,EAAA,MAAM,OAAO,cAAe,EAAA,CAAA;AAC5B,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,QAAA,CAAS,OAAU,GAAA,IAAA,CAAK,aAAc,CAAA,KAAA,CAAM,EAAE,CAAA,CAAA;AAC9C,IAAA,IAAA,CAAK,mBAAmB,KAAK,CAAA,CAAA;AAC7B,IAAA,OAAO,MAAM;AACX,MAAK,IAAA,CAAA,oBAAA,CAAqB,QAAS,CAAA,OAAA,EAAU,KAAK,CAAA,CAAA;AAAA,KACpD,CAAA;AAAA,GACD,CAAA,CAAA;AACD,EAAA,MAAM,+BAA+B,QAAS,CAAA,GAAA,CAAI,KAAM,CAAA,QAAA,EAAU,CAAC,KAAU,KAAA;AAC3E,IAAI,IAAA,cAAA,CAAe,KAAK,CAAG,EAAA;AACzB,MAAA,OAAO,YAAa,CAAA,KAAA,EAAO,EAAE,MAAA,EAAQ,CAAA,CAAA;AAAA,KACvC;AACA,IAAO,OAAA,KAAA,CAAA;AAAA,GACR,CAAA,CAAA;AACD,EAAO,uBAAA,GAAA,CAAA,QAAA,EAAA;AAAA,IAAG,QAAA,EAAA,4BAAA;AAAA,GAA6B,CAAA,CAAA;AACzC;;;;"}
@@ -6,7 +6,7 @@ const ColumnSortContext = createContext(
6
6
  const useColumnSortContext = () => {
7
7
  const c = useContext(ColumnSortContext);
8
8
  if (!c) {
9
- throw new Error(`useColumnSortContext invoked outside of a Grid`);
9
+ throw new Error("useColumnSortContext invoked outside of a Grid");
10
10
  }
11
11
  return c;
12
12
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ColumnSortContext.js","sources":["../src/ColumnSortContext.ts"],"sourcesContent":["import React, { createContext, useContext } from \"react\";\nimport { SortOrder } from \"./Grid\";\nimport { GridColumnProps } from \"./GridColumn\";\n\nexport interface ColumnSortContext {\n sortByColumnId?: GridColumnProps[\"id\"];\n setSortByColumnId: (c: React.SetStateAction<GridColumnProps[\"id\"]>) => void;\n sortOrder: SortOrder;\n setSortOrder: (o: SortOrder) => void;\n onClickSortColumn: (colHeaderId: GridColumnProps[\"id\"]) => void;\n}\n\nexport const ColumnSortContext = createContext<ColumnSortContext | undefined>(\n undefined\n);\n\nexport const useColumnSortContext = () => {\n const c = useContext(ColumnSortContext);\n if (!c) {\n throw new Error(`useColumnSortContext invoked outside of a Grid`);\n }\n return c;\n};\n"],"names":[],"mappings":";;AAYO,MAAM,iBAAoB,GAAA,aAAA;AAAA,EAC/B,KAAA,CAAA;AACF,EAAA;AAEO,MAAM,uBAAuB,MAAM;AACxC,EAAM,MAAA,CAAA,GAAI,WAAW,iBAAiB,CAAA,CAAA;AACtC,EAAA,IAAI,CAAC,CAAG,EAAA;AACN,IAAM,MAAA,IAAI,MAAM,CAAgD,8CAAA,CAAA,CAAA,CAAA;AAAA,GAClE;AACA,EAAO,OAAA,CAAA,CAAA;AACT;;;;"}
1
+ {"version":3,"file":"ColumnSortContext.js","sources":["../src/ColumnSortContext.ts"],"sourcesContent":["import type { SetStateAction } from \"react\";\nimport { createContext, useContext } from \"react\";\nimport type { SortOrder } from \"./Grid\";\nimport type { GridColumnProps } from \"./GridColumn\";\n\nexport interface ColumnSortContext {\n sortByColumnId?: GridColumnProps[\"id\"];\n setSortByColumnId: (c: SetStateAction<GridColumnProps[\"id\"]>) => void;\n sortOrder: SortOrder;\n setSortOrder: (o: SortOrder) => void;\n onClickSortColumn: (colHeaderId: GridColumnProps[\"id\"]) => void;\n}\n\nexport const ColumnSortContext = createContext<ColumnSortContext | undefined>(\n undefined,\n);\n\nexport const useColumnSortContext = () => {\n const c = useContext(ColumnSortContext);\n if (!c) {\n throw new Error(\"useColumnSortContext invoked outside of a Grid\");\n }\n return c;\n};\n"],"names":[],"mappings":";;AAaO,MAAM,iBAAoB,GAAA,aAAA;AAAA,EAC/B,KAAA,CAAA;AACF,EAAA;AAEO,MAAM,uBAAuB,MAAM;AACxC,EAAM,MAAA,CAAA,GAAI,WAAW,iBAAiB,CAAA,CAAA;AACtC,EAAA,IAAI,CAAC,CAAG,EAAA;AACN,IAAM,MAAA,IAAI,MAAM,gDAAgD,CAAA,CAAA;AAAA,GAClE;AACA,EAAO,OAAA,CAAA,CAAA;AACT;;;;"}
@@ -1,6 +1,6 @@
1
1
  import { jsx } from 'react/jsx-runtime';
2
- import { useWindow } from '@salt-ds/window';
3
2
  import { useComponentCssInjection } from '@salt-ds/styles';
3
+ import { useWindow } from '@salt-ds/window';
4
4
  import css_248z from './CornerTag.css.js';
5
5
 
6
6
  function CornerTag(props) {
@@ -1 +1 @@
1
- {"version":3,"file":"CornerTag.js","sources":["../src/CornerTag.tsx"],"sourcesContent":["import { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport cornerTagCss from \"./CornerTag.css\";\n\nexport interface CornerTagProps {\n focusOnly?: boolean; // Show when the parent is focused, hide when not\n}\n\nexport function CornerTag(props: CornerTagProps) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-corner-tag\",\n css: cornerTagCss,\n window: targetWindow,\n });\n\n return (\n <div\n className={\n props.focusOnly ? \"saltGridCornerTag-focusOnly\" : \"saltGridCornerTag\"\n }\n />\n );\n}\n"],"names":["cornerTagCss"],"mappings":";;;;;AASO,SAAS,UAAU,KAAuB,EAAA;AAC/C,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,iBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAA,uBACG,GAAA,CAAA,KAAA,EAAA;AAAA,IACC,SAAA,EACE,KAAM,CAAA,SAAA,GAAY,6BAAgC,GAAA,mBAAA;AAAA,GAEtD,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"CornerTag.js","sources":["../src/CornerTag.tsx"],"sourcesContent":["import { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\n\nimport cornerTagCss from \"./CornerTag.css\";\n\nexport interface CornerTagProps {\n focusOnly?: boolean; // Show when the parent is focused, hide when not\n}\n\nexport function CornerTag(props: CornerTagProps) {\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-corner-tag\",\n css: cornerTagCss,\n window: targetWindow,\n });\n\n return (\n <div\n className={\n props.focusOnly ? \"saltGridCornerTag-focusOnly\" : \"saltGridCornerTag\"\n }\n />\n );\n}\n"],"names":["cornerTagCss"],"mappings":";;;;;AASO,SAAS,UAAU,KAAuB,EAAA;AAC/C,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,iBAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAA,uBACG,GAAA,CAAA,KAAA,EAAA;AAAA,IACC,SAAA,EACE,KAAM,CAAA,SAAA,GAAY,6BAAgC,GAAA,mBAAA;AAAA,GAEtD,CAAA,CAAA;AAEJ;;;;"}
@@ -6,7 +6,7 @@ const CursorContext = createContext(
6
6
  const useCursorContext = () => {
7
7
  const c = useContext(CursorContext);
8
8
  if (!c) {
9
- throw new Error(`useCursorContext invoked outside of a Grid`);
9
+ throw new Error("useCursorContext invoked outside of a Grid");
10
10
  }
11
11
  return c;
12
12
  };
@@ -1 +1 @@
1
- {"version":3,"file":"CursorContext.js","sources":["../src/CursorContext.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\n\nexport type FocusedPart = \"header\" | \"body\";\n\nexport interface CursorContext {\n isFocused: boolean;\n cursorRowIdx: number | undefined;\n cursorColIdx: number | undefined;\n moveCursor: (part: FocusedPart, rowIdx: number, colIdx: number) => void;\n focusedPart: FocusedPart;\n headerIsFocusable: boolean;\n}\n\nexport const CursorContext = createContext<CursorContext | undefined>(\n undefined\n);\nexport const useCursorContext = () => {\n const c = useContext(CursorContext);\n if (!c) {\n throw new Error(`useCursorContext invoked outside of a Grid`);\n }\n return c;\n};\n"],"names":[],"mappings":";;AAaO,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":"CursorContext.js","sources":["../src/CursorContext.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\n\nexport type FocusedPart = \"header\" | \"body\";\n\nexport interface CursorContext {\n isFocused: boolean;\n cursorRowIdx: number | undefined;\n cursorColIdx: number | undefined;\n moveCursor: (part: FocusedPart, rowIdx: number, colIdx: number) => void;\n focusedPart: FocusedPart;\n headerIsFocusable: boolean;\n}\n\nexport const CursorContext = createContext<CursorContext | undefined>(\n undefined,\n);\nexport const useCursorContext = () => {\n const c = useContext(CursorContext);\n if (!c) {\n throw new Error(\"useCursorContext invoked outside of a Grid\");\n }\n return c;\n};\n"],"names":[],"mappings":";;AAaO,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,4CAA4C,CAAA,CAAA;AAAA,GAC9D;AACA,EAAO,OAAA,CAAA,CAAA;AACT;;;;"}
@@ -1,28 +1,12 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
- import { useRef, useEffect } from 'react';
3
2
  import { makePrefixer } from '@salt-ds/core';
4
3
  import { Dropdown } from '@salt-ds/lab';
5
- import { useWindow } from '@salt-ds/window';
6
4
  import { useComponentCssInjection } from '@salt-ds/styles';
7
- import { useEditorContext } from './EditorContext.js';
5
+ import { useWindow } from '@salt-ds/window';
6
+ import { useRef, useEffect } from 'react';
7
+ import { CellFrame } from './CellFrame.js';
8
8
  import { CornerTag } from './CornerTag.js';
9
- import { Cell } from './internal/Cell.js';
10
- import './internal/CellMeasure.js';
11
- import './internal/Cursor.js';
12
- import './internal/GroupHeaderRow.js';
13
- import './internal/HeaderRow.js';
14
- import './internal/LeftPart.js';
15
- import './internal/MiddlePart.js';
16
- import './internal/RightPart.js';
17
- import './internal/Scrollable.js';
18
- import './internal/TableRow.js';
19
- import './SelectionContext.js';
20
- import './CursorContext.js';
21
- import './NumberRange.js';
22
- import './internal/TopLeftPart.js';
23
- import './internal/TopPart.js';
24
- import './internal/TopRightPart.js';
25
- import './internal/DefaultCellValue.js';
9
+ import { useEditorContext } from './EditorContext.js';
26
10
  import css_248z from './DropdownCellEditor.css.js';
27
11
 
28
12
  const withBaseName = makePrefixer("saltGridDropdownCellEditor");
@@ -59,7 +43,7 @@ function DropdownCellEditor(props) {
59
43
  "data-testid": "grid-cell-editor-trigger",
60
44
  children: value
61
45
  });
62
- return /* @__PURE__ */ jsxs(Cell, {
46
+ return /* @__PURE__ */ jsxs(CellFrame, {
63
47
  separator: column == null ? void 0 : column.separator,
64
48
  className: withBaseName(),
65
49
  children: [
@@ -1 +1 @@
1
- {"version":3,"file":"DropdownCellEditor.js","sources":["../src/DropdownCellEditor.tsx"],"sourcesContent":["import { useEffect, useRef } from \"react\";\nimport { makePrefixer } from \"@salt-ds/core\";\nimport { Dropdown, SelectionChangeHandler, SelectHandler } from \"@salt-ds/lab\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\n\nimport { useEditorContext } from \"./EditorContext\";\nimport { GridColumnModel, GridRowModel } from \"./Grid\";\nimport { CornerTag } from \"./CornerTag\";\nimport { Cell } from \"./internal\";\n\nimport dropdownCellEditorCss from \"./DropdownCellEditor.css\";\n\nconst withBaseName = makePrefixer(\"saltGridDropdownCellEditor\");\n\nexport interface DropdownCellEditorProps<T> {\n options: ReadonlyArray<string>;\n // Row and column are provided by the grid. See TableRow.tsx\n row?: GridRowModel<T>;\n column?: GridColumnModel<T>;\n}\n\nexport function DropdownCellEditor<T>(props: DropdownCellEditorProps<T>) {\n const { options, column, row } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-dropdown-cell-editor\",\n css: dropdownCellEditorCss,\n window: targetWindow,\n });\n\n const triggerRef = useRef<HTMLDivElement>(null);\n\n const value = column!.info.props.getValue!(row!.data);\n\n const { endEditMode } = useEditorContext();\n\n const onSelectionChange: SelectionChangeHandler = (event, item) => {\n if (item) {\n endEditMode(item);\n }\n };\n\n const onSelect: SelectHandler = (event, item) => {\n if (item) {\n endEditMode(item);\n }\n };\n\n useEffect(() => {\n if (triggerRef.current) {\n triggerRef.current.focus();\n }\n }, [triggerRef.current]);\n\n const triggerComponent = (\n <div\n tabIndex={0}\n ref={triggerRef}\n className={withBaseName(\"currentValue\")}\n data-testid=\"grid-cell-editor-trigger\"\n >\n {value}\n </div>\n );\n\n return (\n <Cell separator={column?.separator} className={withBaseName()}>\n <div className={withBaseName(\"dropdownContainer\")}>\n {options && options.length > 0 ? (\n <Dropdown\n isOpen={true}\n source={options}\n defaultSelected={value}\n onSelectionChange={onSelectionChange}\n onSelect={onSelect}\n triggerComponent={triggerComponent}\n width={column!.info.width! - 5}\n />\n ) : (\n triggerComponent\n )}\n </div>\n <CornerTag />\n </Cell>\n );\n}\n"],"names":["dropdownCellEditorCss"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,MAAM,YAAA,GAAe,aAAa,4BAA4B,CAAA,CAAA;AASvD,SAAS,mBAAsB,KAAmC,EAAA;AACvE,EAAA,MAAM,EAAE,OAAA,EAAS,MAAQ,EAAA,GAAA,EAAQ,GAAA,KAAA,CAAA;AAEjC,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,2BAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAM,MAAA,UAAA,GAAa,OAAuB,IAAI,CAAA,CAAA;AAE9C,EAAA,MAAM,QAAQ,MAAQ,CAAA,IAAA,CAAK,KAAM,CAAA,QAAA,CAAU,IAAK,IAAI,CAAA,CAAA;AAEpD,EAAM,MAAA,EAAE,WAAY,EAAA,GAAI,gBAAiB,EAAA,CAAA;AAEzC,EAAM,MAAA,iBAAA,GAA4C,CAAC,KAAA,EAAO,IAAS,KAAA;AACjE,IAAA,IAAI,IAAM,EAAA;AACR,MAAA,WAAA,CAAY,IAAI,CAAA,CAAA;AAAA,KAClB;AAAA,GACF,CAAA;AAEA,EAAM,MAAA,QAAA,GAA0B,CAAC,KAAA,EAAO,IAAS,KAAA;AAC/C,IAAA,IAAI,IAAM,EAAA;AACR,MAAA,WAAA,CAAY,IAAI,CAAA,CAAA;AAAA,KAClB;AAAA,GACF,CAAA;AAEA,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,WAAW,OAAS,EAAA;AACtB,MAAA,UAAA,CAAW,QAAQ,KAAM,EAAA,CAAA;AAAA,KAC3B;AAAA,GACC,EAAA,CAAC,UAAW,CAAA,OAAO,CAAC,CAAA,CAAA;AAEvB,EAAA,MAAM,mCACH,GAAA,CAAA,KAAA,EAAA;AAAA,IACC,QAAU,EAAA,CAAA;AAAA,IACV,GAAK,EAAA,UAAA;AAAA,IACL,SAAA,EAAW,aAAa,cAAc,CAAA;AAAA,IACtC,aAAY,EAAA,0BAAA;AAAA,IAEX,QAAA,EAAA,KAAA;AAAA,GACH,CAAA,CAAA;AAGF,EAAA,uBACG,IAAA,CAAA,IAAA,EAAA;AAAA,IAAK,WAAW,MAAQ,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAA,SAAA;AAAA,IAAW,WAAW,YAAa,EAAA;AAAA,IAC1D,QAAA,EAAA;AAAA,sBAAC,GAAA,CAAA,KAAA,EAAA;AAAA,QAAI,SAAA,EAAW,aAAa,mBAAmB,CAAA;AAAA,QAC7C,QAAW,EAAA,OAAA,IAAA,OAAA,CAAQ,MAAS,GAAA,CAAA,mBAC1B,GAAA,CAAA,QAAA,EAAA;AAAA,UACC,MAAQ,EAAA,IAAA;AAAA,UACR,MAAQ,EAAA,OAAA;AAAA,UACR,eAAiB,EAAA,KAAA;AAAA,UACjB,iBAAA;AAAA,UACA,QAAA;AAAA,UACA,gBAAA;AAAA,UACA,KAAA,EAAO,MAAQ,CAAA,IAAA,CAAK,KAAS,GAAA,CAAA;AAAA,SAC/B,CAEA,GAAA,gBAAA;AAAA,OAEJ,CAAA;AAAA,0BACC,SAAU,EAAA,EAAA,CAAA;AAAA,KAAA;AAAA,GACb,CAAA,CAAA;AAEJ;;;;"}
1
+ {"version":3,"file":"DropdownCellEditor.js","sources":["../src/DropdownCellEditor.tsx"],"sourcesContent":["import { makePrefixer } from \"@salt-ds/core\";\nimport {\n Dropdown,\n type SelectHandler,\n type SelectionChangeHandler,\n} from \"@salt-ds/lab\";\nimport { useComponentCssInjection } from \"@salt-ds/styles\";\nimport { useWindow } from \"@salt-ds/window\";\nimport { useEffect, useRef } from \"react\";\n\nimport { CellFrame } from \"./CellFrame\";\nimport { CornerTag } from \"./CornerTag\";\nimport { useEditorContext } from \"./EditorContext\";\nimport type { GridColumnModel, GridRowModel } from \"./Grid\";\n\nimport dropdownCellEditorCss from \"./DropdownCellEditor.css\";\n\nconst withBaseName = makePrefixer(\"saltGridDropdownCellEditor\");\n\nexport interface DropdownCellEditorProps<T> {\n options: ReadonlyArray<string>;\n // Row and column are provided by the grid. See TableRow.tsx\n row?: GridRowModel<T>;\n column?: GridColumnModel<T>;\n}\n\nexport function DropdownCellEditor<T>(props: DropdownCellEditorProps<T>) {\n const { options, column, row } = props;\n\n const targetWindow = useWindow();\n useComponentCssInjection({\n testId: \"salt-dropdown-cell-editor\",\n css: dropdownCellEditorCss,\n window: targetWindow,\n });\n\n const triggerRef = useRef<HTMLDivElement>(null);\n\n const value = column!.info.props.getValue!(row!.data);\n\n const { endEditMode } = useEditorContext();\n\n const onSelectionChange: SelectionChangeHandler = (event, item) => {\n if (item) {\n endEditMode(item);\n }\n };\n\n const onSelect: SelectHandler = (event, item) => {\n if (item) {\n endEditMode(item);\n }\n };\n\n useEffect(() => {\n if (triggerRef.current) {\n triggerRef.current.focus();\n }\n }, [triggerRef.current]);\n\n const triggerComponent = (\n <div\n tabIndex={0}\n ref={triggerRef}\n className={withBaseName(\"currentValue\")}\n data-testid=\"grid-cell-editor-trigger\"\n >\n {value}\n </div>\n );\n\n return (\n <CellFrame separator={column?.separator} className={withBaseName()}>\n <div className={withBaseName(\"dropdownContainer\")}>\n {options && options.length > 0 ? (\n <Dropdown\n isOpen={true}\n source={options}\n defaultSelected={value}\n onSelectionChange={onSelectionChange}\n onSelect={onSelect}\n triggerComponent={triggerComponent}\n width={column!.info.width! - 5}\n />\n ) : (\n triggerComponent\n )}\n </div>\n <CornerTag />\n </CellFrame>\n );\n}\n"],"names":["dropdownCellEditorCss"],"mappings":";;;;;;;;;;;AAiBA,MAAM,YAAA,GAAe,aAAa,4BAA4B,CAAA,CAAA;AASvD,SAAS,mBAAsB,KAAmC,EAAA;AACvE,EAAA,MAAM,EAAE,OAAA,EAAS,MAAQ,EAAA,GAAA,EAAQ,GAAA,KAAA,CAAA;AAEjC,EAAA,MAAM,eAAe,SAAU,EAAA,CAAA;AAC/B,EAAyB,wBAAA,CAAA;AAAA,IACvB,MAAQ,EAAA,2BAAA;AAAA,IACR,GAAK,EAAAA,QAAA;AAAA,IACL,MAAQ,EAAA,YAAA;AAAA,GACT,CAAA,CAAA;AAED,EAAM,MAAA,UAAA,GAAa,OAAuB,IAAI,CAAA,CAAA;AAE9C,EAAA,MAAM,QAAQ,MAAQ,CAAA,IAAA,CAAK,KAAM,CAAA,QAAA,CAAU,IAAK,IAAI,CAAA,CAAA;AAEpD,EAAM,MAAA,EAAE,WAAY,EAAA,GAAI,gBAAiB,EAAA,CAAA;AAEzC,EAAM,MAAA,iBAAA,GAA4C,CAAC,KAAA,EAAO,IAAS,KAAA;AACjE,IAAA,IAAI,IAAM,EAAA;AACR,MAAA,WAAA,CAAY,IAAI,CAAA,CAAA;AAAA,KAClB;AAAA,GACF,CAAA;AAEA,EAAM,MAAA,QAAA,GAA0B,CAAC,KAAA,EAAO,IAAS,KAAA;AAC/C,IAAA,IAAI,IAAM,EAAA;AACR,MAAA,WAAA,CAAY,IAAI,CAAA,CAAA;AAAA,KAClB;AAAA,GACF,CAAA;AAEA,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,IAAI,WAAW,OAAS,EAAA;AACtB,MAAA,UAAA,CAAW,QAAQ,KAAM,EAAA,CAAA;AAAA,KAC3B;AAAA,GACC,EAAA,CAAC,UAAW,CAAA,OAAO,CAAC,CAAA,CAAA;AAEvB,EAAA,MAAM,mCACH,GAAA,CAAA,KAAA,EAAA;AAAA,IACC,QAAU,EAAA,CAAA;AAAA,IACV,GAAK,EAAA,UAAA;AAAA,IACL,SAAA,EAAW,aAAa,cAAc,CAAA;AAAA,IACtC,aAAY,EAAA,0BAAA;AAAA,IAEX,QAAA,EAAA,KAAA;AAAA,GACH,CAAA,CAAA;AAGF,EAAA,uBACG,IAAA,CAAA,SAAA,EAAA;AAAA,IAAU,WAAW,MAAQ,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,MAAA,CAAA,SAAA;AAAA,IAAW,WAAW,YAAa,EAAA;AAAA,IAC/D,QAAA,EAAA;AAAA,sBAAC,GAAA,CAAA,KAAA,EAAA;AAAA,QAAI,SAAA,EAAW,aAAa,mBAAmB,CAAA;AAAA,QAC7C,QAAW,EAAA,OAAA,IAAA,OAAA,CAAQ,MAAS,GAAA,CAAA,mBAC1B,GAAA,CAAA,QAAA,EAAA;AAAA,UACC,MAAQ,EAAA,IAAA;AAAA,UACR,MAAQ,EAAA,OAAA;AAAA,UACR,eAAiB,EAAA,KAAA;AAAA,UACjB,iBAAA;AAAA,UACA,QAAA;AAAA,UACA,gBAAA;AAAA,UACA,KAAA,EAAO,MAAQ,CAAA,IAAA,CAAK,KAAS,GAAA,CAAA;AAAA,SAC/B,CAEA,GAAA,gBAAA;AAAA,OAEJ,CAAA;AAAA,0BACC,SAAU,EAAA,EAAA,CAAA;AAAA,KAAA;AAAA,GACb,CAAA,CAAA;AAEJ;;;;"}
@@ -6,7 +6,7 @@ const EditorContext = createContext(
6
6
  const useEditorContext = () => {
7
7
  const c = useContext(EditorContext);
8
8
  if (!c) {
9
- throw new Error(`useEditorContext invoked outside of a Grid`);
9
+ throw new Error("useEditorContext invoked outside of a Grid");
10
10
  }
11
11
  return c;
12
12
  };
@@ -1 +1 @@
1
- {"version":3,"file":"EditorContext.js","sources":["../src/EditorContext.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\n\nexport interface EditorContext {\n initialText?: string;\n editMode?: boolean;\n startEditMode: () => void;\n endEditMode: (value: string) => void;\n cancelEditMode: () => void;\n}\n\nexport const EditorContext = createContext<EditorContext | undefined>(\n undefined\n);\nexport const useEditorContext = () => {\n const c = useContext(EditorContext);\n if (!c) {\n throw new Error(`useEditorContext invoked outside of a Grid`);\n }\n return c;\n};\n"],"names":[],"mappings":";;AAUO,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":"EditorContext.js","sources":["../src/EditorContext.ts"],"sourcesContent":["import { createContext, useContext } from \"react\";\n\nexport interface EditorContext {\n initialText?: string;\n editMode?: boolean;\n startEditMode: () => void;\n endEditMode: (value: string) => void;\n cancelEditMode: () => void;\n}\n\nexport const EditorContext = createContext<EditorContext | undefined>(\n undefined,\n);\nexport const useEditorContext = () => {\n const c = useContext(EditorContext);\n if (!c) {\n throw new Error(\"useEditorContext invoked outside of a Grid\");\n }\n return c;\n};\n"],"names":[],"mappings":";;AAUO,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,4CAA4C,CAAA,CAAA;AAAA,GAC9D;AACA,EAAO,OAAA,CAAA,CAAA;AACT;;;;"}
@@ -1,4 +1,4 @@
1
- var css_248z = ".salt-density-touch {\n --grid-row-height-default: 61px;\n --grid-padding-default: 16px;\n --grid-fontSize-default: 16px;\n --grid-header-fontSize-default: 14px;\n --grid-separatorGap-default: 20px;\n --grid-cornerTag-size-default: 14px;\n}\n\n.salt-density-low {\n --grid-row-height-default: 49px;\n --grid-padding-default: 12px;\n --grid-fontSize-default: 14px;\n --grid-header-fontSize-default: 12px;\n --grid-separatorGap-default: 16px;\n --grid-cornerTag-size-default: 12px;\n}\n\n.salt-density-medium {\n --grid-row-height-default: 37px;\n --grid-padding-default: 8px;\n --grid-fontSize-default: 12px;\n --grid-header-fontSize-default: 11px;\n --grid-separatorGap-default: 12px;\n --grid-cornerTag-size-default: 10px;\n}\n\n.salt-density-high {\n --grid-row-height-default: 25px;\n --grid-padding-default: 8px;\n --grid-fontSize-default: 11px;\n --grid-header-fontSize-default: 10px;\n --grid-separatorGap-default: 8px;\n --grid-cornerTag-size-default: 8px;\n}\n\n/* Styles applied to the root element */\n.saltGrid {\n --grid-row-height: var(--saltGrid-row-height, var(--grid-row-height-default));\n --grid-padding: var(--saltGrid-padding, var(--grid-padding-default));\n --grid-fontSize: var(--saltGrid-fontSize, var(--grid-fontSize-default));\n --grid-separatorGap: var(--saltGrid-separatorGap, var(--grid-separatorGap-default));\n --grid-header-fontSize: var(--saltGrid-header-fontSize, var(--grid-header-fontSize-default));\n --grid-groupHeader-fontSize: var(--saltGrid-groupHeader-fontSize, var(--grid-header-fontSize));\n --grid-groupHeader-fontWeight: var(--saltGrid-groupHeader-fontWeight, var(--salt-text-label-fontWeight-strong));\n\n --grid-cell-padding: 0 var(--grid-padding);\n\n --grid-background-primary: var(--saltGrid-background-primary, var(--salt-container-primary-background));\n --grid-background-secondary: var(--saltGrid-background-secondary, var(--salt-container-secondary-background));\n --grid-zebraColor: var(--saltGrid-zebraColor, var(--salt-container-secondary-background));\n\n --grid-row-background-hover: var(--saltGrid-row-background-hover, var(--salt-selectable-background-hover));\n --grid-row-background-selected: var(--saltGrid-row-background-selected, var(--salt-selectable-background-selected));\n\n --grid-row-borderColor-selected: var(--saltGrid-row-borderColor-selected, var(--salt-selectable-borderColor-selected));\n --grid-cell-background-selected: var(--saltGrid-cell-background-selected, var(--salt-selectable-background-selected));\n --grid-editableCell-borderColor: var(--saltGrid-editableCell-borderColor, var(--salt-editable-borderColor));\n --grid-editableCell-borderColor-hover: var(--saltGrid-editableCell-borderColor-hover, var(--salt-editable-borderColor-hover));\n --grid-editableCell-background-active: var(--saltGrid-editableCell-background-active, var(--salt-editable-primary-background-active));\n --grid-editableCell-color-active: var(--saltGrid-editableCell-color-active, var(--salt-text-primary-foreground));\n --grid-editableCell-cornerTag-size: var(--saltGrid-editableCell-cornerTag-size, var(--grid-cornerTag-size-default));\n\n --grid-header-color: var(--saltGrid-header-color, var(--salt-text-secondary-foreground));\n\n --grid-headerColumnSeparator-color: var(--saltGrid-headerColumnSeparator-color, var(--salt-separable-tertiary-borderColor));\n --grid-headerRowSeparator-color: var(--saltGrid-headerRowSeparator-color, var(--salt-separable-primary-borderColor));\n --grid-headerRowSeparator-gap: var(--saltGrid-headerRowSeparator-gap, var(--salt-size-unit));\n --grid-headerRowSeparator-height: var(--saltGrid-headerRowSeparator-height, 1px);\n --grid-groupHeaderRowSeparator-color: var(--saltGrid-groupHeaderRowSeparator-color, var(--salt-separable-tertiary-borderColor));\n\n --grid-groupHeader-color: var(--saltGrid-groupHeader-color, var(--salt-text-secondary-foreground));\n --grid-shadow-color: var(--saltGrid-shadow-color, var(--salt-shadow-1-color));\n --grid-columnDropTarget-color: var(--saltGrid-columnDropTarget-color, var(--salt-target-borderColor-hover));\n --grid-cursor-border-style: var(--saltGrid-cursor-borderStyle, var(--salt-focused-outlineStyle));\n --grid-cursor-border-width: var(--saltGrid-cursor-borderWidth, var(--salt-focused-outlineWidth));\n --grid-cursor-borderColor: var(--saltGrid-cursor-borderColor, var(--salt-focused-outlineColor));\n --grid-borderColor: var(--saltGrid-borderColor, var(--salt-container-secondary-borderColor));\n\n --grid-rowSeparator-width: 1px;\n --grid-rowSeparator-color: var(--saltGrid-rowSeparator-color, var(--salt-separable-tertiary-borderColor));\n --grid-columnSeparator-color: var(--saltGrid-columnSeparator-color, var(--salt-separable-tertiary-borderColor));\n --grid-rowSeparator-color-divided: var(--saltGrid-rowSeparator-color-divided, var(--salt-separable-secondary-borderColor));\n\n --grid-pinnedSeparator-color: var(--saltGrid-pinnedSeparator-color, var(--salt-separable-primary-borderColor));\n\n --grid-columnGhost-borderColor: var(--saltGrid-columnGhost-borderColor, var(--salt-palette-interact-border-hover));\n --grid-columnGhost-borderWidth: var(--saltGrid-columnGhost-borderWidth, 1px);\n --grid-columnGhost-boxShadow: var(--saltGrid-columnGhost-boxShadow, var(--salt-overlayable-shadow-drag));\n\n --grid-mid-body-zIndex: 0;\n --grid-left-body-zIndex: 1;\n --grid-right-body-zIndex: 1;\n --grid-middle-header-zIndex: 2;\n --grid-left-header-zIndex: 3;\n --grid-right-header-zIndex: 3;\n}\n\n.saltGrid-columnSeparators {\n}\n\n.saltGrid table {\n border-collapse: separate;\n border-spacing: 0;\n}\n\n.saltGrid-framed {\n border: solid 1px var(--grid-borderColor);\n}\n\n/* Styles applied to the root element if variant=\"primary\" */\n.saltGrid-primaryBackground {\n --grid-background: var(--grid-background-primary);\n}\n\n/* Styles applied to the root element if variant=\"secondary\" */\n.saltGrid-secondaryBackground {\n --grid-background: var(--grid-background-secondary);\n}\n\n.saltGrid {\n position: relative;\n outline: none;\n user-select: none;\n background: var(--grid-background);\n}\n\n/* Styles applied to the root element if zebra is enabled */\n.saltGrid.saltGrid-zebra {\n --grid-rowSeparator-color: transparent;\n}\n\n.saltGrid-hidden {\n visibility: hidden;\n}\n";
1
+ var css_248z = ".salt-density-touch {\n --grid-row-height-default: 61px;\n --grid-padding-default: 16px;\n --grid-fontSize-default: 16px;\n --grid-header-fontSize-default: 14px;\n --grid-separatorGap-default: 20px;\n --grid-cornerTag-size-default: 14px;\n}\n\n.salt-density-low {\n --grid-row-height-default: 49px;\n --grid-padding-default: 12px;\n --grid-fontSize-default: 14px;\n --grid-header-fontSize-default: 12px;\n --grid-separatorGap-default: 16px;\n --grid-cornerTag-size-default: 12px;\n}\n\n.salt-density-medium {\n --grid-row-height-default: 37px;\n --grid-padding-default: 8px;\n --grid-fontSize-default: 12px;\n --grid-header-fontSize-default: 11px;\n --grid-separatorGap-default: 12px;\n --grid-cornerTag-size-default: 10px;\n}\n\n.salt-density-high {\n --grid-row-height-default: 25px;\n --grid-padding-default: 8px;\n --grid-fontSize-default: 11px;\n --grid-header-fontSize-default: 10px;\n --grid-separatorGap-default: 8px;\n --grid-cornerTag-size-default: 8px;\n}\n\n/* Styles applied to the root element */\n.saltGrid {\n --grid-row-height: var(--saltGrid-row-height, var(--grid-row-height-default));\n --grid-padding: var(--saltGrid-padding, var(--grid-padding-default));\n --grid-fontSize: var(--saltGrid-fontSize, var(--grid-fontSize-default));\n --grid-separatorGap: var(--saltGrid-separatorGap, var(--grid-separatorGap-default));\n --grid-header-fontSize: var(--saltGrid-header-fontSize, var(--grid-header-fontSize-default));\n --grid-groupHeader-fontSize: var(--saltGrid-groupHeader-fontSize, var(--grid-header-fontSize));\n --grid-groupHeader-fontWeight: var(--saltGrid-groupHeader-fontWeight, var(--salt-text-label-fontWeight-strong));\n\n --grid-cell-padding: 0 var(--grid-padding);\n\n --grid-background-primary: var(--saltGrid-background-primary, var(--salt-container-primary-background));\n --grid-background-secondary: var(--saltGrid-background-secondary, var(--salt-container-secondary-background));\n --grid-zebraColor: var(--saltGrid-zebraColor, var(--salt-container-secondary-background));\n\n --grid-row-background-hover: var(--saltGrid-row-background-hover, var(--salt-selectable-background-hover));\n --grid-row-background-selected: var(--saltGrid-row-background-selected, var(--salt-selectable-background-selected));\n\n --grid-row-borderColor-selected: var(--saltGrid-row-borderColor-selected, var(--salt-selectable-borderColor-selected));\n --grid-cell-background-selected: var(--saltGrid-cell-background-selected, var(--salt-selectable-background-selected));\n --grid-editableCell-borderColor: var(--saltGrid-editableCell-borderColor, var(--salt-editable-borderColor));\n --grid-editableCell-borderColor-hover: var(--saltGrid-editableCell-borderColor-hover, var(--salt-editable-borderColor-hover));\n --grid-editableCell-background-active: var(--saltGrid-editableCell-background-active, var(--salt-editable-primary-background-active));\n --grid-editableCell-color-active: var(--saltGrid-editableCell-color-active, var(--salt-content-primary-foreground));\n --grid-editableCell-cornerTag-size: var(--saltGrid-editableCell-cornerTag-size, var(--grid-cornerTag-size-default));\n\n --grid-header-color: var(--saltGrid-header-color, var(--salt-content-secondary-foreground));\n\n --grid-headerColumnSeparator-color: var(--saltGrid-headerColumnSeparator-color, var(--salt-separable-tertiary-borderColor));\n --grid-headerRowSeparator-color: var(--saltGrid-headerRowSeparator-color, var(--salt-separable-primary-borderColor));\n --grid-headerRowSeparator-gap: var(--saltGrid-headerRowSeparator-gap, var(--salt-spacing-100));\n --grid-headerRowSeparator-height: var(--saltGrid-headerRowSeparator-height, 1px);\n --grid-groupHeaderRowSeparator-color: var(--saltGrid-groupHeaderRowSeparator-color, var(--salt-separable-tertiary-borderColor));\n\n --grid-groupHeader-color: var(--saltGrid-groupHeader-color, var(--salt-content-secondary-foreground));\n --grid-shadow-color: var(--saltGrid-shadow-color, var(--salt-shadow-100-color));\n --grid-columnDropTarget-color: var(--saltGrid-columnDropTarget-color, var(--salt-target-borderColor-hover));\n --grid-cursor-border-style: var(--saltGrid-cursor-borderStyle, var(--salt-focused-outlineStyle));\n --grid-cursor-border-width: var(--saltGrid-cursor-borderWidth, var(--salt-focused-outlineWidth));\n --grid-cursor-borderColor: var(--saltGrid-cursor-borderColor, var(--salt-focused-outlineColor));\n --grid-borderColor: var(--saltGrid-borderColor, var(--salt-container-secondary-borderColor));\n\n --grid-rowSeparator-width: 1px;\n --grid-rowSeparator-color: var(--saltGrid-rowSeparator-color, var(--salt-separable-tertiary-borderColor));\n --grid-columnSeparator-color: var(--saltGrid-columnSeparator-color, var(--salt-separable-tertiary-borderColor));\n --grid-rowSeparator-color-divided: var(--saltGrid-rowSeparator-color-divided, var(--salt-separable-secondary-borderColor));\n\n --grid-pinnedSeparator-color: var(--saltGrid-pinnedSeparator-color, var(--salt-separable-primary-borderColor));\n\n --grid-columnGhost-borderColor: var(--saltGrid-columnGhost-borderColor, var(--salt-palette-interact-border-hover));\n --grid-columnGhost-borderWidth: var(--saltGrid-columnGhost-borderWidth, 1px);\n --grid-columnGhost-boxShadow: var(--saltGrid-columnGhost-boxShadow, var(--salt-overlayable-shadow-drag));\n\n --grid-mid-body-zIndex: 0;\n --grid-left-body-zIndex: 1;\n --grid-right-body-zIndex: 1;\n --grid-middle-header-zIndex: 2;\n --grid-left-header-zIndex: 3;\n --grid-right-header-zIndex: 3;\n}\n\n.saltGrid-columnSeparators {\n}\n\n.saltGrid table {\n border-collapse: separate;\n border-spacing: 0;\n}\n\n.saltGrid-framed {\n border: solid 1px var(--grid-borderColor);\n}\n\n/* Styles applied to the root element if variant=\"primary\" */\n.saltGrid-primaryBackground {\n --grid-background: var(--grid-background-primary);\n}\n\n/* Styles applied to the root element if variant=\"secondary\" */\n.saltGrid-secondaryBackground {\n --grid-background: var(--grid-background-secondary);\n}\n\n.saltGrid {\n position: relative;\n outline: none;\n user-select: none;\n background: var(--grid-background);\n\n font-family: var(--salt-text-fontFamily);\n font-size: var(--grid-fontSize);\n font-weight: var(--salt-text-fontWeight);\n line-height: var(--salt-text-lineHeight);\n}\n\n/* Styles applied to the root element if zebra is enabled */\n.saltGrid.saltGrid-zebra {\n --grid-rowSeparator-color: transparent;\n}\n\n.saltGrid-hidden {\n visibility: hidden;\n}\n";
2
2
 
3
3
  export { css_248z as default };
4
4
  //# sourceMappingURL=Grid.css.js.map
package/dist-es/Grid.js CHANGED
@@ -1,10 +1,18 @@
1
1
  import { jsx, jsxs } from 'react/jsx-runtime';
2
- import { useRef, useState, useCallback, useMemo, 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';
6
5
  import { clsx } from 'clsx';
7
- import './internal/Cell.js';
6
+ import { useRef, useState, useCallback, useMemo, useEffect } from 'react';
7
+ import { ColumnDataContext } from './ColumnDataContext.js';
8
+ import { ColumnDragContext } from './ColumnDragContext.js';
9
+ import { ColumnSortContext } from './ColumnSortContext.js';
10
+ import { CursorContext } from './CursorContext.js';
11
+ import { EditorContext } from './EditorContext.js';
12
+ import { GridContext } from './GridContext.js';
13
+ import { LayoutContext } from './LayoutContext.js';
14
+ import { SelectionContext } from './SelectionContext.js';
15
+ import { SizingContext } from './SizingContext.js';
8
16
  import { CellMeasure } from './internal/CellMeasure.js';
9
17
  import './internal/Cursor.js';
10
18
  import './internal/GroupHeaderRow.js';
@@ -15,22 +23,14 @@ import { RightPart } from './internal/RightPart.js';
15
23
  import { Scrollable } from './internal/Scrollable.js';
16
24
  import './internal/TableRow.js';
17
25
  import { clamp, getFocusablePosition } from './internal/utils.js';
18
- import { SelectionContext } from './SelectionContext.js';
19
- import { EditorContext } from './EditorContext.js';
20
- import { CursorContext } from './CursorContext.js';
21
26
  import { useColumnRegistry, useSumWidth, useSum, useClientMidWidth, useBodyVisibleColumnRange, useVisibleColumnGroupRange, useHeadVisibleColumnRange, useLeftScrolledOutWidth, useClientMidHeight, useVisibleRowRange, useBodyVisibleAreaTop, useColumnRange, useSumRangeWidth, useScrollToCell, useRowSelection, useRangeSelection, useRowModels, useColumnResize, useColumnMove } from './internal/gridHooks.js';
22
27
  import { TopLeftPart } from './internal/TopLeftPart.js';
23
28
  import { TopPart } from './internal/TopPart.js';
24
29
  import { TopRightPart } from './internal/TopRightPart.js';
30
+ import './CellFrame.js';
25
31
  import './internal/DefaultCellValue.js';
26
- import { GridContext } from './GridContext.js';
27
- import { SizingContext } from './SizingContext.js';
28
- import { LayoutContext } from './LayoutContext.js';
29
- import { ColumnDragContext } from './ColumnDragContext.js';
30
- import { ColumnGhost } from './internal/ColumnGhost.js';
31
32
  import { ColumnDropTarget } from './internal/ColumnDropTarget.js';
32
- import { ColumnDataContext } from './ColumnDataContext.js';
33
- import { ColumnSortContext } from './ColumnSortContext.js';
33
+ import { ColumnGhost } from './internal/ColumnGhost.js';
34
34
  import css_248z from './Grid.css.js';
35
35
 
36
36
  const withBaseName = makePrefixer("saltGrid");
@@ -120,7 +120,9 @@ const Grid = function Grid2(props) {
120
120
  } = useColumnRegistry(children);
121
121
  const midColsById = useMemo(
122
122
  () => new Map(
123
- midCols.map((c) => [c.info.props.id, c])
123
+ midCols.map(
124
+ (c) => [c.info.props.id, c]
125
+ )
124
126
  ),
125
127
  [midCols]
126
128
  );
@@ -360,7 +362,7 @@ const Grid = function Grid2(props) {
360
362
  }, 0);
361
363
  };
362
364
  const startEditMode = (text) => {
363
- if (editMode || cursorRowIdx == void 0 || cursorColIdx == void 0) {
365
+ if (editMode || cursorRowIdx === void 0 || cursorColIdx === void 0) {
364
366
  return;
365
367
  }
366
368
  const c = cols[cursorColIdx];
@@ -374,14 +376,14 @@ const Grid = function Grid2(props) {
374
376
  if (!editMode) {
375
377
  return;
376
378
  }
377
- if (cursorColIdx == void 0) {
378
- console.error(`endEditMode: cursorColIdx is undefined in edit mode`);
379
+ if (cursorColIdx === void 0) {
380
+ console.error("endEditMode: cursorColIdx is undefined in edit mode");
379
381
  return;
380
382
  }
381
383
  const c = cols[cursorColIdx];
382
384
  const handler = c.info.props.onChange;
383
- if (cursorRowIdx == void 0) {
384
- console.error(`endEditMode: cursorRowIdx is undefined in edit mode`);
385
+ if (cursorRowIdx === void 0) {
386
+ console.error("endEditMode: cursorRowIdx is undefined in edit mode");
385
387
  return;
386
388
  }
387
389
  if (!handler) {
@@ -500,18 +502,12 @@ const Grid = function Grid2(props) {
500
502
  [editMode, startEditMode, endEditMode, cancelEditMode, initialText]
501
503
  );
502
504
  const [isFocused, setFocused] = useState(false);
503
- const onFocus = useCallback(
504
- (event) => {
505
- setFocused(true);
506
- },
507
- [setFocused]
508
- );
509
- const onBlur = useCallback(
510
- (event) => {
511
- setFocused(false);
512
- },
513
- [setFocused]
514
- );
505
+ const onFocus = useCallback(() => {
506
+ setFocused(true);
507
+ }, []);
508
+ const onBlur = useCallback(() => {
509
+ setFocused(false);
510
+ }, []);
515
511
  const cursorContext = useMemo(
516
512
  () => ({
517
513
  isFocused,
@@ -595,9 +591,8 @@ const Grid = function Grid2(props) {
595
591
  if (editMode) {
596
592
  cancelEditMode();
597
593
  break;
598
- } else {
599
- return false;
600
594
  }
595
+ return false;
601
596
  default:
602
597
  if (!editMode && !event.ctrlKey && !event.metaKey && !event.altKey && /^[\w\d ]$/.test(key)) {
603
598
  startEditMode(key);
@@ -624,14 +619,14 @@ const Grid = function Grid2(props) {
624
619
  case " ":
625
620
  if (focusedPart === "body") {
626
621
  if (event.ctrlKey) {
627
- if (cursorColIdx != void 0) {
622
+ if (cursorColIdx !== void 0) {
628
623
  rangeSelection.selectRange({
629
624
  start: { rowIdx: 0, colIdx: cursorColIdx },
630
625
  end: { rowIdx: sortedRowData.length, colIdx: cursorColIdx }
631
626
  });
632
627
  }
633
628
  } else {
634
- if (cursorRowIdx != void 0) {
629
+ if (cursorRowIdx !== void 0) {
635
630
  selectRows({
636
631
  rowIndex: cursorRowIdx,
637
632
  isRange: false,
@@ -641,9 +636,8 @@ const Grid = function Grid2(props) {
641
636
  }
642
637
  }
643
638
  break;
644
- } else {
645
- return false;
646
639
  }
640
+ return false;
647
641
  case "a":
648
642
  if (event.ctrlKey || event.metaKey) {
649
643
  rangeSelection.selectRange({
@@ -652,9 +646,8 @@ const Grid = function Grid2(props) {
652
646
  });
653
647
  selectAll();
654
648
  return true;
655
- } else {
656
- return false;
657
649
  }
650
+ return false;
658
651
  default:
659
652
  return false;
660
653
  }
@@ -676,6 +669,7 @@ const Grid = function Grid2(props) {
676
669
  );
677
670
  const clipboardKeyHandler = useCallback(
678
671
  (event) => {
672
+ var _a2, _b2;
679
673
  const { key } = event;
680
674
  if (key === "c" && (event.ctrlKey || event.metaKey) && rangeSelection.selectedCellRange) {
681
675
  const { start, end } = rangeSelection.selectedCellRange;
@@ -688,7 +682,7 @@ const Grid = function Grid2(props) {
688
682
  const rowText = [];
689
683
  for (let c2 = minCol; c2 <= maxCol; ++c2) {
690
684
  const col = cols[c2];
691
- const cellValue = col.info.props.getValue(row);
685
+ const cellValue = (_b2 = col == null ? void 0 : (_a2 = col.info.props).getValue) == null ? void 0 : _b2.call(_a2, row);
692
686
  rowText.push(cellValue);
693
687
  }
694
688
  text.push(rowText.join(" "));
@@ -788,7 +782,7 @@ const Grid = function Grid2(props) {
788
782
  break;
789
783
  case "Enter":
790
784
  if (editMode && !event.ctrlKey && !event.metaKey && !event.altKey && !event.shiftKey) {
791
- if (cursorRowIdx == void 0) {
785
+ if (cursorRowIdx === void 0) {
792
786
  moveCursor(focusedPart, 0, 0);
793
787
  } else {
794
788
  moveCursor(focusedPart, cursorRowIdx + 1, cursorColIdx);
@@ -829,7 +823,7 @@ const Grid = function Grid2(props) {
829
823
  );
830
824
  const onKeyDown = useCallback(
831
825
  (event) => {
832
- if (cursorColIdx != void 0 && cursorRowIdx != void 0) {
826
+ if (cursorColIdx !== void 0 && cursorRowIdx !== void 0) {
833
827
  const column = cols[cursorColIdx];
834
828
  if (column.info.props.onKeyDown) {
835
829
  column.info.props.onKeyDown(event, cursorRowIdx);