@veeqo/ui 14.11.0-beta-4 → 14.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (202) hide show
  1. package/dist/components/Action/styles/button.module.scss.cjs +2 -2
  2. package/dist/components/Action/styles/button.module.scss.cjs.map +1 -1
  3. package/dist/components/Action/styles/button.module.scss.js +2 -2
  4. package/dist/components/Action/styles/button.module.scss.js.map +1 -1
  5. package/dist/components/Action/styles/link.module.scss.cjs +2 -2
  6. package/dist/components/Action/styles/link.module.scss.cjs.map +1 -1
  7. package/dist/components/Action/styles/link.module.scss.js +2 -2
  8. package/dist/components/Action/styles/link.module.scss.js.map +1 -1
  9. package/dist/components/Action/utils.cjs +13 -18
  10. package/dist/components/Action/utils.cjs.map +1 -1
  11. package/dist/components/Action/utils.js +13 -18
  12. package/dist/components/Action/utils.js.map +1 -1
  13. package/dist/components/Button/Button.cjs +39 -35
  14. package/dist/components/Button/Button.cjs.map +1 -1
  15. package/dist/components/Button/Button.d.ts +15 -7
  16. package/dist/components/Button/Button.js +39 -35
  17. package/dist/components/Button/Button.js.map +1 -1
  18. package/dist/components/Button/Button.module.scss.cjs +9 -0
  19. package/dist/components/Button/Button.module.scss.cjs.map +1 -0
  20. package/dist/components/Button/Button.module.scss.js +7 -0
  21. package/dist/components/Button/Button.module.scss.js.map +1 -0
  22. package/dist/components/Button/types.d.ts +16 -7
  23. package/dist/components/Calendars/components/subcomponents/CalendarGrid/subCalendars/DodecadeCalendar.cjs +2 -2
  24. package/dist/components/Calendars/components/subcomponents/CalendarGrid/subCalendars/DodecadeCalendar.cjs.map +1 -1
  25. package/dist/components/Calendars/components/subcomponents/CalendarGrid/subCalendars/DodecadeCalendar.js +1 -1
  26. package/dist/components/Calendars/components/subcomponents/CalendarGrid/subCalendars/YearCalendar.cjs +2 -2
  27. package/dist/components/Calendars/components/subcomponents/CalendarGrid/subCalendars/YearCalendar.cjs.map +1 -1
  28. package/dist/components/Calendars/components/subcomponents/CalendarGrid/subCalendars/YearCalendar.js +1 -1
  29. package/dist/components/DataTable/DataTable.cjs +3 -3
  30. package/dist/components/DataTable/DataTable.cjs.map +1 -1
  31. package/dist/components/DataTable/DataTable.d.ts +4 -4
  32. package/dist/components/DataTable/DataTable.js +3 -3
  33. package/dist/components/DataTable/DataTable.js.map +1 -1
  34. package/dist/components/DataTable/components/ActionBar.cjs +3 -8
  35. package/dist/components/DataTable/components/ActionBar.cjs.map +1 -1
  36. package/dist/components/DataTable/components/ActionBar.js +3 -7
  37. package/dist/components/DataTable/components/ActionBar.js.map +1 -1
  38. package/dist/components/DataTable/components/Cell.cjs +15 -4
  39. package/dist/components/DataTable/components/Cell.cjs.map +1 -1
  40. package/dist/components/DataTable/components/Cell.d.ts +6 -2
  41. package/dist/components/DataTable/components/Cell.js +15 -4
  42. package/dist/components/DataTable/components/Cell.js.map +1 -1
  43. package/dist/components/DataTable/components/ColumnDivider.cjs +4 -6
  44. package/dist/components/DataTable/components/ColumnDivider.cjs.map +1 -1
  45. package/dist/components/DataTable/components/ColumnDivider.d.ts +0 -1
  46. package/dist/components/DataTable/components/ColumnDivider.js +5 -5
  47. package/dist/components/DataTable/components/ColumnDivider.js.map +1 -1
  48. package/dist/components/DataTable/components/ColumnHeader.cjs +8 -9
  49. package/dist/components/DataTable/components/ColumnHeader.cjs.map +1 -1
  50. package/dist/components/DataTable/components/ColumnHeader.d.ts +16 -6
  51. package/dist/components/DataTable/components/ColumnHeader.js +7 -8
  52. package/dist/components/DataTable/components/ColumnHeader.js.map +1 -1
  53. package/dist/components/DataTable/components/DataTable.module.scss.cjs +9 -0
  54. package/dist/components/DataTable/components/DataTable.module.scss.cjs.map +1 -0
  55. package/dist/components/DataTable/components/DataTable.module.scss.js +7 -0
  56. package/dist/components/DataTable/components/DataTable.module.scss.js.map +1 -0
  57. package/dist/components/DataTable/components/EmptyBodyContent.cjs +13 -5
  58. package/dist/components/DataTable/components/EmptyBodyContent.cjs.map +1 -1
  59. package/dist/components/DataTable/components/EmptyBodyContent.d.ts +10 -3
  60. package/dist/components/DataTable/components/EmptyBodyContent.js +12 -4
  61. package/dist/components/DataTable/components/EmptyBodyContent.js.map +1 -1
  62. package/dist/components/DataTable/components/Header.cjs +16 -4
  63. package/dist/components/DataTable/components/Header.cjs.map +1 -1
  64. package/dist/components/DataTable/components/Header.d.ts +2 -1
  65. package/dist/components/DataTable/components/Header.js +16 -4
  66. package/dist/components/DataTable/components/Header.js.map +1 -1
  67. package/dist/components/DataTable/components/LoadingCellContent.cjs +7 -7
  68. package/dist/components/DataTable/components/LoadingCellContent.cjs.map +1 -1
  69. package/dist/components/DataTable/components/LoadingCellContent.d.ts +5 -1
  70. package/dist/components/DataTable/components/LoadingCellContent.js +6 -6
  71. package/dist/components/DataTable/components/LoadingCellContent.js.map +1 -1
  72. package/dist/components/DataTable/components/NoWrap.cjs +7 -3
  73. package/dist/components/DataTable/components/NoWrap.cjs.map +1 -1
  74. package/dist/components/DataTable/components/NoWrap.d.ts +6 -1
  75. package/dist/components/DataTable/components/NoWrap.js +6 -2
  76. package/dist/components/DataTable/components/NoWrap.js.map +1 -1
  77. package/dist/components/DataTable/components/Row.cjs +21 -24
  78. package/dist/components/DataTable/components/Row.cjs.map +1 -1
  79. package/dist/components/DataTable/components/Row.d.ts +5 -2
  80. package/dist/components/DataTable/components/Row.js +20 -23
  81. package/dist/components/DataTable/components/Row.js.map +1 -1
  82. package/dist/components/DataTable/components/ScrollContainer.cjs +7 -3
  83. package/dist/components/DataTable/components/ScrollContainer.cjs.map +1 -1
  84. package/dist/components/DataTable/components/ScrollContainer.d.ts +6 -1
  85. package/dist/components/DataTable/components/ScrollContainer.js +6 -2
  86. package/dist/components/DataTable/components/ScrollContainer.js.map +1 -1
  87. package/dist/components/DataTable/components/StickyHead.cjs +3 -11
  88. package/dist/components/DataTable/components/StickyHead.cjs.map +1 -1
  89. package/dist/components/DataTable/components/StickyHead.d.ts +2 -1
  90. package/dist/components/DataTable/components/StickyHead.js +3 -11
  91. package/dist/components/DataTable/components/StickyHead.js.map +1 -1
  92. package/dist/components/DataTable/components/TableGrid.cjs +47 -5
  93. package/dist/components/DataTable/components/TableGrid.cjs.map +1 -1
  94. package/dist/components/DataTable/components/TableGrid.d.ts +10 -3
  95. package/dist/components/DataTable/components/TableGrid.js +46 -4
  96. package/dist/components/DataTable/components/TableGrid.js.map +1 -1
  97. package/dist/components/DataTable/components/Truncate.cjs +7 -3
  98. package/dist/components/DataTable/components/Truncate.cjs.map +1 -1
  99. package/dist/components/DataTable/components/Truncate.d.ts +6 -1
  100. package/dist/components/DataTable/components/Truncate.js +6 -2
  101. package/dist/components/DataTable/components/Truncate.js.map +1 -1
  102. package/dist/components/DataTable/components/Wrapper.cjs +11 -8
  103. package/dist/components/DataTable/components/Wrapper.cjs.map +1 -1
  104. package/dist/components/DataTable/components/Wrapper.d.ts +5 -2
  105. package/dist/components/DataTable/components/Wrapper.js +10 -7
  106. package/dist/components/DataTable/components/Wrapper.js.map +1 -1
  107. package/dist/components/DataTable/constants.cjs +0 -2
  108. package/dist/components/DataTable/constants.cjs.map +1 -1
  109. package/dist/components/DataTable/constants.js +1 -2
  110. package/dist/components/DataTable/constants.js.map +1 -1
  111. package/dist/components/DataTable/hooks/useTableId.cjs +23 -0
  112. package/dist/components/DataTable/hooks/useTableId.cjs.map +1 -0
  113. package/dist/components/DataTable/hooks/useTableId.d.ts +13 -0
  114. package/dist/components/DataTable/hooks/useTableId.js +21 -0
  115. package/dist/components/DataTable/hooks/useTableId.js.map +1 -0
  116. package/dist/components/DataTable/utils/generateTableCss.cjs +44 -80
  117. package/dist/components/DataTable/utils/generateTableCss.cjs.map +1 -1
  118. package/dist/components/DataTable/utils/generateTableCss.d.ts +7 -1
  119. package/dist/components/DataTable/utils/generateTableCss.js +44 -80
  120. package/dist/components/DataTable/utils/generateTableCss.js.map +1 -1
  121. package/dist/components/DateInputField/DateInputField.cjs +1 -1
  122. package/dist/components/DateInputField/DateInputField.js +1 -1
  123. package/dist/components/DatePicker/DatePicker.cjs +1 -1
  124. package/dist/components/DatePicker/DatePicker.js +1 -1
  125. package/dist/components/DateRangePicker/DateRangePicker.cjs +1 -1
  126. package/dist/components/DateRangePicker/DateRangePicker.js +1 -1
  127. package/dist/components/Grid/Grid.cjs +27 -0
  128. package/dist/components/Grid/Grid.cjs.map +1 -0
  129. package/dist/components/Grid/Grid.d.ts +3 -0
  130. package/dist/components/Grid/Grid.js +21 -0
  131. package/dist/components/Grid/Grid.js.map +1 -0
  132. package/dist/components/Grid/Grid.module.scss.cjs +9 -0
  133. package/dist/components/Grid/Grid.module.scss.cjs.map +1 -0
  134. package/dist/components/Grid/Grid.module.scss.js +7 -0
  135. package/dist/components/Grid/Grid.module.scss.js.map +1 -0
  136. package/dist/components/Grid/index.d.ts +2 -3
  137. package/dist/components/LegacyDataTable/LegacyDataTable.d.ts +1 -1
  138. package/dist/components/LegacyDataTable/LegacyDataTable.module.scss.cjs +9 -0
  139. package/dist/components/LegacyDataTable/LegacyDataTable.module.scss.cjs.map +1 -0
  140. package/dist/components/LegacyDataTable/LegacyDataTable.module.scss.js +7 -0
  141. package/dist/components/LegacyDataTable/LegacyDataTable.module.scss.js.map +1 -0
  142. package/dist/components/LegacyDataTable/SkeletonContent/SkeletonContent.cjs +8 -8
  143. package/dist/components/LegacyDataTable/SkeletonContent/SkeletonContent.cjs.map +1 -1
  144. package/dist/components/LegacyDataTable/SkeletonContent/SkeletonContent.js +8 -7
  145. package/dist/components/LegacyDataTable/SkeletonContent/SkeletonContent.js.map +1 -1
  146. package/dist/components/LegacyDataTable/SkeletonContent/SkeletonContent.module.scss.cjs +9 -0
  147. package/dist/components/LegacyDataTable/SkeletonContent/SkeletonContent.module.scss.cjs.map +1 -0
  148. package/dist/components/LegacyDataTable/SkeletonContent/SkeletonContent.module.scss.js +7 -0
  149. package/dist/components/LegacyDataTable/SkeletonContent/SkeletonContent.module.scss.js.map +1 -0
  150. package/dist/components/LegacyDataTable/SpecificState/SpecificState.cjs +8 -5
  151. package/dist/components/LegacyDataTable/SpecificState/SpecificState.cjs.map +1 -1
  152. package/dist/components/LegacyDataTable/SpecificState/SpecificState.js +8 -5
  153. package/dist/components/LegacyDataTable/SpecificState/SpecificState.js.map +1 -1
  154. package/dist/components/LegacyDataTable/SpecificState/SpecificState.module.scss.cjs +9 -0
  155. package/dist/components/LegacyDataTable/SpecificState/SpecificState.module.scss.cjs.map +1 -0
  156. package/dist/components/LegacyDataTable/SpecificState/SpecificState.module.scss.js +7 -0
  157. package/dist/components/LegacyDataTable/SpecificState/SpecificState.module.scss.js.map +1 -0
  158. package/dist/components/LegacyDataTable/StickyHeader.cjs.map +1 -1
  159. package/dist/components/LegacyDataTable/StickyHeader.js.map +1 -1
  160. package/dist/components/LegacyDataTable/cells/ClickableCell.cjs +6 -8
  161. package/dist/components/LegacyDataTable/cells/ClickableCell.cjs.map +1 -1
  162. package/dist/components/LegacyDataTable/cells/ClickableCell.d.ts +1 -1
  163. package/dist/components/LegacyDataTable/cells/ClickableCell.js +4 -5
  164. package/dist/components/LegacyDataTable/cells/ClickableCell.js.map +1 -1
  165. package/dist/components/LegacyDataTable/cells/EditableCell.cjs +5 -8
  166. package/dist/components/LegacyDataTable/cells/EditableCell.cjs.map +1 -1
  167. package/dist/components/LegacyDataTable/cells/EditableCell.d.ts +1 -1
  168. package/dist/components/LegacyDataTable/cells/EditableCell.js +3 -5
  169. package/dist/components/LegacyDataTable/cells/EditableCell.js.map +1 -1
  170. package/dist/components/LegacyDataTable/cells/cells.module.scss.cjs +9 -0
  171. package/dist/components/LegacyDataTable/cells/cells.module.scss.cjs.map +1 -0
  172. package/dist/components/LegacyDataTable/cells/cells.module.scss.js +7 -0
  173. package/dist/components/LegacyDataTable/cells/cells.module.scss.js.map +1 -0
  174. package/dist/components/LegacyDataTable/styled.cjs +145 -104
  175. package/dist/components/LegacyDataTable/styled.cjs.map +1 -1
  176. package/dist/components/LegacyDataTable/styled.d.ts +40 -28
  177. package/dist/components/LegacyDataTable/styled.js +144 -103
  178. package/dist/components/LegacyDataTable/styled.js.map +1 -1
  179. package/dist/components/LegacyDataTable/utils/index.cjs +12 -8
  180. package/dist/components/LegacyDataTable/utils/index.cjs.map +1 -1
  181. package/dist/components/LegacyDataTable/utils/index.d.ts +5 -0
  182. package/dist/components/LegacyDataTable/utils/index.js +12 -8
  183. package/dist/components/LegacyDataTable/utils/index.js.map +1 -1
  184. package/dist/components/Pagination/styled.d.ts +6 -1
  185. package/dist/components/VideoModal/styled.d.ts +6 -1
  186. package/dist/index.cjs +10 -10
  187. package/dist/index.js +1 -1
  188. package/package.json +1 -1
  189. package/dist/components/Grid/index.cjs +0 -20
  190. package/dist/components/Grid/index.cjs.map +0 -1
  191. package/dist/components/Grid/index.js +0 -14
  192. package/dist/components/Grid/index.js.map +0 -1
  193. package/dist/components/LegacyDataTable/SpecificState/styled.cjs +0 -21
  194. package/dist/components/LegacyDataTable/SpecificState/styled.cjs.map +0 -1
  195. package/dist/components/LegacyDataTable/SpecificState/styled.d.ts +0 -17
  196. package/dist/components/LegacyDataTable/SpecificState/styled.js +0 -12
  197. package/dist/components/LegacyDataTable/SpecificState/styled.js.map +0 -1
  198. package/dist/components/LegacyDataTable/cells/styled.cjs +0 -14
  199. package/dist/components/LegacyDataTable/cells/styled.cjs.map +0 -1
  200. package/dist/components/LegacyDataTable/cells/styled.d.ts +0 -1
  201. package/dist/components/LegacyDataTable/cells/styled.js +0 -8
  202. package/dist/components/LegacyDataTable/cells/styled.js.map +0 -1
@@ -1,14 +1,56 @@
1
1
  'use strict';
2
2
 
3
- var styled = require('styled-components');
4
- var index = require('../../../theme/index.cjs');
3
+ var React = require('react');
4
+ var buildClassnames = require('../../../utils/buildClassnames.cjs');
5
+ require('uid/secure');
6
+ var useTableId = require('../hooks/useTableId.cjs');
7
+ var DataTable_module = require('./DataTable.module.scss.cjs');
5
8
 
6
9
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
7
10
 
8
- var styled__default = /*#__PURE__*/_interopDefaultCompat(styled);
11
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
9
12
 
10
- const defaultDensity = 'base';
11
- const TableGrid = styled__default.default.table.withConfig({ displayName: "vui--TableGrid", componentId: "vui--1fsix8g" }) `min-width:100%;width:max-content;display:grid;& thead,& tbody,& tfoot{display:contents;}--density:${index.theme.sizes[defaultDensity]};&& tr:hover td{background-color:#f2f8fc;}${({ css }) => css}`;
13
+ /**
14
+ * Prefixes each selector in a rule with the scope selector.
15
+ * Handles comma-separated selector lists (e.g. "th::after, td::after { ... }")
16
+ * by scoping every selector, not just the first.
17
+ */
18
+ function scopeRule(scopeSelector, rule) {
19
+ const braceIndex = rule.indexOf('{');
20
+ if (braceIndex === -1)
21
+ return `${scopeSelector} ${rule}`;
22
+ const selectorPart = rule.slice(0, braceIndex).trim();
23
+ const bodyPart = rule.slice(braceIndex);
24
+ const scopedSelectors = selectorPart
25
+ .split(',')
26
+ .map((selector) => `${scopeSelector} ${selector.trim()}`)
27
+ .join(', ');
28
+ return `${scopedSelectors} ${bodyPart}`;
29
+ }
30
+ /**
31
+ * Builds a complete scoped stylesheet from properties and rules.
32
+ * No CSS nesting dependency.
33
+ */
34
+ function buildScopedStyle(scopeSelector, properties, rules) {
35
+ const parts = [];
36
+ if (properties) {
37
+ parts.push(`${scopeSelector} { ${properties} }`);
38
+ }
39
+ rules.forEach((rule) => {
40
+ parts.push(scopeRule(scopeSelector, rule));
41
+ });
42
+ return parts.join('\n');
43
+ }
44
+ const TableGrid = React__default.default.forwardRef(({ tableCss, extraRules, className, children, style, ...rest }, ref) => {
45
+ const tableId = useTableId.useTableId();
46
+ const scopeSelector = `[data-table-id="${tableId}"]`;
47
+ const allRules = extraRules ? [...tableCss.rules, ...extraRules] : tableCss.rules;
48
+ const scopedStyle = buildScopedStyle(scopeSelector, tableCss.properties, allRules);
49
+ return (React__default.default.createElement(React__default.default.Fragment, null,
50
+ scopedStyle && React__default.default.createElement("style", null, scopedStyle),
51
+ React__default.default.createElement("table", { ref: ref, "data-table-id": tableId, className: buildClassnames.buildClassnames([DataTable_module.tableGrid, className]), style: style, ...rest }, children)));
52
+ });
53
+ TableGrid.displayName = 'TableGrid';
12
54
 
13
55
  exports.TableGrid = TableGrid;
14
56
  //# sourceMappingURL=TableGrid.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableGrid.cjs","sources":["../../../../src/components/DataTable/components/TableGrid.ts"],"sourcesContent":["import styled from 'styled-components';\nimport { theme } from '../../../theme';\n\nconst defaultDensity = 'base';\n\nexport interface TableGridProps {\n css: string;\n}\n\nexport const TableGrid = styled.table<TableGridProps>`\n min-width: 100%;\n width: max-content; /* Fixes sticky element bug in Firefox - https://bugzilla.mozilla.org/show_bug.cgi?id=1585254#c3 */\n display: grid;\n\n & thead,\n & tbody,\n & tfoot {\n display: contents;\n }\n\n --density: ${theme.sizes[defaultDensity]};\n\n && tr:hover td {\n background-color: #f2f8fc;\n }\n\n ${({ css }) => css}/* CSS styles generate by hooks */\n`;\n"],"names":["styled","theme"],"mappings":";;;;;;;;;AAGA,MAAM,cAAc,GAAG,MAAM;AAMtB,MAAM,SAAS,GAAGA,uBAAM,CAAC,KAAK,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,CAAA,CAAA,CAAA,kGAAA,EAWtBC,WAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA,0CAAA,EAMtC,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;;;;"}
1
+ {"version":3,"file":"TableGrid.cjs","sources":["../../../../src/components/DataTable/components/TableGrid.tsx"],"sourcesContent":["import React from 'react';\nimport { buildClassnames } from '../../../utils';\nimport { useTableId } from '../hooks/useTableId';\nimport { TableCssOutput } from '../utils/generateTableCss';\nimport styles from './DataTable.module.scss';\n\nexport interface TableGridProps extends React.TableHTMLAttributes<HTMLTableElement> {\n /** Structured CSS output from generateTableCss */\n tableCss: TableCssOutput;\n /** Additional CSS rules to scope to this table (e.g. StickyHead column widths) */\n extraRules?: string[];\n children?: React.ReactNode;\n className?: string;\n}\n\n/**\n * Prefixes each selector in a rule with the scope selector.\n * Handles comma-separated selector lists (e.g. \"th::after, td::after { ... }\")\n * by scoping every selector, not just the first.\n */\nfunction scopeRule(scopeSelector: string, rule: string): string {\n const braceIndex = rule.indexOf('{');\n if (braceIndex === -1) return `${scopeSelector} ${rule}`;\n\n const selectorPart = rule.slice(0, braceIndex).trim();\n const bodyPart = rule.slice(braceIndex);\n\n const scopedSelectors = selectorPart\n .split(',')\n .map((selector) => `${scopeSelector} ${selector.trim()}`)\n .join(', ');\n\n return `${scopedSelectors} ${bodyPart}`;\n}\n\n/**\n * Builds a complete scoped stylesheet from properties and rules.\n * No CSS nesting dependency.\n */\nfunction buildScopedStyle(scopeSelector: string, properties: string, rules: string[]): string {\n const parts: string[] = [];\n\n if (properties) {\n parts.push(`${scopeSelector} { ${properties} }`);\n }\n\n rules.forEach((rule) => {\n parts.push(scopeRule(scopeSelector, rule));\n });\n\n return parts.join('\\n');\n}\n\nexport const TableGrid = React.forwardRef<HTMLTableElement, TableGridProps>(\n ({ tableCss, extraRules, className, children, style, ...rest }, ref) => {\n const tableId = useTableId();\n const scopeSelector = `[data-table-id=\"${tableId}\"]`;\n\n const allRules = extraRules ? [...tableCss.rules, ...extraRules] : tableCss.rules;\n const scopedStyle = buildScopedStyle(scopeSelector, tableCss.properties, allRules);\n\n return (\n <>\n {scopedStyle && <style>{scopedStyle}</style>}\n <table\n ref={ref}\n data-table-id={tableId}\n className={buildClassnames([styles.tableGrid, className])}\n style={style}\n {...rest}\n >\n {children}\n </table>\n </>\n );\n },\n);\n\nTableGrid.displayName = 'TableGrid';\n"],"names":["React","useTableId","buildClassnames","styles"],"mappings":";;;;;;;;;;;;AAeA;;;;AAIG;AACH,SAAS,SAAS,CAAC,aAAqB,EAAE,IAAY,EAAA;IACpD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;IACpC,IAAI,UAAU,KAAK,EAAE;AAAE,QAAA,OAAO,CAAA,EAAG,aAAa,CAAA,CAAA,EAAI,IAAI,EAAE;AAExD,IAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,IAAI,EAAE;IACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;IAEvC,MAAM,eAAe,GAAG;SACrB,KAAK,CAAC,GAAG;AACT,SAAA,GAAG,CAAC,CAAC,QAAQ,KAAK,CAAA,EAAG,aAAa,CAAA,CAAA,EAAI,QAAQ,CAAC,IAAI,EAAE,EAAE;SACvD,IAAI,CAAC,IAAI,CAAC;AAEb,IAAA,OAAO,CAAA,EAAG,eAAe,CAAA,CAAA,EAAI,QAAQ,EAAE;AACzC;AAEA;;;AAGG;AACH,SAAS,gBAAgB,CAAC,aAAqB,EAAE,UAAkB,EAAE,KAAe,EAAA;IAClF,MAAM,KAAK,GAAa,EAAE;AAE1B,IAAA,IAAI,UAAU,EAAE;QACd,KAAK,CAAC,IAAI,CAAC,CAAA,EAAG,aAAa,CAAA,GAAA,EAAM,UAAU,CAAA,EAAA,CAAI,CAAC;AACjD,IAAA;AAED,IAAA,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;QACrB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AAC5C,IAAA,CAAC,CAAC;AAEF,IAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AACzB;AAEO,MAAM,SAAS,GAAGA,sBAAK,CAAC,UAAU,CACvC,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,KAAI;AACrE,IAAA,MAAM,OAAO,GAAGC,qBAAU,EAAE;AAC5B,IAAA,MAAM,aAAa,GAAG,CAAA,gBAAA,EAAmB,OAAO,IAAI;IAEpD,MAAM,QAAQ,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,GAAG,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK;AACjF,IAAA,MAAM,WAAW,GAAG,gBAAgB,CAAC,aAAa,EAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC;AAElF,IAAA,QACED,sBAAA,CAAA,aAAA,CAAAA,sBAAA,CAAA,QAAA,EAAA,IAAA;QACG,WAAW,IAAIA,sBAAA,CAAA,aAAA,CAAA,OAAA,EAAA,IAAA,EAAQ,WAAW,CAAS;AAC5C,QAAAA,sBAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EACE,GAAG,EAAE,GAAG,EAAA,eAAA,EACO,OAAO,EACtB,SAAS,EAAEE,+BAAe,CAAC,CAACC,gBAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,EACzD,KAAK,EAAE,KAAK,EAAA,GACR,IAAI,EAAA,EAEP,QAAQ,CACH,CACP;AAEP,CAAC;AAGH,SAAS,CAAC,WAAW,GAAG,WAAW;;;;"}
@@ -1,4 +1,11 @@
1
- export interface TableGridProps {
2
- css: string;
1
+ import React from 'react';
2
+ import { TableCssOutput } from '../utils/generateTableCss';
3
+ export interface TableGridProps extends React.TableHTMLAttributes<HTMLTableElement> {
4
+ /** Structured CSS output from generateTableCss */
5
+ tableCss: TableCssOutput;
6
+ /** Additional CSS rules to scope to this table (e.g. StickyHead column widths) */
7
+ extraRules?: string[];
8
+ children?: React.ReactNode;
9
+ className?: string;
3
10
  }
4
- export declare const TableGrid: import("styled-components").StyledComponent<"table", any, TableGridProps, never>;
11
+ export declare const TableGrid: React.ForwardRefExoticComponent<TableGridProps & React.RefAttributes<HTMLTableElement>>;
@@ -1,8 +1,50 @@
1
- import styled from 'styled-components';
2
- import { theme } from '../../../theme/index.js';
1
+ import React__default from 'react';
2
+ import { buildClassnames } from '../../../utils/buildClassnames.js';
3
+ import 'uid/secure';
4
+ import { useTableId } from '../hooks/useTableId.js';
5
+ import styles from './DataTable.module.scss.js';
3
6
 
4
- const defaultDensity = 'base';
5
- const TableGrid = styled.table.withConfig({ displayName: "vui--TableGrid", componentId: "vui--1fsix8g" }) `min-width:100%;width:max-content;display:grid;& thead,& tbody,& tfoot{display:contents;}--density:${theme.sizes[defaultDensity]};&& tr:hover td{background-color:#f2f8fc;}${({ css }) => css}`;
7
+ /**
8
+ * Prefixes each selector in a rule with the scope selector.
9
+ * Handles comma-separated selector lists (e.g. "th::after, td::after { ... }")
10
+ * by scoping every selector, not just the first.
11
+ */
12
+ function scopeRule(scopeSelector, rule) {
13
+ const braceIndex = rule.indexOf('{');
14
+ if (braceIndex === -1)
15
+ return `${scopeSelector} ${rule}`;
16
+ const selectorPart = rule.slice(0, braceIndex).trim();
17
+ const bodyPart = rule.slice(braceIndex);
18
+ const scopedSelectors = selectorPart
19
+ .split(',')
20
+ .map((selector) => `${scopeSelector} ${selector.trim()}`)
21
+ .join(', ');
22
+ return `${scopedSelectors} ${bodyPart}`;
23
+ }
24
+ /**
25
+ * Builds a complete scoped stylesheet from properties and rules.
26
+ * No CSS nesting dependency.
27
+ */
28
+ function buildScopedStyle(scopeSelector, properties, rules) {
29
+ const parts = [];
30
+ if (properties) {
31
+ parts.push(`${scopeSelector} { ${properties} }`);
32
+ }
33
+ rules.forEach((rule) => {
34
+ parts.push(scopeRule(scopeSelector, rule));
35
+ });
36
+ return parts.join('\n');
37
+ }
38
+ const TableGrid = React__default.forwardRef(({ tableCss, extraRules, className, children, style, ...rest }, ref) => {
39
+ const tableId = useTableId();
40
+ const scopeSelector = `[data-table-id="${tableId}"]`;
41
+ const allRules = extraRules ? [...tableCss.rules, ...extraRules] : tableCss.rules;
42
+ const scopedStyle = buildScopedStyle(scopeSelector, tableCss.properties, allRules);
43
+ return (React__default.createElement(React__default.Fragment, null,
44
+ scopedStyle && React__default.createElement("style", null, scopedStyle),
45
+ React__default.createElement("table", { ref: ref, "data-table-id": tableId, className: buildClassnames([styles.tableGrid, className]), style: style, ...rest }, children)));
46
+ });
47
+ TableGrid.displayName = 'TableGrid';
6
48
 
7
49
  export { TableGrid };
8
50
  //# sourceMappingURL=TableGrid.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TableGrid.js","sources":["../../../../src/components/DataTable/components/TableGrid.ts"],"sourcesContent":["import styled from 'styled-components';\nimport { theme } from '../../../theme';\n\nconst defaultDensity = 'base';\n\nexport interface TableGridProps {\n css: string;\n}\n\nexport const TableGrid = styled.table<TableGridProps>`\n min-width: 100%;\n width: max-content; /* Fixes sticky element bug in Firefox - https://bugzilla.mozilla.org/show_bug.cgi?id=1585254#c3 */\n display: grid;\n\n & thead,\n & tbody,\n & tfoot {\n display: contents;\n }\n\n --density: ${theme.sizes[defaultDensity]};\n\n && tr:hover td {\n background-color: #f2f8fc;\n }\n\n ${({ css }) => css}/* CSS styles generate by hooks */\n`;\n"],"names":[],"mappings":";;;AAGA,MAAM,cAAc,GAAG,MAAM;AAMtB,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,cAAA,EAAA,CAAA,CAAA,CAAA,kGAAA,EAWtB,KAAK,CAAC,KAAK,CAAC,cAAc,CAAC,CAAA,0CAAA,EAMtC,CAAC,EAAE,GAAG,EAAE,KAAK,GAAG,CAAA;;;;"}
1
+ {"version":3,"file":"TableGrid.js","sources":["../../../../src/components/DataTable/components/TableGrid.tsx"],"sourcesContent":["import React from 'react';\nimport { buildClassnames } from '../../../utils';\nimport { useTableId } from '../hooks/useTableId';\nimport { TableCssOutput } from '../utils/generateTableCss';\nimport styles from './DataTable.module.scss';\n\nexport interface TableGridProps extends React.TableHTMLAttributes<HTMLTableElement> {\n /** Structured CSS output from generateTableCss */\n tableCss: TableCssOutput;\n /** Additional CSS rules to scope to this table (e.g. StickyHead column widths) */\n extraRules?: string[];\n children?: React.ReactNode;\n className?: string;\n}\n\n/**\n * Prefixes each selector in a rule with the scope selector.\n * Handles comma-separated selector lists (e.g. \"th::after, td::after { ... }\")\n * by scoping every selector, not just the first.\n */\nfunction scopeRule(scopeSelector: string, rule: string): string {\n const braceIndex = rule.indexOf('{');\n if (braceIndex === -1) return `${scopeSelector} ${rule}`;\n\n const selectorPart = rule.slice(0, braceIndex).trim();\n const bodyPart = rule.slice(braceIndex);\n\n const scopedSelectors = selectorPart\n .split(',')\n .map((selector) => `${scopeSelector} ${selector.trim()}`)\n .join(', ');\n\n return `${scopedSelectors} ${bodyPart}`;\n}\n\n/**\n * Builds a complete scoped stylesheet from properties and rules.\n * No CSS nesting dependency.\n */\nfunction buildScopedStyle(scopeSelector: string, properties: string, rules: string[]): string {\n const parts: string[] = [];\n\n if (properties) {\n parts.push(`${scopeSelector} { ${properties} }`);\n }\n\n rules.forEach((rule) => {\n parts.push(scopeRule(scopeSelector, rule));\n });\n\n return parts.join('\\n');\n}\n\nexport const TableGrid = React.forwardRef<HTMLTableElement, TableGridProps>(\n ({ tableCss, extraRules, className, children, style, ...rest }, ref) => {\n const tableId = useTableId();\n const scopeSelector = `[data-table-id=\"${tableId}\"]`;\n\n const allRules = extraRules ? [...tableCss.rules, ...extraRules] : tableCss.rules;\n const scopedStyle = buildScopedStyle(scopeSelector, tableCss.properties, allRules);\n\n return (\n <>\n {scopedStyle && <style>{scopedStyle}</style>}\n <table\n ref={ref}\n data-table-id={tableId}\n className={buildClassnames([styles.tableGrid, className])}\n style={style}\n {...rest}\n >\n {children}\n </table>\n </>\n );\n },\n);\n\nTableGrid.displayName = 'TableGrid';\n"],"names":["React"],"mappings":";;;;;;AAeA;;;;AAIG;AACH,SAAS,SAAS,CAAC,aAAqB,EAAE,IAAY,EAAA;IACpD,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC;IACpC,IAAI,UAAU,KAAK,EAAE;AAAE,QAAA,OAAO,CAAA,EAAG,aAAa,CAAA,CAAA,EAAI,IAAI,EAAE;AAExD,IAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,IAAI,EAAE;IACrD,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;IAEvC,MAAM,eAAe,GAAG;SACrB,KAAK,CAAC,GAAG;AACT,SAAA,GAAG,CAAC,CAAC,QAAQ,KAAK,CAAA,EAAG,aAAa,CAAA,CAAA,EAAI,QAAQ,CAAC,IAAI,EAAE,EAAE;SACvD,IAAI,CAAC,IAAI,CAAC;AAEb,IAAA,OAAO,CAAA,EAAG,eAAe,CAAA,CAAA,EAAI,QAAQ,EAAE;AACzC;AAEA;;;AAGG;AACH,SAAS,gBAAgB,CAAC,aAAqB,EAAE,UAAkB,EAAE,KAAe,EAAA;IAClF,MAAM,KAAK,GAAa,EAAE;AAE1B,IAAA,IAAI,UAAU,EAAE;QACd,KAAK,CAAC,IAAI,CAAC,CAAA,EAAG,aAAa,CAAA,GAAA,EAAM,UAAU,CAAA,EAAA,CAAI,CAAC;AACjD,IAAA;AAED,IAAA,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;QACrB,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AAC5C,IAAA,CAAC,CAAC;AAEF,IAAA,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC;AACzB;AAEO,MAAM,SAAS,GAAGA,cAAK,CAAC,UAAU,CACvC,CAAC,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,KAAI;AACrE,IAAA,MAAM,OAAO,GAAG,UAAU,EAAE;AAC5B,IAAA,MAAM,aAAa,GAAG,CAAA,gBAAA,EAAmB,OAAO,IAAI;IAEpD,MAAM,QAAQ,GAAG,UAAU,GAAG,CAAC,GAAG,QAAQ,CAAC,KAAK,EAAE,GAAG,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK;AACjF,IAAA,MAAM,WAAW,GAAG,gBAAgB,CAAC,aAAa,EAAE,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC;AAElF,IAAA,QACEA,cAAA,CAAA,aAAA,CAAAA,cAAA,CAAA,QAAA,EAAA,IAAA;QACG,WAAW,IAAIA,cAAA,CAAA,aAAA,CAAA,OAAA,EAAA,IAAA,EAAQ,WAAW,CAAS;AAC5C,QAAAA,cAAA,CAAA,aAAA,CAAA,OAAA,EAAA,EACE,GAAG,EAAE,GAAG,EAAA,eAAA,EACO,OAAO,EACtB,SAAS,EAAE,eAAe,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,EACzD,KAAK,EAAE,KAAK,EAAA,GACR,IAAI,EAAA,EAEP,QAAQ,CACH,CACP;AAEP,CAAC;AAGH,SAAS,CAAC,WAAW,GAAG,WAAW;;;;"}
@@ -1,12 +1,16 @@
1
1
  'use strict';
2
2
 
3
- var styled = require('styled-components');
3
+ var React = require('react');
4
+ var buildClassnames = require('../../../utils/buildClassnames.cjs');
5
+ require('uid/secure');
6
+ var DataTable_module = require('./DataTable.module.scss.cjs');
4
7
 
5
8
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
6
9
 
7
- var styled__default = /*#__PURE__*/_interopDefaultCompat(styled);
10
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
8
11
 
9
- const Truncate = styled__default.default.div.withConfig({ displayName: "vui--Truncate", componentId: "vui--14fzkum" }) `overflow:hidden;text-overflow:ellipsis;white-space:nowrap;`;
12
+ const Truncate = React__default.default.forwardRef(({ className, children, ...rest }, ref) => (React__default.default.createElement("div", { ref: ref, className: buildClassnames.buildClassnames([DataTable_module.truncate, className]), ...rest }, children)));
13
+ Truncate.displayName = 'Truncate';
10
14
 
11
15
  exports.Truncate = Truncate;
12
16
  //# sourceMappingURL=Truncate.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Truncate.cjs","sources":["../../../../src/components/DataTable/components/Truncate.ts"],"sourcesContent":["import styled from 'styled-components';\n\nexport const Truncate = styled.div`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n"],"names":["styled"],"mappings":";;;;;;;;MAEa,QAAQ,GAAGA,uBAAM,CAAC,GAAG;;;;"}
1
+ {"version":3,"file":"Truncate.cjs","sources":["../../../../src/components/DataTable/components/Truncate.tsx"],"sourcesContent":["import React from 'react';\nimport { buildClassnames } from '../../../utils';\nimport styles from './DataTable.module.scss';\n\nexport interface TruncateProps extends React.HTMLAttributes<HTMLDivElement> {\n children?: React.ReactNode;\n className?: string;\n}\n\nexport const Truncate = React.forwardRef<HTMLDivElement, TruncateProps>(\n ({ className, children, ...rest }, ref) => (\n <div ref={ref} className={buildClassnames([styles.truncate, className])} {...rest}>\n {children}\n </div>\n ),\n);\n\nTruncate.displayName = 'Truncate';\n"],"names":["React","buildClassnames","styles"],"mappings":";;;;;;;;;;;MASa,QAAQ,GAAGA,sBAAK,CAAC,UAAU,CACtC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,MACpCA,8CAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAEC,+BAAe,CAAC,CAACC,gBAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,EAAA,GAAM,IAAI,IAC9E,QAAQ,CACL,CACP;AAGH,QAAQ,CAAC,WAAW,GAAG,UAAU;;;;"}
@@ -1 +1,6 @@
1
- export declare const Truncate: import("styled-components").StyledComponent<"div", any, {}, never>;
1
+ import React from 'react';
2
+ export interface TruncateProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ children?: React.ReactNode;
4
+ className?: string;
5
+ }
6
+ export declare const Truncate: React.ForwardRefExoticComponent<TruncateProps & React.RefAttributes<HTMLDivElement>>;
@@ -1,6 +1,10 @@
1
- import styled from 'styled-components';
1
+ import React__default from 'react';
2
+ import { buildClassnames } from '../../../utils/buildClassnames.js';
3
+ import 'uid/secure';
4
+ import styles from './DataTable.module.scss.js';
2
5
 
3
- const Truncate = styled.div.withConfig({ displayName: "vui--Truncate", componentId: "vui--14fzkum" }) `overflow:hidden;text-overflow:ellipsis;white-space:nowrap;`;
6
+ const Truncate = React__default.forwardRef(({ className, children, ...rest }, ref) => (React__default.createElement("div", { ref: ref, className: buildClassnames([styles.truncate, className]), ...rest }, children)));
7
+ Truncate.displayName = 'Truncate';
4
8
 
5
9
  export { Truncate };
6
10
  //# sourceMappingURL=Truncate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Truncate.js","sources":["../../../../src/components/DataTable/components/Truncate.ts"],"sourcesContent":["import styled from 'styled-components';\n\nexport const Truncate = styled.div`\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n`;\n"],"names":[],"mappings":";;MAEa,QAAQ,GAAG,MAAM,CAAC,GAAG;;;;"}
1
+ {"version":3,"file":"Truncate.js","sources":["../../../../src/components/DataTable/components/Truncate.tsx"],"sourcesContent":["import React from 'react';\nimport { buildClassnames } from '../../../utils';\nimport styles from './DataTable.module.scss';\n\nexport interface TruncateProps extends React.HTMLAttributes<HTMLDivElement> {\n children?: React.ReactNode;\n className?: string;\n}\n\nexport const Truncate = React.forwardRef<HTMLDivElement, TruncateProps>(\n ({ className, children, ...rest }, ref) => (\n <div ref={ref} className={buildClassnames([styles.truncate, className])} {...rest}>\n {children}\n </div>\n ),\n);\n\nTruncate.displayName = 'Truncate';\n"],"names":["React"],"mappings":";;;;;MASa,QAAQ,GAAGA,cAAK,CAAC,UAAU,CACtC,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,MACpCA,sCAAK,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,eAAe,CAAC,CAAC,MAAM,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,EAAA,GAAM,IAAI,IAC9E,QAAQ,CACL,CACP;AAGH,QAAQ,CAAC,WAAW,GAAG,UAAU;;;;"}
@@ -1,18 +1,21 @@
1
1
  'use strict';
2
2
 
3
- var styled = require('styled-components');
4
- var index = require('../../../theme/index.cjs');
3
+ var React = require('react');
4
+ var buildClassnames = require('../../../utils/buildClassnames.cjs');
5
+ require('uid/secure');
6
+ var DataTable_module = require('./DataTable.module.scss.cjs');
5
7
 
6
8
  function _interopDefaultCompat (e) { return e && typeof e === 'object' && 'default' in e ? e : { default: e }; }
7
9
 
8
- var styled__default = /*#__PURE__*/_interopDefaultCompat(styled);
10
+ var React__default = /*#__PURE__*/_interopDefaultCompat(React);
9
11
 
10
- const borderModeStyles = {
11
- full: `border-width: 1px; border-radius: ${index.theme.radius.base};`,
12
- vertical: 'border-width: 0; border-top-width: 1px; border-bottom-width: 1px;',
13
- none: 'border-width: 0;',
12
+ const borderModeClassMap = {
13
+ full: DataTable_module.borderFull,
14
+ vertical: DataTable_module.borderVertical,
15
+ none: DataTable_module.borderNone,
14
16
  };
15
- const Wrapper = styled__default.default.div.withConfig({ displayName: "vui--Wrapper", componentId: "vui--5gfhdd" }) `width:100%;position:relative;border-style:solid;border-color:${index.theme.colors.neutral.grey.dark};${({ borderMode = 'full' }) => borderModeStyles[borderMode]} &,& *{box-sizing:border-box;}.hideHeaderDetails th{> *{opacity:0.1;}.th-divider{opacity:1;}}`;
17
+ const Wrapper = React__default.default.forwardRef(({ borderMode = 'full', className, children, ...rest }, ref) => (React__default.default.createElement("div", { ref: ref, className: buildClassnames.buildClassnames([DataTable_module.wrapper, borderModeClassMap[borderMode], className]), ...rest }, children)));
18
+ Wrapper.displayName = 'Wrapper';
16
19
 
17
20
  exports.Wrapper = Wrapper;
18
21
  //# sourceMappingURL=Wrapper.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"Wrapper.cjs","sources":["../../../../src/components/DataTable/components/Wrapper.ts"],"sourcesContent":["import styled from 'styled-components';\nimport { theme } from '../../../theme';\nimport { BorderMode } from '../types';\n\nconst borderModeStyles = {\n full: `border-width: 1px; border-radius: ${theme.radius.base};`,\n vertical: 'border-width: 0; border-top-width: 1px; border-bottom-width: 1px;',\n none: 'border-width: 0;',\n};\n\nexport interface WrapperProps {\n borderMode?: BorderMode;\n}\n\nexport const Wrapper = styled.div<WrapperProps>`\n width: 100%;\n position: relative;\n border-style: solid;\n border-color: ${theme.colors.neutral.grey.dark};\n\n ${({ borderMode = 'full' }) => borderModeStyles[borderMode]}\n\n &, & * {\n box-sizing: border-box;\n }\n\n .hideHeaderDetails th {\n > * {\n opacity: 0.1;\n }\n\n .th-divider {\n opacity: 1;\n }\n }\n`;\n"],"names":["theme","styled"],"mappings":";;;;;;;;;AAIA,MAAM,gBAAgB,GAAG;AACvB,IAAA,IAAI,EAAE,CAAA,kCAAA,EAAqCA,WAAK,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,CAAG;AAC/D,IAAA,QAAQ,EAAE,mEAAmE;AAC7E,IAAA,IAAI,EAAE,kBAAkB;CACzB;AAMM,MAAM,OAAO,GAAGC,uBAAM,CAAC,GAAG,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,CAAA,CAAA,CAAA,6DAAA,EAIfD,WAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAA,CAAA,EAE5C,CAAC,EAAE,UAAU,GAAG,MAAM,EAAE,KAAK,gBAAgB,CAAC,UAAU,CAAC;;;;"}
1
+ {"version":3,"file":"Wrapper.cjs","sources":["../../../../src/components/DataTable/components/Wrapper.tsx"],"sourcesContent":["import React from 'react';\nimport { buildClassnames } from '../../../utils';\nimport { BorderMode } from '../types';\nimport styles from './DataTable.module.scss';\n\nexport interface WrapperProps extends React.HTMLAttributes<HTMLDivElement> {\n borderMode?: BorderMode;\n children?: React.ReactNode;\n className?: string;\n}\n\nconst borderModeClassMap: Record<BorderMode, string> = {\n full: styles.borderFull,\n vertical: styles.borderVertical,\n none: styles.borderNone,\n};\n\nexport const Wrapper = React.forwardRef<HTMLDivElement, WrapperProps>(\n ({ borderMode = 'full', className, children, ...rest }, ref) => (\n <div\n ref={ref}\n className={buildClassnames([styles.wrapper, borderModeClassMap[borderMode], className])}\n {...rest}\n >\n {children}\n </div>\n ),\n);\n\nWrapper.displayName = 'Wrapper';\n"],"names":["styles","React","buildClassnames"],"mappings":";;;;;;;;;;;AAWA,MAAM,kBAAkB,GAA+B;IACrD,IAAI,EAAEA,gBAAM,CAAC,UAAU;IACvB,QAAQ,EAAEA,gBAAM,CAAC,cAAc;IAC/B,IAAI,EAAEA,gBAAM,CAAC,UAAU;CACxB;AAEM,MAAM,OAAO,GAAGC,sBAAK,CAAC,UAAU,CACrC,CAAC,EAAE,UAAU,GAAG,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,MACzDA,sBAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAEC,+BAAe,CAAC,CAACF,gBAAM,CAAC,OAAO,EAAE,kBAAkB,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC,EAAA,GACnF,IAAI,EAAA,EAEP,QAAQ,CACL,CACP;AAGH,OAAO,CAAC,WAAW,GAAG,SAAS;;;;"}
@@ -1,5 +1,8 @@
1
+ import React from 'react';
1
2
  import { BorderMode } from '../types';
2
- export interface WrapperProps {
3
+ export interface WrapperProps extends React.HTMLAttributes<HTMLDivElement> {
3
4
  borderMode?: BorderMode;
5
+ children?: React.ReactNode;
6
+ className?: string;
4
7
  }
5
- export declare const Wrapper: import("styled-components").StyledComponent<"div", any, WrapperProps, never>;
8
+ export declare const Wrapper: React.ForwardRefExoticComponent<WrapperProps & React.RefAttributes<HTMLDivElement>>;
@@ -1,12 +1,15 @@
1
- import styled from 'styled-components';
2
- import { theme } from '../../../theme/index.js';
1
+ import React__default from 'react';
2
+ import { buildClassnames } from '../../../utils/buildClassnames.js';
3
+ import 'uid/secure';
4
+ import styles from './DataTable.module.scss.js';
3
5
 
4
- const borderModeStyles = {
5
- full: `border-width: 1px; border-radius: ${theme.radius.base};`,
6
- vertical: 'border-width: 0; border-top-width: 1px; border-bottom-width: 1px;',
7
- none: 'border-width: 0;',
6
+ const borderModeClassMap = {
7
+ full: styles.borderFull,
8
+ vertical: styles.borderVertical,
9
+ none: styles.borderNone,
8
10
  };
9
- const Wrapper = styled.div.withConfig({ displayName: "vui--Wrapper", componentId: "vui--5gfhdd" }) `width:100%;position:relative;border-style:solid;border-color:${theme.colors.neutral.grey.dark};${({ borderMode = 'full' }) => borderModeStyles[borderMode]} &,& *{box-sizing:border-box;}.hideHeaderDetails th{> *{opacity:0.1;}.th-divider{opacity:1;}}`;
11
+ const Wrapper = React__default.forwardRef(({ borderMode = 'full', className, children, ...rest }, ref) => (React__default.createElement("div", { ref: ref, className: buildClassnames([styles.wrapper, borderModeClassMap[borderMode], className]), ...rest }, children)));
12
+ Wrapper.displayName = 'Wrapper';
10
13
 
11
14
  export { Wrapper };
12
15
  //# sourceMappingURL=Wrapper.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Wrapper.js","sources":["../../../../src/components/DataTable/components/Wrapper.ts"],"sourcesContent":["import styled from 'styled-components';\nimport { theme } from '../../../theme';\nimport { BorderMode } from '../types';\n\nconst borderModeStyles = {\n full: `border-width: 1px; border-radius: ${theme.radius.base};`,\n vertical: 'border-width: 0; border-top-width: 1px; border-bottom-width: 1px;',\n none: 'border-width: 0;',\n};\n\nexport interface WrapperProps {\n borderMode?: BorderMode;\n}\n\nexport const Wrapper = styled.div<WrapperProps>`\n width: 100%;\n position: relative;\n border-style: solid;\n border-color: ${theme.colors.neutral.grey.dark};\n\n ${({ borderMode = 'full' }) => borderModeStyles[borderMode]}\n\n &, & * {\n box-sizing: border-box;\n }\n\n .hideHeaderDetails th {\n > * {\n opacity: 0.1;\n }\n\n .th-divider {\n opacity: 1;\n }\n }\n`;\n"],"names":[],"mappings":";;;AAIA,MAAM,gBAAgB,GAAG;AACvB,IAAA,IAAI,EAAE,CAAA,kCAAA,EAAqC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAA,CAAA,CAAG;AAC/D,IAAA,QAAQ,EAAE,mEAAmE;AAC7E,IAAA,IAAI,EAAE,kBAAkB;CACzB;AAMM,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAA,UAAA,CAAA,EAAA,WAAA,EAAA,cAAA,EAAA,WAAA,EAAA,aAAA,EAAA,CAAA,CAAA,CAAA,6DAAA,EAIf,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAA,CAAA,EAE5C,CAAC,EAAE,UAAU,GAAG,MAAM,EAAE,KAAK,gBAAgB,CAAC,UAAU,CAAC;;;;"}
1
+ {"version":3,"file":"Wrapper.js","sources":["../../../../src/components/DataTable/components/Wrapper.tsx"],"sourcesContent":["import React from 'react';\nimport { buildClassnames } from '../../../utils';\nimport { BorderMode } from '../types';\nimport styles from './DataTable.module.scss';\n\nexport interface WrapperProps extends React.HTMLAttributes<HTMLDivElement> {\n borderMode?: BorderMode;\n children?: React.ReactNode;\n className?: string;\n}\n\nconst borderModeClassMap: Record<BorderMode, string> = {\n full: styles.borderFull,\n vertical: styles.borderVertical,\n none: styles.borderNone,\n};\n\nexport const Wrapper = React.forwardRef<HTMLDivElement, WrapperProps>(\n ({ borderMode = 'full', className, children, ...rest }, ref) => (\n <div\n ref={ref}\n className={buildClassnames([styles.wrapper, borderModeClassMap[borderMode], className])}\n {...rest}\n >\n {children}\n </div>\n ),\n);\n\nWrapper.displayName = 'Wrapper';\n"],"names":["React"],"mappings":";;;;;AAWA,MAAM,kBAAkB,GAA+B;IACrD,IAAI,EAAE,MAAM,CAAC,UAAU;IACvB,QAAQ,EAAE,MAAM,CAAC,cAAc;IAC/B,IAAI,EAAE,MAAM,CAAC,UAAU;CACxB;AAEM,MAAM,OAAO,GAAGA,cAAK,CAAC,UAAU,CACrC,CAAC,EAAE,UAAU,GAAG,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,EAAE,GAAG,MACzDA,cAAA,CAAA,aAAA,CAAA,KAAA,EAAA,EACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,eAAe,CAAC,CAAC,MAAM,CAAC,OAAO,EAAE,kBAAkB,CAAC,UAAU,CAAC,EAAE,SAAS,CAAC,CAAC,EAAA,GACnF,IAAI,EAAA,EAEP,QAAQ,CACL,CACP;AAGH,OAAO,CAAC,WAAW,GAAG,SAAS;;;;"}
@@ -2,9 +2,7 @@
2
2
 
3
3
  const defaultCellSpacing = 3;
4
4
  const headerCellHeight = '56px';
5
- const footerCellHeight = '56px';
6
5
 
7
6
  exports.defaultCellSpacing = defaultCellSpacing;
8
- exports.footerCellHeight = footerCellHeight;
9
7
  exports.headerCellHeight = headerCellHeight;
10
8
  //# sourceMappingURL=constants.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.cjs","sources":["../../../src/components/DataTable/constants.ts"],"sourcesContent":["export const defaultCellSpacing = 3;\n\nexport const headerCellHeight = '56px';\nexport const footerCellHeight = '56px';\n"],"names":[],"mappings":";;AAAO,MAAM,kBAAkB,GAAG;AAE3B,MAAM,gBAAgB,GAAG;AACzB,MAAM,gBAAgB,GAAG;;;;;;"}
1
+ {"version":3,"file":"constants.cjs","sources":["../../../src/components/DataTable/constants.ts"],"sourcesContent":["export const defaultCellSpacing = 3;\n\nexport const headerCellHeight = '56px';\nexport const footerCellHeight = '56px';\n"],"names":[],"mappings":";;AAAO,MAAM,kBAAkB,GAAG;AAE3B,MAAM,gBAAgB,GAAG;;;;;"}
@@ -1,6 +1,5 @@
1
1
  const defaultCellSpacing = 3;
2
2
  const headerCellHeight = '56px';
3
- const footerCellHeight = '56px';
4
3
 
5
- export { defaultCellSpacing, footerCellHeight, headerCellHeight };
4
+ export { defaultCellSpacing, headerCellHeight };
6
5
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sources":["../../../src/components/DataTable/constants.ts"],"sourcesContent":["export const defaultCellSpacing = 3;\n\nexport const headerCellHeight = '56px';\nexport const footerCellHeight = '56px';\n"],"names":[],"mappings":"AAAO,MAAM,kBAAkB,GAAG;AAE3B,MAAM,gBAAgB,GAAG;AACzB,MAAM,gBAAgB,GAAG;;;;"}
1
+ {"version":3,"file":"constants.js","sources":["../../../src/components/DataTable/constants.ts"],"sourcesContent":["export const defaultCellSpacing = 3;\n\nexport const headerCellHeight = '56px';\nexport const footerCellHeight = '56px';\n"],"names":[],"mappings":"AAAO,MAAM,kBAAkB,GAAG;AAE3B,MAAM,gBAAgB,GAAG;;;;"}
@@ -0,0 +1,23 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+
5
+ let tableIdCounter = 0;
6
+ /**
7
+ * Generates a unique stable ID per component instance for scoping
8
+ * dynamic CSS to a specific DataTable. Compatible with React 17+.
9
+ *
10
+ * Note: Uses a module-level counter. Not SSR-safe (render order dependent).
11
+ * If SSR support is needed, use a context-based ID provider.
12
+ */
13
+ function useTableId() {
14
+ const idRef = React.useRef(null);
15
+ if (idRef.current === null) {
16
+ tableIdCounter += 1;
17
+ idRef.current = `dt-${tableIdCounter}`;
18
+ }
19
+ return idRef.current;
20
+ }
21
+
22
+ exports.useTableId = useTableId;
23
+ //# sourceMappingURL=useTableId.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTableId.cjs","sources":["../../../../src/components/DataTable/hooks/useTableId.ts"],"sourcesContent":["import { useRef } from 'react';\n\nlet tableIdCounter = 0;\n\n/**\n * Generates a unique stable ID per component instance for scoping\n * dynamic CSS to a specific DataTable. Compatible with React 17+.\n *\n * Note: Uses a module-level counter. Not SSR-safe (render order dependent).\n * If SSR support is needed, use a context-based ID provider.\n */\nexport function useTableId(): string {\n const idRef = useRef<string | null>(null);\n\n if (idRef.current === null) {\n tableIdCounter += 1;\n idRef.current = `dt-${tableIdCounter}`;\n }\n\n return idRef.current;\n}\n\n/**\n * Reset the counter between test runs for deterministic snapshots.\n * @internal Test utility only.\n */\nexport function resetTableIdCounter(): void {\n tableIdCounter = 0;\n}\n"],"names":["useRef"],"mappings":";;;;AAEA,IAAI,cAAc,GAAG,CAAC;AAEtB;;;;;;AAMG;SACa,UAAU,GAAA;AACxB,IAAA,MAAM,KAAK,GAAGA,YAAM,CAAgB,IAAI,CAAC;AAEzC,IAAA,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE;QAC1B,cAAc,IAAI,CAAC;AACnB,QAAA,KAAK,CAAC,OAAO,GAAG,CAAA,GAAA,EAAM,cAAc,EAAE;AACvC,IAAA;IAED,OAAO,KAAK,CAAC,OAAO;AACtB;;;;"}
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Generates a unique stable ID per component instance for scoping
3
+ * dynamic CSS to a specific DataTable. Compatible with React 17+.
4
+ *
5
+ * Note: Uses a module-level counter. Not SSR-safe (render order dependent).
6
+ * If SSR support is needed, use a context-based ID provider.
7
+ */
8
+ export declare function useTableId(): string;
9
+ /**
10
+ * Reset the counter between test runs for deterministic snapshots.
11
+ * @internal Test utility only.
12
+ */
13
+ export declare function resetTableIdCounter(): void;
@@ -0,0 +1,21 @@
1
+ import { useRef } from 'react';
2
+
3
+ let tableIdCounter = 0;
4
+ /**
5
+ * Generates a unique stable ID per component instance for scoping
6
+ * dynamic CSS to a specific DataTable. Compatible with React 17+.
7
+ *
8
+ * Note: Uses a module-level counter. Not SSR-safe (render order dependent).
9
+ * If SSR support is needed, use a context-based ID provider.
10
+ */
11
+ function useTableId() {
12
+ const idRef = useRef(null);
13
+ if (idRef.current === null) {
14
+ tableIdCounter += 1;
15
+ idRef.current = `dt-${tableIdCounter}`;
16
+ }
17
+ return idRef.current;
18
+ }
19
+
20
+ export { useTableId };
21
+ //# sourceMappingURL=useTableId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useTableId.js","sources":["../../../../src/components/DataTable/hooks/useTableId.ts"],"sourcesContent":["import { useRef } from 'react';\n\nlet tableIdCounter = 0;\n\n/**\n * Generates a unique stable ID per component instance for scoping\n * dynamic CSS to a specific DataTable. Compatible with React 17+.\n *\n * Note: Uses a module-level counter. Not SSR-safe (render order dependent).\n * If SSR support is needed, use a context-based ID provider.\n */\nexport function useTableId(): string {\n const idRef = useRef<string | null>(null);\n\n if (idRef.current === null) {\n tableIdCounter += 1;\n idRef.current = `dt-${tableIdCounter}`;\n }\n\n return idRef.current;\n}\n\n/**\n * Reset the counter between test runs for deterministic snapshots.\n * @internal Test utility only.\n */\nexport function resetTableIdCounter(): void {\n tableIdCounter = 0;\n}\n"],"names":[],"mappings":";;AAEA,IAAI,cAAc,GAAG,CAAC;AAEtB;;;;;;AAMG;SACa,UAAU,GAAA;AACxB,IAAA,MAAM,KAAK,GAAG,MAAM,CAAgB,IAAI,CAAC;AAEzC,IAAA,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE;QAC1B,cAAc,IAAI,CAAC;AACnB,QAAA,KAAK,CAAC,OAAO,GAAG,CAAA,GAAA,EAAM,cAAc,EAAE;AACvC,IAAA;IAED,OAAO,KAAK,CAAC,OAAO;AACtB;;;;"}
@@ -5,86 +5,50 @@ var parseWidth = require('./parseWidth.cjs');
5
5
  var sumAll = require('./sumAll.cjs');
6
6
 
7
7
  function generateTableCss({ pinnedLeft, pinnedRight, cellWidths, scrollPosition, stripingMode, columnWidths, columns, enableTransition = true, }) {
8
- const pinnedLeftStyles = pinnedLeft.map((_, index) => `
9
- th:nth-child(${index + 1}),
10
- td:nth-child(${index + 1}) {
11
- position: sticky;
12
- left: ${cellWidths ? sumAll.sumAllBeforeIndex(cellWidths, index + 1) : 0}px;
13
- z-index: 2;
14
- }
15
- `);
16
- const pinnedRightStyles = pinnedRight.map((_, index) => `
17
- th:nth-last-child(${index + 1}),
18
- td:nth-last-child(${index + 1}) {
19
- position: sticky;
20
- right: ${cellWidths ? sumAll.sumAllAfterIndex(cellWidths, cellWidths.length - index) : 0}px;
21
- }
22
- `);
23
- const isLeftShadowVisible = !!scrollPosition && scrollPosition !== 'start' && scrollPosition !== 'none';
24
- const leftShadow = `
25
- th:nth-child(${pinnedLeft.length})::after,
26
- td:nth-child(${pinnedLeft.length})::after {
27
- position: absolute;
28
- transform: translate(100%);
29
- top: 0;
30
- right: 0;
31
- bottom: -1px;
32
- width: 30px;
33
- content: "";
34
- pointer-events: none;
35
- box-sizing: border-box;
36
- box-shadow: ${isLeftShadowVisible ? 'inset 10px 0 10px -8px rgb(0 0 0 / 25%)' : 'none'};
37
- }
38
- `;
39
- const isRightShadowVisible = !!scrollPosition && scrollPosition !== 'end' && scrollPosition !== 'none';
40
- const rightShadow = `
41
- th:nth-last-child(${pinnedRight.length})::after,
42
- td:nth-last-child(${pinnedRight.length})::after {
43
- position: absolute;
44
- transform: translate(-100%);
45
- top: 0;
46
- left: 0;
47
- bottom: -1px;
48
- width: 30px;
49
- content: "";
50
- pointer-events: none;
51
- box-sizing: border-box;
52
- box-shadow: ${isRightShadowVisible ? 'inset -10px 0 10px -8px rgb(0 0 0 / 25%)' : 'none'};
53
- }
54
- `;
55
- const stripingRow = `
56
- tr:nth-child(odd) > td {
57
- background-color: ${index.theme.colors.neutral.grey.lightest};
58
- }
59
-
60
- tr + tr > td {
61
- border-top: 1px solid ${index.theme.colors.neutral.grey.base};
62
- }
63
- `;
64
- const stripingNested = `
65
- tbody:nth-of-type(odd) > tr > td {
66
- background-color: ${index.theme.colors.neutral.grey.lightest};
67
- }
68
-
69
- tbody + tbody > tr:first-child > td {
70
- border-top: 1px solid ${index.theme.colors.neutral.grey.base};
71
- }
72
- `;
73
- return `
74
- grid-template-columns: ${columns.map((column) => { var _a; return parseWidth.parseWidth((_a = columnWidths[column.id]) !== null && _a !== void 0 ? _a : column.width); }).join(' ')};
75
-
76
- th::after, td::after {
77
- transition: box-shadow ${enableTransition ? '.3s' : '0s'};
78
- }
79
-
80
- ${pinnedLeft.length > 0 ? pinnedLeftStyles : ''}
81
- ${pinnedRight.length > 0 ? pinnedRightStyles : ''}
82
-
83
- ${leftShadow}
84
- ${rightShadow}
85
-
86
- ${stripingMode === 'nested' ? stripingNested : stripingRow}
87
- `;
8
+ const rules = [];
9
+ // Pinned left columns
10
+ if (pinnedLeft.length > 0) {
11
+ pinnedLeft.forEach((_, index) => {
12
+ rules.push(`th:nth-child(${index + 1}), td:nth-child(${index + 1}) { position: sticky; left: ${cellWidths ? sumAll.sumAllBeforeIndex(cellWidths, index + 1) : 0}px; z-index: 2; }`);
13
+ });
14
+ }
15
+ // Pinned right columns
16
+ if (pinnedRight.length > 0) {
17
+ pinnedRight.forEach((_, index) => {
18
+ rules.push(`th:nth-last-child(${index + 1}), td:nth-last-child(${index + 1}) { position: sticky; right: ${cellWidths ? sumAll.sumAllAfterIndex(cellWidths, cellWidths.length - index) : 0}px; }`);
19
+ });
20
+ }
21
+ // Pseudo-element transition (only needed when pinned columns have shadows)
22
+ if (pinnedLeft.length > 0 || pinnedRight.length > 0) {
23
+ rules.push(`th::after, td::after { transition: box-shadow ${enableTransition ? '.3s' : '0s'}; }`);
24
+ }
25
+ // Left shadow
26
+ if (pinnedLeft.length > 0) {
27
+ const isLeftShadowVisible = !!scrollPosition && scrollPosition !== 'start' && scrollPosition !== 'none';
28
+ rules.push(`th:nth-child(${pinnedLeft.length})::after, td:nth-child(${pinnedLeft.length})::after { position: absolute; transform: translate(100%); top: 0; right: 0; bottom: -1px; width: 30px; content: ""; pointer-events: none; box-sizing: border-box; box-shadow: ${isLeftShadowVisible ? 'inset 10px 0 10px -8px rgb(0 0 0 / 25%)' : 'none'}; }`);
29
+ }
30
+ // Right shadow
31
+ if (pinnedRight.length > 0) {
32
+ const isRightShadowVisible = !!scrollPosition && scrollPosition !== 'end' && scrollPosition !== 'none';
33
+ rules.push(`th:nth-last-child(${pinnedRight.length})::after, td:nth-last-child(${pinnedRight.length})::after { position: absolute; transform: translate(-100%); top: 0; left: 0; bottom: -1px; width: 30px; content: ""; pointer-events: none; box-sizing: border-box; box-shadow: ${isRightShadowVisible ? 'inset -10px 0 10px -8px rgb(0 0 0 / 25%)' : 'none'}; }`);
34
+ }
35
+ // Striping
36
+ if (stripingMode === 'nested') {
37
+ rules.push(`tbody:nth-of-type(odd) > tr > td { background-color: ${index.theme.colors.neutral.grey.lightest}; }`);
38
+ rules.push(`tbody + tbody > tr:first-child > td { border-top: 1px solid ${index.theme.colors.neutral.grey.base}; }`);
39
+ }
40
+ else {
41
+ rules.push(`tr:nth-child(odd) > td { background-color: ${index.theme.colors.neutral.grey.lightest}; }`);
42
+ rules.push(`tr + tr > td { border-top: 1px solid ${index.theme.colors.neutral.grey.base}; }`);
43
+ }
44
+ // Grid template columns (applied as a property on the table element)
45
+ const gridTemplateColumns = columns
46
+ .map((column) => { var _a; return parseWidth.parseWidth((_a = columnWidths[column.id]) !== null && _a !== void 0 ? _a : column.width); })
47
+ .join(' ');
48
+ return {
49
+ properties: `grid-template-columns: ${gridTemplateColumns};`,
50
+ rules,
51
+ };
88
52
  }
89
53
 
90
54
  exports.generateTableCss = generateTableCss;