@aquera/nile-elements 0.1.57 → 0.1.58

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 (67) hide show
  1. package/README.md +3 -0
  2. package/demo/index.html +1 -1
  3. package/dist/index.cjs.js +1 -1
  4. package/dist/index.esm.js +1 -1
  5. package/dist/index.js +240 -90
  6. package/dist/internal/resizable-table-helper.cjs.js +2 -0
  7. package/dist/internal/resizable-table-helper.cjs.js.map +1 -0
  8. package/dist/internal/resizable-table-helper.esm.js +1 -0
  9. package/dist/internal/resizable-table-styles.cjs.js +2 -0
  10. package/dist/internal/resizable-table-styles.cjs.js.map +1 -0
  11. package/dist/internal/resizable-table-styles.esm.js +120 -0
  12. package/dist/nile-table-body/index.cjs.js +1 -1
  13. package/dist/nile-table-body/index.esm.js +1 -1
  14. package/dist/nile-table-body/nile-table-body.cjs.js +1 -1
  15. package/dist/nile-table-body/nile-table-body.cjs.js.map +1 -1
  16. package/dist/nile-table-body/nile-table-body.css.cjs.js +1 -1
  17. package/dist/nile-table-body/nile-table-body.css.cjs.js.map +1 -1
  18. package/dist/nile-table-body/nile-table-body.css.esm.js +4 -2
  19. package/dist/nile-table-body/nile-table-body.esm.js +3 -2
  20. package/dist/nile-table-cell-item/index.cjs.js +1 -1
  21. package/dist/nile-table-cell-item/index.esm.js +1 -1
  22. package/dist/nile-table-cell-item/nile-table-cell-item.cjs.js +1 -1
  23. package/dist/nile-table-cell-item/nile-table-cell-item.cjs.js.map +1 -1
  24. package/dist/nile-table-cell-item/nile-table-cell-item.css.cjs.js +1 -1
  25. package/dist/nile-table-cell-item/nile-table-cell-item.css.cjs.js.map +1 -1
  26. package/dist/nile-table-cell-item/nile-table-cell-item.css.esm.js +20 -3
  27. package/dist/nile-table-cell-item/nile-table-cell-item.esm.js +8 -3
  28. package/dist/nile-table-header-item/index.cjs.js +1 -1
  29. package/dist/nile-table-header-item/index.esm.js +1 -1
  30. package/dist/nile-table-header-item/nile-table-header-item.cjs.js +1 -1
  31. package/dist/nile-table-header-item/nile-table-header-item.cjs.js.map +1 -1
  32. package/dist/nile-table-header-item/nile-table-header-item.css.cjs.js +1 -1
  33. package/dist/nile-table-header-item/nile-table-header-item.css.cjs.js.map +1 -1
  34. package/dist/nile-table-header-item/nile-table-header-item.css.esm.js +7 -2
  35. package/dist/nile-table-header-item/nile-table-header-item.esm.js +9 -8
  36. package/dist/src/internal/resizable-table-helper.d.ts +59 -0
  37. package/dist/src/internal/resizable-table-helper.js +111 -0
  38. package/dist/src/internal/resizable-table-helper.js.map +1 -0
  39. package/dist/src/internal/resizable-table-styles.d.ts +16 -0
  40. package/dist/src/internal/resizable-table-styles.js +137 -0
  41. package/dist/src/internal/resizable-table-styles.js.map +1 -0
  42. package/dist/src/nile-table-body/nile-table-body.css.js +3 -0
  43. package/dist/src/nile-table-body/nile-table-body.css.js.map +1 -1
  44. package/dist/src/nile-table-body/nile-table-body.d.ts +2 -0
  45. package/dist/src/nile-table-body/nile-table-body.js +10 -0
  46. package/dist/src/nile-table-body/nile-table-body.js.map +1 -1
  47. package/dist/src/nile-table-cell-item/nile-table-cell-item.css.js +19 -1
  48. package/dist/src/nile-table-cell-item/nile-table-cell-item.css.js.map +1 -1
  49. package/dist/src/nile-table-cell-item/nile-table-cell-item.d.ts +3 -0
  50. package/dist/src/nile-table-cell-item/nile-table-cell-item.js +27 -8
  51. package/dist/src/nile-table-cell-item/nile-table-cell-item.js.map +1 -1
  52. package/dist/src/nile-table-header-item/nile-table-header-item.css.js +6 -0
  53. package/dist/src/nile-table-header-item/nile-table-header-item.css.js.map +1 -1
  54. package/dist/src/nile-table-header-item/nile-table-header-item.d.ts +3 -0
  55. package/dist/src/nile-table-header-item/nile-table-header-item.js +22 -15
  56. package/dist/src/nile-table-header-item/nile-table-header-item.js.map +1 -1
  57. package/dist/tsconfig.tsbuildinfo +1 -1
  58. package/package.json +2 -2
  59. package/src/internal/resizable-table-helper.ts +151 -0
  60. package/src/internal/resizable-table-styles.ts +144 -0
  61. package/src/nile-table-body/nile-table-body.css.ts +3 -0
  62. package/src/nile-table-body/nile-table-body.ts +9 -0
  63. package/src/nile-table-cell-item/nile-table-cell-item.css.ts +19 -1
  64. package/src/nile-table-cell-item/nile-table-cell-item.ts +22 -5
  65. package/src/nile-table-header-item/nile-table-header-item.css.ts +6 -0
  66. package/src/nile-table-header-item/nile-table-header-item.ts +11 -5
  67. package/vscode-html-custom-data.json +15 -4
package/package.json CHANGED
@@ -3,7 +3,7 @@
3
3
  "description": "Webcomponent nile-elements following open-wc recommendations",
4
4
  "license": "MIT",
5
5
  "author": "nile-elements",
6
- "version": "0.1.57",
6
+ "version": "0.1.58",
7
7
  "main": "dist/src/index.js",
8
8
  "type": "module",
9
9
  "module": "dist/src/index.js",
@@ -191,4 +191,4 @@
191
191
  "prettier --write"
192
192
  ]
193
193
  }
194
- }
194
+ }
@@ -0,0 +1,151 @@
1
+ /**
2
+ * Copyright Aquera Inc 2025
3
+ *
4
+ * This source code is licensed under the BSD-3-Clause license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ /**
9
+ * Resizable Helper Utility
10
+ * Provides common functionality for resizable table columns
11
+ */
12
+
13
+ export interface ResizeOptions {
14
+ minWidth?: number;
15
+ startX: number;
16
+ startWidth: number;
17
+ element: HTMLElement;
18
+ }
19
+
20
+ export interface ColumnResizeData {
21
+ columnIndex: number;
22
+ newWidth: number;
23
+ }
24
+
25
+ /**
26
+ * Handles the start of a resize operation
27
+ * @param e Mouse event
28
+ * @param options Resize configuration options
29
+ * @returns Cleanup function to remove event listeners
30
+ */
31
+ export function handleResizeStart(e: MouseEvent, options: ResizeOptions): () => void {
32
+ e.preventDefault();
33
+ e.stopPropagation();
34
+
35
+ const { minWidth = 50, startX, startWidth, element } = options;
36
+ const resizer = e.target as HTMLElement;
37
+
38
+ resizer.classList.add('resizing');
39
+
40
+ const onMouseMove = (e: MouseEvent) => {
41
+ e.preventDefault();
42
+ e.stopPropagation();
43
+
44
+ const delta = e.pageX - startX;
45
+ const newWidth = Math.max(minWidth, startWidth + delta);
46
+
47
+ element.style.width = newWidth + 'px';
48
+
49
+ synchronizeColumnWidth(element, newWidth);
50
+ };
51
+
52
+ const onMouseUp = () => {
53
+ resizer.classList.remove('resizing');
54
+ document.removeEventListener('mousemove', onMouseMove);
55
+ document.removeEventListener('mouseup', onMouseUp);
56
+ };
57
+
58
+ document.addEventListener('mousemove', onMouseMove);
59
+ document.addEventListener('mouseup', onMouseUp);
60
+
61
+ return () => {
62
+ document.removeEventListener('mousemove', onMouseMove);
63
+ document.removeEventListener('mouseup', onMouseUp);
64
+ };
65
+ }
66
+
67
+ /**
68
+ * Gets the column index of an element within its table row
69
+ * @param element The table cell or header element
70
+ * @param selector The CSS selector for the column elements
71
+ * @returns Column index (0-based)
72
+ */
73
+ export function getColumnIndex(element: HTMLElement, selector: string): number {
74
+ const tableRow = element.closest('nile-table-row');
75
+ if (tableRow) {
76
+ const columns = tableRow.querySelectorAll(selector);
77
+ return Array.from(columns).indexOf(element);
78
+ }
79
+ return 0;
80
+ }
81
+
82
+ /**
83
+ * Synchronizes the width of all cells in the same column
84
+ * @param sourceElement The element that was resized
85
+ * @param newWidth The new width to apply
86
+ */
87
+ export function synchronizeColumnWidth(sourceElement: HTMLElement, newWidth: number): void {
88
+ const tableBody = sourceElement.closest('nile-table-body');
89
+ if (!tableBody) return;
90
+
91
+ const isHeader = sourceElement.tagName.toLowerCase() === 'nile-table-header-item';
92
+ const selector = isHeader ? 'nile-table-header-item' : 'nile-table-cell-item';
93
+ const targetSelector = isHeader ? 'nile-table-cell-item' : 'nile-table-cell-item';
94
+
95
+ const columnIndex = getColumnIndex(sourceElement, selector);
96
+ const rows = tableBody.querySelectorAll('nile-table-row');
97
+
98
+ rows.forEach(row => {
99
+ const cells = row.querySelectorAll(targetSelector);
100
+ if (cells[columnIndex]) {
101
+ cells[columnIndex].style.width = newWidth + 'px';
102
+ }
103
+ });
104
+ }
105
+
106
+ /**
107
+ * Checks if an element has the resizable attribute
108
+ * @param element The element to check
109
+ * @returns True if the element is resizable
110
+ */
111
+ export function isResizable(element: HTMLElement): boolean {
112
+ return element.hasAttribute('resizable');
113
+ }
114
+
115
+ /**
116
+ * Creates a resize handler function for use in component event listeners
117
+ * @param element The element to make resizable
118
+ * @param minWidth Minimum width constraint
119
+ * @returns Event handler function
120
+ */
121
+ export function createResizeHandler(element: HTMLElement, minWidth: number = 50): (e: MouseEvent) => void {
122
+ return (e: MouseEvent) => {
123
+ const options: ResizeOptions = {
124
+ minWidth,
125
+ startX: e.pageX,
126
+ startWidth: element.offsetWidth,
127
+ element
128
+ };
129
+
130
+ handleResizeStart(e, options);
131
+ };
132
+ }
133
+
134
+ /**
135
+ * Detects if any columns in a table are resizable
136
+ * @param tableBody The table body element
137
+ * @returns True if any columns have resizable attribute
138
+ */
139
+ export function hasResizableColumns(tableBody: HTMLElement): boolean {
140
+ const headerItems = tableBody.querySelectorAll('nile-table-header-item');
141
+ const cellItems = tableBody.querySelectorAll('nile-table-cell-item');
142
+
143
+ const hasResizableHeaders = Array.from(headerItems).some(item =>
144
+ isResizable(item)
145
+ );
146
+ const hasResizableCells = Array.from(cellItems).some(item =>
147
+ isResizable(item)
148
+ );
149
+
150
+ return hasResizableHeaders || hasResizableCells;
151
+ }
@@ -0,0 +1,144 @@
1
+ /**
2
+ * Copyright Aquera Inc 2023
3
+ *
4
+ * This source code is licensed under the BSD-3-Clause license found in the
5
+ * LICENSE file in the root directory of this source tree.
6
+ */
7
+
8
+ import { css } from 'lit';
9
+
10
+ /**
11
+ * Resizable Styles Utility
12
+ * Centralized styles for resizable table functionality
13
+ */
14
+
15
+ export const resizableHostStyles = css`
16
+ :host([resizable]) {
17
+ position: relative;
18
+ overflow: hidden;
19
+ table-layout: fixed;
20
+ }
21
+ `;
22
+
23
+ export const resizableHeaderStyles = css`
24
+ :host([resizable]) {
25
+ position: relative;
26
+ }
27
+
28
+ :host([resizable]) .header__item__wrapper {
29
+ border-right: 1px solid var(--nile-colors-neutral-400);
30
+ position: relative;
31
+ }
32
+ `;
33
+
34
+ export const resizerStyles = css`
35
+ .resizer {
36
+ position: absolute;
37
+ right: 0;
38
+ top: -1000px;
39
+ bottom: -1000px;
40
+ width: 8px;
41
+ cursor: col-resize;
42
+ user-select: none;
43
+ background-color: var(--nile-colors-neutral-100);
44
+ transition: background-color 0.2s;
45
+ z-index: 10;
46
+ opacity: 0;
47
+ transition: opacity 0.2s ease;
48
+ pointer-events: none;
49
+ }
50
+
51
+ :host([resizable]):hover .resizer {
52
+ opacity: 1;
53
+ pointer-events: auto;
54
+ }
55
+
56
+ .resizer::before {
57
+ content: '';
58
+ position: absolute;
59
+ right: 3px;
60
+ top: 0;
61
+ width: 2px;
62
+ height: 100%;
63
+ background-color: var(--nile-colors-neutral-500);
64
+ opacity: 0.8;
65
+ }
66
+
67
+ .resizer:hover {
68
+ background-color: var(--nile-colors-neutral-400);
69
+ }
70
+
71
+ .resizer:hover::before {
72
+ background-color: var(--nile-colors-neutral-700);
73
+ opacity: 1;
74
+ }
75
+
76
+ .resizer.resizing {
77
+ background-color: var(--nile-colors-neutral-400);
78
+ opacity: 1;
79
+ pointer-events: auto;
80
+ }
81
+
82
+ .resizer.resizing::before {
83
+ background-color: var(--nile-colors-neutral-700);
84
+ opacity: 1;
85
+ width: 3px;
86
+ }
87
+ `;
88
+
89
+ export const headerResizerStyles = css`
90
+ .resizer {
91
+ position: absolute;
92
+ right: -2px;
93
+ top: -1000px;
94
+ bottom: -1000px;
95
+ width: 8px;
96
+ cursor: ew-resize;
97
+ user-select: none;
98
+ transition: background-color 0.2s;
99
+ z-index: 10;
100
+ opacity: 0;
101
+ transition: opacity 0.2s ease;
102
+ }
103
+
104
+ :host([resizable]):hover .resizer {
105
+ opacity: 1;
106
+ }
107
+
108
+ .resizer::before {
109
+ content: '';
110
+ position: absolute;
111
+ height: 100%;
112
+ opacity: 0.8;
113
+ }
114
+
115
+ .resizer.resizing {
116
+ border-right: 4px double var(--nile-colors-neutral-400);
117
+ background-color: transparent;
118
+ opacity: 1;
119
+ }
120
+ `;
121
+
122
+ export const resizableSlotStyles = css`
123
+ :host([resizable]) ::slotted(*) {
124
+ overflow: hidden;
125
+ text-overflow: ellipsis;
126
+ white-space: nowrap;
127
+ display: block;
128
+ }
129
+
130
+ :host([resizable]) ::slotted(span),
131
+ :host([resizable]) ::slotted(div),
132
+ :host([resizable]) ::slotted(p) {
133
+ overflow: hidden;
134
+ text-overflow: ellipsis;
135
+ white-space: nowrap;
136
+ display: block;
137
+ }
138
+ `;
139
+
140
+ export const tableLayoutStyles = css`
141
+ .nile__table__body[resizable] {
142
+ table-layout: fixed;
143
+ }
144
+ `;
@@ -6,6 +6,7 @@
6
6
  */
7
7
 
8
8
  import { css } from 'lit';
9
+ import { tableLayoutStyles } from '../internal/resizable-table-styles';
9
10
 
10
11
  /**
11
12
  * TableBody CSS
@@ -48,6 +49,8 @@ export const styles = css`
48
49
  slot::slotted(nile-table-row:last-child) {
49
50
  border-bottom: 0px;
50
51
  }
52
+
53
+ ${tableLayoutStyles}
51
54
  `;
52
55
 
53
56
  export default [styles];
@@ -24,6 +24,7 @@ import {
24
24
  import { styles } from './nile-table-body.css';
25
25
  import NileElement from '../internal/nile-element';
26
26
  import { getInnerHTML } from '../slot';
27
+ import { hasResizableColumns } from '../internal/resizable-table-helper';
27
28
 
28
29
  /**
29
30
  * nile-table-body component.
@@ -46,6 +47,7 @@ export class NileTableBody extends NileElement {
46
47
  @state() private header_rows_data: any[] = [];
47
48
  @state() private sort__index: number;
48
49
  @state() private search__index: number;
50
+ @state() private hasResizableColumns = false;
49
51
 
50
52
  public static get styles(): CSSResultArray {
51
53
  return [styles];
@@ -67,6 +69,10 @@ export class NileTableBody extends NileElement {
67
69
  return this.header_rows_data.indexOf(index__value);
68
70
  }
69
71
 
72
+ private checkForResizableColumns() {
73
+ this.hasResizableColumns = hasResizableColumns(this);
74
+ }
75
+
70
76
  handleSlotchange(e: any) {
71
77
  let row_data: any = [];
72
78
  this._childNodes.forEach((child: any) => {
@@ -88,6 +94,8 @@ export class NileTableBody extends NileElement {
88
94
  row_data = [];
89
95
  }
90
96
  });
97
+
98
+ this.checkForResizableColumns();
91
99
  }
92
100
 
93
101
  private handleSort(e: any) {
@@ -115,6 +123,7 @@ export class NileTableBody extends NileElement {
115
123
  @slotchange=${this.handleSlotchange}
116
124
  @nile-click-sort=${this.handleSort}
117
125
  class="nile__table__body"
126
+ ?resizable=${this.hasResizableColumns}
118
127
  @nile-search=${this.handleSearch}
119
128
  ></slot>
120
129
  </div>
@@ -6,6 +6,7 @@
6
6
  */
7
7
 
8
8
  import { css } from 'lit';
9
+ import { resizableHostStyles, resizerStyles, resizableSlotStyles } from '../internal/resizable-table-styles';
9
10
 
10
11
  /**
11
12
  * TableCellItem CSS
@@ -19,11 +20,20 @@ export const styles = css`
19
20
  box-sizing: border-box;
20
21
  display: table-cell;
21
22
  vertical-align: middle;
22
- max-width: var(--max--cell-width);
23
23
  padding: 16px 24px;
24
+ max-width: var(--max--cell-width);
24
25
  min-height: var(--min--height);
25
26
  }
26
27
 
28
+ .cell__wrapper {
29
+ height: 100%;
30
+ position: relative;
31
+ display: flex;
32
+ align-items: center;
33
+ overflow: hidden;
34
+ width: 100%;
35
+ }
36
+
27
37
  .column {
28
38
  min-width:var(--min-cell-width);
29
39
  width:var(--cell-width);
@@ -36,7 +46,15 @@ export const styles = css`
36
46
  /* line-height: var(--nile-type-scale-6); */
37
47
  line-height: normal;
38
48
  letter-spacing: 0.2px;
49
+ overflow: hidden;
50
+ text-overflow: ellipsis;
51
+ white-space: nowrap;
52
+ display: block;
39
53
  }
54
+
55
+ ${resizableHostStyles}
56
+ ${resizerStyles}
57
+ ${resizableSlotStyles}
40
58
  `;
41
59
 
42
60
  export default [styles];
@@ -15,6 +15,7 @@ import { customElement, property } from 'lit/decorators.js';
15
15
  import { styles } from './nile-table-cell-item.css';
16
16
  import NileElement from '../internal/nile-element';
17
17
  import { HasSlotController } from '../internal/slot';
18
+ import { createResizeHandler } from '../internal/resizable-table-helper';
18
19
 
19
20
  /**
20
21
  * Nile table Cell Item component.
@@ -33,20 +34,36 @@ export class NileTableCellItem extends NileElement {
33
34
  return [styles];
34
35
  }
35
36
 
37
+ /** Enables the resize functionality. */
38
+ @property({ type: Boolean, reflect: true }) resizable = false;
39
+
36
40
  /* #endregion */
37
41
 
38
42
  /* #region Methods */
39
43
 
44
+ private handleResizeStart = createResizeHandler(this, 50);
45
+
40
46
  /**
41
47
  * Render method
42
48
  * @slot This is a slot test
43
49
  */
44
50
  public render(): TemplateResult {
45
- return html`
46
- ${this.hasSlotController.test('[default]')
47
- ? html` <slot class="column" part="nile__table-cell"> </slot>`
48
- : ''}
49
- `;
51
+ if (this.resizable) {
52
+ return html`
53
+ <div class="cell__wrapper" part="nile__table-cell">
54
+ ${this.hasSlotController.test('[default]')
55
+ ? html` <div class="column" part="nile__table-cell"><slot></slot></div>`
56
+ : ''}
57
+ <div class="resizer" @mousedown=${this.handleResizeStart}></div>
58
+ </div>
59
+ `;
60
+ } else {
61
+ return html`
62
+ ${this.hasSlotController.test('[default]')
63
+ ? html` <slot class="column" part="nile__table-cell"> </slot>`
64
+ : ''}
65
+ `;
66
+ }
50
67
  }
51
68
 
52
69
  /* #endregion */
@@ -6,6 +6,7 @@
6
6
  */
7
7
 
8
8
  import { css } from 'lit';
9
+ import { resizableHeaderStyles, headerResizerStyles } from '../internal/resizable-table-styles';
9
10
 
10
11
  /**
11
12
  * TableHeaderItem CSS
@@ -44,6 +45,8 @@ export const styles = css`
44
45
  font-style: normal;
45
46
  /* line-height: var(--nile-type-scale-5); */
46
47
  line-height: normal;
48
+ text-overflow: ellipsis;
49
+ white-space: nowrap;
47
50
  }
48
51
 
49
52
  nile-icon {
@@ -67,6 +70,9 @@ export const styles = css`
67
70
  .headers:hover .hover__arrow {
68
71
  opacity: 0.3;
69
72
  }
73
+
74
+ ${resizableHeaderStyles}
75
+ ${headerResizerStyles}
70
76
  `;
71
77
 
72
78
  export default [styles];
@@ -15,6 +15,7 @@ import { customElement, state, property } from 'lit/decorators.js';
15
15
  import { styles } from './nile-table-header-item.css';
16
16
  import NileElement from '../internal/nile-element';
17
17
  import { HasSlotController } from '../internal/slot';
18
+ import { createResizeHandler } from '../internal/resizable-table-helper';
18
19
 
19
20
  /**
20
21
  * Nile icon component.
@@ -43,6 +44,9 @@ export class NileTableHeaderItem extends NileElement {
43
44
  @property({ type: String, reflect: true, attribute: 'icon-name' }) iconName =
44
45
  '';
45
46
 
47
+ /** Enables the resize functionality. */
48
+ @property({ type: Boolean, reflect: true }) resizable = false;
49
+
46
50
  @state() sorting_ct = 0;
47
51
 
48
52
  /* #endregion */
@@ -66,9 +70,10 @@ export class NileTableHeaderItem extends NileElement {
66
70
  this.emit('nile-search', { value: e.detail.value });
67
71
  }
68
72
 
73
+ private handleResizeStart = createResizeHandler(this, 50);
74
+
69
75
  public render(): TemplateResult {
70
- return html` ${this.hasSlotController.test('[default]')
71
- ? html`
76
+ return html`
72
77
  <div class="header__item__wrapper" part="nile__table-header-cell">
73
78
  <div class="headers">
74
79
  <slot> </slot>
@@ -109,10 +114,11 @@ export class NileTableHeaderItem extends NileElement {
109
114
  </nile-popover>`
110
115
  : html``}
111
116
  </div>
112
- </div>`
113
- : null}`;
117
+ ${this.resizable
118
+ ? html`<div class="resizer" @mousedown=${this.handleResizeStart}></div>`
119
+ : null}
120
+ </div>`;
114
121
  }
115
- /* #endregion */
116
122
  }
117
123
 
118
124
  export default NileTableHeaderItem;
@@ -3492,7 +3492,7 @@
3492
3492
  },
3493
3493
  {
3494
3494
  "name": "nile-table-body",
3495
- "description": "nile-table-body component.\n\nAttributes:\n\n * `type` {`\"primary\" | \"secondary\"`} - \n\nProperties:\n\n * `defaultSlot` {`HTMLSlotElement`} - The styles for TableBody\n\n * `_childNodes` {`HTMLElement[]`} - \n\n * `type` {`\"primary\" | \"secondary\"`} - \n\n * `rows_data` {`any[]`} - \n\n * `header_rows_data` {`any[]`} - \n\n * `sort__index` {`number`} - \n\n * `search__index` {`number`} - \n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
3495
+ "description": "nile-table-body component.\n\nAttributes:\n\n * `type` {`\"primary\" | \"secondary\"`} - \n\nProperties:\n\n * `defaultSlot` {`HTMLSlotElement`} - The styles for TableBody\n\n * `_childNodes` {`HTMLElement[]`} - \n\n * `type` {`\"primary\" | \"secondary\"`} - \n\n * `rows_data` {`any[]`} - \n\n * `header_rows_data` {`any[]`} - \n\n * `sort__index` {`number`} - \n\n * `search__index` {`number`} - \n\n * `hasResizableColumns` {`boolean`} - \n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
3496
3496
  "attributes": [
3497
3497
  {
3498
3498
  "name": "type",
@@ -3510,12 +3510,18 @@
3510
3510
  },
3511
3511
  {
3512
3512
  "name": "nile-table-cell-item",
3513
- "description": "Nile table Cell Item component.\n\nProperties:\n\n * `hasSlotController` - \n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
3514
- "attributes": []
3513
+ "description": "Nile table Cell Item component.\n\nAttributes:\n\n * `resizable` {`boolean`} - Enables the resize functionality.\n\nProperties:\n\n * `hasSlotController` - \n\n * `resizable` {`boolean`} - Enables the resize functionality.\n\n * `handleResizeStart` - \n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
3514
+ "attributes": [
3515
+ {
3516
+ "name": "resizable",
3517
+ "description": "`resizable` {`boolean`} - Enables the resize functionality.\n\nProperty: resizable\n\nDefault: false",
3518
+ "valueSet": "v"
3519
+ }
3520
+ ]
3515
3521
  },
3516
3522
  {
3517
3523
  "name": "nile-table-header-item",
3518
- "description": "Nile icon component.\n\nAttributes:\n\n * `havesort` {`boolean`} - Enables the sort functionality.\n\n * `havefilter` {`boolean`} - Enables the sort functionality.\n\n * `icon-name` {`string`} - Places the icon .\n\nProperties:\n\n * `hasSlotController` - \n\n * `havesort` {`boolean`} - Enables the sort functionality.\n\n * `havefilter` {`boolean`} - Enables the sort functionality.\n\n * `iconName` {`string`} - Places the icon .\n\n * `sorting_ct` {`number`} - \n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
3524
+ "description": "Nile icon component.\n\nAttributes:\n\n * `havesort` {`boolean`} - Enables the sort functionality.\n\n * `havefilter` {`boolean`} - Enables the sort functionality.\n\n * `icon-name` {`string`} - Places the icon .\n\n * `resizable` {`boolean`} - Enables the resize functionality.\n\nProperties:\n\n * `hasSlotController` - \n\n * `havesort` {`boolean`} - Enables the sort functionality.\n\n * `havefilter` {`boolean`} - Enables the sort functionality.\n\n * `iconName` {`string`} - Places the icon .\n\n * `resizable` {`boolean`} - Enables the resize functionality.\n\n * `sorting_ct` {`number`} - \n\n * `handleResizeStart` - \n\n * `BUBBLES` {`boolean`} - \n\n * `COMPOSED` {`boolean`} - \n\n * `CANCELABLE` {`boolean`} - ",
3519
3525
  "attributes": [
3520
3526
  {
3521
3527
  "name": "havesort",
@@ -3530,6 +3536,11 @@
3530
3536
  {
3531
3537
  "name": "icon-name",
3532
3538
  "description": "`icon-name` {`string`} - Places the icon .\n\nProperty: iconName\n\nDefault: "
3539
+ },
3540
+ {
3541
+ "name": "resizable",
3542
+ "description": "`resizable` {`boolean`} - Enables the resize functionality.\n\nProperty: resizable\n\nDefault: false",
3543
+ "valueSet": "v"
3533
3544
  }
3534
3545
  ]
3535
3546
  },