@aquera/nile-elements 0.1.57-beta-1.8 → 0.1.57

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 (121) hide show
  1. package/README.md +3 -2
  2. package/demo/index.html +26 -10
  3. package/demo/index.js +0 -83
  4. package/dist/index.cjs.js +1 -1
  5. package/dist/index.esm.js +1 -1
  6. package/dist/index.js +281 -275
  7. package/dist/nile-slider/index.cjs.js +2 -0
  8. package/dist/nile-slider/index.cjs.js.map +1 -0
  9. package/dist/nile-slider/index.esm.js +1 -0
  10. package/dist/nile-slider/nile-slider.cjs.js +2 -0
  11. package/dist/nile-slider/nile-slider.cjs.js.map +1 -0
  12. package/dist/nile-slider/nile-slider.css.cjs.js +2 -0
  13. package/dist/nile-slider/nile-slider.css.cjs.js.map +1 -0
  14. package/dist/nile-slider/nile-slider.css.esm.js +106 -0
  15. package/dist/nile-slider/nile-slider.esm.js +27 -0
  16. package/dist/nile-slider/nile-slider.template.cjs.js +2 -0
  17. package/dist/nile-slider/nile-slider.template.cjs.js.map +1 -0
  18. package/dist/nile-slider/nile-slider.template.esm.js +59 -0
  19. package/dist/nile-slider/types/nile-slider.enums.cjs.js +2 -0
  20. package/dist/nile-slider/types/nile-slider.enums.cjs.js.map +1 -0
  21. package/dist/nile-slider/types/nile-slider.enums.esm.js +1 -0
  22. package/dist/nile-slider/types/nile-slider.types.cjs.js +2 -0
  23. package/dist/nile-slider/types/nile-slider.types.cjs.js.map +1 -0
  24. package/dist/nile-slider/types/nile-slider.types.esm.js +1 -0
  25. package/dist/nile-slider/utils/nile-slider.utils.cjs.js +2 -0
  26. package/dist/nile-slider/utils/nile-slider.utils.cjs.js.map +1 -0
  27. package/dist/nile-slider/utils/nile-slider.utils.esm.js +1 -0
  28. package/dist/nile-table-body/index.cjs.js +1 -1
  29. package/dist/nile-table-body/index.esm.js +1 -1
  30. package/dist/nile-table-body/nile-table-body.cjs.js +1 -1
  31. package/dist/nile-table-body/nile-table-body.cjs.js.map +1 -1
  32. package/dist/nile-table-body/nile-table-body.css.cjs.js +1 -1
  33. package/dist/nile-table-body/nile-table-body.css.cjs.js.map +1 -1
  34. package/dist/nile-table-body/nile-table-body.css.esm.js +2 -5
  35. package/dist/nile-table-body/nile-table-body.esm.js +2 -3
  36. package/dist/nile-table-cell-item/index.cjs.js +1 -1
  37. package/dist/nile-table-cell-item/index.esm.js +1 -1
  38. package/dist/nile-table-cell-item/nile-table-cell-item.cjs.js +1 -1
  39. package/dist/nile-table-cell-item/nile-table-cell-item.cjs.js.map +1 -1
  40. package/dist/nile-table-cell-item/nile-table-cell-item.css.cjs.js +1 -1
  41. package/dist/nile-table-cell-item/nile-table-cell-item.css.cjs.js.map +1 -1
  42. package/dist/nile-table-cell-item/nile-table-cell-item.css.esm.js +3 -22
  43. package/dist/nile-table-cell-item/nile-table-cell-item.esm.js +3 -8
  44. package/dist/nile-table-header-item/index.cjs.js +1 -1
  45. package/dist/nile-table-header-item/index.esm.js +1 -1
  46. package/dist/nile-table-header-item/nile-table-header-item.cjs.js +1 -1
  47. package/dist/nile-table-header-item/nile-table-header-item.cjs.js.map +1 -1
  48. package/dist/nile-table-header-item/nile-table-header-item.css.cjs.js +1 -1
  49. package/dist/nile-table-header-item/nile-table-header-item.css.cjs.js.map +1 -1
  50. package/dist/nile-table-header-item/nile-table-header-item.css.esm.js +2 -6
  51. package/dist/nile-table-header-item/nile-table-header-item.esm.js +32 -64
  52. package/dist/src/index.d.ts +1 -0
  53. package/dist/src/index.js +1 -0
  54. package/dist/src/index.js.map +1 -1
  55. package/dist/src/nile-slider/index.d.ts +1 -0
  56. package/dist/src/nile-slider/index.js +2 -0
  57. package/dist/src/nile-slider/index.js.map +1 -0
  58. package/dist/src/nile-slider/nile-slider.css.d.ts +6 -0
  59. package/dist/src/nile-slider/nile-slider.css.js +118 -0
  60. package/dist/src/nile-slider/nile-slider.css.js.map +1 -0
  61. package/dist/src/nile-slider/nile-slider.d.ts +48 -0
  62. package/dist/src/nile-slider/nile-slider.js +217 -0
  63. package/dist/src/nile-slider/nile-slider.js.map +1 -0
  64. package/dist/src/nile-slider/nile-slider.template.d.ts +5 -0
  65. package/dist/src/nile-slider/nile-slider.template.js +73 -0
  66. package/dist/src/nile-slider/nile-slider.template.js.map +1 -0
  67. package/dist/src/nile-slider/types/nile-slider.enums.d.ts +10 -0
  68. package/dist/src/nile-slider/types/nile-slider.enums.js +2 -0
  69. package/dist/src/nile-slider/types/nile-slider.enums.js.map +1 -0
  70. package/dist/src/nile-slider/types/nile-slider.types.d.ts +1 -0
  71. package/dist/src/nile-slider/types/nile-slider.types.js +2 -0
  72. package/dist/src/nile-slider/types/nile-slider.types.js.map +1 -0
  73. package/dist/src/nile-slider/utils/nile-slider.utils.d.ts +11 -0
  74. package/dist/src/nile-slider/utils/nile-slider.utils.js +99 -0
  75. package/dist/src/nile-slider/utils/nile-slider.utils.js.map +1 -0
  76. package/dist/src/nile-table-body/nile-table-body.css.js +0 -4
  77. package/dist/src/nile-table-body/nile-table-body.css.js.map +1 -1
  78. package/dist/src/nile-table-body/nile-table-body.d.ts +0 -2
  79. package/dist/src/nile-table-body/nile-table-body.js +0 -11
  80. package/dist/src/nile-table-body/nile-table-body.js.map +1 -1
  81. package/dist/src/nile-table-cell-item/nile-table-cell-item.css.js +1 -21
  82. package/dist/src/nile-table-cell-item/nile-table-cell-item.css.js.map +1 -1
  83. package/dist/src/nile-table-cell-item/nile-table-cell-item.d.ts +0 -3
  84. package/dist/src/nile-table-cell-item/nile-table-cell-item.js +8 -27
  85. package/dist/src/nile-table-cell-item/nile-table-cell-item.js.map +1 -1
  86. package/dist/src/nile-table-header-item/nile-table-header-item.css.js +0 -5
  87. package/dist/src/nile-table-header-item/nile-table-header-item.css.js.map +1 -1
  88. package/dist/src/nile-table-header-item/nile-table-header-item.d.ts +0 -3
  89. package/dist/src/nile-table-header-item/nile-table-header-item.js +35 -86
  90. package/dist/src/nile-table-header-item/nile-table-header-item.js.map +1 -1
  91. package/dist/tsconfig.tsbuildinfo +1 -1
  92. package/package.json +4 -4
  93. package/src/index.ts +2 -1
  94. package/src/nile-slider/index.ts +1 -0
  95. package/src/nile-slider/nile-slider.css.ts +119 -0
  96. package/src/nile-slider/nile-slider.template.ts +77 -0
  97. package/src/nile-slider/nile-slider.ts +215 -0
  98. package/src/nile-slider/types/nile-slider.enums.ts +10 -0
  99. package/src/nile-slider/types/nile-slider.types.ts +13 -0
  100. package/src/nile-slider/utils/nile-slider.utils.ts +136 -0
  101. package/src/nile-table-body/nile-table-body.css.ts +0 -4
  102. package/src/nile-table-body/nile-table-body.ts +0 -10
  103. package/src/nile-table-cell-item/nile-table-cell-item.css.ts +1 -21
  104. package/src/nile-table-cell-item/nile-table-cell-item.ts +5 -22
  105. package/src/nile-table-header-item/nile-table-header-item.css.ts +0 -5
  106. package/src/nile-table-header-item/nile-table-header-item.ts +45 -94
  107. package/vscode-html-custom-data.json +138 -59
  108. package/dist/internal/resizable-table-helper.cjs.js +0 -2
  109. package/dist/internal/resizable-table-helper.cjs.js.map +0 -1
  110. package/dist/internal/resizable-table-helper.esm.js +0 -1
  111. package/dist/internal/resizable-table-styles.cjs.js +0 -2
  112. package/dist/internal/resizable-table-styles.cjs.js.map +0 -1
  113. package/dist/internal/resizable-table-styles.esm.js +0 -120
  114. package/dist/src/internal/resizable-table-helper.d.ts +0 -59
  115. package/dist/src/internal/resizable-table-helper.js +0 -111
  116. package/dist/src/internal/resizable-table-helper.js.map +0 -1
  117. package/dist/src/internal/resizable-table-styles.d.ts +0 -16
  118. package/dist/src/internal/resizable-table-styles.js +0 -137
  119. package/dist/src/internal/resizable-table-styles.js.map +0 -1
  120. package/src/internal/resizable-table-helper.ts +0 -151
  121. package/src/internal/resizable-table-styles.ts +0 -144
@@ -1,120 +0,0 @@
1
- import{css as e}from"lit";const o=e`
2
- :host([resizable]) {
3
- position: relative;
4
- overflow: hidden;
5
- table-layout: fixed;
6
- }
7
- `,r=e`
8
- :host([resizable]) {
9
- position: relative;
10
- border-right: 1px solid var(--nile-colors-neutral-400);
11
- }
12
-
13
- :host([resizable]) .header__item__wrapper {
14
- position: relative;
15
- }
16
- `,t=e`
17
- .resizer {
18
- position: absolute;
19
- right: 0;
20
- top: -1000px;
21
- bottom: -1000px;
22
- width: 8px;
23
- cursor: col-resize;
24
- user-select: none;
25
- background-color: var(--nile-colors-neutral-100);
26
- transition: background-color 0.2s;
27
- z-index: 10;
28
- opacity: 0;
29
- transition: opacity 0.2s ease;
30
- pointer-events: none;
31
- }
32
-
33
- :host([resizable]):hover .resizer {
34
- opacity: 1;
35
- pointer-events: auto;
36
- }
37
-
38
- .resizer::before {
39
- content: '';
40
- position: absolute;
41
- right: 3px;
42
- top: 0;
43
- width: 2px;
44
- height: 100%;
45
- background-color: var(--nile-colors-neutral-500);
46
- opacity: 0.8;
47
- }
48
-
49
- .resizer:hover {
50
- background-color: var(--nile-colors-neutral-400);
51
- }
52
-
53
- .resizer:hover::before {
54
- background-color: var(--nile-colors-neutral-700);
55
- opacity: 1;
56
- }
57
-
58
- .resizer.resizing {
59
- background-color: var(--nile-colors-neutral-400);
60
- opacity: 1;
61
- pointer-events: auto;
62
- }
63
-
64
- .resizer.resizing::before {
65
- background-color: var(--nile-colors-neutral-700);
66
- opacity: 1;
67
- width: 3px;
68
- }
69
- `,i=e`
70
- .resizer {
71
- position: absolute;
72
- right: -2px;
73
- top: -1000px;
74
- bottom: -1000px;
75
- width: 8px;
76
- cursor: ew-resize;
77
- user-select: none;
78
- transition: background-color 0.2s;
79
- z-index: 10;
80
- opacity: 0;
81
- transition: opacity 0.2s ease;
82
- }
83
-
84
- :host([resizable]):hover .resizer {
85
- opacity: 1;
86
- }
87
-
88
- .resizer::before {
89
- content: '';
90
- position: absolute;
91
- height: 100%;
92
- opacity: 0.8;
93
- }
94
-
95
- .resizer.resizing {
96
- border-right: 4px double var(--nile-colors-neutral-400);
97
- background-color: transparent;
98
- opacity: 1;
99
- }
100
- `,s=e`
101
- :host([resizable]) ::slotted(*) {
102
- overflow: hidden;
103
- text-overflow: ellipsis;
104
- white-space: nowrap;
105
- display: block;
106
- }
107
-
108
- :host([resizable]) ::slotted(span),
109
- :host([resizable]) ::slotted(div),
110
- :host([resizable]) ::slotted(p) {
111
- overflow: hidden;
112
- text-overflow: ellipsis;
113
- white-space: nowrap;
114
- display: block;
115
- }
116
- `,a=e`
117
- .nile__table__body[resizable] {
118
- table-layout: fixed;
119
- }
120
- `;export{t as a,s as b,r as c,i as h,o as r,a as t};
@@ -1,59 +0,0 @@
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
- * Resizable Helper Utility
9
- * Provides common functionality for resizable table columns
10
- */
11
- export interface ResizeOptions {
12
- minWidth?: number;
13
- startX: number;
14
- startWidth: number;
15
- element: HTMLElement;
16
- }
17
- export interface ColumnResizeData {
18
- columnIndex: number;
19
- newWidth: number;
20
- }
21
- /**
22
- * Handles the start of a resize operation
23
- * @param e Mouse event
24
- * @param options Resize configuration options
25
- * @returns Cleanup function to remove event listeners
26
- */
27
- export declare function handleResizeStart(e: MouseEvent, options: ResizeOptions): () => void;
28
- /**
29
- * Gets the column index of an element within its table row
30
- * @param element The table cell or header element
31
- * @param selector The CSS selector for the column elements
32
- * @returns Column index (0-based)
33
- */
34
- export declare function getColumnIndex(element: HTMLElement, selector: string): number;
35
- /**
36
- * Synchronizes the width of all cells in the same column
37
- * @param sourceElement The element that was resized
38
- * @param newWidth The new width to apply
39
- */
40
- export declare function synchronizeColumnWidth(sourceElement: HTMLElement, newWidth: number): void;
41
- /**
42
- * Checks if an element has the resizable attribute
43
- * @param element The element to check
44
- * @returns True if the element is resizable
45
- */
46
- export declare function isResizable(element: HTMLElement): boolean;
47
- /**
48
- * Creates a resize handler function for use in component event listeners
49
- * @param element The element to make resizable
50
- * @param minWidth Minimum width constraint
51
- * @returns Event handler function
52
- */
53
- export declare function createResizeHandler(element: HTMLElement, minWidth?: number): (e: MouseEvent) => void;
54
- /**
55
- * Detects if any columns in a table are resizable
56
- * @param tableBody The table body element
57
- * @returns True if any columns have resizable attribute
58
- */
59
- export declare function hasResizableColumns(tableBody: HTMLElement): boolean;
@@ -1,111 +0,0 @@
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
- * Handles the start of a resize operation
9
- * @param e Mouse event
10
- * @param options Resize configuration options
11
- * @returns Cleanup function to remove event listeners
12
- */
13
- export function handleResizeStart(e, options) {
14
- e.preventDefault();
15
- e.stopPropagation();
16
- const { minWidth = 50, startX, startWidth, element } = options;
17
- const resizer = e.target;
18
- resizer.classList.add('resizing');
19
- const onMouseMove = (e) => {
20
- e.preventDefault();
21
- e.stopPropagation();
22
- const delta = e.pageX - startX;
23
- const newWidth = Math.max(minWidth, startWidth + delta);
24
- element.style.width = newWidth + 'px';
25
- synchronizeColumnWidth(element, newWidth);
26
- };
27
- const onMouseUp = () => {
28
- resizer.classList.remove('resizing');
29
- document.removeEventListener('mousemove', onMouseMove);
30
- document.removeEventListener('mouseup', onMouseUp);
31
- };
32
- document.addEventListener('mousemove', onMouseMove);
33
- document.addEventListener('mouseup', onMouseUp);
34
- return () => {
35
- document.removeEventListener('mousemove', onMouseMove);
36
- document.removeEventListener('mouseup', onMouseUp);
37
- };
38
- }
39
- /**
40
- * Gets the column index of an element within its table row
41
- * @param element The table cell or header element
42
- * @param selector The CSS selector for the column elements
43
- * @returns Column index (0-based)
44
- */
45
- export function getColumnIndex(element, selector) {
46
- const tableRow = element.closest('nile-table-row');
47
- if (tableRow) {
48
- const columns = tableRow.querySelectorAll(selector);
49
- return Array.from(columns).indexOf(element);
50
- }
51
- return 0;
52
- }
53
- /**
54
- * Synchronizes the width of all cells in the same column
55
- * @param sourceElement The element that was resized
56
- * @param newWidth The new width to apply
57
- */
58
- export function synchronizeColumnWidth(sourceElement, newWidth) {
59
- const tableBody = sourceElement.closest('nile-table-body');
60
- if (!tableBody)
61
- return;
62
- const isHeader = sourceElement.tagName.toLowerCase() === 'nile-table-header-item';
63
- const selector = isHeader ? 'nile-table-header-item' : 'nile-table-cell-item';
64
- const targetSelector = isHeader ? 'nile-table-cell-item' : 'nile-table-cell-item';
65
- const columnIndex = getColumnIndex(sourceElement, selector);
66
- const rows = tableBody.querySelectorAll('nile-table-row');
67
- rows.forEach(row => {
68
- const cells = row.querySelectorAll(targetSelector);
69
- if (cells[columnIndex]) {
70
- cells[columnIndex].style.width = newWidth + 'px';
71
- }
72
- });
73
- }
74
- /**
75
- * Checks if an element has the resizable attribute
76
- * @param element The element to check
77
- * @returns True if the element is resizable
78
- */
79
- export function isResizable(element) {
80
- return element.hasAttribute('resizable');
81
- }
82
- /**
83
- * Creates a resize handler function for use in component event listeners
84
- * @param element The element to make resizable
85
- * @param minWidth Minimum width constraint
86
- * @returns Event handler function
87
- */
88
- export function createResizeHandler(element, minWidth = 50) {
89
- return (e) => {
90
- const options = {
91
- minWidth,
92
- startX: e.pageX,
93
- startWidth: element.offsetWidth,
94
- element
95
- };
96
- handleResizeStart(e, options);
97
- };
98
- }
99
- /**
100
- * Detects if any columns in a table are resizable
101
- * @param tableBody The table body element
102
- * @returns True if any columns have resizable attribute
103
- */
104
- export function hasResizableColumns(tableBody) {
105
- const headerItems = tableBody.querySelectorAll('nile-table-header-item');
106
- const cellItems = tableBody.querySelectorAll('nile-table-cell-item');
107
- const hasResizableHeaders = Array.from(headerItems).some(item => isResizable(item));
108
- const hasResizableCells = Array.from(cellItems).some(item => isResizable(item));
109
- return hasResizableHeaders || hasResizableCells;
110
- }
111
- //# sourceMappingURL=resizable-table-helper.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resizable-table-helper.js","sourceRoot":"","sources":["../../../src/internal/resizable-table-helper.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Copyright Aquera Inc 2025\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/**\n * Resizable Helper Utility\n * Provides common functionality for resizable table columns\n */\n\nexport interface ResizeOptions {\n minWidth?: number;\n startX: number;\n startWidth: number;\n element: HTMLElement;\n}\n\nexport interface ColumnResizeData {\n columnIndex: number;\n newWidth: number;\n}\n\n/**\n * Handles the start of a resize operation\n * @param e Mouse event\n * @param options Resize configuration options\n * @returns Cleanup function to remove event listeners\n */\nexport function handleResizeStart(e: MouseEvent, options: ResizeOptions): () => void {\n e.preventDefault();\n e.stopPropagation();\n \n const { minWidth = 50, startX, startWidth, element } = options;\n const resizer = e.target as HTMLElement;\n \n resizer.classList.add('resizing');\n\n const onMouseMove = (e: MouseEvent) => {\n e.preventDefault();\n e.stopPropagation();\n \n const delta = e.pageX - startX;\n const newWidth = Math.max(minWidth, startWidth + delta);\n\n element.style.width = newWidth + 'px';\n\n synchronizeColumnWidth(element, newWidth);\n };\n\n const onMouseUp = () => {\n resizer.classList.remove('resizing');\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp);\n };\n\n document.addEventListener('mousemove', onMouseMove);\n document.addEventListener('mouseup', onMouseUp);\n\n return () => {\n document.removeEventListener('mousemove', onMouseMove);\n document.removeEventListener('mouseup', onMouseUp);\n };\n}\n\n/**\n * Gets the column index of an element within its table row\n * @param element The table cell or header element\n * @param selector The CSS selector for the column elements\n * @returns Column index (0-based)\n */\nexport function getColumnIndex(element: HTMLElement, selector: string): number {\n const tableRow = element.closest('nile-table-row');\n if (tableRow) {\n const columns = tableRow.querySelectorAll(selector);\n return Array.from(columns).indexOf(element);\n }\n return 0;\n}\n\n/**\n * Synchronizes the width of all cells in the same column\n * @param sourceElement The element that was resized\n * @param newWidth The new width to apply\n */\nexport function synchronizeColumnWidth(sourceElement: HTMLElement, newWidth: number): void {\n const tableBody = sourceElement.closest('nile-table-body');\n if (!tableBody) return;\n\n const isHeader = sourceElement.tagName.toLowerCase() === 'nile-table-header-item';\n const selector = isHeader ? 'nile-table-header-item' : 'nile-table-cell-item';\n const targetSelector = isHeader ? 'nile-table-cell-item' : 'nile-table-cell-item';\n \n const columnIndex = getColumnIndex(sourceElement, selector);\n const rows = tableBody.querySelectorAll('nile-table-row');\n \n rows.forEach(row => {\n const cells = row.querySelectorAll(targetSelector);\n if (cells[columnIndex]) {\n cells[columnIndex].style.width = newWidth + 'px';\n }\n });\n}\n\n/**\n * Checks if an element has the resizable attribute\n * @param element The element to check\n * @returns True if the element is resizable\n */\nexport function isResizable(element: HTMLElement): boolean {\n return element.hasAttribute('resizable');\n}\n\n/**\n * Creates a resize handler function for use in component event listeners\n * @param element The element to make resizable\n * @param minWidth Minimum width constraint\n * @returns Event handler function\n */\nexport function createResizeHandler(element: HTMLElement, minWidth: number = 50): (e: MouseEvent) => void {\n return (e: MouseEvent) => {\n const options: ResizeOptions = {\n minWidth,\n startX: e.pageX,\n startWidth: element.offsetWidth,\n element\n };\n \n handleResizeStart(e, options);\n };\n}\n\n/**\n * Detects if any columns in a table are resizable\n * @param tableBody The table body element\n * @returns True if any columns have resizable attribute\n */\nexport function hasResizableColumns(tableBody: HTMLElement): boolean {\n const headerItems = tableBody.querySelectorAll('nile-table-header-item');\n const cellItems = tableBody.querySelectorAll('nile-table-cell-item');\n \n const hasResizableHeaders = Array.from(headerItems).some(item => \n isResizable(item)\n );\n const hasResizableCells = Array.from(cellItems).some(item => \n isResizable(item)\n );\n \n return hasResizableHeaders || hasResizableCells;\n} \n"]}
@@ -1,16 +0,0 @@
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
- * Resizable Styles Utility
9
- * Centralized styles for resizable table functionality
10
- */
11
- export declare const resizableHostStyles: import("lit").CSSResult;
12
- export declare const resizableHeaderStyles: import("lit").CSSResult;
13
- export declare const resizerStyles: import("lit").CSSResult;
14
- export declare const headerResizerStyles: import("lit").CSSResult;
15
- export declare const resizableSlotStyles: import("lit").CSSResult;
16
- export declare const tableLayoutStyles: import("lit").CSSResult;
@@ -1,137 +0,0 @@
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
- import { css } from 'lit';
8
- /**
9
- * Resizable Styles Utility
10
- * Centralized styles for resizable table functionality
11
- */
12
- export const resizableHostStyles = css `
13
- :host([resizable]) {
14
- position: relative;
15
- overflow: hidden;
16
- table-layout: fixed;
17
- }
18
- `;
19
- export const resizableHeaderStyles = css `
20
- :host([resizable]) {
21
- position: relative;
22
- border-right: 1px solid var(--nile-colors-neutral-400);
23
- }
24
-
25
- :host([resizable]) .header__item__wrapper {
26
- position: relative;
27
- }
28
- `;
29
- export const resizerStyles = css `
30
- .resizer {
31
- position: absolute;
32
- right: 0;
33
- top: -1000px;
34
- bottom: -1000px;
35
- width: 8px;
36
- cursor: col-resize;
37
- user-select: none;
38
- background-color: var(--nile-colors-neutral-100);
39
- transition: background-color 0.2s;
40
- z-index: 10;
41
- opacity: 0;
42
- transition: opacity 0.2s ease;
43
- pointer-events: none;
44
- }
45
-
46
- :host([resizable]):hover .resizer {
47
- opacity: 1;
48
- pointer-events: auto;
49
- }
50
-
51
- .resizer::before {
52
- content: '';
53
- position: absolute;
54
- right: 3px;
55
- top: 0;
56
- width: 2px;
57
- height: 100%;
58
- background-color: var(--nile-colors-neutral-500);
59
- opacity: 0.8;
60
- }
61
-
62
- .resizer:hover {
63
- background-color: var(--nile-colors-neutral-400);
64
- }
65
-
66
- .resizer:hover::before {
67
- background-color: var(--nile-colors-neutral-700);
68
- opacity: 1;
69
- }
70
-
71
- .resizer.resizing {
72
- background-color: var(--nile-colors-neutral-400);
73
- opacity: 1;
74
- pointer-events: auto;
75
- }
76
-
77
- .resizer.resizing::before {
78
- background-color: var(--nile-colors-neutral-700);
79
- opacity: 1;
80
- width: 3px;
81
- }
82
- `;
83
- export const headerResizerStyles = css `
84
- .resizer {
85
- position: absolute;
86
- right: -2px;
87
- top: -1000px;
88
- bottom: -1000px;
89
- width: 8px;
90
- cursor: ew-resize;
91
- user-select: none;
92
- transition: background-color 0.2s;
93
- z-index: 10;
94
- opacity: 0;
95
- transition: opacity 0.2s ease;
96
- }
97
-
98
- :host([resizable]):hover .resizer {
99
- opacity: 1;
100
- }
101
-
102
- .resizer::before {
103
- content: '';
104
- position: absolute;
105
- height: 100%;
106
- opacity: 0.8;
107
- }
108
-
109
- .resizer.resizing {
110
- border-right: 4px double var(--nile-colors-neutral-400);
111
- background-color: transparent;
112
- opacity: 1;
113
- }
114
- `;
115
- export const resizableSlotStyles = css `
116
- :host([resizable]) ::slotted(*) {
117
- overflow: hidden;
118
- text-overflow: ellipsis;
119
- white-space: nowrap;
120
- display: block;
121
- }
122
-
123
- :host([resizable]) ::slotted(span),
124
- :host([resizable]) ::slotted(div),
125
- :host([resizable]) ::slotted(p) {
126
- overflow: hidden;
127
- text-overflow: ellipsis;
128
- white-space: nowrap;
129
- display: block;
130
- }
131
- `;
132
- export const tableLayoutStyles = css `
133
- .nile__table__body[resizable] {
134
- table-layout: fixed;
135
- }
136
- `;
137
- //# sourceMappingURL=resizable-table-styles.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resizable-table-styles.js","sourceRoot":"","sources":["../../../src/internal/resizable-table-styles.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAE1B;;;GAGG;AAEH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAA;;;;;;CAMrC,CAAC;AAEF,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAA;;;;;;;;;CASvC,CAAC;AAEF,MAAM,CAAC,MAAM,aAAa,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAqD/B,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BrC,CAAC;AAEF,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;CAgBrC,CAAC;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,GAAG,CAAA;;;;CAInC,CAAC","sourcesContent":["/**\n * Copyright Aquera Inc 2023\n *\n * This source code is licensed under the BSD-3-Clause license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nimport { css } from 'lit';\n\n/**\n * Resizable Styles Utility\n * Centralized styles for resizable table functionality\n */\n\nexport const resizableHostStyles = css`\n :host([resizable]) {\n position: relative;\n overflow: hidden;\n table-layout: fixed;\n }\n`;\n\nexport const resizableHeaderStyles = css`\n :host([resizable]) {\n position: relative;\n border-right: 1px solid var(--nile-colors-neutral-400);\n }\n\n :host([resizable]) .header__item__wrapper {\n position: relative;\n }\n`;\n\nexport const resizerStyles = css`\n .resizer {\n position: absolute;\n right: 0;\n top: -1000px;\n bottom: -1000px;\n width: 8px;\n cursor: col-resize;\n user-select: none;\n background-color: var(--nile-colors-neutral-100);\n transition: background-color 0.2s;\n z-index: 10;\n opacity: 0;\n transition: opacity 0.2s ease;\n pointer-events: none;\n }\n\n :host([resizable]):hover .resizer {\n opacity: 1;\n pointer-events: auto;\n }\n\n .resizer::before {\n content: '';\n position: absolute;\n right: 3px;\n top: 0;\n width: 2px;\n height: 100%;\n background-color: var(--nile-colors-neutral-500);\n opacity: 0.8;\n }\n\n .resizer:hover {\n background-color: var(--nile-colors-neutral-400);\n }\n\n .resizer:hover::before {\n background-color: var(--nile-colors-neutral-700);\n opacity: 1;\n }\n\n .resizer.resizing {\n background-color: var(--nile-colors-neutral-400);\n opacity: 1;\n pointer-events: auto;\n }\n\n .resizer.resizing::before {\n background-color: var(--nile-colors-neutral-700);\n opacity: 1;\n width: 3px;\n }\n`;\n\nexport const headerResizerStyles = css`\n .resizer {\n position: absolute;\n right: -2px;\n top: -1000px;\n bottom: -1000px;\n width: 8px;\n cursor: ew-resize;\n user-select: none;\n transition: background-color 0.2s;\n z-index: 10;\n opacity: 0;\n transition: opacity 0.2s ease;\n }\n\n :host([resizable]):hover .resizer {\n opacity: 1;\n }\n\n .resizer::before {\n content: '';\n position: absolute;\n height: 100%;\n opacity: 0.8;\n }\n\n .resizer.resizing {\n border-right: 4px double var(--nile-colors-neutral-400);\n background-color: transparent;\n opacity: 1;\n }\n`;\n\nexport const resizableSlotStyles = css`\n :host([resizable]) ::slotted(*) {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n display: block;\n }\n\n :host([resizable]) ::slotted(span),\n :host([resizable]) ::slotted(div),\n :host([resizable]) ::slotted(p) {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n display: block;\n }\n`;\n\nexport const tableLayoutStyles = css`\n .nile__table__body[resizable] {\n table-layout: fixed;\n }\n`; \n"]}
@@ -1,151 +0,0 @@
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
- }