@osdk/react-components 0.1.0-beta.1 → 0.1.0-beta.3

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 (131) hide show
  1. package/CHANGELOG.md +33 -0
  2. package/README.md +51 -1
  3. package/build/browser/base-components/checkbox/Checkbox.js +40 -0
  4. package/build/browser/base-components/checkbox/Checkbox.js.map +1 -0
  5. package/build/browser/base-components/checkbox/Checkbox.module.css +71 -0
  6. package/build/browser/css-modules.d.ts +20 -0
  7. package/build/browser/object-table/CellContextMenu.js +48 -0
  8. package/build/browser/object-table/CellContextMenu.js.map +1 -0
  9. package/build/browser/object-table/ObjectTable.js +53 -9
  10. package/build/browser/object-table/ObjectTable.js.map +1 -1
  11. package/build/browser/object-table/ObjectTableApi.js.map +1 -1
  12. package/build/browser/object-table/SelectionCells.js +45 -0
  13. package/build/browser/object-table/SelectionCells.js.map +1 -0
  14. package/build/browser/object-table/Table.js +8 -4
  15. package/build/browser/object-table/Table.js.map +1 -1
  16. package/build/browser/object-table/TableBody.js +3 -1
  17. package/build/browser/object-table/TableBody.js.map +1 -1
  18. package/build/browser/object-table/TableCell.js +51 -0
  19. package/build/browser/object-table/TableCell.js.map +1 -0
  20. package/build/browser/object-table/TableHeader.js +20 -4
  21. package/build/browser/object-table/TableHeader.js.map +1 -1
  22. package/build/browser/object-table/TableRow.js +7 -9
  23. package/build/browser/object-table/TableRow.js.map +1 -1
  24. package/build/browser/object-table/hooks/__tests__/useCellContextMenu.test.js +147 -0
  25. package/build/browser/object-table/hooks/__tests__/useCellContextMenu.test.js.map +1 -0
  26. package/build/browser/object-table/hooks/__tests__/useObjectTableData.test.js +12 -0
  27. package/build/browser/object-table/hooks/__tests__/useObjectTableData.test.js.map +1 -1
  28. package/build/browser/object-table/hooks/__tests__/useRowSelection.test.js +548 -0
  29. package/build/browser/object-table/hooks/__tests__/useRowSelection.test.js.map +1 -0
  30. package/build/browser/object-table/hooks/__tests__/useSelectionColumn.test.js +274 -0
  31. package/build/browser/object-table/hooks/__tests__/useSelectionColumn.test.js.map +1 -0
  32. package/build/browser/object-table/hooks/useCellContextMenu.js +48 -0
  33. package/build/browser/object-table/hooks/useCellContextMenu.js.map +1 -0
  34. package/build/browser/object-table/hooks/useColumnDefs.js.map +1 -1
  35. package/build/browser/object-table/hooks/useObjectTableData.js +3 -2
  36. package/build/browser/object-table/hooks/useObjectTableData.js.map +1 -1
  37. package/build/browser/object-table/hooks/useRowSelection.js +180 -0
  38. package/build/browser/object-table/hooks/useRowSelection.js.map +1 -0
  39. package/build/browser/object-table/hooks/useSelectionColumn.js +51 -0
  40. package/build/browser/object-table/hooks/useSelectionColumn.js.map +1 -0
  41. package/build/browser/object-table/utils/getRowId.js +21 -0
  42. package/build/browser/object-table/utils/getRowId.js.map +1 -0
  43. package/build/browser/public/experimental.js +1 -0
  44. package/build/browser/public/experimental.js.map +1 -1
  45. package/build/cjs/public/experimental.cjs +424 -3611
  46. package/build/cjs/public/experimental.cjs.map +1 -1
  47. package/build/cjs/public/experimental.css +48 -0
  48. package/build/cjs/public/experimental.css.map +1 -0
  49. package/build/cjs/public/experimental.d.cts +6 -11
  50. package/build/esm/base-components/checkbox/Checkbox.js +40 -0
  51. package/build/esm/base-components/checkbox/Checkbox.js.map +1 -0
  52. package/build/esm/base-components/checkbox/Checkbox.module.css +71 -0
  53. package/build/esm/css-modules.d.ts +20 -0
  54. package/build/esm/object-table/CellContextMenu.js +48 -0
  55. package/build/esm/object-table/CellContextMenu.js.map +1 -0
  56. package/build/esm/object-table/ObjectTable.js +53 -9
  57. package/build/esm/object-table/ObjectTable.js.map +1 -1
  58. package/build/esm/object-table/ObjectTableApi.js.map +1 -1
  59. package/build/esm/object-table/SelectionCells.js +45 -0
  60. package/build/esm/object-table/SelectionCells.js.map +1 -0
  61. package/build/esm/object-table/Table.js +8 -4
  62. package/build/esm/object-table/Table.js.map +1 -1
  63. package/build/esm/object-table/TableBody.js +3 -1
  64. package/build/esm/object-table/TableBody.js.map +1 -1
  65. package/build/esm/object-table/TableCell.js +51 -0
  66. package/build/esm/object-table/TableCell.js.map +1 -0
  67. package/build/esm/object-table/TableHeader.js +20 -4
  68. package/build/esm/object-table/TableHeader.js.map +1 -1
  69. package/build/esm/object-table/TableRow.js +7 -9
  70. package/build/esm/object-table/TableRow.js.map +1 -1
  71. package/build/esm/object-table/hooks/__tests__/useCellContextMenu.test.js +147 -0
  72. package/build/esm/object-table/hooks/__tests__/useCellContextMenu.test.js.map +1 -0
  73. package/build/esm/object-table/hooks/__tests__/useObjectTableData.test.js +12 -0
  74. package/build/esm/object-table/hooks/__tests__/useObjectTableData.test.js.map +1 -1
  75. package/build/esm/object-table/hooks/__tests__/useRowSelection.test.js +548 -0
  76. package/build/esm/object-table/hooks/__tests__/useRowSelection.test.js.map +1 -0
  77. package/build/esm/object-table/hooks/__tests__/useSelectionColumn.test.js +274 -0
  78. package/build/esm/object-table/hooks/__tests__/useSelectionColumn.test.js.map +1 -0
  79. package/build/esm/object-table/hooks/useCellContextMenu.js +48 -0
  80. package/build/esm/object-table/hooks/useCellContextMenu.js.map +1 -0
  81. package/build/esm/object-table/hooks/useColumnDefs.js.map +1 -1
  82. package/build/esm/object-table/hooks/useObjectTableData.js +3 -2
  83. package/build/esm/object-table/hooks/useObjectTableData.js.map +1 -1
  84. package/build/esm/object-table/hooks/useRowSelection.js +180 -0
  85. package/build/esm/object-table/hooks/useRowSelection.js.map +1 -0
  86. package/build/esm/object-table/hooks/useSelectionColumn.js +51 -0
  87. package/build/esm/object-table/hooks/useSelectionColumn.js.map +1 -0
  88. package/build/esm/object-table/utils/getRowId.js +21 -0
  89. package/build/esm/object-table/utils/getRowId.js.map +1 -0
  90. package/build/esm/public/experimental.js +1 -0
  91. package/build/esm/public/experimental.js.map +1 -1
  92. package/build/types/base-components/checkbox/Checkbox.d.ts +10 -0
  93. package/build/types/base-components/checkbox/Checkbox.d.ts.map +1 -0
  94. package/build/types/css-modules.d.d.ts +6 -0
  95. package/build/types/css-modules.d.d.ts.map +1 -0
  96. package/build/types/object-table/CellContextMenu.d.ts +11 -0
  97. package/build/types/object-table/CellContextMenu.d.ts.map +1 -0
  98. package/build/types/object-table/ObjectTable.d.ts +1 -1
  99. package/build/types/object-table/ObjectTable.d.ts.map +1 -1
  100. package/build/types/object-table/ObjectTableApi.d.ts +5 -10
  101. package/build/types/object-table/ObjectTableApi.d.ts.map +1 -1
  102. package/build/types/object-table/SelectionCells.d.ts +14 -0
  103. package/build/types/object-table/SelectionCells.d.ts.map +1 -0
  104. package/build/types/object-table/Table.d.ts +4 -3
  105. package/build/types/object-table/Table.d.ts.map +1 -1
  106. package/build/types/object-table/TableBody.d.ts +3 -2
  107. package/build/types/object-table/TableBody.d.ts.map +1 -1
  108. package/build/types/object-table/TableCell.d.ts +8 -0
  109. package/build/types/object-table/TableCell.d.ts.map +1 -0
  110. package/build/types/object-table/TableHeader.d.ts +3 -3
  111. package/build/types/object-table/TableHeader.d.ts.map +1 -1
  112. package/build/types/object-table/TableRow.d.ts +3 -2
  113. package/build/types/object-table/TableRow.d.ts.map +1 -1
  114. package/build/types/object-table/hooks/__tests__/useCellContextMenu.test.d.ts +1 -0
  115. package/build/types/object-table/hooks/__tests__/useCellContextMenu.test.d.ts.map +1 -0
  116. package/build/types/object-table/hooks/__tests__/useRowSelection.test.d.ts +1 -0
  117. package/build/types/object-table/hooks/__tests__/useRowSelection.test.d.ts.map +1 -0
  118. package/build/types/object-table/hooks/__tests__/useSelectionColumn.test.d.ts +1 -0
  119. package/build/types/object-table/hooks/__tests__/useSelectionColumn.test.d.ts.map +1 -0
  120. package/build/types/object-table/hooks/useCellContextMenu.d.ts +17 -0
  121. package/build/types/object-table/hooks/useCellContextMenu.d.ts.map +1 -0
  122. package/build/types/object-table/hooks/useObjectTableData.d.ts +2 -2
  123. package/build/types/object-table/hooks/useObjectTableData.d.ts.map +1 -1
  124. package/build/types/object-table/hooks/useRowSelection.d.ts +22 -0
  125. package/build/types/object-table/hooks/useRowSelection.d.ts.map +1 -0
  126. package/build/types/object-table/hooks/useSelectionColumn.d.ts +15 -0
  127. package/build/types/object-table/hooks/useSelectionColumn.d.ts.map +1 -0
  128. package/build/types/object-table/utils/getRowId.d.ts +6 -0
  129. package/build/types/object-table/utils/getRowId.d.ts.map +1 -0
  130. package/build/types/public/experimental.d.ts.map +1 -1
  131. package/package.json +13 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRowSelection.js","names":["useCallback","useMemo","useState","getRowId","getRowIdFromPrimaryKey","useRowSelection","selectionMode","selectedRows","onRowSelection","data","internalRowSelection","setInternalRowSelection","lastSelectedRowIndex","setLastSelectedRowIndex","isControlled","undefined","isSelectionEnabled","rowSelectionState","getRowSelectionState","selectedCount","Object","values","filter","Boolean","length","totalCount","isAllSelected","onToggleAll","newSelectedRows","map","item","$primaryKey","onToggleRow","rowId","rowIndex","isShiftClick","getSingleSelectionRows","getRangeSelectionRows","getMultipleSelectionRows","rowSelection","hasSelection","primaryKey","rowsInRange","getRowsInRange","primaryKeysInRange","currentlySelected","getSelectedPrimaryKeys","forEach","includes","push","i","startIndex","endIndex","start","Math","min","end","max","rows","primaryKeys","reduce","acc","selectionState"],"sources":["useRowSelection.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { ObjectTypeDefinition, Osdk, PrimaryKeyType } from \"@osdk/api\";\nimport type { RowSelectionState } from \"@tanstack/react-table\";\nimport { useCallback, useMemo, useState } from \"react\";\nimport { getRowId, getRowIdFromPrimaryKey } from \"../utils/getRowId.js\";\n\nexport interface UseRowSelectionProps<\n Q extends ObjectTypeDefinition,\n RDPs extends Record<string, any> = Record<string, never>,\n> {\n selectionMode?: \"single\" | \"multiple\" | \"none\";\n selectedRows?: PrimaryKeyType<Q>[];\n onRowSelection?: (selectedRowIds: PrimaryKeyType<Q>[]) => void;\n data: Array<Osdk.Instance<Q, \"$allBaseProperties\", any, RDPs>> | undefined;\n}\n\nexport interface UseRowSelectionResult {\n rowSelection: RowSelectionState;\n isAllSelected: boolean;\n hasSelection: boolean;\n onToggleAll: () => void;\n onToggleRow: (\n rowId: string,\n rowIndex: number,\n isShiftClick?: boolean,\n ) => void;\n}\n\nexport function useRowSelection<\n Q extends ObjectTypeDefinition,\n RDPs extends Record<string, any> = Record<string, never>,\n>({\n selectionMode = \"none\",\n selectedRows,\n onRowSelection,\n data,\n}: UseRowSelectionProps<Q, RDPs>): UseRowSelectionResult {\n // The rowSelectionState in uncontrolled mode\n const [internalRowSelection, setInternalRowSelection] = useState<\n RowSelectionState\n >({});\n\n // Used for shift-click behavior in \"multiple\" mode\n const [lastSelectedRowIndex, setLastSelectedRowIndex] = useState<\n number | null\n >(null);\n\n const isControlled = selectedRows !== undefined;\n const isSelectionEnabled = selectionMode !== \"none\";\n\n // Row selection state\n // If controlled mode, return the state from selectedRows prop\n // If uncontrolled, return the internalRowSelection state\n const rowSelectionState: RowSelectionState = useMemo(() => {\n if (!isSelectionEnabled) return {};\n if (isControlled && selectedRows) {\n return getRowSelectionState(selectedRows);\n }\n return internalRowSelection;\n }, [\n isSelectionEnabled,\n isControlled,\n selectedRows,\n internalRowSelection,\n ]);\n\n const selectedCount = Object.values(rowSelectionState).filter(Boolean).length;\n const totalCount = data?.length ?? 0;\n const isAllSelected = totalCount > 0 && selectedCount === totalCount;\n const hasSelection = selectedCount > 0;\n\n const onToggleAll = useCallback(() => {\n if (!isSelectionEnabled || !data) return;\n\n const newSelectedRows: PrimaryKeyType<Q>[] = isAllSelected\n ? []\n : data.map(item => item.$primaryKey);\n\n if (!isControlled) {\n setInternalRowSelection(getRowSelectionState(newSelectedRows));\n }\n onRowSelection?.(newSelectedRows);\n }, [isSelectionEnabled, data, isAllSelected, isControlled, onRowSelection]);\n\n const onToggleRow = useCallback(\n (rowId: string, rowIndex: number, isShiftClick: boolean = false) => {\n if (!isSelectionEnabled || !data) return;\n\n let newSelectedRows: PrimaryKeyType<Q>[] = [];\n\n if (selectionMode === \"single\") {\n newSelectedRows = getSingleSelectionRows({\n rowId,\n rowIndex,\n data,\n rowSelectionState,\n });\n setLastSelectedRowIndex(rowIndex);\n } else {\n // Multiple selection mode\n\n // When user does shiftClick but lastSelectedRowIndex is null,\n // it is treated as a normal click in multiple selection\n if (isShiftClick && lastSelectedRowIndex != null) {\n newSelectedRows = getRangeSelectionRows(\n { rowId, rowIndex, data, lastSelectedRowIndex, rowSelectionState },\n );\n } else {\n newSelectedRows = getMultipleSelectionRows(\n { rowId, rowIndex, data, rowSelectionState },\n );\n }\n setLastSelectedRowIndex(rowIndex);\n }\n if (!isControlled) {\n setInternalRowSelection(getRowSelectionState(newSelectedRows));\n }\n onRowSelection?.(newSelectedRows);\n },\n [\n isSelectionEnabled,\n data,\n selectionMode,\n lastSelectedRowIndex,\n isControlled,\n rowSelectionState,\n onRowSelection,\n ],\n );\n\n return {\n rowSelection: rowSelectionState,\n isAllSelected,\n hasSelection,\n onToggleAll,\n onToggleRow,\n };\n}\n\ninterface GetSelectedRowsProps<\n Q extends ObjectTypeDefinition,\n RDPs extends Record<string, any> = Record<string, never>,\n> {\n rowId: string;\n rowIndex: number;\n data: Array<Osdk.Instance<Q, \"$allBaseProperties\", any, RDPs>>;\n rowSelectionState: RowSelectionState;\n lastSelectedRowIndex?: number;\n}\n\nfunction getSingleSelectionRows<\n Q extends ObjectTypeDefinition,\n RDPs extends Record<string, any> = Record<string, never>,\n>(\n { rowId, rowIndex, data, rowSelectionState }: GetSelectedRowsProps<Q, RDPs>,\n): PrimaryKeyType<Q>[] {\n const primaryKey = data[rowIndex].$primaryKey;\n // Toggle row selection in single selection mode\n const newSelectedRows = rowSelectionState[rowId] ? [] : [primaryKey];\n return newSelectedRows;\n}\n\nfunction getRangeSelectionRows<\n Q extends ObjectTypeDefinition,\n RDPs extends Record<string, any> = Record<string, never>,\n>(\n { lastSelectedRowIndex, rowIndex, data, rowSelectionState }:\n GetSelectedRowsProps<Q, RDPs>,\n): PrimaryKeyType<Q>[] {\n // This function is only called if lastSelectedRowIndex is not null\n // This condition is added for typechecks only\n if (lastSelectedRowIndex != null) {\n const rowsInRange = getRowsInRange(data, lastSelectedRowIndex, rowIndex);\n const primaryKeysInRange = rowsInRange.map(item => item.$primaryKey);\n\n const currentlySelected = getSelectedPrimaryKeys(rowSelectionState, data);\n\n // Add all rows in range to selectedRows if not yet selected\n const newSelectedRows = [...currentlySelected];\n primaryKeysInRange.forEach(item => {\n if (!newSelectedRows.includes(item)) {\n newSelectedRows.push(item);\n }\n });\n return newSelectedRows;\n }\n return [];\n}\n\nfunction getMultipleSelectionRows<\n Q extends ObjectTypeDefinition,\n RDPs extends Record<string, any> = Record<string, never>,\n>(\n { rowIndex, data, rowSelectionState }: GetSelectedRowsProps<Q, RDPs>,\n): PrimaryKeyType<Q>[] {\n const primaryKey = data[rowIndex].$primaryKey;\n const currentlySelected = getSelectedPrimaryKeys(rowSelectionState, data);\n // Handles single row toggle in multiple selection mode\n const newSelectedRows = currentlySelected.includes(primaryKey)\n ? currentlySelected.filter(i => i !== primaryKey)\n : [...currentlySelected, primaryKey];\n return newSelectedRows;\n}\n\n/**\n * Builds a range of rows from startIndex to endIndex\n */\nfunction getRowsInRange<\n Q extends ObjectTypeDefinition,\n RDPs extends Record<string, any> = Record<string, never>,\n>(\n data: Array<Osdk.Instance<Q, \"$allBaseProperties\", any, RDPs>>,\n startIndex: number,\n endIndex: number,\n): Array<Osdk.Instance<Q, \"$allBaseProperties\", any, RDPs>> {\n const start = Math.min(startIndex, endIndex);\n const end = Math.max(startIndex, endIndex);\n const rows: Array<Osdk.Instance<Q, \"$allBaseProperties\", any, RDPs>> = [];\n\n for (let i = start; i <= end; i++) {\n const item = data[i];\n if (item) {\n rows.push(item);\n }\n }\n\n return rows;\n}\n\n/**\n * Converts an array of primary keys to a RowSelectionState object\n */\nfunction getRowSelectionState<Q extends ObjectTypeDefinition>(\n primaryKeys: PrimaryKeyType<Q>[],\n): RowSelectionState {\n return primaryKeys.reduce<RowSelectionState>(\n (acc, primaryKey) => {\n acc[getRowIdFromPrimaryKey(primaryKey)] = true;\n return acc;\n },\n {},\n );\n}\n\n/**\n * Converts from a RowSelectionState object back to an array of primary keys\n */\nfunction getSelectedPrimaryKeys<\n Q extends ObjectTypeDefinition,\n RDPs extends Record<string, any> = Record<string, never>,\n>(\n selectionState: RowSelectionState,\n data: Array<Osdk.Instance<Q, \"$allBaseProperties\", any, RDPs>>,\n): PrimaryKeyType<Q>[] {\n return data\n .filter(item => selectionState[getRowId(item)])\n .map(item => item.$primaryKey);\n}\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,51 @@
1
+ /*
2
+ * Copyright 2025 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ import React, { useMemo } from "react";
18
+ import { SelectionCell, SelectionHeaderCell } from "../SelectionCells.js";
19
+ export const SELECTION_COLUMN_ID = "__selection__";
20
+ export const useSelectionColumn = ({
21
+ selectionMode,
22
+ isAllSelected,
23
+ hasSelection,
24
+ onToggleAll,
25
+ onToggleRow
26
+ }) => {
27
+ const selectionColumn = useMemo(() => {
28
+ if (selectionMode === "none") return null;
29
+ return {
30
+ id: SELECTION_COLUMN_ID,
31
+ header: () => selectionMode === "multiple" ? /*#__PURE__*/React.createElement(SelectionHeaderCell, {
32
+ isAllSelected: isAllSelected,
33
+ hasSelection: hasSelection,
34
+ onToggleAll: onToggleAll
35
+ }) : null,
36
+ cell: ({
37
+ row
38
+ }) => /*#__PURE__*/React.createElement(SelectionCell, {
39
+ row: row,
40
+ onToggleRow: onToggleRow
41
+ }),
42
+ size: 50,
43
+ minSize: 50,
44
+ maxSize: 50,
45
+ enableSorting: false,
46
+ enableResizing: false
47
+ };
48
+ }, [selectionMode, isAllSelected, hasSelection, onToggleAll, onToggleRow]);
49
+ return selectionColumn;
50
+ };
51
+ //# sourceMappingURL=useSelectionColumn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSelectionColumn.js","names":["React","useMemo","SelectionCell","SelectionHeaderCell","SELECTION_COLUMN_ID","useSelectionColumn","selectionMode","isAllSelected","hasSelection","onToggleAll","onToggleRow","selectionColumn","id","header","createElement","cell","row","size","minSize","maxSize","enableSorting","enableResizing"],"sources":["useSelectionColumn.tsx"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n ObjectTypeDefinition,\n Osdk,\n PropertyKeys,\n SimplePropertyDef,\n} from \"@osdk/api\";\nimport type { ColumnDef } from \"@tanstack/react-table\";\nimport React, { useMemo } from \"react\";\nimport { SelectionCell, SelectionHeaderCell } from \"../SelectionCells.js\";\n\ninterface UseSelectionColumnProps {\n selectionMode?: \"single\" | \"multiple\" | \"none\";\n isAllSelected: boolean;\n hasSelection: boolean;\n onToggleAll: () => void;\n onToggleRow: (id: string, rowIndex: number, isShiftClick: boolean) => void;\n}\n\nexport const SELECTION_COLUMN_ID = \"__selection__\";\nexport const useSelectionColumn = <\n Q extends ObjectTypeDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<\n string,\n never\n >,\n>({\n selectionMode,\n isAllSelected,\n hasSelection,\n onToggleAll,\n onToggleRow,\n}: UseSelectionColumnProps):\n | ColumnDef<\n Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>\n >\n | null =>\n{\n const selectionColumn = useMemo(() => {\n if (selectionMode === \"none\") return null;\n\n return {\n id: SELECTION_COLUMN_ID,\n header: () => (\n selectionMode === \"multiple\"\n ? (\n <SelectionHeaderCell\n isAllSelected={isAllSelected}\n hasSelection={hasSelection}\n onToggleAll={onToggleAll}\n />\n )\n : null\n ),\n cell: ({ row }: { row: any }) => (\n <SelectionCell\n row={row}\n onToggleRow={onToggleRow}\n />\n ),\n size: 50,\n minSize: 50,\n maxSize: 50,\n enableSorting: false,\n enableResizing: false,\n };\n }, [\n selectionMode,\n isAllSelected,\n hasSelection,\n onToggleAll,\n onToggleRow,\n ]);\n\n return selectionColumn;\n};\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AASA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,aAAa,EAAEC,mBAAmB,QAAQ,sBAAsB;AAUzE,OAAO,MAAMC,mBAAmB,GAAG,eAAe;AAClD,OAAO,MAAMC,kBAAkB,GAAGA,CAMhC;EACAC,aAAa;EACbC,aAAa;EACbC,YAAY;EACZC,WAAW;EACXC;AACuB,CAAC,KAK1B;EACE,MAAMC,eAAe,GAAGV,OAAO,CAAC,MAAM;IACpC,IAAIK,aAAa,KAAK,MAAM,EAAE,OAAO,IAAI;IAEzC,OAAO;MACLM,EAAE,EAAER,mBAAmB;MACvBS,MAAM,EAAEA,CAAA,KACNP,aAAa,KAAK,UAAU,gBAExBN,KAAA,CAAAc,aAAA,CAACX,mBAAmB;QAClBI,aAAa,EAAEA,aAAc;QAC7BC,YAAY,EAAEA,YAAa;QAC3BC,WAAW,EAAEA;MAAY,CAC1B,CAAC,GAEF,IACL;MACDM,IAAI,EAAEA,CAAC;QAAEC;MAAkB,CAAC,kBAC1BhB,KAAA,CAAAc,aAAA,CAACZ,aAAa;QACZc,GAAG,EAAEA,GAAI;QACTN,WAAW,EAAEA;MAAY,CAC1B,CACF;MACDO,IAAI,EAAE,EAAE;MACRC,OAAO,EAAE,EAAE;MACXC,OAAO,EAAE,EAAE;MACXC,aAAa,EAAE,KAAK;MACpBC,cAAc,EAAE;IAClB,CAAC;EACH,CAAC,EAAE,CACDf,aAAa,EACbC,aAAa,EACbC,YAAY,EACZC,WAAW,EACXC,WAAW,CACZ,CAAC;EAEF,OAAOC,eAAe;AACxB,CAAC","ignoreList":[]}
@@ -0,0 +1,21 @@
1
+ /*
2
+ * Copyright 2025 Palantir Technologies, Inc. All rights reserved.
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+
17
+ export const getRowId = row => {
18
+ return getRowIdFromPrimaryKey(row.$primaryKey);
19
+ };
20
+ export const getRowIdFromPrimaryKey = primaryKey => primaryKey.toString();
21
+ //# sourceMappingURL=getRowId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getRowId.js","names":["getRowId","row","getRowIdFromPrimaryKey","$primaryKey","primaryKey","toString"],"sources":["getRowId.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type {\n ObjectTypeDefinition,\n Osdk,\n PrimaryKeyType,\n PropertyKeys,\n SimplePropertyDef,\n} from \"@osdk/api\";\n\nexport const getRowId = <\n Q extends ObjectTypeDefinition,\n RDPs extends Record<string, SimplePropertyDef> = Record<\n string,\n never\n >,\n>(\n row: Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>,\n): string => {\n return getRowIdFromPrimaryKey(row.$primaryKey);\n};\n\nexport const getRowIdFromPrimaryKey = <Q extends ObjectTypeDefinition>(\n primaryKey: PrimaryKeyType<Q>,\n): string => primaryKey.toString();\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAUA,OAAO,MAAMA,QAAQ,GAOnBC,GAAkE,IACvD;EACX,OAAOC,sBAAsB,CAACD,GAAG,CAACE,WAAW,CAAC;AAChD,CAAC;AAED,OAAO,MAAMD,sBAAsB,GACjCE,UAA6B,IAClBA,UAAU,CAACC,QAAQ,CAAC,CAAC","ignoreList":[]}
@@ -14,5 +14,6 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
+ // ObjectTable that loads and displays data for a given objectSet
17
18
  export { ObjectTable } from "../object-table/ObjectTable.js";
18
19
  //# sourceMappingURL=experimental.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"experimental.js","names":["ObjectTable"],"sources":["experimental.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport type { FilterListProps } from \"../filter-list/FilterListApi.js\";\nexport type { FilterListItemProps } from \"../filter-list/FilterListItemApi.js\";\n\nexport { ObjectTable } from \"../object-table/ObjectTable.js\";\nexport type {\n ColumnDefinition,\n ColumnDefinitionLocator,\n ObjectTableProps,\n} from \"../object-table/ObjectTableApi.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA,SAASA,WAAW,QAAQ,gCAAgC","ignoreList":[]}
1
+ {"version":3,"file":"experimental.js","names":["ObjectTable"],"sources":["experimental.ts"],"sourcesContent":["/*\n * Copyright 2025 Palantir Technologies, Inc. All rights reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport type { FilterListProps } from \"../filter-list/FilterListApi.js\";\nexport type { FilterListItemProps } from \"../filter-list/FilterListItemApi.js\";\n\n// ObjectTable that loads and displays data for a given objectSet\nexport { ObjectTable } from \"../object-table/ObjectTable.js\";\nexport type {\n ColumnDefinition,\n ColumnDefinitionLocator,\n ObjectTableProps,\n} from \"../object-table/ObjectTableApi.js\";\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAKA;AACA,SAASA,WAAW,QAAQ,gCAAgC","ignoreList":[]}
@@ -0,0 +1,10 @@
1
+ import { type CheckboxIndicatorProps, type CheckboxRootProps } from "@base-ui/react/checkbox";
2
+ import React from "react";
3
+ interface CheckboxProps extends Omit<CheckboxRootProps, "className"> {
4
+ className?: string;
5
+ indicatorProps?: Omit<CheckboxIndicatorProps, "className"> & {
6
+ className?: string
7
+ };
8
+ }
9
+ export declare function Checkbox({ indeterminate, className, indicatorProps,...rest }: CheckboxProps): React.ReactElement;
10
+ export {};
@@ -0,0 +1 @@
1
+ {"mappings":"AAgBA,cAEO,6BACA,yBACA,yBAA0B;AAGjC,OAAO,WAAW,OAAQ;UAGhB,sBAAsB,KAAK,mBAAmB,aAAa;CACnE;CACA,iBAAiB,KAAK,wBAAwB,eAAe;EAC3D;CACD;AACF;AAED,OAAO,iBAAS,SACd,EACE,eACA,WACA,eACA,GAAG,MACW,EAAb,gBACF,MAAM","names":[],"sources":["../../../../src/base-components/checkbox/Checkbox.tsx"],"version":3,"file":"Checkbox.d.ts"}
@@ -0,0 +1,6 @@
1
+ declare module "*.module.css" {
2
+ const classes: {
3
+ readonly [key: string]: string
4
+ };
5
+ export default classes;
6
+ }
@@ -0,0 +1 @@
1
+ {"mappings":"eAgBe,eAAe;CAC5B,MAAMA,SAAS;;CAAkC;AACjD,gBAAe;AAChB","names":["classes: { readonly [key: string]: string }"],"sources":["../../src/css-modules.d.ts"],"version":3,"file":"css-modules.d.d.ts"}
@@ -0,0 +1,11 @@
1
+ import type { Cell, RowData } from "@tanstack/react-table";
2
+ import React from "react";
3
+ import type { PopoverPosition } from "./hooks/useCellContextMenu.js";
4
+ interface CellContextMenuProps<TData extends RowData> {
5
+ cell: Cell<TData, unknown>;
6
+ position: PopoverPosition;
7
+ onClose: () => void;
8
+ renderContent: (row: TData, cell: Cell<TData, unknown>) => React.ReactNode;
9
+ }
10
+ export declare function CellContextMenu<TData extends RowData>({ cell, position, onClose, renderContent }: CellContextMenuProps<TData>): React.ReactElement;
11
+ export {};
@@ -0,0 +1 @@
1
+ {"mappings":"AAgBA,cAAc,MAAM,eAAe,uBAAwB;AAC3D,OAAO,WAAkC,OAAQ;AAEjD,cAAc,uBAAuB,+BAAgC;UAE3D,qBAAqB,cAAc,SAAS;CACpD,MAAM,KAAK;CACX,UAAU;CACV;CACA,gBAAgBA,KAAK,OAAOC,MAAM,KAAK,oBAAoB,MAAM;AAClE;AAED,OAAO,iBAAS,gBAAgB,cAAc,SAAS,EACrD,MACA,UACA,SACA,eAC4B,EAA3B,qBAAqB,SAAS,MAAM","names":["row: TData","cell: Cell<TData, unknown>"],"sources":["../../../src/object-table/CellContextMenu.tsx"],"version":3,"file":"CellContextMenu.d.ts"}
@@ -13,4 +13,4 @@ export declare function ObjectTable<
13
13
  Q extends ObjectTypeDefinition,
14
14
  RDPs extends Record<string, SimplePropertyDef> = Record<string, never>,
15
15
  FunctionColumns extends Record<string, QueryDefinition<{}>> = Record<string, never>
16
- >({ objectSet, objectType, columnDefinitions, onRowClick, rowHeight }: ObjectTableProps<Q, RDPs, FunctionColumns>): React.ReactElement;
16
+ >({ objectSet, objectType, columnDefinitions, filter, onRowSelection, renderCellContextMenu, selectionMode, selectedRows,...props }: ObjectTableProps<Q, RDPs, FunctionColumns>): React.ReactElement;
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cACE,sBAGA,iBACA,yBACK,WAAY;AAEnB,OAAO,WAAW,OAAQ;AAI1B,cAAc,wBAAwB,qBAAsB;;;;;;;;;AAY5D,OAAO,iBAAS;CACd,UAAU;CACV,aAAa,eAAe,qBAAqB;CAIjD,wBAAwB,eAAe,gBAAgB,CAAE,MAAK;EAI9D,EACA,WACA,YACA,mBACA,YACA,WAC2C,EAA1C,iBAAiB,GAAG,MAAM,mBAAmB,MAAM","names":[],"sources":["../../../src/object-table/ObjectTable.tsx"],"version":3,"file":"ObjectTable.d.ts"}
1
+ {"mappings":"AAgBA,cACE,sBAGA,iBACA,yBACK,WAAY;AAOnB,OAAO,WAA+C,OAAQ;AAM9D,cAAc,wBAAwB,qBAAsB;;;;;;;;;AAa5D,OAAO,iBAAS;CACd,UAAU;CACV,aAAa,eAAe,qBAAqB;CAIjD,wBAAwB,eAAe,gBAAgB,CAAE,MAAK;EAI9D,EACA,WACA,YACA,mBACA,QACA,gBACA,uBACA,eACA,aACA,GAAG,OACwC,EAA1C,iBAAiB,GAAG,MAAM,mBAAmB,MAAM","names":[],"sources":["../../../src/object-table/ObjectTable.tsx"],"version":3,"file":"ObjectTable.d.ts"}
@@ -129,13 +129,6 @@ export interface ObjectTableProps<
129
129
  */
130
130
  onColumnResize?: (columnId: PropertyKeys<Q> | keyof RDPs | keyof FunctionColumns, newWidth: number) => void;
131
131
  /**
132
- * Called when a cell is clicked.
133
- *
134
- * @param object The object representing the row
135
- * @param columnDefinition The column definition for the clicked cell
136
- */
137
- onCellClick?: (object: Osdk.Instance<Q, "$allBaseProperties", PropertyKeys<Q>, RDPs>, locator: ColumnDefinitionLocator<Q, RDPs, FunctionColumns>) => void;
138
- /**
139
132
  * Called when a row is clicked.
140
133
  *
141
134
  * @param object The object representing the clicked row
@@ -146,6 +139,8 @@ export interface ObjectTableProps<
146
139
  *
147
140
  * If multiple, a checkbox will be shown for each row to allow selecting multiple rows
148
141
  * as well as a top-level checkbox in the header to select all rows.
142
+ *
143
+ * @default "none"
149
144
  */
150
145
  selectionMode?: "single" | "multiple" | "none";
151
146
  /**
@@ -157,13 +152,13 @@ export interface ObjectTableProps<
157
152
  * Called when the row selection changes.
158
153
  * Required when row selection is controlled.
159
154
  *
160
- * @param objects The currently selected objects
155
+ * @param selectedRowIds The primary keys of currently selected rows
161
156
  */
162
- onRowSelection?: (objects: PrimaryKeyType<Q>[]) => void;
157
+ onRowSelection?: (selectedRowIds: PrimaryKeyType<Q>[]) => void;
163
158
  /**
164
159
  * If provided, will render this context menu when right clicking on a cell
165
160
  */
166
- renderCellContextMenu?: (object: Osdk.Instance<Q, "$allBaseProperties", PropertyKeys<Q>, RDPs>, locator: ColumnDefinitionLocator<Q, RDPs, FunctionColumns>) => React.ReactNode;
161
+ renderCellContextMenu?: (row: Osdk.Instance<Q, "$allBaseProperties", PropertyKeys<Q>, RDPs>, cellValue: unknown) => React.ReactNode;
167
162
  /**
168
163
  * The height of each row in pixels.
169
164
  *
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cACE,iBACA,WACA,sBACA,MACA,gBACA,cACA,iBACA,mBACA,mBACK,WAAY;AACnB,iBAAiB,WAAW,OAAQ;AAEpC,YAAY;CACV,UAAU;CACV,aAAa,eAAe,qBAAqB;CAIjD,wBAAwB,eAAe,gBAAgB,CAAE,MAAK;IAI5D;CACF,SAAS,wBAAwB,GAAG,MAAM;;;;CAK1C;;;;CAKA,SAAS,SAAS,UAAU;CAC5B;CACA;CACA;CACA;CACA;CACA;CACA,cACEA,QAAQ,KAAK,SAAS,GAAG,sBAAsB,aAAa,IAAI,OAChEC,SAAS,wBAAwB,GAAG,MAAM,qBACvC,MAAM;CACX,qBAAqB,MAAM;AAC5B;AAED,YAAY;CACV,UAAU;CACV,aAAa,eAAe,qBAAqB;CAIjD,wBAAwB,eAAe,gBAAgB,CAAE,MAAK;IAK5D;CACA,MAAM;CACN,IAAI,aAAa;AAClB,IACC;CACA,MAAM;CACN,UAAU;AACX,IACC;CACA,MAAM;CACN,UAAU;CACV,SAAS,gBAAgB,QAAQ,GAAG,WAAW;AAChD;AAEH,iBAAiB;CACf,UAAU;CACV,aAAa,eAAe,qBAAqB;CAIjD,wBAAwB,eAAe,gBAAgB,CAAE,MAAK;EAI9D;;;;CAIA,WAAW,UAAU;;;;CAKrB,YAAY;;;;;;CAOZ,oBAAoB,MAAM,iBAAiB,GAAG,MAAM;;;;;;CAOpD;;;;;CAMA,SAAS,YAAY,GAAG;;;;;;;CAQxB,mBAAmBC,UAAU,YAAY,GAAG;;;;;;CAO5C;;;;;CAMA,UAAU,MAAM;EACd,UAAU,aAAa;EACvB,WAAW,QAAQ;CACpB;;;;;;;CAQD,oBACEC,YAAY,MAAM;EAChB,UAAU,aAAa;EACvB,WAAW,QAAQ;CACpB;;;;;;;;CAUH,6BACEC,WAAW,MAAM;EACf,UAAU,aAAa,WAAW,aAAa;EAC/C;CACD;;;;;;;;CAUH,0BACEC,WAAW,MAAM;EACf,UAAU,aAAa,WAAW,aAAa;EAC/C,QAAQ,SAAS,UAAU;CAC5B;;;;;;;CASH,kBACEC,UAAU,aAAa,WAAW,aAAa,iBAC/CC;;;;;;;CASF,eACEP,QAAQ,KAAK,SAAS,GAAG,sBAAsB,aAAa,IAAI,OAChEC,SAAS,wBAAwB,GAAG,MAAM;;;;;;CAQ5C,cACED,QAAQ,KAAK,SAAS,GAAG,sBAAsB,aAAa,IAAI;;;;;;;CASlE,gBAAgB,WAAW,aAAa;;;;;CAMxC,eAAe,eAAe;;;;;;;CAQ9B,kBAAkBQ,SAAS,eAAe;;;;CAK1C,yBACER,QAAQ,KAAK,SAAS,GAAG,sBAAsB,aAAa,IAAI,OAChEC,SAAS,wBAAwB,GAAG,MAAM,qBACvC,MAAM;;;;;;CAOX;AACD","names":["object: Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>","locator: ColumnDefinitionLocator<Q, RDPs, FunctionColumns>","newWhere: WhereClause<Q, RDPs>","newOrderBy: Array<{\n property: PropertyKeys<Q>;\n direction: \"asc\" | \"desc\";\n }>","newStates: Array<{\n columnId: PropertyKeys<Q> | keyof RDPs | keyof FunctionColumns;\n isVisible: boolean;\n }>","newStates: Array<{\n columnId: PropertyKeys<Q> | keyof RDPs | keyof FunctionColumns;\n pinned: \"left\" | \"right\" | \"none\";\n }>","columnId: PropertyKeys<Q> | keyof RDPs | keyof FunctionColumns","newWidth: number","objects: PrimaryKeyType<Q>[]"],"sources":["../../../src/object-table/ObjectTableApi.ts"],"version":3,"file":"ObjectTableApi.d.ts"}
1
+ {"mappings":"AAgBA,cACE,iBACA,WACA,sBACA,MACA,gBACA,cACA,iBACA,mBACA,mBACK,WAAY;AACnB,iBAAiB,WAAW,OAAQ;AAEpC,YAAY;CACV,UAAU;CACV,aAAa,eAAe,qBAAqB;CAIjD,wBAAwB,eAAe,gBAAgB,CAAE,MAAK;IAI5D;CACF,SAAS,wBAAwB,GAAG,MAAM;;;;CAK1C;;;;CAKA,SAAS,SAAS,UAAU;CAC5B;CACA;CACA;CACA;CACA;CACA;CACA,cACEA,QAAQ,KAAK,SAAS,GAAG,sBAAsB,aAAa,IAAI,OAChEC,SAAS,wBAAwB,GAAG,MAAM,qBACvC,MAAM;CACX,qBAAqB,MAAM;AAC5B;AAED,YAAY;CACV,UAAU;CACV,aAAa,eAAe,qBAAqB;CAIjD,wBAAwB,eAAe,gBAAgB,CAAE,MAAK;IAK5D;CACA,MAAM;CACN,IAAI,aAAa;AAClB,IACC;CACA,MAAM;CACN,UAAU;AACX,IACC;CACA,MAAM;CACN,UAAU;CACV,SAAS,gBAAgB,QAAQ,GAAG,WAAW;AAChD;AAEH,iBAAiB;CACf,UAAU;CACV,aAAa,eAAe,qBAAqB;CAIjD,wBAAwB,eAAe,gBAAgB,CAAE,MAAK;EAI9D;;;;CAIA,WAAW,UAAU;;;;CAKrB,YAAY;;;;;;CAOZ,oBAAoB,MAAM,iBAAiB,GAAG,MAAM;;;;;;CAOpD;;;;;CAMA,SAAS,YAAY,GAAG;;;;;;;CAQxB,mBAAmBC,UAAU,YAAY,GAAG;;;;;;CAO5C;;;;;CAMA,UAAU,MAAM;EACd,UAAU,aAAa;EACvB,WAAW,QAAQ;CACpB;;;;;;;CAQD,oBACEC,YAAY,MAAM;EAChB,UAAU,aAAa;EACvB,WAAW,QAAQ;CACpB;;;;;;;;CAUH,6BACEC,WAAW,MAAM;EACf,UAAU,aAAa,WAAW,aAAa;EAC/C;CACD;;;;;;;;CAUH,0BACEC,WAAW,MAAM;EACf,UAAU,aAAa,WAAW,aAAa;EAC/C,QAAQ,SAAS,UAAU;CAC5B;;;;;;;CASH,kBACEC,UAAU,aAAa,WAAW,aAAa,iBAC/CC;;;;;;CAQF,cACEP,QAAQ,KAAK,SAAS,GAAG,sBAAsB,aAAa,IAAI;;;;;;;;;CAWlE,gBAAgB,WAAW,aAAa;;;;;CAMxC,eAAe,eAAe;;;;;;;CAS9B,kBAAkBQ,gBAAgB,eAAe;;;;CAKjD,yBACEC,KAAK,KAAK,SAAS,GAAG,sBAAsB,aAAa,IAAI,OAC7DC,uBACG,MAAM;;;;;;CAOX;AACD","names":["object: Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>","locator: ColumnDefinitionLocator<Q, RDPs, FunctionColumns>","newWhere: WhereClause<Q, RDPs>","newOrderBy: Array<{\n property: PropertyKeys<Q>;\n direction: \"asc\" | \"desc\";\n }>","newStates: Array<{\n columnId: PropertyKeys<Q> | keyof RDPs | keyof FunctionColumns;\n isVisible: boolean;\n }>","newStates: Array<{\n columnId: PropertyKeys<Q> | keyof RDPs | keyof FunctionColumns;\n pinned: \"left\" | \"right\" | \"none\";\n }>","columnId: PropertyKeys<Q> | keyof RDPs | keyof FunctionColumns","newWidth: number","selectedRowIds: PrimaryKeyType<Q>[]","row: Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>","cellValue: unknown"],"sources":["../../../src/object-table/ObjectTableApi.ts"],"version":3,"file":"ObjectTableApi.d.ts"}
@@ -0,0 +1,14 @@
1
+ import type { Row, RowData } from "@tanstack/react-table";
2
+ import React from "react";
3
+ interface SelectionHeaderCellProps {
4
+ isAllSelected: boolean;
5
+ hasSelection: boolean;
6
+ onToggleAll: () => void;
7
+ }
8
+ export declare function SelectionHeaderCell({ isAllSelected, hasSelection, onToggleAll }: SelectionHeaderCellProps): React.ReactElement;
9
+ interface SelectionCellProps<TData extends RowData> {
10
+ row: Row<TData>;
11
+ onToggleRow: (rowId: string, rowIndex: number, isShiftClick: boolean) => void;
12
+ }
13
+ export declare function SelectionCell<TData extends RowData>({ row, onToggleRow }: SelectionCellProps<TData>): React.ReactElement;
14
+ export {};
@@ -0,0 +1 @@
1
+ {"mappings":"AAgBA,cAAc,KAAK,eAAe,uBAAwB;AAC1D,OAAO,WAA4B,OAAQ;UAGjC,yBAAyB;CACjC;CACA;CACA;AACD;AAED,OAAO,iBAAS,oBAAoB,EAClC,eACA,cACA,aACyB,EAAxB,2BAA2B,MAAM;UAW1B,mBAAmB,cAAc,SAAS;CAClD,KAAK,IAAI;CACT,cAAcA,eAAeC,kBAAkBC;AAChD;AAED,OAAO,iBAAS,cAAc,cAAc,SAAS,EACnD,KACA,aAC0B,EAAzB,mBAAmB,SAAS,MAAM","names":["rowId: string","rowIndex: number","isShiftClick: boolean"],"sources":["../../../src/object-table/SelectionCells.tsx"],"version":3,"file":"SelectionCells.d.ts"}
@@ -1,11 +1,12 @@
1
- import type { RowData, Table } from "@tanstack/react-table";
2
- import { type ReactElement } from "react";
1
+ import type { Cell, RowData, Table } from "@tanstack/react-table";
2
+ import React, { type ReactElement } from "react";
3
3
  interface TableProps<TData extends RowData> {
4
4
  table: Table<TData>;
5
5
  isLoading?: boolean;
6
6
  fetchNextPage?: () => Promise<void>;
7
7
  onRowClick?: (row: TData) => void;
8
8
  rowHeight?: number;
9
+ renderCellContextMenu?: (row: TData, cell: Cell<TData, unknown>) => React.ReactNode;
9
10
  }
10
- export declare function Table<TData extends RowData>({ table, isLoading, fetchNextPage, onRowClick, rowHeight }: TableProps<TData>): ReactElement;
11
+ export declare function Table<TData extends RowData>({ table, isLoading, fetchNextPage, onRowClick, rowHeight, renderCellContextMenu }: TableProps<TData>): ReactElement;
11
12
  export {};
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAAc,SAAS,aAAa,uBAAwB;AAC5D,cAAqB,oBAAyC,OAAQ;UAI5D,WAAW,cAAc,SAAS;CAC1C,OAAO,MAAM;CACb;CACA,sBAAsB;CACtB,cAAcA,KAAK;CACnB;AACD;AAED,OAAO,iBAAS,MAAM,cAAc,SAClC,EAAE,OAAO,WAAW,eAAe,YAAY,WAA8B,EAAjB,WAAW,SACtE","names":["row: TData"],"sources":["../../../src/object-table/Table.tsx"],"version":3,"file":"Table.d.ts"}
1
+ {"mappings":"AAgBA,cAAc,MAAM,SAAS,aAAa,uBAAwB;AAClE,OAAO,cAAc,oBAAyC,OAAQ;UAI5D,WAAW,cAAc,SAAS;CAC1C,OAAO,MAAM;CACb;CACA,sBAAsB;CACtB,cAAcA,KAAK;CACnB;CACA,yBACEA,KAAK,OACLC,MAAM,KAAK,oBACR,MAAM;AACZ;AAED,OAAO,iBAAS,MAAM,cAAc,SAClC,EACE,OACA,WACA,eACA,YACA,WACA,uBACkB,EAAjB,WAAW,SACb","names":["row: TData","cell: Cell<TData, unknown>"],"sources":["../../../src/object-table/Table.tsx"],"version":3,"file":"Table.d.ts"}
@@ -1,10 +1,11 @@
1
- import type { Row, RowData } from "@tanstack/react-table";
1
+ import type { Cell, Row, RowData } from "@tanstack/react-table";
2
2
  import React from "react";
3
3
  interface TableBodyProps<TData extends RowData> {
4
4
  rows: Array<Row<TData>>;
5
5
  tableContainerRef: React.RefObject<HTMLDivElement>;
6
6
  onRowClick?: (row: TData) => void;
7
7
  rowHeight?: number;
8
+ renderCellContextMenu?: (row: TData, cell: Cell<TData, unknown>) => React.ReactNode;
8
9
  }
9
- export declare function TableBody<TData extends RowData>({ rows, tableContainerRef, onRowClick, rowHeight }: TableBodyProps<TData>): React.ReactElement;
10
+ export declare function TableBody<TData extends RowData>({ rows, tableContainerRef, onRowClick, renderCellContextMenu, rowHeight }: TableBodyProps<TData>): React.ReactElement;
10
11
  export {};
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAAc,KAAK,eAAe,uBAAwB;AAE1D,OAAO,WAAgC,OAAQ;UAGrC,eAAe,cAAc,SAAS;CAC9C,MAAM,MAAM,IAAI;CAChB,mBAAmB,MAAM,UAAU;CACnC,cAAcA,KAAK;CACnB;AACD;AAED,OAAO,iBAAS,UAAU,cAAc,SAAS,EAC/C,MACA,mBACA,YACA,WACsB,EAArB,eAAe,SAAS,MAAM","names":["row: TData"],"sources":["../../../src/object-table/TableBody.tsx"],"version":3,"file":"TableBody.d.ts"}
1
+ {"mappings":"AAgBA,cAAc,MAAM,KAAK,eAAe,uBAAwB;AAEhE,OAAO,WAAgC,OAAQ;UAGrC,eAAe,cAAc,SAAS;CAC9C,MAAM,MAAM,IAAI;CAChB,mBAAmB,MAAM,UAAU;CACnC,cAAcA,KAAK;CACnB;CACA,yBACEA,KAAK,OACLC,MAAM,KAAK,oBACR,MAAM;AACZ;AAED,OAAO,iBAAS,UAAU,cAAc,SAAS,EAC/C,MACA,mBACA,YACA,uBACA,WACsB,EAArB,eAAe,SAAS,MAAM","names":["row: TData","cell: Cell<TData, unknown>"],"sources":["../../../src/object-table/TableBody.tsx"],"version":3,"file":"TableBody.d.ts"}
@@ -0,0 +1,8 @@
1
+ import type { Cell, RowData } from "@tanstack/react-table";
2
+ import React from "react";
3
+ interface TableCellProps<TData extends RowData> {
4
+ cell: Cell<TData, unknown>;
5
+ renderCellContextMenu?: (row: TData, cell: Cell<TData, unknown>) => React.ReactNode;
6
+ }
7
+ export declare function TableCell<TData extends RowData>({ cell, renderCellContextMenu }: TableCellProps<TData>): React.ReactElement;
8
+ export {};
@@ -0,0 +1 @@
1
+ {"mappings":"AAgBA,cAAc,MAAM,eAAe,uBAAwB;AAG3D,OAAO,WAAuB,OAAQ;UAK5B,eAAe,cAAc,SAAS;CAC9C,MAAM,KAAK;CACX,yBACEA,KAAK,OACLC,MAAM,KAAK,oBACR,MAAM;AACZ;AAED,OAAO,iBAAS,UAAU,cAAc,SACtC,EAAE,MAAM,uBAA8C,EAArB,eAAe,SAC/C,MAAM","names":["row: TData","cell: Cell<TData, unknown>"],"sources":["../../../src/object-table/TableCell.tsx"],"version":3,"file":"TableCell.d.ts"}
@@ -1,7 +1,7 @@
1
- import type { HeaderGroup, RowData } from "@tanstack/react-table";
1
+ import type { RowData, Table } from "@tanstack/react-table";
2
2
  import React from "react";
3
3
  interface TableHeaderProps<TData extends RowData> {
4
- headerGroups: Array<HeaderGroup<TData>>;
4
+ table: Table<TData>;
5
5
  }
6
- export declare function TableHeader<TData extends RowData>({ headerGroups }: TableHeaderProps<TData>): React.ReactElement;
6
+ export declare function TableHeader<TData extends RowData>({ table }: TableHeaderProps<TData>): React.ReactElement;
7
7
  export {};
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAAc,aAAa,eAAe,uBAAwB;AAElE,OAAO,WAAW,OAAQ;UAEhB,iBAAiB,cAAc,SAAS;CAChD,cAAc,MAAM,YAAY;AACjC;AAED,OAAO,iBAAS,YAAY,cAAc,SAAS,EACjD,cACwB,EAAvB,iBAAiB,SAAS,MAAM","names":[],"sources":["../../../src/object-table/TableHeader.tsx"],"version":3,"file":"TableHeader.d.ts"}
1
+ {"mappings":"AAgBA,cAAc,SAAS,aAAa,uBAAwB;AAG5D,OAAO,WAAW,OAAQ;UAEhB,iBAAiB,cAAc,SAAS;CAChD,OAAO,MAAM;AACd;AAED,OAAO,iBAAS,YAAY,cAAc,SAAS,EACjD,OACwB,EAAvB,iBAAiB,SAAS,MAAM","names":[],"sources":["../../../src/object-table/TableHeader.tsx"],"version":3,"file":"TableHeader.d.ts"}
@@ -1,10 +1,11 @@
1
- import type { Row, RowData } from "@tanstack/react-table";
1
+ import type { Cell, Row, RowData } from "@tanstack/react-table";
2
2
  import type { VirtualItem } from "@tanstack/react-virtual";
3
3
  import React from "react";
4
4
  interface TableRowProps<TData extends RowData> {
5
5
  row: Row<TData>;
6
6
  virtualRow: VirtualItem;
7
7
  onRowClick?: (row: TData) => void;
8
+ renderCellContextMenu?: (row: TData, cell: Cell<TData, unknown>) => React.ReactNode;
8
9
  }
9
- export declare function TableRow<TData extends RowData>({ row, virtualRow, onRowClick }: TableRowProps<TData>): React.ReactElement;
10
+ export declare function TableRow<TData extends RowData>({ row, virtualRow, onRowClick, renderCellContextMenu }: TableRowProps<TData>): React.ReactElement;
10
11
  export {};
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAAc,KAAK,eAAe,uBAAwB;AAE1D,cAAc,mBAAmB,yBAA0B;AAC3D,OAAO,WAA4B,OAAQ;UAEjC,cAAc,cAAc,SAAS;CAC7C,KAAK,IAAI;CACT,YAAY;CACZ,cAAcA,KAAK;AACpB;AAED,OAAO,iBAAS,SAAS,cAAc,SAAS,EAC9C,KACA,YACA,YACqB,EAApB,cAAc,SAAS,MAAM","names":["row: TData"],"sources":["../../../src/object-table/TableRow.tsx"],"version":3,"file":"TableRow.d.ts"}
1
+ {"mappings":"AAgBA,cAAc,MAAM,KAAK,eAAe,uBAAwB;AAChE,cAAc,mBAAmB,yBAA0B;AAC3D,OAAO,WAA4B,OAAQ;UAGjC,cAAc,cAAc,SAAS;CAC7C,KAAK,IAAI;CACT,YAAY;CACZ,cAAcA,KAAK;CACnB,yBACEA,KAAK,OACLC,MAAM,KAAK,oBACR,MAAM;AACZ;AAED,OAAO,iBAAS,SAAS,cAAc,SAAS,EAC9C,KACA,YACA,YACA,uBACqB,EAApB,cAAc,SAAS,MAAM","names":["row: TData","cell: Cell<TData, unknown>"],"sources":["../../../src/object-table/TableRow.tsx"],"version":3,"file":"TableRow.d.ts"}
@@ -0,0 +1 @@
1
+ {"mappings":"","names":[],"sources":["../../../../../src/object-table/hooks/__tests__/useCellContextMenu.test.tsx"],"version":3,"file":"useCellContextMenu.test.d.ts"}
@@ -0,0 +1 @@
1
+ {"mappings":"","names":[],"sources":["../../../../../src/object-table/hooks/__tests__/useRowSelection.test.tsx"],"version":3,"file":"useRowSelection.test.d.ts"}
@@ -0,0 +1 @@
1
+ {"mappings":"","names":[],"sources":["../../../../../src/object-table/hooks/__tests__/useSelectionColumn.test.tsx"],"version":3,"file":"useSelectionColumn.test.d.ts"}
@@ -0,0 +1,17 @@
1
+ import type { MouseEventHandler, RefObject } from "react";
2
+ export interface PopoverPosition {
3
+ left: number;
4
+ top: number;
5
+ width: number;
6
+ }
7
+ interface UseCellContextMenuProps {
8
+ tdRef: RefObject<HTMLTableCellElement>;
9
+ }
10
+ interface UseCellContextMenuResults {
11
+ isContextMenuOpen: boolean;
12
+ handleOpenContextMenu: MouseEventHandler<HTMLTableCellElement>;
13
+ handleCloseContextMenu: () => void;
14
+ popoverPosition: PopoverPosition | null;
15
+ }
16
+ export declare const useCellContextMenu: ({ tdRef }: UseCellContextMenuProps) => UseCellContextMenuResults;
17
+ export {};
@@ -0,0 +1 @@
1
+ {"mappings":"AAgBA,cAAc,mBAAmB,iBAAiB,OAAQ;AAG1D,iBAAiB,gBAAgB;CAC/B;CACA;CACA;AACD;UAES,wBAAwB;CAChC,OAAO,UAAU;AAClB;UAES,0BAA0B;CAClC;CACA,uBAAuB,kBAAkB;CACzC;CACA,iBAAiB;AAClB;AAED,OAAO,cAAM,qBAAsB,EACjC,OACwB,EAAvB,4BAA0B","names":[],"sources":["../../../../src/object-table/hooks/useCellContextMenu.ts"],"version":3,"file":"useCellContextMenu.d.ts"}
@@ -1,4 +1,4 @@
1
- import type { ObjectSet, ObjectTypeDefinition, QueryDefinition, SimplePropertyDef } from "@osdk/api";
1
+ import type { ObjectSet, ObjectTypeDefinition, QueryDefinition, SimplePropertyDef, WhereClause } from "@osdk/api";
2
2
  import { useObjectSet } from "@osdk/react/experimental";
3
3
  import type { ColumnDefinition } from "../ObjectTableApi.js";
4
4
  /**
@@ -10,4 +10,4 @@ export declare function useObjectTableData<
10
10
  Q extends ObjectTypeDefinition,
11
11
  RDPs extends Record<string, SimplePropertyDef>,
12
12
  FunctionColumns extends Record<string, QueryDefinition<{}>> = Record<string, never>
13
- >(objectSet: ObjectSet<Q>, columnDefinitions?: Array<ColumnDefinition<Q, RDPs, FunctionColumns>>): ReturnType<typeof useObjectSet<Q, never, RDPs>>;
13
+ >(objectSet: ObjectSet<Q>, columnDefinitions?: Array<ColumnDefinition<Q, RDPs, FunctionColumns>>, filter?: WhereClause<Q, RDPs>): ReturnType<typeof useObjectSet<Q, never, RDPs>>;
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAEE,WACA,sBACA,iBACA,yBACK,WAAY;AACnB,SAAS,oBAAoB,0BAA2B;AAExD,cAAc,wBAAwB,sBAAuB;;;;;;AAU7D,OAAO,iBAAS;CACd,UAAU;CACV,aAAa,eAAe;CAC5B,wBAAwB,eAAe,gBAAgB,CAAE,MAAK;EAK9DA,WAAW,UAAU,IACrBC,oBAAoB,MAAM,iBAAiB,GAAG,MAAM,oBACnD,kBAAkB,aAAa,UAAU","names":["objectSet: ObjectSet<Q>","columnDefinitions?: Array<ColumnDefinition<Q, RDPs, FunctionColumns>>"],"sources":["../../../../src/object-table/hooks/useObjectTableData.ts"],"version":3,"file":"useObjectTableData.d.ts"}
1
+ {"mappings":"AAgBA,cAEE,WACA,sBACA,iBACA,mBACA,mBACK,WAAY;AACnB,SAAS,oBAAoB,0BAA2B;AAExD,cAAc,wBAAwB,sBAAuB;;;;;;AAU7D,OAAO,iBAAS;CACd,UAAU;CACV,aAAa,eAAe;CAC5B,wBAAwB,eAAe,gBAAgB,CAAE,MAAK;EAK9DA,WAAW,UAAU,IACrBC,oBAAoB,MAAM,iBAAiB,GAAG,MAAM,mBACpDC,SAAS,YAAY,GAAG,QACvB,kBAAkB,aAAa,UAAU","names":["objectSet: ObjectSet<Q>","columnDefinitions?: Array<ColumnDefinition<Q, RDPs, FunctionColumns>>","filter?: WhereClause<Q, RDPs>"],"sources":["../../../../src/object-table/hooks/useObjectTableData.ts"],"version":3,"file":"useObjectTableData.d.ts"}
@@ -0,0 +1,22 @@
1
+ import type { ObjectTypeDefinition, Osdk, PrimaryKeyType } from "@osdk/api";
2
+ import type { RowSelectionState } from "@tanstack/react-table";
3
+ export interface UseRowSelectionProps<
4
+ Q extends ObjectTypeDefinition,
5
+ RDPs extends Record<string, any> = Record<string, never>
6
+ > {
7
+ selectionMode?: "single" | "multiple" | "none";
8
+ selectedRows?: PrimaryKeyType<Q>[];
9
+ onRowSelection?: (selectedRowIds: PrimaryKeyType<Q>[]) => void;
10
+ data: Array<Osdk.Instance<Q, "$allBaseProperties", any, RDPs>> | undefined;
11
+ }
12
+ export interface UseRowSelectionResult {
13
+ rowSelection: RowSelectionState;
14
+ isAllSelected: boolean;
15
+ hasSelection: boolean;
16
+ onToggleAll: () => void;
17
+ onToggleRow: (rowId: string, rowIndex: number, isShiftClick?: boolean) => void;
18
+ }
19
+ export declare function useRowSelection<
20
+ Q extends ObjectTypeDefinition,
21
+ RDPs extends Record<string, any> = Record<string, never>
22
+ >({ selectionMode, selectedRows, onRowSelection, data }: UseRowSelectionProps<Q, RDPs>): UseRowSelectionResult;
@@ -0,0 +1 @@
1
+ {"mappings":"AAgBA,cAAc,sBAAsB,MAAM,sBAAsB,WAAY;AAC5E,cAAc,yBAAyB,uBAAwB;AAI/D,iBAAiB;CACf,UAAU;CACV,aAAa,sBAAsB;EACnC;CACA,gBAAgB,WAAW,aAAa;CACxC,eAAe,eAAe;CAC9B,kBAAkBA,gBAAgB,eAAe;CACjD,MAAM,MAAM,KAAK,SAAS,GAAG,2BAA2B;AACzD;AAED,iBAAiB,sBAAsB;CACrC,cAAc;CACd;CACA;CACA;CACA,cACEC,eACAC,kBACAC;AAEH;AAED,OAAO,iBAAS;CACd,UAAU;CACV,aAAa,sBAAsB;EACnC,EACA,eACA,cACA,gBACA,MAC8B,EAA7B,qBAAqB,GAAG,QAAQ","names":["selectedRowIds: PrimaryKeyType<Q>[]","rowId: string","rowIndex: number","isShiftClick?: boolean"],"sources":["../../../../src/object-table/hooks/useRowSelection.ts"],"version":3,"file":"useRowSelection.d.ts"}
@@ -0,0 +1,15 @@
1
+ import type { ObjectTypeDefinition, Osdk, PropertyKeys, SimplePropertyDef } from "@osdk/api";
2
+ import type { ColumnDef } from "@tanstack/react-table";
3
+ interface UseSelectionColumnProps {
4
+ selectionMode?: "single" | "multiple" | "none";
5
+ isAllSelected: boolean;
6
+ hasSelection: boolean;
7
+ onToggleAll: () => void;
8
+ onToggleRow: (id: string, rowIndex: number, isShiftClick: boolean) => void;
9
+ }
10
+ export declare const SELECTION_COLUMN_ID = "__selection__";
11
+ export declare const useSelectionColumn: <
12
+ Q extends ObjectTypeDefinition,
13
+ RDPs extends Record<string, SimplePropertyDef> = Record<string, never>
14
+ >({ selectionMode, isAllSelected, hasSelection, onToggleAll, onToggleRow }: UseSelectionColumnProps) => ColumnDef<Osdk.Instance<Q, "$allBaseProperties", PropertyKeys<Q>, RDPs>> | null;
15
+ export {};
@@ -0,0 +1 @@
1
+ {"mappings":"AAgBA,cACE,sBACA,MACA,cACA,yBACK,WAAY;AACnB,cAAc,iBAAiB,uBAAwB;UAI7C,wBAAwB;CAChC,gBAAgB,WAAW,aAAa;CACxC;CACA;CACA;CACA,cAAcA,YAAYC,kBAAkBC;AAC7C;AAED,OAAO,cAAM,sBAAsB;AACnC,OAAO,cAAM;CACX,UAAU;CACV,aAAa,eAAe,qBAAqB;EAIjD,EACA,eACA,eACA,cACA,aACA,aACwB,EAAvB,4BACC,UACA,KAAK,SAAS,GAAG,sBAAsB,aAAa,IAAI","names":["id: string","rowIndex: number","isShiftClick: boolean"],"sources":["../../../../src/object-table/hooks/useSelectionColumn.tsx"],"version":3,"file":"useSelectionColumn.d.ts"}
@@ -0,0 +1,6 @@
1
+ import type { ObjectTypeDefinition, Osdk, PrimaryKeyType, PropertyKeys, SimplePropertyDef } from "@osdk/api";
2
+ export declare const getRowId: <
3
+ Q extends ObjectTypeDefinition,
4
+ RDPs extends Record<string, SimplePropertyDef> = Record<string, never>
5
+ >(row: Osdk.Instance<Q, "$allBaseProperties", PropertyKeys<Q>, RDPs>) => string;
6
+ export declare const getRowIdFromPrimaryKey: <Q extends ObjectTypeDefinition>(primaryKey: PrimaryKeyType<Q>) => string;
@@ -0,0 +1 @@
1
+ {"mappings":"AAgBA,cACE,sBACA,MACA,gBACA,cACA,yBACK,WAAY;AAEnB,OAAO,cAAM;CACX,UAAU;CACV,aAAa,eAAe,qBAAqB;EAKjDA,KAAK,KAAK,SAAS,GAAG,sBAAsB,aAAa,IAAI;AAK/D,OAAO,cAAM,yBAA0B,UAAU,sBAC/CC,YAAY,eAAe","names":["row: Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>","primaryKey: PrimaryKeyType<Q>"],"sources":["../../../../src/object-table/utils/getRowId.ts"],"version":3,"file":"getRowId.d.ts"}
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAAc,uBAAuB;AACrC,cAAc,2BAA2B;AAEzC,SAAS,mBAAmB;AAC5B,cACE,kBACA,yBACA,wBACK","names":[],"sources":["../../../src/public/experimental.ts"],"version":3,"file":"experimental.d.ts"}
1
+ {"mappings":"AAgBA,cAAc,uBAAuB;AACrC,cAAc,2BAA2B;AAGzC,SAAS,mBAAmB;AAC5B,cACE,kBACA,yBACA,wBACK","names":[],"sources":["../../../src/public/experimental.ts"],"version":3,"file":"experimental.d.ts"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@osdk/react-components",
3
- "version": "0.1.0-beta.1",
3
+ "version": "0.1.0-beta.3",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -35,6 +35,13 @@
35
35
  "default": "./build/browser/public/*.js"
36
36
  }
37
37
  },
38
+ "dependencies": {
39
+ "@base-ui/react": "^1.0.0",
40
+ "@blueprintjs/icons": "^6.0.0",
41
+ "@tanstack/react-table": "^8.21.3",
42
+ "@tanstack/react-virtual": "^3.13.13",
43
+ "classnames": "^2.5.1"
44
+ },
38
45
  "peerDependencies": {
39
46
  "@osdk/api": "*",
40
47
  "@osdk/client": "*",
@@ -44,19 +51,18 @@
44
51
  "react-dom": "^17 || ^18 || ^19"
45
52
  },
46
53
  "devDependencies": {
47
- "@tanstack/react-table": "^8.21.3",
48
- "@tanstack/react-virtual": "^3.13.13",
49
54
  "@testing-library/react": "^16.3.0",
50
55
  "@types/react": "^18.3.24",
56
+ "@types/react-dom": "^18.3.7",
51
57
  "eslint-plugin-react-hooks": "^5.2.0",
52
58
  "p-defer": "^4.0.1",
53
59
  "react": "^18.3.1",
54
60
  "typescript": "~5.5.4",
55
- "@osdk/api": "2.7.0-beta.6",
61
+ "@osdk/api": "2.7.0-beta.11",
56
62
  "@osdk/monorepo.api-extractor": "~0.6.0-beta.1",
57
- "@osdk/client": "2.7.0-beta.6",
63
+ "@osdk/react": "0.9.0-beta.7",
58
64
  "@osdk/monorepo.tsconfig": "~0.6.0-beta.1",
59
- "@osdk/react": "0.9.0-beta.4"
65
+ "@osdk/client": "2.7.0-beta.11"
60
66
  },
61
67
  "publishConfig": {
62
68
  "access": "public"
@@ -82,6 +88,7 @@
82
88
  "fix-lint": "eslint . --fix && dprint fmt --config $(find-up dprint.json)",
83
89
  "lint": "eslint . && dprint check --config $(find-up dprint.json)",
84
90
  "test": "vitest run",
91
+ "transpileAllDeps": "pnpm --filter @osdk/api --filter @osdk/client --filter @osdk/react run transpileEsm",
85
92
  "transpileBrowser": "monorepo.tool.transpile -f esm -m normal -t browser",
86
93
  "transpileCjs": "monorepo.tool.transpile -f cjs -m bundle -t node",
87
94
  "transpileEsm": "monorepo.tool.transpile -f esm -m normal -t node",