@navikt/ds-react 1.4.4 → 1.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/_docs.json CHANGED
@@ -920,6 +920,258 @@
920
920
  }
921
921
  }
922
922
  },
923
+ {
924
+ "filePath": "src/chips/Chips.tsx",
925
+ "displayName": "Chips",
926
+ "props": {
927
+ "size": {
928
+ "defaultValue": {
929
+ "value": "\"medium\""
930
+ },
931
+ "description": "Changes padding and font-sizes",
932
+ "name": "size",
933
+ "parent": {
934
+ "fileName": "src/chips/Chips.tsx",
935
+ "name": "ChipsProps"
936
+ },
937
+ "declarations": [
938
+ {
939
+ "fileName": "src/chips/Chips.tsx",
940
+ "name": "ChipsProps"
941
+ }
942
+ ],
943
+ "required": false,
944
+ "type": {
945
+ "name": "\"medium\" | \"small\""
946
+ }
947
+ },
948
+ "className": {
949
+ "defaultValue": null,
950
+ "description": "",
951
+ "name": "className",
952
+ "parent": {
953
+ "fileName": "Designsystemet/node_modules/@types/react/index.d.ts",
954
+ "name": "HTMLAttributes"
955
+ },
956
+ "declarations": [
957
+ {
958
+ "fileName": "Designsystemet/node_modules/@types/react/index.d.ts",
959
+ "name": "HTMLAttributes"
960
+ }
961
+ ],
962
+ "required": false,
963
+ "type": {
964
+ "name": "string"
965
+ }
966
+ },
967
+ "ref": {
968
+ "defaultValue": null,
969
+ "description": "",
970
+ "name": "ref",
971
+ "parent": {
972
+ "fileName": "Designsystemet/node_modules/@types/react/index.d.ts",
973
+ "name": "RefAttributes"
974
+ },
975
+ "declarations": [
976
+ {
977
+ "fileName": "Designsystemet/node_modules/@types/react/index.d.ts",
978
+ "name": "RefAttributes"
979
+ }
980
+ ],
981
+ "required": false,
982
+ "type": {
983
+ "name": "Ref<HTMLUListElement>"
984
+ }
985
+ }
986
+ }
987
+ },
988
+ {
989
+ "filePath": "src/chips/Filter.tsx",
990
+ "displayName": "FilterChips",
991
+ "props": {
992
+ "onSelect": {
993
+ "defaultValue": null,
994
+ "description": "",
995
+ "name": "onSelect",
996
+ "parent": {
997
+ "fileName": "src/chips/Filter.tsx",
998
+ "name": "FilterChipsProps"
999
+ },
1000
+ "declarations": [
1001
+ {
1002
+ "fileName": "src/chips/Filter.tsx",
1003
+ "name": "FilterChipsProps"
1004
+ }
1005
+ ],
1006
+ "required": false,
1007
+ "type": {
1008
+ "name": "(() => void)"
1009
+ }
1010
+ },
1011
+ "selected": {
1012
+ "defaultValue": null,
1013
+ "description": "",
1014
+ "name": "selected",
1015
+ "parent": {
1016
+ "fileName": "src/chips/Filter.tsx",
1017
+ "name": "FilterChipsProps"
1018
+ },
1019
+ "declarations": [
1020
+ {
1021
+ "fileName": "src/chips/Filter.tsx",
1022
+ "name": "FilterChipsProps"
1023
+ }
1024
+ ],
1025
+ "required": false,
1026
+ "type": {
1027
+ "name": "boolean"
1028
+ }
1029
+ },
1030
+ "className": {
1031
+ "defaultValue": null,
1032
+ "description": "",
1033
+ "name": "className",
1034
+ "parent": {
1035
+ "fileName": "Designsystemet/node_modules/@types/react/index.d.ts",
1036
+ "name": "HTMLAttributes"
1037
+ },
1038
+ "declarations": [
1039
+ {
1040
+ "fileName": "Designsystemet/node_modules/@types/react/index.d.ts",
1041
+ "name": "HTMLAttributes"
1042
+ }
1043
+ ],
1044
+ "required": false,
1045
+ "type": {
1046
+ "name": "string"
1047
+ }
1048
+ },
1049
+ "ref": {
1050
+ "defaultValue": null,
1051
+ "description": "",
1052
+ "name": "ref",
1053
+ "parent": {
1054
+ "fileName": "Designsystemet/node_modules/@types/react/index.d.ts",
1055
+ "name": "RefAttributes"
1056
+ },
1057
+ "declarations": [
1058
+ {
1059
+ "fileName": "Designsystemet/node_modules/@types/react/index.d.ts",
1060
+ "name": "RefAttributes"
1061
+ }
1062
+ ],
1063
+ "required": false,
1064
+ "type": {
1065
+ "name": "Ref<HTMLButtonElement>"
1066
+ }
1067
+ }
1068
+ }
1069
+ },
1070
+ {
1071
+ "filePath": "src/chips/Removable.tsx",
1072
+ "displayName": "RemovableChips",
1073
+ "props": {
1074
+ "variant": {
1075
+ "defaultValue": {
1076
+ "value": "\"action\""
1077
+ },
1078
+ "description": "Chip-variants",
1079
+ "name": "variant",
1080
+ "parent": {
1081
+ "fileName": "src/chips/Removable.tsx",
1082
+ "name": "RemovableChipsProps"
1083
+ },
1084
+ "declarations": [
1085
+ {
1086
+ "fileName": "src/chips/Removable.tsx",
1087
+ "name": "RemovableChipsProps"
1088
+ }
1089
+ ],
1090
+ "required": false,
1091
+ "type": {
1092
+ "name": "\"action\" | \"neutral\""
1093
+ }
1094
+ },
1095
+ "removeLabel": {
1096
+ "defaultValue": {
1097
+ "value": "\"slett filter\""
1098
+ },
1099
+ "description": "Replaces label read for screen-readers",
1100
+ "name": "removeLabel",
1101
+ "parent": {
1102
+ "fileName": "src/chips/Removable.tsx",
1103
+ "name": "RemovableChipsProps"
1104
+ },
1105
+ "declarations": [
1106
+ {
1107
+ "fileName": "src/chips/Removable.tsx",
1108
+ "name": "RemovableChipsProps"
1109
+ }
1110
+ ],
1111
+ "required": false,
1112
+ "type": {
1113
+ "name": "string"
1114
+ }
1115
+ },
1116
+ "onDelete": {
1117
+ "defaultValue": null,
1118
+ "description": "Click callback",
1119
+ "name": "onDelete",
1120
+ "parent": {
1121
+ "fileName": "src/chips/Removable.tsx",
1122
+ "name": "RemovableChipsProps"
1123
+ },
1124
+ "declarations": [
1125
+ {
1126
+ "fileName": "src/chips/Removable.tsx",
1127
+ "name": "RemovableChipsProps"
1128
+ }
1129
+ ],
1130
+ "required": false,
1131
+ "type": {
1132
+ "name": "(() => void)"
1133
+ }
1134
+ },
1135
+ "className": {
1136
+ "defaultValue": null,
1137
+ "description": "",
1138
+ "name": "className",
1139
+ "parent": {
1140
+ "fileName": "Designsystemet/node_modules/@types/react/index.d.ts",
1141
+ "name": "HTMLAttributes"
1142
+ },
1143
+ "declarations": [
1144
+ {
1145
+ "fileName": "Designsystemet/node_modules/@types/react/index.d.ts",
1146
+ "name": "HTMLAttributes"
1147
+ }
1148
+ ],
1149
+ "required": false,
1150
+ "type": {
1151
+ "name": "string"
1152
+ }
1153
+ },
1154
+ "ref": {
1155
+ "defaultValue": null,
1156
+ "description": "",
1157
+ "name": "ref",
1158
+ "parent": {
1159
+ "fileName": "Designsystemet/node_modules/@types/react/index.d.ts",
1160
+ "name": "RefAttributes"
1161
+ },
1162
+ "declarations": [
1163
+ {
1164
+ "fileName": "Designsystemet/node_modules/@types/react/index.d.ts",
1165
+ "name": "RefAttributes"
1166
+ }
1167
+ ],
1168
+ "required": false,
1169
+ "type": {
1170
+ "name": "Ref<HTMLButtonElement>"
1171
+ }
1172
+ }
1173
+ }
1174
+ },
923
1175
  {
924
1176
  "filePath": "src/date/DateInput.tsx",
925
1177
  "displayName": "DatePickerInput",
@@ -6419,28 +6671,9 @@
6419
6671
  "filePath": "src/tag/Tag.tsx",
6420
6672
  "displayName": "Tag",
6421
6673
  "props": {
6422
- "children": {
6423
- "defaultValue": null,
6424
- "description": "Tag label",
6425
- "name": "children",
6426
- "parent": {
6427
- "fileName": "src/tag/Tag.tsx",
6428
- "name": "TagProps"
6429
- },
6430
- "declarations": [
6431
- {
6432
- "fileName": "src/tag/Tag.tsx",
6433
- "name": "TagProps"
6434
- }
6435
- ],
6436
- "required": true,
6437
- "type": {
6438
- "name": "ReactNode"
6439
- }
6440
- },
6441
6674
  "variant": {
6442
6675
  "defaultValue": null,
6443
- "description": "Changes background and border color",
6676
+ "description": "Changes visual profile of tag",
6444
6677
  "name": "variant",
6445
6678
  "parent": {
6446
6679
  "fileName": "src/tag/Tag.tsx",
@@ -6454,14 +6687,14 @@
6454
6687
  ],
6455
6688
  "required": true,
6456
6689
  "type": {
6457
- "name": "\"warning\" | \"error\" | \"info\" | \"success\""
6690
+ "name": "\"warning\" | \"warning-filled\" | \"error\" | \"error-filled\" | \"info\" | \"info-filled\" | \"success\" | \"success-filled\" | \"neutral\" | \"neutral-filled\" | \"alt1\" | \"alt1-filled\" | \"alt2\" | \"alt2-filled\" | \"alt3\" | \"alt3-filled\""
6458
6691
  }
6459
6692
  },
6460
6693
  "size": {
6461
6694
  "defaultValue": {
6462
6695
  "value": "medium"
6463
6696
  },
6464
- "description": "Changes padding and font-sizes",
6697
+ "description": "",
6465
6698
  "name": "size",
6466
6699
  "parent": {
6467
6700
  "fileName": "src/tag/Tag.tsx",
@@ -6475,7 +6708,7 @@
6475
6708
  ],
6476
6709
  "required": false,
6477
6710
  "type": {
6478
- "name": "\"medium\" | \"small\""
6711
+ "name": "\"medium\" | \"small\" | \"xsmall\""
6479
6712
  }
6480
6713
  },
6481
6714
  "className": {
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __rest = (this && this.__rest) || function (s, e) {
26
+ var t = {};
27
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
28
+ t[p] = s[p];
29
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
30
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
31
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
32
+ t[p[i]] = s[p[i]];
33
+ }
34
+ return t;
35
+ };
36
+ var __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
+ };
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.Chips = void 0;
41
+ const clsx_1 = __importDefault(require("clsx"));
42
+ const react_1 = __importStar(require("react"));
43
+ const Filter_1 = __importDefault(require("./Filter"));
44
+ const Removable_1 = __importDefault(require("./Removable"));
45
+ exports.Chips = (0, react_1.forwardRef)((_a, ref) => {
46
+ var { className, size = "medium", children } = _a, rest = __rest(_a, ["className", "size", "children"]);
47
+ return (react_1.default.createElement("ul", Object.assign({}, rest, { ref: ref, className: (0, clsx_1.default)("navds-chips", className, `navds-chips--${size}`, {
48
+ "navds-body-short navds-body-short--small": size === "medium",
49
+ "navds-detail navds-detail--small": size === "small",
50
+ }) }), react_1.default.Children.map(children, (chip, index) => {
51
+ var _a;
52
+ return react_1.default.createElement("li", { key: index + ((_a = chip === null || chip === void 0 ? void 0 : chip.toString()) !== null && _a !== void 0 ? _a : "") }, chip);
53
+ })));
54
+ });
55
+ exports.Chips.Filter = Filter_1.default;
56
+ exports.Chips.Removable = Removable_1.default;
57
+ exports.default = exports.Chips;
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __rest = (this && this.__rest) || function (s, e) {
26
+ var t = {};
27
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
28
+ t[p] = s[p];
29
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
30
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
31
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
32
+ t[p[i]] = s[p[i]];
33
+ }
34
+ return t;
35
+ };
36
+ var __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
+ };
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.FilterChips = void 0;
41
+ const ds_icons_1 = require("@navikt/ds-icons");
42
+ const clsx_1 = __importDefault(require("clsx"));
43
+ const react_1 = __importStar(require("react"));
44
+ exports.FilterChips = (0, react_1.forwardRef)((_a, ref) => {
45
+ var { className, children, selected, as: Component = "button" } = _a, rest = __rest(_a, ["className", "children", "selected", "as"]);
46
+ return (react_1.default.createElement(Component, Object.assign({}, rest, { ref: ref, className: (0, clsx_1.default)("navds-chips__chip navds-chips__filter", className, {
47
+ "navds-chips--icon-left": selected,
48
+ }), "aria-pressed": selected }),
49
+ selected && (react_1.default.createElement(ds_icons_1.SuccessStroke, { "aria-hidden": true, className: "navds-chips__filter-icon" })),
50
+ react_1.default.createElement("span", { className: "navds-chips__chip-text" }, children)));
51
+ });
52
+ exports.default = exports.FilterChips;
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || function (mod) {
19
+ if (mod && mod.__esModule) return mod;
20
+ var result = {};
21
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
+ __setModuleDefault(result, mod);
23
+ return result;
24
+ };
25
+ var __rest = (this && this.__rest) || function (s, e) {
26
+ var t = {};
27
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
28
+ t[p] = s[p];
29
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
30
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
31
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
32
+ t[p[i]] = s[p[i]];
33
+ }
34
+ return t;
35
+ };
36
+ var __importDefault = (this && this.__importDefault) || function (mod) {
37
+ return (mod && mod.__esModule) ? mod : { "default": mod };
38
+ };
39
+ Object.defineProperty(exports, "__esModule", { value: true });
40
+ exports.RemovableChips = void 0;
41
+ const ds_icons_1 = require("@navikt/ds-icons");
42
+ const clsx_1 = __importDefault(require("clsx"));
43
+ const react_1 = __importStar(require("react"));
44
+ exports.RemovableChips = (0, react_1.forwardRef)((_a, ref) => {
45
+ var { className, children, variant = "action", as: Component = "button", removeLabel = "slett", onDelete } = _a, rest = __rest(_a, ["className", "children", "variant", "as", "removeLabel", "onDelete"]);
46
+ return (react_1.default.createElement(Component, Object.assign({}, rest, { ref: ref, className: (0, clsx_1.default)("navds-chips__chip navds-chips__removable navds-chips--icon-right", className, `navds-chips__removable--${variant}`), "aria-label": `${children} ${removeLabel}`, onClick: (e) => {
47
+ var _a;
48
+ onDelete === null || onDelete === void 0 ? void 0 : onDelete();
49
+ (_a = rest === null || rest === void 0 ? void 0 : rest.onClick) === null || _a === void 0 ? void 0 : _a.call(rest, e);
50
+ } }),
51
+ react_1.default.createElement("span", { className: "navds-chips__chip-text" }, children),
52
+ react_1.default.createElement("span", { className: "navds-chips__removable-icon" },
53
+ react_1.default.createElement(ds_icons_1.Close, { "aria-hidden": true }))));
54
+ });
55
+ exports.default = exports.RemovableChips;
@@ -0,0 +1,8 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.Chips = void 0;
7
+ var Chips_1 = require("./Chips");
8
+ Object.defineProperty(exports, "Chips", { enumerable: true, get: function () { return __importDefault(Chips_1).default; } });
@@ -0,0 +1,6 @@
1
+ {
2
+ "sideEffects": false,
3
+ "main": "./index.js",
4
+ "module": "../../esm/chips/index.js",
5
+ "types": "../../esm/chips/index.d.ts"
6
+ }
package/cjs/index.js CHANGED
@@ -32,6 +32,7 @@ __exportStar(require("./panel"), exports);
32
32
  __exportStar(require("./popover"), exports);
33
33
  __exportStar(require("./read-more"), exports);
34
34
  __exportStar(require("./chat"), exports);
35
+ __exportStar(require("./chips"), exports);
35
36
  __exportStar(require("./stepper"), exports);
36
37
  __exportStar(require("./tag"), exports);
37
38
  __exportStar(require("./toggle-group"), exports);
package/cjs/tag/Tag.js CHANGED
@@ -44,6 +44,6 @@ const __1 = require("..");
44
44
  exports.Tag = (0, react_1.forwardRef)((_a, ref) => {
45
45
  var { className, variant, size = "medium" } = _a, rest = __rest(_a, ["className", "variant", "size"]);
46
46
  const Component = size === "medium" ? __1.BodyShort : __1.Detail;
47
- return (react_1.default.createElement(Component, Object.assign({}, rest, { ref: ref, as: "span", size: size, className: (0, clsx_1.default)("navds-tag", className, `navds-tag--${variant}`, `navds-tag--${size}`) })));
47
+ return (react_1.default.createElement(Component, Object.assign({}, rest, { ref: ref, as: "span", size: size === "medium" ? "medium" : "small", className: (0, clsx_1.default)("navds-tag", className, `navds-tag--${variant}`, `navds-tag--${size}`) })));
48
48
  });
49
49
  exports.default = exports.Tag;
@@ -0,0 +1,17 @@
1
+ import React, { HTMLAttributes } from "react";
2
+ import { FilterChipsType } from "./Filter";
3
+ import { RemovableChipsType } from "./Removable";
4
+ export interface ChipsProps extends HTMLAttributes<HTMLUListElement> {
5
+ children: React.ReactNode;
6
+ /**
7
+ * Changes padding and font-sizes
8
+ * @default "medium"
9
+ */
10
+ size?: "medium" | "small";
11
+ }
12
+ interface ChipsComponent extends React.ForwardRefExoticComponent<ChipsProps & React.RefAttributes<HTMLUListElement>> {
13
+ Filter: FilterChipsType;
14
+ Removable: RemovableChipsType;
15
+ }
16
+ export declare const Chips: ChipsComponent;
17
+ export default Chips;
@@ -0,0 +1,29 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import cl from "clsx";
13
+ import React, { forwardRef } from "react";
14
+ import FilterChips from "./Filter";
15
+ import RemovableChips from "./Removable";
16
+ export const Chips = forwardRef((_a, ref) => {
17
+ var { className, size = "medium", children } = _a, rest = __rest(_a, ["className", "size", "children"]);
18
+ return (React.createElement("ul", Object.assign({}, rest, { ref: ref, className: cl("navds-chips", className, `navds-chips--${size}`, {
19
+ "navds-body-short navds-body-short--small": size === "medium",
20
+ "navds-detail navds-detail--small": size === "small",
21
+ }) }), React.Children.map(children, (chip, index) => {
22
+ var _a;
23
+ return React.createElement("li", { key: index + ((_a = chip === null || chip === void 0 ? void 0 : chip.toString()) !== null && _a !== void 0 ? _a : "") }, chip);
24
+ })));
25
+ });
26
+ Chips.Filter = FilterChips;
27
+ Chips.Removable = RemovableChips;
28
+ export default Chips;
29
+ //# sourceMappingURL=Chips.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Chips.js","sourceRoot":"","sources":["../../src/chips/Chips.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,KAAK,EAAE,EAAE,UAAU,EAAkB,MAAM,OAAO,CAAC;AAC1D,OAAO,WAAgC,MAAM,UAAU,CAAC;AACxD,OAAO,cAAsC,MAAM,aAAa,CAAC;AAmBjE,MAAM,CAAC,MAAM,KAAK,GAAmB,UAAU,CAC7C,CAAC,EAAiD,EAAE,GAAG,EAAE,EAAE;QAA1D,EAAE,SAAS,EAAE,IAAI,GAAG,QAAQ,EAAE,QAAQ,OAAW,EAAN,IAAI,cAA/C,iCAAiD,CAAF;IAC9C,OAAO,CACL,4CACM,IAAI,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,aAAa,EAAE,SAAS,EAAE,gBAAgB,IAAI,EAAE,EAAE;YAC9D,0CAA0C,EAAE,IAAI,KAAK,QAAQ;YAC7D,kCAAkC,EAAE,IAAI,KAAK,OAAO;SACrD,CAAC,KAED,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;;QAC5C,OAAO,4BAAI,GAAG,EAAE,KAAK,GAAG,CAAC,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,QAAQ,EAAE,mCAAI,EAAE,CAAC,IAAG,IAAI,CAAM,CAAC;IAChE,CAAC,CAAC,CACC,CACN,CAAC;AACJ,CAAC,CACgB,CAAC;AAEpB,KAAK,CAAC,MAAM,GAAG,WAAW,CAAC;AAC3B,KAAK,CAAC,SAAS,GAAG,cAAc,CAAC;AAEjC,eAAe,KAAK,CAAC"}
@@ -0,0 +1,17 @@
1
+ import React from "react";
2
+ import { OverridableComponent } from "..";
3
+ export interface FilterChipsProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
4
+ children: string;
5
+ /**
6
+ *
7
+ */
8
+ onSelect?: () => void;
9
+ /**
10
+ *
11
+ */
12
+ selected?: boolean;
13
+ }
14
+ export interface FilterChipsType extends OverridableComponent<FilterChipsProps, HTMLButtonElement> {
15
+ }
16
+ export declare const FilterChips: FilterChipsType;
17
+ export default FilterChips;
@@ -0,0 +1,24 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import { SuccessStroke } from "@navikt/ds-icons";
13
+ import cl from "clsx";
14
+ import React, { forwardRef } from "react";
15
+ export const FilterChips = forwardRef((_a, ref) => {
16
+ var { className, children, selected, as: Component = "button" } = _a, rest = __rest(_a, ["className", "children", "selected", "as"]);
17
+ return (React.createElement(Component, Object.assign({}, rest, { ref: ref, className: cl("navds-chips__chip navds-chips__filter", className, {
18
+ "navds-chips--icon-left": selected,
19
+ }), "aria-pressed": selected }),
20
+ selected && (React.createElement(SuccessStroke, { "aria-hidden": true, className: "navds-chips__filter-icon" })),
21
+ React.createElement("span", { className: "navds-chips__chip-text" }, children)));
22
+ });
23
+ export default FilterChips;
24
+ //# sourceMappingURL=Filter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Filter.js","sourceRoot":"","sources":["../../src/chips/Filter.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAmB1C,MAAM,CAAC,MAAM,WAAW,GAAoB,UAAU,CACpD,CACE,EAAoE,EACpE,GAAG,EACH,EAAE;QAFF,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,GAAG,QAAQ,OAAW,EAAN,IAAI,cAAlE,2CAAoE,CAAF;IAGlE,OAAO,CACL,oBAAC,SAAS,oBACJ,IAAI,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,uCAAuC,EAAE,SAAS,EAAE;YAChE,wBAAwB,EAAE,QAAQ;SACnC,CAAC,kBACY,QAAQ;QAErB,QAAQ,IAAI,CACX,oBAAC,aAAa,yBAAa,SAAS,EAAC,0BAA0B,GAAG,CACnE;QACD,8BAAM,SAAS,EAAC,wBAAwB,IAAE,QAAQ,CAAQ,CAChD,CACb,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,WAAW,CAAC"}
@@ -0,0 +1,23 @@
1
+ import React from "react";
2
+ import { OverridableComponent } from "..";
3
+ export interface RemovableChipsProps extends React.ButtonHTMLAttributes<HTMLButtonElement> {
4
+ children: string;
5
+ /**
6
+ * Chip-variants
7
+ * @default "action"
8
+ */
9
+ variant?: "action" | "neutral";
10
+ /**
11
+ * Replaces label read for screen-readers
12
+ * @default "slett filter"
13
+ */
14
+ removeLabel?: string;
15
+ /**
16
+ * Click callback
17
+ */
18
+ onDelete?: () => void;
19
+ }
20
+ export interface RemovableChipsType extends OverridableComponent<RemovableChipsProps, HTMLButtonElement> {
21
+ }
22
+ export declare const RemovableChips: OverridableComponent<RemovableChipsProps, HTMLButtonElement>;
23
+ export default RemovableChips;
@@ -0,0 +1,27 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import { Close } from "@navikt/ds-icons";
13
+ import cl from "clsx";
14
+ import React, { forwardRef } from "react";
15
+ export const RemovableChips = forwardRef((_a, ref) => {
16
+ var { className, children, variant = "action", as: Component = "button", removeLabel = "slett", onDelete } = _a, rest = __rest(_a, ["className", "children", "variant", "as", "removeLabel", "onDelete"]);
17
+ return (React.createElement(Component, Object.assign({}, rest, { ref: ref, className: cl("navds-chips__chip navds-chips__removable navds-chips--icon-right", className, `navds-chips__removable--${variant}`), "aria-label": `${children} ${removeLabel}`, onClick: (e) => {
18
+ var _a;
19
+ onDelete === null || onDelete === void 0 ? void 0 : onDelete();
20
+ (_a = rest === null || rest === void 0 ? void 0 : rest.onClick) === null || _a === void 0 ? void 0 : _a.call(rest, e);
21
+ } }),
22
+ React.createElement("span", { className: "navds-chips__chip-text" }, children),
23
+ React.createElement("span", { className: "navds-chips__removable-icon" },
24
+ React.createElement(Close, { "aria-hidden": true }))));
25
+ });
26
+ export default RemovableChips;
27
+ //# sourceMappingURL=Removable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Removable.js","sourceRoot":"","sources":["../../src/chips/Removable.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAyB1C,MAAM,CAAC,MAAM,cAAc,GAGvB,UAAU,CACZ,CACE,EAQC,EACD,GAAG,EACH,EAAE;QAVF,EACE,SAAS,EACT,QAAQ,EACR,OAAO,GAAG,QAAQ,EAClB,EAAE,EAAE,SAAS,GAAG,QAAQ,EACxB,WAAW,GAAG,OAAO,EACrB,QAAQ,OAET,EADI,IAAI,cAPT,qEAQC,CADQ;IAIT,OAAO,CACL,oBAAC,SAAS,oBACJ,IAAI,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CACX,kEAAkE,EAClE,SAAS,EACT,2BAA2B,OAAO,EAAE,CACrC,gBACW,GAAG,QAAQ,IAAI,WAAW,EAAE,EACxC,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;;YACb,QAAQ,aAAR,QAAQ,uBAAR,QAAQ,EAAI,CAAC;YACb,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,OAAO,qDAAG,CAAC,CAAC,CAAC;QACrB,CAAC;QAED,8BAAM,SAAS,EAAC,wBAAwB,IAAE,QAAQ,CAAQ;QAC1D,8BAAM,SAAS,EAAC,6BAA6B;YAC3C,oBAAC,KAAK,0BAAe,CAChB,CACG,CACb,CAAC;AACJ,CAAC,CACoB,CAAC;AAExB,eAAe,cAAc,CAAC"}
@@ -0,0 +1 @@
1
+ export { default as Chips, ChipsProps } from "./Chips";
@@ -0,0 +1,2 @@
1
+ export { default as Chips } from "./Chips";
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/chips/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,KAAK,EAAc,MAAM,SAAS,CAAC"}
package/esm/index.d.ts CHANGED
@@ -16,6 +16,7 @@ export * from "./panel";
16
16
  export * from "./popover";
17
17
  export * from "./read-more";
18
18
  export * from "./chat";
19
+ export * from "./chips";
19
20
  export * from "./stepper";
20
21
  export * from "./tag";
21
22
  export * from "./toggle-group";
package/esm/index.js CHANGED
@@ -16,6 +16,7 @@ export * from "./panel";
16
16
  export * from "./popover";
17
17
  export * from "./read-more";
18
18
  export * from "./chat";
19
+ export * from "./chips";
19
20
  export * from "./stepper";
20
21
  export * from "./tag";
21
22
  export * from "./toggle-group";
package/esm/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,YAAY,CAAC;AAC3B,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,cAAc,CAAC;AAC7B,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,aAAa,CAAC;AAC5B,cAAc,QAAQ,CAAC;AACvB,cAAc,SAAS,CAAC;AACxB,cAAc,WAAW,CAAC;AAC1B,cAAc,OAAO,CAAC;AACtB,cAAc,gBAAgB,CAAC;AAC/B,cAAc,SAAS,CAAC;AACxB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,cAAc,CAAC;AAC7B,cAAc,QAAQ,CAAC"}
package/esm/tag/Tag.d.ts CHANGED
@@ -1,18 +1,14 @@
1
1
  import React, { HTMLAttributes } from "react";
2
2
  export interface TagProps extends HTMLAttributes<HTMLSpanElement> {
3
- /**
4
- * Tag label
5
- */
6
3
  children: React.ReactNode;
7
4
  /**
8
- * Changes background and border color
5
+ * Changes visual profile of tag
9
6
  */
10
- variant: "warning" | "error" | "info" | "success";
7
+ variant: "warning" | "warning-filled" | "error" | "error-filled" | "info" | "info-filled" | "success" | "success-filled" | "neutral" | "neutral-filled" | "alt1" | "alt1-filled" | "alt2" | "alt2-filled" | "alt3" | "alt3-filled";
11
8
  /**
12
- * Changes padding and font-sizes
13
9
  * @default "medium"
14
10
  */
15
- size?: "medium" | "small";
11
+ size?: "medium" | "small" | "xsmall";
16
12
  }
17
13
  export declare const Tag: React.ForwardRefExoticComponent<TagProps & React.RefAttributes<HTMLSpanElement>>;
18
14
  export default Tag;
package/esm/tag/Tag.js CHANGED
@@ -15,7 +15,7 @@ import { BodyShort, Detail } from "..";
15
15
  export const Tag = forwardRef((_a, ref) => {
16
16
  var { className, variant, size = "medium" } = _a, rest = __rest(_a, ["className", "variant", "size"]);
17
17
  const Component = size === "medium" ? BodyShort : Detail;
18
- return (React.createElement(Component, Object.assign({}, rest, { ref: ref, as: "span", size: size, className: cl("navds-tag", className, `navds-tag--${variant}`, `navds-tag--${size}`) })));
18
+ return (React.createElement(Component, Object.assign({}, rest, { ref: ref, as: "span", size: size === "medium" ? "medium" : "small", className: cl("navds-tag", className, `navds-tag--${variant}`, `navds-tag--${size}`) })));
19
19
  });
20
20
  export default Tag;
21
21
  //# sourceMappingURL=Tag.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Tag.js","sourceRoot":"","sources":["../../src/tag/Tag.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAkB,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AAkBvC,MAAM,CAAC,MAAM,GAAG,GAAG,UAAU,CAC3B,CAAC,EAAgD,EAAE,GAAG,EAAE,EAAE;QAAzD,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,GAAG,QAAQ,OAAW,EAAN,IAAI,cAA9C,gCAAgD,CAAF;IAC7C,MAAM,SAAS,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;IAEzD,OAAO,CACL,oBAAC,SAAS,oBACJ,IAAI,IACR,GAAG,EAAE,GAAG,EACR,EAAE,EAAC,MAAM,EACT,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,EAAE,CACX,WAAW,EACX,SAAS,EACT,cAAc,OAAO,EAAE,EACvB,cAAc,IAAI,EAAE,CACrB,IACD,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,GAAG,CAAC"}
1
+ {"version":3,"file":"Tag.js","sourceRoot":"","sources":["../../src/tag/Tag.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAkB,MAAM,OAAO,CAAC;AAC1D,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,IAAI,CAAC;AA8BvC,MAAM,CAAC,MAAM,GAAG,GAAG,UAAU,CAC3B,CAAC,EAAgD,EAAE,GAAG,EAAE,EAAE;QAAzD,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,GAAG,QAAQ,OAAW,EAAN,IAAI,cAA9C,gCAAgD,CAAF;IAC7C,MAAM,SAAS,GAAG,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC;IAEzD,OAAO,CACL,oBAAC,SAAS,oBACJ,IAAI,IACR,GAAG,EAAE,GAAG,EACR,EAAE,EAAC,MAAM,EACT,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,EAC5C,SAAS,EAAE,EAAE,CACX,WAAW,EACX,SAAS,EACT,cAAc,OAAO,EAAE,EACvB,cAAc,IAAI,EAAE,CACrB,IACD,CACH,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,GAAG,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@navikt/ds-react",
3
- "version": "1.4.4",
3
+ "version": "1.5.1",
4
4
  "description": "NAV designsystem react components",
5
5
  "author": "NAV Designsystem team",
6
6
  "license": "MIT",
@@ -37,7 +37,7 @@
37
37
  },
38
38
  "dependencies": {
39
39
  "@floating-ui/react-dom-interactions": "0.9.2",
40
- "@navikt/ds-icons": "^1.4.4",
40
+ "@navikt/ds-icons": "^1.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",
@@ -0,0 +1,45 @@
1
+ import cl from "clsx";
2
+ import React, { forwardRef, HTMLAttributes } from "react";
3
+ import FilterChips, { FilterChipsType } from "./Filter";
4
+ import RemovableChips, { RemovableChipsType } from "./Removable";
5
+
6
+ export interface ChipsProps extends HTMLAttributes<HTMLUListElement> {
7
+ children: React.ReactNode;
8
+ /**
9
+ * Changes padding and font-sizes
10
+ * @default "medium"
11
+ */
12
+ size?: "medium" | "small";
13
+ }
14
+
15
+ interface ChipsComponent
16
+ extends React.ForwardRefExoticComponent<
17
+ ChipsProps & React.RefAttributes<HTMLUListElement>
18
+ > {
19
+ Filter: FilterChipsType;
20
+ Removable: RemovableChipsType;
21
+ }
22
+
23
+ export const Chips: ChipsComponent = forwardRef<HTMLUListElement, ChipsProps>(
24
+ ({ className, size = "medium", children, ...rest }, ref) => {
25
+ return (
26
+ <ul
27
+ {...rest}
28
+ ref={ref}
29
+ className={cl("navds-chips", className, `navds-chips--${size}`, {
30
+ "navds-body-short navds-body-short--small": size === "medium",
31
+ "navds-detail navds-detail--small": size === "small",
32
+ })}
33
+ >
34
+ {React.Children.map(children, (chip, index) => {
35
+ return <li key={index + (chip?.toString() ?? "")}>{chip}</li>;
36
+ })}
37
+ </ul>
38
+ );
39
+ }
40
+ ) as ChipsComponent;
41
+
42
+ Chips.Filter = FilterChips;
43
+ Chips.Removable = RemovableChips;
44
+
45
+ export default Chips;
@@ -0,0 +1,45 @@
1
+ import { SuccessStroke } from "@navikt/ds-icons";
2
+ import cl from "clsx";
3
+ import React, { forwardRef } from "react";
4
+ import { OverridableComponent } from "..";
5
+
6
+ export interface FilterChipsProps
7
+ extends React.ButtonHTMLAttributes<HTMLButtonElement> {
8
+ children: string;
9
+ /**
10
+ *
11
+ */
12
+ onSelect?: () => void;
13
+ /**
14
+ *
15
+ */
16
+ selected?: boolean;
17
+ }
18
+
19
+ export interface FilterChipsType
20
+ extends OverridableComponent<FilterChipsProps, HTMLButtonElement> {}
21
+
22
+ export const FilterChips: FilterChipsType = forwardRef(
23
+ (
24
+ { className, children, selected, as: Component = "button", ...rest },
25
+ ref
26
+ ) => {
27
+ return (
28
+ <Component
29
+ {...rest}
30
+ ref={ref}
31
+ className={cl("navds-chips__chip navds-chips__filter", className, {
32
+ "navds-chips--icon-left": selected,
33
+ })}
34
+ aria-pressed={selected}
35
+ >
36
+ {selected && (
37
+ <SuccessStroke aria-hidden className="navds-chips__filter-icon" />
38
+ )}
39
+ <span className="navds-chips__chip-text">{children}</span>
40
+ </Component>
41
+ );
42
+ }
43
+ );
44
+
45
+ export default FilterChips;
@@ -0,0 +1,68 @@
1
+ import { Close } from "@navikt/ds-icons";
2
+ import cl from "clsx";
3
+ import React, { forwardRef } from "react";
4
+ import { OverridableComponent } from "..";
5
+
6
+ export interface RemovableChipsProps
7
+ extends React.ButtonHTMLAttributes<HTMLButtonElement> {
8
+ children: string;
9
+ /**
10
+ * Chip-variants
11
+ * @default "action"
12
+ */
13
+ variant?: "action" | "neutral";
14
+ /**
15
+ * Replaces label read for screen-readers
16
+ * @default "slett filter"
17
+ */
18
+ removeLabel?: string;
19
+ /**
20
+ * Click callback
21
+ */
22
+ onDelete?: () => void;
23
+ }
24
+
25
+ export interface RemovableChipsType
26
+ extends OverridableComponent<RemovableChipsProps, HTMLButtonElement> {}
27
+
28
+ export const RemovableChips: OverridableComponent<
29
+ RemovableChipsProps,
30
+ HTMLButtonElement
31
+ > = forwardRef(
32
+ (
33
+ {
34
+ className,
35
+ children,
36
+ variant = "action",
37
+ as: Component = "button",
38
+ removeLabel = "slett",
39
+ onDelete,
40
+ ...rest
41
+ },
42
+ ref
43
+ ) => {
44
+ return (
45
+ <Component
46
+ {...rest}
47
+ ref={ref}
48
+ className={cl(
49
+ "navds-chips__chip navds-chips__removable navds-chips--icon-right",
50
+ className,
51
+ `navds-chips__removable--${variant}`
52
+ )}
53
+ aria-label={`${children} ${removeLabel}`}
54
+ onClick={(e) => {
55
+ onDelete?.();
56
+ rest?.onClick?.(e);
57
+ }}
58
+ >
59
+ <span className="navds-chips__chip-text">{children}</span>
60
+ <span className="navds-chips__removable-icon">
61
+ <Close aria-hidden />
62
+ </span>
63
+ </Component>
64
+ );
65
+ }
66
+ ) as RemovableChipsType;
67
+
68
+ export default RemovableChips;
@@ -0,0 +1,165 @@
1
+ import React, { useState } from "react";
2
+ import { Chips } from ".";
3
+
4
+ export default {
5
+ title: "ds-react/Chips",
6
+ component: Chips,
7
+ argTypes: {
8
+ type: {
9
+ control: {
10
+ type: "radio",
11
+ options: ["filter", "removable"],
12
+ },
13
+ },
14
+ size: {
15
+ control: {
16
+ type: "radio",
17
+ options: ["medium", "small"],
18
+ },
19
+ },
20
+ },
21
+ };
22
+
23
+ const options = ["Norsk", "Dansk", "Svensk", "Tysk", "Spansk"];
24
+
25
+ export const Default = (props) => {
26
+ const [selected, setSelected] = useState(["Dansk", "Svensk"]);
27
+ const [filter, setFilter] = useState(options);
28
+
29
+ if (props.type === "filter") {
30
+ return (
31
+ <Chips size={props.size ?? "medium"}>
32
+ {options.map((c) => (
33
+ <Chips.Filter
34
+ selected={selected.includes(c)}
35
+ key={c}
36
+ onClick={() =>
37
+ setSelected(
38
+ selected.includes(c)
39
+ ? selected.filter((x) => x !== c)
40
+ : [...selected, c]
41
+ )
42
+ }
43
+ >
44
+ {c}
45
+ </Chips.Filter>
46
+ ))}
47
+ </Chips>
48
+ );
49
+ }
50
+
51
+ return (
52
+ <Chips size={props.size ?? "medium"}>
53
+ {filter.map((c) => (
54
+ <Chips.Removable
55
+ key={c}
56
+ onClick={() => setFilter((x) => x.filter((y) => y !== c))}
57
+ >
58
+ {c}
59
+ </Chips.Removable>
60
+ ))}
61
+ </Chips>
62
+ );
63
+ };
64
+
65
+ export const Filter = () => {
66
+ const [selected, setSelected] = useState<number[]>([]);
67
+ return (
68
+ <Chips>
69
+ {options.map((c, y) => (
70
+ <Chips.Filter
71
+ selected={selected.includes(y)}
72
+ onClick={() =>
73
+ setSelected(
74
+ selected.includes(y)
75
+ ? selected.filter((x) => x !== y)
76
+ : [...selected, y]
77
+ )
78
+ }
79
+ key={y}
80
+ >
81
+ {c}
82
+ </Chips.Filter>
83
+ ))}
84
+ </Chips>
85
+ );
86
+ };
87
+
88
+ export const Removable = () => {
89
+ return (
90
+ <div className="colgap">
91
+ <Chips>
92
+ {options.map((c, y) => (
93
+ <Chips.Removable key={y}>{c}</Chips.Removable>
94
+ ))}
95
+ </Chips>
96
+ <Chips>
97
+ {options.map((c, y) => (
98
+ <Chips.Removable variant="neutral" key={y}>
99
+ {c}
100
+ </Chips.Removable>
101
+ ))}
102
+ </Chips>
103
+ </div>
104
+ );
105
+ };
106
+
107
+ export const Regular = () => {
108
+ const [selected, setSelected] = useState<number[]>([]);
109
+ return (
110
+ <div className="colgap">
111
+ <Chips>
112
+ {options.map((c, y) => (
113
+ <Chips.Removable key={y}>{c}</Chips.Removable>
114
+ ))}
115
+ </Chips>
116
+ <Chips>
117
+ {options.map((c, y) => (
118
+ <Chips.Filter
119
+ selected={selected.includes(y)}
120
+ onClick={() =>
121
+ setSelected(
122
+ selected.includes(y)
123
+ ? selected.filter((x) => x !== y)
124
+ : [...selected, y]
125
+ )
126
+ }
127
+ key={y}
128
+ >
129
+ {c}
130
+ </Chips.Filter>
131
+ ))}
132
+ </Chips>
133
+ </div>
134
+ );
135
+ };
136
+
137
+ export const Small = () => {
138
+ const [selected, setSelected] = useState<number[]>([]);
139
+ return (
140
+ <div className="colgap">
141
+ <Chips size="small">
142
+ {options.map((c, y) => (
143
+ <Chips.Removable key={y}>{c}</Chips.Removable>
144
+ ))}
145
+ </Chips>
146
+ <Chips size="small">
147
+ {options.map((c, y) => (
148
+ <Chips.Filter
149
+ selected={selected.includes(y)}
150
+ onClick={() =>
151
+ setSelected(
152
+ selected.includes(y)
153
+ ? selected.filter((x) => x !== y)
154
+ : [...selected, y]
155
+ )
156
+ }
157
+ key={y}
158
+ >
159
+ {c}
160
+ </Chips.Filter>
161
+ ))}
162
+ </Chips>
163
+ </div>
164
+ );
165
+ };
@@ -0,0 +1 @@
1
+ export { default as Chips, ChipsProps } from "./Chips";
package/src/index.ts CHANGED
@@ -16,6 +16,7 @@ export * from "./panel";
16
16
  export * from "./popover";
17
17
  export * from "./read-more";
18
18
  export * from "./chat";
19
+ export * from "./chips";
19
20
  export * from "./stepper";
20
21
  export * from "./tag";
21
22
  export * from "./toggle-group";
package/src/tag/Tag.tsx CHANGED
@@ -3,19 +3,31 @@ import cl from "clsx";
3
3
  import { BodyShort, Detail } from "..";
4
4
 
5
5
  export interface TagProps extends HTMLAttributes<HTMLSpanElement> {
6
- /**
7
- * Tag label
8
- */
9
6
  children: React.ReactNode;
10
7
  /**
11
- * Changes background and border color
8
+ * Changes visual profile of tag
12
9
  */
13
- variant: "warning" | "error" | "info" | "success";
10
+ variant:
11
+ | "warning"
12
+ | "warning-filled"
13
+ | "error"
14
+ | "error-filled"
15
+ | "info"
16
+ | "info-filled"
17
+ | "success"
18
+ | "success-filled"
19
+ | "neutral"
20
+ | "neutral-filled"
21
+ | "alt1"
22
+ | "alt1-filled"
23
+ | "alt2"
24
+ | "alt2-filled"
25
+ | "alt3"
26
+ | "alt3-filled";
14
27
  /**
15
- * Changes padding and font-sizes
16
28
  * @default "medium"
17
29
  */
18
- size?: "medium" | "small";
30
+ size?: "medium" | "small" | "xsmall";
19
31
  }
20
32
 
21
33
  export const Tag = forwardRef<HTMLSpanElement, TagProps>(
@@ -27,7 +39,7 @@ export const Tag = forwardRef<HTMLSpanElement, TagProps>(
27
39
  {...rest}
28
40
  ref={ref}
29
41
  as="span"
30
- size={size}
42
+ size={size === "medium" ? "medium" : "small"}
31
43
  className={cl(
32
44
  "navds-tag",
33
45
  className,
@@ -9,17 +9,70 @@ export default {
9
9
  defaultValue: "info",
10
10
  control: {
11
11
  type: "radio",
12
- options: ["error", "warning", "info", "success"],
12
+ options: [
13
+ "warning",
14
+ "error",
15
+ "info",
16
+ "success",
17
+ "neutral",
18
+ "alt1",
19
+ "alt2",
20
+ "alt3",
21
+ "warning-filled",
22
+ "error-filled",
23
+ "info-filled",
24
+ "success-filled",
25
+ "neutral-filled",
26
+ "alt1-filled",
27
+ "alt2-filled",
28
+ "alt3-filled",
29
+ ],
30
+ },
31
+ },
32
+ size: {
33
+ defaultValue: "medium",
34
+ control: {
35
+ type: "radio",
36
+ options: ["xsmall", "small", "medium"],
13
37
  },
14
38
  },
15
39
  },
16
40
  };
17
41
 
18
- const variants: Array<"error" | "warning" | "info" | "success"> = [
19
- "error",
42
+ const variants: Array<
43
+ | "warning"
44
+ | "warning-filled"
45
+ | "error"
46
+ | "error-filled"
47
+ | "info"
48
+ | "info-filled"
49
+ | "success"
50
+ | "success-filled"
51
+ | "neutral"
52
+ | "neutral-filled"
53
+ | "alt1"
54
+ | "alt1-filled"
55
+ | "alt2"
56
+ | "alt2-filled"
57
+ | "alt3"
58
+ | "alt3-filled"
59
+ > = [
20
60
  "warning",
61
+ "error",
21
62
  "info",
22
63
  "success",
64
+ "neutral",
65
+ "alt1",
66
+ "alt2",
67
+ "alt3",
68
+ "warning-filled",
69
+ "error-filled",
70
+ "info-filled",
71
+ "success-filled",
72
+ "neutral-filled",
73
+ "alt1-filled",
74
+ "alt2-filled",
75
+ "alt3-filled",
23
76
  ];
24
77
 
25
78
  export const Default = (props) => (
@@ -34,10 +87,34 @@ Default.args = {
34
87
 
35
88
  export const Small = () => {
36
89
  return (
37
- <div className="rowgap">
90
+ <div className="rowgap rowgap-wrap">
38
91
  {variants.map((variant, i) => (
39
92
  <Tag key={variant} variant={variant} size="small">
40
- {new Array(i + 1).fill("Id elit esse")}
93
+ {variant}
94
+ </Tag>
95
+ ))}
96
+ </div>
97
+ );
98
+ };
99
+
100
+ export const xSmall = () => {
101
+ return (
102
+ <div className="rowgap rowgap-wrap">
103
+ {variants.map((variant, i) => (
104
+ <Tag key={variant} variant={variant} size="xsmall">
105
+ {variant}
106
+ </Tag>
107
+ ))}
108
+ </div>
109
+ );
110
+ };
111
+
112
+ export const Variants = () => {
113
+ return (
114
+ <div className="rowgap rowgap-wrap">
115
+ {variants.map((variant, i) => (
116
+ <Tag key={variant} variant={variant}>
117
+ {variant}
41
118
  </Tag>
42
119
  ))}
43
120
  </div>