@navikt/ds-react 4.8.0 → 4.9.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.
package/_docs.json CHANGED
@@ -7810,7 +7810,7 @@
7810
7810
  "defaultValue": {
7811
7811
  "value": "false"
7812
7812
  },
7813
- "description": "Disable expansio",
7813
+ "description": "Disable expansion. shadeOnHover will not be visible.",
7814
7814
  "name": "expansionDisabled",
7815
7815
  "parent": {
7816
7816
  "fileName": "src/table/ExpandableRow.tsx",
@@ -7827,6 +7827,27 @@
7827
7827
  "name": "boolean"
7828
7828
  }
7829
7829
  },
7830
+ "expandOnRowClick": {
7831
+ "defaultValue": {
7832
+ "value": "false"
7833
+ },
7834
+ "description": "Makes the whole row clickable",
7835
+ "name": "expandOnRowClick",
7836
+ "parent": {
7837
+ "fileName": "src/table/ExpandableRow.tsx",
7838
+ "name": "ExpandableRowProps"
7839
+ },
7840
+ "declarations": [
7841
+ {
7842
+ "fileName": "src/table/ExpandableRow.tsx",
7843
+ "name": "ExpandableRowProps"
7844
+ }
7845
+ ],
7846
+ "required": false,
7847
+ "type": {
7848
+ "name": "boolean"
7849
+ }
7850
+ },
7830
7851
  "colSpan": {
7831
7852
  "defaultValue": {
7832
7853
  "value": "999"
@@ -46,23 +46,35 @@ const DataCell_1 = __importDefault(require("./DataCell"));
46
46
  const Row_1 = __importDefault(require("./Row"));
47
47
  const aksel_icons_1 = require("@navikt/aksel-icons");
48
48
  exports.ExpandableRow = (0, react_1.forwardRef)((_a, ref) => {
49
- var { className, children, content, togglePlacement = "left", defaultOpen = false, open, onOpenChange, expansionDisabled = false, colSpan = 999 } = _a, rest = __rest(_a, ["className", "children", "content", "togglePlacement", "defaultOpen", "open", "onOpenChange", "expansionDisabled", "colSpan"]);
49
+ var { className, children, content, togglePlacement = "left", defaultOpen = false, open, onOpenChange, expansionDisabled = false, expandOnRowClick = false, colSpan = 999 } = _a, rest = __rest(_a, ["className", "children", "content", "togglePlacement", "defaultOpen", "open", "onOpenChange", "expansionDisabled", "expandOnRowClick", "colSpan"]);
50
50
  const [internalOpen, setInternalOpen] = (0, react_1.useState)(defaultOpen);
51
51
  const id = (0, __1.useId)();
52
52
  const isOpen = open !== null && open !== void 0 ? open : internalOpen;
53
+ const expansionHandler = (e) => {
54
+ onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(!isOpen);
55
+ if (open === undefined) {
56
+ setInternalOpen((open) => !open);
57
+ }
58
+ e.stopPropagation();
59
+ };
60
+ const onRowClick = (e) => {
61
+ if (e.target.nodeName === "TD" || e.target.nodeName === "TH") {
62
+ expansionHandler(e);
63
+ }
64
+ };
53
65
  return (react_1.default.createElement(react_1.default.Fragment, null,
54
66
  react_1.default.createElement(Row_1.default, Object.assign({}, rest, { ref: ref, className: (0, clsx_1.default)("navds-table__expandable-row", className, {
55
67
  "navds-table__expandable-row--open": isOpen,
56
- }) }),
68
+ "navds-table__expandable-row--expansion-disabled": expansionDisabled,
69
+ }), onClick: (e) => {
70
+ var _a;
71
+ !expansionDisabled && expandOnRowClick && onRowClick(e);
72
+ (_a = rest === null || rest === void 0 ? void 0 : rest.onClick) === null || _a === void 0 ? void 0 : _a.call(rest, e);
73
+ } }),
57
74
  togglePlacement === "right" && children,
58
75
  react_1.default.createElement(DataCell_1.default, { className: (0, clsx_1.default)("navds-table__toggle-expand-cell", {
59
76
  "navds-table__toggle-expand-cell--open": isOpen,
60
- }) }, !expansionDisabled && (react_1.default.createElement("button", { type: "button", className: "navds-table__toggle-expand-button", "aria-controls": id, "aria-expanded": isOpen, onClick: () => {
61
- onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(!isOpen);
62
- if (open === undefined) {
63
- setInternalOpen((open) => !open);
64
- }
65
- } },
77
+ }) }, !expansionDisabled && (react_1.default.createElement("button", { type: "button", className: "navds-table__toggle-expand-button", "aria-controls": id, "aria-expanded": isOpen, onClick: expansionHandler },
66
78
  react_1.default.createElement(aksel_icons_1.ChevronDownIcon, { className: "navds-table__expandable-icon", title: isOpen ? "Vis mindre" : "Vis mer" })))),
67
79
  togglePlacement === "left" && children),
68
80
  react_1.default.createElement("tr", { className: "navds-table__expanded-row", "aria-hidden": !isOpen, id: id },
@@ -25,10 +25,15 @@ export interface ExpandableRowProps extends Omit<RowProps, "content"> {
25
25
  */
26
26
  onOpenChange?: (open: boolean) => void;
27
27
  /**
28
- * Disable expansio
28
+ * Disable expansion. shadeOnHover will not be visible.
29
29
  * @default false
30
30
  */
31
31
  expansionDisabled?: boolean;
32
+ /**
33
+ * Makes the whole row clickable
34
+ * @default false
35
+ */
36
+ expandOnRowClick?: boolean;
32
37
  /**
33
38
  * The width of the expanded row's internal cell
34
39
  * @default 999
@@ -17,23 +17,35 @@ import DataCell from "./DataCell";
17
17
  import Row from "./Row";
18
18
  import { ChevronDownIcon } from "@navikt/aksel-icons";
19
19
  export const ExpandableRow = forwardRef((_a, ref) => {
20
- var { className, children, content, togglePlacement = "left", defaultOpen = false, open, onOpenChange, expansionDisabled = false, colSpan = 999 } = _a, rest = __rest(_a, ["className", "children", "content", "togglePlacement", "defaultOpen", "open", "onOpenChange", "expansionDisabled", "colSpan"]);
20
+ var { className, children, content, togglePlacement = "left", defaultOpen = false, open, onOpenChange, expansionDisabled = false, expandOnRowClick = false, colSpan = 999 } = _a, rest = __rest(_a, ["className", "children", "content", "togglePlacement", "defaultOpen", "open", "onOpenChange", "expansionDisabled", "expandOnRowClick", "colSpan"]);
21
21
  const [internalOpen, setInternalOpen] = useState(defaultOpen);
22
22
  const id = useId();
23
23
  const isOpen = open !== null && open !== void 0 ? open : internalOpen;
24
+ const expansionHandler = (e) => {
25
+ onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(!isOpen);
26
+ if (open === undefined) {
27
+ setInternalOpen((open) => !open);
28
+ }
29
+ e.stopPropagation();
30
+ };
31
+ const onRowClick = (e) => {
32
+ if (e.target.nodeName === "TD" || e.target.nodeName === "TH") {
33
+ expansionHandler(e);
34
+ }
35
+ };
24
36
  return (React.createElement(React.Fragment, null,
25
37
  React.createElement(Row, Object.assign({}, rest, { ref: ref, className: cl("navds-table__expandable-row", className, {
26
38
  "navds-table__expandable-row--open": isOpen,
27
- }) }),
39
+ "navds-table__expandable-row--expansion-disabled": expansionDisabled,
40
+ }), onClick: (e) => {
41
+ var _a;
42
+ !expansionDisabled && expandOnRowClick && onRowClick(e);
43
+ (_a = rest === null || rest === void 0 ? void 0 : rest.onClick) === null || _a === void 0 ? void 0 : _a.call(rest, e);
44
+ } }),
28
45
  togglePlacement === "right" && children,
29
46
  React.createElement(DataCell, { className: cl("navds-table__toggle-expand-cell", {
30
47
  "navds-table__toggle-expand-cell--open": isOpen,
31
- }) }, !expansionDisabled && (React.createElement("button", { type: "button", className: "navds-table__toggle-expand-button", "aria-controls": id, "aria-expanded": isOpen, onClick: () => {
32
- onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(!isOpen);
33
- if (open === undefined) {
34
- setInternalOpen((open) => !open);
35
- }
36
- } },
48
+ }) }, !expansionDisabled && (React.createElement("button", { type: "button", className: "navds-table__toggle-expand-button", "aria-controls": id, "aria-expanded": isOpen, onClick: expansionHandler },
37
49
  React.createElement(ChevronDownIcon, { className: "navds-table__expandable-icon", title: isOpen ? "Vis mindre" : "Vis mer" })))),
38
50
  togglePlacement === "left" && children),
39
51
  React.createElement("tr", { className: "navds-table__expanded-row", "aria-hidden": !isOpen, id: id },
@@ -1 +1 @@
1
- {"version":3,"file":"ExpandableRow.js","sourceRoot":"","sources":["../../src/table/ExpandableRow.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;AAC3B,OAAO,aAAa,MAAM,uBAAuB,CAAC;AAClD,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,GAAiB,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AA2CtD,MAAM,CAAC,MAAM,aAAa,GAAsB,UAAU,CACxD,CACE,EAWC,EACD,GAAG,EACH,EAAE;QAbF,EACE,SAAS,EACT,QAAQ,EACR,OAAO,EACP,eAAe,GAAG,MAAM,EACxB,WAAW,GAAG,KAAK,EACnB,IAAI,EACJ,YAAY,EACZ,iBAAiB,GAAG,KAAK,EACzB,OAAO,GAAG,GAAG,OAEd,EADI,IAAI,cAVT,8HAWC,CADQ;IAIT,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAU,WAAW,CAAC,CAAC;IACvE,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IAEnB,MAAM,MAAM,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,YAAY,CAAC;IAEpC,OAAO,CACL;QACE,oBAAC,GAAG,oBACE,IAAI,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,6BAA6B,EAAE,SAAS,EAAE;gBACtD,mCAAmC,EAAE,MAAM;aAC5C,CAAC;YAED,eAAe,KAAK,OAAO,IAAI,QAAQ;YACxC,oBAAC,QAAQ,IACP,SAAS,EAAE,EAAE,CAAC,iCAAiC,EAAE;oBAC/C,uCAAuC,EAAE,MAAM;iBAChD,CAAC,IAED,CAAC,iBAAiB,IAAI,CACrB,gCACE,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,mCAAmC,mBAC9B,EAAE,mBACF,MAAM,EACrB,OAAO,EAAE,GAAG,EAAE;oBACZ,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAG,CAAC,MAAM,CAAC,CAAC;oBACxB,IAAI,IAAI,KAAK,SAAS,EAAE;wBACtB,eAAe,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;qBAClC;gBACH,CAAC;gBAED,oBAAC,eAAe,IACd,SAAS,EAAC,8BAA8B,EACxC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,GACxC,CACK,CACV,CACQ;YACV,eAAe,KAAK,MAAM,IAAI,QAAQ,CACnC;QACN,4BAAI,SAAS,EAAC,2BAA2B,iBAAc,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;YACpE,4BAAI,OAAO,EAAE,OAAO,EAAE,SAAS,EAAC,gCAAgC;gBAC9D,oBAAC,aAAa,IACZ,SAAS,EAAC,oCAAoC,EAC9C,cAAc,EAAC,mCAAmC,EAClD,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAC3B,QAAQ,EAAE,GAAG,IAEZ,OAAO,CACM,CACb,CACF,CACJ,CACJ,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"ExpandableRow.js","sourceRoot":"","sources":["../../src/table/ExpandableRow.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@navikt/ds-react",
3
- "version": "4.8.0",
3
+ "version": "4.9.0",
4
4
  "description": "Aksel react-components for NAV designsystem",
5
5
  "author": "Aksel | NAV designsystem team",
6
6
  "license": "MIT",
@@ -38,7 +38,7 @@
38
38
  },
39
39
  "dependencies": {
40
40
  "@floating-ui/react": "0.24.1",
41
- "@navikt/aksel-icons": "^4.8.0",
41
+ "@navikt/aksel-icons": "^4.9.0",
42
42
  "@radix-ui/react-tabs": "1.0.0",
43
43
  "@radix-ui/react-toggle-group": "1.0.0",
44
44
  "clsx": "^1.2.1",
@@ -31,10 +31,15 @@ export interface ExpandableRowProps extends Omit<RowProps, "content"> {
31
31
  */
32
32
  onOpenChange?: (open: boolean) => void;
33
33
  /**
34
- * Disable expansio
34
+ * Disable expansion. shadeOnHover will not be visible.
35
35
  * @default false
36
36
  */
37
37
  expansionDisabled?: boolean;
38
+ /**
39
+ * Makes the whole row clickable
40
+ * @default false
41
+ */
42
+ expandOnRowClick?: boolean;
38
43
  /**
39
44
  * The width of the expanded row's internal cell
40
45
  * @default 999
@@ -58,6 +63,7 @@ export const ExpandableRow: ExpandableRowType = forwardRef(
58
63
  open,
59
64
  onOpenChange,
60
65
  expansionDisabled = false,
66
+ expandOnRowClick = false,
61
67
  colSpan = 999,
62
68
  ...rest
63
69
  },
@@ -65,9 +71,22 @@ export const ExpandableRow: ExpandableRowType = forwardRef(
65
71
  ) => {
66
72
  const [internalOpen, setInternalOpen] = useState<boolean>(defaultOpen);
67
73
  const id = useId();
68
-
69
74
  const isOpen = open ?? internalOpen;
70
75
 
76
+ const expansionHandler = (e) => {
77
+ onOpenChange?.(!isOpen);
78
+ if (open === undefined) {
79
+ setInternalOpen((open) => !open);
80
+ }
81
+ e.stopPropagation();
82
+ };
83
+
84
+ const onRowClick = (e) => {
85
+ if (e.target.nodeName === "TD" || e.target.nodeName === "TH") {
86
+ expansionHandler(e);
87
+ }
88
+ };
89
+
71
90
  return (
72
91
  <>
73
92
  <Row
@@ -75,7 +94,13 @@ export const ExpandableRow: ExpandableRowType = forwardRef(
75
94
  ref={ref}
76
95
  className={cl("navds-table__expandable-row", className, {
77
96
  "navds-table__expandable-row--open": isOpen,
97
+ "navds-table__expandable-row--expansion-disabled":
98
+ expansionDisabled,
78
99
  })}
100
+ onClick={(e) => {
101
+ !expansionDisabled && expandOnRowClick && onRowClick(e);
102
+ rest?.onClick?.(e);
103
+ }}
79
104
  >
80
105
  {togglePlacement === "right" && children}
81
106
  <DataCell
@@ -89,12 +114,7 @@ export const ExpandableRow: ExpandableRowType = forwardRef(
89
114
  className="navds-table__toggle-expand-button"
90
115
  aria-controls={id}
91
116
  aria-expanded={isOpen}
92
- onClick={() => {
93
- onOpenChange?.(!isOpen);
94
- if (open === undefined) {
95
- setInternalOpen((open) => !open);
96
- }
97
- }}
117
+ onClick={expansionHandler}
98
118
  >
99
119
  <ChevronDownIcon
100
120
  className="navds-table__expandable-icon"
@@ -1,6 +1,6 @@
1
1
  import React, { useState } from "react";
2
2
  import { Table } from "..";
3
- import { Link } from "../..";
3
+ import { Button, Checkbox, Link } from "../..";
4
4
 
5
5
  export default {
6
6
  title: "ds-react/Table",
@@ -37,6 +37,7 @@ export const Expandable = () => {
37
37
  };
38
38
 
39
39
  export const ExpandableSmall = () => {
40
+ // eslint-disable-next-line react-hooks/rules-of-hooks
40
41
  const [open, setOpen] = useState(false);
41
42
  return (
42
43
  <Table size="small">
@@ -227,3 +228,63 @@ export const ExpandableOpen = () => {
227
228
  </Table>
228
229
  );
229
230
  };
231
+
232
+ export const ClickableRow = {
233
+ render: () => {
234
+ // eslint-disable-next-line react-hooks/rules-of-hooks
235
+ const [isRowOpen1, setIsRowOpen1] = useState(false);
236
+ // eslint-disable-next-line react-hooks/rules-of-hooks
237
+ const [isRowOpen2, setIsRowOpen2] = useState(false);
238
+
239
+ return (
240
+ <>
241
+ <Table zebraStripes>
242
+ <Table.Header>
243
+ <Table.Row>
244
+ <Table.HeaderCell>Navn</Table.HeaderCell>
245
+ <Table.HeaderCell>Info</Table.HeaderCell>
246
+ <Table.HeaderCell aria-hidden />
247
+ </Table.Row>
248
+ </Table.Header>
249
+ <Table.Body>
250
+ <Table.ExpandableRow
251
+ content={<div>placeholder row 1</div>}
252
+ togglePlacement="right"
253
+ onOpenChange={setIsRowOpen1}
254
+ data-testid="row1"
255
+ open={isRowOpen1}
256
+ expandOnRowClick
257
+ >
258
+ <Table.DataCell>Ola</Table.DataCell>
259
+ <Table.DataCell>
260
+ <Button
261
+ size="xsmall"
262
+ onClick={(e) => {
263
+ alert("Mer info");
264
+ }}
265
+ >
266
+ Mer info
267
+ </Button>
268
+ </Table.DataCell>
269
+ </Table.ExpandableRow>
270
+ <Table.ExpandableRow
271
+ content={<div>placeholder row 2</div>}
272
+ togglePlacement="right"
273
+ onOpenChange={setIsRowOpen2}
274
+ data-testid="row2"
275
+ open={isRowOpen2}
276
+ expandOnRowClick
277
+ >
278
+ <Table.DataCell>Hans</Table.DataCell>
279
+ <Table.DataCell>
280
+ <Checkbox hideLabel size="small">
281
+ Sett
282
+ </Checkbox>
283
+ </Table.DataCell>
284
+ </Table.ExpandableRow>
285
+ </Table.Body>
286
+ </Table>
287
+ </>
288
+ );
289
+ },
290
+ };