@multiplatform.one/table-primitives 6.0.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 (40) hide show
  1. package/LICENSE +201 -0
  2. package/dist/cjs/index.cjs +416 -0
  3. package/dist/cjs/index.native.js +462 -0
  4. package/dist/cjs/index.native.js.map +1 -0
  5. package/dist/cjs/table.spec.cjs +183 -0
  6. package/dist/cjs/table.spec.native.js +186 -0
  7. package/dist/cjs/table.spec.native.js.map +1 -0
  8. package/dist/cjs/tableCellContext.cjs +45 -0
  9. package/dist/cjs/tableCellContext.native.js +48 -0
  10. package/dist/cjs/tableCellContext.native.js.map +1 -0
  11. package/dist/esm/index.mjs +388 -0
  12. package/dist/esm/index.mjs.map +1 -0
  13. package/dist/esm/index.native.js +431 -0
  14. package/dist/esm/index.native.js.map +1 -0
  15. package/dist/esm/table.spec.mjs +184 -0
  16. package/dist/esm/table.spec.mjs.map +1 -0
  17. package/dist/esm/table.spec.native.js +184 -0
  18. package/dist/esm/table.spec.native.js.map +1 -0
  19. package/dist/esm/tableCellContext.mjs +18 -0
  20. package/dist/esm/tableCellContext.mjs.map +1 -0
  21. package/dist/esm/tableCellContext.native.js +18 -0
  22. package/dist/esm/tableCellContext.native.js.map +1 -0
  23. package/dist/jsx/index.js +388 -0
  24. package/dist/jsx/index.js.map +1 -0
  25. package/dist/jsx/index.mjs +388 -0
  26. package/dist/jsx/index.mjs.map +1 -0
  27. package/dist/jsx/index.native.js +462 -0
  28. package/dist/jsx/index.native.js.map +1 -0
  29. package/dist/jsx/table.spec.mjs +184 -0
  30. package/dist/jsx/table.spec.mjs.map +1 -0
  31. package/dist/jsx/table.spec.native.js +186 -0
  32. package/dist/jsx/table.spec.native.js.map +1 -0
  33. package/dist/jsx/tableCellContext.mjs +18 -0
  34. package/dist/jsx/tableCellContext.mjs.map +1 -0
  35. package/dist/jsx/tableCellContext.native.js +48 -0
  36. package/dist/jsx/tableCellContext.native.js.map +1 -0
  37. package/package.json +78 -0
  38. package/src/index.tsx +364 -0
  39. package/src/table.spec.tsx +177 -0
  40. package/src/tableCellContext.ts +34 -0
@@ -0,0 +1,186 @@
1
+ "use strict";
2
+
3
+ var import_jsx_runtime = require("react/jsx-runtime");
4
+ var import_test_utils = require("@multiplatform.one/test-utils");
5
+ var import_vitest = require("vitest");
6
+ var import_index = require("./index.native.js");
7
+ (0, import_vitest.describe)("Table Primitives", function () {
8
+ (0, import_vitest.it)("renders semantic HTML structure via tag attributes (table, thead, tbody, tfoot, tr, td, th, caption)", function () {
9
+ var {
10
+ container
11
+ } = (0, import_test_utils.renderWithProviders)(/* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_index.Table, {
12
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.Caption, {
13
+ children: "Test Caption"
14
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.Head, {
15
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.Row, {
16
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.HeaderCell, {
17
+ children: "Header"
18
+ })
19
+ })
20
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.Body, {
21
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.Row, {
22
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.Cell, {
23
+ children: "Cell"
24
+ })
25
+ })
26
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.Foot, {
27
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.Row, {
28
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.Cell, {
29
+ children: "Footer"
30
+ })
31
+ })
32
+ })]
33
+ }));
34
+ (0, import_vitest.expect)(container.querySelector('[tag="table"]')).not.toBeNull();
35
+ (0, import_vitest.expect)(container.querySelector('[tag="thead"]')).not.toBeNull();
36
+ (0, import_vitest.expect)(container.querySelector('[tag="tbody"]')).not.toBeNull();
37
+ (0, import_vitest.expect)(container.querySelector('[tag="tfoot"]')).not.toBeNull();
38
+ (0, import_vitest.expect)(container.querySelectorAll('[tag="tr"]').length).toBe(3);
39
+ (0, import_vitest.expect)(container.querySelector('[tag="td"]')).not.toBeNull();
40
+ (0, import_vitest.expect)(container.querySelector('[tag="th"]')).not.toBeNull();
41
+ (0, import_vitest.expect)(container.querySelector('[tag="caption"]')).not.toBeNull();
42
+ (0, import_vitest.expect)(container.querySelector(".is_Table")).not.toBeNull();
43
+ (0, import_vitest.expect)(container.querySelector(".is_TableHead")).not.toBeNull();
44
+ (0, import_vitest.expect)(container.querySelector(".is_TableBody")).not.toBeNull();
45
+ (0, import_vitest.expect)(container.querySelector(".is_TableFoot")).not.toBeNull();
46
+ (0, import_vitest.expect)(container.querySelector(".is_TableRow")).not.toBeNull();
47
+ (0, import_vitest.expect)(container.querySelector(".is_TableCell")).not.toBeNull();
48
+ (0, import_vitest.expect)(container.querySelector(".is_TableHeaderCell")).not.toBeNull();
49
+ (0, import_vitest.expect)(container.querySelector(".is_TableCaption")).not.toBeNull();
50
+ });
51
+ (0, import_vitest.it)("applies intent props on Table.Row with Theme wrapping", function () {
52
+ var {
53
+ container: withIntent
54
+ } = (0, import_test_utils.renderWithProviders)(/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table, {
55
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_index.Table.Body, {
56
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.Row, {
57
+ accent: true,
58
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.Cell, {
59
+ children: "Accent row"
60
+ })
61
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.Row, {
62
+ error: true,
63
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.Cell, {
64
+ children: "Error row"
65
+ })
66
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.Row, {
67
+ warning: true,
68
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.Cell, {
69
+ children: "Warning row"
70
+ })
71
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.Row, {
72
+ success: true,
73
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.Cell, {
74
+ children: "Success row"
75
+ })
76
+ })]
77
+ })
78
+ }));
79
+ var {
80
+ container: withoutIntent
81
+ } = (0, import_test_utils.renderWithProviders)(/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table, {
82
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.Body, {
83
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.Row, {
84
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.Cell, {
85
+ children: "Normal row"
86
+ })
87
+ })
88
+ })
89
+ }));
90
+ var rows = withIntent.querySelectorAll('[tag="tr"]');
91
+ (0, import_vitest.expect)(rows.length).toBe(4);
92
+ (0, import_vitest.expect)(withIntent.textContent).toContain("Accent row");
93
+ (0, import_vitest.expect)(withIntent.textContent).toContain("Error row");
94
+ (0, import_vitest.expect)(withIntent.textContent).toContain("Warning row");
95
+ (0, import_vitest.expect)(withIntent.textContent).toContain("Success row");
96
+ var intentThemeWrappers = withIntent.querySelectorAll(".is_Theme");
97
+ var normalThemeWrappers = withoutIntent.querySelectorAll(".is_Theme");
98
+ (0, import_vitest.expect)(intentThemeWrappers.length).toBeGreaterThan(normalThemeWrappers.length);
99
+ });
100
+ (0, import_vitest.it)("spreads knobProps from useResolvedKnobs on Table root", function () {
101
+ var {
102
+ container
103
+ } = (0, import_test_utils.renderWithProviders)(/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table, {
104
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.Body, {
105
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.Row, {
106
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.Cell, {
107
+ children: "Content"
108
+ })
109
+ })
110
+ })
111
+ }));
112
+ var table = container.querySelector('[tag="table"]');
113
+ (0, import_vitest.expect)(table).not.toBeNull();
114
+ (0, import_vitest.expect)(table === null || table === void 0 ? void 0 : table.textContent).toContain("Content");
115
+ (0, import_vitest.expect)(table === null || table === void 0 ? void 0 : table.classList.contains("is_Table")).toBe(true);
116
+ });
117
+ (0, import_vitest.it)("renders Table.Caption as a caption element", function () {
118
+ var {
119
+ container
120
+ } = (0, import_test_utils.renderWithProviders)(/* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_index.Table, {
121
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.Caption, {
122
+ children: "Monthly Sales Report"
123
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.Body, {
124
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.Row, {
125
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.Cell, {
126
+ children: "Data"
127
+ })
128
+ })
129
+ })]
130
+ }));
131
+ var caption = container.querySelector('[tag="caption"]');
132
+ (0, import_vitest.expect)(caption).not.toBeNull();
133
+ (0, import_vitest.expect)(caption === null || caption === void 0 ? void 0 : caption.textContent).toContain("Monthly Sales Report");
134
+ (0, import_vitest.expect)(caption === null || caption === void 0 ? void 0 : caption.classList.contains("is_TableCaption")).toBe(true);
135
+ var table = container.querySelector('[tag="table"]');
136
+ (0, import_vitest.expect)(table === null || table === void 0 ? void 0 : table.querySelector('[tag="caption"]')).not.toBeNull();
137
+ });
138
+ (0, import_vitest.it)("exposes compound component API (Head, Body, Row, Cell, HeaderCell, Foot, Caption)", function () {
139
+ (0, import_vitest.expect)(import_index.Table.Head).toBeDefined();
140
+ (0, import_vitest.expect)(import_index.Table.Body).toBeDefined();
141
+ (0, import_vitest.expect)(import_index.Table.Row).toBeDefined();
142
+ (0, import_vitest.expect)(import_index.Table.Cell).toBeDefined();
143
+ (0, import_vitest.expect)(import_index.Table.HeaderCell).toBeDefined();
144
+ (0, import_vitest.expect)(import_index.Table.Foot).toBeDefined();
145
+ (0, import_vitest.expect)(import_index.Table.Caption).toBeDefined();
146
+ var {
147
+ getByText
148
+ } = (0, import_test_utils.renderWithProviders)(/* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_index.Table, {
149
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.Caption, {
150
+ children: "Caption"
151
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.Head, {
152
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_index.Table.Row, {
153
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.HeaderCell, {
154
+ children: "H1"
155
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.HeaderCell, {
156
+ children: "H2"
157
+ })]
158
+ })
159
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.Body, {
160
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_index.Table.Row, {
161
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.Cell, {
162
+ children: "A1"
163
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.Cell, {
164
+ children: "A2"
165
+ })]
166
+ })
167
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.Foot, {
168
+ children: /* @__PURE__ */(0, import_jsx_runtime.jsxs)(import_index.Table.Row, {
169
+ children: [/* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.Cell, {
170
+ children: "F1"
171
+ }), /* @__PURE__ */(0, import_jsx_runtime.jsx)(import_index.Table.Cell, {
172
+ children: "F2"
173
+ })]
174
+ })
175
+ })]
176
+ }));
177
+ (0, import_vitest.expect)(getByText("Caption")).toBeDefined();
178
+ (0, import_vitest.expect)(getByText("H1")).toBeDefined();
179
+ (0, import_vitest.expect)(getByText("H2")).toBeDefined();
180
+ (0, import_vitest.expect)(getByText("A1")).toBeDefined();
181
+ (0, import_vitest.expect)(getByText("A2")).toBeDefined();
182
+ (0, import_vitest.expect)(getByText("F1")).toBeDefined();
183
+ (0, import_vitest.expect)(getByText("F2")).toBeDefined();
184
+ });
185
+ });
186
+ //# sourceMappingURL=table.spec.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["import_jsx_runtime","require","import_test_utils","import_vitest","import_index","describe","it","container","renderWithProviders","jsxs","Table","children","jsx","Caption","Head","Row","HeaderCell","Body","Cell","Foot","expect","querySelector","not","toBeNull","querySelectorAll","length","toBe","withIntent","accent","error","warning","success","withoutIntent","rows","textContent","toContain","intentThemeWrappers","normalThemeWrappers","toBeGreaterThan"],"sources":["../../src/table.spec.tsx"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,45 @@
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
3
+ var __getOwnPropNames = Object.getOwnPropertyNames;
4
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
5
+ var __export = (target, all) => {
6
+ for (var name in all) __defProp(target, name, {
7
+ get: all[name],
8
+ enumerable: true
9
+ });
10
+ };
11
+ var __copyProps = (to, from, except, desc) => {
12
+ if (from && typeof from === "object" || typeof from === "function") {
13
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
14
+ get: () => from[key],
15
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
16
+ });
17
+ }
18
+ return to;
19
+ };
20
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
21
+ value: true
22
+ }), mod);
23
+ var tableCellContext_exports = {};
24
+ __export(tableCellContext_exports, {
25
+ TableCellContext: () => TableCellContext,
26
+ useIsInTableCell: () => useIsInTableCell,
27
+ useTableCellContext: () => useTableCellContext
28
+ });
29
+ module.exports = __toCommonJS(tableCellContext_exports);
30
+ var import_react = require("react");
31
+ const defaultValue = {
32
+ inTableCell: false,
33
+ isHeader: false,
34
+ editable: false
35
+ };
36
+ const TableCellContext = (0, import_react.createContext)(defaultValue);
37
+ function useTableCellContext() {
38
+ return (0, import_react.useContext)(TableCellContext);
39
+ }
40
+ function useIsInTableCell() {
41
+ const {
42
+ inTableCell
43
+ } = useTableCellContext();
44
+ return inTableCell;
45
+ }
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __export = (target, all) => {
8
+ for (var name in all) __defProp(target, name, {
9
+ get: all[name],
10
+ enumerable: true
11
+ });
12
+ };
13
+ var __copyProps = (to, from, except, desc) => {
14
+ if (from && typeof from === "object" || typeof from === "function") {
15
+ for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
16
+ get: () => from[key],
17
+ enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
18
+ });
19
+ }
20
+ return to;
21
+ };
22
+ var __toCommonJS = mod => __copyProps(__defProp({}, "__esModule", {
23
+ value: true
24
+ }), mod);
25
+ var tableCellContext_exports = {};
26
+ __export(tableCellContext_exports, {
27
+ TableCellContext: () => TableCellContext,
28
+ useIsInTableCell: () => useIsInTableCell,
29
+ useTableCellContext: () => useTableCellContext
30
+ });
31
+ module.exports = __toCommonJS(tableCellContext_exports);
32
+ var import_react = require("react");
33
+ var defaultValue = {
34
+ inTableCell: false,
35
+ isHeader: false,
36
+ editable: false
37
+ };
38
+ var TableCellContext = (0, import_react.createContext)(defaultValue);
39
+ function useTableCellContext() {
40
+ return (0, import_react.useContext)(TableCellContext);
41
+ }
42
+ function useIsInTableCell() {
43
+ var {
44
+ inTableCell
45
+ } = useTableCellContext();
46
+ return inTableCell;
47
+ }
48
+ //# sourceMappingURL=tableCellContext.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["__toCommonJS","mod","__copyProps","__defProp","value","tableCellContext_exports","__export","TableCellContext","useIsInTableCell","useTableCellContext","module","exports","import_react","require","defaultValue","inTableCell","isHeader","editable","createContext","useContext"],"sources":["../../src/tableCellContext.ts"],"sourcesContent":[null],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,GAAA,IAAAC,WAAA,CAAAC,SAAA;EAAAC,KAAA;AAAA,IAAAH,GAAA;AAAA,IAAAI,wBAAA;AAAAC,QAAA,CAAAD,wBAAA;EAAAE,gBAAA,EAAAA,CAAA,KAAAA,gBAAA;EAAAC,gBAAA,EAAAA,CAAA,KAAAA,gBAAA;EAAAC,mBAAA,EAAAA,CAAA,KAAAA;AAAA;AAOAC,MAAA,CAAAC,OAAA,GAAAX,YAA0C,CAAAK,wBAAA;AAW1C,IAAAO,YAAM,GAAAC,OAAsC;AAAA,IAC1CC,YAAa;EACbC,WAAU;EACVC,QAAA,EAAU;EACZC,QAAA;AAEO;AAEA,IAAAV,gBAAS,OAAAK,YAA6C,CAAAM,aAAA,EAAAJ,YAAA;AAC3D,SAAAL,mBAAOA,CAAA;EACT,WAAAG,YAAA,CAAAO,UAAA,EAAAZ,gBAAA;AAEO;AACL,SAAMC,gBAAcA,CAAA,EAAI;EACxB;IAAAO;EAAO,IAAAN,mBAAA;EACT,OAAAM,WAAA","ignoreList":[]}
@@ -0,0 +1,388 @@
1
+ import { useResolvedKnobs } from "@multiplatform.one/theme";
2
+ import { TableCellContext } from "./tableCellContext.mjs";
3
+ import { Theme, ThemeableStack, createStyledContext, styled, withStaticProperties } from "tamagui";
4
+ import { TableCellContext as TableCellContext2, useIsInTableCell, useTableCellContext } from "./tableCellContext.mjs";
5
+ import { jsx } from "react/jsx-runtime";
6
+ const TableContext = createStyledContext({
7
+ cellWidth: "$8",
8
+ cellHeight: "$8",
9
+ alignHeaderCells: {
10
+ x: "start",
11
+ y: "center"
12
+ },
13
+ alignCells: {
14
+ x: "start",
15
+ y: "center"
16
+ },
17
+ borderColor: "$color6",
18
+ displayMode: "table"
19
+ });
20
+ const Row = styled(ThemeableStack, {
21
+ name: "TableRow",
22
+ ...{
23
+ tag: "tr"
24
+ },
25
+ role: "row",
26
+ context: TableContext,
27
+ display: "table-row",
28
+ variants: {
29
+ displayMode: {
30
+ table: {
31
+ display: "table-row"
32
+ },
33
+ flex: {
34
+ display: "flex",
35
+ flexDirection: "row",
36
+ width: "100%",
37
+ alignItems: "center"
38
+ }
39
+ },
40
+ rowLocation: {
41
+ first: () => ({}),
42
+ last: () => ({}),
43
+ middle: () => ({})
44
+ }
45
+ }
46
+ });
47
+ const Cell = styled(ThemeableStack, {
48
+ name: "TableCell",
49
+ ...{
50
+ tag: "td"
51
+ },
52
+ context: TableContext,
53
+ display: "table-cell",
54
+ // verticalAlign goes via inline style; Tamagui forwards it to the DOM as a JSX
55
+ // prop otherwise, which React rejects ("React does not recognize verticalAlign").
56
+ style: {
57
+ verticalAlign: "middle"
58
+ },
59
+ alignItems: "center",
60
+ justifyContent: "flex-start",
61
+ paddingHorizontal: "$2",
62
+ paddingVertical: "$1",
63
+ overflow: "hidden",
64
+ variants: {
65
+ displayMode: {
66
+ table: {
67
+ display: "table-cell",
68
+ style: {
69
+ verticalAlign: "middle"
70
+ }
71
+ },
72
+ flex: {
73
+ display: "flex",
74
+ overflow: "visible"
75
+ }
76
+ },
77
+ cellWidth: {
78
+ /** Equal flex for consistency across rows (flex rows size independently) */
79
+ auto: () => ({
80
+ flex: 1
81
+ }),
82
+ ":number": val => ({
83
+ width: val,
84
+ minWidth: val
85
+ }),
86
+ "...size": (name, {
87
+ tokens
88
+ }) => ({
89
+ width: tokens.size[name],
90
+ minWidth: tokens.size[name]
91
+ })
92
+ },
93
+ cellHeight: {
94
+ "...size": (name, {
95
+ tokens
96
+ }) => {
97
+ return {
98
+ minHeight: tokens.size[name]
99
+ };
100
+ }
101
+ },
102
+ alignCells: val => {
103
+ return {
104
+ alignItems: val.y === "center" ? "center" : `flex-${val.y}`,
105
+ justifyContent: val.x === "center" ? "center" : `flex-${val.x}`
106
+ };
107
+ },
108
+ cellLocation: {
109
+ first: () => ({}),
110
+ last: () => ({}),
111
+ middle: () => ({})
112
+ }
113
+ }
114
+ });
115
+ const HeaderCell = styled(ThemeableStack, {
116
+ name: "TableHeaderCell",
117
+ ...{
118
+ tag: "th",
119
+ scope: "col"
120
+ },
121
+ context: TableContext,
122
+ display: "table-cell",
123
+ // verticalAlign goes via inline style; see TableCell above for context.
124
+ style: {
125
+ verticalAlign: "middle"
126
+ },
127
+ alignItems: "center",
128
+ justifyContent: "flex-start",
129
+ paddingHorizontal: "$2",
130
+ paddingVertical: "$1",
131
+ backgroundColor: "$color3",
132
+ variants: {
133
+ displayMode: {
134
+ table: {
135
+ display: "table-cell",
136
+ style: {
137
+ verticalAlign: "middle"
138
+ }
139
+ },
140
+ flex: {
141
+ display: "flex"
142
+ }
143
+ },
144
+ cellWidth: {
145
+ /** Equal flex for consistency across rows */
146
+ auto: () => ({
147
+ flex: 1
148
+ }),
149
+ ":number": val => ({
150
+ width: val,
151
+ minWidth: val
152
+ }),
153
+ "...size": (name, {
154
+ tokens
155
+ }) => ({
156
+ width: tokens.size[name],
157
+ minWidth: tokens.size[name]
158
+ })
159
+ },
160
+ alignHeaderCells: val => {
161
+ return {
162
+ alignItems: val.y === "center" ? "center" : `flex-${val.y}`,
163
+ justifyContent: val.x === "center" ? "center" : `flex-${val.x}`
164
+ };
165
+ },
166
+ cellHeight: {
167
+ "...size": (name, {
168
+ tokens
169
+ }) => ({
170
+ minHeight: tokens.size[name]
171
+ })
172
+ },
173
+ cellLocation: {
174
+ first: () => ({}),
175
+ last: () => ({}),
176
+ middle: () => ({})
177
+ }
178
+ }
179
+ });
180
+ const TableBody = styled(ThemeableStack, {
181
+ name: "TableBody",
182
+ ...{
183
+ tag: "tbody"
184
+ },
185
+ context: TableContext,
186
+ display: "table-row-group",
187
+ variants: {
188
+ displayMode: {
189
+ table: {
190
+ display: "table-row-group"
191
+ },
192
+ flex: {
193
+ display: "flex",
194
+ flexDirection: "column",
195
+ width: "100%",
196
+ overflowY: "auto",
197
+ flex: 1,
198
+ minHeight: 0
199
+ }
200
+ }
201
+ }
202
+ });
203
+ const TableHead = styled(ThemeableStack, {
204
+ name: "TableHead",
205
+ ...{
206
+ tag: "thead"
207
+ },
208
+ context: TableContext,
209
+ display: "table-header-group",
210
+ borderBottomWidth: 1,
211
+ borderBottomColor: "$color6",
212
+ variants: {
213
+ displayMode: {
214
+ table: {
215
+ display: "table-header-group"
216
+ },
217
+ flex: {
218
+ display: "flex",
219
+ flexDirection: "column",
220
+ width: "100%",
221
+ flexShrink: 0
222
+ }
223
+ }
224
+ }
225
+ });
226
+ const TableFoot = styled(ThemeableStack, {
227
+ name: "TableFoot",
228
+ ...{
229
+ tag: "tfoot"
230
+ },
231
+ context: TableContext,
232
+ display: "table-footer-group",
233
+ variants: {
234
+ displayMode: {
235
+ table: {
236
+ display: "table-footer-group"
237
+ },
238
+ flex: {
239
+ display: "flex",
240
+ flexDirection: "column",
241
+ width: "100%",
242
+ flexShrink: 0
243
+ }
244
+ }
245
+ }
246
+ });
247
+ const TableCaption = styled(ThemeableStack, {
248
+ name: "TableCaption",
249
+ ...{
250
+ tag: "caption"
251
+ },
252
+ context: TableContext,
253
+ display: "table-caption",
254
+ paddingVertical: "$2",
255
+ paddingHorizontal: "$2"
256
+ });
257
+ const TableComp = styled(ThemeableStack, {
258
+ name: "Table",
259
+ ...{
260
+ tag: "table"
261
+ },
262
+ context: TableContext,
263
+ display: "table",
264
+ borderWidth: 1,
265
+ borderColor: "$color6",
266
+ backgroundColor: "$background",
267
+ overflow: "hidden",
268
+ width: "100%",
269
+ variants: {
270
+ displayMode: {
271
+ table: {
272
+ display: "table"
273
+ },
274
+ flex: {
275
+ display: "flex",
276
+ flexDirection: "column",
277
+ flex: 1,
278
+ minHeight: 0
279
+ }
280
+ },
281
+ /** Empty variants to satisfy context-driven props without ts errors on Table */
282
+ cellWidth: {
283
+ "...size": () => {
284
+ return {};
285
+ }
286
+ },
287
+ cellHeight: {
288
+ "...size": () => {
289
+ return {};
290
+ }
291
+ },
292
+ alignHeaderCells: _val => ({}),
293
+ alignCells: _val => ({})
294
+ }
295
+ });
296
+ function resolveIntent(props) {
297
+ if (props.accent) return "accent";
298
+ if (props.error) return "error";
299
+ if (props.warning) return "warning";
300
+ if (props.success) return "success";
301
+ return void 0;
302
+ }
303
+ function ThemedTableComp(props) {
304
+ const {
305
+ knobProps
306
+ } = useResolvedKnobs();
307
+ const baseBorderWidth = knobProps.borderRadius.borderWidth;
308
+ const resolvedBorderWidth = knobProps.outlined ? Math.max(baseBorderWidth, 1) : baseBorderWidth;
309
+ return /* @__PURE__ */jsx(TableComp, {
310
+ ...knobProps.borderRadius,
311
+ borderWidth: resolvedBorderWidth,
312
+ borderColor: "$color6",
313
+ backgroundColor: "$background",
314
+ elevation: knobProps.elevation,
315
+ ...props,
316
+ style: [{
317
+ tableLayout: "fixed"
318
+ }, props.style]
319
+ });
320
+ }
321
+ function ThemedRow({
322
+ accent,
323
+ error,
324
+ warning,
325
+ success,
326
+ ...props
327
+ }) {
328
+ const intent = resolveIntent({
329
+ accent,
330
+ error,
331
+ warning,
332
+ success
333
+ });
334
+ const row = /* @__PURE__ */jsx(Row, {
335
+ ...(intent ? {
336
+ backgroundColor: "$color3"
337
+ } : {}),
338
+ ...props
339
+ });
340
+ if (intent) {
341
+ return /* @__PURE__ */jsx(Theme, {
342
+ name: intent,
343
+ children: row
344
+ });
345
+ }
346
+ return row;
347
+ }
348
+ function ThemedCell({
349
+ children,
350
+ ...props
351
+ }) {
352
+ return /* @__PURE__ */jsx(Cell, {
353
+ ...props,
354
+ children: /* @__PURE__ */jsx(TableCellContext.Provider, {
355
+ value: {
356
+ inTableCell: true,
357
+ isHeader: false
358
+ },
359
+ children
360
+ })
361
+ });
362
+ }
363
+ function ThemedHeaderCell({
364
+ children,
365
+ ...props
366
+ }) {
367
+ return /* @__PURE__ */jsx(HeaderCell, {
368
+ ...props,
369
+ children: /* @__PURE__ */jsx(TableCellContext.Provider, {
370
+ value: {
371
+ inTableCell: true,
372
+ isHeader: true
373
+ },
374
+ children
375
+ })
376
+ });
377
+ }
378
+ const Table = withStaticProperties(ThemedTableComp, {
379
+ Head: TableHead,
380
+ Body: TableBody,
381
+ Row: ThemedRow,
382
+ Cell: ThemedCell,
383
+ HeaderCell: ThemedHeaderCell,
384
+ Foot: TableFoot,
385
+ Caption: TableCaption
386
+ });
387
+ export { Table, TableCellContext2 as TableCellContext, useIsInTableCell, useTableCellContext };
388
+ //# sourceMappingURL=index.mjs.map