@sproutsocial/seeds-react-table 1.0.3 → 1.0.4

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 (93) hide show
  1. package/.turbo/turbo-build.log +51 -35
  2. package/CHANGELOG.md +144 -0
  3. package/dist/Table-BzLSa3jk.d.ts +27 -0
  4. package/dist/Table-C6yuMYZA.d.mts +27 -0
  5. package/dist/{TableTypes-Dg7QrcGt.d.ts → TableTypes-DIUHC_FW.d.ts} +1 -1
  6. package/dist/{TableTypes-jS0O3bwQ.d.mts → TableTypes-i1Uir0xI.d.mts} +1 -1
  7. package/dist/esm/chunk-F73BV5I2.js +100 -0
  8. package/dist/esm/chunk-F73BV5I2.js.map +1 -0
  9. package/dist/esm/{chunk-SMHAMHIP.js → chunk-T7WTUUPA.js} +7 -7
  10. package/dist/esm/chunk-T7WTUUPA.js.map +1 -0
  11. package/dist/esm/{chunk-XJMS6762.js → chunk-WGM7UCXV.js} +6 -6
  12. package/dist/esm/chunk-WGM7UCXV.js.map +1 -0
  13. package/dist/esm/index.js +7 -97
  14. package/dist/esm/index.js.map +1 -1
  15. package/dist/esm/{tableCell.js → v1/TableCell/index.js} +2 -2
  16. package/dist/esm/{tableHeaderCell.js → v1/TableHeaderCell/index.js} +2 -2
  17. package/dist/esm/{tableRowAccordion.js → v1/TableRowAccordion/index.js} +7 -7
  18. package/dist/esm/v1/TableRowAccordion/index.js.map +1 -0
  19. package/dist/esm/v1/index.js +13 -0
  20. package/dist/esm/v1/index.js.map +1 -0
  21. package/dist/esm/v2/index.js +138 -0
  22. package/dist/esm/v2/index.js.map +1 -0
  23. package/dist/index.d.mts +7 -26
  24. package/dist/index.d.ts +7 -26
  25. package/dist/index.js +20 -20
  26. package/dist/index.js.map +1 -1
  27. package/dist/{tableCell.d.ts → v1/TableCell/index.d.mts} +2 -2
  28. package/dist/{tableCell.d.mts → v1/TableCell/index.d.ts} +2 -2
  29. package/dist/{tableCell.js → v1/TableCell/index.js} +7 -7
  30. package/dist/v1/TableCell/index.js.map +1 -0
  31. package/dist/{tableHeaderCell.d.ts → v1/TableHeaderCell/index.d.mts} +3 -3
  32. package/dist/{tableHeaderCell.d.mts → v1/TableHeaderCell/index.d.ts} +3 -3
  33. package/dist/{tableHeaderCell.js → v1/TableHeaderCell/index.js} +8 -8
  34. package/dist/v1/TableHeaderCell/index.js.map +1 -0
  35. package/dist/{tableRowAccordion.d.mts → v1/TableRowAccordion/index.d.mts} +3 -3
  36. package/dist/{tableRowAccordion.d.ts → v1/TableRowAccordion/index.d.ts} +3 -3
  37. package/dist/{tableRowAccordion.js → v1/TableRowAccordion/index.js} +12 -12
  38. package/dist/v1/TableRowAccordion/index.js.map +1 -0
  39. package/dist/v1/index.d.mts +13 -0
  40. package/dist/v1/index.d.ts +13 -0
  41. package/dist/v1/index.js +323 -0
  42. package/dist/v1/index.js.map +1 -0
  43. package/dist/v2/index.d.mts +42 -0
  44. package/dist/v2/index.d.ts +42 -0
  45. package/dist/v2/index.js +189 -0
  46. package/dist/v2/index.js.map +1 -0
  47. package/package.json +23 -12
  48. package/src/index.ts +3 -2
  49. package/src/v1/index.ts +13 -0
  50. package/src/v2/TableV2.stories.tsx +242 -0
  51. package/src/v2/TableV2.tsx +91 -0
  52. package/src/v2/TableV2Types.ts +12 -0
  53. package/src/v2/__tests__/TableV2.typetest.tsx +109 -0
  54. package/src/v2/__tests__/table-v2.test.tsx +374 -0
  55. package/src/v2/index.ts +20 -0
  56. package/src/v2/styles.ts +82 -0
  57. package/tsup.config.ts +8 -6
  58. package/dist/esm/chunk-SMHAMHIP.js.map +0 -1
  59. package/dist/esm/chunk-XJMS6762.js.map +0 -1
  60. package/dist/esm/tableRowAccordion.js.map +0 -1
  61. package/dist/tableCell.js.map +0 -1
  62. package/dist/tableHeaderCell.js.map +0 -1
  63. package/dist/tableRowAccordion.js.map +0 -1
  64. /package/dist/esm/{tableCell.js.map → v1/TableCell/index.js.map} +0 -0
  65. /package/dist/esm/{tableHeaderCell.js.map → v1/TableHeaderCell/index.js.map} +0 -0
  66. /package/src/{Table.stories.tsx → v1/Table.stories.tsx} +0 -0
  67. /package/src/{Table.tsx → v1/Table.tsx} +0 -0
  68. /package/src/{TableCell → v1/TableCell}/TableCell.stories.tsx +0 -0
  69. /package/src/{TableCell → v1/TableCell}/TableCell.tsx +0 -0
  70. /package/src/{TableCell → v1/TableCell}/TableCellTypes.ts +0 -0
  71. /package/src/{TableCell → v1/TableCell}/__tests__/TabelCell.test.tsx +0 -0
  72. /package/src/{TableCell → v1/TableCell}/__tests__/TableCell.typetest.tsx +0 -0
  73. /package/src/{TableCell → v1/TableCell}/index.ts +0 -0
  74. /package/src/{TableCell → v1/TableCell}/styles.ts +0 -0
  75. /package/src/{TableHeaderCell → v1/TableHeaderCell}/TableHeaderCell.stories.tsx +0 -0
  76. /package/src/{TableHeaderCell → v1/TableHeaderCell}/TableHeaderCell.tsx +0 -0
  77. /package/src/{TableHeaderCell → v1/TableHeaderCell}/TableHeaderCellTypes.ts +0 -0
  78. /package/src/{TableHeaderCell → v1/TableHeaderCell}/__tests__/TableHeaderCell.test.tsx +0 -0
  79. /package/src/{TableHeaderCell → v1/TableHeaderCell}/__tests__/TableHeaderCell.typetest.tsx +0 -0
  80. /package/src/{TableHeaderCell → v1/TableHeaderCell}/constants.ts +0 -0
  81. /package/src/{TableHeaderCell → v1/TableHeaderCell}/index.ts +0 -0
  82. /package/src/{TableHeaderCell → v1/TableHeaderCell}/styles.ts +0 -0
  83. /package/src/{TableRowAccordion → v1/TableRowAccordion}/TableRowAccordion.stories.tsx +0 -0
  84. /package/src/{TableRowAccordion → v1/TableRowAccordion}/TableRowAccordion.tsx +0 -0
  85. /package/src/{TableRowAccordion → v1/TableRowAccordion}/TableRowAccordionTypes.ts +0 -0
  86. /package/src/{TableRowAccordion → v1/TableRowAccordion}/__tests__/TableRowAccordion.test.tsx +0 -0
  87. /package/src/{TableRowAccordion → v1/TableRowAccordion}/__tests__/TableRowAccordion.typetest.tsx +0 -0
  88. /package/src/{TableRowAccordion → v1/TableRowAccordion}/index.ts +0 -0
  89. /package/src/{TableRowAccordion → v1/TableRowAccordion}/styles.ts +0 -0
  90. /package/src/{TableTypes.ts → v1/TableTypes.ts} +0 -0
  91. /package/src/{__tests__ → v1/__tests__}/Table.test.tsx +0 -0
  92. /package/src/{__tests__ → v1/__tests__}/Table.typetest.tsx +0 -0
  93. /package/src/{styles.ts → v1/styles.ts} +0 -0
@@ -0,0 +1,323 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/v1/index.ts
31
+ var v1_exports = {};
32
+ __export(v1_exports, {
33
+ Table: () => Table_default,
34
+ default: () => v1_default
35
+ });
36
+ module.exports = __toCommonJS(v1_exports);
37
+
38
+ // src/v1/Table.tsx
39
+ var React5 = require("react");
40
+
41
+ // src/v1/TableCell/TableCell.tsx
42
+ var React = __toESM(require("react"));
43
+
44
+ // src/v1/TableCell/styles.ts
45
+ var import_styled_components = __toESM(require("styled-components"));
46
+ var import_seeds_react_system_props = require("@sproutsocial/seeds-react-system-props");
47
+ var Container = import_styled_components.default.td`
48
+ ${(props) => props.theme.typography[200]}
49
+ font-weight: ${(props) => props.theme.fontWeights.normal};
50
+ padding: ${(props) => props.theme.space[300]};
51
+ text-align: ${(props) => props.alignment};
52
+
53
+ ${import_seeds_react_system_props.COMMON}
54
+ `;
55
+ var styles_default = Container;
56
+
57
+ // src/v1/TableCell/TableCell.tsx
58
+ var import_react = require("react");
59
+ var TableCell = class extends React.Component {
60
+ static displayName;
61
+ render() {
62
+ const {
63
+ id,
64
+ content,
65
+ colSpan,
66
+ width,
67
+ align,
68
+ scope,
69
+ children,
70
+ color,
71
+ ...rest
72
+ } = this.props;
73
+ return /* @__PURE__ */ (0, import_react.createElement)(
74
+ styles_default,
75
+ {
76
+ ...rest,
77
+ as: scope ? "th" : "td",
78
+ scope: scope ? scope : void 0,
79
+ alignment: align || "left",
80
+ key: id,
81
+ colSpan,
82
+ width,
83
+ "data-qa-table-cell": "",
84
+ color
85
+ },
86
+ children || content
87
+ );
88
+ }
89
+ };
90
+ var TableCell_default = TableCell;
91
+
92
+ // src/v1/TableCell/TableCellTypes.ts
93
+ var React2 = require("react");
94
+
95
+ // src/v1/TableCell/index.ts
96
+ var TableCell_default2 = TableCell_default;
97
+
98
+ // src/v1/TableHeaderCell/TableHeaderCell.tsx
99
+ var React3 = __toESM(require("react"));
100
+ var import_seeds_react_icon = __toESM(require("@sproutsocial/seeds-react-icon"));
101
+
102
+ // src/v1/TableHeaderCell/styles.ts
103
+ var import_styled_components2 = __toESM(require("styled-components"));
104
+ var import_seeds_react_system_props2 = require("@sproutsocial/seeds-react-system-props");
105
+ var Container2 = import_styled_components2.default.th`
106
+ ${(props) => props.theme.typography[100]}
107
+ font-weight: ${(props) => props.theme.fontWeights.semibold};
108
+ padding: ${(props) => props.theme.space[300]};
109
+ text-align: ${(props) => props.alignment};
110
+
111
+ ${(props) => props.sortable && import_styled_components2.css`
112
+ position: relative;
113
+ cursor: pointer;
114
+ `}
115
+
116
+ ${import_seeds_react_system_props2.COMMON}
117
+ `;
118
+ var SortIcon = import_styled_components2.default.span`
119
+ position: absolute;
120
+ top: 50%;
121
+ transform: translateY(-50%);
122
+ font-size: 0;
123
+ padding: 0 ${(props) => props.theme.space[200]};
124
+ `;
125
+ var UnstyledButton = import_styled_components2.default.button`
126
+ background: none;
127
+ border: none;
128
+ color: inherit;
129
+ font: inherit;
130
+ line-height: normal;
131
+ overflow: visible;
132
+ padding: 0;
133
+ -webkit-appearance: none;
134
+ -moz-appearance: none;
135
+ cursor: pointer;
136
+ `;
137
+ var styles_default2 = Container2;
138
+
139
+ // src/v1/TableHeaderCell/constants.ts
140
+ var SORT_DIRECTIONS = {
141
+ ASC: "ASC",
142
+ DESC: "DESC"
143
+ };
144
+
145
+ // src/v1/TableHeaderCell/TableHeaderCell.tsx
146
+ var import_jsx_runtime = require("react/jsx-runtime");
147
+ var import_react2 = require("react");
148
+ var TableHeaderCell = class extends React3.Component {
149
+ static displayName;
150
+ getSortIcon = (isSorted, ariaSortDirection) => {
151
+ const { sortDirection } = this.props;
152
+ let iconName = "caret-up-down-outline";
153
+ if (isSorted && sortDirection === SORT_DIRECTIONS.ASC) {
154
+ iconName = "caret-up-solid";
155
+ } else if (isSorted && sortDirection === SORT_DIRECTIONS.DESC) {
156
+ iconName = "caret-down-solid";
157
+ }
158
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(SortIcon, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_seeds_react_icon.default, { size: "mini", name: iconName, "aria-label": ariaSortDirection }) });
159
+ };
160
+ // @ts-note: If this is set to an HTMLButtonElement event, then the `Container` freaks out
161
+ handleClick = (e) => {
162
+ const { onClick, onSort, isSortable, id } = this.props;
163
+ if (onClick || isSortable) {
164
+ e.preventDefault();
165
+ }
166
+ if (onClick) {
167
+ onClick(e);
168
+ return;
169
+ }
170
+ if (!isSortable || !onSort) return;
171
+ onSort(id);
172
+ };
173
+ render() {
174
+ const {
175
+ id,
176
+ content,
177
+ colSpan,
178
+ width,
179
+ align,
180
+ isSortable,
181
+ sortId,
182
+ sortDirection,
183
+ children,
184
+ /* eslint-disable @typescript-eslint/no-unused-vars */
185
+ shouldTruncate,
186
+ onSort,
187
+ onClick,
188
+ /* eslint-enable @typescript-eslint/no-unused-vars */
189
+ color,
190
+ ...rest
191
+ } = this.props;
192
+ const isSorted = sortId === id;
193
+ const ariaSort = isSorted ? sortDirection === SORT_DIRECTIONS.ASC ? "ascending" : "descending" : void 0;
194
+ const buttonProps = isSortable ? {
195
+ role: "button",
196
+ onClick: this.handleClick
197
+ } : {};
198
+ const scope = colSpan ? "colgroup" : "col";
199
+ return /* @__PURE__ */ (0, import_react2.createElement)(
200
+ styles_default2,
201
+ {
202
+ ...rest,
203
+ key: id,
204
+ alignment: align || "left",
205
+ sortable: isSortable,
206
+ colSpan,
207
+ scope,
208
+ width,
209
+ onClick: this.handleClick,
210
+ "data-tableheadercell-sortable": isSortable,
211
+ "data-qa-table-header-cell": "",
212
+ "data-qa-table-header-cell-sortdirection": sortDirection,
213
+ color,
214
+ "aria-sort": ariaSort
215
+ },
216
+ isSortable ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(UnstyledButton, { ...buttonProps, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { "aria-live": "polite", role: "status", children: [
217
+ children || content,
218
+ !children && this.getSortIcon(id === sortId, ariaSort)
219
+ ] }) }) : children || content
220
+ );
221
+ }
222
+ };
223
+ var TableHeaderCell_default = TableHeaderCell;
224
+
225
+ // src/v1/TableHeaderCell/TableHeaderCellTypes.ts
226
+ var React4 = require("react");
227
+
228
+ // src/v1/TableHeaderCell/index.ts
229
+ var TableHeaderCell_default2 = TableHeaderCell_default;
230
+
231
+ // src/v1/styles.ts
232
+ var import_styled_components3 = __toESM(require("styled-components"));
233
+ var import_seeds_react_system_props3 = require("@sproutsocial/seeds-react-system-props");
234
+ var Container3 = import_styled_components3.default.table`
235
+ width: 100%;
236
+ border-collapse: collapse;
237
+
238
+ thead {
239
+ vertical-align: bottom;
240
+ }
241
+
242
+ tr,
243
+ thead {
244
+ border-bottom: 1px solid
245
+ ${(props) => props.theme.colors.container.border.base};
246
+ }
247
+
248
+ ${import_seeds_react_system_props3.COMMON}
249
+ `;
250
+ var styles_default3 = Container3;
251
+
252
+ // src/v1/Table.tsx
253
+ var import_jsx_runtime2 = require("react/jsx-runtime");
254
+ var import_react3 = require("react");
255
+ var renderTableRow = (row) => {
256
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("tbody", { "data-qa-table-row": "", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("tr", { children: row.cells.map((td) => {
257
+ return /* @__PURE__ */ (0, import_react3.createElement)(TableCell_default2, { ...td, key: td.id });
258
+ }) }) }, row.id);
259
+ };
260
+ var Table = ({
261
+ head = [],
262
+ rows = [],
263
+ onSort,
264
+ sortId,
265
+ sortDirection,
266
+ rowRender,
267
+ children,
268
+ color,
269
+ ...rest
270
+ }) => {
271
+ if (children) {
272
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(styles_default3, { ...rest, "data-qa-table": "", children });
273
+ }
274
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
275
+ styles_default3,
276
+ {
277
+ ...rest,
278
+ "data-qa-table": "",
279
+ color,
280
+ children: [
281
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("colgroup", { children: head.map(({ id, colSpan = 1 }) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("col", { span: colSpan }, id)) }),
282
+ head.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("thead", { "data-qa-table-header": "", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("tr", { children: head.map(({ color: color2, ...th }) => {
283
+ return /* @__PURE__ */ (0, import_react3.createElement)(
284
+ TableHeaderCell_default2,
285
+ {
286
+ ...th,
287
+ key: th.id,
288
+ onSort,
289
+ sortId,
290
+ sortDirection,
291
+ color: color2
292
+ }
293
+ );
294
+ }) }) }),
295
+ rows.map((row) => {
296
+ return rowRender ? rowRender(row) : renderTableRow(row);
297
+ })
298
+ ]
299
+ }
300
+ );
301
+ };
302
+ var TableHead = ({ children, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("thead", { ...props, children });
303
+ var TableBody = ({ children, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("tbody", { ...props, children });
304
+ var TableRow = ({ children, ...props }) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("tr", { ...props, children });
305
+ TableHead.displayName = "Table.TableHead";
306
+ TableBody.displayName = "Table.TableBody";
307
+ TableRow.displayName = "Table.TableRow";
308
+ TableHeaderCell_default2.displayName = "Table.HeaderCell";
309
+ TableCell_default2.displayName = "Table.Cell";
310
+ Table.TableHead = TableHead;
311
+ Table.TableBody = TableBody;
312
+ Table.TableRow = TableRow;
313
+ Table.HeaderCell = TableHeaderCell_default2;
314
+ Table.Cell = TableCell_default2;
315
+ var Table_default = Table;
316
+
317
+ // src/v1/index.ts
318
+ var v1_default = Table_default;
319
+ // Annotate the CommonJS export names for ESM import in node:
320
+ 0 && (module.exports = {
321
+ Table
322
+ });
323
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/v1/index.ts","../../src/v1/Table.tsx","../../src/v1/TableCell/TableCell.tsx","../../src/v1/TableCell/styles.ts","../../src/v1/TableCell/TableCellTypes.ts","../../src/v1/TableCell/index.ts","../../src/v1/TableHeaderCell/TableHeaderCell.tsx","../../src/v1/TableHeaderCell/styles.ts","../../src/v1/TableHeaderCell/constants.ts","../../src/v1/TableHeaderCell/TableHeaderCellTypes.ts","../../src/v1/TableHeaderCell/index.ts","../../src/v1/styles.ts"],"sourcesContent":["// V1 Table - Explicit exports for optimal tree shaking\nimport Table from \"./Table\";\n\nexport default Table;\nexport { Table };\n\n// Explicit type exports\nexport type {\n TypeTableProps,\n TypeTableRow,\n TypeTableHeadProp,\n TypePassthroughProps,\n} from \"./TableTypes\";\n","import * as React from \"react\";\nimport TableCell from \"./TableCell\";\nimport TableHeaderCell from \"./TableHeaderCell\";\nimport Container from \"./styles\";\nimport type {\n TypePassthroughProps,\n TypeTableProps,\n TypeTableRow,\n} from \"./TableTypes\";\n\nconst renderTableRow = (row: TypeTableRow) => {\n return (\n <tbody key={row.id} data-qa-table-row=\"\">\n <tr>\n {row.cells.map((td) => {\n return <TableCell {...td} key={td.id} />;\n })}\n </tr>\n </tbody>\n );\n};\n\n/**\n * The table component assist in rendering tabular data.\n */\nexport const Table = ({\n head = [],\n rows = [],\n onSort,\n sortId,\n sortDirection,\n rowRender,\n children,\n color,\n ...rest\n}: TypeTableProps) => {\n if (children) {\n return (\n <Container {...rest} data-qa-table=\"\">\n {children}\n </Container>\n );\n }\n\n return (\n <Container\n {...rest}\n data-qa-table=\"\"\n // TODO: fix this type since `color` should be valid here. TS can't resolve the correct type.\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n color={color}\n >\n <colgroup>\n {head.map(({ id, colSpan = 1 }) => (\n <col key={id} span={colSpan} />\n ))}\n </colgroup>\n {head.length > 0 && (\n <thead data-qa-table-header=\"\">\n <tr>\n {head.map(({ color, ...th }) => {\n return (\n <TableHeaderCell\n {...th}\n key={th.id}\n onSort={onSort}\n sortId={sortId}\n sortDirection={sortDirection}\n // TODO: fix this type since `color` should be valid here. TS can't resolve the correct type.\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n color={color}\n />\n );\n })}\n </tr>\n </thead>\n )}\n {rows.map((row) => {\n return rowRender ? rowRender(row) : renderTableRow(row);\n })}\n </Container>\n );\n};\n\nexport const TableHead = ({ children, ...props }: TypePassthroughProps) => (\n <thead {...props}>{children}</thead>\n);\n\nexport const TableBody = ({ children, ...props }: TypePassthroughProps) => (\n <tbody {...props}>{children}</tbody>\n);\n\nexport const TableRow = ({ children, ...props }: TypePassthroughProps) => (\n <tr {...props}>{children}</tr>\n);\n\nTableHead.displayName = \"Table.TableHead\";\nTableBody.displayName = \"Table.TableBody\";\nTableRow.displayName = \"Table.TableRow\";\nTableHeaderCell.displayName = \"Table.HeaderCell\";\nTableCell.displayName = \"Table.Cell\";\n\nTable.TableHead = TableHead;\nTable.TableBody = TableBody;\nTable.TableRow = TableRow;\nTable.HeaderCell = TableHeaderCell;\nTable.Cell = TableCell;\n\nexport default Table;\n","import * as React from \"react\";\nimport Container from \"./styles\";\nimport type { TypeTableCellProps } from \"./TableCellTypes\";\n\n/**\n * The table cell component is for rendering table cells and is meant to be used with the table component.\n */\nexport class TableCell extends React.Component<TypeTableCellProps> {\n static displayName: string;\n override render() {\n const {\n id,\n content,\n colSpan,\n width,\n align,\n scope,\n children,\n color,\n ...rest\n } = this.props;\n return (\n <Container\n {...rest}\n // If the `scope` property is passed we must render the element as a <th>\n as={scope ? \"th\" : \"td\"}\n scope={scope ? scope : undefined}\n alignment={align || \"left\"}\n key={id}\n colSpan={colSpan}\n width={width}\n data-qa-table-cell=\"\"\n // TODO: fix this type since `color` should be valid here. TS can't resolve the correct type.\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n color={color}\n >\n {children || content}\n </Container>\n );\n }\n}\n\nexport default TableCell;\n","import styled from \"styled-components\";\nimport { COMMON } from \"@sproutsocial/seeds-react-system-props\";\nimport type { TypeTableCellProps } from \"./TableCellTypes\";\n\nconst Container = styled.td<{\n alignment: TypeTableCellProps[\"align\"];\n}>`\n ${(props) => props.theme.typography[200]}\n font-weight: ${(props) => props.theme.fontWeights.normal};\n padding: ${(props) => props.theme.space[300]};\n text-align: ${(props) => props.alignment};\n\n ${COMMON}\n`;\n\nexport default Container;\n","import * as React from \"react\";\nimport type { TypeSystemCommonProps } from \"@sproutsocial/seeds-react-system-props\";\n\nexport interface TypeTableCellProps\n extends TypeSystemCommonProps,\n Omit<\n React.ComponentPropsWithoutRef<\"td\">,\n keyof TypeSystemCommonProps | \"content\"\n > {\n /** Table Cell Id */\n id: string;\n\n /** Content is deprecated. Please use children instead. Content to be render */\n content?: React.ReactNode;\n\n /** Controls the colSpan attribute (optional) */\n colSpan?: number;\n\n /** Controls the width attribute (optional) */\n width?: number;\n\n /** Controls the CSS text-align property (optional) */\n align?: \"left\" | \"right\" | \"center\" | \"justify\";\n\n /** Controls the scope attribute. If set, will change the element from a <td> to a <th>. https://developer.mozilla.org/en-US/docs/Web/HTML/Element/th#scope (optional) */\n scope?: \"row\" | \"col\" | \"rowGroup\" | \"colGroup\";\n\n /** Children to be rendered */\n children?: React.ReactNode;\n}\n","import TableCell from \"./TableCell\";\n\nexport default TableCell;\nexport { TableCell };\nexport * from \"./TableCellTypes\";\n","import * as React from \"react\";\nimport Icon, { type TypeIconName } from \"@sproutsocial/seeds-react-icon\";\nimport Container, { SortIcon, UnstyledButton } from \"./styles\";\nimport { SORT_DIRECTIONS } from \"./constants\";\nimport type { TypeTableHeaderCellProps } from \"./TableHeaderCellTypes\";\n\nexport class TableHeaderCell extends React.Component<TypeTableHeaderCellProps> {\n static displayName: string;\n\n getSortIcon = (\n isSorted: boolean,\n ariaSortDirection: \"ascending\" | \"descending\" | undefined\n ) => {\n const { sortDirection } = this.props;\n let iconName: TypeIconName = \"caret-up-down-outline\";\n\n if (isSorted && sortDirection === SORT_DIRECTIONS.ASC) {\n iconName = \"caret-up-solid\";\n } else if (isSorted && sortDirection === SORT_DIRECTIONS.DESC) {\n iconName = \"caret-down-solid\";\n }\n\n return (\n <SortIcon>\n <Icon size=\"mini\" name={iconName} aria-label={ariaSortDirection} />\n </SortIcon>\n );\n };\n\n // @ts-note: If this is set to an HTMLButtonElement event, then the `Container` freaks out\n handleClick = (\n e: React.MouseEvent<HTMLTableCellElement | HTMLButtonElement>\n ) => {\n const { onClick, onSort, isSortable, id } = this.props;\n\n if (onClick || isSortable) {\n e.preventDefault();\n }\n\n if (onClick) {\n // @ts-note: Right now the `onClick` is incorrectly set to consume an HTMLButtonElement event\n onClick(e as unknown as React.MouseEvent<HTMLButtonElement>);\n return;\n }\n\n if (!isSortable || !onSort) return;\n onSort(id);\n };\n\n override render() {\n const {\n id,\n content,\n colSpan,\n width,\n align,\n isSortable,\n sortId,\n sortDirection,\n children,\n /* eslint-disable @typescript-eslint/no-unused-vars */\n shouldTruncate,\n onSort,\n onClick,\n /* eslint-enable @typescript-eslint/no-unused-vars */\n color,\n ...rest\n } = this.props;\n\n const isSorted = sortId === id;\n const ariaSort = isSorted\n ? sortDirection === SORT_DIRECTIONS.ASC\n ? \"ascending\"\n : \"descending\"\n : undefined;\n\n const buttonProps = isSortable\n ? {\n role: \"button\",\n onClick: this.handleClick,\n }\n : {};\n\n const scope = colSpan ? \"colgroup\" : \"col\";\n\n return (\n <Container\n {...rest}\n key={id}\n alignment={align || \"left\"}\n sortable={isSortable}\n colSpan={colSpan}\n scope={scope}\n width={width}\n onClick={this.handleClick}\n data-tableheadercell-sortable={isSortable}\n data-qa-table-header-cell=\"\"\n data-qa-table-header-cell-sortdirection={sortDirection}\n // TODO: fix this type since `color` should be valid here. TS can't resolve the correct type.\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n color={color}\n aria-sort={ariaSort}\n >\n {isSortable ? (\n <UnstyledButton {...buttonProps}>\n <div aria-live=\"polite\" role=\"status\">\n {children || content}\n {!children && this.getSortIcon(id === sortId, ariaSort)}\n </div>\n </UnstyledButton>\n ) : (\n children || content\n )}\n </Container>\n );\n }\n}\n\nexport default TableHeaderCell;\n","import styled, { css } from \"styled-components\";\nimport { COMMON } from \"@sproutsocial/seeds-react-system-props\";\nimport type { TypeTableHeaderCellProps } from \"./TableHeaderCellTypes\";\n\nconst Container = styled.th<{\n sortable?: boolean;\n alignment: TypeTableHeaderCellProps[\"align\"];\n width: TypeTableHeaderCellProps[\"width\"];\n}>`\n ${(props) => props.theme.typography[100]}\n font-weight: ${(props) => props.theme.fontWeights.semibold};\n padding: ${(props) => props.theme.space[300]};\n text-align: ${(props) => props.alignment};\n\n ${(props) =>\n props.sortable &&\n css`\n position: relative;\n cursor: pointer;\n `}\n\n ${COMMON}\n`;\n\nexport const SortIcon = styled.span`\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n font-size: 0;\n padding: 0 ${(props) => props.theme.space[200]};\n`;\n\nexport const UnstyledButton = styled.button`\n background: none;\n border: none;\n color: inherit;\n font: inherit;\n line-height: normal;\n overflow: visible;\n padding: 0;\n -webkit-appearance: none;\n -moz-appearance: none;\n cursor: pointer;\n`;\n\nexport default Container;\n","export const SORT_DIRECTIONS = {\n ASC: \"ASC\",\n DESC: \"DESC\",\n} as const;\n","import * as React from \"react\";\nimport type { TypeTableCellProps } from \"../TableCell/TableCellTypes\";\nimport { SORT_DIRECTIONS } from \"./constants\";\n\nexport type TypeEnumSortDirections = keyof typeof SORT_DIRECTIONS;\n\nexport interface TypeTableHeaderCellProps\n extends Omit<TypeTableCellProps, \"onClick\"> {\n /** Legacy Deteremines if a table column is sortable (optional) */\n isSortable?: boolean;\n\n /** Truncates text into a singular line with ellipsis (optional) */\n shouldTruncate?: boolean;\n\n /** Legacy: Callback for Sorting Table Columns (optional) */\n onSort?: (id: string) => void;\n\n /** Legacy: Controls which column is being sorted (optional) */\n sortId?: string;\n\n /** Legacy: Controls the current sort direction (optional) */\n sortDirection?: TypeEnumSortDirections;\n\n /** Callback for Click Events. If Included will override onSort prop */\n onClick?: (e: React.SyntheticEvent<HTMLButtonElement>) => void;\n}\n","import TableHeaderCell from \"./TableHeaderCell\";\n\nexport default TableHeaderCell;\nexport { TableHeaderCell };\nexport * from \"./TableHeaderCellTypes\";\nexport * from \"./constants\";\n","import styled from \"styled-components\";\nimport { COMMON } from \"@sproutsocial/seeds-react-system-props\";\n\nconst Container = styled.table`\n width: 100%;\n border-collapse: collapse;\n\n thead {\n vertical-align: bottom;\n }\n\n tr,\n thead {\n border-bottom: 1px solid\n ${(props) => props.theme.colors.container.border.base};\n }\n\n ${COMMON}\n`;\n\nexport default Container;\n"],"mappings":"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","names":["React","styled","React","TableCell_default","React","import_styled_components","import_seeds_react_system_props","Container","styled","styles_default","import_react","Icon","styles_default","React","TableHeaderCell_default","import_styled_components","import_seeds_react_system_props","Container","styled","styles_default","import_jsx_runtime","import_react","TableCell_default","styles_default","color","TableHeaderCell_default"]}
@@ -0,0 +1,42 @@
1
+ import * as styled_components from 'styled-components';
2
+ import * as react_jsx_runtime from 'react/jsx-runtime';
3
+ import * as React from 'react';
4
+ import React__default from 'react';
5
+
6
+ type ColumnHeader = string | React.ReactNode;
7
+ type RowData = Array<string | React.ReactNode>;
8
+ interface TableV2Props {
9
+ caption: string;
10
+ displayCaption?: boolean;
11
+ columns: ColumnHeader[];
12
+ data: RowData[];
13
+ }
14
+
15
+ declare const useTableContainerId: () => string | null;
16
+ declare const TableWrapper: ({ children, ...rest }: {
17
+ children: React__default.ReactElement;
18
+ }) => react_jsx_runtime.JSX.Element;
19
+ declare const TableV2: ({ caption, displayCaption, columns, data, }: TableV2Props) => react_jsx_runtime.JSX.Element;
20
+ declare const Table: ({ caption, displayCaption, columns, data, }: TableV2Props) => react_jsx_runtime.JSX.Element;
21
+ declare const TableRoot: styled_components.StyledComponent<"table", any, {}, never>;
22
+ declare const TableCaption: styled_components.StyledComponent<"caption", any, {
23
+ isVisible: boolean;
24
+ }, never>;
25
+ declare const TableHeader: styled_components.StyledComponent<"thead", any, {}, never>;
26
+ declare const TableBody: styled_components.StyledComponent<"tbody", any, {}, never>;
27
+ declare const TableRow: styled_components.StyledComponent<"tr", any, {}, never>;
28
+ declare const TableHeaderCell: styled_components.StyledComponent<"th", any, {}, never>;
29
+ declare const TableCell: styled_components.StyledComponent<"td", any, {}, never>;
30
+
31
+ declare const StyledTableV2Container: styled_components.StyledComponent<"div", any, {}, never>;
32
+ declare const StyledTableV2: styled_components.StyledComponent<"table", any, {}, never>;
33
+ declare const StyledCaption: styled_components.StyledComponent<"caption", any, {
34
+ isVisible: boolean;
35
+ }, never>;
36
+ declare const StyledTableHeader: styled_components.StyledComponent<"thead", any, {}, never>;
37
+ declare const StyledTableBody: styled_components.StyledComponent<"tbody", any, {}, never>;
38
+ declare const StyledTableRow: styled_components.StyledComponent<"tr", any, {}, never>;
39
+ declare const StyledTableHeaderCell: styled_components.StyledComponent<"th", any, {}, never>;
40
+ declare const StyledTableCell: styled_components.StyledComponent<"td", any, {}, never>;
41
+
42
+ export { type ColumnHeader, type RowData, StyledCaption, StyledTableBody, StyledTableCell, StyledTableHeader, StyledTableHeaderCell, StyledTableRow, StyledTableV2, StyledTableV2Container, Table, TableBody, TableCaption, TableCell, TableHeader, TableHeaderCell, TableRoot, TableRow, TableV2, type TableV2Props, TableWrapper, useTableContainerId };
@@ -0,0 +1,42 @@
1
+ import * as styled_components from 'styled-components';
2
+ import * as react_jsx_runtime from 'react/jsx-runtime';
3
+ import * as React from 'react';
4
+ import React__default from 'react';
5
+
6
+ type ColumnHeader = string | React.ReactNode;
7
+ type RowData = Array<string | React.ReactNode>;
8
+ interface TableV2Props {
9
+ caption: string;
10
+ displayCaption?: boolean;
11
+ columns: ColumnHeader[];
12
+ data: RowData[];
13
+ }
14
+
15
+ declare const useTableContainerId: () => string | null;
16
+ declare const TableWrapper: ({ children, ...rest }: {
17
+ children: React__default.ReactElement;
18
+ }) => react_jsx_runtime.JSX.Element;
19
+ declare const TableV2: ({ caption, displayCaption, columns, data, }: TableV2Props) => react_jsx_runtime.JSX.Element;
20
+ declare const Table: ({ caption, displayCaption, columns, data, }: TableV2Props) => react_jsx_runtime.JSX.Element;
21
+ declare const TableRoot: styled_components.StyledComponent<"table", any, {}, never>;
22
+ declare const TableCaption: styled_components.StyledComponent<"caption", any, {
23
+ isVisible: boolean;
24
+ }, never>;
25
+ declare const TableHeader: styled_components.StyledComponent<"thead", any, {}, never>;
26
+ declare const TableBody: styled_components.StyledComponent<"tbody", any, {}, never>;
27
+ declare const TableRow: styled_components.StyledComponent<"tr", any, {}, never>;
28
+ declare const TableHeaderCell: styled_components.StyledComponent<"th", any, {}, never>;
29
+ declare const TableCell: styled_components.StyledComponent<"td", any, {}, never>;
30
+
31
+ declare const StyledTableV2Container: styled_components.StyledComponent<"div", any, {}, never>;
32
+ declare const StyledTableV2: styled_components.StyledComponent<"table", any, {}, never>;
33
+ declare const StyledCaption: styled_components.StyledComponent<"caption", any, {
34
+ isVisible: boolean;
35
+ }, never>;
36
+ declare const StyledTableHeader: styled_components.StyledComponent<"thead", any, {}, never>;
37
+ declare const StyledTableBody: styled_components.StyledComponent<"tbody", any, {}, never>;
38
+ declare const StyledTableRow: styled_components.StyledComponent<"tr", any, {}, never>;
39
+ declare const StyledTableHeaderCell: styled_components.StyledComponent<"th", any, {}, never>;
40
+ declare const StyledTableCell: styled_components.StyledComponent<"td", any, {}, never>;
41
+
42
+ export { type ColumnHeader, type RowData, StyledCaption, StyledTableBody, StyledTableCell, StyledTableHeader, StyledTableHeaderCell, StyledTableRow, StyledTableV2, StyledTableV2Container, Table, TableBody, TableCaption, TableCell, TableHeader, TableHeaderCell, TableRoot, TableRow, TableV2, type TableV2Props, TableWrapper, useTableContainerId };
@@ -0,0 +1,189 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/v2/index.ts
31
+ var v2_exports = {};
32
+ __export(v2_exports, {
33
+ StyledCaption: () => StyledCaption,
34
+ StyledTableBody: () => StyledTableBody,
35
+ StyledTableCell: () => StyledTableCell,
36
+ StyledTableHeader: () => StyledTableHeader,
37
+ StyledTableHeaderCell: () => StyledTableHeaderCell,
38
+ StyledTableRow: () => StyledTableRow,
39
+ StyledTableV2: () => StyledTableV2,
40
+ StyledTableV2Container: () => StyledTableV2Container,
41
+ Table: () => Table,
42
+ TableBody: () => TableBody,
43
+ TableCaption: () => TableCaption,
44
+ TableCell: () => TableCell,
45
+ TableHeader: () => TableHeader,
46
+ TableHeaderCell: () => TableHeaderCell,
47
+ TableRoot: () => TableRoot,
48
+ TableRow: () => TableRow,
49
+ TableV2: () => TableV2_default,
50
+ TableWrapper: () => TableWrapper,
51
+ useTableContainerId: () => useTableContainerId
52
+ });
53
+ module.exports = __toCommonJS(v2_exports);
54
+
55
+ // src/v2/TableV2.tsx
56
+ var import_react = __toESM(require("react"));
57
+
58
+ // src/v2/TableV2Types.ts
59
+ var React = require("react");
60
+
61
+ // src/v2/styles.ts
62
+ var import_styled_components = __toESM(require("styled-components"));
63
+ var import_seeds_react_system_props = require("@sproutsocial/seeds-react-system-props");
64
+ var StyledTableV2Container = import_styled_components.default.div`
65
+ ${import_seeds_react_system_props.COMMON}
66
+ ${import_seeds_react_system_props.LAYOUT}
67
+ overflow-x: auto;
68
+ max-width: 100%;
69
+ `;
70
+ var StyledTableV2 = import_styled_components.default.table`
71
+ width: 100%;
72
+ border-collapse: collapse;
73
+ color: ${(props) => props.theme.colors.text.body};
74
+ font-family: ${(props) => props.theme.fontFamily};
75
+ `;
76
+ StyledTableV2.displayName = "TableV2.Table";
77
+ var StyledCaption = import_styled_components.default.caption`
78
+ ${import_seeds_react_system_props.TYPOGRAPHY}
79
+ text-align: left;
80
+ ${(props) => props.theme.typography[400]}
81
+ font-weight: ${(props) => props.theme.fontWeights.semibold};
82
+ padding: ${(props) => props.theme.space[300]};
83
+ margin-top: ${(props) => props.theme.space[200]};
84
+ ${({ isVisible }) => !isVisible && import_styled_components.css`
85
+ position: absolute;
86
+ width: 1px;
87
+ height: 1px;
88
+ padding: 0;
89
+ margin: -1px;
90
+ overflow: hidden;
91
+ clip: rect(0, 0, 0, 0);
92
+ border: 0;
93
+ `}
94
+ `;
95
+ StyledCaption.displayName = "TableV2.Caption";
96
+ var StyledTableHeader = import_styled_components.default.thead`
97
+ vertical-align: bottom;
98
+ border-bottom: 1px solid
99
+ ${(props) => props.theme.colors.container.border.base};
100
+ `;
101
+ StyledTableHeader.displayName = "TableV2.TableHeader";
102
+ var StyledTableBody = import_styled_components.default.tbody``;
103
+ StyledTableBody.displayName = "TableV2.TableBody";
104
+ var StyledTableRow = import_styled_components.default.tr`
105
+ border-bottom: 1px solid
106
+ ${(props) => props.theme.colors.container.border.base};
107
+ `;
108
+ StyledTableRow.displayName = "TableV2.TableRow";
109
+ var StyledTableHeaderCell = import_styled_components.default.th`
110
+ ${(props) => props.theme.typography[100]}
111
+ font-weight: ${(props) => props.theme.fontWeights.semibold};
112
+ padding: ${(props) => props.theme.space[300]};
113
+ text-align: left;
114
+ `;
115
+ StyledTableHeaderCell.displayName = "TableV2.TableHeaderCell";
116
+ var StyledTableCell = import_styled_components.default.td`
117
+ ${(props) => props.theme.typography[200]}
118
+ font-weight: ${(props) => props.theme.fontWeights.normal};
119
+ padding: ${(props) => props.theme.space[300]};
120
+ text-align: left;
121
+ `;
122
+ StyledTableCell.displayName = "TableV2.TableCell";
123
+
124
+ // src/v2/TableV2.tsx
125
+ var import_jsx_runtime = require("react/jsx-runtime");
126
+ var TableContainerContext = import_react.default.createContext(null);
127
+ var useTableContainerId = () => import_react.default.useContext(TableContainerContext);
128
+ var TableWrapper = ({
129
+ children,
130
+ ...rest
131
+ }) => {
132
+ const containerId = (0, import_react.useId)();
133
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TableContainerContext.Provider, { value: containerId, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
134
+ StyledTableV2Container,
135
+ {
136
+ role: "region",
137
+ tabIndex: 0,
138
+ id: containerId,
139
+ "aria-labelledby": containerId,
140
+ ...rest,
141
+ children
142
+ }
143
+ ) });
144
+ };
145
+ var TableV2 = ({
146
+ caption,
147
+ displayCaption = true,
148
+ columns,
149
+ data
150
+ }) => {
151
+ const containerId = useTableContainerId();
152
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(TableWrapper, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(StyledTableV2, { children: [
153
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StyledCaption, { id: containerId ?? void 0, isVisible: displayCaption, children: caption }),
154
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StyledTableHeader, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StyledTableRow, { children: columns.map((column, index) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StyledTableHeaderCell, { scope: "col", children: column }, index)) }) }),
155
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StyledTableBody, { children: data.map((row, rowIndex) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StyledTableRow, { children: row.map((cell, cellIndex) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(StyledTableCell, { children: cell }, cellIndex)) }, rowIndex)) })
156
+ ] }) });
157
+ };
158
+ var Table = TableV2;
159
+ var TableRoot = StyledTableV2;
160
+ var TableCaption = StyledCaption;
161
+ var TableHeader = StyledTableHeader;
162
+ var TableBody = StyledTableBody;
163
+ var TableRow = StyledTableRow;
164
+ var TableHeaderCell = StyledTableHeaderCell;
165
+ var TableCell = StyledTableCell;
166
+ var TableV2_default = TableV2;
167
+ // Annotate the CommonJS export names for ESM import in node:
168
+ 0 && (module.exports = {
169
+ StyledCaption,
170
+ StyledTableBody,
171
+ StyledTableCell,
172
+ StyledTableHeader,
173
+ StyledTableHeaderCell,
174
+ StyledTableRow,
175
+ StyledTableV2,
176
+ StyledTableV2Container,
177
+ Table,
178
+ TableBody,
179
+ TableCaption,
180
+ TableCell,
181
+ TableHeader,
182
+ TableHeaderCell,
183
+ TableRoot,
184
+ TableRow,
185
+ TableV2,
186
+ TableWrapper,
187
+ useTableContainerId
188
+ });
189
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/v2/index.ts","../../src/v2/TableV2.tsx","../../src/v2/TableV2Types.ts","../../src/v2/styles.ts"],"sourcesContent":["// V2 Table - Explicit flat exports for optimal tree shaking\nexport {\n Table,\n TableRoot,\n TableWrapper,\n TableCaption,\n TableHeader,\n TableBody,\n TableRow,\n TableHeaderCell,\n TableCell,\n useTableContainerId,\n default as TableV2,\n} from \"./TableV2\";\n\n// Explicit type exports\nexport type { TableV2Props, ColumnHeader, RowData } from \"./TableV2Types\";\n\n// Explicit style exports\nexport * from \"./styles\";\n","import React, { useId } from \"react\";\nimport { type TableV2Props } from \"./TableV2Types\";\nimport {\n StyledTableV2Container,\n StyledTableV2,\n StyledCaption,\n StyledTableHeader,\n StyledTableBody,\n StyledTableRow,\n StyledTableHeaderCell,\n StyledTableCell,\n} from \"./styles\";\n\nconst TableContainerContext = React.createContext<string | null>(null);\n\nexport const useTableContainerId = () =>\n React.useContext(TableContainerContext);\n\nexport const TableWrapper = ({\n children,\n ...rest\n}: {\n children: React.ReactElement;\n}) => {\n const containerId = useId();\n return (\n <TableContainerContext.Provider value={containerId}>\n <StyledTableV2Container\n role=\"region\"\n tabIndex={0}\n id={containerId}\n aria-labelledby={containerId}\n {...rest}\n >\n {children}\n </StyledTableV2Container>\n </TableContainerContext.Provider>\n );\n};\n\nconst TableV2 = ({\n caption,\n displayCaption = true,\n columns,\n data,\n}: TableV2Props) => {\n const containerId = useTableContainerId();\n\n return (\n <TableWrapper>\n <StyledTableV2>\n <StyledCaption id={containerId ?? undefined} isVisible={displayCaption}>\n {caption}\n </StyledCaption>\n <StyledTableHeader>\n <StyledTableRow>\n {columns.map((column, index) => (\n <StyledTableHeaderCell key={index} scope=\"col\">\n {column}\n </StyledTableHeaderCell>\n ))}\n </StyledTableRow>\n </StyledTableHeader>\n <StyledTableBody>\n {data.map((row, rowIndex) => (\n <StyledTableRow key={rowIndex}>\n {row.map((cell, cellIndex) => (\n <StyledTableCell key={cellIndex}>{cell}</StyledTableCell>\n ))}\n </StyledTableRow>\n ))}\n </StyledTableBody>\n </StyledTableV2>\n </TableWrapper>\n );\n};\n\n// Export the full Table component as Table (main export)\nexport const Table = TableV2;\n\n// Export styled components for compound component usage\nexport const TableRoot = StyledTableV2;\nexport const TableCaption = StyledCaption;\nexport const TableHeader = StyledTableHeader;\nexport const TableBody = StyledTableBody;\nexport const TableRow = StyledTableRow;\nexport const TableHeaderCell = StyledTableHeaderCell;\nexport const TableCell = StyledTableCell;\n\n// Default export\nexport default TableV2;\n","import * as React from \"react\";\n\nexport type ColumnHeader = string | React.ReactNode;\n\nexport type RowData = Array<string | React.ReactNode>;\n\nexport interface TableV2Props {\n caption: string;\n displayCaption?: boolean;\n columns: ColumnHeader[];\n data: RowData[];\n}\n","import styled, { css } from \"styled-components\";\nimport {\n COMMON,\n LAYOUT,\n TYPOGRAPHY,\n} from \"@sproutsocial/seeds-react-system-props\";\n\nexport const StyledTableV2Container = styled.div`\n ${COMMON}\n ${LAYOUT}\n overflow-x: auto;\n max-width: 100%;\n`;\n\nexport const StyledTableV2 = styled.table`\n width: 100%;\n border-collapse: collapse;\n color: ${(props) => props.theme.colors.text.body};\n font-family: ${(props) => props.theme.fontFamily};\n`;\n\nStyledTableV2.displayName = \"TableV2.Table\";\n\nexport const StyledCaption = styled.caption<{ isVisible: boolean }>`\n ${TYPOGRAPHY}\n text-align: left;\n ${(props) => props.theme.typography[400]}\n font-weight: ${(props) => props.theme.fontWeights.semibold};\n padding: ${(props) => props.theme.space[300]};\n margin-top: ${(props) => props.theme.space[200]};\n ${({ isVisible }) =>\n !isVisible &&\n css`\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n border: 0;\n `}\n`;\n\nStyledCaption.displayName = \"TableV2.Caption\";\n\nexport const StyledTableHeader = styled.thead`\n vertical-align: bottom;\n border-bottom: 1px solid\n ${(props) => props.theme.colors.container.border.base};\n`;\n\nStyledTableHeader.displayName = \"TableV2.TableHeader\";\n\nexport const StyledTableBody = styled.tbody``;\n\nStyledTableBody.displayName = \"TableV2.TableBody\";\n\nexport const StyledTableRow = styled.tr`\n border-bottom: 1px solid\n ${(props) => props.theme.colors.container.border.base};\n`;\n\nStyledTableRow.displayName = \"TableV2.TableRow\";\n\nexport const StyledTableHeaderCell = styled.th`\n ${(props) => props.theme.typography[100]}\n font-weight: ${(props) => props.theme.fontWeights.semibold};\n padding: ${(props) => props.theme.space[300]};\n text-align: left;\n`;\n\nStyledTableHeaderCell.displayName = \"TableV2.TableHeaderCell\";\n\nexport const StyledTableCell = styled.td`\n ${(props) => props.theme.typography[200]}\n font-weight: ${(props) => props.theme.fontWeights.normal};\n padding: ${(props) => props.theme.space[300]};\n text-align: left;\n`;\n\nStyledTableCell.displayName = \"TableV2.TableCell\";\n"],"mappings":"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","names":["styled","React"]}