@navikt/ds-react 2.4.3 → 2.5.1

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/cjs/list/List.js CHANGED
@@ -45,21 +45,22 @@ const useId_1 = require("../util/useId");
45
45
  const ListItem_1 = require("./ListItem");
46
46
  exports.ListContext = (0, react_1.createContext)({
47
47
  listType: "ul",
48
+ isNested: null,
48
49
  });
49
50
  exports.List = (0, react_1.forwardRef)((_a, ref) => {
50
51
  var { children, className, as: ListTag = "ul", title, description, headingTag = "h3" } = _a, rest = __rest(_a, ["children", "className", "as", "title", "description", "headingTag"]);
51
52
  const ariaId = (0, useId_1.useId)();
52
- const { isNested } = (0, react_1.useContext)(ListItem_1.ListItemContext);
53
+ const { isNested } = (0, react_1.useContext)(exports.ListContext);
53
54
  return (react_1.default.createElement(exports.ListContext.Provider, { value: {
54
55
  listType: ListTag,
56
+ isNested: isNested === null ? false : true,
55
57
  } },
56
58
  react_1.default.createElement("div", Object.assign({}, rest, { ref: ref, className: (0, clsx_1.default)("navds-list", className, {
57
- "navds-list--nested": isNested,
59
+ "navds-list--nested": isNested === null ? false : true,
58
60
  }) }),
59
61
  title && (react_1.default.createElement(typography_1.Heading, { id: `tittel-${ariaId}`, size: "small", as: headingTag }, title)),
60
62
  description && (react_1.default.createElement(typography_1.BodyShort, { id: `description-${ariaId}` }, description)),
61
63
  react_1.default.createElement(ListTag, { "aria-labelledby": title && `tittel-${ariaId}`, "aria-describedby": description && `description-${ariaId}` }, children))));
62
64
  });
63
65
  exports.List.Item = ListItem_1.ListItem;
64
- exports.List.componentType = "list";
65
66
  exports.default = exports.List;
@@ -37,33 +37,27 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
37
37
  return (mod && mod.__esModule) ? mod : { "default": mod };
38
38
  };
39
39
  Object.defineProperty(exports, "__esModule", { value: true });
40
- exports.ListItem = exports.ListItemContext = void 0;
40
+ exports.ListItem = void 0;
41
41
  const clsx_1 = __importDefault(require("clsx"));
42
42
  const react_1 = __importStar(require("react"));
43
43
  const typography_1 = require("../typography");
44
44
  const List_1 = require("./List");
45
- exports.ListItemContext = (0, react_1.createContext)({
46
- isNested: false,
47
- });
48
45
  exports.ListItem = (0, react_1.forwardRef)((_a, ref) => {
49
- var _b;
50
46
  var { className, children, title, icon } = _a, rest = __rest(_a, ["className", "children", "title", "icon"]);
51
- const { listType } = (0, react_1.useContext)(List_1.ListContext);
47
+ const { listType, isNested } = (0, react_1.useContext)(List_1.ListContext);
52
48
  if (listType === "ol" && icon) {
53
49
  console.warn("<List />: Icon prop is not supported for ordered lists. Please remove the icon prop.");
54
50
  }
55
- const hasNestedList = (_b = react_1.default.Children.toArray(children)) === null || _b === void 0 ? void 0 : _b.some((child) => { var _a; return ((_a = child === null || child === void 0 ? void 0 : child.type) === null || _a === void 0 ? void 0 : _a.componentType) === "list"; });
56
- return (react_1.default.createElement(exports.ListItemContext.Provider, { value: { isNested: hasNestedList } },
57
- react_1.default.createElement("li", Object.assign({}, rest, { ref: ref, className: (0, clsx_1.default)("navds-list__item", className, {
58
- "navds-list__item--noMargin": hasNestedList,
59
- }) }),
60
- listType === "ul" && (react_1.default.createElement("div", { className: (0, clsx_1.default)({
61
- "navds-list__item-marker--icon": icon,
62
- "navds-list__item-marker--bullet": !icon,
63
- }) }, icon ? (icon) : (react_1.default.createElement("svg", { width: "6", height: "6", viewBox: "0 0 6 6", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": true, focusable: false, role: "img" },
64
- react_1.default.createElement("rect", { width: "6", height: "6", rx: "3", fill: "currentColor" }))))),
65
- react_1.default.createElement(typography_1.BodyShort, { as: "div", size: "small", className: "navds-list__item-content" },
66
- title && (react_1.default.createElement(typography_1.Label, { as: "p", size: "small" }, title)),
67
- children))));
51
+ return (react_1.default.createElement("li", Object.assign({}, rest, { ref: ref, className: (0, clsx_1.default)("navds-list__item", className, {
52
+ "navds-list__item--noMargin": isNested,
53
+ }) }),
54
+ listType === "ul" && (react_1.default.createElement("div", { className: (0, clsx_1.default)({
55
+ "navds-list__item-marker--icon": icon,
56
+ "navds-list__item-marker--bullet": !icon,
57
+ }) }, icon ? (icon) : (react_1.default.createElement("svg", { width: "6", height: "6", viewBox: "0 0 6 6", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": true, focusable: false, role: "img" },
58
+ react_1.default.createElement("rect", { width: "6", height: "6", rx: "3", fill: "currentColor" }))))),
59
+ react_1.default.createElement(typography_1.BodyShort, { as: "div", size: "small", className: "navds-list__item-content" },
60
+ title && (react_1.default.createElement(typography_1.Label, { as: "p", size: "small" }, title)),
61
+ children)));
68
62
  });
69
63
  exports.default = exports.ListItem;
@@ -23,10 +23,10 @@ export interface ListProps extends React.HTMLAttributes<HTMLDivElement> {
23
23
  }
24
24
  export interface ListComponent extends React.ForwardRefExoticComponent<ListProps> {
25
25
  Item: ListItemType;
26
- componentType: string;
27
26
  }
28
27
  interface ListContextProps {
29
28
  listType: "ul" | "ol";
29
+ isNested: boolean | null;
30
30
  }
31
31
  export declare const ListContext: React.Context<ListContextProps>;
32
32
  export declare const List: ListComponent;
package/esm/list/List.js CHANGED
@@ -13,25 +13,26 @@ import cl from "clsx";
13
13
  import React, { createContext, forwardRef, useContext } from "react";
14
14
  import { BodyShort, Heading } from "../typography";
15
15
  import { useId } from "../util/useId";
16
- import { ListItem, ListItemContext } from "./ListItem";
16
+ import { ListItem } from "./ListItem";
17
17
  export const ListContext = createContext({
18
18
  listType: "ul",
19
+ isNested: null,
19
20
  });
20
21
  export const List = forwardRef((_a, ref) => {
21
22
  var { children, className, as: ListTag = "ul", title, description, headingTag = "h3" } = _a, rest = __rest(_a, ["children", "className", "as", "title", "description", "headingTag"]);
22
23
  const ariaId = useId();
23
- const { isNested } = useContext(ListItemContext);
24
+ const { isNested } = useContext(ListContext);
24
25
  return (React.createElement(ListContext.Provider, { value: {
25
26
  listType: ListTag,
27
+ isNested: isNested === null ? false : true,
26
28
  } },
27
29
  React.createElement("div", Object.assign({}, rest, { ref: ref, className: cl("navds-list", className, {
28
- "navds-list--nested": isNested,
30
+ "navds-list--nested": isNested === null ? false : true,
29
31
  }) }),
30
32
  title && (React.createElement(Heading, { id: `tittel-${ariaId}`, size: "small", as: headingTag }, title)),
31
33
  description && (React.createElement(BodyShort, { id: `description-${ariaId}` }, description)),
32
34
  React.createElement(ListTag, { "aria-labelledby": title && `tittel-${ariaId}`, "aria-describedby": description && `description-${ariaId}` }, children))));
33
35
  });
34
36
  List.Item = ListItem;
35
- List.componentType = "list";
36
37
  export default List;
37
38
  //# sourceMappingURL=List.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"List.js","sourceRoot":"","sources":["../../src/list/List.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAgB,MAAM,YAAY,CAAC;AAkCrE,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAmB;IACzD,QAAQ,EAAE,IAAI;CACf,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,IAAI,GAAG,UAAU,CAC5B,CACE,EAQC,EACD,GAAG,EACH,EAAE;QAVF,EACE,QAAQ,EACR,SAAS,EACT,EAAE,EAAE,OAAO,GAAG,IAAI,EAClB,KAAK,EACL,WAAW,EACX,UAAU,GAAG,IAAI,OAElB,EADI,IAAI,cAPT,qEAQC,CADQ;IAIT,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC;IAEvB,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC,eAAe,CAAC,CAAC;IAGjD,OAAO,CACL,oBAAC,WAAW,CAAC,QAAQ,IACnB,KAAK,EAAE;YACL,QAAQ,EAAE,OAAO;SAClB;QAED,6CACM,IAAI,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE;gBACrC,oBAAoB,EAAE,QAAQ;aAC/B,CAAC;YAED,KAAK,IAAI,CACR,oBAAC,OAAO,IAAC,EAAE,EAAE,UAAU,MAAM,EAAE,EAAE,IAAI,EAAC,OAAO,EAAC,EAAE,EAAE,UAAU,IACzD,KAAK,CACE,CACX;YACA,WAAW,IAAI,CACd,oBAAC,SAAS,IAAC,EAAE,EAAE,eAAe,MAAM,EAAE,IAAG,WAAW,CAAa,CAClE;YACD,oBAAC,OAAO,uBACW,KAAK,IAAI,UAAU,MAAM,EAAE,sBAC1B,WAAW,IAAI,eAAe,MAAM,EAAE,IAEvD,QAAQ,CACD,CACN,CACe,CACxB,CAAC;AACJ,CAAC,CACe,CAAC;AAEnB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;AACrB,IAAI,CAAC,aAAa,GAAG,MAAM,CAAC;AAE5B,eAAe,IAAI,CAAC"}
1
+ {"version":3,"file":"List.js","sourceRoot":"","sources":["../../src/list/List.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,QAAQ,EAAgB,MAAM,YAAY,CAAC;AAkCpD,MAAM,CAAC,MAAM,WAAW,GAAG,aAAa,CAAmB;IACzD,QAAQ,EAAE,IAAI;IACd,QAAQ,EAAE,IAAI;CACf,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,IAAI,GAAG,UAAU,CAC5B,CACE,EAQC,EACD,GAAG,EACH,EAAE;QAVF,EACE,QAAQ,EACR,SAAS,EACT,EAAE,EAAE,OAAO,GAAG,IAAI,EAClB,KAAK,EACL,WAAW,EACX,UAAU,GAAG,IAAI,OAElB,EADI,IAAI,cAPT,qEAQC,CADQ;IAIT,MAAM,MAAM,GAAG,KAAK,EAAE,CAAC;IAEvB,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IAE7C,OAAO,CACL,oBAAC,WAAW,CAAC,QAAQ,IACnB,KAAK,EAAE;YACL,QAAQ,EAAE,OAAO;YACjB,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;SAC3C;QAED,6CACM,IAAI,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,YAAY,EAAE,SAAS,EAAE;gBACrC,oBAAoB,EAAE,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI;aACvD,CAAC;YAED,KAAK,IAAI,CACR,oBAAC,OAAO,IAAC,EAAE,EAAE,UAAU,MAAM,EAAE,EAAE,IAAI,EAAC,OAAO,EAAC,EAAE,EAAE,UAAU,IACzD,KAAK,CACE,CACX;YACA,WAAW,IAAI,CACd,oBAAC,SAAS,IAAC,EAAE,EAAE,eAAe,MAAM,EAAE,IAAG,WAAW,CAAa,CAClE;YACD,oBAAC,OAAO,uBACW,KAAK,IAAI,UAAU,MAAM,EAAE,sBAC1B,WAAW,IAAI,eAAe,MAAM,EAAE,IAEvD,QAAQ,CACD,CACN,CACe,CACxB,CAAC;AACJ,CAAC,CACe,CAAC;AAEnB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;AAErB,eAAe,IAAI,CAAC"}
@@ -12,9 +12,5 @@ export interface ListItemProps extends React.HTMLAttributes<HTMLLIElement> {
12
12
  }
13
13
  export interface ListItemType extends React.ForwardRefExoticComponent<ListItemProps & React.RefAttributes<HTMLLIElement>> {
14
14
  }
15
- interface ListItemContextProps {
16
- isNested: boolean;
17
- }
18
- export declare const ListItemContext: React.Context<ListItemContextProps>;
19
15
  export declare const ListItem: ListItemType;
20
16
  export default ListItem;
@@ -10,32 +10,26 @@ var __rest = (this && this.__rest) || function (s, e) {
10
10
  return t;
11
11
  };
12
12
  import cl from "clsx";
13
- import React, { createContext, forwardRef, useContext } from "react";
13
+ import React, { forwardRef, useContext } from "react";
14
14
  import { BodyShort, Label } from "../typography";
15
15
  import { ListContext } from "./List";
16
- export const ListItemContext = createContext({
17
- isNested: false,
18
- });
19
16
  export const ListItem = forwardRef((_a, ref) => {
20
- var _b;
21
17
  var { className, children, title, icon } = _a, rest = __rest(_a, ["className", "children", "title", "icon"]);
22
- const { listType } = useContext(ListContext);
18
+ const { listType, isNested } = useContext(ListContext);
23
19
  if (listType === "ol" && icon) {
24
20
  console.warn("<List />: Icon prop is not supported for ordered lists. Please remove the icon prop.");
25
21
  }
26
- const hasNestedList = (_b = React.Children.toArray(children)) === null || _b === void 0 ? void 0 : _b.some((child) => { var _a; return ((_a = child === null || child === void 0 ? void 0 : child.type) === null || _a === void 0 ? void 0 : _a.componentType) === "list"; });
27
- return (React.createElement(ListItemContext.Provider, { value: { isNested: hasNestedList } },
28
- React.createElement("li", Object.assign({}, rest, { ref: ref, className: cl("navds-list__item", className, {
29
- "navds-list__item--noMargin": hasNestedList,
30
- }) }),
31
- listType === "ul" && (React.createElement("div", { className: cl({
32
- "navds-list__item-marker--icon": icon,
33
- "navds-list__item-marker--bullet": !icon,
34
- }) }, icon ? (icon) : (React.createElement("svg", { width: "6", height: "6", viewBox: "0 0 6 6", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": true, focusable: false, role: "img" },
35
- React.createElement("rect", { width: "6", height: "6", rx: "3", fill: "currentColor" }))))),
36
- React.createElement(BodyShort, { as: "div", size: "small", className: "navds-list__item-content" },
37
- title && (React.createElement(Label, { as: "p", size: "small" }, title)),
38
- children))));
22
+ return (React.createElement("li", Object.assign({}, rest, { ref: ref, className: cl("navds-list__item", className, {
23
+ "navds-list__item--noMargin": isNested,
24
+ }) }),
25
+ listType === "ul" && (React.createElement("div", { className: cl({
26
+ "navds-list__item-marker--icon": icon,
27
+ "navds-list__item-marker--bullet": !icon,
28
+ }) }, icon ? (icon) : (React.createElement("svg", { width: "6", height: "6", viewBox: "0 0 6 6", fill: "none", xmlns: "http://www.w3.org/2000/svg", "aria-hidden": true, focusable: false, role: "img" },
29
+ React.createElement("rect", { width: "6", height: "6", rx: "3", fill: "currentColor" }))))),
30
+ React.createElement(BodyShort, { as: "div", size: "small", className: "navds-list__item-content" },
31
+ title && (React.createElement(Label, { as: "p", size: "small" }, title)),
32
+ children)));
39
33
  });
40
34
  export default ListItem;
41
35
  //# sourceMappingURL=ListItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ListItem.js","sourceRoot":"","sources":["../../src/list/ListItem.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,KAAK,EAAE,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACrE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AA0BrC,MAAM,CAAC,MAAM,eAAe,GAAG,aAAa,CAAuB;IACjE,QAAQ,EAAE,KAAK;CAChB,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,QAAQ,GAAiB,UAAU,CAC9C,CAAC,EAA6C,EAAE,GAAG,EAAE,EAAE;;QAAtD,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,OAAW,EAAN,IAAI,cAA3C,0CAA6C,CAAF;IAC1C,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IAE7C,IAAI,QAAQ,KAAK,IAAI,IAAI,IAAI,EAAE;QAC7B,OAAO,CAAC,IAAI,CACV,sFAAsF,CACvF,CAAC;KACH;IAED,MAAM,aAAa,GAAG,MAAA,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,0CAAE,IAAI,CAC1D,CAAC,KAAU,EAAE,EAAE,WAAC,OAAA,CAAA,MAAA,KAAK,aAAL,KAAK,uBAAL,KAAK,CAAE,IAAI,0CAAE,aAAa,MAAK,MAAM,CAAA,EAAA,CACtD,CAAC;IAEF,OAAO,CACL,oBAAC,eAAe,CAAC,QAAQ,IAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,aAAa,EAAE;QAC1D,4CACM,IAAI,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,kBAAkB,EAAE,SAAS,EAAE;gBAC3C,4BAA4B,EAAE,aAAa;aAC5C,CAAC;YAED,QAAQ,KAAK,IAAI,IAAI,CACpB,6BACE,SAAS,EAAE,EAAE,CAAC;oBACZ,+BAA+B,EAAE,IAAI;oBACrC,iCAAiC,EAAE,CAAC,IAAI;iBACzC,CAAC,IAED,IAAI,CAAC,CAAC,CAAC,CACN,IAAI,CACL,CAAC,CAAC,CAAC,CACF,6BACE,KAAK,EAAC,GAAG,EACT,MAAM,EAAC,GAAG,EACV,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,uBAElC,SAAS,EAAE,KAAK,EAChB,IAAI,EAAC,KAAK;gBAEV,8BAAM,KAAK,EAAC,GAAG,EAAC,MAAM,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,cAAc,GAAG,CACpD,CACP,CACG,CACP;YAED,oBAAC,SAAS,IAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,OAAO,EAAC,SAAS,EAAC,0BAA0B;gBAClE,KAAK,IAAI,CACR,oBAAC,KAAK,IAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,OAAO,IACvB,KAAK,CACA,CACT;gBACA,QAAQ,CACC,CACT,CACoB,CAC5B,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,QAAQ,CAAC"}
1
+ {"version":3,"file":"ListItem.js","sourceRoot":"","sources":["../../src/list/ListItem.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAC;AAsBrC,MAAM,CAAC,MAAM,QAAQ,GAAiB,UAAU,CAC9C,CAAC,EAA6C,EAAE,GAAG,EAAE,EAAE;QAAtD,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,OAAW,EAAN,IAAI,cAA3C,0CAA6C,CAAF;IAC1C,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,CAAC;IAEvD,IAAI,QAAQ,KAAK,IAAI,IAAI,IAAI,EAAE;QAC7B,OAAO,CAAC,IAAI,CACV,sFAAsF,CACvF,CAAC;KACH;IAED,OAAO,CACL,4CACM,IAAI,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,kBAAkB,EAAE,SAAS,EAAE;YAC3C,4BAA4B,EAAE,QAAQ;SACvC,CAAC;QAED,QAAQ,KAAK,IAAI,IAAI,CACpB,6BACE,SAAS,EAAE,EAAE,CAAC;gBACZ,+BAA+B,EAAE,IAAI;gBACrC,iCAAiC,EAAE,CAAC,IAAI;aACzC,CAAC,IAED,IAAI,CAAC,CAAC,CAAC,CACN,IAAI,CACL,CAAC,CAAC,CAAC,CACF,6BACE,KAAK,EAAC,GAAG,EACT,MAAM,EAAC,GAAG,EACV,OAAO,EAAC,SAAS,EACjB,IAAI,EAAC,MAAM,EACX,KAAK,EAAC,4BAA4B,uBAElC,SAAS,EAAE,KAAK,EAChB,IAAI,EAAC,KAAK;YAEV,8BAAM,KAAK,EAAC,GAAG,EAAC,MAAM,EAAC,GAAG,EAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,cAAc,GAAG,CACpD,CACP,CACG,CACP;QAED,oBAAC,SAAS,IAAC,EAAE,EAAC,KAAK,EAAC,IAAI,EAAC,OAAO,EAAC,SAAS,EAAC,0BAA0B;YAClE,KAAK,IAAI,CACR,oBAAC,KAAK,IAAC,EAAE,EAAC,GAAG,EAAC,IAAI,EAAC,OAAO,IACvB,KAAK,CACA,CACT;YACA,QAAQ,CACC,CACT,CACN,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,QAAQ,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@navikt/ds-react",
3
- "version": "2.4.3",
3
+ "version": "2.5.1",
4
4
  "description": "Aksel react-components for NAV designsystem",
5
5
  "author": "Aksel | NAV designsystem team",
6
6
  "license": "MIT",
@@ -37,7 +37,7 @@
37
37
  },
38
38
  "dependencies": {
39
39
  "@floating-ui/react": "0.17.0",
40
- "@navikt/ds-icons": "^2.4.3",
40
+ "@navikt/ds-icons": "^2.5.1",
41
41
  "@radix-ui/react-tabs": "1.0.0",
42
42
  "@radix-ui/react-toggle-group": "1.0.0",
43
43
  "clsx": "^1.2.1",
@@ -148,7 +148,8 @@ export const Loading = {
148
148
  </div>
149
149
  ),
150
150
 
151
- args: { chromatic: { delay: 300 } },
151
+ args: { chromatic: { disableSnapshot: true } },
152
+ chromatic: { disableSnapshot: true },
152
153
  };
153
154
 
154
155
  export const Icon = () => (
@@ -274,5 +275,6 @@ export const LoadingWithAs = {
274
275
  </div>
275
276
  ),
276
277
 
277
- args: { chromatic: { delay: 300 } },
278
+ args: { chromatic: { disableSnapshot: true } },
279
+ chromatic: { disableSnapshot: true },
278
280
  };
package/src/list/List.tsx CHANGED
@@ -2,7 +2,7 @@ import cl from "clsx";
2
2
  import React, { createContext, forwardRef, useContext } from "react";
3
3
  import { BodyShort, Heading } from "../typography";
4
4
  import { useId } from "../util/useId";
5
- import { ListItem, ListItemContext, ListItemType } from "./ListItem";
5
+ import { ListItem, ListItemType } from "./ListItem";
6
6
 
7
7
  export interface ListProps extends React.HTMLAttributes<HTMLDivElement> {
8
8
  children: React.ReactNode;
@@ -29,15 +29,16 @@ export interface ListProps extends React.HTMLAttributes<HTMLDivElement> {
29
29
  export interface ListComponent
30
30
  extends React.ForwardRefExoticComponent<ListProps> {
31
31
  Item: ListItemType;
32
- componentType: string;
33
32
  }
34
33
 
35
34
  interface ListContextProps {
36
35
  listType: "ul" | "ol";
36
+ isNested: boolean | null;
37
37
  }
38
38
 
39
39
  export const ListContext = createContext<ListContextProps>({
40
40
  listType: "ul",
41
+ isNested: null,
41
42
  });
42
43
 
43
44
  export const List = forwardRef<HTMLDivElement, ListProps>(
@@ -55,20 +56,20 @@ export const List = forwardRef<HTMLDivElement, ListProps>(
55
56
  ) => {
56
57
  const ariaId = useId();
57
58
 
58
- const { isNested } = useContext(ListItemContext);
59
-
59
+ const { isNested } = useContext(ListContext);
60
60
 
61
61
  return (
62
62
  <ListContext.Provider
63
63
  value={{
64
64
  listType: ListTag,
65
+ isNested: isNested === null ? false : true,
65
66
  }}
66
67
  >
67
68
  <div
68
69
  {...rest}
69
70
  ref={ref}
70
71
  className={cl("navds-list", className, {
71
- "navds-list--nested": isNested,
72
+ "navds-list--nested": isNested === null ? false : true,
72
73
  })}
73
74
  >
74
75
  {title && (
@@ -92,6 +93,5 @@ export const List = forwardRef<HTMLDivElement, ListProps>(
92
93
  ) as ListComponent;
93
94
 
94
95
  List.Item = ListItem;
95
- List.componentType = "list";
96
96
 
97
97
  export default List;
@@ -1,5 +1,5 @@
1
1
  import cl from "clsx";
2
- import React, { createContext, forwardRef, useContext } from "react";
2
+ import React, { forwardRef, useContext } from "react";
3
3
  import { BodyShort, Label } from "../typography";
4
4
  import { ListContext } from "./List";
5
5
 
@@ -23,17 +23,9 @@ export interface ListItemType
23
23
  ListItemProps & React.RefAttributes<HTMLLIElement>
24
24
  > {}
25
25
 
26
- interface ListItemContextProps {
27
- isNested: boolean;
28
- }
29
-
30
- export const ListItemContext = createContext<ListItemContextProps>({
31
- isNested: false,
32
- });
33
-
34
26
  export const ListItem: ListItemType = forwardRef(
35
27
  ({ className, children, title, icon, ...rest }, ref) => {
36
- const { listType } = useContext(ListContext);
28
+ const { listType, isNested } = useContext(ListContext);
37
29
 
38
30
  if (listType === "ol" && icon) {
39
31
  console.warn(
@@ -41,55 +33,49 @@ export const ListItem: ListItemType = forwardRef(
41
33
  );
42
34
  }
43
35
 
44
- const hasNestedList = React.Children.toArray(children)?.some(
45
- (child: any) => child?.type?.componentType === "list"
46
- );
47
-
48
36
  return (
49
- <ListItemContext.Provider value={{ isNested: hasNestedList }}>
50
- <li
51
- {...rest}
52
- ref={ref}
53
- className={cl("navds-list__item", className, {
54
- "navds-list__item--noMargin": hasNestedList,
55
- })}
56
- >
57
- {listType === "ul" && (
58
- <div
59
- className={cl({
60
- "navds-list__item-marker--icon": icon,
61
- "navds-list__item-marker--bullet": !icon,
62
- })}
63
- >
64
- {icon ? (
65
- icon
66
- ) : (
67
- <svg
68
- width="6"
69
- height="6"
70
- viewBox="0 0 6 6"
71
- fill="none"
72
- xmlns="http://www.w3.org/2000/svg"
73
- aria-hidden
74
- focusable={false}
75
- role="img"
76
- >
77
- <rect width="6" height="6" rx="3" fill="currentColor" />
78
- </svg>
79
- )}
80
- </div>
81
- )}
82
-
83
- <BodyShort as="div" size="small" className="navds-list__item-content">
84
- {title && (
85
- <Label as="p" size="small">
86
- {title}
87
- </Label>
37
+ <li
38
+ {...rest}
39
+ ref={ref}
40
+ className={cl("navds-list__item", className, {
41
+ "navds-list__item--noMargin": isNested,
42
+ })}
43
+ >
44
+ {listType === "ul" && (
45
+ <div
46
+ className={cl({
47
+ "navds-list__item-marker--icon": icon,
48
+ "navds-list__item-marker--bullet": !icon,
49
+ })}
50
+ >
51
+ {icon ? (
52
+ icon
53
+ ) : (
54
+ <svg
55
+ width="6"
56
+ height="6"
57
+ viewBox="0 0 6 6"
58
+ fill="none"
59
+ xmlns="http://www.w3.org/2000/svg"
60
+ aria-hidden
61
+ focusable={false}
62
+ role="img"
63
+ >
64
+ <rect width="6" height="6" rx="3" fill="currentColor" />
65
+ </svg>
88
66
  )}
89
- {children}
90
- </BodyShort>
91
- </li>
92
- </ListItemContext.Provider>
67
+ </div>
68
+ )}
69
+
70
+ <BodyShort as="div" size="small" className="navds-list__item-content">
71
+ {title && (
72
+ <Label as="p" size="small">
73
+ {title}
74
+ </Label>
75
+ )}
76
+ {children}
77
+ </BodyShort>
78
+ </li>
93
79
  );
94
80
  }
95
81
  );