@navikt/ds-react 6.7.0 → 6.7.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/chat/Chat.d.ts +2 -1
- package/cjs/chat/Chat.js +2 -1
- package/cjs/chat/Chat.js.map +1 -1
- package/cjs/date/datepicker/parts/DropdownCaption.js +1 -1
- package/cjs/date/datepicker/parts/DropdownCaption.js.map +1 -1
- package/cjs/date/monthpicker/MonthCaption.js +1 -1
- package/cjs/date/utils/labels.d.ts +2 -2
- package/cjs/form/ReadOnlyIcon.d.ts +2 -2
- package/cjs/form/combobox/Combobox.js +7 -22
- package/cjs/form/combobox/Combobox.js.map +1 -1
- package/cjs/form/combobox/ComboboxProvider.js +2 -2
- package/cjs/form/combobox/ComboboxProvider.js.map +1 -1
- package/cjs/form/combobox/ComboboxWrapper.d.ts +1 -2
- package/cjs/form/combobox/ComboboxWrapper.js +4 -2
- package/cjs/form/combobox/ComboboxWrapper.js.map +1 -1
- package/cjs/form/combobox/FilteredOptions/FilteredOptions.js +4 -4
- package/cjs/form/combobox/FilteredOptions/FilteredOptions.js.map +1 -1
- package/cjs/form/combobox/FilteredOptions/filteredOptionsContext.d.ts +4 -4
- package/cjs/form/combobox/FilteredOptions/filteredOptionsContext.js +13 -15
- package/cjs/form/combobox/FilteredOptions/filteredOptionsContext.js.map +1 -1
- package/cjs/form/combobox/Input/{inputContext.d.ts → Input.context.d.ts} +7 -5
- package/cjs/form/combobox/Input/{inputContext.js → Input.context.js} +22 -22
- package/cjs/form/combobox/Input/Input.context.js.map +1 -0
- package/cjs/form/combobox/Input/Input.js +2 -2
- package/cjs/form/combobox/Input/Input.js.map +1 -1
- package/cjs/form/combobox/Input/InputController.d.ts +3 -0
- package/cjs/form/combobox/Input/InputController.js +70 -0
- package/cjs/form/combobox/Input/InputController.js.map +1 -0
- package/cjs/form/combobox/{ToggleListButton.js → Input/ToggleListButton.js} +1 -1
- package/cjs/form/combobox/Input/ToggleListButton.js.map +1 -0
- package/cjs/form/combobox/SelectedOptions/SelectedOptions.js +2 -2
- package/cjs/form/combobox/SelectedOptions/SelectedOptions.js.map +1 -1
- package/cjs/form/combobox/SelectedOptions/selectedOptionsContext.d.ts +4 -4
- package/cjs/form/combobox/SelectedOptions/selectedOptionsContext.js +7 -13
- package/cjs/form/combobox/SelectedOptions/selectedOptionsContext.js.map +1 -1
- package/cjs/form/combobox/customOptionsContext.d.ts +4 -4
- package/cjs/form/combobox/customOptionsContext.js +10 -13
- package/cjs/form/combobox/customOptionsContext.js.map +1 -1
- package/cjs/form/combobox/types.d.ts +1 -1
- package/cjs/help-text/HelpTextIcon.d.ts +1 -1
- package/cjs/overlay/dismiss/DismissableLayer.d.ts +70 -0
- package/cjs/overlay/dismiss/DismissableLayer.js +253 -0
- package/cjs/overlay/dismiss/DismissableLayer.js.map +1 -0
- package/cjs/overlay/dismiss/util/dispatchCustomEvent.d.ts +50 -0
- package/cjs/overlay/dismiss/util/dispatchCustomEvent.js +65 -0
- package/cjs/overlay/dismiss/util/dispatchCustomEvent.js.map +1 -0
- package/cjs/overlay/dismiss/util/useEscapeKeydown.d.ts +1 -0
- package/cjs/overlay/dismiss/util/useEscapeKeydown.js +19 -0
- package/cjs/overlay/dismiss/util/useEscapeKeydown.js.map +1 -0
- package/cjs/overlay/dismiss/util/useFocusOutside.d.ts +8 -0
- package/cjs/overlay/dismiss/util/useFocusOutside.js +42 -0
- package/cjs/overlay/dismiss/util/useFocusOutside.js.map +1 -0
- package/cjs/overlay/dismiss/util/usePointerDownOutside.d.ts +10 -0
- package/cjs/overlay/dismiss/util/usePointerDownOutside.js +84 -0
- package/cjs/overlay/dismiss/util/usePointerDownOutside.js.map +1 -0
- package/cjs/overlays/floating/Floating.d.ts +53 -0
- package/cjs/overlays/floating/Floating.js +215 -0
- package/cjs/overlays/floating/Floating.js.map +1 -0
- package/cjs/overlays/floating/Floating.utils.d.ts +18 -0
- package/cjs/overlays/floating/Floating.utils.js +52 -0
- package/cjs/overlays/floating/Floating.utils.js.map +1 -0
- package/cjs/popover/Popover.js +13 -28
- package/cjs/popover/Popover.js.map +1 -1
- package/cjs/progress-bar/ProgressBar.d.ts +20 -8
- package/cjs/progress-bar/ProgressBar.js +19 -9
- package/cjs/progress-bar/ProgressBar.js.map +1 -1
- package/cjs/tabs/Tabs.context.d.ts +7 -3
- package/cjs/tabs/Tabs.context.js +1 -0
- package/cjs/tabs/Tabs.context.js.map +1 -1
- package/cjs/timeline/AxisLabels.d.ts +1 -1
- package/cjs/toggle-group/ToggleGroup.context.d.ts +7 -3
- package/cjs/toggle-group/ToggleGroup.context.js +1 -0
- package/cjs/toggle-group/ToggleGroup.context.js.map +1 -1
- package/cjs/util/hooks/descendants/useDescendant.d.ts +2 -2
- package/cjs/util/hooks/descendants/useDescendant.js +49 -52
- package/cjs/util/hooks/descendants/useDescendant.js.map +1 -1
- package/cjs/util/types/AsChild.d.ts +14 -0
- package/cjs/util/types/AsChild.js +3 -0
- package/cjs/util/types/AsChild.js.map +1 -0
- package/esm/chat/Chat.d.ts +2 -1
- package/esm/chat/Chat.js +1 -0
- package/esm/chat/Chat.js.map +1 -1
- package/esm/date/datepicker/parts/DropdownCaption.js +1 -1
- package/esm/date/datepicker/parts/DropdownCaption.js.map +1 -1
- package/esm/date/monthpicker/MonthCaption.js +1 -1
- package/esm/date/utils/labels.d.ts +2 -2
- package/esm/form/ReadOnlyIcon.d.ts +2 -2
- package/esm/form/combobox/Combobox.js +8 -23
- package/esm/form/combobox/Combobox.js.map +1 -1
- package/esm/form/combobox/ComboboxProvider.js +1 -1
- package/esm/form/combobox/ComboboxProvider.js.map +1 -1
- package/esm/form/combobox/ComboboxWrapper.d.ts +1 -2
- package/esm/form/combobox/ComboboxWrapper.js +4 -2
- package/esm/form/combobox/ComboboxWrapper.js.map +1 -1
- package/esm/form/combobox/FilteredOptions/FilteredOptions.js +3 -3
- package/esm/form/combobox/FilteredOptions/FilteredOptions.js.map +1 -1
- package/esm/form/combobox/FilteredOptions/filteredOptionsContext.d.ts +4 -4
- package/esm/form/combobox/FilteredOptions/filteredOptionsContext.js +15 -16
- package/esm/form/combobox/FilteredOptions/filteredOptionsContext.js.map +1 -1
- package/esm/form/combobox/Input/{inputContext.d.ts → Input.context.d.ts} +7 -5
- package/esm/form/combobox/Input/{inputContext.js → Input.context.js} +22 -21
- package/esm/form/combobox/Input/Input.context.js.map +1 -0
- package/esm/form/combobox/Input/Input.js +1 -1
- package/esm/form/combobox/Input/Input.js.map +1 -1
- package/esm/form/combobox/Input/InputController.d.ts +3 -0
- package/esm/form/combobox/Input/InputController.js +41 -0
- package/esm/form/combobox/Input/InputController.js.map +1 -0
- package/esm/form/combobox/{ToggleListButton.js → Input/ToggleListButton.js} +1 -1
- package/esm/form/combobox/Input/ToggleListButton.js.map +1 -0
- package/esm/form/combobox/SelectedOptions/SelectedOptions.js +1 -1
- package/esm/form/combobox/SelectedOptions/SelectedOptions.js.map +1 -1
- package/esm/form/combobox/SelectedOptions/selectedOptionsContext.d.ts +4 -4
- package/esm/form/combobox/SelectedOptions/selectedOptionsContext.js +9 -14
- package/esm/form/combobox/SelectedOptions/selectedOptionsContext.js.map +1 -1
- package/esm/form/combobox/customOptionsContext.d.ts +4 -4
- package/esm/form/combobox/customOptionsContext.js +10 -12
- package/esm/form/combobox/customOptionsContext.js.map +1 -1
- package/esm/form/combobox/types.d.ts +1 -1
- package/esm/help-text/HelpTextIcon.d.ts +1 -1
- package/esm/overlay/dismiss/DismissableLayer.d.ts +70 -0
- package/esm/overlay/dismiss/DismissableLayer.js +226 -0
- package/esm/overlay/dismiss/DismissableLayer.js.map +1 -0
- package/esm/overlay/dismiss/util/dispatchCustomEvent.d.ts +50 -0
- package/esm/overlay/dismiss/util/dispatchCustomEvent.js +58 -0
- package/esm/overlay/dismiss/util/dispatchCustomEvent.js.map +1 -0
- package/esm/overlay/dismiss/util/useEscapeKeydown.d.ts +1 -0
- package/esm/overlay/dismiss/util/useEscapeKeydown.js +15 -0
- package/esm/overlay/dismiss/util/useEscapeKeydown.js.map +1 -0
- package/esm/overlay/dismiss/util/useFocusOutside.d.ts +8 -0
- package/esm/overlay/dismiss/util/useFocusOutside.js +38 -0
- package/esm/overlay/dismiss/util/useFocusOutside.js.map +1 -0
- package/esm/overlay/dismiss/util/usePointerDownOutside.d.ts +10 -0
- package/esm/overlay/dismiss/util/usePointerDownOutside.js +80 -0
- package/esm/overlay/dismiss/util/usePointerDownOutside.js.map +1 -0
- package/esm/overlays/floating/Floating.d.ts +53 -0
- package/esm/overlays/floating/Floating.js +188 -0
- package/esm/overlays/floating/Floating.js.map +1 -0
- package/esm/overlays/floating/Floating.utils.d.ts +18 -0
- package/esm/overlays/floating/Floating.utils.js +48 -0
- package/esm/overlays/floating/Floating.utils.js.map +1 -0
- package/esm/popover/Popover.js +16 -31
- package/esm/popover/Popover.js.map +1 -1
- package/esm/progress-bar/ProgressBar.d.ts +20 -8
- package/esm/progress-bar/ProgressBar.js +20 -10
- package/esm/progress-bar/ProgressBar.js.map +1 -1
- package/esm/tabs/Tabs.context.d.ts +7 -3
- package/esm/tabs/Tabs.context.js +1 -0
- package/esm/tabs/Tabs.context.js.map +1 -1
- package/esm/timeline/AxisLabels.d.ts +1 -1
- package/esm/toggle-group/ToggleGroup.context.d.ts +7 -3
- package/esm/toggle-group/ToggleGroup.context.js +1 -0
- package/esm/toggle-group/ToggleGroup.context.js.map +1 -1
- package/esm/util/hooks/descendants/useDescendant.d.ts +2 -2
- package/esm/util/hooks/descendants/useDescendant.js +49 -52
- package/esm/util/hooks/descendants/useDescendant.js.map +1 -1
- package/esm/util/types/AsChild.d.ts +14 -0
- package/esm/util/types/AsChild.js +2 -0
- package/esm/util/types/AsChild.js.map +1 -0
- package/package.json +6 -5
- package/src/chat/Chat.tsx +2 -1
- package/src/date/datepicker/parts/DropdownCaption.tsx +5 -1
- package/src/date/monthpicker/MonthCaption.tsx +1 -1
- package/src/form/combobox/Combobox.tsx +6 -76
- package/src/form/combobox/ComboboxProvider.tsx +1 -1
- package/src/form/combobox/ComboboxWrapper.tsx +4 -3
- package/src/form/combobox/FilteredOptions/FilteredOptions.tsx +3 -3
- package/src/form/combobox/FilteredOptions/filteredOptionsContext.tsx +19 -29
- package/src/form/combobox/Input/{inputContext.tsx → Input.context.tsx} +30 -33
- package/src/form/combobox/Input/Input.tsx +1 -1
- package/src/form/combobox/Input/InputController.tsx +102 -0
- package/src/form/combobox/{ToggleListButton.tsx → Input/ToggleListButton.tsx} +1 -1
- package/src/form/combobox/SelectedOptions/SelectedOptions.tsx +1 -1
- package/src/form/combobox/SelectedOptions/selectedOptionsContext.tsx +12 -26
- package/src/form/combobox/{combobox-utils.test.ts → __tests__/combobox-utils.test.ts} +1 -1
- package/src/form/combobox/{combobox.test.tsx → __tests__/combobox.test.tsx} +2 -3
- package/src/form/combobox/customOptionsContext.tsx +14 -18
- package/src/form/combobox/types.ts +3 -1
- package/src/overlay/README.md +5 -0
- package/src/overlay/dismiss/DismissableLayer.tsx +368 -0
- package/src/overlay/dismiss/util/dispatchCustomEvent.ts +77 -0
- package/src/overlay/dismiss/util/useEscapeKeydown.ts +21 -0
- package/src/overlay/dismiss/util/useFocusOutside.ts +52 -0
- package/src/overlay/dismiss/util/usePointerDownOutside.ts +95 -0
- package/src/overlays/floating/Floating.tsx +399 -0
- package/src/overlays/floating/Floating.utils.ts +63 -0
- package/src/popover/Popover.tsx +38 -70
- package/src/progress-bar/ProgressBar.tsx +45 -20
- package/src/tabs/Tabs.context.ts +2 -0
- package/src/toggle-group/ToggleGroup.context.ts +1 -0
- package/src/util/hooks/descendants/useDescendant.tsx +55 -68
- package/src/util/types/AsChild.ts +15 -0
- package/cjs/form/combobox/ClearButton.d.ts +0 -7
- package/cjs/form/combobox/ClearButton.js +0 -28
- package/cjs/form/combobox/ClearButton.js.map +0 -1
- package/cjs/form/combobox/FilteredOptions/CheckIcon.d.ts +0 -3
- package/cjs/form/combobox/FilteredOptions/CheckIcon.js +0 -12
- package/cjs/form/combobox/FilteredOptions/CheckIcon.js.map +0 -1
- package/cjs/form/combobox/Input/inputContext.js.map +0 -1
- package/cjs/form/combobox/ToggleListButton.js.map +0 -1
- package/esm/form/combobox/ClearButton.d.ts +0 -7
- package/esm/form/combobox/ClearButton.js +0 -21
- package/esm/form/combobox/ClearButton.js.map +0 -1
- package/esm/form/combobox/FilteredOptions/CheckIcon.d.ts +0 -3
- package/esm/form/combobox/FilteredOptions/CheckIcon.js +0 -7
- package/esm/form/combobox/FilteredOptions/CheckIcon.js.map +0 -1
- package/esm/form/combobox/Input/inputContext.js.map +0 -1
- package/esm/form/combobox/ToggleListButton.js.map +0 -1
- package/src/form/combobox/ClearButton.tsx +0 -29
- package/src/form/combobox/FilteredOptions/CheckIcon.tsx +0 -23
- /package/cjs/form/combobox/{ToggleListButton.d.ts → Input/ToggleListButton.d.ts} +0 -0
- /package/esm/form/combobox/{ToggleListButton.d.ts → Input/ToggleListButton.d.ts} +0 -0
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
26
|
+
var t = {};
|
|
27
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
28
|
+
t[p] = s[p];
|
|
29
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
30
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
31
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
32
|
+
t[p[i]] = s[p[i]];
|
|
33
|
+
}
|
|
34
|
+
return t;
|
|
35
|
+
};
|
|
36
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
37
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
38
|
+
};
|
|
39
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
40
|
+
exports.InputController = void 0;
|
|
41
|
+
/* eslint-disable jsx-a11y/no-static-element-interactions */
|
|
42
|
+
const clsx_1 = __importDefault(require("clsx"));
|
|
43
|
+
const react_1 = __importStar(require("react"));
|
|
44
|
+
const aksel_icons_1 = require("@navikt/aksel-icons");
|
|
45
|
+
const hooks_1 = require("../../../util/hooks");
|
|
46
|
+
const filteredOptionsContext_1 = require("../FilteredOptions/filteredOptionsContext");
|
|
47
|
+
const SelectedOptions_1 = __importDefault(require("../SelectedOptions/SelectedOptions"));
|
|
48
|
+
const selectedOptionsContext_1 = require("../SelectedOptions/selectedOptionsContext");
|
|
49
|
+
const Input_1 = __importDefault(require("./Input"));
|
|
50
|
+
const Input_context_1 = require("./Input.context");
|
|
51
|
+
const ToggleListButton_1 = __importDefault(require("./ToggleListButton"));
|
|
52
|
+
/* eslint-disable jsx-a11y/click-events-have-key-events */
|
|
53
|
+
exports.InputController = (0, react_1.forwardRef)((props, ref) => {
|
|
54
|
+
const { clearButton = true, clearButtonLabel, toggleListButton = true, toggleListButtonLabel, inputClassName, shouldShowSelectedOptions = true } = props, rest = __rest(props, ["clearButton", "clearButtonLabel", "toggleListButton", "toggleListButtonLabel", "inputClassName", "shouldShowSelectedOptions"]);
|
|
55
|
+
const { clearInput, focusInput, inputProps, value, size = "medium", inputRef, toggleOpenButtonRef, } = (0, Input_context_1.useInputContext)();
|
|
56
|
+
const { activeDecendantId } = (0, filteredOptionsContext_1.useFilteredOptionsContext)();
|
|
57
|
+
const { selectedOptions } = (0, selectedOptionsContext_1.useSelectedOptionsContext)();
|
|
58
|
+
const mergedInputRef = (0, hooks_1.useMergeRefs)(inputRef, ref);
|
|
59
|
+
return (react_1.default.createElement("div", { className: (0, clsx_1.default)("navds-combobox__wrapper-inner navds-text-field__input", {
|
|
60
|
+
"navds-combobox__wrapper-inner--virtually-unfocused": activeDecendantId !== undefined,
|
|
61
|
+
}), onClick: focusInput },
|
|
62
|
+
!shouldShowSelectedOptions ? (react_1.default.createElement(Input_1.default, Object.assign({ id: inputProps.id, ref: mergedInputRef, inputClassName: inputClassName }, rest))) : (react_1.default.createElement(SelectedOptions_1.default, { selectedOptions: selectedOptions, size: size },
|
|
63
|
+
react_1.default.createElement(Input_1.default, Object.assign({ id: inputProps.id, ref: mergedInputRef, inputClassName: inputClassName }, rest)))),
|
|
64
|
+
react_1.default.createElement("div", null,
|
|
65
|
+
value && clearButton && (react_1.default.createElement("button", { type: "button", onClick: clearInput, className: "navds-combobox__button-clear", tabIndex: -1 },
|
|
66
|
+
react_1.default.createElement("span", { className: "navds-sr-only" }, clearButtonLabel ? clearButtonLabel : "Tøm"),
|
|
67
|
+
react_1.default.createElement(aksel_icons_1.XMarkIcon, { "aria-hidden": true }))),
|
|
68
|
+
toggleListButton && (react_1.default.createElement(ToggleListButton_1.default, { toggleListButtonLabel: toggleListButtonLabel, ref: toggleOpenButtonRef })))));
|
|
69
|
+
});
|
|
70
|
+
//# sourceMappingURL=InputController.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InputController.js","sourceRoot":"","sources":["../../../../src/form/combobox/Input/InputController.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,4DAA4D;AAC5D,gDAAsB;AACtB,+CAA0C;AAC1C,qDAAgD;AAChD,+CAAmD;AACnD,sFAAsF;AACtF,yFAAiE;AACjE,sFAAsF;AAEtF,oDAA4B;AAC5B,mDAAkD;AAClD,0EAAkD;AAElD,0DAA0D;AAC7C,QAAA,eAAe,GAAG,IAAA,kBAAU,EAavC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACf,MAAM,EACJ,WAAW,GAAG,IAAI,EAClB,gBAAgB,EAChB,gBAAgB,GAAG,IAAI,EACvB,qBAAqB,EACrB,cAAc,EACd,yBAAyB,GAAG,IAAI,KAE9B,KAAK,EADJ,IAAI,UACL,KAAK,EARH,+HAQL,CAAQ,CAAC;IAEV,MAAM,EACJ,UAAU,EACV,UAAU,EACV,UAAU,EACV,KAAK,EACL,IAAI,GAAG,QAAQ,EACf,QAAQ,EACR,mBAAmB,GACpB,GAAG,IAAA,+BAAe,GAAE,CAAC;IAEtB,MAAM,EAAE,iBAAiB,EAAE,GAAG,IAAA,kDAAyB,GAAE,CAAC;IAC1D,MAAM,EAAE,eAAe,EAAE,GAAG,IAAA,kDAAyB,GAAE,CAAC;IAExD,MAAM,cAAc,GAAG,IAAA,oBAAY,EAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAEnD,OAAO,CACL,uCACE,SAAS,EAAE,IAAA,cAAE,EAAC,uDAAuD,EAAE;YACrE,oDAAoD,EAClD,iBAAiB,KAAK,SAAS;SAClC,CAAC,EACF,OAAO,EAAE,UAAU;QAElB,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAC5B,8BAAC,eAAK,kBACJ,EAAE,EAAE,UAAU,CAAC,EAAE,EACjB,GAAG,EAAE,cAAc,EACnB,cAAc,EAAE,cAAc,IAC1B,IAAI,EACR,CACH,CAAC,CAAC,CAAC,CACF,8BAAC,yBAAe,IAAC,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI;YAC3D,8BAAC,eAAK,kBACJ,EAAE,EAAE,UAAU,CAAC,EAAE,EACjB,GAAG,EAAE,cAAc,EACnB,cAAc,EAAE,cAAc,IAC1B,IAAI,EACR,CACc,CACnB;QACD;YACG,KAAK,IAAI,WAAW,IAAI,CACvB,0CACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,UAAU,EACnB,SAAS,EAAC,8BAA8B,EACxC,QAAQ,EAAE,CAAC,CAAC;gBAEZ,wCAAM,SAAS,EAAC,eAAe,IAC5B,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CACvC;gBACP,8BAAC,uBAAS,0BAAe,CAClB,CACV;YACA,gBAAgB,IAAI,CACnB,8BAAC,0BAAgB,IACf,qBAAqB,EAAE,qBAAqB,EAC5C,GAAG,EAAE,mBAAmB,GACxB,CACH,CACG,CACF,CACP,CAAC;AACJ,CAAC,CAAC,CAAC"}
|
|
@@ -26,7 +26,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
26
26
|
exports.ToggleListButton = void 0;
|
|
27
27
|
const react_1 = __importStar(require("react"));
|
|
28
28
|
const aksel_icons_1 = require("@navikt/aksel-icons");
|
|
29
|
-
const filteredOptionsContext_1 = require("
|
|
29
|
+
const filteredOptionsContext_1 = require("../FilteredOptions/filteredOptionsContext");
|
|
30
30
|
exports.ToggleListButton = (0, react_1.forwardRef)(({ toggleListButtonLabel }, ref) => {
|
|
31
31
|
const { isListOpen, toggleIsListOpen } = (0, filteredOptionsContext_1.useFilteredOptionsContext)();
|
|
32
32
|
return (react_1.default.createElement("button", { type: "button", onPointerUp: () => toggleIsListOpen(), onKeyDown: ({ key }) => key === "Enter" && toggleIsListOpen(), className: "navds-combobox__button-toggle-list", "aria-expanded": isListOpen, tabIndex: -1, ref: ref },
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ToggleListButton.js","sourceRoot":"","sources":["../../../../src/form/combobox/Input/ToggleListButton.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAA0C;AAC1C,qDAAqE;AACrE,sFAAsF;AAMzE,QAAA,gBAAgB,GAAG,IAAA,kBAAU,EAGxC,CAAC,EAAE,qBAAqB,EAAE,EAAE,GAAG,EAAE,EAAE;IACnC,MAAM,EAAE,UAAU,EAAE,gBAAgB,EAAE,GAAG,IAAA,kDAAyB,GAAE,CAAC;IACrE,OAAO,CACL,0CACE,IAAI,EAAC,QAAQ,EACb,WAAW,EAAE,GAAG,EAAE,CAAC,gBAAgB,EAAE,EACrC,SAAS,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,GAAG,KAAK,OAAO,IAAI,gBAAgB,EAAE,EAC7D,SAAS,EAAC,oCAAoC,mBAC/B,UAAU,EACzB,QAAQ,EAAE,CAAC,CAAC,EACZ,GAAG,EAAE,GAAG;QAER,wCAAM,SAAS,EAAC,eAAe,IAC5B,qBAAqB,aAArB,qBAAqB,cAArB,qBAAqB,GAAI,cAAc,CACnC;QACN,UAAU,CAAC,CAAC,CAAC,CACZ,8BAAC,2BAAa,0BAAe,CAC9B,CAAC,CAAC,CAAC,CACF,8BAAC,6BAAe,0BAAe,CAChC,CACM,CACV,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,kBAAe,wBAAgB,CAAC"}
|
|
@@ -5,11 +5,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const react_1 = __importDefault(require("react"));
|
|
7
7
|
const chips_1 = require("../../../chips");
|
|
8
|
-
const
|
|
8
|
+
const Input_context_1 = require("../Input/Input.context");
|
|
9
9
|
const selectedOptionsContext_1 = require("./selectedOptionsContext");
|
|
10
10
|
const Option = ({ option }) => {
|
|
11
11
|
const { isMultiSelect, removeSelectedOption } = (0, selectedOptionsContext_1.useSelectedOptionsContext)();
|
|
12
|
-
const { focusInput } = (0,
|
|
12
|
+
const { focusInput } = (0, Input_context_1.useInputContext)();
|
|
13
13
|
const onClick = (e) => {
|
|
14
14
|
e.stopPropagation();
|
|
15
15
|
removeSelectedOption(option);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SelectedOptions.js","sourceRoot":"","sources":["../../../../src/form/combobox/SelectedOptions/SelectedOptions.tsx"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAC1B,0CAAuC;AACvC,
|
|
1
|
+
{"version":3,"file":"SelectedOptions.js","sourceRoot":"","sources":["../../../../src/form/combobox/SelectedOptions/SelectedOptions.tsx"],"names":[],"mappings":";;;;;AAAA,kDAA0B;AAC1B,0CAAuC;AACvC,0DAAyD;AAEzD,qEAAqE;AAQrE,MAAM,MAAM,GAAG,CAAC,EAAE,MAAM,EAA8B,EAAE,EAAE;IACxD,MAAM,EAAE,aAAa,EAAE,oBAAoB,EAAE,GAAG,IAAA,kDAAyB,GAAE,CAAC;IAC5E,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,+BAAe,GAAE,CAAC;IAEzC,MAAM,OAAO,GAAG,CAAC,CAAC,EAAE,EAAE;QACpB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,oBAAoB,CAAC,MAAM,CAAC,CAAC;QAC7B,UAAU,EAAE,CAAC;IACf,CAAC,CAAC;IAEF,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,OAAO,CACL,uCAAK,SAAS,EAAC,yCAAyC,IACrD,MAAM,CAAC,KAAK,CACT,CACP,CAAC;IACJ,CAAC;IAED,OAAO,8BAAC,aAAK,CAAC,SAAS,IAAC,OAAO,EAAE,OAAO,IAAG,MAAM,CAAC,KAAK,CAAmB,CAAC;AAC7E,CAAC,CAAC;AAEF,MAAM,eAAe,GAAmC,CAAC,EACvD,eAAe,GAAG,EAAE,EACpB,IAAI,EACJ,QAAQ,GACT,EAAE,EAAE;IACH,OAAO,CACL,8BAAC,aAAK,IAAC,SAAS,EAAC,kCAAkC,EAAC,IAAI,EAAE,IAAI;QAC3D,eAAe,CAAC,MAAM;YACrB,CAAC,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CACjC,8BAAC,MAAM,IAAC,GAAG,EAAE,MAAM,CAAC,KAAK,GAAG,CAAC,EAAE,MAAM,EAAE,MAAM,GAAI,CAClD,CAAC;YACJ,CAAC,CAAC,EAAE;QACL,QAAQ,CACH,CACT,CAAC;AACJ,CAAC,CAAC;AAEF,kBAAe,eAAe,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { ComboboxOption, ComboboxProps, MaxSelected } from "../types";
|
|
3
|
-
type
|
|
3
|
+
type SelectedOptionsContextValue = {
|
|
4
4
|
addSelectedOption: (option: ComboboxOption) => void;
|
|
5
5
|
isMultiSelect?: boolean;
|
|
6
6
|
removeSelectedOption: (option: ComboboxOption) => void;
|
|
@@ -12,12 +12,12 @@ type SelectedOptionsContextType = {
|
|
|
12
12
|
setSelectedOptions: (any: any) => void;
|
|
13
13
|
toggleOption: (option: ComboboxOption, event: React.KeyboardEvent | React.PointerEvent) => void;
|
|
14
14
|
};
|
|
15
|
-
|
|
15
|
+
declare const useSelectedOptionsContext: <S extends boolean = true>(strict?: S) => S extends true ? SelectedOptionsContextValue : SelectedOptionsContextValue | undefined;
|
|
16
|
+
declare const SelectedOptionsProvider: ({ children, value, }: {
|
|
16
17
|
children: any;
|
|
17
18
|
value: Pick<ComboboxProps, "allowNewValues" | "isMultiSelect" | "onToggleSelected" | "maxSelected"> & {
|
|
18
19
|
options: ComboboxOption[];
|
|
19
20
|
selectedOptions?: ComboboxOption[];
|
|
20
21
|
};
|
|
21
22
|
}) => React.JSX.Element;
|
|
22
|
-
export
|
|
23
|
-
export {};
|
|
23
|
+
export { SelectedOptionsProvider, useSelectedOptionsContext };
|
|
@@ -25,14 +25,16 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
26
|
exports.useSelectedOptionsContext = exports.SelectedOptionsProvider = void 0;
|
|
27
27
|
const react_1 = __importStar(require("react"));
|
|
28
|
+
const create_context_1 = require("../../../util/create-context");
|
|
28
29
|
const hooks_1 = require("../../../util/hooks");
|
|
29
|
-
const
|
|
30
|
+
const Input_context_1 = require("../Input/Input.context");
|
|
30
31
|
const combobox_utils_1 = require("../combobox-utils");
|
|
31
32
|
const customOptionsContext_1 = require("../customOptionsContext");
|
|
32
|
-
const
|
|
33
|
+
const [SelectedOptionsContextProvider, useSelectedOptionsContext] = (0, create_context_1.createContext)();
|
|
34
|
+
exports.useSelectedOptionsContext = useSelectedOptionsContext;
|
|
33
35
|
const SelectedOptionsProvider = ({ children, value, }) => {
|
|
34
|
-
const { clearInput, focusInput } = (0,
|
|
35
|
-
const { customOptions, removeCustomOption, addCustomOption, setCustomOptions, } = (0, customOptionsContext_1.
|
|
36
|
+
const { clearInput, focusInput } = (0, Input_context_1.useInputContext)();
|
|
37
|
+
const { customOptions, removeCustomOption, addCustomOption, setCustomOptions, } = (0, customOptionsContext_1.useComboboxCustomOptions)();
|
|
36
38
|
const { allowNewValues, isMultiSelect, selectedOptions: externalSelectedOptions, onToggleSelected, options, maxSelected, } = value;
|
|
37
39
|
const [internalSelectedOptions, setSelectedOptions] = (0, react_1.useState)([]);
|
|
38
40
|
const selectedOptions = (0, react_1.useMemo)(() => externalSelectedOptions !== null && externalSelectedOptions !== void 0 ? externalSelectedOptions : [...customOptions, ...internalSelectedOptions], [customOptions, externalSelectedOptions, internalSelectedOptions]);
|
|
@@ -99,15 +101,7 @@ const SelectedOptionsProvider = ({ children, value, }) => {
|
|
|
99
101
|
toggleOption,
|
|
100
102
|
maxSelected: maxSelected && Object.assign(Object.assign({}, maxSelected), { isLimitReached }),
|
|
101
103
|
};
|
|
102
|
-
return (react_1.default.createElement(
|
|
104
|
+
return (react_1.default.createElement(SelectedOptionsContextProvider, Object.assign({}, selectedOptionsState), children));
|
|
103
105
|
};
|
|
104
106
|
exports.SelectedOptionsProvider = SelectedOptionsProvider;
|
|
105
|
-
const useSelectedOptionsContext = () => {
|
|
106
|
-
const context = (0, react_1.useContext)(SelectedOptionsContext);
|
|
107
|
-
if (!context) {
|
|
108
|
-
throw new Error("useSelectedOptionsContext must be used within a SelectedOptionsProvider");
|
|
109
|
-
}
|
|
110
|
-
return context;
|
|
111
|
-
};
|
|
112
|
-
exports.useSelectedOptionsContext = useSelectedOptionsContext;
|
|
113
107
|
//# sourceMappingURL=selectedOptionsContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"selectedOptionsContext.js","sourceRoot":"","sources":["../../../../src/form/combobox/SelectedOptions/selectedOptionsContext.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+
|
|
1
|
+
{"version":3,"file":"selectedOptionsContext.js","sourceRoot":"","sources":["../../../../src/form/combobox/SelectedOptions/selectedOptionsContext.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,16 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
import { ComboboxOption } from "./types";
|
|
3
|
-
type
|
|
3
|
+
type CustomOptionsContextValue = {
|
|
4
4
|
customOptions: ComboboxOption[];
|
|
5
5
|
removeCustomOption: (option: ComboboxOption) => void;
|
|
6
6
|
addCustomOption: (option: ComboboxOption) => void;
|
|
7
7
|
setCustomOptions: React.Dispatch<React.SetStateAction<ComboboxOption[]>>;
|
|
8
8
|
};
|
|
9
|
-
|
|
9
|
+
declare const useComboboxCustomOptions: <S extends boolean = true>(strict?: S) => S extends true ? CustomOptionsContextValue : CustomOptionsContextValue | undefined;
|
|
10
|
+
declare const CustomOptionsProvider: ({ children, value, }: {
|
|
10
11
|
children: any;
|
|
11
12
|
value: {
|
|
12
13
|
isMultiSelect?: boolean;
|
|
13
14
|
};
|
|
14
15
|
}) => React.JSX.Element;
|
|
15
|
-
export
|
|
16
|
-
export {};
|
|
16
|
+
export { CustomOptionsProvider, useComboboxCustomOptions };
|
|
@@ -23,13 +23,18 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
23
23
|
return result;
|
|
24
24
|
};
|
|
25
25
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.
|
|
26
|
+
exports.useComboboxCustomOptions = exports.CustomOptionsProvider = void 0;
|
|
27
27
|
const react_1 = __importStar(require("react"));
|
|
28
|
-
const
|
|
29
|
-
const
|
|
28
|
+
const create_context_1 = require("../../util/create-context");
|
|
29
|
+
const Input_context_1 = require("./Input/Input.context");
|
|
30
|
+
const [ComboboxCustomOptionsProvider, useComboboxCustomOptions] = (0, create_context_1.createContext)({
|
|
31
|
+
name: "ComboboxCustomOptions",
|
|
32
|
+
errorMessage: "useComboboxCustomOptions must be used within a ComboboxCustomOptionsProvider",
|
|
33
|
+
});
|
|
34
|
+
exports.useComboboxCustomOptions = useComboboxCustomOptions;
|
|
30
35
|
const CustomOptionsProvider = ({ children, value, }) => {
|
|
31
36
|
const [customOptions, setCustomOptions] = (0, react_1.useState)([]);
|
|
32
|
-
const { focusInput } = (0,
|
|
37
|
+
const { focusInput } = (0, Input_context_1.useInputContext)();
|
|
33
38
|
const { isMultiSelect } = value;
|
|
34
39
|
const removeCustomOption = (0, react_1.useCallback)((option) => {
|
|
35
40
|
setCustomOptions((prevCustomOptions) => prevCustomOptions.filter((o) => o.label !== option.label));
|
|
@@ -50,15 +55,7 @@ const CustomOptionsProvider = ({ children, value, }) => {
|
|
|
50
55
|
addCustomOption,
|
|
51
56
|
setCustomOptions,
|
|
52
57
|
};
|
|
53
|
-
return (react_1.default.createElement(
|
|
58
|
+
return (react_1.default.createElement(ComboboxCustomOptionsProvider, Object.assign({}, customOptionsState), children));
|
|
54
59
|
};
|
|
55
60
|
exports.CustomOptionsProvider = CustomOptionsProvider;
|
|
56
|
-
const useCustomOptionsContext = () => {
|
|
57
|
-
const context = (0, react_1.useContext)(CustomOptionsContext);
|
|
58
|
-
if (!context) {
|
|
59
|
-
throw new Error("useCustomOptionsContext must be used within a CustomOptionsProvider");
|
|
60
|
-
}
|
|
61
|
-
return context;
|
|
62
|
-
};
|
|
63
|
-
exports.useCustomOptionsContext = useCustomOptionsContext;
|
|
64
61
|
//# sourceMappingURL=customOptionsContext.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"customOptionsContext.js","sourceRoot":"","sources":["../../../src/form/combobox/customOptionsContext.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+
|
|
1
|
+
{"version":3,"file":"customOptionsContext.js","sourceRoot":"","sources":["../../../src/form/combobox/customOptionsContext.tsx"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,+CAAqD;AACrD,8DAA0D;AAC1D,yDAAwD;AAUxD,MAAM,CAAC,6BAA6B,EAAE,wBAAwB,CAAC,GAC7D,IAAA,8BAAa,EAA4B;IACvC,IAAI,EAAE,uBAAuB;IAC7B,YAAY,EACV,8EAA8E;CACjF,CAAC,CAAC;AAiD2B,4DAAwB;AA/CxD,MAAM,qBAAqB,GAAG,CAAC,EAC7B,QAAQ,EACR,KAAK,GAIN,EAAE,EAAE;IACH,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,IAAA,gBAAQ,EAAmB,EAAE,CAAC,CAAC;IACzE,MAAM,EAAE,UAAU,EAAE,GAAG,IAAA,+BAAe,GAAE,CAAC;IACzC,MAAM,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;IAEhC,MAAM,kBAAkB,GAAG,IAAA,mBAAW,EACpC,CAAC,MAAsB,EAAE,EAAE;QACzB,gBAAgB,CAAC,CAAC,iBAAiB,EAAE,EAAE,CACrC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,KAAK,CAAC,CAC1D,CAAC;QACF,UAAU,EAAE,CAAC;IACf,CAAC,EACD,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAC/B,CAAC;IAEF,MAAM,eAAe,GAAG,IAAA,mBAAW,EACjC,CAAC,MAAsB,EAAE,EAAE;QACzB,IAAI,aAAa,EAAE,CAAC;YAClB,gBAAgB,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,GAAG,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC;QAC9D,CAAC;aAAM,CAAC;YACN,gBAAgB,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QAC7B,CAAC;QACD,UAAU,EAAE,CAAC;IACf,CAAC,EACD,CAAC,UAAU,EAAE,aAAa,EAAE,gBAAgB,CAAC,CAC9C,CAAC;IAEF,MAAM,kBAAkB,GAAG;QACzB,aAAa;QACb,kBAAkB;QAClB,eAAe;QACf,gBAAgB;KACjB,CAAC;IAEF,OAAO,CACL,8BAAC,6BAA6B,oBAAK,kBAAkB,GAClD,QAAQ,CACqB,CACjC,CAAC;AACJ,CAAC,CAAC;AAEO,sDAAqB"}
|
|
@@ -92,7 +92,7 @@ export interface ComboboxProps extends FormFieldProps, Omit<InputHTMLAttributes<
|
|
|
92
92
|
*
|
|
93
93
|
* @param event
|
|
94
94
|
*/
|
|
95
|
-
onClear?: (event: React.PointerEvent | React.KeyboardEvent) => void;
|
|
95
|
+
onClear?: (event: React.PointerEvent | React.KeyboardEvent | React.MouseEvent) => void;
|
|
96
96
|
/**
|
|
97
97
|
* Callback function triggered whenever an option is selected or de-selected.
|
|
98
98
|
*
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import React, { CSSProperties } from "react";
|
|
2
|
+
import { AsChild } from "../../util/types/AsChild";
|
|
3
|
+
import { CustomFocusEvent, CustomPointerDownEvent } from "./util/dispatchCustomEvent";
|
|
4
|
+
interface DismissableLayerBaseProps {
|
|
5
|
+
/**
|
|
6
|
+
* When `true`, hover/focus/click interactions will be disabled on elements outside
|
|
7
|
+
* the `DismissableLayer`. Users will need to click twice on outside elements to
|
|
8
|
+
* interact with them: once to close the `DismissableLayer`, and again to trigger the element.
|
|
9
|
+
*/
|
|
10
|
+
disableOutsidePointerEvents?: boolean;
|
|
11
|
+
/**
|
|
12
|
+
* Event handler called when the escape key is down.
|
|
13
|
+
* Can be prevented.
|
|
14
|
+
*/
|
|
15
|
+
onEscapeKeyDown?: (event: KeyboardEvent) => void;
|
|
16
|
+
/**
|
|
17
|
+
* Event handler called when the a `pointerdown` event happens outside of the `DismissableLayer`.
|
|
18
|
+
* Can be prevented.
|
|
19
|
+
*/
|
|
20
|
+
onPointerDownOutside?: (event: CustomPointerDownEvent) => void;
|
|
21
|
+
/**
|
|
22
|
+
* Event handler called when the focus moves outside of the `DismissableLayer`.
|
|
23
|
+
* Can be prevented.
|
|
24
|
+
*/
|
|
25
|
+
onFocusOutside?: (event: CustomFocusEvent) => void;
|
|
26
|
+
/**
|
|
27
|
+
* Event handler called when an interaction happens outside the `DismissableLayer`.
|
|
28
|
+
* Specifically, when a `pointerdown` event happens outside or focus moves outside of it.
|
|
29
|
+
* Can be prevented.
|
|
30
|
+
*/
|
|
31
|
+
onInteractOutside?: (event: CustomPointerDownEvent | CustomFocusEvent) => void;
|
|
32
|
+
/**
|
|
33
|
+
* Handler called when the `DismissableLayer` should be dismissed
|
|
34
|
+
*/
|
|
35
|
+
onDismiss?: () => void;
|
|
36
|
+
/**
|
|
37
|
+
* Stops `onDismiss` from beeing called when interacting with the `safeZone` elements.
|
|
38
|
+
* `safeZone.dismissable` is only needed when its element does not have a `tabIndex` since it will not receive focus-events.
|
|
39
|
+
*/
|
|
40
|
+
safeZone?: {
|
|
41
|
+
anchor?: Element | null;
|
|
42
|
+
dismissable?: Element | null;
|
|
43
|
+
};
|
|
44
|
+
style?: CSSProperties;
|
|
45
|
+
/**
|
|
46
|
+
* Disables layer from beeing counted in context for nested `DismissableLayer`.
|
|
47
|
+
*/
|
|
48
|
+
enabled?: boolean;
|
|
49
|
+
}
|
|
50
|
+
type DismissableLayerProps = DismissableLayerBaseProps & AsChild;
|
|
51
|
+
export declare const DismissableDescendantsProvider: React.Provider<import("../../util/hooks/descendants/descendant").DescendantsManager<HTMLDivElement, {
|
|
52
|
+
disableOutsidePointerEvents: boolean;
|
|
53
|
+
}>>, useDismissableDescendantsContext: <S extends boolean = true>(strict?: S) => S extends true ? import("../../util/hooks/descendants/descendant").DescendantsManager<HTMLDivElement, {
|
|
54
|
+
disableOutsidePointerEvents: boolean;
|
|
55
|
+
}> : import("../../util/hooks/descendants/descendant").DescendantsManager<HTMLDivElement, {
|
|
56
|
+
disableOutsidePointerEvents: boolean;
|
|
57
|
+
}> | undefined, useDismissableDescendants: () => import("../../util/hooks/descendants/descendant").DescendantsManager<HTMLDivElement, {
|
|
58
|
+
disableOutsidePointerEvents: boolean;
|
|
59
|
+
}>, useDismissableDescendant: (options?: import("../../util/hooks/descendants/descendant").DescendantOptions<{
|
|
60
|
+
disableOutsidePointerEvents: boolean;
|
|
61
|
+
}> | undefined) => {
|
|
62
|
+
descendants: import("../../util/hooks/descendants/descendant").DescendantsManager<HTMLDivElement, {
|
|
63
|
+
disableOutsidePointerEvents: boolean;
|
|
64
|
+
}>;
|
|
65
|
+
index: number;
|
|
66
|
+
enabledIndex: number;
|
|
67
|
+
register: (instance: HTMLDivElement | null) => void;
|
|
68
|
+
};
|
|
69
|
+
declare const DismissableLayer: React.ForwardRefExoticComponent<DismissableLayerProps & React.RefAttributes<HTMLDivElement>>;
|
|
70
|
+
export { DismissableLayer, type DismissableLayerProps };
|
|
@@ -0,0 +1,253 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
26
|
+
var t = {};
|
|
27
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
28
|
+
t[p] = s[p];
|
|
29
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
30
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
31
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
32
|
+
t[p[i]] = s[p[i]];
|
|
33
|
+
}
|
|
34
|
+
return t;
|
|
35
|
+
};
|
|
36
|
+
var _a;
|
|
37
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
|
+
exports.DismissableLayer = exports.useDismissableDescendant = exports.useDismissableDescendants = exports.useDismissableDescendantsContext = exports.DismissableDescendantsProvider = void 0;
|
|
39
|
+
const react_1 = __importStar(require("react"));
|
|
40
|
+
const Slot_1 = require("../../util/Slot");
|
|
41
|
+
const hooks_1 = require("../../util/hooks");
|
|
42
|
+
const useDescendant_1 = require("../../util/hooks/descendants/useDescendant");
|
|
43
|
+
const useEscapeKeydown_1 = require("./util/useEscapeKeydown");
|
|
44
|
+
const useFocusOutside_1 = require("./util/useFocusOutside");
|
|
45
|
+
const usePointerDownOutside_1 = require("./util/usePointerDownOutside");
|
|
46
|
+
_a = (0, useDescendant_1.createDescendantContext)(), exports.DismissableDescendantsProvider = _a[0], exports.useDismissableDescendantsContext = _a[1], exports.useDismissableDescendants = _a[2], exports.useDismissableDescendant = _a[3];
|
|
47
|
+
let originalBodyPointerEvents;
|
|
48
|
+
const DismissableLayer = (0, react_1.forwardRef)((props, ref) => {
|
|
49
|
+
const context = (0, exports.useDismissableDescendantsContext)(false);
|
|
50
|
+
/**
|
|
51
|
+
* To correctly handle nested DismissableLayer,
|
|
52
|
+
* we only initialize the `Descendants`-API for the root layer to aboid resetting context
|
|
53
|
+
*/
|
|
54
|
+
return context ? (react_1.default.createElement(DismissableLayerNode, Object.assign({ ref: ref }, props))) : (react_1.default.createElement(DismissableRoot, null,
|
|
55
|
+
react_1.default.createElement(DismissableLayerNode, Object.assign({ ref: ref }, props))));
|
|
56
|
+
});
|
|
57
|
+
exports.DismissableLayer = DismissableLayer;
|
|
58
|
+
/**
|
|
59
|
+
* DismissableRoot
|
|
60
|
+
*
|
|
61
|
+
* Used to initialize the `Descendants`-API at the root layer.
|
|
62
|
+
* All subsequent layers will use the same context.
|
|
63
|
+
*/
|
|
64
|
+
const DismissableRoot = ({ children }) => {
|
|
65
|
+
const descendants = (0, exports.useDismissableDescendants)();
|
|
66
|
+
return (react_1.default.createElement(exports.DismissableDescendantsProvider, { value: descendants }, children));
|
|
67
|
+
};
|
|
68
|
+
const DismissableLayerNode = (0, react_1.forwardRef)((_a, ref) => {
|
|
69
|
+
var _b;
|
|
70
|
+
var { children, asChild, onEscapeKeyDown, onPointerDownOutside, onFocusOutside, onInteractOutside, onDismiss, safeZone, disableOutsidePointerEvents = false, enabled = true } = _a, rest = __rest(_a, ["children", "asChild", "onEscapeKeyDown", "onPointerDownOutside", "onFocusOutside", "onInteractOutside", "onDismiss", "safeZone", "disableOutsidePointerEvents", "enabled"]);
|
|
71
|
+
const { register, index, descendants } = (0, exports.useDismissableDescendant)({
|
|
72
|
+
disableOutsidePointerEvents,
|
|
73
|
+
disabled: !enabled,
|
|
74
|
+
});
|
|
75
|
+
/**
|
|
76
|
+
* `node` will be set to the ref of the component or nested component
|
|
77
|
+
* Ex: If
|
|
78
|
+
* ```
|
|
79
|
+
* <DismissableLayer asChild>
|
|
80
|
+
* <Popover />
|
|
81
|
+
* </DismissableLayer>
|
|
82
|
+
* ```
|
|
83
|
+
* `node` will in this case be the Popover-element.
|
|
84
|
+
* We use State her and not ref since we want to trigger a rerender when the node changes.
|
|
85
|
+
*/
|
|
86
|
+
const [node, setNode] = (0, react_1.useState)(null);
|
|
87
|
+
const mergedRefs = (0, hooks_1.useMergeRefs)(setNode, register, ref);
|
|
88
|
+
/**
|
|
89
|
+
* In some cases the `node.ownerDocument` can differ from global document.
|
|
90
|
+
* This can happend when portaling elements or using web-components
|
|
91
|
+
*/
|
|
92
|
+
const ownerDocument = (_b = node === null || node === void 0 ? void 0 : node.ownerDocument) !== null && _b !== void 0 ? _b : globalThis === null || globalThis === void 0 ? void 0 : globalThis.document;
|
|
93
|
+
const hasInteractedOutsideRef = (0, react_1.useRef)(false);
|
|
94
|
+
const hasPointerDownOutsideRef = (0, react_1.useRef)(false);
|
|
95
|
+
const pointerEnabled = (0, react_1.useMemo)(() => {
|
|
96
|
+
let lastIndex = -1;
|
|
97
|
+
const descendantNodes = descendants.enabledValues();
|
|
98
|
+
descendantNodes.forEach((obj, _index) => {
|
|
99
|
+
if (obj.disableOutsidePointerEvents) {
|
|
100
|
+
lastIndex = _index;
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
return {
|
|
104
|
+
/**
|
|
105
|
+
* Makes sure we stop events at the highest layer with pointer events disabled.
|
|
106
|
+
* If not checked, we risk closing every layer when clicking outside the layer.
|
|
107
|
+
*/
|
|
108
|
+
isPointerEventsEnabled: index >= lastIndex,
|
|
109
|
+
/**
|
|
110
|
+
* If we find a node with `disableOutsidePointerEvents` we want to disable pointer events on the body.
|
|
111
|
+
*/
|
|
112
|
+
isBodyPointerEventsDisabled: lastIndex > -1,
|
|
113
|
+
};
|
|
114
|
+
}, [descendants, index]);
|
|
115
|
+
/**
|
|
116
|
+
* We want to prevent the Layer from closing when the trigger, anchor element, or its child elements are interacted with.
|
|
117
|
+
*
|
|
118
|
+
* To achieve this, we check if the event target is the trigger, anchor or a child. If it is, we prevent default event behavior.
|
|
119
|
+
*
|
|
120
|
+
* The `pointerDownOutside` and `focusOutside` handlers already check if the event target is within the DismissableLayer (`node`).
|
|
121
|
+
* However, since we don't add a `tabIndex` to the Popover/Tooltip, the `focusOutside` handler doesn't correctly handle focus events.
|
|
122
|
+
* Therefore, we also need to check that neither the trigger (`anchor`) nor the DismissableLayer (`dismissable`) are the event targets.
|
|
123
|
+
*/
|
|
124
|
+
function handleOutsideEvent(event) {
|
|
125
|
+
var _a, _b;
|
|
126
|
+
if ((!(safeZone === null || safeZone === void 0 ? void 0 : safeZone.anchor) && !(safeZone === null || safeZone === void 0 ? void 0 : safeZone.dismissable)) || !enabled) {
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
129
|
+
if (!event.defaultPrevented) {
|
|
130
|
+
hasInteractedOutsideRef.current = true;
|
|
131
|
+
if (event.detail.originalEvent.type === "pointerdown") {
|
|
132
|
+
hasPointerDownOutsideRef.current = true;
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
const target = event.target;
|
|
136
|
+
/**
|
|
137
|
+
* pointerdown-events works as expected, but focus-events does not.
|
|
138
|
+
* For focus-event we need to also check `safeZone.dismissable` (the Popover/Tooltip itself) since it does not have a tabIndex.
|
|
139
|
+
*/
|
|
140
|
+
if (event.detail.originalEvent.type === "pointerdown") {
|
|
141
|
+
const targetIsTrigger = ((_a = safeZone === null || safeZone === void 0 ? void 0 : safeZone.anchor) === null || _a === void 0 ? void 0 : _a.contains(target)) || target === (safeZone === null || safeZone === void 0 ? void 0 : safeZone.anchor);
|
|
142
|
+
targetIsTrigger && event.preventDefault();
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
const targetIsNotTrigger = target instanceof HTMLElement &&
|
|
146
|
+
![safeZone === null || safeZone === void 0 ? void 0 : safeZone.anchor, safeZone === null || safeZone === void 0 ? void 0 : safeZone.dismissable].some((element) => element === null || element === void 0 ? void 0 : element.contains(target)) &&
|
|
147
|
+
!target.contains((_b = safeZone === null || safeZone === void 0 ? void 0 : safeZone.dismissable) !== null && _b !== void 0 ? _b : null);
|
|
148
|
+
!targetIsNotTrigger && event.preventDefault();
|
|
149
|
+
}
|
|
150
|
+
/**
|
|
151
|
+
* In Safari, if the trigger element is inside a container with tabIndex={0}, a click on the trigger
|
|
152
|
+
* will first fire a 'pointerdownoutside' event on the trigger itself. However, it will then fire a
|
|
153
|
+
* 'focusoutside' event on the container.
|
|
154
|
+
*
|
|
155
|
+
* To handle this, we ignore any 'focusoutside' events if a 'pointerdownoutside' event has already occurred.
|
|
156
|
+
* 'pointerdownoutside' event is sufficient to indicate interaction outside the DismissableLayer.
|
|
157
|
+
*/
|
|
158
|
+
if (event.detail.originalEvent.type === "focusin" &&
|
|
159
|
+
hasPointerDownOutsideRef.current) {
|
|
160
|
+
event.preventDefault();
|
|
161
|
+
}
|
|
162
|
+
hasPointerDownOutsideRef.current = false;
|
|
163
|
+
hasInteractedOutsideRef.current = false;
|
|
164
|
+
}
|
|
165
|
+
const pointerDownOutside = (0, usePointerDownOutside_1.usePointerDownOutside)((event) => {
|
|
166
|
+
if (!pointerEnabled.isPointerEventsEnabled || !enabled) {
|
|
167
|
+
return;
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* We call these before letting `handleOutsideEvent` do its checks to give consumer a chance to preventDefault based certain cases.
|
|
171
|
+
*/
|
|
172
|
+
onPointerDownOutside === null || onPointerDownOutside === void 0 ? void 0 : onPointerDownOutside(event);
|
|
173
|
+
onInteractOutside === null || onInteractOutside === void 0 ? void 0 : onInteractOutside(event);
|
|
174
|
+
/**
|
|
175
|
+
* Add safeZone to prevent closing when interacting with trigger/anchor or its children.
|
|
176
|
+
*/
|
|
177
|
+
safeZone && handleOutsideEvent(event);
|
|
178
|
+
/**
|
|
179
|
+
* Both `onPointerDownOutside` and `onInteractOutside` are able to preventDefault the event, thus stopping call for `onDismiss`.
|
|
180
|
+
*/
|
|
181
|
+
if (!event.defaultPrevented && onDismiss) {
|
|
182
|
+
onDismiss();
|
|
183
|
+
}
|
|
184
|
+
}, ownerDocument);
|
|
185
|
+
const focusOutside = (0, useFocusOutside_1.useFocusOutside)((event) => {
|
|
186
|
+
if (!enabled) {
|
|
187
|
+
return;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* We call these before letting `handleOutsideEvent` do its checks to give consumer a chance to preventDefault based certain cases.
|
|
191
|
+
*/
|
|
192
|
+
onFocusOutside === null || onFocusOutside === void 0 ? void 0 : onFocusOutside(event);
|
|
193
|
+
onInteractOutside === null || onInteractOutside === void 0 ? void 0 : onInteractOutside(event);
|
|
194
|
+
/**
|
|
195
|
+
* Add safeZone to prevent closing when interacting with trigger/anchor or its children.
|
|
196
|
+
*/
|
|
197
|
+
safeZone && handleOutsideEvent(event);
|
|
198
|
+
/**
|
|
199
|
+
* Both `onFocusOutside` and `onInteractOutside` are able to preventDefault the event, thus stopping call for `onDismiss`.
|
|
200
|
+
*/
|
|
201
|
+
if (!event.defaultPrevented && onDismiss) {
|
|
202
|
+
onDismiss();
|
|
203
|
+
}
|
|
204
|
+
}, ownerDocument);
|
|
205
|
+
(0, useEscapeKeydown_1.useEscapeKeydown)((event) => {
|
|
206
|
+
if (!enabled) {
|
|
207
|
+
return;
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* The deepest nested element will always be last in the descendants list.
|
|
211
|
+
* This allows us to only close the highest layer when pressing escape.
|
|
212
|
+
*
|
|
213
|
+
* In some cases a layer might still exist, but be disabled. We want to ignore these layers.
|
|
214
|
+
*/
|
|
215
|
+
const isHighestLayer = index === descendants.enabledCount() - 1;
|
|
216
|
+
if (!isHighestLayer) {
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* We call this before letting `handleOutsideEvent` do its checks to give consumer a chance to preventDefault based certain cases.
|
|
221
|
+
*/
|
|
222
|
+
onEscapeKeyDown === null || onEscapeKeyDown === void 0 ? void 0 : onEscapeKeyDown(event);
|
|
223
|
+
/**
|
|
224
|
+
* `onEscapeKeyDown` is able to preventDefault the event, thus stopping call for `onDismiss`.
|
|
225
|
+
* We want to `preventDefault` the escape-event to avoid sideeffect from other elements on screen
|
|
226
|
+
*/
|
|
227
|
+
if (!event.defaultPrevented && onDismiss) {
|
|
228
|
+
event.preventDefault();
|
|
229
|
+
onDismiss();
|
|
230
|
+
}
|
|
231
|
+
}, ownerDocument);
|
|
232
|
+
/**
|
|
233
|
+
* If `disableOutsidePointerEvents` is true,
|
|
234
|
+
* we want to disable pointer events on the body when the first layer is opened.
|
|
235
|
+
*/
|
|
236
|
+
(0, react_1.useEffect)(() => {
|
|
237
|
+
if (!node || !disableOutsidePointerEvents || index !== 0 || !enabled) {
|
|
238
|
+
return;
|
|
239
|
+
}
|
|
240
|
+
originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;
|
|
241
|
+
ownerDocument.body.style.pointerEvents = "none";
|
|
242
|
+
return () => {
|
|
243
|
+
ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;
|
|
244
|
+
};
|
|
245
|
+
}, [node, ownerDocument, disableOutsidePointerEvents, index, enabled]);
|
|
246
|
+
const Comp = asChild ? Slot_1.Slot : "div";
|
|
247
|
+
return (react_1.default.createElement(Comp, Object.assign({ ref: mergedRefs }, rest, { onFocusCapture: focusOutside.onFocusCapture, onBlurCapture: focusOutside.onBlurCapture, onPointerDownCapture: pointerDownOutside.onPointerDownCapture, style: Object.assign({ pointerEvents: pointerEnabled.isBodyPointerEventsDisabled
|
|
248
|
+
? pointerEnabled.isPointerEventsEnabled
|
|
249
|
+
? "auto"
|
|
250
|
+
: "none"
|
|
251
|
+
: undefined }, rest.style) }), children));
|
|
252
|
+
});
|
|
253
|
+
//# sourceMappingURL=DismissableLayer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DismissableLayer.js","sourceRoot":"","sources":["../../../src/overlay/dismiss/DismissableLayer.tsx"],"names":[],"mappings":"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"}
|