@navikt/ds-react 3.2.4 → 3.3.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/popover/Popover.js +3 -3
- package/cjs/tooltip/Tooltip.js +3 -3
- package/cjs/util/copy.js +18 -63
- package/esm/popover/Popover.js +3 -3
- package/esm/popover/Popover.js.map +1 -1
- package/esm/tooltip/Tooltip.js +3 -3
- package/esm/tooltip/Tooltip.js.map +1 -1
- package/esm/util/copy.d.ts +1 -1
- package/esm/util/copy.js +18 -63
- package/esm/util/copy.js.map +1 -1
- package/package.json +3 -3
- package/src/button/button.stories.tsx +3 -3
- package/src/popover/Popover.tsx +3 -5
- package/src/tooltip/Tooltip.tsx +5 -6
- package/src/util/copy.ts +8 -75
package/cjs/popover/Popover.js
CHANGED
|
@@ -47,7 +47,7 @@ const PopoverContent_1 = __importDefault(require("./PopoverContent"));
|
|
|
47
47
|
exports.Popover = (0, react_2.forwardRef)((_a, ref) => {
|
|
48
48
|
var { className, children, anchorEl, arrow = true, open, onClose, placement = "top", offset, strategy: userStrategy = "absolute" } = _a, rest = __rest(_a, ["className", "children", "anchorEl", "arrow", "open", "onClose", "placement", "offset", "strategy"]);
|
|
49
49
|
const arrowRef = (0, react_2.useRef)(null);
|
|
50
|
-
const { x, y,
|
|
50
|
+
const { x, y, strategy, context, update, refs, placement: flPlacement, middlewareData: { arrow: { x: arrowX, y: arrowY } = {} }, } = (0, react_1.useFloating)({
|
|
51
51
|
strategy: userStrategy,
|
|
52
52
|
placement,
|
|
53
53
|
open: open,
|
|
@@ -64,9 +64,9 @@ exports.Popover = (0, react_2.forwardRef)((_a, ref) => {
|
|
|
64
64
|
(0, react_1.useDismiss)(context),
|
|
65
65
|
]);
|
|
66
66
|
(0, util_1.useClientLayoutEffect)(() => {
|
|
67
|
-
|
|
67
|
+
refs.setReference(anchorEl);
|
|
68
68
|
}, [anchorEl]);
|
|
69
|
-
const floatingRef = (0, react_2.useMemo)(() => (0, __1.mergeRefs)([
|
|
69
|
+
const floatingRef = (0, react_2.useMemo)(() => (0, __1.mergeRefs)([refs.setFloating, ref]), [refs.setFloating, ref]);
|
|
70
70
|
(0, util_1.useClientLayoutEffect)(() => {
|
|
71
71
|
if (!refs.reference.current || !refs.floating.current || !open)
|
|
72
72
|
return;
|
package/cjs/tooltip/Tooltip.js
CHANGED
|
@@ -49,7 +49,7 @@ exports.Tooltip = (0, react_2.forwardRef)((_a, ref) => {
|
|
|
49
49
|
const [open, setOpen] = (0, react_2.useState)(defaultOpen);
|
|
50
50
|
const arrowRef = (0, react_2.useRef)(null);
|
|
51
51
|
const rootElement = (_b = (0, __1.useProvider)()) === null || _b === void 0 ? void 0 : _b.rootElement;
|
|
52
|
-
const { x, y,
|
|
52
|
+
const { x, y, strategy, context, placement, middlewareData: { arrow: { x: arrowX, y: arrowY } = {}, hide: { referenceHidden } = {}, }, refs, } = (0, react_1.useFloating)({
|
|
53
53
|
placement: _placement,
|
|
54
54
|
open: userOpen !== null && userOpen !== void 0 ? userOpen : open,
|
|
55
55
|
onOpenChange: setOpen,
|
|
@@ -67,8 +67,8 @@ exports.Tooltip = (0, react_2.forwardRef)((_a, ref) => {
|
|
|
67
67
|
(0, react_1.useDismiss)(context),
|
|
68
68
|
]);
|
|
69
69
|
const ariaId = (0, util_1.useId)(id);
|
|
70
|
-
const mergedRef = (0, react_2.useMemo)(() => (0, util_1.mergeRefs)([ref,
|
|
71
|
-
const childMergedRef = (0, react_2.useMemo)(() => (0, util_1.mergeRefs)([children.ref,
|
|
70
|
+
const mergedRef = (0, react_2.useMemo)(() => (0, util_1.mergeRefs)([ref, refs.setFloating]), [refs.setFloating, ref]);
|
|
71
|
+
const childMergedRef = (0, react_2.useMemo)(() => (0, util_1.mergeRefs)([children.ref, refs.setReference]), [children, refs.setReference]);
|
|
72
72
|
if (!children ||
|
|
73
73
|
(children === null || children === void 0 ? void 0 : children.type) === react_2.default.Fragment ||
|
|
74
74
|
children === react_2.default.Fragment) {
|
package/cjs/util/copy.js
CHANGED
|
@@ -1,73 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
3
11
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
const defaultMessage = "Kopier til utklippstavle: #{key}, Enter";
|
|
5
|
-
function format(message) {
|
|
6
|
-
const copyKey = (/mac os x/i.test(navigator.userAgent) ? "⌘" : "Ctrl") + "+C";
|
|
7
|
-
return message.replace(/#{\s*key\s*}/g, copyKey);
|
|
8
|
-
}
|
|
9
12
|
function copy(text) {
|
|
10
|
-
|
|
11
|
-
debug = process.env.NODE_ENV !== "production";
|
|
12
|
-
try {
|
|
13
|
-
range = document.createRange();
|
|
14
|
-
selection = document.getSelection();
|
|
15
|
-
mark = document.createElement("span");
|
|
16
|
-
mark.textContent = text;
|
|
17
|
-
// avoid screen readers from reading out loud the text
|
|
18
|
-
mark.ariaHidden = "true";
|
|
19
|
-
// reset user styles for span element
|
|
20
|
-
mark.style.all = "unset";
|
|
21
|
-
// prevents scrolling to the end of the page
|
|
22
|
-
mark.style.position = "fixed";
|
|
23
|
-
mark.style.top = 0;
|
|
24
|
-
mark.style.clip = "rect(0, 0, 0, 0)";
|
|
25
|
-
// used to preserve spaces and line breaks
|
|
26
|
-
mark.style.whiteSpace = "pre";
|
|
27
|
-
// do not inherit user-select (it may be `none`)
|
|
28
|
-
mark.style.webkitUserSelect = "text";
|
|
29
|
-
mark.style.MozUserSelect = "text";
|
|
30
|
-
mark.style.msUserSelect = "text";
|
|
31
|
-
mark.style.userSelect = "text";
|
|
32
|
-
mark.addEventListener("copy", function (e) {
|
|
33
|
-
e.stopPropagation();
|
|
34
|
-
});
|
|
35
|
-
document.body.appendChild(mark);
|
|
36
|
-
range.selectNodeContents(mark);
|
|
37
|
-
selection.addRange(range);
|
|
38
|
-
const successful = document.execCommand("copy");
|
|
39
|
-
if (!successful) {
|
|
40
|
-
throw new Error("copy command was unsuccessful");
|
|
41
|
-
}
|
|
42
|
-
success = true;
|
|
43
|
-
}
|
|
44
|
-
catch (err) {
|
|
45
|
-
debug && console.error("unable to copy using execCommand: ", err);
|
|
46
|
-
debug && console.warn("trying IE specific stuff");
|
|
13
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
47
14
|
try {
|
|
48
|
-
|
|
49
|
-
success = true;
|
|
15
|
+
yield navigator.clipboard.writeText(text);
|
|
50
16
|
}
|
|
51
17
|
catch (err) {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
message = format(defaultMessage);
|
|
55
|
-
window.prompt(message, text);
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
finally {
|
|
59
|
-
if (selection) {
|
|
60
|
-
if (typeof selection.removeRange == "function") {
|
|
61
|
-
selection.removeRange(range);
|
|
18
|
+
if (process.env.NODE_ENV !== "production") {
|
|
19
|
+
console.error("Unable to copy using Clipboard API", err);
|
|
62
20
|
}
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
}
|
|
66
|
-
|
|
67
|
-
if (mark) {
|
|
68
|
-
document.body.removeChild(mark);
|
|
21
|
+
// Fallback for browsers that do not support the Clipboard API.
|
|
22
|
+
const copyKey = /mac os x/i.test(navigator.userAgent) ? "⌘" : "Ctrl";
|
|
23
|
+
const message = `Kopier til utklippstavle: ${copyKey}+C, Enter`;
|
|
24
|
+
window.prompt(message, text);
|
|
69
25
|
}
|
|
70
|
-
}
|
|
71
|
-
return success;
|
|
26
|
+
});
|
|
72
27
|
}
|
|
73
28
|
exports.default = copy;
|
package/esm/popover/Popover.js
CHANGED
|
@@ -18,7 +18,7 @@ import PopoverContent from "./PopoverContent";
|
|
|
18
18
|
export const Popover = forwardRef((_a, ref) => {
|
|
19
19
|
var { className, children, anchorEl, arrow = true, open, onClose, placement = "top", offset, strategy: userStrategy = "absolute" } = _a, rest = __rest(_a, ["className", "children", "anchorEl", "arrow", "open", "onClose", "placement", "offset", "strategy"]);
|
|
20
20
|
const arrowRef = useRef(null);
|
|
21
|
-
const { x, y,
|
|
21
|
+
const { x, y, strategy, context, update, refs, placement: flPlacement, middlewareData: { arrow: { x: arrowX, y: arrowY } = {} }, } = useFloating({
|
|
22
22
|
strategy: userStrategy,
|
|
23
23
|
placement,
|
|
24
24
|
open: open,
|
|
@@ -35,9 +35,9 @@ export const Popover = forwardRef((_a, ref) => {
|
|
|
35
35
|
useDismiss(context),
|
|
36
36
|
]);
|
|
37
37
|
useClientLayoutEffect(() => {
|
|
38
|
-
|
|
38
|
+
refs.setReference(anchorEl);
|
|
39
39
|
}, [anchorEl]);
|
|
40
|
-
const floatingRef = useMemo(() => mergeRefs([
|
|
40
|
+
const floatingRef = useMemo(() => mergeRefs([refs.setFloating, ref]), [refs.setFloating, ref]);
|
|
41
41
|
useClientLayoutEffect(() => {
|
|
42
42
|
if (!refs.reference.current || !refs.floating.current || !open)
|
|
43
43
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Popover.js","sourceRoot":"","sources":["../../src/popover/Popover.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EACL,KAAK,IAAI,OAAO,EAChB,UAAU,EACV,IAAI,EACJ,MAAM,IAAI,QAAQ,EAClB,KAAK,EACL,QAAQ,EACR,UAAU,EACV,WAAW,EACX,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,KAAK,EAAE,EACZ,UAAU,EAEV,WAAW,EACX,OAAO,EACP,MAAM,GACP,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,SAAS,EAAE,MAAM,IAAI,CAAC;AAC/B,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAClE,OAAO,cAAsC,MAAM,kBAAkB,CAAC;AA8DtE,MAAM,CAAC,MAAM,OAAO,GAAG,UAAU,CAC/B,CACE,EAWC,EACD,GAAG,EACH,EAAE;QAbF,EACE,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,KAAK,GAAG,IAAI,EACZ,IAAI,EACJ,OAAO,EACP,SAAS,GAAG,KAAK,EACjB,MAAM,EACN,QAAQ,EAAE,YAAY,GAAG,UAAU,OAEpC,EADI,IAAI,cAVT,oGAWC,CADQ;IAIT,MAAM,QAAQ,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IAErD,MAAM,EACJ,CAAC,EACD,CAAC,EACD,
|
|
1
|
+
{"version":3,"file":"Popover.js","sourceRoot":"","sources":["../../src/popover/Popover.tsx"],"names":[],"mappings":"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"}
|
package/esm/tooltip/Tooltip.js
CHANGED
|
@@ -20,7 +20,7 @@ export const Tooltip = forwardRef((_a, ref) => {
|
|
|
20
20
|
const [open, setOpen] = useState(defaultOpen);
|
|
21
21
|
const arrowRef = useRef(null);
|
|
22
22
|
const rootElement = (_b = useProvider()) === null || _b === void 0 ? void 0 : _b.rootElement;
|
|
23
|
-
const { x, y,
|
|
23
|
+
const { x, y, strategy, context, placement, middlewareData: { arrow: { x: arrowX, y: arrowY } = {}, hide: { referenceHidden } = {}, }, refs, } = useFloating({
|
|
24
24
|
placement: _placement,
|
|
25
25
|
open: userOpen !== null && userOpen !== void 0 ? userOpen : open,
|
|
26
26
|
onOpenChange: setOpen,
|
|
@@ -38,8 +38,8 @@ export const Tooltip = forwardRef((_a, ref) => {
|
|
|
38
38
|
useDismiss(context),
|
|
39
39
|
]);
|
|
40
40
|
const ariaId = useId(id);
|
|
41
|
-
const mergedRef = useMemo(() => mergeRefs([ref,
|
|
42
|
-
const childMergedRef = useMemo(() => mergeRefs([children.ref,
|
|
41
|
+
const mergedRef = useMemo(() => mergeRefs([ref, refs.setFloating]), [refs.setFloating, ref]);
|
|
42
|
+
const childMergedRef = useMemo(() => mergeRefs([children.ref, refs.setReference]), [children, refs.setReference]);
|
|
43
43
|
if (!children ||
|
|
44
44
|
(children === null || children === void 0 ? void 0 : children.type) === React.Fragment ||
|
|
45
45
|
children === React.Fragment) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tooltip.js","sourceRoot":"","sources":["../../src/tooltip/Tooltip.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,EACL,KAAK,IAAI,OAAO,EAChB,UAAU,EACV,IAAI,EACJ,cAAc,EACd,MAAM,EACN,WAAW,EACX,KAAK,EACL,UAAU,EACV,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,eAAe,GAChB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,MAAM,MAAM,CAAC;AACtB,OAAO,KAAK,EAAE,EACZ,YAAY,EACZ,UAAU,EAEV,OAAO,EACP,MAAM,EACN,QAAQ,GACT,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AACzC,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAqD3C,MAAM,CAAC,MAAM,OAAO,GAAG,UAAU,CAC/B,CACE,EAcC,EACD,GAAG,EACH,EAAE;;QAhBF,EACE,QAAQ,EACR,SAAS,EACT,KAAK,EAAE,MAAM,GAAG,IAAI,EACpB,SAAS,EAAE,UAAU,GAAG,KAAK,EAC7B,IAAI,EAAE,QAAQ,EACd,WAAW,GAAG,KAAK,EACnB,MAAM,EAAE,OAAO,EACf,OAAO,EACP,KAAK,GAAG,GAAG,EACX,EAAE,EACF,IAAI,EACJ,OAAO,GAAG,EAAE,OAEb,EADI,IAAI,cAbT,6HAcC,CADQ;IAIT,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,QAAQ,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IACrD,MAAM,WAAW,GAAG,MAAA,WAAW,EAAE,0CAAE,WAAW,CAAC;IAE/C,MAAM,EACJ,CAAC,EACD,CAAC,EACD,
|
|
1
|
+
{"version":3,"file":"Tooltip.js","sourceRoot":"","sources":["../../src/tooltip/Tooltip.tsx"],"names":[],"mappings":"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"}
|
package/esm/util/copy.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export default function copy(text:
|
|
1
|
+
export default function copy(text: string): Promise<void>;
|
package/esm/util/copy.js
CHANGED
|
@@ -1,71 +1,26 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
function
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
}
|
|
1
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
2
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
3
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
4
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
5
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
6
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
7
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
8
|
+
});
|
|
9
|
+
};
|
|
7
10
|
export default function copy(text) {
|
|
8
|
-
|
|
9
|
-
debug = process.env.NODE_ENV !== "production";
|
|
10
|
-
try {
|
|
11
|
-
range = document.createRange();
|
|
12
|
-
selection = document.getSelection();
|
|
13
|
-
mark = document.createElement("span");
|
|
14
|
-
mark.textContent = text;
|
|
15
|
-
// avoid screen readers from reading out loud the text
|
|
16
|
-
mark.ariaHidden = "true";
|
|
17
|
-
// reset user styles for span element
|
|
18
|
-
mark.style.all = "unset";
|
|
19
|
-
// prevents scrolling to the end of the page
|
|
20
|
-
mark.style.position = "fixed";
|
|
21
|
-
mark.style.top = 0;
|
|
22
|
-
mark.style.clip = "rect(0, 0, 0, 0)";
|
|
23
|
-
// used to preserve spaces and line breaks
|
|
24
|
-
mark.style.whiteSpace = "pre";
|
|
25
|
-
// do not inherit user-select (it may be `none`)
|
|
26
|
-
mark.style.webkitUserSelect = "text";
|
|
27
|
-
mark.style.MozUserSelect = "text";
|
|
28
|
-
mark.style.msUserSelect = "text";
|
|
29
|
-
mark.style.userSelect = "text";
|
|
30
|
-
mark.addEventListener("copy", function (e) {
|
|
31
|
-
e.stopPropagation();
|
|
32
|
-
});
|
|
33
|
-
document.body.appendChild(mark);
|
|
34
|
-
range.selectNodeContents(mark);
|
|
35
|
-
selection.addRange(range);
|
|
36
|
-
const successful = document.execCommand("copy");
|
|
37
|
-
if (!successful) {
|
|
38
|
-
throw new Error("copy command was unsuccessful");
|
|
39
|
-
}
|
|
40
|
-
success = true;
|
|
41
|
-
}
|
|
42
|
-
catch (err) {
|
|
43
|
-
debug && console.error("unable to copy using execCommand: ", err);
|
|
44
|
-
debug && console.warn("trying IE specific stuff");
|
|
11
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
45
12
|
try {
|
|
46
|
-
|
|
47
|
-
success = true;
|
|
13
|
+
yield navigator.clipboard.writeText(text);
|
|
48
14
|
}
|
|
49
15
|
catch (err) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
message = format(defaultMessage);
|
|
53
|
-
window.prompt(message, text);
|
|
54
|
-
}
|
|
55
|
-
}
|
|
56
|
-
finally {
|
|
57
|
-
if (selection) {
|
|
58
|
-
if (typeof selection.removeRange == "function") {
|
|
59
|
-
selection.removeRange(range);
|
|
16
|
+
if (process.env.NODE_ENV !== "production") {
|
|
17
|
+
console.error("Unable to copy using Clipboard API", err);
|
|
60
18
|
}
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
if (mark) {
|
|
66
|
-
document.body.removeChild(mark);
|
|
19
|
+
// Fallback for browsers that do not support the Clipboard API.
|
|
20
|
+
const copyKey = /mac os x/i.test(navigator.userAgent) ? "⌘" : "Ctrl";
|
|
21
|
+
const message = `Kopier til utklippstavle: ${copyKey}+C, Enter`;
|
|
22
|
+
window.prompt(message, text);
|
|
67
23
|
}
|
|
68
|
-
}
|
|
69
|
-
return success;
|
|
24
|
+
});
|
|
70
25
|
}
|
|
71
26
|
//# sourceMappingURL=copy.js.map
|
package/esm/util/copy.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copy.js","sourceRoot":"","sources":["../../src/util/copy.ts"],"names":[],"mappings":"AAAA,
|
|
1
|
+
{"version":3,"file":"copy.js","sourceRoot":"","sources":["../../src/util/copy.ts"],"names":[],"mappings":";;;;;;;;;AAAA,MAAM,CAAC,OAAO,UAAgB,IAAI,CAAC,IAAY;;QAC7C,IAAI;YACF,MAAM,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SAC3C;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE;gBACzC,OAAO,CAAC,KAAK,CAAC,oCAAoC,EAAE,GAAG,CAAC,CAAC;aAC1D;YAED,+DAA+D;YAC/D,MAAM,OAAO,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC;YACrE,MAAM,OAAO,GAAG,6BAA6B,OAAO,WAAW,CAAC;YAChE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;SAC9B;IACH,CAAC;CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@navikt/ds-react",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.3.1",
|
|
4
4
|
"description": "Aksel react-components for NAV designsystem",
|
|
5
5
|
"author": "Aksel | NAV designsystem team",
|
|
6
6
|
"license": "MIT",
|
|
@@ -37,8 +37,8 @@
|
|
|
37
37
|
"test": "TZ=UTC jest"
|
|
38
38
|
},
|
|
39
39
|
"dependencies": {
|
|
40
|
-
"@floating-ui/react": "0.
|
|
41
|
-
"@navikt/aksel-icons": "^3.
|
|
40
|
+
"@floating-ui/react": "0.24.1",
|
|
41
|
+
"@navikt/aksel-icons": "^3.3.1",
|
|
42
42
|
"@radix-ui/react-tabs": "1.0.0",
|
|
43
43
|
"@radix-ui/react-toggle-group": "1.0.0",
|
|
44
44
|
"clsx": "^1.2.1",
|
|
@@ -123,7 +123,7 @@ export const Link = () => (
|
|
|
123
123
|
|
|
124
124
|
export const Loading = {
|
|
125
125
|
render: () => (
|
|
126
|
-
<div className="colgap">
|
|
126
|
+
<div className="colgap chromatic-ignore">
|
|
127
127
|
<div className="rowgap">
|
|
128
128
|
{variants.map((variant) => (
|
|
129
129
|
<Button key={variant} variant={variant} loading>
|
|
@@ -153,7 +153,7 @@ export const Loading = {
|
|
|
153
153
|
};
|
|
154
154
|
|
|
155
155
|
export const Icon = () => (
|
|
156
|
-
<div className="colgap">
|
|
156
|
+
<div className="colgap ">
|
|
157
157
|
<div className="rowgap">
|
|
158
158
|
{variants.map((variant) => (
|
|
159
159
|
<Button
|
|
@@ -250,7 +250,7 @@ export const Disabled = () => (
|
|
|
250
250
|
|
|
251
251
|
export const LoadingWithAs = {
|
|
252
252
|
render: () => (
|
|
253
|
-
<div className="colgap">
|
|
253
|
+
<div className="colgap chromatic-ignore">
|
|
254
254
|
<div className="rowgap">
|
|
255
255
|
{variants.map((variant) => (
|
|
256
256
|
<Button key={variant} variant={variant} loading size="small">
|
package/src/popover/Popover.tsx
CHANGED
|
@@ -102,8 +102,6 @@ export const Popover = forwardRef<HTMLDivElement, PopoverProps>(
|
|
|
102
102
|
const {
|
|
103
103
|
x,
|
|
104
104
|
y,
|
|
105
|
-
reference,
|
|
106
|
-
floating,
|
|
107
105
|
strategy,
|
|
108
106
|
context,
|
|
109
107
|
update,
|
|
@@ -129,12 +127,12 @@ export const Popover = forwardRef<HTMLDivElement, PopoverProps>(
|
|
|
129
127
|
]);
|
|
130
128
|
|
|
131
129
|
useClientLayoutEffect(() => {
|
|
132
|
-
|
|
130
|
+
refs.setReference(anchorEl);
|
|
133
131
|
}, [anchorEl]);
|
|
134
132
|
|
|
135
133
|
const floatingRef = useMemo(
|
|
136
|
-
() => mergeRefs([
|
|
137
|
-
[
|
|
134
|
+
() => mergeRefs([refs.setFloating, ref]),
|
|
135
|
+
[refs.setFloating, ref]
|
|
138
136
|
);
|
|
139
137
|
|
|
140
138
|
useClientLayoutEffect(() => {
|
package/src/tooltip/Tooltip.tsx
CHANGED
|
@@ -101,8 +101,6 @@ export const Tooltip = forwardRef<HTMLDivElement, TooltipProps>(
|
|
|
101
101
|
const {
|
|
102
102
|
x,
|
|
103
103
|
y,
|
|
104
|
-
reference,
|
|
105
|
-
floating,
|
|
106
104
|
strategy,
|
|
107
105
|
context,
|
|
108
106
|
placement,
|
|
@@ -110,6 +108,7 @@ export const Tooltip = forwardRef<HTMLDivElement, TooltipProps>(
|
|
|
110
108
|
arrow: { x: arrowX, y: arrowY } = {},
|
|
111
109
|
hide: { referenceHidden } = {},
|
|
112
110
|
},
|
|
111
|
+
refs,
|
|
113
112
|
} = useFloating({
|
|
114
113
|
placement: _placement,
|
|
115
114
|
open: userOpen ?? open,
|
|
@@ -132,12 +131,12 @@ export const Tooltip = forwardRef<HTMLDivElement, TooltipProps>(
|
|
|
132
131
|
const ariaId = useId(id);
|
|
133
132
|
|
|
134
133
|
const mergedRef = useMemo(
|
|
135
|
-
() => mergeRefs([ref,
|
|
136
|
-
[
|
|
134
|
+
() => mergeRefs([ref, refs.setFloating]),
|
|
135
|
+
[refs.setFloating, ref]
|
|
137
136
|
);
|
|
138
137
|
const childMergedRef = useMemo(
|
|
139
|
-
() => mergeRefs([(children as any).ref,
|
|
140
|
-
[children,
|
|
138
|
+
() => mergeRefs([(children as any).ref, refs.setReference]),
|
|
139
|
+
[children, refs.setReference]
|
|
141
140
|
);
|
|
142
141
|
|
|
143
142
|
if (
|
package/src/util/copy.ts
CHANGED
|
@@ -1,81 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const defaultMessage = "Kopier til utklippstavle: #{key}, Enter";
|
|
4
|
-
|
|
5
|
-
function format(message) {
|
|
6
|
-
const copyKey = (/mac os x/i.test(navigator.userAgent) ? "⌘" : "Ctrl") + "+C";
|
|
7
|
-
return message.replace(/#{\s*key\s*}/g, copyKey);
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
export default function copy(text) {
|
|
11
|
-
let debug,
|
|
12
|
-
message,
|
|
13
|
-
range,
|
|
14
|
-
selection,
|
|
15
|
-
mark,
|
|
16
|
-
success = false;
|
|
17
|
-
debug = process.env.NODE_ENV !== "production";
|
|
1
|
+
export default async function copy(text: string): Promise<void> {
|
|
18
2
|
try {
|
|
19
|
-
|
|
20
|
-
selection = document.getSelection();
|
|
21
|
-
|
|
22
|
-
mark = document.createElement("span");
|
|
23
|
-
mark.textContent = text;
|
|
24
|
-
// avoid screen readers from reading out loud the text
|
|
25
|
-
mark.ariaHidden = "true";
|
|
26
|
-
// reset user styles for span element
|
|
27
|
-
mark.style.all = "unset";
|
|
28
|
-
// prevents scrolling to the end of the page
|
|
29
|
-
mark.style.position = "fixed";
|
|
30
|
-
mark.style.top = 0;
|
|
31
|
-
mark.style.clip = "rect(0, 0, 0, 0)";
|
|
32
|
-
// used to preserve spaces and line breaks
|
|
33
|
-
mark.style.whiteSpace = "pre";
|
|
34
|
-
// do not inherit user-select (it may be `none`)
|
|
35
|
-
mark.style.webkitUserSelect = "text";
|
|
36
|
-
mark.style.MozUserSelect = "text";
|
|
37
|
-
mark.style.msUserSelect = "text";
|
|
38
|
-
mark.style.userSelect = "text";
|
|
39
|
-
mark.addEventListener("copy", function (e) {
|
|
40
|
-
e.stopPropagation();
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
document.body.appendChild(mark);
|
|
44
|
-
|
|
45
|
-
range.selectNodeContents(mark);
|
|
46
|
-
selection.addRange(range);
|
|
47
|
-
|
|
48
|
-
const successful = document.execCommand("copy");
|
|
49
|
-
if (!successful) {
|
|
50
|
-
throw new Error("copy command was unsuccessful");
|
|
51
|
-
}
|
|
52
|
-
success = true;
|
|
3
|
+
await navigator.clipboard.writeText(text);
|
|
53
4
|
} catch (err) {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
try {
|
|
57
|
-
(window as any).clipboardData.setData("text", text);
|
|
58
|
-
|
|
59
|
-
success = true;
|
|
60
|
-
} catch (err) {
|
|
61
|
-
debug && console.error("unable to copy using clipboardData: ", err);
|
|
62
|
-
debug && console.error("falling back to prompt");
|
|
63
|
-
message = format(defaultMessage);
|
|
64
|
-
window.prompt(message, text);
|
|
65
|
-
}
|
|
66
|
-
} finally {
|
|
67
|
-
if (selection) {
|
|
68
|
-
if (typeof selection.removeRange == "function") {
|
|
69
|
-
selection.removeRange(range);
|
|
70
|
-
} else {
|
|
71
|
-
selection.removeAllRanges();
|
|
72
|
-
}
|
|
5
|
+
if (process.env.NODE_ENV !== "production") {
|
|
6
|
+
console.error("Unable to copy using Clipboard API", err);
|
|
73
7
|
}
|
|
74
8
|
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
}
|
|
9
|
+
// Fallback for browsers that do not support the Clipboard API.
|
|
10
|
+
const copyKey = /mac os x/i.test(navigator.userAgent) ? "⌘" : "Ctrl";
|
|
11
|
+
const message = `Kopier til utklippstavle: ${copyKey}+C, Enter`;
|
|
12
|
+
window.prompt(message, text);
|
|
78
13
|
}
|
|
79
|
-
|
|
80
|
-
return success;
|
|
81
14
|
}
|