@navikt/ds-react 7.32.1 → 7.32.3
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/copybutton/CopyButton.js +4 -9
- package/cjs/copybutton/CopyButton.js.map +1 -1
- package/cjs/form/combobox/Combobox.js +1 -3
- package/cjs/form/combobox/Combobox.js.map +1 -1
- package/cjs/form/combobox/ComboboxWrapper.d.ts +1 -2
- package/cjs/form/combobox/ComboboxWrapper.js +1 -2
- package/cjs/form/combobox/ComboboxWrapper.js.map +1 -1
- package/cjs/form/combobox/FilteredOptions/FilteredOptions.js +28 -19
- package/cjs/form/combobox/FilteredOptions/FilteredOptions.js.map +1 -1
- package/cjs/form/combobox/FilteredOptions/FilteredOptionsItem.js +4 -0
- package/cjs/form/combobox/FilteredOptions/FilteredOptionsItem.js.map +1 -1
- package/cjs/form/combobox/FilteredOptions/useVirtualFocus.js.map +1 -1
- package/cjs/form/combobox/Input/Input.context.d.ts +2 -0
- package/cjs/form/combobox/Input/Input.context.js +4 -1
- package/cjs/form/combobox/Input/Input.context.js.map +1 -1
- package/cjs/form/combobox/Input/InputController.js +2 -2
- package/cjs/form/combobox/Input/InputController.js.map +1 -1
- package/cjs/form/switch/Switch.js +3 -3
- package/cjs/form/switch/Switch.js.map +1 -1
- package/cjs/help-text/HelpText.js +3 -3
- package/cjs/help-text/HelpText.js.map +1 -1
- package/cjs/help-text/HelpTextIcon.d.ts +1 -2
- package/cjs/help-text/HelpTextIcon.js +3 -7
- package/cjs/help-text/HelpTextIcon.js.map +1 -1
- package/cjs/layout/page/parts/PageBlock.d.ts +9 -6
- package/cjs/layout/page/parts/PageBlock.js.map +1 -1
- package/cjs/modal/ModalUtils.js +6 -4
- package/cjs/modal/ModalUtils.js.map +1 -1
- package/cjs/overlays/dismissablelayer/DismissableLayer.js +9 -19
- package/cjs/overlays/dismissablelayer/DismissableLayer.js.map +1 -1
- package/cjs/overlays/dismissablelayer/util/usePointerDownOutside.js +5 -4
- package/cjs/overlays/dismissablelayer/util/usePointerDownOutside.js.map +1 -1
- package/cjs/overlays/floating-menu/Menu.d.ts +4 -4
- package/cjs/overlays/floating-menu/Menu.js +7 -4
- package/cjs/overlays/floating-menu/Menu.js.map +1 -1
- package/cjs/overlays/floating-menu/parts/RovingFocus.js +3 -3
- package/cjs/overlays/floating-menu/parts/RovingFocus.js.map +1 -1
- package/cjs/overlays/overlay/hooks/useAnimationsFinished.js +1 -1
- package/cjs/overlays/overlay/hooks/useAnimationsFinished.js.map +1 -1
- package/cjs/overlays/overlay/hooks/useOpenChangeAnimationComplete.js +2 -2
- package/cjs/overlays/overlay/hooks/useOpenChangeAnimationComplete.js.map +1 -1
- package/cjs/popover/Popover.js +1 -1
- package/cjs/popover/Popover.js.map +1 -1
- package/cjs/progress-bar/ProgressBar.js +9 -6
- package/cjs/progress-bar/ProgressBar.js.map +1 -1
- package/cjs/table/AnimateHeight.js +12 -13
- package/cjs/table/AnimateHeight.js.map +1 -1
- package/cjs/tabs/parts/tablist/useScrollButtons.d.ts +1 -1
- package/cjs/tabs/parts/tablist/useScrollButtons.js +4 -4
- package/cjs/tabs/parts/tablist/useScrollButtons.js.map +1 -1
- package/cjs/util/TextareaAutoSize.js +3 -10
- package/cjs/util/TextareaAutoSize.js.map +1 -1
- package/cjs/util/create-context.d.ts +0 -1
- package/cjs/util/create-context.js.map +1 -1
- package/cjs/util/debounce.d.ts +1 -1
- package/cjs/util/debounce.js +5 -8
- package/cjs/util/debounce.js.map +1 -1
- package/cjs/util/detectBrowser.d.ts +2 -0
- package/cjs/util/detectBrowser.js +7 -0
- package/cjs/util/detectBrowser.js.map +1 -0
- package/cjs/util/focus-boundary/FocusBoundary.d.ts +44 -0
- package/cjs/util/focus-boundary/FocusBoundary.js +365 -0
- package/cjs/util/focus-boundary/FocusBoundary.js.map +1 -0
- package/cjs/util/focus-guards/FocusGuards.d.ts +8 -0
- package/cjs/util/focus-guards/FocusGuards.js +36 -0
- package/cjs/util/focus-guards/FocusGuards.js.map +1 -0
- package/cjs/util/hooks/descendants/useDescendant.js +3 -0
- package/cjs/util/hooks/descendants/useDescendant.js.map +1 -1
- package/cjs/util/hooks/useEventCallback.js.map +1 -0
- package/cjs/{overlays/overlay → util}/hooks/useLatestRef.js +3 -2
- package/cjs/util/hooks/useLatestRef.js.map +1 -0
- package/cjs/util/hooks/useRefWithInit.js.map +1 -0
- package/cjs/util/hooks/useTimeout.d.ts +16 -0
- package/cjs/util/hooks/useTimeout.js +49 -0
- package/cjs/util/hooks/useTimeout.js.map +1 -0
- package/cjs/util/link-anchor/LinkAnchor.js +6 -7
- package/cjs/util/link-anchor/LinkAnchor.js.map +1 -1
- package/cjs/util/owner.d.ts +29 -0
- package/cjs/util/owner.js +38 -0
- package/cjs/util/owner.js.map +1 -0
- package/esm/copybutton/CopyButton.js +5 -10
- package/esm/copybutton/CopyButton.js.map +1 -1
- package/esm/form/combobox/Combobox.js +1 -3
- package/esm/form/combobox/Combobox.js.map +1 -1
- package/esm/form/combobox/ComboboxWrapper.d.ts +1 -2
- package/esm/form/combobox/ComboboxWrapper.js +1 -2
- package/esm/form/combobox/ComboboxWrapper.js.map +1 -1
- package/esm/form/combobox/FilteredOptions/FilteredOptions.js +29 -20
- package/esm/form/combobox/FilteredOptions/FilteredOptions.js.map +1 -1
- package/esm/form/combobox/FilteredOptions/FilteredOptionsItem.js +4 -0
- package/esm/form/combobox/FilteredOptions/FilteredOptionsItem.js.map +1 -1
- package/esm/form/combobox/FilteredOptions/useVirtualFocus.js.map +1 -1
- package/esm/form/combobox/Input/Input.context.d.ts +2 -0
- package/esm/form/combobox/Input/Input.context.js +4 -1
- package/esm/form/combobox/Input/Input.context.js.map +1 -1
- package/esm/form/combobox/Input/InputController.js +2 -2
- package/esm/form/combobox/Input/InputController.js.map +1 -1
- package/esm/form/switch/Switch.js +3 -3
- package/esm/form/switch/Switch.js.map +1 -1
- package/esm/help-text/HelpText.js +3 -3
- package/esm/help-text/HelpText.js.map +1 -1
- package/esm/help-text/HelpTextIcon.d.ts +1 -2
- package/esm/help-text/HelpTextIcon.js +3 -7
- package/esm/help-text/HelpTextIcon.js.map +1 -1
- package/esm/layout/page/parts/PageBlock.d.ts +9 -6
- package/esm/layout/page/parts/PageBlock.js.map +1 -1
- package/esm/modal/ModalUtils.js +6 -4
- package/esm/modal/ModalUtils.js.map +1 -1
- package/esm/overlays/dismissablelayer/DismissableLayer.js +9 -19
- package/esm/overlays/dismissablelayer/DismissableLayer.js.map +1 -1
- package/esm/overlays/dismissablelayer/util/usePointerDownOutside.js +5 -4
- package/esm/overlays/dismissablelayer/util/usePointerDownOutside.js.map +1 -1
- package/esm/overlays/floating-menu/Menu.d.ts +4 -4
- package/esm/overlays/floating-menu/Menu.js +7 -4
- package/esm/overlays/floating-menu/Menu.js.map +1 -1
- package/esm/overlays/floating-menu/parts/RovingFocus.js +3 -3
- package/esm/overlays/floating-menu/parts/RovingFocus.js.map +1 -1
- package/esm/overlays/overlay/hooks/useAnimationsFinished.js +1 -1
- package/esm/overlays/overlay/hooks/useAnimationsFinished.js.map +1 -1
- package/esm/overlays/overlay/hooks/useOpenChangeAnimationComplete.js +2 -2
- package/esm/overlays/overlay/hooks/useOpenChangeAnimationComplete.js.map +1 -1
- package/esm/popover/Popover.js +1 -1
- package/esm/popover/Popover.js.map +1 -1
- package/esm/progress-bar/ProgressBar.js +10 -7
- package/esm/progress-bar/ProgressBar.js.map +1 -1
- package/esm/table/AnimateHeight.js +12 -13
- package/esm/table/AnimateHeight.js.map +1 -1
- package/esm/tabs/parts/tablist/useScrollButtons.d.ts +1 -1
- package/esm/tabs/parts/tablist/useScrollButtons.js +4 -4
- package/esm/tabs/parts/tablist/useScrollButtons.js.map +1 -1
- package/esm/util/TextareaAutoSize.js +1 -8
- package/esm/util/TextareaAutoSize.js.map +1 -1
- package/esm/util/create-context.d.ts +0 -1
- package/esm/util/create-context.js.map +1 -1
- package/esm/util/debounce.d.ts +1 -1
- package/esm/util/debounce.js +5 -8
- package/esm/util/debounce.js.map +1 -1
- package/esm/util/detectBrowser.d.ts +2 -0
- package/esm/util/detectBrowser.js +4 -0
- package/esm/util/detectBrowser.js.map +1 -0
- package/esm/util/focus-boundary/FocusBoundary.d.ts +44 -0
- package/esm/util/focus-boundary/FocusBoundary.js +329 -0
- package/esm/util/focus-boundary/FocusBoundary.js.map +1 -0
- package/esm/util/focus-guards/FocusGuards.d.ts +8 -0
- package/esm/util/focus-guards/FocusGuards.js +31 -0
- package/esm/util/focus-guards/FocusGuards.js.map +1 -0
- package/esm/util/hooks/descendants/useDescendant.js +3 -0
- package/esm/util/hooks/descendants/useDescendant.js.map +1 -1
- package/esm/util/hooks/useEventCallback.js.map +1 -0
- package/esm/{overlays/overlay → util}/hooks/useLatestRef.js +2 -1
- package/esm/util/hooks/useLatestRef.js.map +1 -0
- package/esm/util/hooks/useRefWithInit.js.map +1 -0
- package/esm/util/hooks/useTimeout.d.ts +16 -0
- package/esm/util/hooks/useTimeout.js +45 -0
- package/esm/util/hooks/useTimeout.js.map +1 -0
- package/esm/util/link-anchor/LinkAnchor.js +6 -7
- package/esm/util/link-anchor/LinkAnchor.js.map +1 -1
- package/esm/util/owner.d.ts +29 -0
- package/esm/util/owner.js +35 -0
- package/esm/util/owner.js.map +1 -0
- package/package.json +8 -8
- package/src/copybutton/CopyButton.tsx +5 -17
- package/src/form/combobox/Combobox.tsx +0 -4
- package/src/form/combobox/ComboboxWrapper.tsx +0 -3
- package/src/form/combobox/FilteredOptions/FilteredOptions.tsx +65 -45
- package/src/form/combobox/FilteredOptions/FilteredOptionsItem.tsx +4 -0
- package/src/form/combobox/FilteredOptions/useVirtualFocus.ts +1 -0
- package/src/form/combobox/Input/Input.context.tsx +5 -0
- package/src/form/combobox/Input/InputController.tsx +2 -1
- package/src/form/file-upload/parts/item/utils/format-file-size.test.ts +2 -2
- package/src/form/switch/Switch.tsx +4 -4
- package/src/help-text/HelpText.tsx +3 -2
- package/src/help-text/HelpTextIcon.tsx +2 -12
- package/src/layout/page/parts/PageBlock.tsx +9 -6
- package/src/modal/ModalUtils.ts +7 -4
- package/src/overlays/dismissablelayer/DismissableLayer.tsx +9 -18
- package/src/overlays/dismissablelayer/util/usePointerDownOutside.ts +5 -4
- package/src/overlays/floating-menu/Menu.tsx +13 -9
- package/src/overlays/floating-menu/parts/RovingFocus.tsx +3 -3
- package/src/overlays/overlay/hooks/useAnimationsFinished.ts +1 -1
- package/src/overlays/overlay/hooks/useOpenChangeAnimationComplete.ts +2 -2
- package/src/popover/Popover.tsx +1 -1
- package/src/progress-bar/ProgressBar.tsx +12 -10
- package/src/table/AnimateHeight.tsx +12 -15
- package/src/tabs/parts/tablist/useScrollButtons.ts +4 -3
- package/src/util/TextareaAutoSize.tsx +1 -9
- package/src/util/create-context.tsx +0 -1
- package/src/util/debounce.ts +7 -8
- package/src/util/detectBrowser.ts +5 -0
- package/src/util/focus-boundary/FocusBoundary.tsx +453 -0
- package/src/util/focus-guards/FocusGuards.tsx +56 -0
- package/src/util/hooks/descendants/useDescendant.tsx +3 -0
- package/src/{overlays/overlay → util}/hooks/useLatestRef.ts +2 -1
- package/src/util/hooks/useTimeout.ts +54 -0
- package/src/util/link-anchor/LinkAnchor.tsx +7 -6
- package/src/util/owner.ts +35 -0
- package/cjs/overlays/floating-menu/parts/FocusScope.d.ts +0 -22
- package/cjs/overlays/floating-menu/parts/FocusScope.js +0 -98
- package/cjs/overlays/floating-menu/parts/FocusScope.js.map +0 -1
- package/cjs/overlays/overlay/hooks/useEventCallback.js.map +0 -1
- package/cjs/overlays/overlay/hooks/useLatestRef.js.map +0 -1
- package/cjs/overlays/overlay/hooks/useRefWithInit.js.map +0 -1
- package/esm/overlays/floating-menu/parts/FocusScope.d.ts +0 -22
- package/esm/overlays/floating-menu/parts/FocusScope.js +0 -62
- package/esm/overlays/floating-menu/parts/FocusScope.js.map +0 -1
- package/esm/overlays/overlay/hooks/useEventCallback.js.map +0 -1
- package/esm/overlays/overlay/hooks/useLatestRef.js.map +0 -1
- package/esm/overlays/overlay/hooks/useRefWithInit.js.map +0 -1
- package/src/overlays/floating-menu/parts/FocusScope.tsx +0 -83
- /package/cjs/{overlays/overlay → util}/hooks/useEventCallback.d.ts +0 -0
- /package/cjs/{overlays/overlay → util}/hooks/useEventCallback.js +0 -0
- /package/cjs/{overlays/overlay → util}/hooks/useLatestRef.d.ts +0 -0
- /package/cjs/{overlays/overlay → util}/hooks/useRefWithInit.d.ts +0 -0
- /package/cjs/{overlays/overlay → util}/hooks/useRefWithInit.js +0 -0
- /package/esm/{overlays/overlay → util}/hooks/useEventCallback.d.ts +0 -0
- /package/esm/{overlays/overlay → util}/hooks/useEventCallback.js +0 -0
- /package/esm/{overlays/overlay → util}/hooks/useLatestRef.d.ts +0 -0
- /package/esm/{overlays/overlay → util}/hooks/useRefWithInit.d.ts +0 -0
- /package/esm/{overlays/overlay → util}/hooks/useRefWithInit.js +0 -0
- /package/src/{overlays/overlay → util}/hooks/useEventCallback.ts +0 -0
- /package/src/{overlays/overlay → util}/hooks/useRefWithInit.ts +0 -0
|
@@ -0,0 +1,36 @@
|
|
|
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.FocusGuards = FocusGuards;
|
|
7
|
+
const react_1 = __importDefault(require("react"));
|
|
8
|
+
const hooks_1 = require("../hooks");
|
|
9
|
+
const visuallyHidden = {
|
|
10
|
+
clip: "rect(0 0 0 0)",
|
|
11
|
+
overflow: "hidden",
|
|
12
|
+
whiteSpace: "nowrap",
|
|
13
|
+
position: "fixed",
|
|
14
|
+
top: 0,
|
|
15
|
+
left: 0,
|
|
16
|
+
border: 0,
|
|
17
|
+
padding: 0,
|
|
18
|
+
width: 1,
|
|
19
|
+
height: 1,
|
|
20
|
+
margin: -1,
|
|
21
|
+
};
|
|
22
|
+
function FocusGuards({ children, startRef: forwardedStartRef, endRef: forwardedEndRef, }) {
|
|
23
|
+
const startRef = react_1.default.useRef(null);
|
|
24
|
+
const endRef = react_1.default.useRef(null);
|
|
25
|
+
const startRefCombined = (0, hooks_1.useMergeRefs)(startRef, forwardedStartRef);
|
|
26
|
+
const endRefCombined = (0, hooks_1.useMergeRefs)(endRef, forwardedEndRef);
|
|
27
|
+
return (react_1.default.createElement(react_1.default.Fragment, null,
|
|
28
|
+
react_1.default.createElement("span", { ref: startRefCombined,
|
|
29
|
+
// eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
|
|
30
|
+
tabIndex: 0, style: visuallyHidden, "data-aksel-focus-guard": "" }),
|
|
31
|
+
children,
|
|
32
|
+
react_1.default.createElement("span", { ref: endRefCombined,
|
|
33
|
+
// eslint-disable-next-line jsx-a11y/no-noninteractive-tabindex
|
|
34
|
+
tabIndex: 0, style: visuallyHidden, "data-aksel-focus-guard": "" })));
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=FocusGuards.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FocusGuards.js","sourceRoot":"","sources":["../../../src/util/focus-guards/FocusGuards.tsx"],"names":[],"mappings":";;;;;AAuDS,kCAAW;AAvDpB,kDAA0B;AAC1B,oCAAwC;AAExC,MAAM,cAAc,GAAwB;IAC1C,IAAI,EAAE,eAAe;IACrB,QAAQ,EAAE,QAAQ;IAClB,UAAU,EAAE,QAAQ;IACpB,QAAQ,EAAE,OAAO;IACjB,GAAG,EAAE,CAAC;IACN,IAAI,EAAE,CAAC;IACP,MAAM,EAAE,CAAC;IACT,OAAO,EAAE,CAAC;IACV,KAAK,EAAE,CAAC;IACR,MAAM,EAAE,CAAC;IACT,MAAM,EAAE,CAAC,CAAC;CACX,CAAC;AAQF,SAAS,WAAW,CAAC,EACnB,QAAQ,EACR,QAAQ,EAAE,iBAAiB,EAC3B,MAAM,EAAE,eAAe,GACN;IACjB,MAAM,QAAQ,GAAG,eAAK,CAAC,MAAM,CAAyB,IAAI,CAAC,CAAC;IAC5D,MAAM,MAAM,GAAG,eAAK,CAAC,MAAM,CAAyB,IAAI,CAAC,CAAC;IAE1D,MAAM,gBAAgB,GAAG,IAAA,oBAAY,EAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;IACnE,MAAM,cAAc,GAAG,IAAA,oBAAY,EAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAE7D,OAAO,CACL,8BAAC,eAAK,CAAC,QAAQ;QACb,wCACE,GAAG,EAAE,gBAAgB;YACrB,+DAA+D;YAC/D,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,cAAc,4BACE,EAAE,GACzB;QACD,QAAQ;QACT,wCACE,GAAG,EAAE,cAAc;YACnB,+DAA+D;YAC/D,QAAQ,EAAE,CAAC,EACX,KAAK,EAAE,cAAc,4BACE,EAAE,GACzB,CACa,CAClB,CAAC;AACJ,CAAC"}
|
|
@@ -67,9 +67,12 @@ function createDescendantContext() {
|
|
|
67
67
|
return () => {
|
|
68
68
|
if (!ref.current)
|
|
69
69
|
return;
|
|
70
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
70
71
|
descendants.unregister(ref.current);
|
|
71
72
|
};
|
|
73
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
72
74
|
}, []);
|
|
75
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
73
76
|
(0, useClientLayoutEffect_1.useClientLayoutEffect)(() => {
|
|
74
77
|
if (!ref.current)
|
|
75
78
|
return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDescendant.js","sourceRoot":"","sources":["../../../../src/util/hooks/descendants/useDescendant.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,
|
|
1
|
+
{"version":3,"file":"useDescendant.js","sourceRoot":"","sources":["../../../../src/util/hooks/descendants/useDescendant.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAaA,0DAkFC;AA/FD;;GAEG;AACH,+CAAgD;AAChD,yDAAqD;AACrD,oEAAiE;AACjE,kDAA4C;AAC5C,6CAAqE;AACrE,mCAA+B;AAE/B;;GAEG;AACH,SAAgB,uBAAuB;IAIrC,MAAM,CAAC,0BAA0B,EAAE,qBAAqB,CAAC,GAAG,IAAA,8BAAa,EAEvE;QACA,IAAI,EAAE,qBAAqB;QAC3B,YAAY,EACV,+DAA+D;KAClE,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,IAAA,YAAI,EAC1B,CAAC,KAAK,EAAE,EAAE,CAAC,CACT,8BAAC,0BAA0B,oBAAK,KAAK,CAAC,KAAK,GACxC,KAAK,CAAC,QAAQ,CACY,CAC9B,CACF,CAAC;IAEF;;;;;;OAMG;IACH,SAAS,aAAa,CAAC,OAA8B;QACnD,MAAM,WAAW,GAAG,qBAAqB,EAAE,CAAC;QAC5C,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,IAAA,gBAAQ,EAAC,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,GAAG,GAAG,IAAA,cAAM,EAAI,IAAI,CAAC,CAAC;QAE5B,IAAA,6CAAqB,EAAC,GAAG,EAAE;YACzB,OAAO,GAAG,EAAE;gBACV,IAAI,CAAC,GAAG,CAAC,OAAO;oBAAE,OAAO;gBACzB,uDAAuD;gBACvD,WAAW,CAAC,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YACtC,CAAC,CAAC;YACF,uDAAuD;QACzD,CAAC,EAAE,EAAE,CAAC,CAAC;QAEP,uDAAuD;QACvD,IAAA,6CAAqB,EAAC,GAAG,EAAE;YACzB,IAAI,CAAC,GAAG,CAAC,OAAO;gBAAE,OAAO;YACzB,MAAM,SAAS,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACpD,IAAI,KAAK,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC;gBACpD,QAAQ,CAAC,SAAS,CAAC,CAAC;YACtB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,MAAM,WAAW,GAAG,OAAO;YACzB,CAAC,CAAC,IAAA,YAAI,EAAuB,WAAW,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC3D,CAAC,CAAC,IAAA,YAAI,EAAuB,WAAW,CAAC,QAAQ,CAAC,CAAC;QAErD,OAAO;YACL,WAAW;YACX,KAAK;YACL,YAAY,EAAE,WAAW,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC;YACrD,QAAQ,EAAE,IAAA,wBAAS,EAAC,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;SACxC,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,SAAS,cAAc;QACrB,MAAM,WAAW,GAAG,IAAA,cAAM,EAAC,IAAI,+BAAkB,EAAQ,CAAC,CAAC,OAAO,CAAC;QAEnE,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,OAAO;QACL,mBAAmB;QACnB,eAAe;QACf,+CAA+C;QAC/C,qBAAqB;QACrB,8EAA8E;QAC9E,cAAc;QACd,+BAA+B;QAC/B,aAAa;KACL,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useEventCallback.js","sourceRoot":"","sources":["../../../src/util/hooks/useEventCallback.ts"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+Cb,4CAOC;AApDD;;;;;;;;;;;;;;GAcG;AACH,+CAA+C;AAC/C,qDAAkD;AAElD,6EAA6E;AAC7E,MAAM,kBAAkB,GAAI,eAAa,CACvC,qBAAqB,IAAI,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAC7D,CAAC;AAEF,MAAM,sBAAsB;AAC1B,4CAA4C;AAC5C,kBAAkB;IAClB,8EAA8E;IAC9E,kBAAkB,KAAK,uBAAe;IACpC,CAAC,CAAC,kBAAkB;IACpB,CAAC,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;AAaxB;;GAEG;AACH,SAAgB,gBAAgB,CAC9B,QAAuB;IAEvB,MAAM,MAAM,GAAG,IAAA,+BAAc,EAAC,oBAAoB,CAAC,CAAC,OAAoB,CAAC;IACzE,MAAM,CAAC,IAAI,GAAG,QAAQ,CAAC;IACvB,sBAAsB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IACtC,OAAO,MAAM,CAAC,UAAU,CAAC;AAC3B,CAAC;AAED,SAAS,oBAAoB;IAC3B,MAAM,MAAM,GAAqB;QAC/B,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,eAAe;QACzB,UAAU,EAAE,CAAC,GAAG,IAAW,EAAE,EAAE,WAAC,OAAA,MAAA,MAAM,CAAC,QAAQ,uDAAG,GAAG,IAAI,CAAC,CAAA,EAAA;QAC1D,MAAM,EAAE,GAAG,EAAE;YACX,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC;QAChC,CAAC;KACF,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,eAAe;IACtB,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,KAAK,YAAY,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAC;IAC1E,CAAC;AACH,CAAC"}
|
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
"use client";
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.useLatestRef = useLatestRef;
|
|
5
|
-
const
|
|
5
|
+
const useClientLayoutEffect_1 = require("./useClientLayoutEffect");
|
|
6
6
|
const useRefWithInit_1 = require("./useRefWithInit");
|
|
7
7
|
function useLatestRef(value) {
|
|
8
8
|
const latest = (0, useRefWithInit_1.useRefWithInit)(createLatestRef, value).current;
|
|
9
9
|
latest.next = value;
|
|
10
|
-
|
|
10
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
11
|
+
(0, useClientLayoutEffect_1.useClientLayoutEffect)(latest.effect);
|
|
11
12
|
return latest;
|
|
12
13
|
}
|
|
13
14
|
function createLatestRef(value) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useLatestRef.js","sourceRoot":"","sources":["../../../src/util/hooks/useLatestRef.ts"],"names":[],"mappings":";AAAA,YAAY,CAAC;;AAKb,oCASC;AAZD,mEAAgE;AAChE,qDAAkD;AAElD,SAAgB,YAAY,CAAI,KAAQ;IACtC,MAAM,MAAM,GAAG,IAAA,+BAAc,EAAC,eAAe,EAAE,KAAK,CAAC,CAAC,OAAQ,CAAC;IAE/D,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;IAEpB,uDAAuD;IACvD,IAAA,6CAAqB,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAErC,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,SAAS,eAAe,CAAI,KAAQ;IAClC,MAAM,MAAM,GAAG;QACb,OAAO,EAAE,KAAK;QACd,IAAI,EAAE,KAAK;QACX,MAAM,EAAE,GAAG,EAAE;YACX,MAAM,CAAC,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC;QAC/B,CAAC;KACF,CAAC;IACF,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useRefWithInit.js","sourceRoot":"","sources":["../../../src/util/hooks/useRefWithInit.ts"],"names":[],"mappings":";AAAA,YAAY,CAAC;;AAwBJ,wCAAc;AAtBvB,iCAAsC;AAEtC,MAAM,aAAa,GAAG,EAAE,CAAC;AAUzB,SAAS,cAAc,CAAC,IAAgC,EAAE,OAAiB;IACzE,MAAM,GAAG,GAAG,IAAA,cAAM,EAAC,aAAoB,CAAC,CAAC;IAEzC,IAAI,GAAG,CAAC,OAAO,KAAK,aAAa,EAAE,CAAC;QAClC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
declare class Timeout {
|
|
2
|
+
static create(): Timeout;
|
|
3
|
+
currentId: number;
|
|
4
|
+
/**
|
|
5
|
+
* Executes `fn` after `delay`, clearing any previously scheduled call.
|
|
6
|
+
*/
|
|
7
|
+
start(delay: number, fn: () => void): void;
|
|
8
|
+
isStarted(): boolean;
|
|
9
|
+
clear: () => void;
|
|
10
|
+
disposeEffect: () => () => void;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* A `setTimeout` with automatic cleanup and guard.
|
|
14
|
+
*/
|
|
15
|
+
declare function useTimeout(): Timeout;
|
|
16
|
+
export { Timeout, useTimeout };
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
"use client";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.Timeout = void 0;
|
|
5
|
+
exports.useTimeout = useTimeout;
|
|
6
|
+
const react_1 = require("react");
|
|
7
|
+
const useRefWithInit_1 = require("./useRefWithInit");
|
|
8
|
+
const EMPTY = 0;
|
|
9
|
+
class Timeout {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.currentId = EMPTY;
|
|
12
|
+
this.clear = () => {
|
|
13
|
+
if (this.currentId !== EMPTY) {
|
|
14
|
+
clearTimeout(this.currentId);
|
|
15
|
+
this.currentId = EMPTY;
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
this.disposeEffect = () => {
|
|
19
|
+
return this.clear;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
static create() {
|
|
23
|
+
return new Timeout();
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Executes `fn` after `delay`, clearing any previously scheduled call.
|
|
27
|
+
*/
|
|
28
|
+
start(delay, fn) {
|
|
29
|
+
this.clear();
|
|
30
|
+
this.currentId = setTimeout(() => {
|
|
31
|
+
this.currentId = EMPTY;
|
|
32
|
+
fn();
|
|
33
|
+
}, delay); /* Node.js types are enabled in development */
|
|
34
|
+
}
|
|
35
|
+
isStarted() {
|
|
36
|
+
return this.currentId !== EMPTY;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
exports.Timeout = Timeout;
|
|
40
|
+
/**
|
|
41
|
+
* A `setTimeout` with automatic cleanup and guard.
|
|
42
|
+
*/
|
|
43
|
+
function useTimeout() {
|
|
44
|
+
const timeout = (0, useRefWithInit_1.useRefWithInit)(Timeout.create).current;
|
|
45
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
46
|
+
(0, react_1.useEffect)(timeout.disposeEffect, []);
|
|
47
|
+
return timeout;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=useTimeout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useTimeout.js","sourceRoot":"","sources":["../../../src/util/hooks/useTimeout.ts"],"names":[],"mappings":";AAAA,YAAY,CAAC;;;AAqDK,gCAAU;AAnD5B,iCAAkC;AAClC,qDAAkD;AAElD,MAAM,KAAK,GAAG,CAAC,CAAC;AAEhB,MAAM,OAAO;IAAb;QAKE,cAAS,GAAW,KAAK,CAAC;QAiB1B,UAAK,GAAG,GAAG,EAAE;YACX,IAAI,IAAI,CAAC,SAAS,KAAK,KAAK,EAAE,CAAC;gBAC7B,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;gBAC7B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACzB,CAAC;QACH,CAAC,CAAC;QAEF,kBAAa,GAAG,GAAG,EAAE;YACnB,OAAO,IAAI,CAAC,KAAK,CAAC;QACpB,CAAC,CAAC;IACJ,CAAC;IA/BC,MAAM,CAAC,MAAM;QACX,OAAO,IAAI,OAAO,EAAE,CAAC;IACvB,CAAC;IAID;;OAEG;IACH,KAAK,CAAC,KAAa,EAAE,EAAc;QACjC,IAAI,CAAC,KAAK,EAAE,CAAC;QACb,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,GAAG,EAAE;YAC/B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;YACvB,EAAE,EAAE,CAAC;QACP,CAAC,EAAE,KAAK,CAAsB,CAAC,CAAC,8CAA8C;IAChF,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,SAAS,KAAK,KAAK,CAAC;IAClC,CAAC;CAYF;AAcQ,0BAAO;AAZhB;;GAEG;AACH,SAAS,UAAU;IACjB,MAAM,OAAO,GAAG,IAAA,+BAAc,EAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAQ,CAAC;IAExD,uDAAuD;IACvD,IAAA,iBAAS,EAAC,OAAO,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;IAErC,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -52,6 +52,7 @@ const Theme_1 = require("../../theme/Theme");
|
|
|
52
52
|
const composeEventHandlers_1 = require("../composeEventHandlers");
|
|
53
53
|
const create_context_1 = require("../create-context");
|
|
54
54
|
const useMergeRefs_1 = require("../hooks/useMergeRefs");
|
|
55
|
+
const owner_1 = require("../owner");
|
|
55
56
|
const [LinkAnchorContextProvider, useLinkAnchorContext] = (0, create_context_1.createContext)({
|
|
56
57
|
name: "LinkAnchorOverlayContext",
|
|
57
58
|
});
|
|
@@ -63,7 +64,8 @@ const LinkAnchorOverlay = (0, react_1.forwardRef)((_a, forwardedRef) => {
|
|
|
63
64
|
return (react_1.default.createElement(LinkAnchorContextProvider, { anchorRef: anchorRef },
|
|
64
65
|
react_1.default.createElement(Component, Object.assign({ ref: forwardedRef }, restProps, { className: cn("navds-link-anchor__overlay", className), onClick: (0, composeEventHandlers_1.composeEventHandlers)(onClick, (e) => {
|
|
65
66
|
var _a;
|
|
66
|
-
if (e.target === anchorRef.current ||
|
|
67
|
+
if (e.target === anchorRef.current ||
|
|
68
|
+
isTextSelected(anchorRef.current)) {
|
|
67
69
|
return;
|
|
68
70
|
}
|
|
69
71
|
const event = new MouseEvent("click", {
|
|
@@ -100,11 +102,8 @@ const LinkAnchorArrow = (0, react_1.forwardRef)((_a, forwardedRef) => {
|
|
|
100
102
|
});
|
|
101
103
|
exports.LinkAnchorArrow = LinkAnchorArrow;
|
|
102
104
|
/* -------------------------- LinkAnchor Utilities -------------------------- */
|
|
103
|
-
function isTextSelected() {
|
|
104
|
-
var _a;
|
|
105
|
-
|
|
106
|
-
return false;
|
|
107
|
-
}
|
|
108
|
-
return !!((_a = window.getSelection()) === null || _a === void 0 ? void 0 : _a.toString());
|
|
105
|
+
function isTextSelected(refElement) {
|
|
106
|
+
var _a, _b;
|
|
107
|
+
return !!((_b = (_a = (0, owner_1.ownerWindow)(refElement)) === null || _a === void 0 ? void 0 : _a.getSelection()) === null || _b === void 0 ? void 0 : _b.toString());
|
|
109
108
|
}
|
|
110
109
|
//# sourceMappingURL=LinkAnchor.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LinkAnchor.js","sourceRoot":"","sources":["../../../src/util/link-anchor/LinkAnchor.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAMe;AACf,qDAAqD;AACrD,0CAAuC;AACvC,6CAAiD;AACjD,kEAA+D;AAC/D,sDAAkD;AAClD,wDAAqD;
|
|
1
|
+
{"version":3,"file":"LinkAnchor.js","sourceRoot":"","sources":["../../../src/util/link-anchor/LinkAnchor.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Returns the owner document of a given element.
|
|
3
|
+
*
|
|
4
|
+
* Use this when the node might live in a different browsing context than the code
|
|
5
|
+
* invoking the utility (portals, iframes, custom documents).
|
|
6
|
+
*
|
|
7
|
+
* Examples:
|
|
8
|
+
* - Focus guards for portaled menus: pass the menu root so guards are created in the portal document.
|
|
9
|
+
* - Components rendered inside an iframe preview: scope listeners to the iframe-document.
|
|
10
|
+
* - Element opened with `window.open`: scope listeners to the new window-document.
|
|
11
|
+
*
|
|
12
|
+
* Scenarios:
|
|
13
|
+
* - Modal content rendered to parent `document.body` via a portal while running inside an iframe.
|
|
14
|
+
* - Tooltips or popovers that live outside the component't immediate DOM tree.
|
|
15
|
+
*
|
|
16
|
+
* https://github.com/radix-ui/primitives/issues/1676
|
|
17
|
+
* https://github.com/radix-ui/primitives/issues/1721
|
|
18
|
+
* https://github.com/radix-ui/primitives/discussions/1715
|
|
19
|
+
*/
|
|
20
|
+
declare function ownerDocument(node: Element | null): Document;
|
|
21
|
+
/**
|
|
22
|
+
* Returns the owner window of a given element.
|
|
23
|
+
*
|
|
24
|
+
* Examples:
|
|
25
|
+
* - Keyboard listeners for portaled overlays.
|
|
26
|
+
* - Resize/scroll observers applied to iframe widgets.
|
|
27
|
+
*/
|
|
28
|
+
declare function ownerWindow(node: Document | Element | null): typeof window;
|
|
29
|
+
export { ownerDocument, ownerWindow };
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ownerDocument = ownerDocument;
|
|
4
|
+
exports.ownerWindow = ownerWindow;
|
|
5
|
+
/**
|
|
6
|
+
* Returns the owner document of a given element.
|
|
7
|
+
*
|
|
8
|
+
* Use this when the node might live in a different browsing context than the code
|
|
9
|
+
* invoking the utility (portals, iframes, custom documents).
|
|
10
|
+
*
|
|
11
|
+
* Examples:
|
|
12
|
+
* - Focus guards for portaled menus: pass the menu root so guards are created in the portal document.
|
|
13
|
+
* - Components rendered inside an iframe preview: scope listeners to the iframe-document.
|
|
14
|
+
* - Element opened with `window.open`: scope listeners to the new window-document.
|
|
15
|
+
*
|
|
16
|
+
* Scenarios:
|
|
17
|
+
* - Modal content rendered to parent `document.body` via a portal while running inside an iframe.
|
|
18
|
+
* - Tooltips or popovers that live outside the component't immediate DOM tree.
|
|
19
|
+
*
|
|
20
|
+
* https://github.com/radix-ui/primitives/issues/1676
|
|
21
|
+
* https://github.com/radix-ui/primitives/issues/1721
|
|
22
|
+
* https://github.com/radix-ui/primitives/discussions/1715
|
|
23
|
+
*/
|
|
24
|
+
function ownerDocument(node) {
|
|
25
|
+
return (node === null || node === void 0 ? void 0 : node.ownerDocument) || (globalThis === null || globalThis === void 0 ? void 0 : globalThis.document);
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Returns the owner window of a given element.
|
|
29
|
+
*
|
|
30
|
+
* Examples:
|
|
31
|
+
* - Keyboard listeners for portaled overlays.
|
|
32
|
+
* - Resize/scroll observers applied to iframe widgets.
|
|
33
|
+
*/
|
|
34
|
+
function ownerWindow(node) {
|
|
35
|
+
var _a;
|
|
36
|
+
return ((_a = node === null || node === void 0 ? void 0 : node.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView) || window;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=owner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"owner.js","sourceRoot":"","sources":["../../src/util/owner.ts"],"names":[],"mappings":";;AAkCS,sCAAa;AAAE,kCAAW;AAlCnC;;;;;;;;;;;;;;;;;;GAkBG;AACH,SAAS,aAAa,CAAC,IAAoB;IACzC,OAAO,CAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,MAAI,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,QAAQ,CAAA,CAAC;AACrD,CAAC;AAED;;;;;;GAMG;AACH,SAAS,WAAW,CAAC,IAA+B;;IAClD,OAAO,CAAA,MAAA,IAAI,aAAJ,IAAI,uBAAJ,IAAI,CAAE,aAAa,0CAAE,WAAW,KAAI,MAAM,CAAC;AACpD,CAAC"}
|
|
@@ -9,13 +9,14 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
9
9
|
}
|
|
10
10
|
return t;
|
|
11
11
|
};
|
|
12
|
-
import React, { forwardRef,
|
|
12
|
+
import React, { forwardRef, useState } from "react";
|
|
13
13
|
import { CheckmarkIcon, FilesIcon } from "@navikt/aksel-icons";
|
|
14
14
|
import { Button } from "../button/index.js";
|
|
15
15
|
import { useRenameCSS, useThemeInternal } from "../theme/Theme.js";
|
|
16
16
|
import { Label } from "../typography/index.js";
|
|
17
17
|
import { composeEventHandlers } from "../util/composeEventHandlers.js";
|
|
18
18
|
import copy from "../util/copy.js";
|
|
19
|
+
import { useTimeout } from "../util/hooks/useTimeout.js";
|
|
19
20
|
import { useI18n } from "../util/i18n/i18n.hooks.js";
|
|
20
21
|
/**
|
|
21
22
|
* A button component that copies text to the clipboard when clicked.
|
|
@@ -31,24 +32,18 @@ import { useI18n } from "../util/i18n/i18n.hooks.js";
|
|
|
31
32
|
export const CopyButton = forwardRef((_a, ref) => {
|
|
32
33
|
var { className, copyText, text, activeText, variant = "neutral", onActiveChange, icon, activeIcon, activeDuration = 2000, title, iconPosition = "left", onClick, size = "medium" } = _a, rest = __rest(_a, ["className", "copyText", "text", "activeText", "variant", "onActiveChange", "icon", "activeIcon", "activeDuration", "title", "iconPosition", "onClick", "size"]);
|
|
33
34
|
const [active, setActive] = useState(false);
|
|
34
|
-
const timeoutRef = useRef(undefined);
|
|
35
35
|
const translate = useI18n("CopyButton");
|
|
36
|
+
const timeout = useTimeout();
|
|
36
37
|
const { cn } = useRenameCSS();
|
|
37
38
|
const themeContext = useThemeInternal(false);
|
|
38
|
-
useEffect(() => {
|
|
39
|
-
return () => {
|
|
40
|
-
timeoutRef.current && clearTimeout(timeoutRef.current);
|
|
41
|
-
};
|
|
42
|
-
}, []);
|
|
43
39
|
const handleClick = () => {
|
|
44
|
-
timeoutRef.current && clearTimeout(timeoutRef.current);
|
|
45
40
|
copy(copyText);
|
|
46
41
|
setActive(true);
|
|
47
42
|
onActiveChange === null || onActiveChange === void 0 ? void 0 : onActiveChange(true);
|
|
48
|
-
|
|
43
|
+
timeout.start(activeDuration, () => {
|
|
49
44
|
setActive(false);
|
|
50
45
|
onActiveChange === null || onActiveChange === void 0 ? void 0 : onActiveChange(false);
|
|
51
|
-
}
|
|
46
|
+
});
|
|
52
47
|
};
|
|
53
48
|
const activeString = activeText || translate("activeText");
|
|
54
49
|
const copyIcon = (React.createElement(LegacyIconWrapper, { useLegacy: !(themeContext === null || themeContext === void 0 ? void 0 : themeContext.isDarkside) }, active
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CopyButton.js","sourceRoot":"","sources":["../../src/copybutton/CopyButton.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,
|
|
1
|
+
{"version":3,"file":"CopyButton.js","sourceRoot":"","sources":["../../src/copybutton/CopyButton.tsx"],"names":[],"mappings":"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"}
|
|
@@ -16,16 +16,14 @@ import { BodyShort, ErrorMessage, Label } from "../../typography/index.js";
|
|
|
16
16
|
import { ReadOnlyIconWithTitle } from "../ReadOnlyIcon.js";
|
|
17
17
|
import ComboboxWrapper from "./ComboboxWrapper.js";
|
|
18
18
|
import FilteredOptions from "./FilteredOptions/FilteredOptions.js";
|
|
19
|
-
import { useFilteredOptionsContext } from "./FilteredOptions/filteredOptionsContext.js";
|
|
20
19
|
import { useInputContext } from "./Input/Input.context.js";
|
|
21
20
|
import { InputController } from "./Input/InputController.js";
|
|
22
21
|
export const Combobox = forwardRef((props, ref) => {
|
|
23
22
|
const { className, hideLabel = false, description, label } = props, rest = __rest(props, ["className", "hideLabel", "description", "label"]);
|
|
24
23
|
const { cn } = useRenameCSS();
|
|
25
|
-
const { toggleIsListOpen } = useFilteredOptionsContext();
|
|
26
24
|
const { error, errorId, hasError, inputDescriptionId, inputProps, showErrorMsg, size = "medium", readOnly, } = useInputContext();
|
|
27
25
|
return (React.createElement(Floating, null,
|
|
28
|
-
React.createElement(ComboboxWrapper, { className: className, hasError: hasError, inputProps: inputProps, inputSize: size
|
|
26
|
+
React.createElement(ComboboxWrapper, { className: className, hasError: hasError, inputProps: inputProps, inputSize: size },
|
|
29
27
|
React.createElement(Label, { htmlFor: inputProps.id, size: size, className: cn("navds-form-field__label", {
|
|
30
28
|
"navds-sr-only": hideLabel,
|
|
31
29
|
}) },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Combobox.js","sourceRoot":"","sources":["../../../src/form/combobox/Combobox.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,eAAe,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Combobox.js","sourceRoot":"","sources":["../../../src/form/combobox/Combobox.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,eAAe,MAAM,mBAAmB,CAAC;AAChD,OAAO,eAAe,MAAM,mCAAmC,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAG1D,MAAM,CAAC,MAAM,QAAQ,GAAG,UAAU,CAMhC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACf,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,KAAK,EAAE,WAAW,EAAE,KAAK,KAAc,KAAK,EAAd,IAAI,UAAK,KAAK,EAArE,kDAA6D,CAAQ,CAAC;IAE5E,MAAM,EAAE,EAAE,EAAE,GAAG,YAAY,EAAE,CAAC;IAE9B,MAAM,EACJ,KAAK,EACL,OAAO,EACP,QAAQ,EACR,kBAAkB,EAClB,UAAU,EACV,YAAY,EACZ,IAAI,GAAG,QAAQ,EACf,QAAQ,GACT,GAAG,eAAe,EAAE,CAAC;IAEtB,OAAO,CACL,oBAAC,QAAQ;QACP,oBAAC,eAAe,IACd,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,IAAI;YAEf,oBAAC,KAAK,IACJ,OAAO,EAAE,UAAU,CAAC,EAAE,EACtB,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,EAAE,CAAC,yBAAyB,EAAE;oBACvC,eAAe,EAAE,SAAS;iBAC3B,CAAC;gBAED,QAAQ,IAAI,oBAAC,qBAAqB,OAAG;gBACrC,KAAK,CACA;YACP,CAAC,CAAC,WAAW,IAAI,CAChB,oBAAC,SAAS,IACR,EAAE,EAAC,KAAK,EACR,SAAS,EAAE,EAAE,CAAC,+BAA+B,EAAE;oBAC7C,eAAe,EAAE,SAAS;iBAC3B,CAAC,EACF,EAAE,EAAE,kBAAkB,EACtB,IAAI,EAAE,IAAI,IAET,WAAW,CACF,CACb;YACD,6BAAK,SAAS,EAAE,EAAE,CAAC,yBAAyB,CAAC;gBAC3C,oBAAC,eAAe,kBAAC,GAAG,EAAE,GAAG,IAAM,IAAI,EAAI;gBACvC,oBAAC,eAAe,OAAG,CACf;YACN,6BACE,SAAS,EAAE,EAAE,CAAC,yBAAyB,CAAC,EACxC,EAAE,EAAE,OAAO,mBACG,oBAAoB,eACxB,QAAQ,IAEjB,YAAY,IAAI,CACf,oBAAC,YAAY,IAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,UAC/B,KAAK,CACO,CAChB,CACG,CACU,CACT,CACZ,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,eAAe,QAAQ,CAAC"}
|
|
@@ -8,7 +8,6 @@ type ComboboxWrapperProps = {
|
|
|
8
8
|
};
|
|
9
9
|
readOnly?: boolean;
|
|
10
10
|
inputSize: string;
|
|
11
|
-
toggleIsListOpen: (isListOpen: boolean) => void;
|
|
12
11
|
};
|
|
13
|
-
declare const ComboboxWrapper: ({ children, className, hasError, inputProps, inputSize,
|
|
12
|
+
declare const ComboboxWrapper: ({ children, className, hasError, inputProps, inputSize, }: ComboboxWrapperProps) => React.JSX.Element;
|
|
14
13
|
export default ComboboxWrapper;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { useRef, useState } from "react";
|
|
2
2
|
import { useRenameCSS } from "../../theme/Theme.js";
|
|
3
3
|
import { useInputContext } from "./Input/Input.context.js";
|
|
4
|
-
const ComboboxWrapper = ({ children, className, hasError, inputProps, inputSize,
|
|
4
|
+
const ComboboxWrapper = ({ children, className, hasError, inputProps, inputSize, }) => {
|
|
5
5
|
const { cn } = useRenameCSS();
|
|
6
6
|
const { toggleOpenButtonRef, clearInput, readOnly } = useInputContext();
|
|
7
7
|
const wrapperRef = useRef(null);
|
|
@@ -16,7 +16,6 @@ const ComboboxWrapper = ({ children, className, hasError, inputProps, inputSize,
|
|
|
16
16
|
function onBlurWrapper(event) {
|
|
17
17
|
var _a;
|
|
18
18
|
if (!((_a = wrapperRef.current) === null || _a === void 0 ? void 0 : _a.contains(event.relatedTarget))) {
|
|
19
|
-
toggleIsListOpen(false);
|
|
20
19
|
setHasFocusWithin(false);
|
|
21
20
|
clearInput(event);
|
|
22
21
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComboboxWrapper.js","sourceRoot":"","sources":["../../../src/form/combobox/ComboboxWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"ComboboxWrapper.js","sourceRoot":"","sources":["../../../src/form/combobox/ComboboxWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAaxD,MAAM,eAAe,GAAG,CAAC,EACvB,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,UAAU,EACV,SAAS,GACY,EAAE,EAAE;IACzB,MAAM,EAAE,EAAE,EAAE,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,EAAE,mBAAmB,EAAE,UAAU,EAAE,QAAQ,EAAE,GAAG,eAAe,EAAE,CAAC;IAExE,MAAM,UAAU,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IACvD,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAE5D,SAAS,oBAAoB,CAAC,KAAuC;;QACnE,IACE,CAAC,CAAA,MAAA,UAAU,CAAC,OAAO,0CAAE,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA;YAClD,CAAA,mBAAmB,aAAnB,mBAAmB,uBAAnB,mBAAmB,CAAE,OAAO,MAAK,KAAK,CAAC,MAAM,EAC7C,CAAC;YACD,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC1B,CAAC;IACH,CAAC;IAED,SAAS,aAAa,CAAC,KAAuC;;QAC5D,IAAI,CAAC,CAAA,MAAA,UAAU,CAAC,OAAO,0CAAE,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAA,EAAE,CAAC;YACvD,iBAAiB,CAAC,KAAK,CAAC,CAAC;YACzB,UAAU,CAAC,KAAK,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IAED,OAAO,CACL,6BACE,GAAG,EAAE,UAAU,EACf,SAAS,EAAE,EAAE,CACX,SAAS,EACT,kBAAkB,EAClB,qBAAqB,SAAS,EAAE,EAChC;YACE,uBAAuB,EAAE,QAAQ;YACjC,0BAA0B,EAAE,CAAC,CAAC,UAAU,CAAC,QAAQ;YACjD,yBAAyB,EAAE,cAAc;YACzC,0BAA0B,EAAE,QAAQ;YACpC,4BAA4B,EAAE,QAAQ;SACvC,CACF,EACD,OAAO,EAAE,oBAAoB,EAC7B,MAAM,EAAE,aAAa,IAEpB,QAAQ,CACL,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,eAAe,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import React, { useState } from "react";
|
|
1
|
+
import React, { useRef, useState } from "react";
|
|
2
|
+
import { DismissableLayer } from "../../../overlays/dismissablelayer/DismissableLayer.js";
|
|
2
3
|
import { Floating } from "../../../overlays/floating/Floating.js";
|
|
3
4
|
import { useRenameCSS, useThemeInternal } from "../../../theme/Theme.js";
|
|
4
5
|
import { useClientLayoutEffect } from "../../../util/index.js";
|
|
@@ -14,9 +15,10 @@ import { useFilteredOptionsContext } from "./filteredOptionsContext.js";
|
|
|
14
15
|
const FilteredOptions = () => {
|
|
15
16
|
const { cn } = useRenameCSS();
|
|
16
17
|
const themeContext = useThemeInternal(false);
|
|
17
|
-
const { inputProps: { id }, } = useInputContext();
|
|
18
|
-
const { allowNewValues, isLoading, isListOpen, filteredOptions, setFilteredOptionsRef, isMouseLastUsedInputDevice, isValueNew, } = useFilteredOptionsContext();
|
|
18
|
+
const { inputProps: { id }, anchorRef, } = useInputContext();
|
|
19
|
+
const { allowNewValues, isLoading, isListOpen, filteredOptions, setFilteredOptionsRef, isMouseLastUsedInputDevice, isValueNew, toggleIsListOpen, } = useFilteredOptionsContext();
|
|
19
20
|
const [localOpen, setLocalOpen] = useState(isListOpen);
|
|
21
|
+
const floatingRef = useRef(null);
|
|
20
22
|
/**
|
|
21
23
|
* This is a dirty hack to make the positioning-logic in Floating base the "flip" on the static 290px max-height,
|
|
22
24
|
* instead of the dynamic one based on available space. Without this, the list won't flip to top when there's
|
|
@@ -32,23 +34,30 @@ const FilteredOptions = () => {
|
|
|
32
34
|
const shouldRenderFilteredOptionsList = (allowNewValues && isValueNew && !maxSelected.isLimitReached) || // Render add new option
|
|
33
35
|
filteredOptions.length > 0; // Render filtered options
|
|
34
36
|
const height = (themeContext === null || themeContext === void 0 ? void 0 : themeContext.isDarkside) ? "316px" : "290px";
|
|
35
|
-
return (React.createElement(
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
37
|
+
return (React.createElement(DismissableLayer, { asChild: true, safeZone: {
|
|
38
|
+
anchor: anchorRef,
|
|
39
|
+
dismissable: floatingRef.current,
|
|
40
|
+
}, onDismiss: () => localOpen && toggleIsListOpen(false), onEscapeKeyDown: (event) => {
|
|
41
|
+
/* We handle this manually in Input */
|
|
42
|
+
event.preventDefault();
|
|
43
|
+
}, enabled: localOpen },
|
|
44
|
+
React.createElement(Floating.Content, { ref: floatingRef, className: cn("navds-combobox__list", {
|
|
45
|
+
"navds-combobox__list--closed": !isListOpen,
|
|
46
|
+
"navds-combobox__list--with-hover": isMouseLastUsedInputDevice,
|
|
47
|
+
}), id: filteredOptionsUtil.getFilteredOptionsId(id), tabIndex: -1, sideOffset: 8, side: "bottom", fallbackPlacements: ["top"], enabled: isListOpen, style: {
|
|
48
|
+
maxHeight: localOpen
|
|
49
|
+
? `min(${height}, var(--ac-floating-available-height))`
|
|
50
|
+
: `${height}`,
|
|
51
|
+
}, autoUpdateWhileMounted: false },
|
|
52
|
+
shouldRenderNonSelectables && (React.createElement("div", { className: cn("navds-combobox__list_non-selectables"), role: "status" },
|
|
53
|
+
isMultiSelect && maxSelected.limit && React.createElement(MaxSelectedMessage, null),
|
|
54
|
+
isLoading && React.createElement(LoadingMessage, null),
|
|
55
|
+
!isLoading && filteredOptions.length === 0 && !allowNewValues && (React.createElement(NoSearchHitsMessage, null)))),
|
|
56
|
+
shouldRenderFilteredOptionsList && (
|
|
57
|
+
/* biome-ignore lint/a11y/useFocusableInteractive: Interaction is not handeled by listbox itself. */
|
|
58
|
+
React.createElement("ul", { ref: setFilteredOptionsRef, role: "listbox", className: cn("navds-combobox__list-options") },
|
|
59
|
+
isValueNew && !maxSelected.isLimitReached && allowNewValues && (React.createElement(AddNewOption, null)),
|
|
60
|
+
filteredOptions.map((option) => (React.createElement(FilteredOptionsItem, { key: option.value, option: option }))))))));
|
|
52
61
|
};
|
|
53
62
|
export default FilteredOptions;
|
|
54
63
|
//# sourceMappingURL=FilteredOptions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilteredOptions.js","sourceRoot":"","sources":["../../../../src/form/combobox/FilteredOptions/FilteredOptions.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"FilteredOptions.js","sourceRoot":"","sources":["../../../../src/form/combobox/FilteredOptions/FilteredOptions.tsx"],"names":[],"mappings":"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"}
|
|
@@ -11,6 +11,10 @@ const useTextHighlight = (text, searchTerm) => {
|
|
|
11
11
|
const indexOfHighlightedText = text
|
|
12
12
|
.toLowerCase()
|
|
13
13
|
.indexOf(searchTerm.toLowerCase());
|
|
14
|
+
if (indexOfHighlightedText === -1) {
|
|
15
|
+
// This can happen if the consumer has implemented their own filtering logic
|
|
16
|
+
return [text, "", ""];
|
|
17
|
+
}
|
|
14
18
|
const start = text.substring(0, indexOfHighlightedText);
|
|
15
19
|
const highlight = text.substring(indexOfHighlightedText, indexOfHighlightedText + searchTerm.length);
|
|
16
20
|
const end = text.substring(indexOfHighlightedText + searchTerm.length);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilteredOptionsItem.js","sourceRoot":"","sources":["../../../../src/form/combobox/FilteredOptions/FilteredOptionsItem.tsx"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"FilteredOptionsItem.js","sourceRoot":"","sources":["../../../../src/form/combobox/FilteredOptions/FilteredOptionsItem.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useVirtualFocus.js","sourceRoot":"","sources":["../../../../src/form/combobox/FilteredOptions/useVirtualFocus.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAiBjC,MAAM,eAAe,GAAG,CACtB,YAAgC,EACd,EAAE;IACpB,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAChD,SAAS,CACV,CAAC;IAEF,MAAM,oBAAoB,GAAG,GAAkB,EAAE,WAC/C,OAAA,KAAK,CAAC,IAAI,CAAC,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,QAAQ,mCAAI,EAAE,CAAkB,CAAA,EAAA,CAAC;IAC5D,MAAM,6BAA6B,GAAG,GAAG,EAAE,CACzC,oBAAoB,EAAE,CAAC,MAAM,CAC3B,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,eAAe,CAAC,KAAK,MAAM,CAC1D,CAAC;IAEJ,MAAM,cAAc,GAAG,CAAC,EAAU,EAAE,EAAE,CACpC,oBAAoB,EAAE,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9D,MAAM,eAAe,GAAG,GAAG,EAAE,CAC3B,aAAa;QACX,CAAC,CAAC,6BAA6B,EAAE,CAAC,OAAO,CAAC,aAAa,CAAC,KAAK,CAAC;QAC9D,CAAC,CAAC,KAAK,CAAC;IACZ,MAAM,kBAAkB,GAAG,GAAG,EAAE;QAC9B,MAAM,0BAA0B,GAAG,6BAA6B,EAAE,CAAC;QACnE,OAAO,aAAa;YAClB,CAAC,CAAC,0BAA0B,CAAC,OAAO,CAAC,aAAa,CAAC;gBAC/C,0BAA0B,CAAC,MAAM,GAAG,CAAC;YACzC,CAAC,CAAC,KAAK,CAAC;IACZ,CAAC,CAAC;IAEF,MAAM,2BAA2B,GAAG,CAAC,OAAqB,EAAE,EAAE;;QAC5D,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC1B,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,cAAc,wDAAG,EAAE,KAAK,EAAE,SAAS,EAAE,CAAC,CAAC;IAClD,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,GAAG,EAAE;QACvB,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO;QACT,CAAC;QACD,MAAM,0BAA0B,GAAG,6BAA6B,EAAE,CAAC;QACnE,MAAM,aAAa,GAAG,0BAA0B,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QACxE,MAAM,YAAY,GAAG,0BAA0B,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;QACnE,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;YACxB,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,2BAA2B,CAAC,YAAY,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,GAAG,EAAE;QACzB,MAAM,0BAA0B,GAAG,6BAA6B,EAAE,CAAC;QAEnE,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,2BAA2B,CAAC,0BAA0B,CAAC,CAAC,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"useVirtualFocus.js","sourceRoot":"","sources":["../../../../src/form/combobox/FilteredOptions/useVirtualFocus.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,6 +15,8 @@ interface InputContextValue extends FormFieldType {
|
|
|
15
15
|
toggleOpenButtonRef: React.MutableRefObject<HTMLDivElement | null>;
|
|
16
16
|
hideCaret: boolean;
|
|
17
17
|
setHideCaret: React.Dispatch<React.SetStateAction<boolean>>;
|
|
18
|
+
anchorRef: HTMLDivElement | null;
|
|
19
|
+
setAnchorRef: React.Dispatch<React.SetStateAction<HTMLDivElement | null>>;
|
|
18
20
|
}
|
|
19
21
|
declare const useInputContext: <S extends boolean = true>(strict?: S) => S extends true ? InputContextValue : InputContextValue | undefined;
|
|
20
22
|
interface Props {
|
|
@@ -21,6 +21,7 @@ const InputProvider = ({ children, value: props }) => {
|
|
|
21
21
|
const toggleOpenButtonRef = useRef(null);
|
|
22
22
|
const [internalValue, setInternalValue] = useState(defaultValue);
|
|
23
23
|
const [hideCaret, setHideCaret] = useState(false);
|
|
24
|
+
const [anchorRef, setAnchorRef] = useState(null);
|
|
24
25
|
const value = useMemo(() => String(externalValue !== null && externalValue !== void 0 ? externalValue : internalValue), [externalValue, internalValue]);
|
|
25
26
|
const [searchTerm, setSearchTerm] = useState(value);
|
|
26
27
|
const onChange = useCallback((newValue) => {
|
|
@@ -54,7 +55,9 @@ const InputProvider = ({ children, value: props }) => {
|
|
|
54
55
|
shouldAutocomplete,
|
|
55
56
|
toggleOpenButtonRef,
|
|
56
57
|
hideCaret,
|
|
57
|
-
setHideCaret
|
|
58
|
+
setHideCaret,
|
|
59
|
+
anchorRef,
|
|
60
|
+
setAnchorRef });
|
|
58
61
|
return (React.createElement(InputContextProvider, Object.assign({}, contextValue), children));
|
|
59
62
|
};
|
|
60
63
|
export { InputProvider as InputContextProvider, useInputContext };
|