@osdk/react-components 0.45.0 → 0.46.0

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 (161) hide show
  1. package/AGENTS.md +29 -29
  2. package/CHANGELOG.md +6 -0
  3. package/README.md +14 -14
  4. package/build/browser/document-viewer/DocumentViewer.js +6 -6
  5. package/build/browser/document-viewer/DocumentViewer.js.map +1 -1
  6. package/build/browser/document-viewer/DocumentViewerApi.js +1 -1
  7. package/build/browser/document-viewer/DocumentViewerApi.js.map +1 -1
  8. package/build/browser/object-table/ObjectTableApi.js.map +1 -1
  9. package/build/browser/public/experimental/{excel-viewer.js → spreadsheet-viewer.js} +6 -6
  10. package/build/browser/public/experimental/spreadsheet-viewer.js.map +1 -0
  11. package/build/browser/public/experimental.js +1 -1
  12. package/build/browser/public/experimental.js.map +1 -1
  13. package/build/{esm/excel-viewer/BaseExcelViewer.js → browser/spreadsheet-viewer/BaseSpreadsheetViewer.js} +3 -3
  14. package/build/browser/spreadsheet-viewer/BaseSpreadsheetViewer.js.map +1 -0
  15. package/build/{esm/excel-viewer/BaseExcelViewer.module.css → browser/spreadsheet-viewer/BaseSpreadsheetViewer.module.css} +33 -33
  16. package/build/browser/spreadsheet-viewer/BaseSpreadsheetViewer.module.css.js +20 -0
  17. package/build/browser/{excel-viewer/ExcelViewer.js → spreadsheet-viewer/SpreadsheetViewer.js} +7 -7
  18. package/build/browser/spreadsheet-viewer/SpreadsheetViewer.js.map +1 -0
  19. package/build/browser/spreadsheet-viewer/SpreadsheetViewerApi.js +2 -0
  20. package/build/browser/spreadsheet-viewer/SpreadsheetViewerApi.js.map +1 -0
  21. package/build/browser/spreadsheet-viewer/parseSpreadsheet.js.map +1 -0
  22. package/build/browser/styles.css +199 -197
  23. package/build/browser/tokens/component-tokens/spreadsheet-viewer.css +25 -0
  24. package/build/browser/tokens.css +1 -1
  25. package/build/browser/util/UserAgent.js +1 -1
  26. package/build/cjs/{ExcelViewerApi-D8tqiUvS.d.cts → SpreadsheetViewerApi-C4-gqkkY.d.cts} +4 -4
  27. package/build/cjs/{chunk-MG7UDVZR.cjs → chunk-2CKESSXH.cjs} +11 -11
  28. package/build/cjs/chunk-2CKESSXH.cjs.map +1 -0
  29. package/build/cjs/{chunk-GKDO6NU7.cjs → chunk-3C5JRKBJ.cjs} +30 -30
  30. package/build/cjs/chunk-3C5JRKBJ.cjs.map +1 -0
  31. package/build/cjs/{chunk-EIOTTIUV.cjs → chunk-A4PDCZUY.cjs} +4 -4
  32. package/build/cjs/{chunk-EIOTTIUV.cjs.map → chunk-A4PDCZUY.cjs.map} +1 -1
  33. package/build/cjs/{chunk-QQXBGYWP.cjs → chunk-AEQDZPU3.cjs} +4 -4
  34. package/build/cjs/{chunk-QQXBGYWP.cjs.map → chunk-AEQDZPU3.cjs.map} +1 -1
  35. package/build/cjs/{chunk-TVK2XLNJ.cjs → chunk-BLPXZKVC.cjs} +3 -3
  36. package/build/cjs/{chunk-TVK2XLNJ.cjs.map → chunk-BLPXZKVC.cjs.map} +1 -1
  37. package/build/cjs/chunk-D2NDALCM.cjs +11 -0
  38. package/build/cjs/chunk-D2NDALCM.cjs.map +1 -0
  39. package/build/cjs/chunk-I3KITN2A.cjs +11 -0
  40. package/build/cjs/{chunk-YCSU5IMD.cjs.map → chunk-I3KITN2A.cjs.map} +1 -1
  41. package/build/cjs/{chunk-T6SDOLIX.cjs → chunk-KGJWCRXE.cjs} +4 -4
  42. package/build/cjs/{chunk-T6SDOLIX.cjs.map → chunk-KGJWCRXE.cjs.map} +1 -1
  43. package/build/cjs/chunk-L4MQGDXA.cjs +11 -0
  44. package/build/cjs/{chunk-4VNSLY36.cjs.map → chunk-L4MQGDXA.cjs.map} +1 -1
  45. package/build/cjs/chunk-LS44RU72.cjs +11 -0
  46. package/build/cjs/{chunk-AU6YJLRT.cjs.map → chunk-LS44RU72.cjs.map} +1 -1
  47. package/build/cjs/{chunk-NER4ODIR.cjs → chunk-NK5S5G7V.cjs} +4 -4
  48. package/build/cjs/{chunk-NER4ODIR.cjs.map → chunk-NK5S5G7V.cjs.map} +1 -1
  49. package/build/cjs/chunk-T65VAHZ3.cjs +11 -0
  50. package/build/cjs/{chunk-KSCR5PCE.cjs.map → chunk-T65VAHZ3.cjs.map} +1 -1
  51. package/build/cjs/{chunk-WALOYQVH.cjs → chunk-UNK7YFKE.cjs} +4 -4
  52. package/build/cjs/{chunk-WALOYQVH.cjs.map → chunk-UNK7YFKE.cjs.map} +1 -1
  53. package/build/cjs/{chunk-7NPZBKYH.cjs → chunk-VMFLHUR7.cjs} +4 -4
  54. package/build/cjs/{chunk-7NPZBKYH.cjs.map → chunk-VMFLHUR7.cjs.map} +1 -1
  55. package/build/cjs/{chunk-KKRHM5JK.cjs → chunk-WMGFXPN6.cjs} +4 -4
  56. package/build/cjs/{chunk-KKRHM5JK.cjs.map → chunk-WMGFXPN6.cjs.map} +1 -1
  57. package/build/cjs/public/experimental/action-form.cjs +4 -4
  58. package/build/cjs/public/experimental/cbac-picker.cjs +11 -11
  59. package/build/cjs/public/experimental/document-viewer.cjs +5 -5
  60. package/build/cjs/public/experimental/document-viewer.css +122 -122
  61. package/build/cjs/public/experimental/document-viewer.css.map +1 -1
  62. package/build/cjs/public/experimental/document-viewer.d.cts +5 -5
  63. package/build/cjs/public/experimental/email-viewer.cjs +3 -3
  64. package/build/cjs/public/experimental/filter-list.cjs +15 -15
  65. package/build/cjs/public/experimental/image-viewer.cjs +3 -3
  66. package/build/cjs/public/experimental/markdown-renderer.cjs +3 -3
  67. package/build/cjs/public/experimental/object-table.cjs +21 -21
  68. package/build/cjs/public/experimental/object-table.d.cts +1 -1
  69. package/build/cjs/public/experimental/pdf-viewer.cjs +7 -7
  70. package/build/cjs/public/experimental/spreadsheet-viewer.cjs +20 -0
  71. package/build/cjs/public/experimental/spreadsheet-viewer.cjs.map +1 -0
  72. package/build/cjs/public/experimental/spreadsheet-viewer.css +122 -0
  73. package/build/cjs/public/experimental/spreadsheet-viewer.css.map +1 -0
  74. package/build/cjs/public/experimental/spreadsheet-viewer.d.cts +12 -0
  75. package/build/cjs/public/experimental/tiff-renderer.cjs +3 -3
  76. package/build/cjs/public/experimental/video-viewer.cjs +3 -3
  77. package/build/cjs/public/experimental/xml-viewer.cjs +3 -3
  78. package/build/cjs/public/experimental.cjs +79 -79
  79. package/build/cjs/public/experimental.css +122 -122
  80. package/build/cjs/public/experimental.css.map +1 -1
  81. package/build/cjs/public/experimental.d.cts +2 -2
  82. package/build/esm/document-viewer/DocumentViewer.js +6 -6
  83. package/build/esm/document-viewer/DocumentViewer.js.map +1 -1
  84. package/build/esm/document-viewer/DocumentViewerApi.js +1 -1
  85. package/build/esm/document-viewer/DocumentViewerApi.js.map +1 -1
  86. package/build/esm/object-table/ObjectTableApi.js.map +1 -1
  87. package/build/esm/public/experimental/{excel-viewer.js → spreadsheet-viewer.js} +6 -6
  88. package/build/esm/public/experimental/spreadsheet-viewer.js.map +1 -0
  89. package/build/esm/public/experimental.js +1 -1
  90. package/build/esm/public/experimental.js.map +1 -1
  91. package/build/{browser/excel-viewer/BaseExcelViewer.js → esm/spreadsheet-viewer/BaseSpreadsheetViewer.js} +3 -3
  92. package/build/esm/spreadsheet-viewer/BaseSpreadsheetViewer.js.map +1 -0
  93. package/build/{browser/excel-viewer/BaseExcelViewer.module.css → esm/spreadsheet-viewer/BaseSpreadsheetViewer.module.css} +33 -33
  94. package/build/esm/{excel-viewer/ExcelViewer.js → spreadsheet-viewer/SpreadsheetViewer.js} +7 -7
  95. package/build/esm/spreadsheet-viewer/SpreadsheetViewer.js.map +1 -0
  96. package/build/esm/spreadsheet-viewer/SpreadsheetViewerApi.js +2 -0
  97. package/build/esm/spreadsheet-viewer/SpreadsheetViewerApi.js.map +1 -0
  98. package/build/esm/spreadsheet-viewer/parseSpreadsheet.js.map +1 -0
  99. package/build/esm/tokens/component-tokens/spreadsheet-viewer.css +25 -0
  100. package/build/esm/tokens.css +1 -1
  101. package/build/esm/util/UserAgent.js +1 -1
  102. package/build/types/document-viewer/DocumentViewer.d.ts +1 -1
  103. package/build/types/document-viewer/DocumentViewer.d.ts.map +1 -1
  104. package/build/types/document-viewer/DocumentViewerApi.d.ts +4 -4
  105. package/build/types/document-viewer/DocumentViewerApi.d.ts.map +1 -1
  106. package/build/types/object-table/ObjectTableApi.d.ts +1 -1
  107. package/build/types/public/experimental/spreadsheet-viewer.d.ts +4 -0
  108. package/build/types/public/experimental/spreadsheet-viewer.d.ts.map +1 -0
  109. package/build/types/public/experimental.d.ts +1 -1
  110. package/build/types/spreadsheet-viewer/BaseSpreadsheetViewer.d.ts +3 -0
  111. package/build/types/spreadsheet-viewer/BaseSpreadsheetViewer.d.ts.map +1 -0
  112. package/build/types/spreadsheet-viewer/SpreadsheetViewer.d.ts +3 -0
  113. package/build/types/spreadsheet-viewer/SpreadsheetViewer.d.ts.map +1 -0
  114. package/build/types/{excel-viewer/ExcelViewerApi.d.ts → spreadsheet-viewer/SpreadsheetViewerApi.d.ts} +3 -3
  115. package/build/types/spreadsheet-viewer/SpreadsheetViewerApi.d.ts.map +1 -0
  116. package/build/types/{excel-viewer → spreadsheet-viewer}/parseSpreadsheet.d.ts +1 -1
  117. package/build/types/spreadsheet-viewer/parseSpreadsheet.d.ts.map +1 -0
  118. package/docs/CSSVariables.md +25 -25
  119. package/docs/DocumentViewer.md +25 -25
  120. package/docs/ObjectTable.md +1 -1
  121. package/docs/{ExcelViewer.md → SpreadsheetViewer.md} +26 -24
  122. package/docs/Welcome.md +7 -7
  123. package/package.json +13 -13
  124. package/build/browser/excel-viewer/BaseExcelViewer.js.map +0 -1
  125. package/build/browser/excel-viewer/BaseExcelViewer.module.css.js +0 -20
  126. package/build/browser/excel-viewer/ExcelViewer.js.map +0 -1
  127. package/build/browser/excel-viewer/ExcelViewerApi.js +0 -2
  128. package/build/browser/excel-viewer/ExcelViewerApi.js.map +0 -1
  129. package/build/browser/excel-viewer/parseSpreadsheet.js.map +0 -1
  130. package/build/browser/public/experimental/excel-viewer.js.map +0 -1
  131. package/build/browser/tokens/component-tokens/excel-viewer.css +0 -23
  132. package/build/cjs/chunk-4VNSLY36.cjs +0 -11
  133. package/build/cjs/chunk-AU6YJLRT.cjs +0 -11
  134. package/build/cjs/chunk-GKDO6NU7.cjs.map +0 -1
  135. package/build/cjs/chunk-J4HBV3P2.cjs +0 -11
  136. package/build/cjs/chunk-J4HBV3P2.cjs.map +0 -1
  137. package/build/cjs/chunk-KSCR5PCE.cjs +0 -11
  138. package/build/cjs/chunk-MG7UDVZR.cjs.map +0 -1
  139. package/build/cjs/chunk-YCSU5IMD.cjs +0 -11
  140. package/build/cjs/public/experimental/excel-viewer.cjs +0 -20
  141. package/build/cjs/public/experimental/excel-viewer.cjs.map +0 -1
  142. package/build/cjs/public/experimental/excel-viewer.css +0 -122
  143. package/build/cjs/public/experimental/excel-viewer.css.map +0 -1
  144. package/build/cjs/public/experimental/excel-viewer.d.cts +0 -12
  145. package/build/esm/excel-viewer/BaseExcelViewer.js.map +0 -1
  146. package/build/esm/excel-viewer/ExcelViewer.js.map +0 -1
  147. package/build/esm/excel-viewer/ExcelViewerApi.js +0 -2
  148. package/build/esm/excel-viewer/ExcelViewerApi.js.map +0 -1
  149. package/build/esm/excel-viewer/parseSpreadsheet.js.map +0 -1
  150. package/build/esm/public/experimental/excel-viewer.js.map +0 -1
  151. package/build/esm/tokens/component-tokens/excel-viewer.css +0 -23
  152. package/build/types/excel-viewer/BaseExcelViewer.d.ts +0 -3
  153. package/build/types/excel-viewer/BaseExcelViewer.d.ts.map +0 -1
  154. package/build/types/excel-viewer/ExcelViewer.d.ts +0 -3
  155. package/build/types/excel-viewer/ExcelViewer.d.ts.map +0 -1
  156. package/build/types/excel-viewer/ExcelViewerApi.d.ts.map +0 -1
  157. package/build/types/excel-viewer/parseSpreadsheet.d.ts.map +0 -1
  158. package/build/types/public/experimental/excel-viewer.d.ts +0 -4
  159. package/build/types/public/experimental/excel-viewer.d.ts.map +0 -1
  160. /package/build/browser/{excel-viewer → spreadsheet-viewer}/parseSpreadsheet.js +0 -0
  161. /package/build/esm/{excel-viewer → spreadsheet-viewer}/parseSpreadsheet.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"parseSpreadsheet.js","names":["read","utils","parseSpreadsheetFromResponse","response","buffer","arrayBuffer","workbook","type","sheets","SheetNames","map","name","sheet","Sheets","rows","sheet_to_json","header","defval","raw"],"sources":["parseSpreadsheet.ts"],"sourcesContent":["/*\n * Copyright 2026 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\n/* cspell:words defval */\n\nimport { read, utils } from \"xlsx-republish\";\n\nimport type { ParsedSpreadsheet, SheetData } from \"./SpreadsheetViewerApi.js\";\n\nexport async function parseSpreadsheetFromResponse(\n response: Response,\n): Promise<ParsedSpreadsheet> {\n const buffer = await response.arrayBuffer();\n const workbook = read(buffer, { type: \"array\" });\n\n const sheets: SheetData[] = workbook.SheetNames.map((name) => {\n const sheet = workbook.Sheets[name];\n const rows: string[][] =\n sheet != null\n ? utils.sheet_to_json<string[]>(sheet, {\n header: 1,\n defval: \"\",\n raw: false,\n })\n : [];\n return { name, rows };\n });\n\n return { sheets };\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA,SAASA,IAAI,EAAEC,KAAK,QAAQ,gBAAgB;AAI5C,OAAO,eAAeC,4BAA4BA,CAChDC,QAAkB,EACU;EAC5B,MAAMC,MAAM,GAAG,MAAMD,QAAQ,CAACE,WAAW,CAAC,CAAC;EAC3C,MAAMC,QAAQ,GAAGN,IAAI,CAACI,MAAM,EAAE;IAAEG,IAAI,EAAE;EAAQ,CAAC,CAAC;EAEhD,MAAMC,MAAmB,GAAGF,QAAQ,CAACG,UAAU,CAACC,GAAG,CAAEC,IAAI,IAAK;IAC5D,MAAMC,KAAK,GAAGN,QAAQ,CAACO,MAAM,CAACF,IAAI,CAAC;IACnC,MAAMG,IAAgB,GACpBF,KAAK,IAAI,IAAI,GACTX,KAAK,CAACc,aAAa,CAAWH,KAAK,EAAE;MACnCI,MAAM,EAAE,CAAC;MACTC,MAAM,EAAE,EAAE;MACVC,GAAG,EAAE;IACP,CAAC,CAAC,GACF,EAAE;IACR,OAAO;MAAEP,IAAI;MAAEG;IAAK,CAAC;EACvB,CAAC,CAAC;EAEF,OAAO;IAAEN;EAAO,CAAC;AACnB","ignoreList":[]}
@@ -0,0 +1,25 @@
1
+ :root {
2
+ /* Spreadsheet Viewer - Container */
3
+ --osdk-spreadsheet-viewer-bg: var(--osdk-background-primary);
4
+ --osdk-spreadsheet-viewer-border: var(--osdk-surface-border);
5
+
6
+ /* Spreadsheet Viewer - Table */
7
+ --osdk-spreadsheet-viewer-header-bg: var(--osdk-background-secondary);
8
+ --osdk-spreadsheet-viewer-header-color: var(--osdk-typography-color-muted);
9
+ --osdk-spreadsheet-viewer-cell-border: var(
10
+ --osdk-surface-border-color-default
11
+ );
12
+ --osdk-spreadsheet-viewer-cell-padding: 2px 6px;
13
+ --osdk-spreadsheet-viewer-col-min-width: 80px;
14
+ --osdk-spreadsheet-viewer-row-header-width: 40px;
15
+
16
+ /* Spreadsheet Viewer - Sheet Tabs */
17
+ --osdk-spreadsheet-viewer-tab-bg: var(--osdk-background-secondary);
18
+ --osdk-spreadsheet-viewer-tab-hover-bg: var(--osdk-background-tertiary);
19
+ --osdk-spreadsheet-viewer-tab-active-bg: var(--osdk-background-primary);
20
+ --osdk-spreadsheet-viewer-tab-border: var(--osdk-surface-border);
21
+ --osdk-spreadsheet-viewer-tab-border-radius: 4px;
22
+ --osdk-spreadsheet-viewer-tab-padding: 4px 12px;
23
+ --osdk-spreadsheet-viewer-tab-bar-padding: 4px;
24
+ --osdk-spreadsheet-viewer-tab-gap: 2px;
25
+ }
@@ -15,7 +15,6 @@
15
15
  @import "./tokens/component-tokens/dialog.css";
16
16
  @import "./tokens/component-tokens/draggable.css";
17
17
  @import "./tokens/component-tokens/email-viewer.css";
18
- @import "./tokens/component-tokens/excel-viewer.css";
19
18
  @import "./tokens/component-tokens/file-picker.css";
20
19
  @import "./tokens/component-tokens/filter-list.css";
21
20
  @import "./tokens/component-tokens/form.css";
@@ -26,6 +25,7 @@
26
25
  @import "./tokens/component-tokens/pdf-viewer.css";
27
26
  @import "./tokens/component-tokens/radio.css";
28
27
  @import "./tokens/component-tokens/select.css";
28
+ @import "./tokens/component-tokens/spreadsheet-viewer.css";
29
29
  @import "./tokens/component-tokens/table.css";
30
30
  @import "./tokens/component-tokens/timepicker.css";
31
31
  @import "./tokens/component-tokens/tooltip.css";
@@ -14,7 +14,7 @@
14
14
  * limitations under the License.
15
15
  */
16
16
 
17
- const PACKAGE_USER_AGENT = `osdk-react-components/${"0.45.0"}`;
17
+ const PACKAGE_USER_AGENT = `osdk-react-components/${"0.46.0"}`;
18
18
  export function componentUserAgent(componentName) {
19
19
  return `${PACKAGE_USER_AGENT}/${componentName}`;
20
20
  }
@@ -1,3 +1,3 @@
1
1
  import React from "react";
2
2
  import type { DocumentViewerProps } from "./DocumentViewerApi.js";
3
- export declare function DocumentViewer({ media, className, mimeTypeOverride, pdfViewerProps, imageViewerProps, videoViewerProps, tiffRendererProps, markdownRendererProps, excelViewerProps, emailViewerProps, xmlViewerProps, fileName, enableTiffToPdf }: DocumentViewerProps): React.ReactElement;
3
+ export declare function DocumentViewer({ media, className, mimeTypeOverride, pdfViewerProps, imageViewerProps, videoViewerProps, tiffRendererProps, markdownRendererProps, spreadsheetViewerProps, emailViewerProps, xmlViewerProps, fileName, enableTiffToPdf }: DocumentViewerProps): React.ReactElement;
@@ -1 +1 @@
1
- {"mappings":"AAoBA,OAAO,WAAwB,OAAQ;AAWvC,cAAc,2BAA2B,wBAAyB;AA+DlE,OAAO,iBAAS,eAAe,EAC7B,OACA,WACA,kBACA,gBACA,kBACA,kBACA,mBACA,uBACA,kBACA,kBACA,gBACA,UACA,iBACoB,EAAnB,sBAAsB,MAAM","names":[],"sources":["../../../src/document-viewer/DocumentViewer.tsx"],"version":3,"file":"DocumentViewer.d.ts"}
1
+ {"mappings":"AAoBA,OAAO,WAAwB,OAAQ;AAWvC,cAAc,2BAA2B,wBAAyB;AA+DlE,OAAO,iBAAS,eAAe,EAC7B,OACA,WACA,kBACA,gBACA,kBACA,kBACA,mBACA,uBACA,wBACA,kBACA,gBACA,UACA,iBACoB,EAAnB,sBAAsB,MAAM","names":[],"sources":["../../../src/document-viewer/DocumentViewer.tsx"],"version":3,"file":"DocumentViewer.d.ts"}
@@ -1,10 +1,10 @@
1
1
  import type { Media } from "@osdk/api";
2
2
  import type { BaseEmailViewerProps } from "../email-viewer/EmailViewerApi.js";
3
- import type { BaseExcelViewerProps } from "../excel-viewer/ExcelViewerApi.js";
4
3
  import type { BaseImageViewerProps } from "../images/image-viewer/ImageViewerApi.js";
5
4
  import type { TiffRendererProps } from "../images/tiff-renderer/types.js";
6
5
  import type { MarkdownRendererProps } from "../markdown-renderer/MarkdownRenderer.js";
7
6
  import type { PdfViewerProps } from "../pdf-viewer/types.js";
7
+ import type { BaseSpreadsheetViewerProps } from "../spreadsheet-viewer/SpreadsheetViewerApi.js";
8
8
  import type { BaseVideoViewerProps } from "../video-viewer/VideoViewerApi.js";
9
9
  import type { BaseXmlViewerProps } from "../xml-viewer/XmlViewerApi.js";
10
10
  export declare enum ViewerType {
@@ -13,7 +13,7 @@ export declare enum ViewerType {
13
13
  Image = "image",
14
14
  Video = "video",
15
15
  Markdown = "markdown",
16
- Excel = "excel",
16
+ Spreadsheet = "spreadsheet",
17
17
  Email = "email",
18
18
  Xml = "xml",
19
19
  Unsupported = "unsupported"
@@ -42,9 +42,9 @@ export interface DocumentViewerProps {
42
42
  /** Props forwarded to MarkdownRenderer when rendering markdown
43
43
  * @default undefined */
44
44
  markdownRendererProps?: Partial<Omit<MarkdownRendererProps, "content" | "className">>;
45
- /** Props forwarded to BaseExcelViewer when rendering Excel
45
+ /** Props forwarded to BaseSpreadsheetViewer when rendering a spreadsheet
46
46
  * @default undefined */
47
- excelViewerProps?: Partial<Omit<BaseExcelViewerProps, "spreadsheet" | "className">>;
47
+ spreadsheetViewerProps?: Partial<Omit<BaseSpreadsheetViewerProps, "spreadsheet" | "className">>;
48
48
  /** Props forwarded to BaseEmailViewer when rendering EML
49
49
  * @default undefined */
50
50
  emailViewerProps?: Partial<Omit<BaseEmailViewerProps, "email" | "className">>;
@@ -1 +1 @@
1
- {"mappings":"AAgBA,cAAc,aAAa,WAAY;AAEvC,cAAc,4BAA4B,mCAAoC;AAC9E,cAAc,4BAA4B,mCAAoC;AAC9E,cAAc,4BAA4B,0CAA2C;AACrF,cAAc,yBAAyB,kCAAmC;AAC1E,cAAc,6BAA6B,0CAA2C;AACtF,cAAc,sBAAsB,wBAAyB;AAC7D,cAAc,4BAA4B,mCAAoC;AAC9E,cAAc,0BAA0B,+BAAgC;AAExE,oBAAY,WAAW;CACrB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACD;AAED,iBAAiB,oBAAoB;;CAEnC,OAAO;;;CAGP;;;CAGA;;;CAGA,iBAAiB,QAAQ,KAAK,gBAAgB,QAAQ;;;CAGtD,mBAAmB,QAAQ,KAAK,sBAAsB,QAAQ;;;CAG9D,mBAAmB,QAAQ,KAAK,sBAAsB,QAAQ;;;CAG9D,oBAAoB,QAAQ,KAAK,mBAAmB,YAAY;;;CAGhE,wBAAwB,QACtB,KAAK,uBAAuB,YAAY;;;CAI1C,mBAAmB,QACjB,KAAK,sBAAsB,gBAAgB;;;CAI7C,mBAAmB,QAAQ,KAAK,sBAAsB,UAAU;;;CAGhE,iBAAiB,QAAQ,KAAK,oBAAoB,YAAY;;;;CAI9D;;;CAGA;AACD","names":[],"sources":["../../../src/document-viewer/DocumentViewerApi.ts"],"version":3,"file":"DocumentViewerApi.d.ts"}
1
+ {"mappings":"AAgBA,cAAc,aAAa,WAAY;AAEvC,cAAc,4BAA4B,mCAAoC;AAC9E,cAAc,4BAA4B,0CAA2C;AACrF,cAAc,yBAAyB,kCAAmC;AAC1E,cAAc,6BAA6B,0CAA2C;AACtF,cAAc,sBAAsB,wBAAyB;AAC7D,cAAc,kCAAkC,+CAAgD;AAChG,cAAc,4BAA4B,mCAAoC;AAC9E,cAAc,0BAA0B,+BAAgC;AAExE,oBAAY,WAAW;CACrB;CACA;CACA;CACA;CACA;CACA;CACA;CACA;CACA;AACD;AAED,iBAAiB,oBAAoB;;CAEnC,OAAO;;;CAGP;;;CAGA;;;CAGA,iBAAiB,QAAQ,KAAK,gBAAgB,QAAQ;;;CAGtD,mBAAmB,QAAQ,KAAK,sBAAsB,QAAQ;;;CAG9D,mBAAmB,QAAQ,KAAK,sBAAsB,QAAQ;;;CAG9D,oBAAoB,QAAQ,KAAK,mBAAmB,YAAY;;;CAGhE,wBAAwB,QACtB,KAAK,uBAAuB,YAAY;;;CAI1C,yBAAyB,QACvB,KAAK,4BAA4B,gBAAgB;;;CAInD,mBAAmB,QAAQ,KAAK,sBAAsB,UAAU;;;CAGhE,iBAAiB,QAAQ,KAAK,oBAAoB,YAAY;;;;CAI9D;;;CAGA;AACD","names":[],"sources":["../../../src/document-viewer/DocumentViewerApi.ts"],"version":3,"file":"DocumentViewerApi.d.ts"}
@@ -472,7 +472,7 @@ export interface ObjectTableHandle<
472
472
  * Loads every row matching the object set and returns a format-agnostic
473
473
  * snapshot of the table's columns, row values, and total count. The caller
474
474
  * is responsible for turning the snapshot into a downloadable artifact
475
- * (CSV, Excel, JSON, clipboard, …).
475
+ * (CSV, Spreadsheet, JSON, clipboard, …).
476
476
  *
477
477
  * Property, derived-property, and function-backed columns are included.
478
478
  * Function-backed cells are fetched per page during snapshot collection;
@@ -0,0 +1,4 @@
1
+ export { BaseSpreadsheetViewer } from "../../spreadsheet-viewer/BaseSpreadsheetViewer.js";
2
+ export type { BaseSpreadsheetViewerProps, ParsedSpreadsheet, SheetData, SpreadsheetViewerMediaProps } from "../../spreadsheet-viewer/SpreadsheetViewerApi.js";
3
+ import { SpreadsheetViewer as _SpreadsheetViewer } from "../../spreadsheet-viewer/SpreadsheetViewer.js";
4
+ export declare const SpreadsheetViewer: typeof _SpreadsheetViewer;
@@ -0,0 +1 @@
1
+ {"mappings":"AAiBA,SAAS,6BAA6B;AACtC,cACE,4BACA,mBACA,WACA,mCACK;AAGP,SAAS,qBAAqB,0BAA0B,+CAAgD;AAExG,OAAO,cAAMA,0BAA0B","names":["SpreadsheetViewer: typeof _SpreadsheetViewer"],"sources":["../../../../src/public/experimental/spreadsheet-viewer.ts"],"version":3,"file":"spreadsheet-viewer.d.ts"}
@@ -2,12 +2,12 @@ export * from "./experimental/action-form.js";
2
2
  export * from "./experimental/cbac-picker.js";
3
3
  export * from "./experimental/document-viewer.js";
4
4
  export * from "./experimental/email-viewer.js";
5
- export * from "./experimental/excel-viewer.js";
6
5
  export * from "./experimental/filter-list.js";
7
6
  export * from "./experimental/image-viewer.js";
8
7
  export * from "./experimental/markdown-renderer.js";
9
8
  export * from "./experimental/object-table.js";
10
9
  export * from "./experimental/pdf-viewer.js";
10
+ export * from "./experimental/spreadsheet-viewer.js";
11
11
  export * from "./experimental/theme.js";
12
12
  export * from "./experimental/tiff-renderer.js";
13
13
  export * from "./experimental/video-viewer.js";
@@ -0,0 +1,3 @@
1
+ import React from "react";
2
+ import type { BaseSpreadsheetViewerProps } from "./SpreadsheetViewerApi.js";
3
+ export declare function BaseSpreadsheetViewer({ spreadsheet, className }: BaseSpreadsheetViewerProps): React.ReactElement;
@@ -0,0 +1 @@
1
+ {"mappings":"AAiBA,OAAO,WAA+C,OAAQ;AAE9D,cACE,kCAEK,2BAA4B;AA6DnC,OAAO,iBAAS,sBAAsB,EACpC,aACA,WAC2B,EAA1B,6BAA6B,MAAM","names":[],"sources":["../../../src/spreadsheet-viewer/BaseSpreadsheetViewer.tsx"],"version":3,"file":"BaseSpreadsheetViewer.d.ts"}
@@ -0,0 +1,3 @@
1
+ import React from "react";
2
+ import type { SpreadsheetViewerMediaProps } from "./SpreadsheetViewerApi.js";
3
+ export declare function SpreadsheetViewer({ media, className,...spreadsheetViewerProps }: SpreadsheetViewerMediaProps): React.ReactElement;
@@ -0,0 +1 @@
1
+ {"mappings":"AAkBA,OAAO,WAA4B,OAAQ;AAK3C,cAEE,mCACK,2BAA4B;AAInC,OAAO,iBAAS,kBAAkB,EAChC,OACA,UACA,GAAG,wBACyB,EAA3B,8BAA8B,MAAM","names":[],"sources":["../../../src/spreadsheet-viewer/SpreadsheetViewer.tsx"],"version":3,"file":"SpreadsheetViewer.d.ts"}
@@ -9,14 +9,14 @@ export interface ParsedSpreadsheet {
9
9
  /** All sheets in the workbook */
10
10
  sheets: readonly SheetData[];
11
11
  }
12
- export interface BaseExcelViewerProps {
12
+ export interface BaseSpreadsheetViewerProps {
13
13
  /** Parsed spreadsheet data */
14
14
  spreadsheet: ParsedSpreadsheet;
15
15
  /** Additional CSS class name for the root element
16
16
  * @default undefined */
17
17
  className?: string;
18
18
  }
19
- export interface ExcelViewerMediaProps extends Omit<BaseExcelViewerProps, "spreadsheet"> {
20
- /** The Media object to fetch Excel contents from */
19
+ export interface SpreadsheetViewerMediaProps extends Omit<BaseSpreadsheetViewerProps, "spreadsheet"> {
20
+ /** The Media object to fetch spreadsheet contents from */
21
21
  media: Media;
22
22
  }
@@ -0,0 +1 @@
1
+ {"mappings":"AAgBA,cAAc,aAAa,WAAY;AAEvC,iBAAiB,UAAU;;CAEzB;;CAEA;AACD;AAED,iBAAiB,kBAAkB;;CAEjC,iBAAiB;AAClB;AAED,iBAAiB,2BAA2B;;CAE1C,aAAa;;;CAGb;AACD;AAED,iBAAiB,oCAAoC,KACnD,4BACA,eACA;;CAEA,OAAO;AACR","names":[],"sources":["../../../src/spreadsheet-viewer/SpreadsheetViewerApi.ts"],"version":3,"file":"SpreadsheetViewerApi.d.ts"}
@@ -1,2 +1,2 @@
1
- import type { ParsedSpreadsheet } from "./ExcelViewerApi.js";
1
+ import type { ParsedSpreadsheet } from "./SpreadsheetViewerApi.js";
2
2
  export declare function parseSpreadsheetFromResponse(response: Response): Promise<ParsedSpreadsheet>;
@@ -0,0 +1 @@
1
+ {"mappings":"AAoBA,cAAc,yBAAoC,2BAA4B;AAE9E,OAAO,iBAAe,6BACpBA,UAAU,WACT,QAAQ","names":["response: Response"],"sources":["../../../src/spreadsheet-viewer/parseSpreadsheet.ts"],"version":3,"file":"parseSpreadsheet.d.ts"}
@@ -43,7 +43,7 @@ Complete reference of all CSS custom properties (variables) used in `@osdk/react
43
43
  - [Tooltip](#tooltip)
44
44
  - [Document Viewer](#document-viewer)
45
45
  - [Email Viewer](#email-viewer)
46
- - [Excel Viewer](#excel-viewer)
46
+ - [Spreadsheet Viewer](#spreadsheet-viewer)
47
47
  - [Image Viewer](#image-viewer)
48
48
  - [Video Viewer](#video-viewer)
49
49
  - [XML Viewer](#xml-viewer)
@@ -1486,40 +1486,40 @@ Styling for the email viewer.
1486
1486
  | `--osdk-email-viewer-header-bg` | `var(--osdk-background-secondary)` | Header background |
1487
1487
  | `--osdk-email-viewer-header-border` | `var(--osdk-surface-border)` | Header border |
1488
1488
 
1489
- ### Excel Viewer
1489
+ ### Spreadsheet Viewer
1490
1490
 
1491
- Styling for the Excel viewer.
1491
+ Styling for the spreadsheet viewer.
1492
1492
 
1493
1493
  #### Container
1494
1494
 
1495
- | Variable | Default Value | Description |
1496
- | ---------------------------- | -------------------------------- | ----------------- |
1497
- | `--osdk-excel-viewer-bg` | `var(--osdk-background-primary)` | Viewer background |
1498
- | `--osdk-excel-viewer-border` | `var(--osdk-surface-border)` | Viewer border |
1495
+ | Variable | Default Value | Description |
1496
+ | ---------------------------------- | -------------------------------- | ----------------- |
1497
+ | `--osdk-spreadsheet-viewer-bg` | `var(--osdk-background-primary)` | Viewer background |
1498
+ | `--osdk-spreadsheet-viewer-border` | `var(--osdk-surface-border)` | Viewer border |
1499
1499
 
1500
1500
  #### Table
1501
1501
 
1502
- | Variable | Default Value | Description |
1503
- | -------------------------------------- | ------------------------------------------ | ----------------- |
1504
- | `--osdk-excel-viewer-header-bg` | `var(--osdk-background-secondary)` | Header background |
1505
- | `--osdk-excel-viewer-header-color` | `var(--osdk-typography-color-muted)` | Header text color |
1506
- | `--osdk-excel-viewer-cell-border` | `var(--osdk-surface-border-color-default)` | Cell border color |
1507
- | `--osdk-excel-viewer-cell-padding` | `2px 6px` | Cell padding |
1508
- | `--osdk-excel-viewer-col-min-width` | `80px` | Minimum col width |
1509
- | `--osdk-excel-viewer-row-header-width` | `40px` | Row header width |
1502
+ | Variable | Default Value | Description |
1503
+ | -------------------------------------------- | ------------------------------------------ | ----------------- |
1504
+ | `--osdk-spreadsheet-viewer-header-bg` | `var(--osdk-background-secondary)` | Header background |
1505
+ | `--osdk-spreadsheet-viewer-header-color` | `var(--osdk-typography-color-muted)` | Header text color |
1506
+ | `--osdk-spreadsheet-viewer-cell-border` | `var(--osdk-surface-border-color-default)` | Cell border color |
1507
+ | `--osdk-spreadsheet-viewer-cell-padding` | `2px 6px` | Cell padding |
1508
+ | `--osdk-spreadsheet-viewer-col-min-width` | `80px` | Minimum col width |
1509
+ | `--osdk-spreadsheet-viewer-row-header-width` | `40px` | Row header width |
1510
1510
 
1511
1511
  #### Sheet Tabs
1512
1512
 
1513
- | Variable | Default Value | Description |
1514
- | --------------------------------------- | ---------------------------------- | -------------------- |
1515
- | `--osdk-excel-viewer-tab-bg` | `var(--osdk-background-secondary)` | Tab background |
1516
- | `--osdk-excel-viewer-tab-hover-bg` | `var(--osdk-background-tertiary)` | Tab hover background |
1517
- | `--osdk-excel-viewer-tab-active-bg` | `var(--osdk-background-primary)` | Active tab bg |
1518
- | `--osdk-excel-viewer-tab-border` | `var(--osdk-surface-border)` | Tab border |
1519
- | `--osdk-excel-viewer-tab-border-radius` | `4px` | Tab border radius |
1520
- | `--osdk-excel-viewer-tab-padding` | `4px 12px` | Tab padding |
1521
- | `--osdk-excel-viewer-tab-bar-padding` | `4px` | Tab bar padding |
1522
- | `--osdk-excel-viewer-tab-gap` | `2px` | Gap between tabs |
1513
+ | Variable | Default Value | Description |
1514
+ | --------------------------------------------- | ---------------------------------- | -------------------- |
1515
+ | `--osdk-spreadsheet-viewer-tab-bg` | `var(--osdk-background-secondary)` | Tab background |
1516
+ | `--osdk-spreadsheet-viewer-tab-hover-bg` | `var(--osdk-background-tertiary)` | Tab hover background |
1517
+ | `--osdk-spreadsheet-viewer-tab-active-bg` | `var(--osdk-background-primary)` | Active tab bg |
1518
+ | `--osdk-spreadsheet-viewer-tab-border` | `var(--osdk-surface-border)` | Tab border |
1519
+ | `--osdk-spreadsheet-viewer-tab-border-radius` | `4px` | Tab border radius |
1520
+ | `--osdk-spreadsheet-viewer-tab-padding` | `4px 12px` | Tab padding |
1521
+ | `--osdk-spreadsheet-viewer-tab-bar-padding` | `4px` | Tab bar padding |
1522
+ | `--osdk-spreadsheet-viewer-tab-gap` | `2px` | Gap between tabs |
1523
1523
 
1524
1524
  ### Image Viewer
1525
1525
 
@@ -45,36 +45,36 @@ import { DocumentViewer } from "@osdk/react-components/experimental/document-vie
45
45
 
46
46
  <!-- AUTOGEN:props START src=src/document-viewer/DocumentViewerApi.ts interface=DocumentViewerProps — generated by scripts/gen-props.mjs; run `pnpm --filter @osdk/react-components gen-props` -->
47
47
 
48
- | Name | Type | Description |
49
- | ----------------------- | ------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
50
- | `media` | `Media` | **Required.** The Media object to render |
51
- | `className` | `string` | Additional CSS class name for the root element Defaults to `undefined`. |
52
- | `mimeTypeOverride` | `string` | Override the auto-detected MIME type Defaults to `undefined`. |
53
- | `pdfViewerProps` | `Partial<Omit<PdfViewerProps, "src" \| "className">>` | Props forwarded to BasePdfViewer when rendering PDF Defaults to `undefined`. |
54
- | `imageViewerProps` | `Partial<Omit<BaseImageViewerProps, "src" \| "className">>` | Props forwarded to BaseImageViewer when rendering images Defaults to `undefined`. |
55
- | `videoViewerProps` | `Partial<Omit<BaseVideoViewerProps, "src" \| "className">>` | Props forwarded to BaseVideoViewer when rendering video Defaults to `undefined`. |
56
- | `tiffRendererProps` | `Partial<Omit<TiffRendererProps, "content" \| "className">>` | Props forwarded to TiffRenderer when rendering TIFF Defaults to `undefined`. |
57
- | `markdownRendererProps` | `Partial<Omit<MarkdownRendererProps, "content" \| "className">>` | Props forwarded to MarkdownRenderer when rendering markdown Defaults to `undefined`. |
58
- | `excelViewerProps` | `Partial<Omit<BaseExcelViewerProps, "spreadsheet" \| "className">>` | Props forwarded to BaseExcelViewer when rendering Excel Defaults to `undefined`. |
59
- | `emailViewerProps` | `Partial<Omit<BaseEmailViewerProps, "email" \| "className">>` | Props forwarded to BaseEmailViewer when rendering EML Defaults to `undefined`. |
60
- | `xmlViewerProps` | `Partial<Omit<BaseXmlViewerProps, "content" \| "className">>` | Props forwarded to BaseXmlViewer when rendering XML Defaults to `undefined`. |
61
- | `fileName` | `string` | File name hint for MIME type detection (e.g. "scan.tif"). Used to detect TIFF files when the MIME type is ambiguous (e.g. application/octet-stream). Defaults to `undefined`. |
62
- | `enableTiffToPdf` | `boolean` | When true, multi-page TIFF files are converted to PDF via MIO transform API Defaults to `false`. |
48
+ | Name | Type | Description |
49
+ | ------------------------ | ------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
50
+ | `media` | `Media` | **Required.** The Media object to render |
51
+ | `className` | `string` | Additional CSS class name for the root element Defaults to `undefined`. |
52
+ | `mimeTypeOverride` | `string` | Override the auto-detected MIME type Defaults to `undefined`. |
53
+ | `pdfViewerProps` | `Partial<Omit<PdfViewerProps, "src" \| "className">>` | Props forwarded to BasePdfViewer when rendering PDF Defaults to `undefined`. |
54
+ | `imageViewerProps` | `Partial<Omit<BaseImageViewerProps, "src" \| "className">>` | Props forwarded to BaseImageViewer when rendering images Defaults to `undefined`. |
55
+ | `videoViewerProps` | `Partial<Omit<BaseVideoViewerProps, "src" \| "className">>` | Props forwarded to BaseVideoViewer when rendering video Defaults to `undefined`. |
56
+ | `tiffRendererProps` | `Partial<Omit<TiffRendererProps, "content" \| "className">>` | Props forwarded to TiffRenderer when rendering TIFF Defaults to `undefined`. |
57
+ | `markdownRendererProps` | `Partial<Omit<MarkdownRendererProps, "content" \| "className">>` | Props forwarded to MarkdownRenderer when rendering markdown Defaults to `undefined`. |
58
+ | `spreadsheetViewerProps` | `Partial<Omit<BaseSpreadsheetViewerProps, "spreadsheet" \| "className">>` | Props forwarded to BaseSpreadsheetViewer when rendering a spreadsheet Defaults to `undefined`. |
59
+ | `emailViewerProps` | `Partial<Omit<BaseEmailViewerProps, "email" \| "className">>` | Props forwarded to BaseEmailViewer when rendering EML Defaults to `undefined`. |
60
+ | `xmlViewerProps` | `Partial<Omit<BaseXmlViewerProps, "content" \| "className">>` | Props forwarded to BaseXmlViewer when rendering XML Defaults to `undefined`. |
61
+ | `fileName` | `string` | File name hint for MIME type detection (e.g. "scan.tif"). Used to detect TIFF files when the MIME type is ambiguous (e.g. application/octet-stream). Defaults to `undefined`. |
62
+ | `enableTiffToPdf` | `boolean` | When true, multi-page TIFF files are converted to PDF via MIO transform API Defaults to `false`. |
63
63
 
64
64
  <!-- AUTOGEN:props END -->
65
65
 
66
66
  ## Supported MIME types
67
67
 
68
- | MIME type | Viewer |
69
- | ---------------------------------------------------------------------------------- | ---------------- |
70
- | `application/pdf` | PdfViewer |
71
- | `image/tiff` | TiffRenderer |
72
- | `image/png`, `image/jpeg`, `image/gif`, `image/svg+xml`, `image/webp`, `image/bmp` | ImageViewer |
73
- | `video/*` | VideoViewer |
74
- | `text/markdown`, `text/x-markdown` | MarkdownRenderer |
75
- | `application/vnd.openxmlformats-officedocument.spreadsheetml.sheet` | ExcelViewer |
76
- | `message/rfc822` | EmailViewer |
77
- | `application/xml`, `text/xml` | XmlViewer |
68
+ | MIME type | Viewer |
69
+ | ---------------------------------------------------------------------------------- | ----------------- |
70
+ | `application/pdf` | PdfViewer |
71
+ | `image/tiff` | TiffRenderer |
72
+ | `image/png`, `image/jpeg`, `image/gif`, `image/svg+xml`, `image/webp`, `image/bmp` | ImageViewer |
73
+ | `video/*` | VideoViewer |
74
+ | `text/markdown`, `text/x-markdown` | MarkdownRenderer |
75
+ | `application/vnd.openxmlformats-officedocument.spreadsheetml.sheet` | SpreadsheetViewer |
76
+ | `message/rfc822` | EmailViewer |
77
+ | `application/xml`, `text/xml` | XmlViewer |
78
78
 
79
79
  Unsupported MIME types — including `.doc`/`.docx` Microsoft Word documents — display a fallback message.
80
80
 
@@ -1273,7 +1273,7 @@ The ObjectTable automatically implements infinite scroll pagination, with page s
1273
1273
 
1274
1274
  ## Exporting Data
1275
1275
 
1276
- Pass a `tableRef` to obtain an `ObjectTableHandle<Q, RDPs>`. Its `getSnapshot()` method loads **all** matching rows and returns a format-agnostic snapshot of the table's columns, rows, and total match count, so you can export to CSV, Excel, JSON, the clipboard, or anywhere else. When the total row count exceeds `rowLimit` (default `10_000`), the returned promise rejects (with a string error message); otherwise every matching row is loaded.
1276
+ Pass a `tableRef` to obtain an `ObjectTableHandle<Q, RDPs>`. Its `getSnapshot()` method loads **all** matching rows and returns a format-agnostic snapshot of the table's columns, rows, and total match count, so you can export to CSV, JSON, the clipboard, or anywhere else. When the total row count exceeds `rowLimit` (default `10_000`), the returned promise rejects (with a string error message); otherwise every matching row is loaded.
1277
1277
 
1278
1278
  The snapshot reflects the table's current column visibility, ordering, and pinning. Property, derived-property, and function-backed columns are all included. Custom-rendered columns have no underlying value and are omitted. Each row exposes a `getValue(columnId)` accessor; cells are the raw value, or the thrown `Error` instance if a function-backed cell failed to load (the promise still resolves with the rest of the snapshot).
1279
1279
 
@@ -1,35 +1,35 @@
1
- # ExcelViewer
1
+ # SpreadsheetViewer
2
2
 
3
- A React component for rendering Excel (.xlsx) spreadsheets as styled HTML tables with sheet tab navigation. Uses [SheetJS (xlsx)](https://github.com/SheetJS/sheetjs) for parsing.
3
+ A React component for rendering spreadsheets (.xlsx) as styled HTML tables with sheet tab navigation. Uses [SheetJS (xlsx)](https://github.com/SheetJS/sheetjs) for parsing.
4
4
 
5
5
  ## Import
6
6
 
7
7
  ```tsx
8
8
  import {
9
- BaseExcelViewer,
10
- ExcelViewer,
11
- } from "@osdk/react-components/experimental/excel-viewer";
9
+ BaseSpreadsheetViewer,
10
+ SpreadsheetViewer,
11
+ } from "@osdk/react-components/experimental/spreadsheet-viewer";
12
12
  ```
13
13
 
14
- - **`ExcelViewer`** — Primary component for OSDK usage. Accepts an OSDK `Media` object, parses the spreadsheet, and renders it.
15
- - **`BaseExcelViewer`** — Lower-level component that accepts a pre-parsed `ParsedSpreadsheet` object.
14
+ - **`SpreadsheetViewer`** — Primary component for OSDK usage. Accepts an OSDK `Media` object, parses the spreadsheet, and renders it.
15
+ - **`BaseSpreadsheetViewer`** — Lower-level component that accepts a pre-parsed `ParsedSpreadsheet` object.
16
16
 
17
17
  ## Usage
18
18
 
19
19
  ### With OSDK Media
20
20
 
21
21
  ```tsx
22
- import { ExcelViewer } from "@osdk/react-components/experimental/excel-viewer";
22
+ import { SpreadsheetViewer } from "@osdk/react-components/experimental/spreadsheet-viewer";
23
23
 
24
- <ExcelViewer media={report.spreadsheet} />;
24
+ <SpreadsheetViewer media={report.spreadsheet} />;
25
25
  ```
26
26
 
27
27
  ### With parsed data
28
28
 
29
29
  ```tsx
30
- import { BaseExcelViewer } from "@osdk/react-components/experimental/excel-viewer";
30
+ import { BaseSpreadsheetViewer } from "@osdk/react-components/experimental/spreadsheet-viewer";
31
31
 
32
- <BaseExcelViewer
32
+ <BaseSpreadsheetViewer
33
33
  spreadsheet={{
34
34
  sheets: [
35
35
  {
@@ -47,19 +47,19 @@ import { BaseExcelViewer } from "@osdk/react-components/experimental/excel-viewe
47
47
 
48
48
  ## Props
49
49
 
50
- ### BaseExcelViewerProps
50
+ ### BaseSpreadsheetViewerProps
51
51
 
52
52
  | Prop | Type | Required | Description |
53
53
  | ------------- | ------------------- | -------- | ------------------------------------- |
54
54
  | `spreadsheet` | `ParsedSpreadsheet` | Yes | Parsed spreadsheet data |
55
55
  | `className` | `string` | No | CSS class applied to the root element |
56
56
 
57
- ### ExcelViewerMediaProps
57
+ ### SpreadsheetViewerMediaProps
58
58
 
59
- | Prop | Type | Required | Description |
60
- | ----------- | -------- | -------- | ----------------------------------------- |
61
- | `media` | `Media` | Yes | The OSDK Media object to fetch Excel from |
62
- | `className` | `string` | No | CSS class applied to the root element |
59
+ | Prop | Type | Required | Description |
60
+ | ----------- | -------- | -------- | --------------------------------------------------- |
61
+ | `media` | `Media` | Yes | The OSDK Media object to fetch the spreadsheet from |
62
+ | `className` | `string` | No | CSS class applied to the root element |
63
63
 
64
64
  ### ParsedSpreadsheet
65
65
 
@@ -85,12 +85,14 @@ import { BaseExcelViewer } from "@osdk/react-components/experimental/excel-viewe
85
85
 
86
86
  ```css
87
87
  :root {
88
- --osdk-excel-viewer-bg: var(--osdk-background-primary);
89
- --osdk-excel-viewer-border: var(--osdk-surface-border);
90
- --osdk-excel-viewer-header-bg: var(--osdk-background-secondary);
91
- --osdk-excel-viewer-cell-border: var(--osdk-surface-border-color-default);
92
- --osdk-excel-viewer-tab-bg: var(--osdk-background-secondary);
93
- --osdk-excel-viewer-tab-active-bg: var(--osdk-background-primary);
94
- --osdk-excel-viewer-tab-border: var(--osdk-surface-border);
88
+ --osdk-spreadsheet-viewer-bg: var(--osdk-background-primary);
89
+ --osdk-spreadsheet-viewer-border: var(--osdk-surface-border);
90
+ --osdk-spreadsheet-viewer-header-bg: var(--osdk-background-secondary);
91
+ --osdk-spreadsheet-viewer-cell-border: var(
92
+ --osdk-surface-border-color-default
93
+ );
94
+ --osdk-spreadsheet-viewer-tab-bg: var(--osdk-background-secondary);
95
+ --osdk-spreadsheet-viewer-tab-active-bg: var(--osdk-background-primary);
96
+ --osdk-spreadsheet-viewer-tab-border: var(--osdk-surface-border);
95
97
  }
96
98
  ```
package/docs/Welcome.md CHANGED
@@ -12,13 +12,13 @@ forms, and filters.
12
12
 
13
13
  ## Available Components
14
14
 
15
- | Component | Description |
16
- | ---------------- | ---------------------------------------------------------------------------- |
17
- | `ObjectTable` | Displays an Object Set as a sortable, paginated table with inline editing |
18
- | `FilterList` | Interactive filter panel with histogram filters, date ranges, and search |
19
- | `ActionForm` | Auto-generated form for executing Ontology Actions |
20
- | `DocumentViewer` | Unified media viewer that auto-detects file type (PDF, Excel, images, video) |
21
- | `AipAgentChat` | Chat surface backed by Foundry LMS |
15
+ | Component | Description |
16
+ | ---------------- | ----------------------------------------------------------------------------------- |
17
+ | `ObjectTable` | Displays an Object Set as a sortable, paginated table with inline editing |
18
+ | `FilterList` | Interactive filter panel with histogram filters, date ranges, and search |
19
+ | `ActionForm` | Auto-generated form for executing Ontology Actions |
20
+ | `DocumentViewer` | Unified media viewer that auto-detects file type (PDF, spreadsheets, images, video) |
21
+ | `AipAgentChat` | Chat surface backed by Foundry LMS |
22
22
 
23
23
  All components are exported under `@osdk/react-components/experimental/*`
24
24
  sub-paths (e.g. `@osdk/react-components/experimental/object-table`).
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@osdk/react-components",
3
- "version": "0.45.0",
3
+ "version": "0.46.0",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -79,15 +79,6 @@
79
79
  "require": "./build/cjs/public/experimental/email-viewer.cjs",
80
80
  "default": "./build/browser/public/experimental/email-viewer.js"
81
81
  },
82
- "./experimental/excel-viewer": {
83
- "browser": "./build/browser/public/experimental/excel-viewer.js",
84
- "import": {
85
- "types": "./build/types/public/experimental/excel-viewer.d.ts",
86
- "default": "./build/esm/public/experimental/excel-viewer.js"
87
- },
88
- "require": "./build/cjs/public/experimental/excel-viewer.cjs",
89
- "default": "./build/browser/public/experimental/excel-viewer.js"
90
- },
91
82
  "./experimental/filter-list": {
92
83
  "browser": "./build/browser/public/experimental/filter-list.js",
93
84
  "import": {
@@ -133,6 +124,15 @@
133
124
  "require": "./build/cjs/public/experimental/pdf-viewer.cjs",
134
125
  "default": "./build/browser/public/experimental/pdf-viewer.js"
135
126
  },
127
+ "./experimental/spreadsheet-viewer": {
128
+ "browser": "./build/browser/public/experimental/spreadsheet-viewer.js",
129
+ "import": {
130
+ "types": "./build/types/public/experimental/spreadsheet-viewer.d.ts",
131
+ "default": "./build/esm/public/experimental/spreadsheet-viewer.js"
132
+ },
133
+ "require": "./build/cjs/public/experimental/spreadsheet-viewer.cjs",
134
+ "default": "./build/browser/public/experimental/spreadsheet-viewer.js"
135
+ },
136
136
  "./experimental/theme": {
137
137
  "browser": "./build/browser/public/experimental/theme.js",
138
138
  "import": {
@@ -228,11 +228,11 @@
228
228
  "react-dom": "^18.3.1",
229
229
  "typescript": "~5.5.4",
230
230
  "@osdk/aip-core": "0.9.0",
231
- "@osdk/api": "2.53.0",
232
231
  "@osdk/client": "2.53.0",
232
+ "@osdk/react": "2.53.0",
233
233
  "@osdk/monorepo.api-extractor": "~0.7.0",
234
234
  "@osdk/monorepo.tsconfig": "~0.7.0",
235
- "@osdk/react": "2.53.0"
235
+ "@osdk/api": "2.53.0"
236
236
  },
237
237
  "publishConfig": {
238
238
  "access": "public"
@@ -257,7 +257,7 @@
257
257
  ],
258
258
  "type": "module",
259
259
  "scripts": {
260
- "check-attw": "attw --pack . --exclude-entrypoints ./styles.css ./experimental/action-form ./experimental/aip-agent-chat ./experimental/cbac-picker ./experimental/document-viewer ./experimental/email-viewer ./experimental/excel-viewer ./experimental/filter-list ./experimental/image-viewer ./experimental/markdown-renderer ./experimental/object-table ./experimental/pdf-viewer ./experimental/theme ./experimental/tiff-renderer ./experimental/video-viewer ./experimental/xml-viewer",
260
+ "check-attw": "attw --pack . --exclude-entrypoints ./styles.css ./experimental/action-form ./experimental/aip-agent-chat ./experimental/cbac-picker ./experimental/document-viewer ./experimental/email-viewer ./experimental/filter-list ./experimental/image-viewer ./experimental/markdown-renderer ./experimental/object-table ./experimental/pdf-viewer ./experimental/spreadsheet-viewer ./experimental/theme ./experimental/tiff-renderer ./experimental/video-viewer ./experimental/xml-viewer",
261
261
  "check-gen-props": "node scripts/gen-props.mjs --check",
262
262
  "check-spelling": "cspell --quiet .",
263
263
  "clean": "rm -rf lib dist types build tsconfig.tsbuildinfo",
@@ -1 +0,0 @@
1
- {"version":3,"file":"BaseExcelViewer.js","names":["classnames","React","useCallback","useMemo","useState","styles","columnIndexToLetter","index","letter","num","remainder","String","fromCharCode","Math","floor","SheetTable","memo","sheet","maxCols","rows","reduce","max","row","length","createElement","className","emptySheet","tableContainer","table","cornerCell","Array","from","_","i","key","columnHeader","map","rowIndex","rowHeader","cellIndex","cell","displayName","BaseExcelViewer","spreadsheet","activeSheetIndex","setActiveSheetIndex","rootClassName","container","safeIndex","min","sheets","activeSheet","handleTabClick","tabBar","name","tab","tabActive","onClick","type"],"sources":["BaseExcelViewer.tsx"],"sourcesContent":["/*\n * Copyright 2026 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 classnames from \"classnames\";\nimport React, { useCallback, useMemo, useState } from \"react\";\n\nimport type { BaseExcelViewerProps, SheetData } from \"./ExcelViewerApi.js\";\n\nimport styles from \"./BaseExcelViewer.module.css\";\n\n/**\n * Converts a 0-based column index to a spreadsheet column letter (0=A, 1=B, ..., 25=Z, 26=AA).\n */\nfunction columnIndexToLetter(index: number): string {\n let letter = \"\";\n let num = index;\n do {\n const remainder = num % 26;\n letter = String.fromCharCode(65 + remainder) + letter;\n num = Math.floor(num / 26) - 1;\n } while (num >= 0);\n return letter;\n}\n\nconst SheetTable: React.FunctionComponent<{ sheet: SheetData }> = React.memo(\n ({ sheet }) => {\n const maxCols = useMemo(\n () => sheet.rows.reduce((max, row) => Math.max(max, row.length), 0),\n [sheet.rows],\n );\n\n if (sheet.rows.length === 0) {\n return <div className={styles.emptySheet}>Empty sheet</div>;\n }\n\n return (\n <div className={styles.tableContainer}>\n <table className={styles.table}>\n <thead>\n <tr>\n <th className={styles.cornerCell} />\n {Array.from({ length: maxCols }, (_, i) => (\n <th key={i} className={styles.columnHeader}>\n {columnIndexToLetter(i)}\n </th>\n ))}\n </tr>\n </thead>\n <tbody>\n {sheet.rows.map((row, rowIndex) => (\n <tr key={rowIndex}>\n <td className={styles.rowHeader}>{rowIndex + 1}</td>\n {Array.from({ length: maxCols }, (_, cellIndex) => (\n <td key={cellIndex} className={styles.cell}>\n {row[cellIndex] ?? \"\"}\n </td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n </div>\n );\n },\n);\nSheetTable.displayName = \"SheetTable\";\n\nexport function BaseExcelViewer({\n spreadsheet,\n className,\n}: BaseExcelViewerProps): React.ReactElement {\n const [activeSheetIndex, setActiveSheetIndex] = useState(0);\n const rootClassName = classnames(styles.container, className);\n\n const safeIndex = Math.min(\n activeSheetIndex,\n Math.max(0, spreadsheet.sheets.length - 1),\n );\n const activeSheet = useMemo(\n () => spreadsheet.sheets[safeIndex],\n [spreadsheet.sheets, safeIndex],\n );\n\n const handleTabClick = useCallback((index: number) => {\n setActiveSheetIndex(index);\n }, []);\n\n return (\n <div className={rootClassName}>\n {activeSheet != null ? (\n <SheetTable sheet={activeSheet} />\n ) : (\n <div className={styles.emptySheet}>No sheets</div>\n )}\n {spreadsheet.sheets.length > 1 && (\n <div className={styles.tabBar}>\n {spreadsheet.sheets.map((sheet, index) => (\n <button\n key={sheet.name}\n className={classnames(styles.tab, {\n [styles.tabActive]: index === safeIndex,\n })}\n onClick={() => handleTabClick(index)}\n type=\"button\"\n >\n {sheet.name}\n </button>\n ))}\n </div>\n )}\n </div>\n );\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,20 +0,0 @@
1
- // CSS Module proxy for BaseExcelViewer.module.css
2
- const styles = {
3
- "container": "BaseExcelViewer-module__container___agvsuGcT",
4
- "tableContainer": "BaseExcelViewer-module__tableContainer___G2ltbmLs",
5
- "table": "BaseExcelViewer-module__table___rik9AmXW",
6
- "columnHeader": "BaseExcelViewer-module__columnHeader___GNzVoKYb",
7
- "cornerCell": "BaseExcelViewer-module__cornerCell___bf--4w7V",
8
- "rowHeader": "BaseExcelViewer-module__rowHeader___LwAO-BKT",
9
- "cell": "BaseExcelViewer-module__cell___qwidLxqb",
10
- "tabBar": "BaseExcelViewer-module__tabBar___5B88ogEW",
11
- "tab": "BaseExcelViewer-module__tab___diaQn1s5",
12
- "tabActive": "BaseExcelViewer-module__tabActive___vAyEHXgz",
13
- "emptySheet": "BaseExcelViewer-module__emptySheet___m803adgC",
14
- "loadingContainer": "BaseExcelViewer-module__loadingContainer___Gd27-g3K LoadingError-module__loadingContainer___bPqIqyjp",
15
- "errorContainer": "BaseExcelViewer-module__errorContainer___z8qexUdy LoadingError-module__errorContainer___xvYKZ55o",
16
- "spinnerIcon": "BaseExcelViewer-module__spinnerIcon___kXDWsJIN LoadingError-module__spinnerIcon___t3TNZqEL",
17
- "errorIcon": "BaseExcelViewer-module__errorIcon___iO2-BVFw LoadingError-module__errorIcon___q4oREdZx"
18
- };
19
-
20
- export default styles;
@@ -1 +0,0 @@
1
- {"version":3,"file":"ExcelViewer.js","names":["Error","ErrorIcon","Spin","classnames","React","useCallback","useMediaContents","BaseExcelViewer","parseSpreadsheetFromResponse","styles","ExcelViewer","media","className","excelViewerProps","data","spreadsheet","loading","error","rootClassName","container","createElement","loadingContainer","spinnerIcon","errorContainer","errorIcon","message","_extends"],"sources":["ExcelViewer.tsx"],"sourcesContent":["/*\n * Copyright 2026 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 { Error as ErrorIcon, Spin } from \"@blueprintjs/icons\";\nimport classnames from \"classnames\";\nimport React, { useCallback } from \"react\";\n\nimport { useMediaContents } from \"../shared/hooks/useMediaContents.js\";\nimport { BaseExcelViewer } from \"./BaseExcelViewer.js\";\nimport type {\n ExcelViewerMediaProps,\n ParsedSpreadsheet,\n} from \"./ExcelViewerApi.js\";\nimport { parseSpreadsheetFromResponse } from \"./parseSpreadsheet.js\";\n\nimport styles from \"./BaseExcelViewer.module.css\";\n\nexport function ExcelViewer({\n media,\n className,\n ...excelViewerProps\n}: ExcelViewerMediaProps): React.ReactElement {\n const {\n data: spreadsheet,\n loading,\n error,\n } = useMediaContents<ParsedSpreadsheet>(\n media,\n useCallback(parseSpreadsheetFromResponse, []),\n );\n\n const rootClassName = classnames(styles.container, className);\n\n return (\n <div className={rootClassName}>\n {loading && (\n <div className={styles.loadingContainer}>\n <Spin className={styles.spinnerIcon} />\n Loading…\n </div>\n )}\n {error != null && (\n <div className={styles.errorContainer}>\n <ErrorIcon className={styles.errorIcon} />\n Failed to load spreadsheet: {error.message}\n </div>\n )}\n {spreadsheet != null && (\n <BaseExcelViewer spreadsheet={spreadsheet} {...excelViewerProps} />\n )}\n </div>\n );\n}\n"],"mappings":";AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,SAASA,KAAK,IAAIC,SAAS,EAAEC,IAAI,QAAQ,oBAAoB;AAC7D,OAAOC,UAAU,MAAM,YAAY;AACnC,OAAOC,KAAK,IAAIC,WAAW,QAAQ,OAAO;AAE1C,SAASC,gBAAgB,QAAQ,qCAAqC;AACtE,SAASC,eAAe,QAAQ,sBAAsB;AAKtD,SAASC,4BAA4B,QAAQ,uBAAuB;AAEpE,OAAOC,MAAM,MAAM,8BAA8B;AAEjD,OAAO,SAASC,WAAWA,CAAC;EAC1BC,KAAK;EACLC,SAAS;EACT,GAAGC;AACkB,CAAC,EAAsB;EAC5C,MAAM;IACJC,IAAI,EAAEC,WAAW;IACjBC,OAAO;IACPC;EACF,CAAC,GAAGX,gBAAgB,CAClBK,KAAK,EACLN,WAAW,CAACG,4BAA4B,EAAE,EAAE,CAC9C,CAAC;EAED,MAAMU,aAAa,GAAGf,UAAU,CAACM,MAAM,CAACU,SAAS,EAAEP,SAAS,CAAC;EAE7D,oBACER,KAAA,CAAAgB,aAAA;IAAKR,SAAS,EAAEM;EAAc,GAC3BF,OAAO,iBACNZ,KAAA,CAAAgB,aAAA;IAAKR,SAAS,EAAEH,MAAM,CAACY;EAAiB,gBACtCjB,KAAA,CAAAgB,aAAA,CAAClB,IAAI;IAACU,SAAS,EAAEH,MAAM,CAACa;EAAY,CAAE,CAAC,iBAEpC,CACN,EACAL,KAAK,IAAI,IAAI,iBACZb,KAAA,CAAAgB,aAAA;IAAKR,SAAS,EAAEH,MAAM,CAACc;EAAe,gBACpCnB,KAAA,CAAAgB,aAAA,CAACnB,SAAS;IAACW,SAAS,EAAEH,MAAM,CAACe;EAAU,CAAE,CAAC,gCACd,EAACP,KAAK,CAACQ,OAChC,CACN,EACAV,WAAW,IAAI,IAAI,iBAClBX,KAAA,CAAAgB,aAAA,CAACb,eAAe,EAAAmB,QAAA;IAACX,WAAW,EAAEA;EAAY,GAAKF,gBAAgB,CAAG,CAEjE,CAAC;AAEV","ignoreList":[]}