@navikt/ds-react 0.17.26 → 0.18.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/form/Textarea.js +2 -1
- package/cjs/form/search/Search.js +1 -2
- package/cjs/form/search/SearchButton.js +3 -6
- package/cjs/table/ExpandableRow.js +9 -10
- package/esm/form/ConfirmationPanel.d.ts +1 -5
- package/esm/form/ConfirmationPanel.js.map +1 -1
- package/esm/form/Textarea.d.ts +2 -2
- package/esm/form/Textarea.js +2 -1
- package/esm/form/Textarea.js.map +1 -1
- package/esm/form/search/Search.d.ts +0 -5
- package/esm/form/search/Search.js +1 -2
- package/esm/form/search/Search.js.map +1 -1
- package/esm/form/search/SearchButton.js +3 -6
- package/esm/form/search/SearchButton.js.map +1 -1
- package/esm/table/ExpandableRow.d.ts +5 -0
- package/esm/table/ExpandableRow.js +9 -10
- package/esm/table/ExpandableRow.js.map +1 -1
- package/package.json +2 -2
- package/src/form/ConfirmationPanel.tsx +2 -5
- package/src/form/Textarea.tsx +3 -3
- package/src/form/search/Search.tsx +0 -7
- package/src/form/search/SearchButton.tsx +2 -6
- package/src/form/search/search.stories.tsx +0 -1
- package/src/form/stories/confirmation-panel.stories.tsx +7 -0
- package/src/form/stories/textarea.stories.tsx +8 -0
- package/src/read-more/read-more.stories.tsx +1 -1
- package/src/table/ExpandableRow.tsx +28 -20
- package/src/table/stories/table-expandable.stories.tsx +2 -1
package/cjs/form/Textarea.js
CHANGED
|
@@ -46,6 +46,7 @@ const ErrorMessage_1 = __importDefault(require("./ErrorMessage"));
|
|
|
46
46
|
const useFormField_1 = require("./useFormField");
|
|
47
47
|
const __2 = require("..");
|
|
48
48
|
const Textarea = (0, react_1.forwardRef)((props, ref) => {
|
|
49
|
+
var _a;
|
|
49
50
|
const { inputProps, errorId, showErrorMsg, hasError, size, inputDescriptionId, } = (0, useFormField_1.useFormField)(props, "textarea");
|
|
50
51
|
const { label, className, description, maxLength, hideLabel = false } = props, rest = __rest(props, ["label", "className", "description", "maxLength", "hideLabel"]);
|
|
51
52
|
const maxLengthId = `TextareaMaxLength-${(0, __2.useId)()}`;
|
|
@@ -74,7 +75,7 @@ const Textarea = (0, react_1.forwardRef)((props, ref) => {
|
|
|
74
75
|
" ",
|
|
75
76
|
maxLength,
|
|
76
77
|
" signs."),
|
|
77
|
-
react_1.default.createElement(exports.Counter, { maxLength: maxLength, currentLength: props.value.length, size: size })))),
|
|
78
|
+
react_1.default.createElement(exports.Counter, { maxLength: maxLength, currentLength: (_a = props.value) === null || _a === void 0 ? void 0 : _a.length, size: size })))),
|
|
78
79
|
react_1.default.createElement("div", { id: errorId, "aria-relevant": "additions removals", "aria-live": "polite" }, showErrorMsg && (react_1.default.createElement(ErrorMessage_1.default, { size: size }, props.error)))));
|
|
79
80
|
});
|
|
80
81
|
const Counter = ({ maxLength, currentLength, size }) => {
|
|
@@ -48,7 +48,7 @@ const useSearch_1 = require("./useSearch");
|
|
|
48
48
|
exports.SearchContext = react_1.default.createContext(null);
|
|
49
49
|
const Search = (0, react_1.forwardRef)((props, ref) => {
|
|
50
50
|
const { inputProps, size = "medium", inputDescriptionId } = (0, useSearch_1.useSearch)(props, "searchfield");
|
|
51
|
-
const { className, hideLabel = true, label, description, value, clearButtonLabel, onClear, clearButton = true, children,
|
|
51
|
+
const { className, hideLabel = true, label, description, value, clearButtonLabel, onClear, clearButton = true, children, variant = "primary", defaultValue, onChange } = props, rest = __rest(props, ["className", "hideLabel", "label", "description", "value", "clearButtonLabel", "onClear", "clearButton", "children", "variant", "defaultValue", "onChange"]);
|
|
52
52
|
const searchRef = (0, react_1.useRef)(null);
|
|
53
53
|
const mergedRef = (0, react_merge_refs_1.default)([searchRef, ref]);
|
|
54
54
|
const [wrapperRef, setWrapperRef] = (0, react_1.useState)(null);
|
|
@@ -89,7 +89,6 @@ const Search = (0, react_1.forwardRef)((props, ref) => {
|
|
|
89
89
|
size,
|
|
90
90
|
disabled: inputProps.disabled,
|
|
91
91
|
variant,
|
|
92
|
-
onSearch: () => onSearch === null || onSearch === void 0 ? void 0 : onSearch(value !== null && value !== void 0 ? value : internalValue),
|
|
93
92
|
} }, children ? children : variant !== "simple" && react_1.default.createElement(SearchButton_1.default, null)))));
|
|
94
93
|
});
|
|
95
94
|
Search.Button = SearchButton_1.default;
|
|
@@ -44,17 +44,14 @@ const __1 = require("../..");
|
|
|
44
44
|
const Search_1 = require("./Search");
|
|
45
45
|
const SearchButton = (0, react_1.forwardRef)((_a, ref) => {
|
|
46
46
|
var _b;
|
|
47
|
-
var { className, children, disabled
|
|
47
|
+
var { className, children, disabled } = _a, rest = __rest(_a, ["className", "children", "disabled"]);
|
|
48
48
|
const context = (0, react_1.useContext)(Search_1.SearchContext);
|
|
49
49
|
if (context === null) {
|
|
50
50
|
console.warn("<Search.Button> has to be wrapped in <Search />");
|
|
51
51
|
return null;
|
|
52
52
|
}
|
|
53
|
-
const { size, variant
|
|
54
|
-
return (react_1.default.createElement(__1.Button, Object.assign({ type: "submit" }, rest, { ref: ref, size: size, variant: variant === "secondary" ? "secondary" : "primary", className: (0, classnames_1.default)("navds-search__button-search", className), disabled: (_b = context === null || context === void 0 ? void 0 : context.disabled) !== null && _b !== void 0 ? _b : disabled
|
|
55
|
-
onSearch === null || onSearch === void 0 ? void 0 : onSearch();
|
|
56
|
-
onClick === null || onClick === void 0 ? void 0 : onClick(e);
|
|
57
|
-
} }),
|
|
53
|
+
const { size, variant } = context;
|
|
54
|
+
return (react_1.default.createElement(__1.Button, Object.assign({ type: "submit" }, rest, { ref: ref, size: size, variant: variant === "secondary" ? "secondary" : "primary", className: (0, classnames_1.default)("navds-search__button-search", className), disabled: (_b = context === null || context === void 0 ? void 0 : context.disabled) !== null && _b !== void 0 ? _b : disabled }),
|
|
58
55
|
react_1.default.createElement(ds_icons_1.Search, { "aria-hidden": true }),
|
|
59
56
|
children ? children : react_1.default.createElement("span", { className: "navds-sr-only" }, "S\u00F8k")));
|
|
60
57
|
});
|
|
@@ -45,7 +45,7 @@ const react_collapse_1 = require("react-collapse");
|
|
|
45
45
|
const ds_icons_1 = require("@navikt/ds-icons");
|
|
46
46
|
const __1 = require("..");
|
|
47
47
|
const ExpandableRow = (0, react_1.forwardRef)((_a, ref) => {
|
|
48
|
-
var { className, children, content, togglePlacement = "left", defaultOpen = false, open, onOpenChange } = _a, rest = __rest(_a, ["className", "children", "content", "togglePlacement", "defaultOpen", "open", "onOpenChange"]);
|
|
48
|
+
var { className, children, content, togglePlacement = "left", defaultOpen = false, open, onOpenChange, expansionDisabled = false } = _a, rest = __rest(_a, ["className", "children", "content", "togglePlacement", "defaultOpen", "open", "onOpenChange", "expansionDisabled"]);
|
|
49
49
|
const [internalOpen, setInternalOpen] = (0, react_1.useState)(defaultOpen);
|
|
50
50
|
const id = `expandable-${(0, __1.useId)()}`;
|
|
51
51
|
const isOpen = open !== null && open !== void 0 ? open : internalOpen;
|
|
@@ -56,15 +56,14 @@ const ExpandableRow = (0, react_1.forwardRef)((_a, ref) => {
|
|
|
56
56
|
togglePlacement === "right" && children,
|
|
57
57
|
react_1.default.createElement(DataCell_1.default, { className: (0, classnames_1.default)("navds-table__toggle-expand-cell", {
|
|
58
58
|
"navds-table__toggle-expand-cell--open": isOpen,
|
|
59
|
-
}) },
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
react_1.default.createElement(ds_icons_1.ExpandFilled, { className: "navds-table__expandable-icon navds-table__expandable-icon--filled", title: isOpen ? "Vis mindre" : "Vis mer" }))),
|
|
59
|
+
}) }, !expansionDisabled && (react_1.default.createElement("button", { className: "navds-table__toggle-expand-button", "aria-controls": id, "aria-expanded": isOpen, onClick: () => {
|
|
60
|
+
onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(!isOpen);
|
|
61
|
+
if (open === undefined) {
|
|
62
|
+
setInternalOpen((open) => !open);
|
|
63
|
+
}
|
|
64
|
+
} },
|
|
65
|
+
react_1.default.createElement(ds_icons_1.Expand, { className: "navds-table__expandable-icon", title: isOpen ? "Vis mindre" : "Vis mer" }),
|
|
66
|
+
react_1.default.createElement(ds_icons_1.ExpandFilled, { className: "navds-table__expandable-icon navds-table__expandable-icon--filled", title: isOpen ? "Vis mindre" : "Vis mer" })))),
|
|
68
67
|
togglePlacement === "left" && children),
|
|
69
68
|
react_1.default.createElement("tr", { className: "navds-table__expanded-row", "aria-hidden": !isOpen, id: id },
|
|
70
69
|
react_1.default.createElement("td", { colSpan: 999, className: "navds-table__expanded-row-cell" },
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { CheckboxProps } from "..";
|
|
3
|
-
export interface ConfirmationPanelProps extends
|
|
3
|
+
export interface ConfirmationPanelProps extends Omit<CheckboxProps, "children"> {
|
|
4
4
|
/**
|
|
5
5
|
* Additional information on panel
|
|
6
6
|
*/
|
|
@@ -9,10 +9,6 @@ export interface ConfirmationPanelProps extends Partial<CheckboxProps> {
|
|
|
9
9
|
* Checkbox label
|
|
10
10
|
*/
|
|
11
11
|
label: React.ReactNode;
|
|
12
|
-
/**
|
|
13
|
-
* Checked state for checkbox
|
|
14
|
-
*/
|
|
15
|
-
checked: boolean;
|
|
16
12
|
}
|
|
17
13
|
declare const ConfirmationPanel: React.ForwardRefExoticComponent<ConfirmationPanelProps & React.RefAttributes<HTMLDivElement>>;
|
|
18
14
|
export default ConfirmationPanel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConfirmationPanel.js","sourceRoot":"","sources":["../../src/form/ConfirmationPanel.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAiB,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"ConfirmationPanel.js","sourceRoot":"","sources":["../../src/form/ConfirmationPanel.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAiB,MAAM,IAAI,CAAC;AAcvD,MAAM,iBAAiB,GAAG,UAAU,CAClC,CAAC,EAAwC,EAAE,GAAG,EAAE,EAAE;QAAjD,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,OAAY,EAAP,KAAK,cAAtC,kCAAwC,CAAF;IACrC,OAAO,CACL,6BACE,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,0BAA0B,EAAE,SAAS,EAAE;YACnD,iCAAiC,EAAE,KAAK,CAAC,IAAI,KAAK,OAAO;YACzD,iCAAiC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK;YAChD,mCAAmC,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO;SACrD,CAAC;QAED,QAAQ,IAAI,CACX,oBAAC,QAAQ,IACP,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,SAAS,EAAC,mCAAmC,IAE5C,QAAQ,CACA,CACZ;QACD,oBAAC,QAAQ,oBAAK,KAAK,GAAG,KAAK,CAAY,CACnC,CACP,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
package/esm/form/Textarea.d.ts
CHANGED
|
@@ -8,8 +8,8 @@ export interface TextareaProps extends FormFieldProps, React.TextareaHTMLAttribu
|
|
|
8
8
|
* Visually allowed length of content
|
|
9
9
|
*/
|
|
10
10
|
maxLength?: number;
|
|
11
|
-
value
|
|
12
|
-
|
|
11
|
+
value?: string;
|
|
12
|
+
defaultValue?: string;
|
|
13
13
|
/**
|
|
14
14
|
* Maximum number of rows to display.
|
|
15
15
|
* @bug Internal scrolling with `maxLength` scrolls over maxLength-text
|
package/esm/form/Textarea.js
CHANGED
|
@@ -17,6 +17,7 @@ import ErrorMessage from "./ErrorMessage";
|
|
|
17
17
|
import { useFormField } from "./useFormField";
|
|
18
18
|
import { useId } from "..";
|
|
19
19
|
const Textarea = forwardRef((props, ref) => {
|
|
20
|
+
var _a;
|
|
20
21
|
const { inputProps, errorId, showErrorMsg, hasError, size, inputDescriptionId, } = useFormField(props, "textarea");
|
|
21
22
|
const { label, className, description, maxLength, hideLabel = false } = props, rest = __rest(props, ["label", "className", "description", "maxLength", "hideLabel"]);
|
|
22
23
|
const maxLengthId = `TextareaMaxLength-${useId()}`;
|
|
@@ -45,7 +46,7 @@ const Textarea = forwardRef((props, ref) => {
|
|
|
45
46
|
" ",
|
|
46
47
|
maxLength,
|
|
47
48
|
" signs."),
|
|
48
|
-
React.createElement(Counter, { maxLength: maxLength, currentLength: props.value.length, size: size })))),
|
|
49
|
+
React.createElement(Counter, { maxLength: maxLength, currentLength: (_a = props.value) === null || _a === void 0 ? void 0 : _a.length, size: size })))),
|
|
49
50
|
React.createElement("div", { id: errorId, "aria-relevant": "additions removals", "aria-live": "polite" }, showErrorMsg && (React.createElement(ErrorMessage, { size: size }, props.error)))));
|
|
50
51
|
});
|
|
51
52
|
export const Counter = ({ maxLength, currentLength, size }) => {
|
package/esm/form/Textarea.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Textarea.js","sourceRoot":"","sources":["../../src/form/Textarea.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,gBAAgB,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC5C,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAkB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;AAiC3B,MAAM,QAAQ,GAAG,UAAU,CACzB,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE
|
|
1
|
+
{"version":3,"file":"Textarea.js","sourceRoot":"","sources":["../../src/form/Textarea.tsx"],"names":[],"mappings":"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"}
|
|
@@ -24,10 +24,6 @@ export interface SearchProps extends Omit<FormFieldProps, "error" | "errorId">,
|
|
|
24
24
|
* Callback for value-change in input
|
|
25
25
|
*/
|
|
26
26
|
onChange?: (value: string) => void;
|
|
27
|
-
/**
|
|
28
|
-
* Callback for <Search.Button/> click or onSubmit in form
|
|
29
|
-
*/
|
|
30
|
-
onSearch?: (value: string | number | readonly string[]) => void;
|
|
31
27
|
/**
|
|
32
28
|
* Callback for click on clear-button or Escape keydown
|
|
33
29
|
*/
|
|
@@ -55,7 +51,6 @@ export interface SearchContextProps {
|
|
|
55
51
|
disabled?: boolean;
|
|
56
52
|
size: "medium" | "small";
|
|
57
53
|
variant: "primary" | "secondary" | "simple";
|
|
58
|
-
onSearch: () => void;
|
|
59
54
|
}
|
|
60
55
|
export declare const SearchContext: React.Context<SearchContextProps | null>;
|
|
61
56
|
declare const Search: SearchComponent;
|
|
@@ -19,7 +19,7 @@ import { useSearch } from "./useSearch";
|
|
|
19
19
|
export const SearchContext = React.createContext(null);
|
|
20
20
|
const Search = forwardRef((props, ref) => {
|
|
21
21
|
const { inputProps, size = "medium", inputDescriptionId } = useSearch(props, "searchfield");
|
|
22
|
-
const { className, hideLabel = true, label, description, value, clearButtonLabel, onClear, clearButton = true, children,
|
|
22
|
+
const { className, hideLabel = true, label, description, value, clearButtonLabel, onClear, clearButton = true, children, variant = "primary", defaultValue, onChange } = props, rest = __rest(props, ["className", "hideLabel", "label", "description", "value", "clearButtonLabel", "onClear", "clearButton", "children", "variant", "defaultValue", "onChange"]);
|
|
23
23
|
const searchRef = useRef(null);
|
|
24
24
|
const mergedRef = mergeRefs([searchRef, ref]);
|
|
25
25
|
const [wrapperRef, setWrapperRef] = useState(null);
|
|
@@ -60,7 +60,6 @@ const Search = forwardRef((props, ref) => {
|
|
|
60
60
|
size,
|
|
61
61
|
disabled: inputProps.disabled,
|
|
62
62
|
variant,
|
|
63
|
-
onSearch: () => onSearch === null || onSearch === void 0 ? void 0 : onSearch(value !== null && value !== void 0 ? value : internalValue),
|
|
64
63
|
} }, children ? children : variant !== "simple" && React.createElement(SearchButton, null)))));
|
|
65
64
|
});
|
|
66
65
|
Search.Button = SearchButton;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Search.js","sourceRoot":"","sources":["../../../src/form/search/Search.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,IAAI,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC/D,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,EACZ,UAAU,EAEV,WAAW,EACX,MAAM,EACN,QAAQ,GACT,MAAM,OAAO,CAAC;AACf,OAAO,SAAS,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AAEjE,OAAO,YAAkC,MAAM,gBAAgB,CAAC;AAChE,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"Search.js","sourceRoot":"","sources":["../../../src/form/search/Search.tsx"],"names":[],"mappings":"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"}
|
|
@@ -16,17 +16,14 @@ import { Button } from "../..";
|
|
|
16
16
|
import { SearchContext } from "./Search";
|
|
17
17
|
const SearchButton = forwardRef((_a, ref) => {
|
|
18
18
|
var _b;
|
|
19
|
-
var { className, children, disabled
|
|
19
|
+
var { className, children, disabled } = _a, rest = __rest(_a, ["className", "children", "disabled"]);
|
|
20
20
|
const context = useContext(SearchContext);
|
|
21
21
|
if (context === null) {
|
|
22
22
|
console.warn("<Search.Button> has to be wrapped in <Search />");
|
|
23
23
|
return null;
|
|
24
24
|
}
|
|
25
|
-
const { size, variant
|
|
26
|
-
return (React.createElement(Button, Object.assign({ type: "submit" }, rest, { ref: ref, size: size, variant: variant === "secondary" ? "secondary" : "primary", className: cl("navds-search__button-search", className), disabled: (_b = context === null || context === void 0 ? void 0 : context.disabled) !== null && _b !== void 0 ? _b : disabled
|
|
27
|
-
onSearch === null || onSearch === void 0 ? void 0 : onSearch();
|
|
28
|
-
onClick === null || onClick === void 0 ? void 0 : onClick(e);
|
|
29
|
-
} }),
|
|
25
|
+
const { size, variant } = context;
|
|
26
|
+
return (React.createElement(Button, Object.assign({ type: "submit" }, rest, { ref: ref, size: size, variant: variant === "secondary" ? "secondary" : "primary", className: cl("navds-search__button-search", className), disabled: (_b = context === null || context === void 0 ? void 0 : context.disabled) !== null && _b !== void 0 ? _b : disabled }),
|
|
30
27
|
React.createElement(Search, { "aria-hidden": true }),
|
|
31
28
|
children ? children : React.createElement("span", { className: "navds-sr-only" }, "S\u00F8k")));
|
|
32
29
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SearchButton.js","sourceRoot":"","sources":["../../../src/form/search/SearchButton.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,MAAM,EAAe,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAczC,MAAM,YAAY,GAAqB,UAAU,CAC/C,CAAC,
|
|
1
|
+
{"version":3,"file":"SearchButton.js","sourceRoot":"","sources":["../../../src/form/search/SearchButton.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAC1C,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAE,MAAM,EAAe,MAAM,OAAO,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAczC,MAAM,YAAY,GAAqB,UAAU,CAC/C,CAAC,EAA0C,EAAE,GAAG,EAAE,EAAE;;QAAnD,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,OAAW,EAAN,IAAI,cAAxC,qCAA0C,CAAF;IACvC,MAAM,OAAO,GAAG,UAAU,CAAC,aAAa,CAAC,CAAC;IAE1C,IAAI,OAAO,KAAK,IAAI,EAAE;QACpB,OAAO,CAAC,IAAI,CAAC,iDAAiD,CAAC,CAAC;QAChE,OAAO,IAAI,CAAC;KACb;IAED,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAElC,OAAO,CACL,oBAAC,MAAM,kBACL,IAAI,EAAC,QAAQ,IACT,IAAI,IACR,GAAG,EAAE,GAAG,EACR,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,OAAO,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,EAC1D,SAAS,EAAE,EAAE,CAAC,6BAA6B,EAAE,SAAS,CAAC,EACvD,QAAQ,EAAE,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,mCAAI,QAAQ;QAEvC,oBAAC,MAAM,0BAAe;QACrB,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,8BAAM,SAAS,EAAC,eAAe,eAAW,CAC1D,CACV,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,YAAY,CAAC"}
|
|
@@ -24,6 +24,11 @@ interface ExpandableRowProps extends RowProps {
|
|
|
24
24
|
* Change handler for open
|
|
25
25
|
*/
|
|
26
26
|
onOpenChange?: (open: boolean) => void;
|
|
27
|
+
/**
|
|
28
|
+
* Disable expansion
|
|
29
|
+
* @default false
|
|
30
|
+
*/
|
|
31
|
+
expansionDisabled?: boolean;
|
|
27
32
|
}
|
|
28
33
|
export interface ExpandableRowType extends React.ForwardRefExoticComponent<ExpandableRowProps & React.RefAttributes<HTMLTableRowElement>> {
|
|
29
34
|
}
|
|
@@ -17,7 +17,7 @@ import { UnmountClosed } from "react-collapse";
|
|
|
17
17
|
import { Expand, ExpandFilled } from "@navikt/ds-icons";
|
|
18
18
|
import { useId } from "..";
|
|
19
19
|
const ExpandableRow = forwardRef((_a, ref) => {
|
|
20
|
-
var { className, children, content, togglePlacement = "left", defaultOpen = false, open, onOpenChange } = _a, rest = __rest(_a, ["className", "children", "content", "togglePlacement", "defaultOpen", "open", "onOpenChange"]);
|
|
20
|
+
var { className, children, content, togglePlacement = "left", defaultOpen = false, open, onOpenChange, expansionDisabled = false } = _a, rest = __rest(_a, ["className", "children", "content", "togglePlacement", "defaultOpen", "open", "onOpenChange", "expansionDisabled"]);
|
|
21
21
|
const [internalOpen, setInternalOpen] = useState(defaultOpen);
|
|
22
22
|
const id = `expandable-${useId()}`;
|
|
23
23
|
const isOpen = open !== null && open !== void 0 ? open : internalOpen;
|
|
@@ -28,15 +28,14 @@ const ExpandableRow = forwardRef((_a, ref) => {
|
|
|
28
28
|
togglePlacement === "right" && children,
|
|
29
29
|
React.createElement(DataCell, { className: cl("navds-table__toggle-expand-cell", {
|
|
30
30
|
"navds-table__toggle-expand-cell--open": isOpen,
|
|
31
|
-
}) },
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
React.createElement(ExpandFilled, { className: "navds-table__expandable-icon navds-table__expandable-icon--filled", title: isOpen ? "Vis mindre" : "Vis mer" }))),
|
|
31
|
+
}) }, !expansionDisabled && (React.createElement("button", { className: "navds-table__toggle-expand-button", "aria-controls": id, "aria-expanded": isOpen, onClick: () => {
|
|
32
|
+
onOpenChange === null || onOpenChange === void 0 ? void 0 : onOpenChange(!isOpen);
|
|
33
|
+
if (open === undefined) {
|
|
34
|
+
setInternalOpen((open) => !open);
|
|
35
|
+
}
|
|
36
|
+
} },
|
|
37
|
+
React.createElement(Expand, { className: "navds-table__expandable-icon", title: isOpen ? "Vis mindre" : "Vis mer" }),
|
|
38
|
+
React.createElement(ExpandFilled, { className: "navds-table__expandable-icon navds-table__expandable-icon--filled", title: isOpen ? "Vis mindre" : "Vis mer" })))),
|
|
40
39
|
togglePlacement === "left" && children),
|
|
41
40
|
React.createElement("tr", { className: "navds-table__expanded-row", "aria-hidden": !isOpen, id: id },
|
|
42
41
|
React.createElement("td", { colSpan: 999, className: "navds-table__expanded-row-cell" },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExpandableRow.js","sourceRoot":"","sources":["../../src/table/ExpandableRow.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,GAAiB,MAAM,OAAO,CAAC;AACtC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;
|
|
1
|
+
{"version":3,"file":"ExpandableRow.js","sourceRoot":"","sources":["../../src/table/ExpandableRow.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpD,OAAO,EAAE,MAAM,YAAY,CAAC;AAC5B,OAAO,GAAiB,MAAM,OAAO,CAAC;AACtC,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,KAAK,EAAE,MAAM,IAAI,CAAC;AAsC3B,MAAM,aAAa,GAAsB,UAAU,CACjD,CACE,EAUC,EACD,GAAG,EACH,EAAE;QAZF,EACE,SAAS,EACT,QAAQ,EACR,OAAO,EACP,eAAe,GAAG,MAAM,EACxB,WAAW,GAAG,KAAK,EACnB,IAAI,EACJ,YAAY,EACZ,iBAAiB,GAAG,KAAK,OAE1B,EADI,IAAI,cATT,mHAUC,CADQ;IAIT,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GAAG,QAAQ,CAAU,WAAW,CAAC,CAAC;IACvE,MAAM,EAAE,GAAG,cAAc,KAAK,EAAE,EAAE,CAAC;IAEnC,MAAM,MAAM,GAAG,IAAI,aAAJ,IAAI,cAAJ,IAAI,GAAI,YAAY,CAAC;IAEpC,OAAO,CACL;QACE,oBAAC,GAAG,oBACE,IAAI,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,6BAA6B,EAAE,SAAS,EAAE;gBACtD,mCAAmC,EAAE,MAAM;aAC5C,CAAC;YAED,eAAe,KAAK,OAAO,IAAI,QAAQ;YACxC,oBAAC,QAAQ,IACP,SAAS,EAAE,EAAE,CAAC,iCAAiC,EAAE;oBAC/C,uCAAuC,EAAE,MAAM;iBAChD,CAAC,IAED,CAAC,iBAAiB,IAAI,CACrB,gCACE,SAAS,EAAC,mCAAmC,mBAC9B,EAAE,mBACF,MAAM,EACrB,OAAO,EAAE,GAAG,EAAE;oBACZ,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAG,CAAC,MAAM,CAAC,CAAC;oBACxB,IAAI,IAAI,KAAK,SAAS,EAAE;wBACtB,eAAe,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;qBAClC;gBACH,CAAC;gBAED,oBAAC,MAAM,IACL,SAAS,EAAC,8BAA8B,EACxC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,GACxC;gBACF,oBAAC,YAAY,IACX,SAAS,EAAC,mEAAmE,EAC7E,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,GACxC,CACK,CACV,CACQ;YACV,eAAe,KAAK,MAAM,IAAI,QAAQ,CACnC;QACN,4BAAI,SAAS,EAAC,2BAA2B,iBAAc,CAAC,MAAM,EAAE,EAAE,EAAE,EAAE;YACpE,4BAAI,OAAO,EAAE,GAAG,EAAE,SAAS,EAAC,gCAAgC;gBAC1D,oBAAC,aAAa,IACZ,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE;wBACL,QAAQ,EAAE,oCAAoC;wBAC9C,OAAO,EAAE,mCAAmC;qBAC7C,IAEA,OAAO,CACM,CACb,CACF,CACJ,CACJ,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@navikt/ds-react",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.18.1",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "NAV designsystem react components",
|
|
6
6
|
"author": "NAV Designsystem team",
|
|
@@ -69,5 +69,5 @@
|
|
|
69
69
|
"@types/react": "^17.0.30 || ^18.0.0",
|
|
70
70
|
"react": "^17.0.0 || ^18.0.0"
|
|
71
71
|
},
|
|
72
|
-
"gitHead": "
|
|
72
|
+
"gitHead": "56642ed7b59629d46254655d7c5453c19e76568a"
|
|
73
73
|
}
|
|
@@ -2,7 +2,8 @@ import React, { forwardRef } from "react";
|
|
|
2
2
|
import cl from "classnames";
|
|
3
3
|
import { BodyLong, Checkbox, CheckboxProps } from "..";
|
|
4
4
|
|
|
5
|
-
export interface ConfirmationPanelProps
|
|
5
|
+
export interface ConfirmationPanelProps
|
|
6
|
+
extends Omit<CheckboxProps, "children"> {
|
|
6
7
|
/**
|
|
7
8
|
* Additional information on panel
|
|
8
9
|
*/
|
|
@@ -11,10 +12,6 @@ export interface ConfirmationPanelProps extends Partial<CheckboxProps> {
|
|
|
11
12
|
* Checkbox label
|
|
12
13
|
*/
|
|
13
14
|
label: React.ReactNode;
|
|
14
|
-
/**
|
|
15
|
-
* Checked state for checkbox
|
|
16
|
-
*/
|
|
17
|
-
checked: boolean;
|
|
18
15
|
}
|
|
19
16
|
|
|
20
17
|
const ConfirmationPanel = forwardRef<HTMLDivElement, ConfirmationPanelProps>(
|
package/src/form/Textarea.tsx
CHANGED
|
@@ -16,8 +16,8 @@ export interface TextareaProps
|
|
|
16
16
|
* Visually allowed length of content
|
|
17
17
|
*/
|
|
18
18
|
maxLength?: number;
|
|
19
|
-
value
|
|
20
|
-
|
|
19
|
+
value?: string;
|
|
20
|
+
defaultValue?: string;
|
|
21
21
|
/**
|
|
22
22
|
* Maximum number of rows to display.
|
|
23
23
|
* @bug Internal scrolling with `maxLength` scrolls over maxLength-text
|
|
@@ -119,7 +119,7 @@ const Textarea = forwardRef<HTMLTextAreaElement, TextareaProps>(
|
|
|
119
119
|
</span>
|
|
120
120
|
<Counter
|
|
121
121
|
maxLength={maxLength}
|
|
122
|
-
currentLength={props.value
|
|
122
|
+
currentLength={props.value?.length}
|
|
123
123
|
size={size}
|
|
124
124
|
/>
|
|
125
125
|
</>
|
|
@@ -38,10 +38,6 @@ export interface SearchProps
|
|
|
38
38
|
* Callback for value-change in input
|
|
39
39
|
*/
|
|
40
40
|
onChange?: (value: string) => void;
|
|
41
|
-
/**
|
|
42
|
-
* Callback for <Search.Button/> click or onSubmit in form
|
|
43
|
-
*/
|
|
44
|
-
onSearch?: (value: string | number | readonly string[]) => void;
|
|
45
41
|
/**
|
|
46
42
|
* Callback for click on clear-button or Escape keydown
|
|
47
43
|
*/
|
|
@@ -74,7 +70,6 @@ export interface SearchContextProps {
|
|
|
74
70
|
disabled?: boolean;
|
|
75
71
|
size: "medium" | "small";
|
|
76
72
|
variant: "primary" | "secondary" | "simple";
|
|
77
|
-
onSearch: () => void;
|
|
78
73
|
}
|
|
79
74
|
|
|
80
75
|
export const SearchContext = React.createContext<SearchContextProps | null>(
|
|
@@ -97,7 +92,6 @@ const Search = forwardRef<HTMLInputElement, SearchProps>((props, ref) => {
|
|
|
97
92
|
onClear,
|
|
98
93
|
clearButton = true,
|
|
99
94
|
children,
|
|
100
|
-
onSearch,
|
|
101
95
|
variant = "primary",
|
|
102
96
|
defaultValue,
|
|
103
97
|
onChange,
|
|
@@ -216,7 +210,6 @@ const Search = forwardRef<HTMLInputElement, SearchProps>((props, ref) => {
|
|
|
216
210
|
size,
|
|
217
211
|
disabled: inputProps.disabled,
|
|
218
212
|
variant,
|
|
219
|
-
onSearch: () => onSearch?.(value ?? internalValue),
|
|
220
213
|
}}
|
|
221
214
|
>
|
|
222
215
|
{children ? children : variant !== "simple" && <SearchButton />}
|
|
@@ -17,7 +17,7 @@ export type SearchButtonType = React.ForwardRefExoticComponent<
|
|
|
17
17
|
>;
|
|
18
18
|
|
|
19
19
|
const SearchButton: SearchButtonType = forwardRef(
|
|
20
|
-
({ className, children, disabled,
|
|
20
|
+
({ className, children, disabled, ...rest }, ref) => {
|
|
21
21
|
const context = useContext(SearchContext);
|
|
22
22
|
|
|
23
23
|
if (context === null) {
|
|
@@ -25,7 +25,7 @@ const SearchButton: SearchButtonType = forwardRef(
|
|
|
25
25
|
return null;
|
|
26
26
|
}
|
|
27
27
|
|
|
28
|
-
const { size, variant
|
|
28
|
+
const { size, variant } = context;
|
|
29
29
|
|
|
30
30
|
return (
|
|
31
31
|
<Button
|
|
@@ -36,10 +36,6 @@ const SearchButton: SearchButtonType = forwardRef(
|
|
|
36
36
|
variant={variant === "secondary" ? "secondary" : "primary"}
|
|
37
37
|
className={cl("navds-search__button-search", className)}
|
|
38
38
|
disabled={context?.disabled ?? disabled}
|
|
39
|
-
onClick={(e) => {
|
|
40
|
-
onSearch?.();
|
|
41
|
-
onClick?.(e);
|
|
42
|
-
}}
|
|
43
39
|
>
|
|
44
40
|
<Search aria-hidden />
|
|
45
41
|
{children ? children : <span className="navds-sr-only">Søk</span>}
|
|
@@ -33,7 +33,6 @@ export const Default = (props) => {
|
|
|
33
33
|
<Search
|
|
34
34
|
value={props.controlled ? state : undefined}
|
|
35
35
|
onChange={props.controlled ? setState : null}
|
|
36
|
-
onSearch={(v) => console.log({ onSearch: v })}
|
|
37
36
|
label="Søk"
|
|
38
37
|
size={props.size}
|
|
39
38
|
clearButton={props.clearButton}
|
|
@@ -57,6 +57,13 @@ export const All = () => {
|
|
|
57
57
|
onChange={() => setChecked(!checked)}
|
|
58
58
|
label="Checkbox label text"
|
|
59
59
|
></ConfirmationPanel>
|
|
60
|
+
<h2>Uncontrolled</h2>
|
|
61
|
+
<ConfirmationPanel label="Checkbox label text"></ConfirmationPanel>
|
|
62
|
+
<h3>defaultChecked</h3>
|
|
63
|
+
<ConfirmationPanel
|
|
64
|
+
defaultChecked
|
|
65
|
+
label="Checkbox label text"
|
|
66
|
+
></ConfirmationPanel>
|
|
60
67
|
</div>
|
|
61
68
|
);
|
|
62
69
|
};
|
|
@@ -19,6 +19,14 @@ export const All = () => {
|
|
|
19
19
|
|
|
20
20
|
<Textarea label="In anim elit" value={value} onChange={handleChange} />
|
|
21
21
|
|
|
22
|
+
<h2>Uncontrolled</h2>
|
|
23
|
+
|
|
24
|
+
<Textarea label="In anim elit" />
|
|
25
|
+
|
|
26
|
+
<h3>defaultValue</h3>
|
|
27
|
+
|
|
28
|
+
<Textarea label="In anim elit" defaultValue="wat" />
|
|
29
|
+
|
|
22
30
|
<h2>Description</h2>
|
|
23
31
|
|
|
24
32
|
<Textarea
|
|
@@ -17,7 +17,7 @@ export const All = () => {
|
|
|
17
17
|
<ReadMore
|
|
18
18
|
open={open}
|
|
19
19
|
onClick={() => setOpen(!open)}
|
|
20
|
-
header="ReadMore header text"
|
|
20
|
+
header="ReadMore header text ReadMore header text ReadMore header text ReadMore header text ReadMore header text"
|
|
21
21
|
>
|
|
22
22
|
Magna aliquip aliquip fugiat nostrud nostrud velit pariatur veniam
|
|
23
23
|
officia laboris voluptate officia pariatur.Lorem est ex anim velit
|
|
@@ -30,6 +30,11 @@ interface ExpandableRowProps extends RowProps {
|
|
|
30
30
|
* Change handler for open
|
|
31
31
|
*/
|
|
32
32
|
onOpenChange?: (open: boolean) => void;
|
|
33
|
+
/**
|
|
34
|
+
* Disable expansion
|
|
35
|
+
* @default false
|
|
36
|
+
*/
|
|
37
|
+
expansionDisabled?: boolean;
|
|
33
38
|
}
|
|
34
39
|
|
|
35
40
|
export interface ExpandableRowType
|
|
@@ -47,6 +52,7 @@ const ExpandableRow: ExpandableRowType = forwardRef(
|
|
|
47
52
|
defaultOpen = false,
|
|
48
53
|
open,
|
|
49
54
|
onOpenChange,
|
|
55
|
+
expansionDisabled = false,
|
|
50
56
|
...rest
|
|
51
57
|
},
|
|
52
58
|
ref
|
|
@@ -71,26 +77,28 @@ const ExpandableRow: ExpandableRowType = forwardRef(
|
|
|
71
77
|
"navds-table__toggle-expand-cell--open": isOpen,
|
|
72
78
|
})}
|
|
73
79
|
>
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
80
|
+
{!expansionDisabled && (
|
|
81
|
+
<button
|
|
82
|
+
className="navds-table__toggle-expand-button"
|
|
83
|
+
aria-controls={id}
|
|
84
|
+
aria-expanded={isOpen}
|
|
85
|
+
onClick={() => {
|
|
86
|
+
onOpenChange?.(!isOpen);
|
|
87
|
+
if (open === undefined) {
|
|
88
|
+
setInternalOpen((open) => !open);
|
|
89
|
+
}
|
|
90
|
+
}}
|
|
91
|
+
>
|
|
92
|
+
<Expand
|
|
93
|
+
className="navds-table__expandable-icon"
|
|
94
|
+
title={isOpen ? "Vis mindre" : "Vis mer"}
|
|
95
|
+
/>
|
|
96
|
+
<ExpandFilled
|
|
97
|
+
className="navds-table__expandable-icon navds-table__expandable-icon--filled"
|
|
98
|
+
title={isOpen ? "Vis mindre" : "Vis mer"}
|
|
99
|
+
/>
|
|
100
|
+
</button>
|
|
101
|
+
)}
|
|
94
102
|
</DataCell>
|
|
95
103
|
{togglePlacement === "left" && children}
|
|
96
104
|
</Row>
|
|
@@ -12,7 +12,7 @@ export const Expandable = () => {
|
|
|
12
12
|
|
|
13
13
|
return (
|
|
14
14
|
<>
|
|
15
|
-
<Table>
|
|
15
|
+
<Table zebraStripes>
|
|
16
16
|
<Table.Header>
|
|
17
17
|
<Table.Row>
|
|
18
18
|
{columns.map(({ key, name }) => (
|
|
@@ -24,6 +24,7 @@ export const Expandable = () => {
|
|
|
24
24
|
<Table.Body>
|
|
25
25
|
{data.map((data) => (
|
|
26
26
|
<Table.ExpandableRow
|
|
27
|
+
expansionDisabled={data.animal === "Sel"}
|
|
27
28
|
content={data.content}
|
|
28
29
|
key={data.name}
|
|
29
30
|
togglePlacement="right"
|