@justeattakeaway/pie-data-table 0.0.0-snapshot-release-20250807232835 → 0.0.0-snapshot-release-20250811075227

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.
@@ -11,26 +11,8 @@
11
11
  {
12
12
  "kind": "javascript-module",
13
13
  "path": "src/defs.js",
14
- "declarations": [
15
- {
16
- "kind": "variable",
17
- "name": "defaultProps",
18
- "type": {
19
- "text": "ComponentDefaultProps<DataTableProps, keyof Omit<DataTableProps, 'columns' | 'data'>>"
20
- },
21
- "default": "{\n hasBorder: true,\n isStriped: false,\n}"
22
- }
23
- ],
24
- "exports": [
25
- {
26
- "kind": "js",
27
- "name": "defaultProps",
28
- "declaration": {
29
- "name": "defaultProps",
30
- "module": "src/defs.js"
31
- }
32
- }
33
- ]
14
+ "declarations": [],
15
+ "exports": []
34
16
  },
35
17
  {
36
18
  "kind": "javascript-module",
@@ -40,77 +22,7 @@
40
22
  "kind": "class",
41
23
  "description": "",
42
24
  "name": "PieDataTable",
43
- "members": [
44
- {
45
- "kind": "field",
46
- "name": "columns",
47
- "type": {
48
- "text": "Column[]"
49
- },
50
- "privacy": "public",
51
- "default": "[]",
52
- "description": "Array of column definitions"
53
- },
54
- {
55
- "kind": "field",
56
- "name": "data",
57
- "type": {
58
- "text": "Record<string, unknown>[]"
59
- },
60
- "privacy": "public",
61
- "default": "[]",
62
- "description": "Array of data objects to display"
63
- },
64
- {
65
- "kind": "method",
66
- "name": "renderHeaderCell",
67
- "privacy": "private",
68
- "parameters": [
69
- {
70
- "name": "column",
71
- "type": {
72
- "text": "Column"
73
- },
74
- "description": "The column definition to render"
75
- }
76
- ],
77
- "description": "Renders a header cell for the table"
78
- },
79
- {
80
- "kind": "method",
81
- "name": "renderTableHeader",
82
- "privacy": "private",
83
- "description": "Renders the table header"
84
- },
85
- {
86
- "kind": "method",
87
- "name": "renderTableCell",
88
- "privacy": "private",
89
- "parameters": [
90
- {
91
- "name": "column",
92
- "type": {
93
- "text": "Column"
94
- },
95
- "description": "The column definition to render"
96
- },
97
- {
98
- "name": "row",
99
- "type": {
100
- "text": "Record<string, unknown>"
101
- },
102
- "description": "The data object for the current row"
103
- }
104
- ],
105
- "description": "Renders a table cell for the given column and row"
106
- },
107
- {
108
- "kind": "method",
109
- "name": "renderTableRows",
110
- "privacy": "private",
111
- "description": "Renders the table rows"
112
- }
113
- ],
25
+ "members": [],
114
26
  "mixins": [
115
27
  {
116
28
  "name": "RtlMixin",
@@ -143,140 +55,6 @@
143
55
  }
144
56
  }
145
57
  ]
146
- },
147
- {
148
- "kind": "javascript-module",
149
- "path": "src/pie-data-table-header/defs-react.js",
150
- "declarations": [],
151
- "exports": []
152
- },
153
- {
154
- "kind": "javascript-module",
155
- "path": "src/pie-data-table-header/defs.js",
156
- "declarations": [
157
- {
158
- "kind": "variable",
159
- "name": "dataTableHeaderVariant",
160
- "type": {
161
- "text": "array"
162
- },
163
- "default": "['subtle', 'strong']"
164
- },
165
- {
166
- "kind": "variable",
167
- "name": "defaultProps",
168
- "type": {
169
- "text": "ComponentDefaultProps<DataTableHeaderProps, keyof Omit<DataTableHeaderProps, 'title' | 'subtitle'>>"
170
- },
171
- "default": "{\n variant: 'subtle',\n}"
172
- }
173
- ],
174
- "exports": [
175
- {
176
- "kind": "js",
177
- "name": "dataTableHeaderVariant",
178
- "declaration": {
179
- "name": "dataTableHeaderVariant",
180
- "module": "src/pie-data-table-header/defs.js"
181
- }
182
- },
183
- {
184
- "kind": "js",
185
- "name": "defaultProps",
186
- "declaration": {
187
- "name": "defaultProps",
188
- "module": "src/pie-data-table-header/defs.js"
189
- }
190
- }
191
- ]
192
- },
193
- {
194
- "kind": "javascript-module",
195
- "path": "src/pie-data-table-header/index.js",
196
- "declarations": [
197
- {
198
- "kind": "class",
199
- "description": "",
200
- "name": "PieDataTableHeader",
201
- "members": [
202
- {
203
- "kind": "field",
204
- "name": "title",
205
- "type": {
206
- "text": "DataTableHeaderProps['title']"
207
- },
208
- "privacy": "public",
209
- "description": "Title text for the data table header"
210
- },
211
- {
212
- "kind": "field",
213
- "name": "subtitle",
214
- "type": {
215
- "text": "DataTableHeaderProps['subtitle']"
216
- },
217
- "privacy": "public",
218
- "description": "Subtitle text for the data table header"
219
- },
220
- {
221
- "kind": "field",
222
- "name": "variant",
223
- "type": {
224
- "text": "typeof defaultProps.variant | undefined"
225
- },
226
- "privacy": "public",
227
- "description": "Emphasis level for the header"
228
- },
229
- {
230
- "kind": "field",
231
- "name": "hasActionButtons",
232
- "type": {
233
- "text": "boolean"
234
- },
235
- "privacy": "private",
236
- "default": "false"
237
- },
238
- {
239
- "kind": "method",
240
- "name": "handleSlotChange",
241
- "privacy": "private",
242
- "parameters": [
243
- {
244
- "name": "event",
245
- "type": {
246
- "text": "Event"
247
- },
248
- "description": "The slot change event"
249
- }
250
- ],
251
- "description": "Handles the slot change event to determine if there are action buttons."
252
- }
253
- ],
254
- "superclass": {
255
- "name": "PieElement",
256
- "package": "@justeattakeaway/pie-webc-core/src/internals/PieElement"
257
- },
258
- "tagName": "pie-data-table-header",
259
- "customElement": true
260
- }
261
- ],
262
- "exports": [
263
- {
264
- "kind": "js",
265
- "name": "*",
266
- "declaration": {
267
- "name": "*",
268
- "package": "./defs"
269
- }
270
- },
271
- {
272
- "kind": "js",
273
- "name": "PieDataTableHeader",
274
- "declaration": {
275
- "name": "PieDataTableHeader",
276
- "module": "src/pie-data-table-header/index.js"
277
- }
278
- }
279
- ]
280
58
  }
281
59
  ]
282
60
  }
package/dist/index.d.ts CHANGED
@@ -1,45 +1,20 @@
1
- import { PieElement } from '@justeattakeaway/pie-webc-core/src/internals/PieElement';
2
- import { DataTableProps, Column } from './defs';
3
- export * from './defs';
4
- declare const componentSelector = "pie-data-table";
5
- declare const PieDataTable_base: import('@justeattakeaway/pie-webc-core').GenericConstructor<import('@justeattakeaway/pie-webc-core').RTLInterface> & typeof PieElement;
6
- /**
7
- * @tagname pie-data-table
8
- */
9
- export declare class PieDataTable extends PieDataTable_base implements DataTableProps {
10
- /**
11
- * Array of column definitions
12
- */
13
- columns: Column[];
14
- /**
15
- * Array of data objects to display
16
- */
17
- data: Record<string, unknown>[];
18
- /**
19
- * Renders a header cell for the table
20
- * @param column - The column definition to render
21
- */
22
- private renderHeaderCell;
23
- /**
24
- * Renders the table header
25
- */
26
- private renderTableHeader;
27
- /**
28
- * Renders a table cell for the given column and row
29
- * @param column - The column definition to render
30
- * @param row - The data object for the current row
31
- */
32
- private renderTableCell;
33
- /**
34
- * Renders the table rows
35
- */
36
- private renderTableRows;
37
- render(): import('lit-html').TemplateResult<1>;
38
- static styles: import('lit').CSSResult;
39
- }
40
- declare global {
41
- interface HTMLElementTagNameMap {
42
- [componentSelector]: PieDataTable;
43
- }
44
- }
45
- //# sourceMappingURL=index.d.ts.map
1
+ import { CSSResult } from 'lit';
2
+ import { GenericConstructor } from '@justeattakeaway/pie-webc-core';
3
+ import { PieElement } from '@justeattakeaway/pie-webc-core/src/internals/PieElement';
4
+ import { RTLInterface } from '@justeattakeaway/pie-webc-core';
5
+ import { TemplateResult } from 'lit-html';
6
+
7
+ export declare interface DataTableProps {
8
+ }
9
+
10
+ /**
11
+ * @tagname pie-data-table
12
+ */
13
+ export declare class PieDataTable extends PieDataTable_base implements DataTableProps {
14
+ render(): TemplateResult<1>;
15
+ static styles: CSSResult;
16
+ }
17
+
18
+ declare const PieDataTable_base: GenericConstructor<RTLInterface> & typeof PieElement;
19
+
20
+ export { }
package/dist/index.js CHANGED
@@ -1,107 +1,27 @@
1
- import { nothing as n, html as d, unsafeCSS as g } from "lit";
2
- import { property as h } from "lit/decorators.js";
3
- import { P as p } from "./PieElement-BsEd8lGj.js";
4
- import { RtlMixin as u, safeCustomElement as f } from "@justeattakeaway/pie-webc-core";
5
- import { classMap as i } from "lit/directives/class-map.js";
6
- const x = "*,*:after,*:before{box-sizing:inherit}:host{display:block}.c-data-table{--data-table-background-color: var(--dt-color-container-default);--data-table-background-hover-or-active: var(--dt-color-container-subtle);--data-table-border-color: var(--dt-color-border-default);--data-table-border-radius: var(--dt-radius-rounded-c);--data-table-text-color: var(--dt-color-content-default);background-color:var(--data-table-background-color);border:1px solid var(--data-table-border-color);border-radius:var(--data-table-border-radius);color:var(--data-table-text-color);width:100%;overflow:hidden}.c-data-table table{border-spacing:0;width:100%}.c-data-table tbody{overflow:auto}.c-data-table tbody tr:hover{background-color:var(--data-table-background-hover-or-active)}.c-data-table-header{background-color:transparent;font-weight:var(--dt-font-weight-bold);color:var(--data-table-header-color);text-align:left;padding:var(--dt-spacing-d);border-bottom:1px solid var(--data-table-border-color)}.c-data-table-header-text-align--left{text-align:left}.c-data-table-header-text-align--right{text-align:right}.c-data-table-header-text-align--center{text-align:center}.c-data-table-cell{padding:var(--dt-spacing-d);border-bottom:1px solid var(--data-table-border-color)}.c-data-table-cell-text-align--left{text-align:left}.c-data-table-cell-text-align--right{text-align:right}.c-data-table-cell-text-align--center{text-align:center}", T = {
7
- hasBorder: !0,
8
- isStriped: !1
1
+ import { LitElement as b, html as d, unsafeCSS as f } from "lit";
2
+ import { RtlMixin as h, safeCustomElement as v } from "@justeattakeaway/pie-webc-core";
3
+ const e = class e extends b {
4
+ willUpdate() {
5
+ this.getAttribute("v") || this.setAttribute("v", e.v);
6
+ }
9
7
  };
10
- var v = Object.defineProperty, m = Object.getOwnPropertyDescriptor, b = (t, e, l, r) => {
11
- for (var a = r > 1 ? void 0 : r ? m(e, l) : e, c = t.length - 1, s; c >= 0; c--)
12
- (s = t[c]) && (a = (r ? s(e, l, a) : s(a)) || a);
13
- return r && a && v(e, l, a), a;
8
+ e.v = "0.1.0";
9
+ let r = e;
10
+ const c = "*,*:after,*:before{box-sizing:inherit}:host{display:block}";
11
+ var u = Object.getOwnPropertyDescriptor, m = (i, l, p, o) => {
12
+ for (var t = o > 1 ? void 0 : o ? u(l, p) : l, s = i.length - 1, n; s >= 0; s--)
13
+ (n = i[s]) && (t = n(t) || t);
14
+ return t;
14
15
  };
15
- let o = class extends u(p) {
16
- constructor() {
17
- super(...arguments), this.columns = [], this.data = [];
18
- }
19
- /**
20
- * Renders a header cell for the table
21
- * @param column - The column definition to render
22
- */
23
- renderHeaderCell(t) {
24
- const { width: e, heading: l, textAlign: r } = t, a = e ? `width: ${e}` : n;
25
- return d`
26
- <th style="${a}" class="${i({
27
- "c-data-table-header": !0,
28
- "c-data-table-header-text-align--left": r === "left",
29
- "c-data-table-header-text-align--right": r === "right",
30
- "c-data-table-header-text-align--center": r === "center"
31
- })}">
32
- ${l}
33
- </th>
34
- `;
35
- }
36
- /**
37
- * Renders the table header
38
- */
39
- renderTableHeader() {
40
- return d`
41
- <thead>
42
- <tr>
43
- ${this.columns.map((t) => this.renderHeaderCell(t))}
44
- </tr>
45
- </thead>
46
- `;
47
- }
48
- /**
49
- * Renders a table cell for the given column and row
50
- * @param column - The column definition to render
51
- * @param row - The data object for the current row
52
- */
53
- renderTableCell(t, e) {
54
- const l = {
55
- "c-data-table-cell": !0,
56
- "c-data-table-cell-text-align--left": t.textAlign === "left",
57
- "c-data-table-cell-text-align--right": t.textAlign === "right",
58
- "c-data-table-cell-text-align--center": t.textAlign === "center"
59
- };
60
- return d`
61
- <td class="${i(l)}">
62
- ${t.accessor ? e[t.accessor] : ""}
63
- </td>
64
- `;
65
- }
66
- /**
67
- * Renders the table rows
68
- */
69
- renderTableRows() {
70
- return d`
71
- <tbody>
72
- ${this.data.map((t) => d`
73
- <tr class="c-data-table-row">
74
- ${this.columns.map((e) => this.renderTableCell(e, t))}
75
- </tr>
76
- `)}
77
- </tbody>
78
- `;
79
- }
16
+ let a = class extends h(r) {
80
17
  render() {
81
- return d`
82
- <div class="${i({
83
- "c-data-table": !0
84
- })}">
85
- <slot name="table-header"></slot>
86
- <table>
87
- ${this.columns.length > 0 ? this.renderTableHeader() : n}
88
- ${this.data.length > 0 ? this.renderTableRows() : n}
89
- </table>
90
- </div>
91
- `;
18
+ return d`<h1 data-test-id="pie-data-table">Hello world!</h1>`;
92
19
  }
93
20
  };
94
- o.styles = g(x);
95
- b([
96
- h({ type: Array })
97
- ], o.prototype, "columns", 2);
98
- b([
99
- h({ type: Array })
100
- ], o.prototype, "data", 2);
101
- o = b([
102
- f("pie-data-table")
103
- ], o);
21
+ a.styles = f(c);
22
+ a = m([
23
+ v("pie-data-table")
24
+ ], a);
104
25
  export {
105
- o as PieDataTable,
106
- T as defaultProps
26
+ a as PieDataTable
107
27
  };
package/dist/react.d.ts CHANGED
@@ -1,7 +1,25 @@
1
- import { PieDataTable as PieDataTableLit } from './index';
2
- import { DataTableProps } from './defs';
3
- import * as React from 'react';
4
- export * from './defs';
5
- type ReactBaseType = React.HTMLAttributes<HTMLElement>;
6
- export declare const PieDataTable: React.ForwardRefExoticComponent<React.PropsWithoutRef<DataTableProps> & React.RefAttributes<PieDataTableLit> & ReactBaseType>;
7
- //# sourceMappingURL=react.d.ts.map
1
+ import { CSSResult } from 'lit';
2
+ import { GenericConstructor } from '@justeattakeaway/pie-webc-core';
3
+ import { PieElement } from '@justeattakeaway/pie-webc-core/src/internals/PieElement';
4
+ import * as React_2 from 'react';
5
+ import { RTLInterface } from '@justeattakeaway/pie-webc-core';
6
+ import { TemplateResult } from 'lit-html';
7
+
8
+ export declare interface DataTableProps {
9
+ }
10
+
11
+ export declare const PieDataTable: React_2.ForwardRefExoticComponent<React_2.PropsWithoutRef<DataTableProps> & React_2.RefAttributes<PieDataTable_2> & ReactBaseType>;
12
+
13
+ /**
14
+ * @tagname pie-data-table
15
+ */
16
+ declare class PieDataTable_2 extends PieDataTable_base implements DataTableProps {
17
+ render(): TemplateResult<1>;
18
+ static styles: CSSResult;
19
+ }
20
+
21
+ declare const PieDataTable_base: GenericConstructor<RTLInterface> & typeof PieElement;
22
+
23
+ declare type ReactBaseType = React_2.HTMLAttributes<HTMLElement>;
24
+
25
+ export { }
package/dist/react.js CHANGED
@@ -1,15 +1,13 @@
1
1
  import * as a from "react";
2
2
  import { createComponent as e } from "@lit/react";
3
3
  import { PieDataTable as t } from "./index.js";
4
- import { defaultProps as s } from "./index.js";
5
4
  const o = e({
6
5
  displayName: "PieDataTable",
7
6
  elementClass: t,
8
7
  react: a,
9
8
  tagName: "pie-data-table",
10
9
  events: {}
11
- }), i = o;
10
+ }), l = o;
12
11
  export {
13
- i as PieDataTable,
14
- s as defaultProps
12
+ l as PieDataTable
15
13
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@justeattakeaway/pie-data-table",
3
3
  "description": "PIE Design System Data Table built using Web Components",
4
- "version": "0.0.0-snapshot-release-20250807232835",
4
+ "version": "0.0.0-snapshot-release-20250811075227",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
7
7
  "module": "dist/index.js",
@@ -39,7 +39,7 @@
39
39
  "cem-plugin-module-file-extensions": "0.0.5"
40
40
  },
41
41
  "dependencies": {
42
- "@justeattakeaway/pie-webc-core": "1.0.0"
42
+ "@justeattakeaway/pie-webc-core": "0.0.0-snapshot-release-20250811075227"
43
43
  },
44
44
  "volta": {
45
45
  "extends": "../../../package.json"
@@ -1,72 +1,7 @@
1
1
  @use '@justeattakeaway/pie-css/scss' as p;
2
2
 
3
3
  :host {
4
+ // Note: For consistency sake, the recommended display should be either
5
+ // "block" or "inline-block", otherwise it can be ommited for floating elements
4
6
  display: block;
5
7
  }
6
-
7
- .c-data-table {
8
- --data-table-background-color: var(--dt-color-container-default);
9
- --data-table-background-hover-or-active: var(--dt-color-container-subtle);
10
- --data-table-border-color: var(--dt-color-border-default);
11
- --data-table-border-radius: var(--dt-radius-rounded-c);
12
- --data-table-text-color: var(--dt-color-content-default);
13
-
14
- background-color: var(--data-table-background-color);
15
- border: 1px solid var(--data-table-border-color);
16
- border-radius: var(--data-table-border-radius);
17
- color: var(--data-table-text-color);
18
-
19
- width: 100%;
20
- overflow: hidden;
21
-
22
- table {
23
- border-spacing: 0;
24
- width: 100%;
25
- }
26
-
27
- tbody {
28
- overflow: auto;
29
- }
30
-
31
- tbody tr:hover {
32
- background-color: var(--data-table-background-hover-or-active);
33
- }
34
- }
35
-
36
- .c-data-table-header {
37
- background-color: transparent;
38
- font-weight: var(--dt-font-weight-bold);
39
- color: var(--data-table-header-color);
40
- text-align: left;
41
- padding: var(--dt-spacing-d);
42
- border-bottom: 1px solid var(--data-table-border-color);
43
- }
44
-
45
- .c-data-table-header-text-align--left {
46
- text-align: left;
47
- }
48
-
49
- .c-data-table-header-text-align--right {
50
- text-align: right;
51
- }
52
-
53
- .c-data-table-header-text-align--center {
54
- text-align: center;
55
- }
56
-
57
- .c-data-table-cell {
58
- padding: var(--dt-spacing-d);
59
- border-bottom: 1px solid var(--data-table-border-color);
60
- }
61
-
62
- .c-data-table-cell-text-align--left {
63
- text-align: left;
64
- }
65
-
66
- .c-data-table-cell-text-align--right {
67
- text-align: right;
68
- }
69
-
70
- .c-data-table-cell-text-align--center {
71
- text-align: center;
72
- }
package/src/defs.ts CHANGED
@@ -1,42 +1,3 @@
1
- import { type ComponentDefaultProps } from '@justeattakeaway/pie-webc-core';
2
-
3
- export interface Column {
4
- /**
5
- * Unique identifier for the column
6
- * */
7
- id: string;
8
- /**
9
- * Optional property to specify the display name for the column heading
10
- * */
11
- heading: string;
12
- /**
13
- * Optional property to specify the text alignment of the column
14
- * */
15
- textAlign?: 'left' | 'right' | 'center';
16
-
17
- /**
18
- * Optional property to specify the width of the column
19
- * */
20
- width?: string;
21
- /**
22
- * Optional property to specify the key in the data object to display in this column
23
- * */
24
- accessor?: string;
25
- }
26
-
27
- export interface DataTableProps {
28
- /**
29
- * Array of column definitions
30
- */
31
- columns: Column[];
32
-
33
- /**
34
- * Array of data objects to display
35
- */
36
- data: Record<string, unknown>[];
37
- }
38
-
39
- export const defaultProps: ComponentDefaultProps<DataTableProps, keyof Omit<DataTableProps, 'columns' | 'data'>> = {
40
- hasBorder: true,
41
- isStriped: false,
42
- };
1
+ // TODO - please remove the eslint disable comment below when you add props to this interface
2
+ // eslint-disable-next-line @typescript-eslint/no-empty-interface
3
+ export interface DataTableProps {}
package/src/index.ts CHANGED
@@ -1,14 +1,9 @@
1
- import { html, nothing, unsafeCSS } from 'lit';
2
- import { property } from 'lit/decorators.js';
1
+ import { html, unsafeCSS } from 'lit';
3
2
  import { PieElement } from '@justeattakeaway/pie-webc-core/src/internals/PieElement';
4
3
  import { RtlMixin, safeCustomElement } from '@justeattakeaway/pie-webc-core';
5
- import { classMap } from 'lit/directives/class-map.js';
6
4
 
7
5
  import styles from './data-table.scss?inline';
8
- import {
9
- type DataTableProps,
10
- type Column,
11
- } from './defs';
6
+ import { type DataTableProps } from './defs';
12
7
 
13
8
  // Valid values available to consumers
14
9
  export * from './defs';
@@ -20,101 +15,8 @@ const componentSelector = 'pie-data-table';
20
15
  */
21
16
  @safeCustomElement('pie-data-table')
22
17
  export class PieDataTable extends RtlMixin(PieElement) implements DataTableProps {
23
- /**
24
- * Array of column definitions
25
- */
26
- @property({ type: Array })
27
- public columns: Column[] = [];
28
-
29
- /**
30
- * Array of data objects to display
31
- */
32
- @property({ type: Array })
33
- public data: Record<string, unknown>[] = [];
34
-
35
- /**
36
- * Renders a header cell for the table
37
- * @param column - The column definition to render
38
- */
39
- private renderHeaderCell (column: Column) {
40
- const { width, heading, textAlign } = column;
41
- const style = width ? `width: ${width}` : nothing;
42
- const classes = {
43
- 'c-data-table-header': true,
44
- 'c-data-table-header-text-align--left': textAlign === 'left',
45
- 'c-data-table-header-text-align--right': textAlign === 'right',
46
- 'c-data-table-header-text-align--center': textAlign === 'center',
47
- };
48
-
49
- return html`
50
- <th style="${style}" class="${classMap(classes)}">
51
- ${heading}
52
- </th>
53
- `;
54
- }
55
-
56
- /**
57
- * Renders the table header
58
- */
59
- private renderTableHeader () {
60
- return html`
61
- <thead>
62
- <tr>
63
- ${this.columns.map((column) => this.renderHeaderCell(column))}
64
- </tr>
65
- </thead>
66
- `;
67
- }
68
-
69
- /**
70
- * Renders a table cell for the given column and row
71
- * @param column - The column definition to render
72
- * @param row - The data object for the current row
73
- */
74
- private renderTableCell (column: Column, row: Record<string, unknown>) {
75
- const classes = {
76
- 'c-data-table-cell': true,
77
- 'c-data-table-cell-text-align--left': column.textAlign === 'left',
78
- 'c-data-table-cell-text-align--right': column.textAlign === 'right',
79
- 'c-data-table-cell-text-align--center': column.textAlign === 'center',
80
- };
81
-
82
- return html`
83
- <td class="${classMap(classes)}">
84
- ${column.accessor ? row[column.accessor] : ''}
85
- </td>
86
- `;
87
- }
88
-
89
- /**
90
- * Renders the table rows
91
- */
92
- private renderTableRows () {
93
- return html`
94
- <tbody>
95
- ${this.data.map((row) => html`
96
- <tr class="c-data-table-row">
97
- ${this.columns.map((column) => this.renderTableCell(column, row))}
98
- </tr>
99
- `)}
100
- </tbody>
101
- `;
102
- }
103
-
104
18
  render () {
105
- const classes = {
106
- 'c-data-table': true,
107
- };
108
-
109
- return html`
110
- <div class="${classMap(classes)}">
111
- <slot name="table-header"></slot>
112
- <table>
113
- ${this.columns.length > 0 ? this.renderTableHeader() : nothing}
114
- ${this.data.length > 0 ? this.renderTableRows() : nothing}
115
- </table>
116
- </div>
117
- `;
19
+ return html`<h1 data-test-id="pie-data-table">Hello world!</h1>`;
118
20
  }
119
21
 
120
22
  // Renders a `CSSResult` generated from SCSS by Vite
@@ -1,11 +0,0 @@
1
- import { LitElement as i } from "lit";
2
- const t = class t extends i {
3
- willUpdate() {
4
- this.getAttribute("v") || this.setAttribute("v", t.v);
5
- }
6
- };
7
- t.v = "0.1.0";
8
- let s = t;
9
- export {
10
- s as P
11
- };
@@ -1,9 +0,0 @@
1
- import { default as React } from 'react';
2
- /**
3
- * TODO: Verify if ReactBaseType can be set as a more specific React interface
4
- * Use the React IntrinsicElements interface to find how to map standard HTML elements to existing React Interfaces
5
- * Example: an HTML button maps to `React.ButtonHTMLAttributes<HTMLButtonElement>`
6
- * https://github.com/DefinitelyTyped/DefinitelyTyped/blob/0bb210867d16170c4a08d9ce5d132817651a0f80/types/react/index.d.ts#L2829
7
- */
8
- export type ReactBaseType = React.HTMLAttributes<HTMLElement>;
9
- //# sourceMappingURL=defs-react.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"defs-react.d.ts","sourceRoot":"","sources":["../src/defs-react.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA"}
package/dist/defs.d.ts DELETED
@@ -1,35 +0,0 @@
1
- import { ComponentDefaultProps } from '@justeattakeaway/pie-webc-core';
2
- export interface Column {
3
- /**
4
- * Unique identifier for the column
5
- * */
6
- id: string;
7
- /**
8
- * Optional property to specify the display name for the column heading
9
- * */
10
- heading: string;
11
- /**
12
- * Optional property to specify the text alignment of the column
13
- * */
14
- textAlign?: 'left' | 'right' | 'center';
15
- /**
16
- * Optional property to specify the width of the column
17
- * */
18
- width?: string;
19
- /**
20
- * Optional property to specify the key in the data object to display in this column
21
- * */
22
- accessor?: string;
23
- }
24
- export interface DataTableProps {
25
- /**
26
- * Array of column definitions
27
- */
28
- columns: Column[];
29
- /**
30
- * Array of data objects to display
31
- */
32
- data: Record<string, unknown>[];
33
- }
34
- export declare const defaultProps: ComponentDefaultProps<DataTableProps, keyof Omit<DataTableProps, 'columns' | 'data'>>;
35
- //# sourceMappingURL=defs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"defs.d.ts","sourceRoot":"","sources":["../src/defs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAE5E,MAAM,WAAW,MAAM;IACrB;;SAEK;IACL,EAAE,EAAE,MAAM,CAAC;IACX;;SAEK;IACL,OAAO,EAAE,MAAM,CAAC;IAChB;;SAEK;IACL,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;IAExC;;SAEK;IACL,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;SAEK;IACL,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B;;OAEG;IACH,OAAO,EAAE,MAAM,EAAE,CAAC;IAElB;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;CACjC;AAED,eAAO,MAAM,YAAY,EAAE,qBAAqB,CAAC,cAAc,EAAE,MAAM,IAAI,CAAC,cAAc,EAAE,SAAS,GAAG,MAAM,CAAC,CAG9G,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,yDAAyD,CAAC;AAKrF,OAAO,EACH,KAAK,cAAc,EACnB,KAAK,MAAM,EACd,MAAM,QAAQ,CAAC;AAGhB,cAAc,QAAQ,CAAC;AAEvB,QAAA,MAAM,iBAAiB,mBAAmB,CAAC;;AAE3C;;GAEG;AACH,qBACa,YAAa,SAAQ,iBAAqB,YAAW,cAAc;IAC5E;;OAEG;IAEI,OAAO,EAAE,MAAM,EAAE,CAAM;IAE9B;;OAEG;IAEI,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAM;IAE5C;;;OAGG;IACH,OAAO,CAAC,gBAAgB;IAiBxB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAUzB;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAevB;;OAEG;IACH,OAAO,CAAC,eAAe;IAYvB,MAAM;IAiBN,MAAM,CAAC,MAAM,0BAAqB;CACrC;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,CAAC,iBAAiB,CAAC,EAAE,YAAY,CAAC;KACrC;CACJ"}
@@ -1,9 +0,0 @@
1
- import { default as React } from 'react';
2
- /**
3
- * TODO: Verify if ReactBaseType can be set as a more specific React interface
4
- * Use the React IntrinsicElements interface to find how to map standard HTML elements to existing React Interfaces
5
- * Example: an HTML button maps to `React.ButtonHTMLAttributes<HTMLButtonElement>`
6
- * https://github.com/DefinitelyTyped/DefinitelyTyped/blob/0bb210867d16170c4a08d9ce5d132817651a0f80/types/react/index.d.ts#L2829
7
- */
8
- export type ReactBaseType = React.HTMLAttributes<HTMLElement>;
9
- //# sourceMappingURL=defs-react.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"defs-react.d.ts","sourceRoot":"","sources":["../../src/pie-data-table-header/defs-react.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAC/B;;;;;GAKG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA"}
@@ -1,18 +0,0 @@
1
- import { ComponentDefaultProps } from '@justeattakeaway/pie-webc-core';
2
- export declare const dataTableHeaderVariant: string[];
3
- export interface DataTableHeaderProps {
4
- /**
5
- * Title text for the data table header
6
- */
7
- title: string;
8
- /**
9
- * Subtitle text for the data table header
10
- */
11
- subtitle?: string;
12
- /**
13
- * Emphasis level for the header
14
- */
15
- variant?: typeof dataTableHeaderVariant[number];
16
- }
17
- export declare const defaultProps: ComponentDefaultProps<DataTableHeaderProps, keyof Omit<DataTableHeaderProps, 'title' | 'subtitle'>>;
18
- //# sourceMappingURL=defs.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"defs.d.ts","sourceRoot":"","sources":["../../src/pie-data-table-header/defs.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,qBAAqB,EAAE,MAAM,gCAAgC,CAAC;AAE5E,eAAO,MAAM,sBAAsB,UAAuB,CAAC;AAE3D,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,KAAK,EAAE,MAAM,CAAC;IACd;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;OAEG;IACH,OAAO,CAAC,EAAE,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAC;CACjD;AAED,eAAO,MAAM,YAAY,EAAE,qBAAqB,CAAC,oBAAoB,EAAE,MAAM,IAAI,CAAC,oBAAoB,EAAE,OAAO,GAAG,UAAU,CAAC,CAE5H,CAAC"}
@@ -1,36 +0,0 @@
1
- import { PieElement } from '@justeattakeaway/pie-webc-core/src/internals/PieElement';
2
- import { DataTableHeaderProps, defaultProps } from './defs';
3
- export * from './defs';
4
- declare const componentSelector = "pie-data-table-header";
5
- /**
6
- * @tagname pie-data-table-header
7
- */
8
- export declare class PieDataTableHeader extends PieElement implements DataTableHeaderProps {
9
- /**
10
- * Title text for the data table header
11
- */
12
- title: DataTableHeaderProps['title'];
13
- /**
14
- * Subtitle text for the data table header
15
- */
16
- subtitle: DataTableHeaderProps['subtitle'];
17
- /**
18
- * Emphasis level for the header
19
- */
20
- variant?: typeof defaultProps.variant;
21
- private hasActionButtons;
22
- /**
23
- * Handles the slot change event to determine if there are action buttons.
24
- *
25
- * @param event - The slot change event
26
- */
27
- private handleSlotChange;
28
- render(): import('lit-html').TemplateResult<1>;
29
- static styles: import('lit').CSSResult;
30
- }
31
- declare global {
32
- interface HTMLElementTagNameMap {
33
- [componentSelector]: PieDataTableHeader;
34
- }
35
- }
36
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pie-data-table-header/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,MAAM,yDAAyD,CAAC;AAKrF,OAAO,EACH,KAAK,oBAAoB,EAEzB,YAAY,EACf,MAAM,QAAQ,CAAC;AAGhB,cAAc,QAAQ,CAAC;AAEvB,QAAA,MAAM,iBAAiB,0BAA0B,CAAC;AAElD;;GAEG;AACH,qBACa,kBAAmB,SAAQ,UAAW,YAAW,oBAAoB;IAC9E;;OAEG;IAEI,KAAK,EAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAE7C;;OAEG;IAEI,QAAQ,EAAE,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAElD;;OAEG;IAGI,OAAO,CAAC,EAAE,OAAO,YAAY,CAAC,OAAO,CAAC;IAG7C,OAAO,CAAC,gBAAgB,CAAS;IAEjC;;;;OAIG;IACH,OAAO,CAAC,gBAAgB;IAKxB,MAAM;IA0BN,MAAM,CAAC,MAAM,0BAAqB;CACrC;AAED,OAAO,CAAC,MAAM,CAAC;IACX,UAAU,qBAAqB;QAC3B,CAAC,iBAAiB,CAAC,EAAE,kBAAkB,CAAC;KAC3C;CACJ"}
@@ -1,71 +0,0 @@
1
- import { unsafeCSS as h, nothing as p, html as n } from "lit";
2
- import { property as c, state as b } from "lit/decorators.js";
3
- import { P as g } from "../PieElement-BsEd8lGj.js";
4
- import { validPropertyValues as u, safeCustomElement as f } from "@justeattakeaway/pie-webc-core";
5
- import { classMap as v } from "lit/directives/class-map.js";
6
- const m = "*,*:after,*:before{box-sizing:inherit}:host{display:block}.c-data-table-header{--data-table-header-background: transparent;padding:var(--dt-spacing-d);background-color:var(--data-table-header-background);border-bottom:1px solid var(--data-table-border-color);display:flex;justify-content:space-between;align-items:flex-end}.c-data-table-header-title-wrapper{display:flex;flex-direction:column;gap:var(--dt-spacing-b)}.c-data-table-header-title{font-weight:var(--dt-font-weight-extrabold);font-size:calc(var(--dt-font-size-24) * 1px);line-height:calc(var(--dt-font-size-24-line-height) * 1px)}.c-data-table-header-subtitle{font-weight:var(--dt-font-weight-regular);font-size:calc(var(--dt-font-size-16) * 1px);line-height:calc(var(--dt-font-size-16-line-height) * 1px)}.c-data-table-header--strong{--data-table-header-background: var(--dt-color-support-brand-02)}.c-data-table-action-buttons-wrapper{display:flex;gap:var(--dt-spacing-d)}", y = ["subtle", "strong"], x = {
7
- variant: "subtle"
8
- };
9
- var w = Object.defineProperty, P = Object.getOwnPropertyDescriptor, l = (e, t, s, o) => {
10
- for (var a = o > 1 ? void 0 : o ? P(t, s) : t, i = e.length - 1, d; i >= 0; i--)
11
- (d = e[i]) && (a = (o ? d(t, s, a) : d(a)) || a);
12
- return o && a && w(t, s, a), a;
13
- };
14
- const S = "pie-data-table-header";
15
- let r = class extends g {
16
- constructor() {
17
- super(...arguments), this.hasActionButtons = !1;
18
- }
19
- /**
20
- * Handles the slot change event to determine if there are action buttons.
21
- *
22
- * @param event - The slot change event
23
- */
24
- handleSlotChange(e) {
25
- const t = e.target;
26
- this.hasActionButtons = t.assignedElements().length > 0;
27
- }
28
- render() {
29
- const { title: e, subtitle: t, variant: s } = this;
30
- return n`
31
- <header class="${v({
32
- "c-data-table-header": !0,
33
- "c-data-table-header--strong": s === "strong"
34
- })}">
35
- <div class="c-data-table-header-title-wrapper">
36
- ${e ? n`<span class="c-data-table-header-title">${e}</span>` : p}
37
- ${t ? n`<span class="c-data-table-header-subtitle">${t}</span>` : p}
38
- </div>
39
- ${this.hasActionButtons ? n`
40
- <div class="c-data-table-action-buttons-wrapper">
41
- <slot name="action-button" @slotchange=${this.handleSlotChange}></slot>
42
- </div>
43
- ` : n`
44
- <slot name="action-button" @slotchange=${this.handleSlotChange} style="display: none;"></slot>
45
- `}
46
- </header>
47
- `;
48
- }
49
- };
50
- r.styles = h(m);
51
- l([
52
- c({ type: String })
53
- ], r.prototype, "title", 2);
54
- l([
55
- c({ type: String })
56
- ], r.prototype, "subtitle", 2);
57
- l([
58
- c({ type: String }),
59
- u(S, y, x.variant)
60
- ], r.prototype, "variant", 2);
61
- l([
62
- b()
63
- ], r.prototype, "hasActionButtons", 2);
64
- r = l([
65
- f("pie-data-table-header")
66
- ], r);
67
- export {
68
- r as PieDataTableHeader,
69
- y as dataTableHeaderVariant,
70
- x as defaultProps
71
- };
@@ -1,7 +0,0 @@
1
- import { PieDataTableHeader as PieDataTableHeaderLit } from './index';
2
- import { DataTableHeaderProps } from './defs';
3
- import * as React from 'react';
4
- export * from './defs';
5
- type ReactBaseType = React.HTMLAttributes<HTMLElement>;
6
- export declare const PieDataTableHeader: React.ForwardRefExoticComponent<React.PropsWithoutRef<DataTableHeaderProps> & React.RefAttributes<PieDataTableHeaderLit> & ReactBaseType>;
7
- //# sourceMappingURL=react.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../../src/pie-data-table-header/react.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,kBAAkB,IAAI,qBAAqB,EAAE,MAAM,SAAS,CAAC;AACtE,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAEnD,cAAc,QAAQ,CAAC;AAUvB,KAAK,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;AAEtD,eAAO,MAAM,kBAAkB,EAA8B,KAAK,CAAC,yBAAyB,CAAC,KAAK,CAAC,eAAe,CAAC,oBAAoB,CAAC,GAClI,KAAK,CAAC,aAAa,CAAC,qBAAqB,CAAC,GAAG,aAAa,CAAC,CAAC"}
@@ -1,16 +0,0 @@
1
- import * as e from "react";
2
- import { createComponent as a } from "@lit/react";
3
- import { PieDataTableHeader as t } from "./index.js";
4
- import { dataTableHeaderVariant as p, defaultProps as s } from "./index.js";
5
- const r = a({
6
- displayName: "PieDataTableHeader",
7
- elementClass: t,
8
- react: e,
9
- tagName: "pie-data-table-header",
10
- events: {}
11
- }), i = r;
12
- export {
13
- i as PieDataTableHeader,
14
- p as dataTableHeaderVariant,
15
- s as defaultProps
16
- };
@@ -1 +0,0 @@
1
- {"version":3,"file":"react.d.ts","sourceRoot":"","sources":["../src/react.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,OAAO,EAAE,YAAY,IAAI,eAAe,EAAE,MAAM,SAAS,CAAC;AAC1D,OAAO,EAAE,KAAK,cAAc,EAAE,MAAM,QAAQ,CAAC;AAE7C,cAAc,QAAQ,CAAC;AAUvB,KAAK,aAAa,GAAG,KAAK,CAAC,cAAc,CAAC,WAAW,CAAC,CAAA;AAEtD,eAAO,MAAM,YAAY,EAAwB,KAAK,CAAC,yBAAyB,CAAC,KAAK,CAAC,eAAe,CAAC,cAAc,CAAC,GAChH,KAAK,CAAC,aAAa,CAAC,eAAe,CAAC,GAAG,aAAa,CAAC,CAAC"}
@@ -1,44 +0,0 @@
1
- @use '@justeattakeaway/pie-css/scss' as p;
2
-
3
- :host {
4
- display: block;
5
- }
6
-
7
- .c-data-table-header {
8
- --data-table-header-background: transparent;
9
- padding: var(--dt-spacing-d);
10
-
11
- background-color: var(--data-table-header-background);
12
- border-bottom: 1px solid var(--data-table-border-color);
13
-
14
- display: flex;
15
- justify-content: space-between;
16
- align-items:flex-end;
17
- }
18
-
19
- .c-data-table-header-title-wrapper {
20
- display: flex;
21
- flex-direction: column;
22
- gap: var(--dt-spacing-b);
23
- }
24
-
25
- .c-data-table-header-title {
26
- font-weight: var(--dt-font-weight-extrabold);
27
- font-size: #{p.font-size(--dt-font-size-24)};
28
- line-height: calc(var(--dt-font-size-24-line-height) * 1px);
29
- }
30
-
31
- .c-data-table-header-subtitle {
32
- font-weight: var(--dt-font-weight-regular);
33
- font-size: #{p.font-size(--dt-font-size-16)};
34
- line-height: calc(var(--dt-font-size-16-line-height) * 1px);
35
- }
36
-
37
- .c-data-table-header--strong {
38
- --data-table-header-background: var(--dt-color-support-brand-02);
39
- }
40
-
41
- .c-data-table-action-buttons-wrapper {
42
- display: flex;
43
- gap: var(--dt-spacing-d);
44
- }
@@ -1,8 +0,0 @@
1
- import type React from 'react';
2
- /**
3
- * TODO: Verify if ReactBaseType can be set as a more specific React interface
4
- * Use the React IntrinsicElements interface to find how to map standard HTML elements to existing React Interfaces
5
- * Example: an HTML button maps to `React.ButtonHTMLAttributes<HTMLButtonElement>`
6
- * https://github.com/DefinitelyTyped/DefinitelyTyped/blob/0bb210867d16170c4a08d9ce5d132817651a0f80/types/react/index.d.ts#L2829
7
- */
8
- export type ReactBaseType = React.HTMLAttributes<HTMLElement>
@@ -1,22 +0,0 @@
1
- import { type ComponentDefaultProps } from '@justeattakeaway/pie-webc-core';
2
-
3
- export const dataTableHeaderVariant = ['subtle', 'strong'];
4
-
5
- export interface DataTableHeaderProps {
6
- /**
7
- * Title text for the data table header
8
- */
9
- title: string;
10
- /**
11
- * Subtitle text for the data table header
12
- */
13
- subtitle?: string;
14
- /**
15
- * Emphasis level for the header
16
- */
17
- variant?: typeof dataTableHeaderVariant[number];
18
- }
19
-
20
- export const defaultProps: ComponentDefaultProps<DataTableHeaderProps, keyof Omit<DataTableHeaderProps, 'title' | 'subtitle'>> = {
21
- variant: 'subtle',
22
- };
@@ -1,89 +0,0 @@
1
- import { html, nothing, unsafeCSS } from 'lit';
2
- import { property, state } from 'lit/decorators.js';
3
- import { PieElement } from '@justeattakeaway/pie-webc-core/src/internals/PieElement';
4
- import { safeCustomElement, validPropertyValues } from '@justeattakeaway/pie-webc-core';
5
- import { classMap } from 'lit/directives/class-map.js';
6
-
7
- import styles from './data-table-header.scss?inline';
8
- import {
9
- type DataTableHeaderProps,
10
- dataTableHeaderVariant,
11
- defaultProps,
12
- } from './defs';
13
-
14
- // Valid values available to consumers
15
- export * from './defs';
16
-
17
- const componentSelector = 'pie-data-table-header';
18
-
19
- /**
20
- * @tagname pie-data-table-header
21
- */
22
- @safeCustomElement('pie-data-table-header')
23
- export class PieDataTableHeader extends PieElement implements DataTableHeaderProps {
24
- /**
25
- * Title text for the data table header
26
- */
27
- @property({ type: String })
28
- public title!: DataTableHeaderProps['title'];
29
-
30
- /**
31
- * Subtitle text for the data table header
32
- */
33
- @property({ type: String })
34
- public subtitle: DataTableHeaderProps['subtitle'];
35
-
36
- /**
37
- * Emphasis level for the header
38
- */
39
- @property({ type: String })
40
- @validPropertyValues(componentSelector, dataTableHeaderVariant, defaultProps.variant)
41
- public variant?: typeof defaultProps.variant;
42
-
43
- @state()
44
- private hasActionButtons = false;
45
-
46
- /**
47
- * Handles the slot change event to determine if there are action buttons.
48
- *
49
- * @param event - The slot change event
50
- */
51
- private handleSlotChange (event: Event) {
52
- const slot = event.target as HTMLSlotElement;
53
- this.hasActionButtons = slot.assignedElements().length > 0;
54
- }
55
-
56
- render () {
57
- const { title, subtitle, variant } = this;
58
-
59
- const classes = {
60
- 'c-data-table-header': true,
61
- 'c-data-table-header--strong': variant === 'strong',
62
- };
63
-
64
- return html`
65
- <header class="${classMap(classes)}">
66
- <div class="c-data-table-header-title-wrapper">
67
- ${title ? html`<span class="c-data-table-header-title">${title}</span>` : nothing}
68
- ${subtitle ? html`<span class="c-data-table-header-subtitle">${subtitle}</span>` : nothing}
69
- </div>
70
- ${this.hasActionButtons ? html`
71
- <div class="c-data-table-action-buttons-wrapper">
72
- <slot name="action-button" @slotchange=${this.handleSlotChange}></slot>
73
- </div>
74
- ` : html`
75
- <slot name="action-button" @slotchange=${this.handleSlotChange} style="display: none;"></slot>
76
- `}
77
- </header>
78
- `;
79
- }
80
-
81
- // Renders a `CSSResult` generated from SCSS by Vite
82
- static styles = unsafeCSS(styles);
83
- }
84
-
85
- declare global {
86
- interface HTMLElementTagNameMap {
87
- [componentSelector]: PieDataTableHeader;
88
- }
89
- }
@@ -1,19 +0,0 @@
1
- import * as React from 'react';
2
- import { createComponent } from '@lit/react';
3
- import { PieDataTableHeader as PieDataTableHeaderLit } from './index';
4
- import { type DataTableHeaderProps } from './defs';
5
-
6
- export * from './defs';
7
-
8
- const PieDataTableHeaderReact = createComponent({
9
- displayName: 'PieDataTableHeader',
10
- elementClass: PieDataTableHeaderLit,
11
- react: React,
12
- tagName: 'pie-data-table-header',
13
- events: {},
14
- });
15
-
16
- type ReactBaseType = React.HTMLAttributes<HTMLElement>
17
-
18
- export const PieDataTableHeader = PieDataTableHeaderReact as React.ForwardRefExoticComponent<React.PropsWithoutRef<DataTableHeaderProps>
19
- & React.RefAttributes<PieDataTableHeaderLit> & ReactBaseType>;