@navikt/ds-react 1.4.3 → 1.5.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
@@ -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",
@@ -6454,7 +6706,7 @@
6454
6706
  ],
6455
6707
  "required": true,
6456
6708
  "type": {
6457
- "name": "\"warning\" | \"error\" | \"info\" | \"success\""
6709
+ "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
6710
  }
6459
6711
  },
6460
6712
  "size": {
@@ -6475,7 +6727,7 @@
6475
6727
  ],
6476
6728
  "required": false,
6477
6729
  "type": {
6478
- "name": "\"medium\" | \"small\""
6730
+ "name": "\"medium\" | \"small\" | \"xsmall\""
6479
6731
  }
6480
6732
  },
6481
6733
  "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"}
@@ -2,5 +2,5 @@ export { DateInputProps } from "./DateInput";
2
2
  export { DatePickerProps, default as UNSAFE_DatePicker, } from "./datepicker/DatePicker";
3
3
  export { DatePickerStandaloneProps } from "./datepicker/DatePickerStandalone";
4
4
  export { MonthPickerStandaloneProps } from "./monthpicker/MonthPickerStandalone";
5
- export { UNSAFE_useDatepicker, UNSAFE_useMonthpicker, UNSAFE_useRangeDatepicker, } from "./hooks";
5
+ export { UNSAFE_useDatepicker, UNSAFE_useMonthpicker, UNSAFE_useRangeDatepicker, RangeValidationT, DateValidationT, MonthValidationT, } from "./hooks";
6
6
  export { default as UNSAFE_MonthPicker, MonthPickerProps, } from "./monthpicker/MonthPicker";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/date/index.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,OAAO,IAAI,iBAAiB,GAC7B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,GAC1B,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,OAAO,IAAI,kBAAkB,GAE9B,MAAM,2BAA2B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/date/index.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,OAAO,IAAI,iBAAiB,GAC7B,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,yBAAyB,GAI1B,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,OAAO,IAAI,kBAAkB,GAE9B,MAAM,2BAA2B,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
@@ -7,12 +7,12 @@ export interface TagProps extends HTMLAttributes<HTMLSpanElement> {
7
7
  /**
8
8
  * Changes background and border color
9
9
  */
10
- variant: "warning" | "error" | "info" | "success";
10
+ 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
11
  /**
12
12
  * Changes padding and font-sizes
13
13
  * @default "medium"
14
14
  */
15
- size?: "medium" | "small";
15
+ size?: "medium" | "small" | "xsmall";
16
16
  }
17
17
  export declare const Tag: React.ForwardRefExoticComponent<TagProps & React.RefAttributes<HTMLSpanElement>>;
18
18
  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;AAkCvC,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.3",
3
+ "version": "1.5.0",
4
4
  "description": "NAV designsystem react components",
5
5
  "author": "NAV Designsystem team",
6
6
  "license": "MIT",
@@ -33,11 +33,11 @@
33
33
  "clean": "rimraf cjs esm",
34
34
  "build": "concurrently \"tsc\" \"tsc -p tsconfig.esm.json\" && yarn create-package-json-pointers-to-esm",
35
35
  "watch": "tsc --watch -p tsconfig.esm.json",
36
- "test": "jest"
36
+ "test": "TZ=UTC jest"
37
37
  },
38
38
  "dependencies": {
39
39
  "@floating-ui/react-dom-interactions": "0.9.2",
40
- "@navikt/ds-icons": "^1.4.3",
40
+ "@navikt/ds-icons": "^1.5.0",
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";
@@ -34,8 +34,8 @@ describe("Writing in input sets correct values", () => {
34
34
  const res = utils.getByTitle("res");
35
35
  expect(res.innerHTML).toEqual(
36
36
  JSON.stringify({
37
- from: "2022-08-02T22:00:00.000Z",
38
- to: "2022-08-02T22:00:00.000Z",
37
+ from: "2022-08-03T00:00:00.000Z",
38
+ to: "2022-08-03T00:00:00.000Z",
39
39
  })
40
40
  );
41
41
  });
@@ -52,7 +52,7 @@ describe("Writing in input sets correct values", () => {
52
52
  const res = utils.getByTitle("res");
53
53
  expect(res.innerHTML).toEqual(
54
54
  JSON.stringify({
55
- from: "2022-08-02T22:00:00.000Z",
55
+ from: "2022-08-03T00:00:00.000Z",
56
56
  })
57
57
  );
58
58
  });
package/src/date/index.ts CHANGED
@@ -9,6 +9,9 @@ export {
9
9
  UNSAFE_useDatepicker,
10
10
  UNSAFE_useMonthpicker,
11
11
  UNSAFE_useRangeDatepicker,
12
+ RangeValidationT,
13
+ DateValidationT,
14
+ MonthValidationT,
12
15
  } from "./hooks";
13
16
  export {
14
17
  default as UNSAFE_MonthPicker,
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
@@ -10,12 +10,28 @@ export interface TagProps extends HTMLAttributes<HTMLSpanElement> {
10
10
  /**
11
11
  * Changes background and border color
12
12
  */
13
- variant: "warning" | "error" | "info" | "success";
13
+ variant:
14
+ | "warning"
15
+ | "warning-filled"
16
+ | "error"
17
+ | "error-filled"
18
+ | "info"
19
+ | "info-filled"
20
+ | "success"
21
+ | "success-filled"
22
+ | "neutral"
23
+ | "neutral-filled"
24
+ | "alt1"
25
+ | "alt1-filled"
26
+ | "alt2"
27
+ | "alt2-filled"
28
+ | "alt3"
29
+ | "alt3-filled";
14
30
  /**
15
31
  * Changes padding and font-sizes
16
32
  * @default "medium"
17
33
  */
18
- size?: "medium" | "small";
34
+ size?: "medium" | "small" | "xsmall";
19
35
  }
20
36
 
21
37
  export const Tag = forwardRef<HTMLSpanElement, TagProps>(
@@ -27,7 +43,7 @@ export const Tag = forwardRef<HTMLSpanElement, TagProps>(
27
43
  {...rest}
28
44
  ref={ref}
29
45
  as="span"
30
- size={size}
46
+ size={size === "medium" ? "medium" : "small"}
31
47
  className={cl(
32
48
  "navds-tag",
33
49
  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>