@osdk/react-components 0.2.0-beta.16 → 0.2.0-beta.18

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 (206) hide show
  1. package/CHANGELOG.md +31 -0
  2. package/README.md +91 -3
  3. package/build/browser/action-form/ActionForm.js +109 -0
  4. package/build/browser/action-form/ActionForm.js.map +1 -0
  5. package/build/browser/action-form/ActionFormApi.js.map +1 -1
  6. package/build/browser/action-form/BaseForm.js +74 -0
  7. package/build/browser/action-form/BaseForm.js.map +1 -0
  8. package/build/browser/action-form/FormFieldApi.js.map +1 -1
  9. package/build/browser/action-form/fields/FieldBridge.js +45 -0
  10. package/build/browser/action-form/fields/FieldBridge.js.map +1 -0
  11. package/build/browser/action-form/fields/FormFieldRenderer.js +68 -0
  12. package/build/browser/action-form/fields/FormFieldRenderer.js.map +1 -0
  13. package/build/browser/action-form/fields/TextInputField.js +38 -0
  14. package/build/browser/action-form/fields/TextInputField.js.map +1 -0
  15. package/build/browser/action-form/utils/coerceFieldValue.js +93 -0
  16. package/build/browser/action-form/utils/coerceFieldValue.js.map +1 -0
  17. package/build/browser/action-form/utils/getDefaultFieldComponent.js +56 -0
  18. package/build/browser/action-form/utils/getDefaultFieldComponent.js.map +1 -0
  19. package/build/browser/action-form/utils/getDefaultFieldDefinitions.js +33 -0
  20. package/build/browser/action-form/utils/getDefaultFieldDefinitions.js.map +1 -0
  21. package/build/browser/base-components/tooltip/Tooltip.js +91 -0
  22. package/build/browser/base-components/tooltip/Tooltip.js.map +1 -0
  23. package/build/browser/base-components/tooltip/Tooltip.module.css +70 -0
  24. package/build/browser/base-components/tooltip/Tooltip.module.css.js +11 -0
  25. package/build/browser/base-components/tooltip/index.js +18 -0
  26. package/build/browser/base-components/tooltip/index.js.map +1 -0
  27. package/build/browser/filter-list/base/BaseFilterList.js +23 -11
  28. package/build/browser/filter-list/base/BaseFilterList.js.map +1 -1
  29. package/build/browser/filter-list/base/FilterIcons.js +48 -13
  30. package/build/browser/filter-list/base/FilterIcons.js.map +1 -1
  31. package/build/browser/filter-list/base/FilterList.module.css +57 -13
  32. package/build/browser/filter-list/base/FilterList.module.css.js +5 -2
  33. package/build/browser/filter-list/base/FilterListHeader.js +10 -15
  34. package/build/browser/filter-list/base/FilterListHeader.js.map +1 -1
  35. package/build/browser/filter-list/base/FilterListHeader.module.css +13 -41
  36. package/build/browser/filter-list/base/FilterListHeader.module.css.js +1 -4
  37. package/build/browser/filter-list/hooks/useFilterListState.js +25 -7
  38. package/build/browser/filter-list/hooks/useFilterListState.js.map +1 -1
  39. package/build/browser/filter-list/utils/assertUnreachable.js +1 -8
  40. package/build/browser/filter-list/utils/assertUnreachable.js.map +1 -1
  41. package/build/browser/filter-list/utils/filterStateToWhereClause.js +121 -91
  42. package/build/browser/filter-list/utils/filterStateToWhereClause.js.map +1 -1
  43. package/build/browser/object-table/DefaultCellRenderer.js +6 -1
  44. package/build/browser/object-table/DefaultCellRenderer.js.map +1 -1
  45. package/build/browser/object-table/EditableCell.js +76 -9
  46. package/build/browser/object-table/EditableCell.js.map +1 -1
  47. package/build/browser/object-table/EditableCell.module.css +47 -8
  48. package/build/browser/object-table/EditableCell.module.css.js +5 -1
  49. package/build/browser/object-table/MultiColumnSortDialog.js +4 -1
  50. package/build/browser/object-table/MultiColumnSortDialog.js.map +1 -1
  51. package/build/browser/object-table/ObjectTable.js +4 -1
  52. package/build/browser/object-table/ObjectTable.js.map +1 -1
  53. package/build/browser/object-table/ObjectTableApi.js.map +1 -1
  54. package/build/browser/object-table/SelectionCells.js +1 -0
  55. package/build/browser/object-table/SelectionCells.js.map +1 -1
  56. package/build/browser/object-table/Table.js +2 -2
  57. package/build/browser/object-table/Table.js.map +1 -1
  58. package/build/browser/object-table/TableBody.js +1 -1
  59. package/build/browser/object-table/TableBody.js.map +1 -1
  60. package/build/browser/object-table/TableEditContainer.js +27 -16
  61. package/build/browser/object-table/TableEditContainer.js.map +1 -1
  62. package/build/browser/object-table/TableEditContainer.module.css +27 -0
  63. package/build/browser/object-table/TableEditContainer.module.css.js +5 -1
  64. package/build/browser/object-table/TableHeader.js +4 -1
  65. package/build/browser/object-table/TableHeader.js.map +1 -1
  66. package/build/browser/object-table/TableHeader.module.css +2 -1
  67. package/build/browser/object-table/TableHeader.module.css.js +1 -0
  68. package/build/browser/object-table/TableRow.js +2 -2
  69. package/build/browser/object-table/TableRow.js.map +1 -1
  70. package/build/browser/object-table/hooks/useColumnDefs.js +2 -1
  71. package/build/browser/object-table/hooks/useColumnDefs.js.map +1 -1
  72. package/build/browser/object-table/hooks/useEditableTable.js +21 -2
  73. package/build/browser/object-table/hooks/useEditableTable.js.map +1 -1
  74. package/build/browser/object-table/utils/types.js.map +1 -1
  75. package/build/browser/shared/assertUnreachable.js +25 -0
  76. package/build/browser/shared/assertUnreachable.js.map +1 -0
  77. package/build/browser/shared/typedMemo.js +25 -0
  78. package/build/browser/shared/typedMemo.js.map +1 -0
  79. package/build/browser/styles.css +219 -63
  80. package/build/cjs/public/experimental.cjs +1212 -966
  81. package/build/cjs/public/experimental.cjs.map +1 -1
  82. package/build/cjs/public/experimental.css +167 -55
  83. package/build/cjs/public/experimental.css.map +1 -1
  84. package/build/cjs/public/experimental.d.cts +18 -4
  85. package/build/esm/action-form/ActionForm.js +109 -0
  86. package/build/esm/action-form/ActionForm.js.map +1 -0
  87. package/build/esm/action-form/ActionFormApi.js.map +1 -1
  88. package/build/esm/action-form/BaseForm.js +74 -0
  89. package/build/esm/action-form/BaseForm.js.map +1 -0
  90. package/build/esm/action-form/FormFieldApi.js.map +1 -1
  91. package/build/esm/action-form/fields/FieldBridge.js +45 -0
  92. package/build/esm/action-form/fields/FieldBridge.js.map +1 -0
  93. package/build/esm/action-form/fields/FormFieldRenderer.js +68 -0
  94. package/build/esm/action-form/fields/FormFieldRenderer.js.map +1 -0
  95. package/build/esm/action-form/fields/TextInputField.js +38 -0
  96. package/build/esm/action-form/fields/TextInputField.js.map +1 -0
  97. package/build/esm/action-form/utils/coerceFieldValue.js +93 -0
  98. package/build/esm/action-form/utils/coerceFieldValue.js.map +1 -0
  99. package/build/esm/action-form/utils/getDefaultFieldComponent.js +56 -0
  100. package/build/esm/action-form/utils/getDefaultFieldComponent.js.map +1 -0
  101. package/build/esm/action-form/utils/getDefaultFieldDefinitions.js +33 -0
  102. package/build/esm/action-form/utils/getDefaultFieldDefinitions.js.map +1 -0
  103. package/build/esm/base-components/tooltip/Tooltip.js +91 -0
  104. package/build/esm/base-components/tooltip/Tooltip.js.map +1 -0
  105. package/build/esm/base-components/tooltip/Tooltip.module.css +70 -0
  106. package/build/esm/base-components/tooltip/index.js +18 -0
  107. package/build/esm/base-components/tooltip/index.js.map +1 -0
  108. package/build/esm/filter-list/base/BaseFilterList.js +23 -11
  109. package/build/esm/filter-list/base/BaseFilterList.js.map +1 -1
  110. package/build/esm/filter-list/base/FilterIcons.js +48 -13
  111. package/build/esm/filter-list/base/FilterIcons.js.map +1 -1
  112. package/build/esm/filter-list/base/FilterList.module.css +57 -13
  113. package/build/esm/filter-list/base/FilterListHeader.js +10 -15
  114. package/build/esm/filter-list/base/FilterListHeader.js.map +1 -1
  115. package/build/esm/filter-list/base/FilterListHeader.module.css +13 -41
  116. package/build/esm/filter-list/hooks/useFilterListState.js +25 -7
  117. package/build/esm/filter-list/hooks/useFilterListState.js.map +1 -1
  118. package/build/esm/filter-list/utils/assertUnreachable.js +1 -8
  119. package/build/esm/filter-list/utils/assertUnreachable.js.map +1 -1
  120. package/build/esm/filter-list/utils/filterStateToWhereClause.js +121 -91
  121. package/build/esm/filter-list/utils/filterStateToWhereClause.js.map +1 -1
  122. package/build/esm/object-table/DefaultCellRenderer.js +6 -1
  123. package/build/esm/object-table/DefaultCellRenderer.js.map +1 -1
  124. package/build/esm/object-table/EditableCell.js +76 -9
  125. package/build/esm/object-table/EditableCell.js.map +1 -1
  126. package/build/esm/object-table/EditableCell.module.css +47 -8
  127. package/build/esm/object-table/MultiColumnSortDialog.js +4 -1
  128. package/build/esm/object-table/MultiColumnSortDialog.js.map +1 -1
  129. package/build/esm/object-table/ObjectTable.js +4 -1
  130. package/build/esm/object-table/ObjectTable.js.map +1 -1
  131. package/build/esm/object-table/ObjectTableApi.js.map +1 -1
  132. package/build/esm/object-table/SelectionCells.js +1 -0
  133. package/build/esm/object-table/SelectionCells.js.map +1 -1
  134. package/build/esm/object-table/Table.js +2 -2
  135. package/build/esm/object-table/Table.js.map +1 -1
  136. package/build/esm/object-table/TableBody.js +1 -1
  137. package/build/esm/object-table/TableBody.js.map +1 -1
  138. package/build/esm/object-table/TableEditContainer.js +27 -16
  139. package/build/esm/object-table/TableEditContainer.js.map +1 -1
  140. package/build/esm/object-table/TableEditContainer.module.css +27 -0
  141. package/build/esm/object-table/TableHeader.js +4 -1
  142. package/build/esm/object-table/TableHeader.js.map +1 -1
  143. package/build/esm/object-table/TableHeader.module.css +2 -1
  144. package/build/esm/object-table/TableRow.js +2 -2
  145. package/build/esm/object-table/TableRow.js.map +1 -1
  146. package/build/esm/object-table/hooks/useColumnDefs.js +2 -1
  147. package/build/esm/object-table/hooks/useColumnDefs.js.map +1 -1
  148. package/build/esm/object-table/hooks/useEditableTable.js +21 -2
  149. package/build/esm/object-table/hooks/useEditableTable.js.map +1 -1
  150. package/build/esm/object-table/utils/types.js.map +1 -1
  151. package/build/esm/shared/assertUnreachable.js +25 -0
  152. package/build/esm/shared/assertUnreachable.js.map +1 -0
  153. package/build/esm/shared/typedMemo.js +25 -0
  154. package/build/esm/shared/typedMemo.js.map +1 -0
  155. package/build/types/action-form/ActionForm.d.ts +4 -0
  156. package/build/types/action-form/ActionForm.d.ts.map +1 -0
  157. package/build/types/action-form/ActionFormApi.d.ts +48 -32
  158. package/build/types/action-form/ActionFormApi.d.ts.map +1 -1
  159. package/build/types/action-form/BaseForm.d.ts +3 -0
  160. package/build/types/action-form/BaseForm.d.ts.map +1 -0
  161. package/build/types/action-form/FormFieldApi.d.ts +58 -18
  162. package/build/types/action-form/FormFieldApi.d.ts.map +1 -1
  163. package/build/types/action-form/fields/FieldBridge.d.ts +9 -0
  164. package/build/types/action-form/fields/FieldBridge.d.ts.map +1 -0
  165. package/build/types/action-form/fields/FormFieldRenderer.d.ts +8 -0
  166. package/build/types/action-form/fields/FormFieldRenderer.d.ts.map +1 -0
  167. package/build/types/action-form/fields/TextInputField.d.ts +3 -0
  168. package/build/types/action-form/fields/TextInputField.d.ts.map +1 -0
  169. package/build/types/action-form/utils/coerceFieldValue.d.ts +10 -0
  170. package/build/types/action-form/utils/coerceFieldValue.d.ts.map +1 -0
  171. package/build/types/action-form/utils/getDefaultFieldComponent.d.ts +6 -0
  172. package/build/types/action-form/utils/getDefaultFieldComponent.d.ts.map +1 -0
  173. package/build/types/action-form/utils/getDefaultFieldDefinitions.d.ts +6 -0
  174. package/build/types/action-form/utils/getDefaultFieldDefinitions.d.ts.map +1 -0
  175. package/build/types/base-components/tooltip/Tooltip.d.ts +31 -0
  176. package/build/types/base-components/tooltip/Tooltip.d.ts.map +1 -0
  177. package/build/types/base-components/tooltip/index.d.ts +1 -0
  178. package/build/types/base-components/tooltip/index.d.ts.map +1 -0
  179. package/build/types/filter-list/base/BaseFilterList.d.ts.map +1 -1
  180. package/build/types/filter-list/base/FilterIcons.d.ts +7 -0
  181. package/build/types/filter-list/base/FilterIcons.d.ts.map +1 -1
  182. package/build/types/filter-list/base/FilterListHeader.d.ts.map +1 -1
  183. package/build/types/filter-list/hooks/useFilterListState.d.ts.map +1 -1
  184. package/build/types/filter-list/utils/assertUnreachable.d.ts +1 -6
  185. package/build/types/filter-list/utils/assertUnreachable.d.ts.map +1 -1
  186. package/build/types/filter-list/utils/filterStateToWhereClause.d.ts +5 -1
  187. package/build/types/filter-list/utils/filterStateToWhereClause.d.ts.map +1 -1
  188. package/build/types/object-table/EditableCell.d.ts +8 -2
  189. package/build/types/object-table/EditableCell.d.ts.map +1 -1
  190. package/build/types/object-table/ObjectTableApi.d.ts +7 -0
  191. package/build/types/object-table/ObjectTableApi.d.ts.map +1 -1
  192. package/build/types/object-table/Table.d.ts +4 -0
  193. package/build/types/object-table/Table.d.ts.map +1 -1
  194. package/build/types/object-table/TableEditContainer.d.ts +1 -1
  195. package/build/types/object-table/TableEditContainer.d.ts.map +1 -1
  196. package/build/types/object-table/TableHeader.d.ts.map +1 -1
  197. package/build/types/object-table/TableRow.d.ts +2 -2
  198. package/build/types/object-table/TableRow.d.ts.map +1 -1
  199. package/build/types/object-table/hooks/useEditableTable.d.ts.map +1 -1
  200. package/build/types/object-table/utils/types.d.ts +7 -4
  201. package/build/types/object-table/utils/types.d.ts.map +1 -1
  202. package/build/types/shared/assertUnreachable.d.ts +6 -0
  203. package/build/types/shared/assertUnreachable.d.ts.map +1 -0
  204. package/build/types/shared/typedMemo.d.ts +6 -0
  205. package/build/types/shared/typedMemo.d.ts.map +1 -0
  206. package/package.json +6 -5
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAAc,sBAAsB,mBAAmB,WAAY;AAEnE,cAAc,uBAAuB,qBAAsB;AAC3D,cAAc,mBAAmB,yBAA0B;AAO3D,iBAAiB,yBAAyB,UAAU,sBAAsB;CACxE,cAAc,YAAY;CAC1B,iBACEA,mBACAC,OAAO;CAET,aAAa,YAAY;CACzB,uBAAuB,YAAY,YAAY;CAC/C;CACA;AACD;AAqDD,OAAO,iBAAS,mBAAmB,UAAU,sBAC3CC,OAAO,gBAAgB,KACtB,yBAAyB","names":["filterKey: string","state: FilterState","props: FilterListProps<Q>"],"sources":["../../../../src/filter-list/hooks/useFilterListState.ts"],"version":3,"file":"useFilterListState.d.ts"}
1
+ {"mappings":"AAgBA,cAAc,sBAAsB,mBAAmB,WAAY;AAGnE,cAAc,uBAAuB,qBAAsB;AAC3D,cAAc,mBAAmB,yBAA0B;AAU3D,iBAAiB,yBAAyB,UAAU,sBAAsB;CACxE,cAAc,YAAY;CAC1B,iBACEA,mBACAC,OAAO;CAET,aAAa,YAAY;CACzB,uBAAuB,YAAY,YAAY;CAC/C;CACA;AACD;AAqDD,OAAO,iBAAS,mBAAmB,UAAU,sBAC3CC,OAAO,gBAAgB,KACtB,yBAAyB","names":["filterKey: string","state: FilterState","props: FilterListProps<Q>"],"sources":["../../../../src/filter-list/hooks/useFilterListState.ts"],"version":3,"file":"useFilterListState.d.ts"}
@@ -1,6 +1 @@
1
- /**
2
- * Exhaustive type checking helper.
3
- * Use in default cases of switch statements to ensure all cases are handled.
4
- * TypeScript will error if a case is missing.
5
- */
6
- export declare function assertUnreachable(value: never): never;
1
+ export { assertUnreachable } from "../../shared/assertUnreachable.js";
@@ -1 +1 @@
1
- {"mappings":";;;;;AAqBA,OAAO,iBAAS,kBAAkBA","names":["value: never"],"sources":["../../../../src/filter-list/utils/assertUnreachable.ts"],"version":3,"file":"assertUnreachable.d.ts"}
1
+ {"mappings":"AAgBA,SAAS,yBAAyB","names":[],"sources":["../../../../src/filter-list/utils/assertUnreachable.ts"],"version":3,"file":"assertUnreachable.d.ts"}
@@ -13,4 +13,8 @@ import type { FilterState } from "../FilterListItemApi.js";
13
13
  * cannot verify that the constructed clause structure matches the generic Q's
14
14
  * expected shape, but the structure is guaranteed to be valid by construction.
15
15
  */
16
- export declare function buildWhereClause<Q extends ObjectTypeDefinition>(definitions: Array<FilterDefinitionUnion<Q>> | undefined, filterStates: Map<string, FilterState>, operator: "and" | "or", objectType?: Q, excludeFilterKey?: string): WhereClause<Q>;
16
+ export interface PropertyTypeInfo {
17
+ type: string;
18
+ multiplicity: boolean;
19
+ }
20
+ export declare function buildWhereClause<Q extends ObjectTypeDefinition>(definitions: Array<FilterDefinitionUnion<Q>> | undefined, filterStates: Map<string, FilterState>, operator: "and" | "or", propertyTypes?: Map<string, PropertyTypeInfo>, excludeFilterKey?: string): WhereClause<Q>;
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAAc,sBAAsB,mBAAmB,WAAY;AACnE,cAAc,6BAA6B,qBAAsB;AACjE,cAAc,mBAAmB,yBAA0B;;;;;;;;;;;;;AAmK3D,OAAO,iBAAS,iBAAiB,UAAU,sBACzCA,aAAa,MAAM,sBAAsB,iBACzCC,cAAc,YAAY,cAC1BC,UAAU,QAAQ,MAClBC,aAAa,GACbC,4BACC,YAAY","names":["definitions: Array<FilterDefinitionUnion<Q>> | undefined","filterStates: Map<string, FilterState>","operator: \"and\" | \"or\"","objectType?: Q","excludeFilterKey?: string"],"sources":["../../../../src/filter-list/utils/filterStateToWhereClause.ts"],"version":3,"file":"filterStateToWhereClause.d.ts"}
1
+ {"mappings":"AAgBA,cAAc,sBAAsB,mBAAmB,WAAY;AAEnE,cAAc,6BAA6B,qBAAsB;AACjE,cAAc,mBAAmB,yBAA0B;;;;;;;;;;;;;AA2M3D,iBAAiB,iBAAiB;CAChC;CACA;AACD;AAED,OAAO,iBAAS,iBAAiB,UAAU,sBACzCA,aAAa,MAAM,sBAAsB,iBACzCC,cAAc,YAAY,cAC1BC,UAAU,QAAQ,MAClBC,gBAAgB,YAAY,mBAC5BC,4BACC,YAAY","names":["definitions: Array<FilterDefinitionUnion<Q>> | undefined","filterStates: Map<string, FilterState>","operator: \"and\" | \"or\"","propertyTypes?: Map<string, PropertyTypeInfo>","excludeFilterKey?: string"],"sources":["../../../../src/filter-list/utils/filterStateToWhereClause.ts"],"version":3,"file":"filterStateToWhereClause.d.ts"}
@@ -10,11 +10,17 @@ export interface EditableCellProps<
10
10
  cellId: string;
11
11
  dataType?: string;
12
12
  onCellEdit: (cellId: string, info: CellEditInfo<TData, CellValue>) => void;
13
+ onCellValidationError?: (cellId: string, error: string) => void;
14
+ clearCellValidationError?: (cellId: string) => void;
15
+ validationError?: string;
13
16
  originalRowData: TData;
14
17
  rowId: string;
15
18
  columnId: string;
19
+ validateEdit?: (value: unknown) => Promise<string | undefined>;
16
20
  }
17
- export declare function EditableCell<
21
+ declare function EditableCellInner<
18
22
  TData extends RowData,
19
23
  CellValue = unknown
20
- >({ initialValue, currentValue, cellId, dataType, onCellEdit, originalRowData, rowId, columnId }: EditableCellProps<TData, CellValue>): React.ReactElement;
24
+ >({ initialValue, currentValue, cellId, dataType, onCellEdit, onCellValidationError, clearCellValidationError, originalRowData, rowId, columnId, validateEdit, validationError }: EditableCellProps<TData, CellValue>): React.ReactElement;
25
+ export declare const EditableCell: typeof EditableCellInner;
26
+ export {};
@@ -1 +1 @@
1
- {"mappings":"AAiBA,cAAc,eAAe,uBAAwB;AAErD,OAAO,WAAyD,OAAQ;AAExE,cAAc,oBAAoB,kBAAmB;AAErD,iBAAiB;CAAkB,cAAc;CAAS;EAAqB;CAC7E,cAAc;CACd,cAAc;CACd;CACA;CACA,aAAaA,gBAAgBC,MAAM,aAAa,OAAO;CACvD,iBAAiB;CACjB;CACA;AACD;AA4CD,OAAO,iBAAS;CAAa,cAAc;CAAS;EAAqB,EACvE,cACA,cACA,QACA,UACA,YACA,iBACA,OACA,UACoC,EAAnC,kBAAkB,OAAO,aAAa,MAAM","names":["cellId: string","info: CellEditInfo<TData, CellValue>"],"sources":["../../../src/object-table/EditableCell.tsx"],"version":3,"file":"EditableCell.d.ts"}
1
+ {"mappings":"AAkBA,cAAc,eAAe,uBAAwB;AAErD,OAAO,WAAyD,OAAQ;AAGxE,cAAc,oBAAoB,kBAAmB;AAErD,iBAAiB;CAAkB,cAAc;CAAS;EAAqB;CAC7E,cAAc;CACd,cAAc;CACd;CACA;CACA,aAAaA,gBAAgBC,MAAM,aAAa,OAAO;CACvD,yBACED,gBACAE;CAEF,4BAA4BF;CAC5B;CACA,iBAAiB;CACjB;CACA;CACA,gBAAgBG,mBAAmB;AACpC;AA8CD,iBAAS;CAAkB,cAAc;CAAS;EAAqB,EACrE,cACA,cACA,QACA,UACA,YACA,uBACA,0BACA,iBACA,OACA,UACA,cACA,iBACoC,EAAnC,kBAAkB,OAAO,aAAa,MAAM;AA6J/C,OAAO,cAAM,qBAED","names":["cellId: string","info: CellEditInfo<TData, CellValue>","error: string","value: unknown"],"sources":["../../../src/object-table/EditableCell.tsx"],"version":3,"file":"EditableCell.d.ts"}
@@ -22,6 +22,13 @@ export type ColumnDefinition<
22
22
  orderable?: boolean
23
23
  filterable?: boolean
24
24
  editable?: boolean
25
+ /**
26
+ * Additional function to validate the cell value during edit
27
+ *
28
+ * @param value the current cell value
29
+ * @returns a promise that resolves to an error message string if validation fails, or undefined if validation succeeds
30
+ */
31
+ validateEdit?: (value: unknown) => Promise<string | undefined>
25
32
  renderCell?: (object: Osdk.Instance<Q, "$allBaseProperties", PropertyKeys<Q>, RDPs>, locator: ColumnDefinitionLocator<Q, RDPs, FunctionColumns>) => React.ReactNode
26
33
  /**
27
34
  * If provided, this will be used in the column header.
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cACE,iBACA,6BACA,WACA,MACA,gBACA,cACA,iBACA,mBACA,mBACK,WAAY;AACnB,iBAAiB,WAAW,OAAQ;AACpC,cAAc,oBAAoB,kBAAmB;AAErD,YAAY;CACV,UAAU;CACV,aAAa,eAAe,qBAAqB;CACjD,wBAAwB,eAAe,gBAAgB,CAAE,MAAK;IAI5D;CACF,SAAS,wBAAwB,GAAG,MAAM;;;;CAK1C;;;;CAKA,SAAS,SAAS,UAAU;CAC5B;CACA;CACA;CACA;CACA;CACA;CACA;CAEA,cACEA,QAAQ,KAAK,SAAS,GAAG,sBAAsB,aAAa,IAAI,OAChEC,SAAS,wBAAwB,GAAG,MAAM,qBACvC,MAAM;;;;;;;;;;CAWX;;;;;CAMA,qBAAqB,MAAM;AAC5B;AAED,YAAY;CACV,UAAU;CACV,aAAa,eAAe,qBAAqB;CACjD,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,IACC;CACA,MAAM;CACN;AACD;AAEH,iBAAiB;CACf,UAAU;CACV,aAAa,eAAe,qBAAqB;CACjD,wBAAwB,eAAe,gBAAgB,CAAE,MAAK;EAI9D;;;;;CAKA,YAAY;;;;;CAMZ,YAAY,UAAU;CAEtB,mBAAmB,iBAAiB;;;;;;CAOpC,oBAAoB,MAAM,iBAAiB,GAAG,MAAM;;;;;;CAOpD;;;;;CAMA,SAAS,YAAY,GAAG;;;;;;;CAQxB,mBAAmBC,UAAU,YAAY,GAAG;;;;;;CAO5C;;;;;;CAOA;;;;;;CAOA;;;;;;CAOA;;;;;;;;CASA,WAAW,WAAW;;;;;;CAOtB,iBAAiB,MAAM;EACrB,UAAU,aAAa;EACvB,WAAW,QAAQ;CACpB;;;;;;CAOD,UAAU,MAAM;EACd,UAAU,aAAa;EACvB,WAAW,QAAQ;CACpB;;;;;;;CAQD,oBACEC,YAAY,MAAM;EAChB,UAAU,aAAa;EACvB,WAAW,QAAQ;CACpB;;;;;;;CASH,sBACEC,MAAM,aACJ,KAAK,SAAS,GAAG,sBAAsB,aAAa,IAAI;;;;;;;;CAY5D,iBAAiBC,OAAO,aACtB,KAAK,SAAS,GAAG,sBAAsB,aAAa,IAAI,sBAElD;;;;;;;;CASR,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,cACET,QAAQ,KAAK,SAAS,GAAG,sBAAsB,aAAa,IAAI;;;;;;;;;CAWlE,gBAAgB,WAAW,aAAa;;;;;CAMxC,eAAe,eAAe;;;;;CAM9B;;;;;;;;CASA,kBACEU,gBAAgB,eAAe,MAC/BC;;;;CAKF,yBACEC,KAAK,KAAK,SAAS,GAAG,sBAAsB,aAAa,IAAI,OAC7DC,uBACG,MAAM;;;;;;CAOX;CAEA;AACD;AAED,iBAAiB,iBACf,UAAU,6BACV;;;;CAIA,QAAQ,UAAU;;;;CAKlB,YAAY,UAAU;;;;CAKtB,WAAW,UAAU;AACtB","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 }>","info: CellEditInfo<\n Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>,\n unknown\n >","edits: CellEditInfo<\n Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>,\n unknown\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 | null","selectedRowIds: PrimaryKeyType<Q>[]","isSelectAll?: boolean","row: Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>","cellValue: unknown"],"sources":["../../../src/object-table/ObjectTableApi.ts"],"version":3,"file":"ObjectTableApi.d.ts"}
1
+ {"mappings":"AAgBA,cACE,iBACA,6BACA,WACA,MACA,gBACA,cACA,iBACA,mBACA,mBACK,WAAY;AACnB,iBAAiB,WAAW,OAAQ;AACpC,cAAc,oBAAoB,kBAAmB;AAErD,YAAY;CACV,UAAU;CACV,aAAa,eAAe,qBAAqB;CACjD,wBAAwB,eAAe,gBAAgB,CAAE,MAAK;IAI5D;CACF,SAAS,wBAAwB,GAAG,MAAM;;;;CAK1C;;;;CAKA,SAAS,SAAS,UAAU;CAC5B;CACA;CACA;CACA;CACA;CACA;CACA;;;;;;;CAQA,gBACEA,mBACG;CAEL,cACEC,QAAQ,KAAK,SAAS,GAAG,sBAAsB,aAAa,IAAI,OAChEC,SAAS,wBAAwB,GAAG,MAAM,qBACvC,MAAM;;;;;;;;;;CAWX;;;;;CAMA,qBAAqB,MAAM;AAC5B;AAED,YAAY;CACV,UAAU;CACV,aAAa,eAAe,qBAAqB;CACjD,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,IACC;CACA,MAAM;CACN;AACD;AAEH,iBAAiB;CACf,UAAU;CACV,aAAa,eAAe,qBAAqB;CACjD,wBAAwB,eAAe,gBAAgB,CAAE,MAAK;EAI9D;;;;;CAKA,YAAY;;;;;CAMZ,YAAY,UAAU;CAEtB,mBAAmB,iBAAiB;;;;;;CAOpC,oBAAoB,MAAM,iBAAiB,GAAG,MAAM;;;;;;CAOpD;;;;;CAMA,SAAS,YAAY,GAAG;;;;;;;CAQxB,mBAAmBC,UAAU,YAAY,GAAG;;;;;;CAO5C;;;;;;CAOA;;;;;;CAOA;;;;;;CAOA;;;;;;;;CASA,WAAW,WAAW;;;;;;CAOtB,iBAAiB,MAAM;EACrB,UAAU,aAAa;EACvB,WAAW,QAAQ;CACpB;;;;;;CAOD,UAAU,MAAM;EACd,UAAU,aAAa;EACvB,WAAW,QAAQ;CACpB;;;;;;;CAQD,oBACEC,YAAY,MAAM;EAChB,UAAU,aAAa;EACvB,WAAW,QAAQ;CACpB;;;;;;;CASH,sBACEC,MAAM,aACJ,KAAK,SAAS,GAAG,sBAAsB,aAAa,IAAI;;;;;;;;CAY5D,iBAAiBC,OAAO,aACtB,KAAK,SAAS,GAAG,sBAAsB,aAAa,IAAI,sBAElD;;;;;;;;CASR,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,cACET,QAAQ,KAAK,SAAS,GAAG,sBAAsB,aAAa,IAAI;;;;;;;;;CAWlE,gBAAgB,WAAW,aAAa;;;;;CAMxC,eAAe,eAAe;;;;;CAM9B;;;;;;;;CASA,kBACEU,gBAAgB,eAAe,MAC/BC;;;;CAKF,yBACEC,KAAK,KAAK,SAAS,GAAG,sBAAsB,aAAa,IAAI,OAC7DC,uBACG,MAAM;;;;;;CAOX;CAEA;AACD;AAED,iBAAiB,iBACf,UAAU,6BACV;;;;CAIA,QAAQ,UAAU;;;;CAKlB,YAAY,UAAU;;;;CAKtB,WAAW,UAAU;AACtB","names":["value: unknown","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 }>","info: CellEditInfo<\n Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>,\n unknown\n >","edits: CellEditInfo<\n Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>,\n unknown\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 | null","selectedRowIds: PrimaryKeyType<Q>[]","isSelectAll?: boolean","row: Osdk.Instance<Q, \"$allBaseProperties\", PropertyKeys<Q>, RDPs>","cellValue: unknown"],"sources":["../../../src/object-table/ObjectTableApi.ts"],"version":3,"file":"ObjectTableApi.d.ts"}
@@ -11,11 +11,15 @@ declare module "@tanstack/react-table" {
11
11
  isVisible?: boolean;
12
12
  editable?: boolean;
13
13
  dataType?: string;
14
+ validateEdit?: (value: unknown) => Promise<string | undefined>;
14
15
  }
15
16
  interface TableMeta<TData extends RowData = unknown> {
16
17
  onCellEdit?: (cellId: string, info: CellEditInfo<TData, unknown>) => void;
18
+ onCellValidationError?: (cellId: string, error: string) => void;
19
+ clearCellValidationError?: (cellId: string) => void;
17
20
  cellEdits?: Record<string, CellEditInfo<TData, unknown>>;
18
21
  isInEditMode?: boolean;
22
+ validationErrors?: Map<string, string>;
19
23
  }
20
24
  }
21
25
  export interface BaseTableProps<TData extends RowData> {
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAAc,MAAM,SAAS,aAAa,uBAAwB;AAElE,OAAO,cACA,oBAKA,OAAQ;AAOf,cAAc,8BAA8B,6BAA8B;AAC1E,cAAc,cAAc,sBAAsB,kBAAmB;eAEtD,wBAAwB;WAC3B;EAAW,cAAc;EAAmB;GAAkB;EACtE;EACA;EACA;EACA;CACD;WACS,UAAU,cAAc,mBAAmB;EACnD,cACEA,gBACAC,MAAM,aAAa;EAErB,YAAY,eAAe,aAAa;EACxC;CACD;AACF;AAED,iBAAiB,eACf,cAAc,SACd;CACA,OAAO,MAAM;CACb;CACA,sBAAsB;CACtB,cAAcC,KAAK;CACnB;CACA,yBACEA,KAAK,OACLC,MAAM,KAAK,oBACR,MAAM;CACX;CACA,QAAQ;CACR,yBAAyB;CACzB,iBAAiB,eAAe;AACjC;AAED,OAAO,iBAAS,UACd,cAAc,SAEd,EACE,OACA,WACA,eACA,YACA,WACA,uBACA,WACA,OACA,wBACA,gBACsB,EAArB,eAAe,SACjB","names":["cellId: string","info: CellEditInfo<TData, unknown>","row: TData","cell: Cell<TData, unknown>"],"sources":["../../../src/object-table/Table.tsx"],"version":3,"file":"Table.d.ts"}
1
+ {"mappings":"AAgBA,cAAc,MAAM,SAAS,aAAa,uBAAwB;AAElE,OAAO,cACA,oBAKA,OAAQ;AAOf,cAAc,8BAA8B,6BAA8B;AAC1E,cAAc,cAAc,sBAAsB,kBAAmB;eAEtD,wBAAwB;WAC3B;EAAW,cAAc;EAAmB;GAAkB;EACtE;EACA;EACA;EACA;EACA,gBAAgBA,mBAAmB;CACpC;WACS,UAAU,cAAc,mBAAmB;EACnD,cACEC,gBACAC,MAAM,aAAa;EAErB,yBACED,gBACAE;EAEF,4BAA4BF;EAC5B,YAAY,eAAe,aAAa;EACxC;EACA,mBAAmB;CACpB;AACF;AAED,iBAAiB,eACf,cAAc,SACd;CACA,OAAO,MAAM;CACb;CACA,sBAAsB;CACtB,cAAcG,KAAK;CACnB;CACA,yBACEA,KAAK,OACLC,MAAM,KAAK,oBACR,MAAM;CACX;CACA,QAAQ;CACR,yBAAyB;CACzB,iBAAiB,eAAe;AACjC;AAED,OAAO,iBAAS,UACd,cAAc,SAEd,EACE,OACA,WACA,eACA,YACA,WACA,uBACA,WACA,OACA,wBACA,gBACsB,EAArB,eAAe,SACjB","names":["value: unknown","cellId: string","info: CellEditInfo<TData, unknown>","error: string","row: TData","cell: Cell<TData, unknown>"],"sources":["../../../src/object-table/Table.tsx"],"version":3,"file":"Table.d.ts"}
@@ -2,7 +2,7 @@ import type { RowData } from "@tanstack/react-table";
2
2
  import { type ReactElement } from "react";
3
3
  import type { EditableConfig } from "./utils/types.js";
4
4
  interface TableEditContainerProps<TData extends RowData> {
5
- editableConfig?: EditableConfig<TData, unknown>;
5
+ editableConfig: EditableConfig<TData, unknown>;
6
6
  focusedRowId?: string | null;
7
7
  }
8
8
  export declare function TableEditContainer<TData extends RowData>({ editableConfig, focusedRowId }: TableEditContainerProps<TData>): ReactElement;
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAAc,eAAe,uBAAwB;AACrD,cAAqB,oBAA2C,OAAQ;AAGxE,cAAc,sBAAsB,kBAAmB;UAE7C,wBACR,cAAc,SACd;CACA,iBAAiB,eAAe;CAChC;AACD;AAED,OAAO,iBAAS,mBACd,cAAc,SACd,EACA,gBACA,cAC+B,EAA9B,wBAAwB,SAAS","names":[],"sources":["../../../src/object-table/TableEditContainer.tsx"],"version":3,"file":"TableEditContainer.d.ts"}
1
+ {"mappings":"AAiBA,cAAc,eAAe,uBAAwB;AACrD,cAAqB,oBAA2C,OAAQ;AAGxE,cAAc,sBAAsB,kBAAmB;UAE7C,wBACR,cAAc,SACd;CACA,gBAAgB,eAAe;CAC/B;AACD;AAED,OAAO,iBAAS,mBACd,cAAc,SACd,EACA,gBACA,cAC+B,EAA9B,wBAAwB,SAAS","names":[],"sources":["../../../src/object-table/TableEditContainer.tsx"],"version":3,"file":"TableEditContainer.d.ts"}
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAGE,SAEA,aAEK,uBAAwB;AAC/B,OAAO,WAA+C,OAAQ;AAK9D,cACO,8BAEA,6BAA8B;UAK3B,iBACR,cAAc,SACd;CACA,OAAO,MAAM;CACb,yBAAyB;AAC1B;AAyBD,OAAO,iBAAS,YACd,cAAc,SACd,EACA,OACA,wBACwB,EAAvB,iBAAiB,SAAS,MAAM","names":[],"sources":["../../../src/object-table/TableHeader.tsx"],"version":3,"file":"TableHeader.d.ts"}
1
+ {"mappings":"AAgBA,cAGE,SAEA,aAEK,uBAAwB;AAE/B,OAAO,WAA+C,OAAQ;AAK9D,cACO,8BAEA,6BAA8B;UAK3B,iBACR,cAAc,SACd;CACA,OAAO,MAAM;CACb,yBAAyB;AAC1B;AAyBD,OAAO,iBAAS,YACd,cAAc,SACd,EACA,OACA,wBACwB,EAAvB,iBAAiB,SAAS,MAAM","names":[],"sources":["../../../src/object-table/TableHeader.tsx"],"version":3,"file":"TableHeader.d.ts"}
@@ -6,9 +6,9 @@ interface TableRowProps<TData extends RowData> {
6
6
  virtualRow: VirtualItem;
7
7
  onRowClick?: (row: TData) => void;
8
8
  renderCellContextMenu?: (row: TData, cell: Cell<TData, unknown>) => React.ReactNode;
9
- focusedRowId?: string | null;
9
+ isFocused: boolean;
10
10
  setFocusedRowId?: (rowId: string | null) => void;
11
11
  isInEditMode?: boolean;
12
12
  }
13
- export declare function TableRow<TData extends RowData>({ row, virtualRow, onRowClick, renderCellContextMenu, focusedRowId, setFocusedRowId, isInEditMode }: TableRowProps<TData>): React.ReactElement;
13
+ export declare function TableRow<TData extends RowData>({ row, virtualRow, onRowClick, renderCellContextMenu, isFocused, setFocusedRowId, isInEditMode }: TableRowProps<TData>): React.ReactElement;
14
14
  export {};
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAAc,MAAM,KAAK,eAAe,uBAAwB;AAChE,cAAc,mBAAmB,yBAA0B;AAC3D,OAAO,WAA4B,OAAQ;UAIjC,cAAc,cAAc,SAAS;CAC7C,KAAK,IAAI;CACT,YAAY;CACZ,cAAcA,KAAK;CACnB,yBACEA,KAAK,OACLC,MAAM,KAAK,oBACR,MAAM;CACX;CACA,mBAAmBC;CACnB;AACD;AAED,OAAO,iBAAS,SAAS,cAAc,SAAS,EAC9C,KACA,YACA,YACA,uBACA,cACA,iBACA,cACqB,EAApB,cAAc,SAAS,MAAM","names":["row: TData","cell: Cell<TData, unknown>","rowId: string | null"],"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;UAIjC,cAAc,cAAc,SAAS;CAC7C,KAAK,IAAI;CACT,YAAY;CACZ,cAAcA,KAAK;CACnB,yBACEA,KAAK,OACLC,MAAM,KAAK,oBACR,MAAM;CACX;CACA,mBAAmBC;CACnB;AACD;AAED,OAAO,iBAAS,SAAS,cAAc,SAAS,EAC9C,KACA,YACA,YACA,uBACA,WACA,iBACA,cACqB,EAApB,cAAc,SAAS,MAAM","names":["row: TData","cell: Cell<TData, unknown>","rowId: string | null"],"sources":["../../../src/object-table/TableRow.tsx"],"version":3,"file":"TableRow.d.ts"}
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cACE,6BACA,MACA,cACA,iBACA,yBACK,WAAY;AAEnB,cAAc,wBAAwB,sBAAuB;AAC7D,cAA4B,sBAAgC,mBAAoB;AAEhF,iBAAiB;CACf,UAAU;CACV,aAAa,eAAe,qBAAqB;CAIjD,wBAAwB,eAAe,gBAAgB,CAAE,MAAK;EAI9D;CACA,WAAW,WAAW;CAEtB,qBAAqB,iBACnB,GACA,MACA,iBACA;CAEF,gBAAgB,iBACd,GACA,MACA,iBACA;AACH;AAED,OAAO,iBAAS;CACd,UAAU;CACV,aAAa,eAAe,qBAAqB;CAIjD,wBAAwB,eAAe,gBAAgB,CAAE,MAAK;EAI9D,EACA,UACA,oBACA,eACgD,EAA/C,sBAAsB,GAAG,MAAM,mBAAmB,eACnD,KAAK,SAAS,GAAG,sBAAsB,aAAa,IAAI","names":[],"sources":["../../../../src/object-table/hooks/useEditableTable.ts"],"version":3,"file":"useEditableTable.d.ts"}
1
+ {"mappings":"AAgBA,cACE,6BACA,MACA,cACA,iBACA,yBACK,WAAY;AAEnB,cAAc,wBAAwB,sBAAuB;AAC7D,cAEE,sBAEK,mBAAoB;AAE3B,iBAAiB;CACf,UAAU;CACV,aAAa,eAAe,qBAAqB;CAIjD,wBAAwB,eAAe,gBAAgB,CAAE,MAAK;EAI9D;CACA,WAAW,WAAW;CAEtB,qBAAqB,iBACnB,GACA,MACA,iBACA;CAEF,gBAAgB,iBACd,GACA,MACA,iBACA;AACH;AAED,OAAO,iBAAS;CACd,UAAU;CACV,aAAa,eAAe,qBAAqB;CAIjD,wBAAwB,eAAe,gBAAgB,CAAE,MAAK;EAI9D,EACA,UACA,oBACA,eACgD,EAA/C,sBAAsB,GAAG,MAAM,mBAAmB,eACnD,KAAK,SAAS,GAAG,sBAAsB,aAAa,IAAI","names":[],"sources":["../../../../src/object-table/hooks/useEditableTable.ts"],"version":3,"file":"useEditableTable.d.ts"}
@@ -12,11 +12,11 @@ export interface CellEditInfo<
12
12
  TData extends RowData = unknown,
13
13
  CellValue = unknown
14
14
  > extends CellIdentifier {
15
- newValue: CellValue;
16
- oldValue: CellValue;
15
+ newValue: CellValue | null;
16
+ oldValue: CellValue | null;
17
17
  originalRowData: TData;
18
18
  }
19
- export type EditMode = {
19
+ export type EditModeState = {
20
20
  type: "always"
21
21
  isActive: true
22
22
  } | {
@@ -32,5 +32,8 @@ export interface EditableConfig<
32
32
  onCellEdit: (cellId: string, info: CellEditInfo<TData, CellValue>) => void;
33
33
  onSubmitEdits?: () => Promise<boolean>;
34
34
  clearEdits: () => void;
35
- editMode: EditMode;
35
+ editModeState: EditModeState;
36
+ onCellValidationError: (cellId: string, error: string) => void;
37
+ validationErrors: Map<string, string>;
38
+ clearCellValidationError: (cellId: string) => void;
36
39
  }
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAAc,eAAe,uBAAwB;AAErD,iBAAiB,aAAa;CAC5B;CACA;CACA;AACD;AAED,iBAAiB,eAAe;CAC9B;CACA;AACD;AAED,iBAAiB;CACf,cAAc;CACd;UACQ,eAAe;CACvB,UAAU;CACV,UAAU;CACV,iBAAiB;AAClB;AAED,YAAY,WACR;CAAE,MAAM;CAAU,UAAU;AAAM,IAClC;CAAE,MAAM;CAAU;CAAmB,YAAYA;AAAyB;AAE9E,iBAAiB;CACf,cAAc;CACd;EACA;CACA,WAAW,eAAe,aAAa,OAAO;CAC9C,aACEC,gBACAC,MAAM,aAAa,OAAO;CAE5B,sBAAsB;CACtB;CACA,UAAU;AACX","names":["value: boolean","cellId: string","info: CellEditInfo<TData, CellValue>"],"sources":["../../../../src/object-table/utils/types.ts"],"version":3,"file":"types.d.ts"}
1
+ {"mappings":"AAgBA,cAAc,eAAe,uBAAwB;AAErD,iBAAiB,aAAa;CAC5B;CACA;CACA;AACD;AAED,iBAAiB,eAAe;CAC9B;CACA;AACD;AAED,iBAAiB;CACf,cAAc;CACd;UACQ,eAAe;CACvB,UAAU;CACV,UAAU;CACV,iBAAiB;AAClB;AAED,YAAY,gBACR;CAAE,MAAM;CAAU,UAAU;AAAM,IAClC;CAAE,MAAM;CAAU;CAAmB,YAAYA;AAAyB;AAE9E,iBAAiB;CACf,cAAc;CACd;EACA;CACA,WAAW,eAAe,aAAa,OAAO;CAC9C,aACEC,gBACAC,MAAM,aAAa,OAAO;CAE5B,sBAAsB;CACtB;CACA,eAAe;CACf,wBACED,gBACAE;CAEF,kBAAkB;CAClB,2BAA2BF;AAC5B","names":["value: boolean","cellId: string","info: CellEditInfo<TData, CellValue>","error: string"],"sources":["../../../../src/object-table/utils/types.ts"],"version":3,"file":"types.d.ts"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Exhaustive type checking helper.
3
+ * Use in default cases of switch statements to ensure all cases are handled.
4
+ * TypeScript will error if a case is missing.
5
+ */
6
+ export declare function assertUnreachable(value: never): never;
@@ -0,0 +1 @@
1
+ {"mappings":";;;;;AAqBA,OAAO,iBAAS,kBAAkBA","names":["value: never"],"sources":["../../../src/shared/assertUnreachable.ts"],"version":3,"file":"assertUnreachable.d.ts"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * TODO: Delete this once `React.memo` is typed to not lose generics to `unknown`
3
+ *
4
+ * Context: https://github.com/DefinitelyTyped/DefinitelyTyped/issues/37087
5
+ */
6
+ export declare const typedReactMemo: <T>(component: T) => T;
@@ -0,0 +1 @@
1
+ {"mappings":";;;;;AAuBA,OAAO,cAAMA,iBAAiB,GAAGC,WAAW,MAAM","names":["typedReactMemo: <T>(component: T) => T","component: T"],"sources":["../../../src/shared/typedMemo.ts"],"version":3,"file":"typedMemo.d.ts"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@osdk/react-components",
3
- "version": "0.2.0-beta.16",
3
+ "version": "0.2.0-beta.18",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -44,7 +44,8 @@
44
44
  "@dnd-kit/utilities": "^3.2.2",
45
45
  "@tanstack/react-table": "^8.21.3",
46
46
  "@tanstack/react-virtual": "^3.13.13",
47
- "lodash-es": "^4.17.21"
47
+ "lodash-es": "^4.17.21",
48
+ "react-hook-form": "^7.54.0"
48
49
  },
49
50
  "peerDependencies": {
50
51
  "@osdk/api": "*",
@@ -66,11 +67,11 @@
66
67
  "react": "^18.3.1",
67
68
  "react-dom": "^18.3.1",
68
69
  "typescript": "~5.5.4",
69
- "@osdk/api": "2.8.0-beta.19",
70
- "@osdk/client": "2.8.0-beta.19",
70
+ "@osdk/client": "2.8.0-beta.21",
71
+ "@osdk/api": "2.8.0-beta.21",
71
72
  "@osdk/monorepo.api-extractor": "~0.7.0-beta.1",
72
73
  "@osdk/monorepo.tsconfig": "~0.7.0-beta.1",
73
- "@osdk/react": "0.10.0-beta.8"
74
+ "@osdk/react": "0.10.0-beta.9"
74
75
  },
75
76
  "publishConfig": {
76
77
  "access": "public"