@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 +4 -3
- package/cjs/list/ListItem.js +13 -19
- package/esm/list/List.d.ts +1 -1
- package/esm/list/List.js +5 -4
- package/esm/list/List.js.map +1 -1
- package/esm/list/ListItem.d.ts +0 -4
- package/esm/list/ListItem.js +13 -19
- package/esm/list/ListItem.js.map +1 -1
- package/package.json +2 -2
- package/src/button/button.stories.tsx +4 -2
- package/src/list/List.tsx +6 -6
- package/src/list/ListItem.tsx +43 -57
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)(
|
|
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;
|
package/cjs/list/ListItem.js
CHANGED
|
@@ -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 =
|
|
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
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
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;
|
package/esm/list/List.d.ts
CHANGED
|
@@ -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
|
|
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(
|
|
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
|
package/esm/list/List.js.map
CHANGED
|
@@ -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,
|
|
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"}
|
package/esm/list/ListItem.d.ts
CHANGED
|
@@ -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;
|
package/esm/list/ListItem.js
CHANGED
|
@@ -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, {
|
|
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
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
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
|
package/esm/list/ListItem.js.map
CHANGED
|
@@ -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,
|
|
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.
|
|
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.
|
|
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: {
|
|
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: {
|
|
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,
|
|
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(
|
|
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;
|
package/src/list/ListItem.tsx
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import cl from "clsx";
|
|
2
|
-
import 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
|
-
<
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
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
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
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
|
);
|