@dnb/eufemia 9.38.0-beta.1 → 9.38.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 (164) hide show
  1. package/CHANGELOG.md +6 -1
  2. package/cjs/components/lib.d.ts +2 -3
  3. package/cjs/components/table/Table.d.ts +21 -6
  4. package/cjs/components/table/Table.js +14 -3
  5. package/cjs/components/table/TableContainer.d.ts +42 -0
  6. package/cjs/components/table/TableContainer.js +86 -0
  7. package/cjs/components/table/TableScrollView.d.ts +10 -0
  8. package/cjs/components/table/TableScrollView.js +40 -0
  9. package/cjs/components/table/TableStickyHeader.d.ts +2 -2
  10. package/cjs/components/table/TableTd.d.ts +10 -0
  11. package/cjs/components/table/TableTd.js +4 -2
  12. package/cjs/components/table/TableTh.d.ts +1 -0
  13. package/cjs/components/table/TableTh.js +14 -2
  14. package/cjs/components/table/TableTr.d.ts +5 -0
  15. package/cjs/components/table/TableTr.js +3 -2
  16. package/cjs/components/table/style/_table-cell.scss +21 -0
  17. package/cjs/components/table/style/_table-container.scss +61 -0
  18. package/cjs/components/table/style/_table-header-buttons.scss +0 -5
  19. package/cjs/components/table/style/_table-sticky.scss +42 -0
  20. package/cjs/components/table/style/_table-td.scss +132 -0
  21. package/cjs/components/table/style/_table-th.scss +36 -0
  22. package/cjs/components/table/style/_table-tr.scss +31 -0
  23. package/cjs/components/table/style/_table.scss +9 -36
  24. package/cjs/components/table/style/dnb-table.css +264 -37
  25. package/cjs/components/table/style/dnb-table.min.css +2 -2
  26. package/cjs/components/table/style/themes/dnb-table-theme-ui.css +12 -71
  27. package/cjs/components/table/style/themes/dnb-table-theme-ui.min.css +1 -1
  28. package/cjs/components/table/style/themes/dnb-table-theme-ui.scss +6 -72
  29. package/cjs/elements/Table.d.ts +6 -2
  30. package/cjs/elements/Td.d.ts +6 -2
  31. package/cjs/elements/Th.d.ts +6 -2
  32. package/cjs/elements/Tr.d.ts +6 -2
  33. package/cjs/elements/index.d.ts +1 -5
  34. package/cjs/elements/index.js +0 -32
  35. package/cjs/elements/lib.d.ts +1 -7
  36. package/cjs/elements/lib.js +0 -27
  37. package/cjs/index.d.ts +1 -4
  38. package/cjs/index.js +0 -24
  39. package/cjs/shared/Eufemia.js +1 -1
  40. package/cjs/style/dnb-ui-components.css +252 -37
  41. package/cjs/style/dnb-ui-components.min.css +2 -2
  42. package/cjs/style/dnb-ui-elements.css +15 -3
  43. package/cjs/style/dnb-ui-elements.min.css +1 -1
  44. package/cjs/style/dnb-ui-tags.css +25 -6
  45. package/cjs/style/dnb-ui-tags.min.css +1 -1
  46. package/cjs/style/elements/_anchor-mixins.scss +8 -4
  47. package/cjs/style/elements/typography.scss +14 -0
  48. package/cjs/style/themes/theme-eiendom/dnb-theme-eiendom.css +27 -74
  49. package/cjs/style/themes/theme-eiendom/dnb-theme-eiendom.min.css +2 -2
  50. package/cjs/style/themes/theme-ui/dnb-theme-ui.css +27 -74
  51. package/cjs/style/themes/theme-ui/dnb-theme-ui.min.css +2 -2
  52. package/components/lib.d.ts +2 -3
  53. package/components/table/Table.d.ts +21 -6
  54. package/components/table/Table.js +8 -3
  55. package/components/table/TableContainer.d.ts +42 -0
  56. package/components/table/TableContainer.js +52 -0
  57. package/components/table/TableScrollView.d.ts +10 -0
  58. package/components/table/TableScrollView.js +15 -0
  59. package/components/table/TableStickyHeader.d.ts +2 -2
  60. package/components/table/TableTd.d.ts +10 -0
  61. package/components/table/TableTd.js +4 -2
  62. package/components/table/TableTh.d.ts +1 -0
  63. package/components/table/TableTh.js +15 -2
  64. package/components/table/TableTr.d.ts +5 -0
  65. package/components/table/TableTr.js +3 -2
  66. package/components/table/style/_table-cell.scss +21 -0
  67. package/components/table/style/_table-container.scss +61 -0
  68. package/components/table/style/_table-header-buttons.scss +0 -5
  69. package/components/table/style/_table-sticky.scss +42 -0
  70. package/components/table/style/_table-td.scss +132 -0
  71. package/components/table/style/_table-th.scss +36 -0
  72. package/components/table/style/_table-tr.scss +31 -0
  73. package/components/table/style/_table.scss +9 -36
  74. package/components/table/style/dnb-table.css +264 -37
  75. package/components/table/style/dnb-table.min.css +2 -2
  76. package/components/table/style/themes/dnb-table-theme-ui.css +12 -71
  77. package/components/table/style/themes/dnb-table-theme-ui.min.css +1 -1
  78. package/components/table/style/themes/dnb-table-theme-ui.scss +6 -72
  79. package/elements/Table.d.ts +6 -2
  80. package/elements/Td.d.ts +6 -2
  81. package/elements/Th.d.ts +6 -2
  82. package/elements/Tr.d.ts +6 -2
  83. package/elements/index.d.ts +1 -5
  84. package/elements/index.js +1 -5
  85. package/elements/lib.d.ts +1 -7
  86. package/elements/lib.js +1 -7
  87. package/es/components/lib.d.ts +2 -3
  88. package/es/components/table/Table.d.ts +21 -6
  89. package/es/components/table/Table.js +9 -4
  90. package/es/components/table/TableContainer.d.ts +42 -0
  91. package/es/components/table/TableContainer.js +60 -0
  92. package/es/components/table/TableScrollView.d.ts +10 -0
  93. package/es/components/table/TableScrollView.js +17 -0
  94. package/es/components/table/TableStickyHeader.d.ts +2 -2
  95. package/es/components/table/TableTd.d.ts +10 -0
  96. package/es/components/table/TableTd.js +5 -3
  97. package/es/components/table/TableTh.d.ts +1 -0
  98. package/es/components/table/TableTh.js +16 -2
  99. package/es/components/table/TableTr.d.ts +5 -0
  100. package/es/components/table/TableTr.js +3 -2
  101. package/es/components/table/style/_table-cell.scss +21 -0
  102. package/es/components/table/style/_table-container.scss +61 -0
  103. package/es/components/table/style/_table-header-buttons.scss +0 -5
  104. package/es/components/table/style/_table-sticky.scss +42 -0
  105. package/es/components/table/style/_table-td.scss +132 -0
  106. package/es/components/table/style/_table-th.scss +36 -0
  107. package/es/components/table/style/_table-tr.scss +31 -0
  108. package/es/components/table/style/_table.scss +9 -36
  109. package/es/components/table/style/dnb-table.css +264 -37
  110. package/es/components/table/style/dnb-table.min.css +2 -2
  111. package/es/components/table/style/themes/dnb-table-theme-ui.css +12 -71
  112. package/es/components/table/style/themes/dnb-table-theme-ui.min.css +1 -1
  113. package/es/components/table/style/themes/dnb-table-theme-ui.scss +6 -72
  114. package/es/elements/Table.d.ts +6 -2
  115. package/es/elements/Td.d.ts +6 -2
  116. package/es/elements/Th.d.ts +6 -2
  117. package/es/elements/Tr.d.ts +6 -2
  118. package/es/elements/index.d.ts +1 -5
  119. package/es/elements/index.js +1 -5
  120. package/es/elements/lib.d.ts +1 -7
  121. package/es/elements/lib.js +1 -7
  122. package/es/index.d.ts +1 -4
  123. package/es/index.js +1 -4
  124. package/es/shared/Eufemia.js +1 -1
  125. package/es/style/dnb-ui-components.css +252 -37
  126. package/es/style/dnb-ui-components.min.css +2 -2
  127. package/es/style/dnb-ui-elements.css +15 -3
  128. package/es/style/dnb-ui-elements.min.css +1 -1
  129. package/es/style/dnb-ui-tags.css +25 -6
  130. package/es/style/dnb-ui-tags.min.css +1 -1
  131. package/es/style/elements/_anchor-mixins.scss +8 -4
  132. package/es/style/elements/typography.scss +14 -0
  133. package/es/style/themes/theme-eiendom/dnb-theme-eiendom.css +27 -74
  134. package/es/style/themes/theme-eiendom/dnb-theme-eiendom.min.css +2 -2
  135. package/es/style/themes/theme-ui/dnb-theme-ui.css +27 -74
  136. package/es/style/themes/theme-ui/dnb-theme-ui.min.css +2 -2
  137. package/esm/dnb-ui-basis.min.mjs +1 -1
  138. package/esm/dnb-ui-components.min.mjs +1 -1
  139. package/esm/dnb-ui-elements.min.mjs +4 -4
  140. package/esm/dnb-ui-extensions.min.mjs +1 -1
  141. package/esm/dnb-ui-lib.min.mjs +2 -2
  142. package/esm/dnb-ui-web-components.min.mjs +2 -2
  143. package/index.d.ts +1 -4
  144. package/index.js +1 -4
  145. package/package.json +1 -1
  146. package/shared/Eufemia.js +1 -1
  147. package/style/dnb-ui-components.css +252 -37
  148. package/style/dnb-ui-components.min.css +2 -2
  149. package/style/dnb-ui-elements.css +15 -3
  150. package/style/dnb-ui-elements.min.css +1 -1
  151. package/style/dnb-ui-tags.css +25 -6
  152. package/style/dnb-ui-tags.min.css +1 -1
  153. package/style/elements/_anchor-mixins.scss +8 -4
  154. package/style/elements/typography.scss +14 -0
  155. package/style/themes/theme-eiendom/dnb-theme-eiendom.css +27 -74
  156. package/style/themes/theme-eiendom/dnb-theme-eiendom.min.css +2 -2
  157. package/style/themes/theme-ui/dnb-theme-ui.css +27 -74
  158. package/style/themes/theme-ui/dnb-theme-ui.min.css +2 -2
  159. package/umd/dnb-ui-basis.min.js +1 -1
  160. package/umd/dnb-ui-components.min.js +1 -1
  161. package/umd/dnb-ui-elements.min.js +5 -5
  162. package/umd/dnb-ui-extensions.min.js +1 -1
  163. package/umd/dnb-ui-lib.min.js +2 -2
  164. package/umd/dnb-ui-web-components.min.js +2 -2
package/CHANGELOG.md CHANGED
@@ -3,7 +3,7 @@
3
3
  All notable changes to @dnb/eufemia will be documented in this file. See
4
4
  [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
- # [9.38.0-beta.1](https://github.com/dnbexperience/eufemia/compare/v9.37.0...v9.38.0-beta.1) (2022-11-17)
6
+ # [9.38.0](https://github.com/dnbexperience/eufemia/compare/v9.37.0...v9.38.0) (2022-11-22)
7
7
 
8
8
 
9
9
  ### Bug Fixes
@@ -18,10 +18,15 @@ All notable changes to @dnb/eufemia will be documented in this file. See
18
18
  ### Features
19
19
 
20
20
  * **Table:** add "fixed" prop for fixed table layouts ([#1708](https://github.com/dnbexperience/eufemia/issues/1708)) ([241ee0f](https://github.com/dnbexperience/eufemia/commit/241ee0f77bc48c0dd9ac84d0035971c784ba3a8b))
21
+ * **Table:** add table "border" and "outline" property ([#1739](https://github.com/dnbexperience/eufemia/issues/1739)) ([ad63ffb](https://github.com/dnbexperience/eufemia/commit/ad63ffbda03b6a72f9567df6d8d02033f0d4434c))
22
+ * **Table:** add Table.ScrolView to support horizontal scroll ([#1735](https://github.com/dnbexperience/eufemia/issues/1735)) ([85a4d86](https://github.com/dnbexperience/eufemia/commit/85a4d86afa20ea775d89c2bfcef56dd32a2e6004))
21
23
  * **Table:** add Table.SortButton ([#1709](https://github.com/dnbexperience/eufemia/issues/1709)) ([288a8db](https://github.com/dnbexperience/eufemia/commit/288a8dbaf2e0622208d567b62302e5b668bd90b7))
24
+ * **Table:** add TableContainer to stack tables with an outline ([#1740](https://github.com/dnbexperience/eufemia/issues/1740)) ([376ac06](https://github.com/dnbexperience/eufemia/commit/376ac063518d8741223b39d87197d207b939c008))
22
25
  * **Table:** add Th.HelpButton to be used in Table Headers ([#1711](https://github.com/dnbexperience/eufemia/issues/1711)) ([c142323](https://github.com/dnbexperience/eufemia/commit/c142323b56389218b5f2451c55fc7282dec5d0c4))
26
+ * **Table:** support rowSpan ([#1733](https://github.com/dnbexperience/eufemia/issues/1733)) ([463692d](https://github.com/dnbexperience/eufemia/commit/463692db1e803903a93c32a1028689f3f9e55afc))
23
27
  * **Th:** add table header sortable props ([#1706](https://github.com/dnbexperience/eufemia/issues/1706)) ([c40393a](https://github.com/dnbexperience/eufemia/commit/c40393addb8bc75fc84320ad21f5c0f1c5c42bc0))
24
28
  * **Tr:** automate odd/even and make it overridable ([#1705](https://github.com/dnbexperience/eufemia/issues/1705)) ([d73d3cb](https://github.com/dnbexperience/eufemia/commit/d73d3cbdc115ceb5b9e9609a719ff58b919d9c69))
29
+ * **Typography:** support styles for superscript and subscript elements ([#1721](https://github.com/dnbexperience/eufemia/issues/1721)) ([c2b043d](https://github.com/dnbexperience/eufemia/commit/c2b043db0bfddb9678e526f4eb2a9a0b1ca16d9d))
25
30
  * **Upload:** support files dropped on the document body ([#1719](https://github.com/dnbexperience/eufemia/issues/1719)) ([f206243](https://github.com/dnbexperience/eufemia/commit/f20624303468789b89a907cb5157e5a975ac43a7))
26
31
 
27
32
  # [9.37.0](https://github.com/dnbexperience/eufemia/compare/v9.36.0...v9.37.0) (2022-11-07)
@@ -51,10 +51,9 @@ export function getComponents(): {
51
51
  StepIndicator: typeof StepIndicator;
52
52
  Switch: typeof Switch;
53
53
  Table: {
54
- (componentProps: import("./table/Table").TableProps & import("react").TableHTMLAttributes<HTMLTableElement> & import("./space/types").SpacingElementProps & {
55
- space?: import("./space/types").SpaceTypes | import("./space/types").SpacingElementProps;
56
- }): JSX.Element;
54
+ (componentProps: import("./table/Table").TableAllProps): JSX.Element;
57
55
  StickyHelper: () => JSX.Element;
56
+ ScrollView: typeof import("./table/TableScrollView").default;
58
57
  };
59
58
  Tabs: typeof Tabs;
60
59
  Tag: {
@@ -1,11 +1,14 @@
1
1
  import React from 'react';
2
- import { SkeletonShow } from '../skeleton/Skeleton';
3
- import { SpacingProps } from '../../shared/types';
4
- import { StickyHelper, StickyTableHeaderProps } from './TableStickyHeader';
2
+ import ScrollView from './TableScrollView';
3
+ import { StickyHelper } from './TableStickyHeader';
4
+ import type { StickyTableHeaderProps } from './TableStickyHeader';
5
+ import type { SkeletonShow } from '../skeleton/Skeleton';
6
+ import type { SpacingProps } from '../../shared/types';
5
7
  export declare type TableSizes = 'large' | 'medium';
6
8
  export declare type TableVariants = 'generic';
7
9
  export { StickyHelper };
8
- export interface TableProps extends StickyTableHeaderProps {
10
+ export { ScrollView };
11
+ export declare type TableProps = {
9
12
  /**
10
13
  * The content of the component.
11
14
  */
@@ -28,18 +31,30 @@ export interface TableProps extends StickyTableHeaderProps {
28
31
  * Default: generic.
29
32
  */
30
33
  variant?: TableVariants;
34
+ /**
35
+ * Use `true` to show borders between table data cell
36
+ * Default: false
37
+ */
38
+ border?: boolean;
39
+ /**
40
+ * Use `true` to show a outline border around the table
41
+ * Default: false
42
+ */
43
+ outline?: boolean;
31
44
  /**
32
45
  * Defines if the table should behave with a fixed table layout, using: "table-layout: fixed;"
33
46
  * Default: null.
34
47
  */
35
48
  fixed?: boolean;
36
- }
49
+ } & StickyTableHeaderProps;
50
+ export declare type TableAllProps = TableProps & React.TableHTMLAttributes<HTMLTableElement> & SpacingProps;
37
51
  export declare const defaultProps: {
38
52
  size: string;
39
53
  variant: string;
40
54
  };
41
55
  declare const Table: {
42
- (componentProps: TableProps & React.TableHTMLAttributes<HTMLTableElement> & SpacingProps): JSX.Element;
56
+ (componentProps: TableAllProps): JSX.Element;
43
57
  StickyHelper: () => JSX.Element;
58
+ ScrollView: typeof ScrollView;
44
59
  };
45
60
  export default Table;
@@ -39,6 +39,12 @@ require("core-js/modules/es.object.assign.js");
39
39
  Object.defineProperty(exports, "__esModule", {
40
40
  value: true
41
41
  });
42
+ Object.defineProperty(exports, "ScrollView", {
43
+ enumerable: true,
44
+ get: function get() {
45
+ return _TableScrollView.default;
46
+ }
47
+ });
42
48
  Object.defineProperty(exports, "StickyHelper", {
43
49
  enumerable: true,
44
50
  get: function get() {
@@ -63,11 +69,13 @@ var _SkeletonHelper = require("../skeleton/SkeletonHelper");
63
69
 
64
70
  var _componentHelper = require("../../shared/component-helper");
65
71
 
72
+ var _TableScrollView = _interopRequireDefault(require("./TableScrollView"));
73
+
66
74
  var _TableContext = _interopRequireDefault(require("./TableContext"));
67
75
 
68
76
  var _TableStickyHeader = require("./TableStickyHeader");
69
77
 
70
- var _excluded = ["className", "children", "size", "skeleton", "variant", "sticky", "stickyOffset", "fixed"];
78
+ var _excluded = ["className", "children", "size", "skeleton", "variant", "sticky", "stickyOffset", "fixed", "border", "outline"];
71
79
 
72
80
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
73
81
 
@@ -116,6 +124,8 @@ var Table = function Table(componentProps) {
116
124
  sticky = allProps.sticky,
117
125
  stickyOffset = allProps.stickyOffset,
118
126
  fixed = allProps.fixed,
127
+ border = allProps.border,
128
+ outline = allProps.outline,
119
129
  props = _objectWithoutProperties(allProps, _excluded);
120
130
 
121
131
  var skeletonClasses = (0, _SkeletonHelper.createSkeletonClass)('font', skeleton, context);
@@ -144,7 +154,7 @@ var Table = function Table(componentProps) {
144
154
  allProps: _objectSpread(_objectSpread({}, context.getTranslation(componentProps).Table), allProps)
145
155
  }
146
156
  }, _react.default.createElement("table", _extends({
147
- className: (0, _classnames.default)('dnb-table', spacingClasses, skeletonClasses, className, variant && "dnb-table__variant--".concat(variant), size && "dnb-table__size--".concat(size), sticky && "dnb-table--sticky", fixed && "dnb-table--fixed"),
157
+ className: (0, _classnames.default)('dnb-table', spacingClasses, skeletonClasses, className, variant && "dnb-table__variant--".concat(variant), size && "dnb-table__size--".concat(size), sticky && "dnb-table--sticky", fixed && "dnb-table--fixed", border && "dnb-table--border", outline && "dnb-table--outline"),
148
158
  ref: elementRef
149
159
  }, props), children)));
150
160
 
@@ -156,4 +166,5 @@ var Table = function Table(componentProps) {
156
166
 
157
167
  var _default = Table;
158
168
  exports.default = _default;
159
- Table.StickyHelper = _TableStickyHeader.StickyHelper;
169
+ Table.StickyHelper = _TableStickyHeader.StickyHelper;
170
+ Table.ScrollView = _TableScrollView.default;
@@ -0,0 +1,42 @@
1
+ import React from 'react';
2
+ import type { TableProps } from './Table';
3
+ import type { SpacingProps } from '../space/types';
4
+ export declare type TableContainerProps = {
5
+ /**
6
+ * The content of the component.
7
+ */
8
+ children: [
9
+ React.ReactElement<TableContainerHeadProps>,
10
+ React.ReactElement<TableContainerBodyProps>,
11
+ React.ReactElement<TableContainerFootProps>
12
+ ];
13
+ };
14
+ export declare type TableContainerAllProps = TableContainerProps & React.TableHTMLAttributes<HTMLTableRowElement> & SpacingProps;
15
+ declare function TableContainer(props: TableContainerAllProps): JSX.Element;
16
+ declare namespace TableContainer {
17
+ var Body: typeof TableContainerBody;
18
+ var Head: typeof TableContainerHead;
19
+ var Foot: typeof TableContainerFoot;
20
+ }
21
+ export default TableContainer;
22
+ export declare type TableContainerBodyProps = {
23
+ /**
24
+ * The content of the component.
25
+ */
26
+ children: React.ReactElement<TableProps> | Array<React.ReactElement<TableProps>>;
27
+ };
28
+ export declare function TableContainerBody(props: TableContainerBodyProps & React.HTMLAttributes<HTMLDivElement>): JSX.Element;
29
+ export declare type TableContainerHeadProps = {
30
+ /**
31
+ * The content of the component.
32
+ */
33
+ children: React.ReactNode;
34
+ };
35
+ export declare function TableContainerHead(props: TableContainerHeadProps & React.HTMLAttributes<HTMLDivElement>): JSX.Element;
36
+ export declare type TableContainerFootProps = {
37
+ /**
38
+ * The content of the component.
39
+ */
40
+ children: React.ReactNode;
41
+ };
42
+ export declare function TableContainerFoot(props: TableContainerFootProps & React.HTMLAttributes<HTMLDivElement>): JSX.Element;
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.keys.js");
4
+
5
+ require("core-js/modules/es.array.index-of.js");
6
+
7
+ require("core-js/modules/es.symbol.js");
8
+
9
+ require("core-js/modules/es.object.assign.js");
10
+
11
+ Object.defineProperty(exports, "__esModule", {
12
+ value: true
13
+ });
14
+ exports.TableContainerBody = TableContainerBody;
15
+ exports.TableContainerFoot = TableContainerFoot;
16
+ exports.TableContainerHead = TableContainerHead;
17
+ exports.default = TableContainer;
18
+
19
+ var _react = _interopRequireDefault(require("react"));
20
+
21
+ var _classnames = _interopRequireDefault(require("classnames"));
22
+
23
+ var _ScrollView = _interopRequireDefault(require("../../fragments/scroll-view/ScrollView"));
24
+
25
+ var _SpacingUtils = require("../space/SpacingUtils");
26
+
27
+ var _componentHelper = require("../../shared/component-helper");
28
+
29
+ var _excluded = ["children", "className"],
30
+ _excluded2 = ["children", "className"],
31
+ _excluded3 = ["children", "className"],
32
+ _excluded4 = ["children", "className"];
33
+
34
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
35
+
36
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
37
+
38
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
39
+
40
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
41
+
42
+ function TableContainer(props) {
43
+ var children = props.children,
44
+ className = props.className,
45
+ rest = _objectWithoutProperties(props, _excluded);
46
+
47
+ var spacingClasses = (0, _SpacingUtils.createSpacingClasses)(props);
48
+ (0, _componentHelper.validateDOMAttributes)(props, rest);
49
+ return _react.default.createElement("section", _extends({
50
+ className: (0, _classnames.default)('dnb-table__container', className, spacingClasses)
51
+ }, rest), _react.default.createElement(_ScrollView.default, null, children));
52
+ }
53
+
54
+ function TableContainerBody(props) {
55
+ var children = props.children,
56
+ className = props.className,
57
+ rest = _objectWithoutProperties(props, _excluded2);
58
+
59
+ return _react.default.createElement("div", _extends({
60
+ className: (0, _classnames.default)('dnb-table__container__body', className)
61
+ }, rest), children);
62
+ }
63
+
64
+ function TableContainerHead(props) {
65
+ var children = props.children,
66
+ className = props.className,
67
+ rest = _objectWithoutProperties(props, _excluded3);
68
+
69
+ return _react.default.createElement("div", _extends({
70
+ className: (0, _classnames.default)('dnb-table__container__head', className)
71
+ }, rest), children);
72
+ }
73
+
74
+ function TableContainerFoot(props) {
75
+ var children = props.children,
76
+ className = props.className,
77
+ rest = _objectWithoutProperties(props, _excluded4);
78
+
79
+ return _react.default.createElement("div", _extends({
80
+ className: (0, _classnames.default)('dnb-table__container__foot', className)
81
+ }, rest), children);
82
+ }
83
+
84
+ TableContainer.Body = TableContainerBody;
85
+ TableContainer.Head = TableContainerHead;
86
+ TableContainer.Foot = TableContainerFoot;
@@ -0,0 +1,10 @@
1
+ import React from 'react';
2
+ import type { SpacingProps } from '../../shared/types';
3
+ export declare type TableScrollViewProps = {
4
+ /**
5
+ * The content of the component.
6
+ */
7
+ children: React.ReactElement<HTMLTableElement>;
8
+ };
9
+ export declare type TableScrollViewAllProps = TableScrollViewProps & Omit<React.TableHTMLAttributes<HTMLDivElement>, 'children'> & SpacingProps;
10
+ export default function TableScrollView(props: TableScrollViewAllProps): JSX.Element;
@@ -0,0 +1,40 @@
1
+ "use strict";
2
+
3
+ require("core-js/modules/es.object.keys.js");
4
+
5
+ require("core-js/modules/es.array.index-of.js");
6
+
7
+ require("core-js/modules/es.symbol.js");
8
+
9
+ require("core-js/modules/es.object.assign.js");
10
+
11
+ Object.defineProperty(exports, "__esModule", {
12
+ value: true
13
+ });
14
+ exports.default = TableScrollView;
15
+
16
+ var _react = _interopRequireDefault(require("react"));
17
+
18
+ var _classnames = _interopRequireDefault(require("classnames"));
19
+
20
+ var _ScrollView = _interopRequireDefault(require("../../fragments/scroll-view/ScrollView"));
21
+
22
+ var _excluded = ["className", "children"];
23
+
24
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
+
26
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
27
+
28
+ function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
29
+
30
+ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
31
+
32
+ function TableScrollView(props) {
33
+ var className = props.className,
34
+ children = props.children,
35
+ rest = _objectWithoutProperties(props, _excluded);
36
+
37
+ return _react.default.createElement(_ScrollView.default, _extends({
38
+ className: (0, _classnames.default)('dnb-table__scroll-view', className)
39
+ }, rest), children);
40
+ }
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- export interface StickyTableHeaderProps {
2
+ export declare type StickyTableHeaderProps = {
3
3
  /**
4
4
  * Makes the Table header sticky
5
5
  * Default: false
@@ -14,7 +14,7 @@ export interface StickyTableHeaderProps {
14
14
  * @deprecated Please use `stickyOffset`
15
15
  */
16
16
  sticky_offset?: string | number;
17
- }
17
+ };
18
18
  export declare const useStickyHeader: ({ sticky, stickyOffset, sticky_offset, }: StickyTableHeaderProps) => {
19
19
  elementRef: React.MutableRefObject<HTMLTableElement>;
20
20
  };
@@ -1,5 +1,15 @@
1
1
  import React from 'react';
2
2
  export declare type TableTdProps = {
3
+ /**
4
+ * if set to `true`, no padding will be added
5
+ * Default: false
6
+ */
7
+ noSpacing?: boolean;
8
+ /**
9
+ * Set to `horizontal` for padding on left and right side
10
+ * Default: false
11
+ */
12
+ spacing?: 'horizontal';
3
13
  /**
4
14
  * The content of the component.
5
15
  * Default: null
@@ -17,7 +17,7 @@ var _react = _interopRequireDefault(require("react"));
17
17
 
18
18
  var _classnames = _interopRequireDefault(require("classnames"));
19
19
 
20
- var _excluded = ["className", "children"];
20
+ var _excluded = ["className", "children", "noSpacing", "spacing"];
21
21
 
22
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
23
 
@@ -30,10 +30,12 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
30
30
  function Td(componentProps) {
31
31
  var className = componentProps.className,
32
32
  children = componentProps.children,
33
+ noSpacing = componentProps.noSpacing,
34
+ spacing = componentProps.spacing,
33
35
  props = _objectWithoutProperties(componentProps, _excluded);
34
36
 
35
37
  return _react.default.createElement("td", _extends({
36
38
  role: "cell",
37
- className: (0, _classnames.default)('dnb-table__td', className)
39
+ className: (0, _classnames.default)('dnb-table__td', className, noSpacing && 'dnb-table__td--no-spacing', spacing && "dnb-table__td--spacing-".concat(spacing))
38
40
  }, props), children);
39
41
  }
@@ -32,5 +32,6 @@ declare function Th(componentProps: TableThProps & React.ThHTMLAttributes<HTMLTa
32
32
  declare namespace Th {
33
33
  var SortButton: typeof TableSortButton;
34
34
  var HelpButton: typeof TableHelpButton;
35
+ var Horizontal: ({ className, ...rest }: React.ThHTMLAttributes<HTMLDivElement>) => JSX.Element;
35
36
  }
36
37
  export default Th;
@@ -21,7 +21,8 @@ var _TableSortButton = _interopRequireDefault(require("./TableSortButton"));
21
21
 
22
22
  var _TableHelpButton = _interopRequireDefault(require("./TableHelpButton"));
23
23
 
24
- var _excluded = ["className", "children", "sortable", "active", "reversed", "noWrap"];
24
+ var _excluded = ["className", "children", "sortable", "active", "reversed", "noWrap"],
25
+ _excluded2 = ["className"];
25
26
 
26
27
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
28
 
@@ -46,5 +47,16 @@ function Th(componentProps) {
46
47
  }, props), children);
47
48
  }
48
49
 
50
+ function Horizontal(_ref) {
51
+ var _ref$className = _ref.className,
52
+ className = _ref$className === void 0 ? null : _ref$className,
53
+ rest = _objectWithoutProperties(_ref, _excluded2);
54
+
55
+ return _react.default.createElement("div", _extends({}, rest, {
56
+ className: (0, _classnames.default)('dnb-table__th__horizontal', className)
57
+ }));
58
+ }
59
+
49
60
  Th.SortButton = _TableSortButton.default;
50
- Th.HelpButton = _TableHelpButton.default;
61
+ Th.HelpButton = _TableHelpButton.default;
62
+ Th.Horizontal = Horizontal;
@@ -5,6 +5,11 @@ export declare type TableTrProps = {
5
5
  * The variant of the tr
6
6
  */
7
7
  variant?: 'even' | 'odd';
8
+ /**
9
+ * If set to true, the inherited header text will not wrap to new lines
10
+ * Default: false
11
+ */
12
+ noWrap?: boolean;
8
13
  /**
9
14
  * The content of the component.
10
15
  */
@@ -19,7 +19,7 @@ var _classnames = _interopRequireDefault(require("classnames"));
19
19
 
20
20
  var _TableContext = _interopRequireDefault(require("./TableContext"));
21
21
 
22
- var _excluded = ["variant", "children", "className"];
22
+ var _excluded = ["variant", "noWrap", "children", "className"];
23
23
 
24
24
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
25
25
 
@@ -31,6 +31,7 @@ function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) r
31
31
 
32
32
  function Tr(componentProps) {
33
33
  var variant = componentProps.variant,
34
+ noWrap = componentProps.noWrap,
34
35
  children = componentProps.children,
35
36
  _className = componentProps.className,
36
37
  props = _objectWithoutProperties(componentProps, _excluded);
@@ -40,7 +41,7 @@ function Tr(componentProps) {
40
41
  }),
41
42
  currentVariant = _useHandleTrVariant.currentVariant;
42
43
 
43
- var className = (0, _classnames.default)('dnb-table__tr', _className, currentVariant && "dnb-table__tr--".concat(currentVariant));
44
+ var className = (0, _classnames.default)('dnb-table__tr', _className, currentVariant && "dnb-table__tr--".concat(currentVariant), noWrap && 'dnb-table--no-wrap');
44
45
  return _react.default.createElement("tr", _extends({
45
46
  role: "row",
46
47
  className: className
@@ -0,0 +1,21 @@
1
+ /*
2
+ * Table component
3
+ *
4
+ */
5
+
6
+ .dnb-table {
7
+ & > tr > th,
8
+ & > tr > td,
9
+ & > thead > tr > th,
10
+ & > tbody > tr > td,
11
+ &__th,
12
+ &__td {
13
+ position: relative;
14
+
15
+ font-size: var(--font-size-basis);
16
+ line-height: var(--line-height-basis);
17
+ border-spacing: 0;
18
+
19
+ word-break: keep-all;
20
+ }
21
+ }
@@ -0,0 +1,61 @@
1
+ /*
2
+ * Table component
3
+ *
4
+ */
5
+
6
+ @mixin tableBorder {
7
+ content: '';
8
+ position: absolute;
9
+ top: 0;
10
+ left: 0;
11
+ right: 0;
12
+ bottom: 0;
13
+ z-index: 1;
14
+
15
+ pointer-events: none;
16
+ }
17
+
18
+ .dnb-table__container {
19
+ position: relative;
20
+
21
+ --border: 0.0625rem solid var(--color-black-8);
22
+ background-color: var(--color-white);
23
+
24
+ &::after {
25
+ @include tableBorder();
26
+
27
+ border: var(--border);
28
+ }
29
+
30
+ &,
31
+ &::after {
32
+ border-radius: 0.5rem;
33
+ }
34
+
35
+ &,
36
+ &__body,
37
+ &__head,
38
+ &__foot {
39
+ display: flex;
40
+ flex-direction: column;
41
+ }
42
+
43
+ &__body {
44
+ .dnb-table {
45
+ &:not([class*='space__bottom']) {
46
+ margin-bottom: 0;
47
+ }
48
+ }
49
+ }
50
+
51
+ &__head {
52
+ padding: 2rem 1rem 0;
53
+
54
+ .dnb-spacing & .dnb-h--large:not([class*='space__top']) {
55
+ margin: 0;
56
+ }
57
+ }
58
+ &__foot {
59
+ padding: 0.5rem 1rem 2rem;
60
+ }
61
+ }
@@ -171,11 +171,6 @@
171
171
  }
172
172
  }
173
173
  }
174
- & > thead > tr > th#{&}--no-wrap,
175
- & > tbody > tr > th#{&}--no-wrap,
176
- & &__th#{&}--no-wrap {
177
- white-space: nowrap;
178
- }
179
174
 
180
175
  & &__th,
181
176
  & > thead > tr > th {
@@ -0,0 +1,42 @@
1
+ /*
2
+ * Table component
3
+ *
4
+ */
5
+
6
+ .dnb-table {
7
+ &__sticky-helper > td {
8
+ display: block;
9
+ overflow: hidden;
10
+ padding: 0 !important;
11
+ height: 0;
12
+ }
13
+
14
+ tr.sticky th {
15
+ position: sticky;
16
+ top: var(--table-top, 0); // is set by "stickyOffset" prop
17
+ z-index: 2;
18
+
19
+ &::before {
20
+ content: '';
21
+ position: absolute;
22
+ opacity: 0;
23
+ left: 0;
24
+ right: 0;
25
+ bottom: 0;
26
+ height: 6px;
27
+
28
+ // The @mixin defaultDropShadow() does not work in this case
29
+ // because we need only a bottom shadow (with clip-path)
30
+ box-shadow: var(--shadow-default-x) -2px 12px 8px var(--shadow-default-color);
31
+ clip-path: inset(6px 0 -48px 0);
32
+
33
+ transition: opacity 300ms ease-out;
34
+ [data-visual-test-wrapper] & {
35
+ transition: none;
36
+ }
37
+ }
38
+ }
39
+ tr.sticky.show-shadow th::before {
40
+ opacity: 1;
41
+ }
42
+ }