@navikt/ds-react 7.30.1 → 7.31.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (92) hide show
  1. package/cjs/form/checkbox/Checkbox.js +1 -1
  2. package/cjs/form/checkbox/Checkbox.js.map +1 -1
  3. package/cjs/form/combobox/Combobox.js +15 -13
  4. package/cjs/form/combobox/Combobox.js.map +1 -1
  5. package/cjs/form/combobox/FilteredOptions/FilteredOptions.js +53 -3
  6. package/cjs/form/combobox/FilteredOptions/FilteredOptions.js.map +1 -1
  7. package/cjs/form/combobox/FilteredOptions/useVirtualFocus.js.map +1 -1
  8. package/cjs/form/combobox/Input/InputController.js +15 -14
  9. package/cjs/form/combobox/Input/InputController.js.map +1 -1
  10. package/cjs/form/radio/Radio.js +1 -1
  11. package/cjs/form/radio/Radio.js.map +1 -1
  12. package/cjs/overlays/floating/Floating.d.ts +11 -0
  13. package/cjs/overlays/floating/Floating.js +32 -8
  14. package/cjs/overlays/floating/Floating.js.map +1 -1
  15. package/cjs/overlays/overlay/hooks/useAnimationsFinished.d.ts +27 -0
  16. package/cjs/overlays/overlay/hooks/useAnimationsFinished.js +138 -0
  17. package/cjs/overlays/overlay/hooks/useAnimationsFinished.js.map +1 -0
  18. package/cjs/overlays/overlay/hooks/useEventCallback.d.ts +6 -0
  19. package/cjs/overlays/overlay/hooks/useEventCallback.js +89 -0
  20. package/cjs/overlays/overlay/hooks/useEventCallback.js.map +1 -0
  21. package/cjs/overlays/overlay/hooks/useLatestRef.d.ts +5 -0
  22. package/cjs/overlays/overlay/hooks/useLatestRef.js +23 -0
  23. package/cjs/overlays/overlay/hooks/useLatestRef.js.map +1 -0
  24. package/cjs/overlays/overlay/hooks/useOpenChangeComplete.d.ts +31 -0
  25. package/cjs/overlays/overlay/hooks/useOpenChangeComplete.js +35 -0
  26. package/cjs/overlays/overlay/hooks/useOpenChangeComplete.js.map +1 -0
  27. package/cjs/overlays/overlay/hooks/useRefWithInit.d.ts +7 -0
  28. package/cjs/overlays/overlay/hooks/useRefWithInit.js +14 -0
  29. package/cjs/overlays/overlay/hooks/useRefWithInit.js.map +1 -0
  30. package/cjs/table/ExpandableRow.d.ts +1 -1
  31. package/cjs/table/ExpandableRow.js +2 -10
  32. package/cjs/table/ExpandableRow.js.map +1 -1
  33. package/cjs/table/Row.d.ts +7 -0
  34. package/cjs/table/Row.js +13 -2
  35. package/cjs/table/Row.js.map +1 -1
  36. package/cjs/table/Table.utils.d.ts +9 -0
  37. package/cjs/table/Table.utils.js +57 -0
  38. package/cjs/table/Table.utils.js.map +1 -0
  39. package/esm/form/checkbox/Checkbox.js +1 -1
  40. package/esm/form/checkbox/Checkbox.js.map +1 -1
  41. package/esm/form/combobox/Combobox.js +15 -13
  42. package/esm/form/combobox/Combobox.js.map +1 -1
  43. package/esm/form/combobox/FilteredOptions/FilteredOptions.js +21 -4
  44. package/esm/form/combobox/FilteredOptions/FilteredOptions.js.map +1 -1
  45. package/esm/form/combobox/FilteredOptions/useVirtualFocus.js.map +1 -1
  46. package/esm/form/combobox/Input/InputController.js +15 -14
  47. package/esm/form/combobox/Input/InputController.js.map +1 -1
  48. package/esm/form/radio/Radio.js +1 -1
  49. package/esm/form/radio/Radio.js.map +1 -1
  50. package/esm/overlays/floating/Floating.d.ts +11 -0
  51. package/esm/overlays/floating/Floating.js +32 -8
  52. package/esm/overlays/floating/Floating.js.map +1 -1
  53. package/esm/overlays/overlay/hooks/useAnimationsFinished.d.ts +27 -0
  54. package/esm/overlays/overlay/hooks/useAnimationsFinished.js +99 -0
  55. package/esm/overlays/overlay/hooks/useAnimationsFinished.js.map +1 -0
  56. package/esm/overlays/overlay/hooks/useEventCallback.d.ts +6 -0
  57. package/esm/overlays/overlay/hooks/useEventCallback.js +53 -0
  58. package/esm/overlays/overlay/hooks/useEventCallback.js.map +1 -0
  59. package/esm/overlays/overlay/hooks/useLatestRef.d.ts +5 -0
  60. package/esm/overlays/overlay/hooks/useLatestRef.js +20 -0
  61. package/esm/overlays/overlay/hooks/useLatestRef.js.map +1 -0
  62. package/esm/overlays/overlay/hooks/useOpenChangeComplete.d.ts +31 -0
  63. package/esm/overlays/overlay/hooks/useOpenChangeComplete.js +32 -0
  64. package/esm/overlays/overlay/hooks/useOpenChangeComplete.js.map +1 -0
  65. package/esm/overlays/overlay/hooks/useRefWithInit.d.ts +7 -0
  66. package/esm/overlays/overlay/hooks/useRefWithInit.js +12 -0
  67. package/esm/overlays/overlay/hooks/useRefWithInit.js.map +1 -0
  68. package/esm/table/ExpandableRow.d.ts +1 -1
  69. package/esm/table/ExpandableRow.js +2 -10
  70. package/esm/table/ExpandableRow.js.map +1 -1
  71. package/esm/table/Row.d.ts +7 -0
  72. package/esm/table/Row.js +13 -2
  73. package/esm/table/Row.js.map +1 -1
  74. package/esm/table/Table.utils.d.ts +9 -0
  75. package/esm/table/Table.utils.js +55 -0
  76. package/esm/table/Table.utils.js.map +1 -0
  77. package/package.json +3 -3
  78. package/src/form/checkbox/Checkbox.tsx +5 -3
  79. package/src/form/combobox/Combobox.tsx +44 -41
  80. package/src/form/combobox/FilteredOptions/FilteredOptions.tsx +29 -4
  81. package/src/form/combobox/FilteredOptions/useVirtualFocus.ts +1 -0
  82. package/src/form/combobox/Input/InputController.tsx +33 -29
  83. package/src/form/radio/Radio.tsx +5 -3
  84. package/src/overlays/floating/Floating.tsx +110 -59
  85. package/src/overlays/overlay/hooks/useAnimationsFinished.ts +117 -0
  86. package/src/overlays/overlay/hooks/useEventCallback.ts +73 -0
  87. package/src/overlays/overlay/hooks/useLatestRef.ts +25 -0
  88. package/src/overlays/overlay/hooks/useOpenChangeComplete.ts +66 -0
  89. package/src/overlays/overlay/hooks/useRefWithInit.ts +25 -0
  90. package/src/table/ExpandableRow.tsx +4 -17
  91. package/src/table/Row.tsx +33 -1
  92. package/src/table/Table.utils.ts +65 -0
@@ -1,3 +1,4 @@
1
+ /* eslint-disable jsx-a11y/click-events-have-key-events */
1
2
  var __rest = (this && this.__rest) || function (s, e) {
2
3
  var t = {};
3
4
  for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
@@ -11,6 +12,7 @@ var __rest = (this && this.__rest) || function (s, e) {
11
12
  };
12
13
  /* eslint-disable jsx-a11y/no-static-element-interactions */
13
14
  import React, { forwardRef } from "react";
15
+ import { Floating } from "../../../overlays/floating/Floating.js";
14
16
  import { useRenameCSS } from "../../../theme/Theme.js";
15
17
  import { useMergeRefs } from "../../../util/hooks/index.js";
16
18
  import { useFilteredOptionsContext } from "../FilteredOptions/filteredOptionsContext.js";
@@ -30,19 +32,18 @@ export const InputController = forwardRef((props, ref) => {
30
32
  const { activeDecendantId, toggleIsListOpen } = useFilteredOptionsContext();
31
33
  const { selectedOptions } = useSelectedOptionsContext();
32
34
  const mergedInputRef = useMergeRefs(inputRef, ref);
33
- return (
34
- // eslint-disable-next-line jsx-a11y/click-events-have-key-events
35
- React.createElement("div", { className: cn("navds-combobox__wrapper-inner navds-text-field__input", {
36
- "navds-combobox__wrapper-inner--virtually-unfocused": activeDecendantId !== undefined,
37
- }), onClick: () => {
38
- if (inputProps.disabled || readOnly) {
39
- return;
40
- }
41
- toggleIsListOpen(true);
42
- focusInput();
43
- } },
44
- !shouldShowSelectedOptions ? (React.createElement(Input, Object.assign({ id: inputProps.id, ref: mergedInputRef, inputClassName: inputClassName, readOnly: readOnly }, rest))) : (React.createElement(SelectedOptions, { selectedOptions: selectedOptions, size: size },
45
- React.createElement(Input, Object.assign({ id: inputProps.id, ref: mergedInputRef, inputClassName: inputClassName, shouldShowSelectedOptions: shouldShowSelectedOptions, readOnly: readOnly }, rest)))),
46
- toggleListButton && React.createElement(ToggleListButton, { ref: toggleOpenButtonRef })));
35
+ return (React.createElement(Floating.Anchor, { asChild: true },
36
+ React.createElement("div", { className: cn("navds-combobox__wrapper-inner navds-text-field__input", {
37
+ "navds-combobox__wrapper-inner--virtually-unfocused": activeDecendantId !== undefined,
38
+ }), onClick: () => {
39
+ if (inputProps.disabled || readOnly) {
40
+ return;
41
+ }
42
+ toggleIsListOpen(true);
43
+ focusInput();
44
+ } },
45
+ !shouldShowSelectedOptions ? (React.createElement(Input, Object.assign({ id: inputProps.id, ref: mergedInputRef, inputClassName: inputClassName, readOnly: readOnly }, rest))) : (React.createElement(SelectedOptions, { selectedOptions: selectedOptions, size: size },
46
+ React.createElement(Input, Object.assign({ id: inputProps.id, ref: mergedInputRef, inputClassName: inputClassName, shouldShowSelectedOptions: shouldShowSelectedOptions, readOnly: readOnly }, rest)))),
47
+ toggleListButton && React.createElement(ToggleListButton, { ref: toggleOpenButtonRef }))));
47
48
  });
48
49
  //# sourceMappingURL=InputController.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"InputController.js","sourceRoot":"","sources":["../../../../src/form/combobox/Input/InputController.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,4DAA4D;AAC5D,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,eAAe,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AAEtF,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAElD,MAAM,CAAC,MAAM,eAAe,GAAG,UAAU,CAcvC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACf,MAAM;IACJ,sHAAsH;IACtH,WAAW;IACX,sHAAsH;IACtH,gBAAgB,EAChB,gBAAgB,GAAG,IAAI,EACvB,cAAc,EACd,yBAAyB,GAAG,IAAI,KAG9B,KAAK,EADJ,IAAI,UACL,KAAK,EAVH,sGAUL,CAAQ,CAAC;IAEV,MAAM,EAAE,EAAE,EAAE,GAAG,YAAY,EAAE,CAAC;IAE9B,MAAM,EACJ,UAAU,EACV,UAAU,EACV,IAAI,GAAG,QAAQ,EACf,QAAQ,EACR,mBAAmB,EACnB,QAAQ,GACT,GAAG,eAAe,EAAE,CAAC;IAEtB,MAAM,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,GAAG,yBAAyB,EAAE,CAAC;IAC5E,MAAM,EAAE,eAAe,EAAE,GAAG,yBAAyB,EAAE,CAAC;IAExD,MAAM,cAAc,GAAG,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAEnD,OAAO;IACL,iEAAiE;IACjE,6BACE,SAAS,EAAE,EAAE,CAAC,uDAAuD,EAAE;YACrE,oDAAoD,EAClD,iBAAiB,KAAK,SAAS;SAClC,CAAC,EACF,OAAO,EAAE,GAAG,EAAE;YACZ,IAAI,UAAU,CAAC,QAAQ,IAAI,QAAQ,EAAE,CAAC;gBACpC,OAAO;YACT,CAAC;YAED,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACvB,UAAU,EAAE,CAAC;QACf,CAAC;QAEA,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAC5B,oBAAC,KAAK,kBACJ,EAAE,EAAE,UAAU,CAAC,EAAE,EACjB,GAAG,EAAE,cAAc,EACnB,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,QAAQ,IACd,IAAI,EACR,CACH,CAAC,CAAC,CAAC,CACF,oBAAC,eAAe,IAAC,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI;YAC3D,oBAAC,KAAK,kBACJ,EAAE,EAAE,UAAU,CAAC,EAAE,EACjB,GAAG,EAAE,cAAc,EACnB,cAAc,EAAE,cAAc,EAC9B,yBAAyB,EAAE,yBAAyB,EACpD,QAAQ,EAAE,QAAQ,IACd,IAAI,EACR,CACc,CACnB;QACA,gBAAgB,IAAI,oBAAC,gBAAgB,IAAC,GAAG,EAAE,mBAAmB,GAAI,CAC/D,CACP,CAAC;AACJ,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"InputController.js","sourceRoot":"","sources":["../../../../src/form/combobox/Input/InputController.tsx"],"names":[],"mappings":"AAAA,0DAA0D;;;;;;;;;;;;AAE1D,4DAA4D;AAC5D,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,qCAAqC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AACtF,OAAO,eAAe,MAAM,oCAAoC,CAAC;AACjE,OAAO,EAAE,yBAAyB,EAAE,MAAM,2CAA2C,CAAC;AAEtF,OAAO,KAAK,MAAM,SAAS,CAAC;AAC5B,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,gBAAgB,MAAM,oBAAoB,CAAC;AAElD,MAAM,CAAC,MAAM,eAAe,GAAG,UAAU,CAcvC,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE;IACf,MAAM;IACJ,sHAAsH;IACtH,WAAW;IACX,sHAAsH;IACtH,gBAAgB,EAChB,gBAAgB,GAAG,IAAI,EACvB,cAAc,EACd,yBAAyB,GAAG,IAAI,KAG9B,KAAK,EADJ,IAAI,UACL,KAAK,EAVH,sGAUL,CAAQ,CAAC;IAEV,MAAM,EAAE,EAAE,EAAE,GAAG,YAAY,EAAE,CAAC;IAE9B,MAAM,EACJ,UAAU,EACV,UAAU,EACV,IAAI,GAAG,QAAQ,EACf,QAAQ,EACR,mBAAmB,EACnB,QAAQ,GACT,GAAG,eAAe,EAAE,CAAC;IAEtB,MAAM,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,GAAG,yBAAyB,EAAE,CAAC;IAC5E,MAAM,EAAE,eAAe,EAAE,GAAG,yBAAyB,EAAE,CAAC;IAExD,MAAM,cAAc,GAAG,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;IAEnD,OAAO,CACL,oBAAC,QAAQ,CAAC,MAAM,IAAC,OAAO;QACtB,6BACE,SAAS,EAAE,EAAE,CAAC,uDAAuD,EAAE;gBACrE,oDAAoD,EAClD,iBAAiB,KAAK,SAAS;aAClC,CAAC,EACF,OAAO,EAAE,GAAG,EAAE;gBACZ,IAAI,UAAU,CAAC,QAAQ,IAAI,QAAQ,EAAE,CAAC;oBACpC,OAAO;gBACT,CAAC;gBAED,gBAAgB,CAAC,IAAI,CAAC,CAAC;gBACvB,UAAU,EAAE,CAAC;YACf,CAAC;YAEA,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAC5B,oBAAC,KAAK,kBACJ,EAAE,EAAE,UAAU,CAAC,EAAE,EACjB,GAAG,EAAE,cAAc,EACnB,cAAc,EAAE,cAAc,EAC9B,QAAQ,EAAE,QAAQ,IACd,IAAI,EACR,CACH,CAAC,CAAC,CAAC,CACF,oBAAC,eAAe,IAAC,eAAe,EAAE,eAAe,EAAE,IAAI,EAAE,IAAI;gBAC3D,oBAAC,KAAK,kBACJ,EAAE,EAAE,UAAU,CAAC,EAAE,EACjB,GAAG,EAAE,cAAc,EACnB,cAAc,EAAE,cAAc,EAC9B,yBAAyB,EAAE,yBAAyB,EACpD,QAAQ,EAAE,QAAQ,IACd,IAAI,EACR,CACc,CACnB;YACA,gBAAgB,IAAI,oBAAC,gBAAgB,IAAC,GAAG,EAAE,mBAAmB,GAAI,CAC/D,CACU,CACnB,CAAC;AACJ,CAAC,CAAC,CAAC"}
@@ -17,7 +17,7 @@ export const Radio = forwardRef((props, ref) => {
17
17
  }), "data-color": hasError ? "danger" : props["data-color"] },
18
18
  React.createElement("input", Object.assign({}, omit(props, ["children", "size", "description", "readOnly"]), omit(inputProps, ["aria-invalid", "aria-describedby"]), { "aria-describedby": cl(inputProps["aria-describedby"], {
19
19
  [descriptionId]: props.description,
20
- }), className: cn("navds-radio__input"), ref: ref })),
20
+ }) || undefined, className: cn("navds-radio__input"), ref: ref })),
21
21
  React.createElement(BodyShort, { as: "label", htmlFor: inputProps.id, className: cn("navds-radio__label"), size: size }, props.children),
22
22
  props.description && (React.createElement(BodyShort, { id: descriptionId, size: size, className: cn("navds-form-field__subdescription navds-radio__description") }, props.description))));
23
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Radio.js","sourceRoot":"","sources":["../../../src/form/radio/Radio.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Radio.js","sourceRoot":"","sources":["../../../src/form/radio/Radio.tsx"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { FlipOptions } from "@floating-ui/react-dom";
1
2
  import React, { HTMLAttributes } from "react";
2
3
  import { AsChildProps } from "../../util/types/index.js";
3
4
  import { type Align, type Measurable, type Side } from "./Floating.utils.js";
@@ -41,7 +42,17 @@ interface FloatingContentProps extends HTMLAttributes<HTMLDivElement> {
41
42
  collisionPadding?: number | Partial<Record<Side, number>>;
42
43
  hideWhenDetached?: boolean;
43
44
  updatePositionStrategy?: "optimized" | "always";
45
+ fallbackPlacements?: FlipOptions["fallbackPlacements"];
44
46
  onPlaced?: () => void;
47
+ /**
48
+ * @default true
49
+ */
50
+ enabled?: boolean;
51
+ /**
52
+ * Only use this option if your floating element is conditionally rendered, not hidden with CSS.
53
+ * @default true
54
+ */
55
+ autoUpdateWhileMounted?: boolean;
45
56
  arrow?: {
46
57
  className?: string;
47
58
  padding?: number;
@@ -11,9 +11,11 @@ var __rest = (this && this.__rest) || function (s, e) {
11
11
  };
12
12
  import { autoUpdate, flip, arrow as floatingArrow, hide, limitShift, offset, shift, size, useFloating, } from "@floating-ui/react-dom";
13
13
  import React, { forwardRef, useEffect, useRef, useState, } from "react";
14
+ import { useModalContext } from "../../modal/Modal.context.js";
14
15
  import { Slot } from "../../slot/Slot.js";
15
16
  import { createContext } from "../../util/create-context.js";
16
17
  import { useCallbackRef, useClientLayoutEffect, useMergeRefs, } from "../../util/hooks/index.js";
18
+ import { useOpenChangeComplete } from "../overlay/hooks/useOpenChangeComplete.js";
17
19
  import { getSideAndAlignFromPlacement, transformOrigin, } from "./Floating.utils.js";
18
20
  export const [FloatingProvider, useFloatingContext] = createContext({
19
21
  name: "FloatingContext",
@@ -82,8 +84,9 @@ const [FloatingContentProvider, useFloatingContentContext] = createContext({
82
84
  });
83
85
  const FloatingContent = forwardRef((_a, forwardedRef) => {
84
86
  var _b, _c, _d, _e, _f, _g;
85
- var { children, side = "bottom", sideOffset = 0, align = "center", alignOffset = 0, avoidCollisions = true, collisionBoundary = [], collisionPadding: collisionPaddingProp = 0, hideWhenDetached = false, updatePositionStrategy = "optimized", onPlaced, arrow: _arrow } = _a, contentProps = __rest(_a, ["children", "side", "sideOffset", "align", "alignOffset", "avoidCollisions", "collisionBoundary", "collisionPadding", "hideWhenDetached", "updatePositionStrategy", "onPlaced", "arrow"]);
87
+ var { children, side = "bottom", sideOffset = 0, align = "center", alignOffset = 0, avoidCollisions = true, collisionBoundary = [], collisionPadding: collisionPaddingProp = 0, hideWhenDetached = false, updatePositionStrategy = "optimized", onPlaced, arrow: _arrow, fallbackPlacements, enabled = true, autoUpdateWhileMounted = true } = _a, contentProps = __rest(_a, ["children", "side", "sideOffset", "align", "alignOffset", "avoidCollisions", "collisionBoundary", "collisionPadding", "hideWhenDetached", "updatePositionStrategy", "onPlaced", "arrow", "fallbackPlacements", "enabled", "autoUpdateWhileMounted"]);
86
88
  const context = useFloatingContext();
89
+ const modalContext = useModalContext(false);
87
90
  const arrowDefaults = Object.assign({ padding: 5, width: 0, height: 0 }, _arrow);
88
91
  const [arrow, setArrow] = useState(null);
89
92
  const arrowWidth = arrowDefaults.width;
@@ -110,17 +113,21 @@ const FloatingContent = forwardRef((_a, forwardedRef) => {
110
113
  altBoundary: hasExplicitBoundaries,
111
114
  /* https://floating-ui.com/docs/flip#fallbackaxissidedirection */
112
115
  fallbackAxisSideDirection: "end",
116
+ fallbackPlacements,
113
117
  };
114
- const { refs, floatingStyles, placement, isPositioned, middlewareData } = useFloating({
118
+ const { refs, floatingStyles, placement, isPositioned, middlewareData, elements: floatingElements, update, } = useFloating({
119
+ open: enabled,
115
120
  // default to `fixed` strategy so users don't have to pick and we also avoid focus scroll issues
116
121
  strategy: "fixed",
117
122
  placement: desiredPlacement,
118
- whileElementsMounted: (...args) => {
119
- const cleanup = autoUpdate(...args, {
120
- animationFrame: updatePositionStrategy === "always",
121
- });
122
- return cleanup;
123
- },
123
+ whileElementsMounted: autoUpdateWhileMounted
124
+ ? (...args) => {
125
+ const cleanup = autoUpdate(...args, {
126
+ animationFrame: updatePositionStrategy === "always",
127
+ });
128
+ return cleanup;
129
+ }
130
+ : undefined,
124
131
  elements: {
125
132
  reference: context.anchor,
126
133
  },
@@ -154,6 +161,23 @@ const FloatingContent = forwardRef((_a, forwardedRef) => {
154
161
  hide(Object.assign({ strategy: "referenceHidden" }, detectOverflowOptions)),
155
162
  ],
156
163
  });
164
+ useEffect(() => {
165
+ if (autoUpdateWhileMounted || !enabled) {
166
+ return;
167
+ }
168
+ if (floatingElements.reference && floatingElements.floating) {
169
+ const cleanup = autoUpdate(floatingElements.reference, floatingElements.floating, update);
170
+ return () => {
171
+ cleanup();
172
+ };
173
+ }
174
+ }, [autoUpdateWhileMounted, enabled, floatingElements, update]);
175
+ useOpenChangeComplete({
176
+ enabled: !!(modalContext === null || modalContext === void 0 ? void 0 : modalContext.ref),
177
+ open: enabled,
178
+ ref: modalContext === null || modalContext === void 0 ? void 0 : modalContext.ref,
179
+ onComplete: update,
180
+ });
157
181
  const [placedSide, placedAlign] = getSideAndAlignFromPlacement(placement);
158
182
  const handlePlaced = useCallbackRef(onPlaced);
159
183
  useClientLayoutEffect(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"Floating.js","sourceRoot":"","sources":["../../../src/overlays/floating/Floating.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Floating.js","sourceRoot":"","sources":["../../../src/overlays/floating/Floating.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import React from "react";
2
+ /**
3
+ * Returns a stable function that, when invoked, waits for all current CSS/Web Animations
4
+ * on a target element (and its subtree) to finish before executing a callback.
5
+ *
6
+ * Why:
7
+ * - Coordinate logic (unmount, focus restore, measuring) after exit / enter animations.
8
+ * - Avoid `animationend` event bookkeeping across multiple animations / nested elements.
9
+ * - Batch detection using `requestAnimationFrame` so freshly-applied animations are discoverable.
10
+ *
11
+ * Mechanics:
12
+ * 1. Resolves the concrete `HTMLElement` (direct element or from ref) – early no-op if missing.
13
+ * 2. If `getAnimations` is unsupported or animations are globally disabled (`AKSEL_ANIMATIONS_DISABLED`),
14
+ * runs the callback immediately.
15
+ * 3. Schedules a frame so style/animation changes applied this render are committed.
16
+ * 4. Optionally schedules an additional frame (`waitForNextTick=true`) to catch animations that
17
+ * start only after layout (e.g. when an `open` class triggers the animation).
18
+ * 5. Captures all current animations, waits on their `.finished` promises (using `Promise.allSettled`
19
+ * so rejections don't block), then `flushSync` executes the callback (ensures React state updates
20
+ * inside run before the browser paints the next frame).
21
+ * 6. If an `AbortSignal` aborts while waiting, it silently cancels execution.
22
+ *
23
+ * @param elementOrRef HTMLElement or ref to observe.
24
+ * @param waitForNextTick If true, waits an extra frame to ensure enter animations are detectable.
25
+ * @returns Stable function (identity preserved) accepting (fn, abortSignal?).
26
+ */
27
+ export declare function useAnimationsFinished(elementOrRef: React.RefObject<HTMLElement | null> | HTMLElement | null, waitForNextTick?: boolean): (fnToExecute: () => void, signal?: AbortSignal | null) => void;
@@ -0,0 +1,99 @@
1
+ "use client";
2
+ import React, { useCallback, useEffect } from "react";
3
+ import ReactDOM from "react-dom";
4
+ import { useEventCallback } from "./useEventCallback.js";
5
+ /**
6
+ * Returns a stable function that, when invoked, waits for all current CSS/Web Animations
7
+ * on a target element (and its subtree) to finish before executing a callback.
8
+ *
9
+ * Why:
10
+ * - Coordinate logic (unmount, focus restore, measuring) after exit / enter animations.
11
+ * - Avoid `animationend` event bookkeeping across multiple animations / nested elements.
12
+ * - Batch detection using `requestAnimationFrame` so freshly-applied animations are discoverable.
13
+ *
14
+ * Mechanics:
15
+ * 1. Resolves the concrete `HTMLElement` (direct element or from ref) – early no-op if missing.
16
+ * 2. If `getAnimations` is unsupported or animations are globally disabled (`AKSEL_ANIMATIONS_DISABLED`),
17
+ * runs the callback immediately.
18
+ * 3. Schedules a frame so style/animation changes applied this render are committed.
19
+ * 4. Optionally schedules an additional frame (`waitForNextTick=true`) to catch animations that
20
+ * start only after layout (e.g. when an `open` class triggers the animation).
21
+ * 5. Captures all current animations, waits on their `.finished` promises (using `Promise.allSettled`
22
+ * so rejections don't block), then `flushSync` executes the callback (ensures React state updates
23
+ * inside run before the browser paints the next frame).
24
+ * 6. If an `AbortSignal` aborts while waiting, it silently cancels execution.
25
+ *
26
+ * @param elementOrRef HTMLElement or ref to observe.
27
+ * @param waitForNextTick If true, waits an extra frame to ensure enter animations are detectable.
28
+ * @returns Stable function (identity preserved) accepting (fn, abortSignal?).
29
+ */
30
+ export function useAnimationsFinished(elementOrRef, waitForNextTick = false) {
31
+ const rootFrameRef = React.useRef(null);
32
+ const nestedFrameRef = React.useRef(null);
33
+ const cancelScheduled = useCallback(() => {
34
+ for (const ref of [rootFrameRef, nestedFrameRef]) {
35
+ if (ref.current !== null) {
36
+ cancelAnimationFrame(ref.current);
37
+ ref.current = null;
38
+ }
39
+ }
40
+ }, []);
41
+ /* Unmount cleanup */
42
+ useEffect(() => {
43
+ return () => cancelScheduled();
44
+ }, [cancelScheduled]);
45
+ return useEventCallback((
46
+ /**
47
+ * A function to execute once all animations have finished.
48
+ */
49
+ fnToExecute,
50
+ /**
51
+ * An optional [AbortSignal](https://developer.mozilla.org/en-US/docs/Web/API/AbortSignal) that
52
+ * can be used to abort `fnToExecute` before all the animations have finished.
53
+ * @default null
54
+ */
55
+ signal = null) => {
56
+ // Cancel any in-flight scheduling from a previous invocation (next-frame debounce semantics)
57
+ cancelScheduled();
58
+ if (elementOrRef == null) {
59
+ return;
60
+ }
61
+ const element = "current" in elementOrRef ? elementOrRef.current : elementOrRef;
62
+ if (element == null) {
63
+ return;
64
+ }
65
+ // Fast path: no Web Animations API support OR animations globally disabled.
66
+ if (typeof element.getAnimations !== "function" ||
67
+ // Flag hook for test envs.
68
+ globalThis.AKSEL_ANIMATIONS_DISABLED) {
69
+ fnToExecute();
70
+ return;
71
+ }
72
+ rootFrameRef.current = requestAnimationFrame(() => {
73
+ function exec() {
74
+ if (!element) {
75
+ return;
76
+ }
77
+ // Collect animations present at this moment; we don't continuously observe
78
+ // if new animations start after these settle, caller should invoke again.
79
+ Promise.allSettled(element.getAnimations().map((anim) => anim.finished)).then(() => {
80
+ if (signal === null || signal === void 0 ? void 0 : signal.aborted)
81
+ return;
82
+ // Ensure any state updates inside the callback are flushed synchronously,
83
+ // guaranteeing that dependent logic observes the current
84
+ // tree rather than a stale in-progress update.
85
+ ReactDOM.flushSync(fnToExecute);
86
+ });
87
+ }
88
+ // Some animations (e.g. triggered by a class applied this same frame) only
89
+ // become observable after an extra frame; opt-in via flag.
90
+ if (waitForNextTick) {
91
+ nestedFrameRef.current = requestAnimationFrame(exec);
92
+ }
93
+ else {
94
+ exec();
95
+ }
96
+ });
97
+ });
98
+ }
99
+ //# sourceMappingURL=useAnimationsFinished.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useAnimationsFinished.js","sourceRoot":"","sources":["../../../../src/overlays/overlay/hooks/useAnimationsFinished.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,KAAK,EAAE,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,QAAQ,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,MAAM,UAAU,qBAAqB,CACnC,YAAsE,EACtE,eAAe,GAAG,KAAK;IAEvB,MAAM,YAAY,GAAG,KAAK,CAAC,MAAM,CAAgB,IAAI,CAAC,CAAC;IACvD,MAAM,cAAc,GAAG,KAAK,CAAC,MAAM,CAAgB,IAAI,CAAC,CAAC;IAEzD,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;QACvC,KAAK,MAAM,GAAG,IAAI,CAAC,YAAY,EAAE,cAAc,CAAC,EAAE,CAAC;YACjD,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;gBACzB,oBAAoB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;gBAClC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC;YACrB,CAAC;QACH,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,qBAAqB;IACrB,SAAS,CAAC,GAAG,EAAE;QACb,OAAO,GAAG,EAAE,CAAC,eAAe,EAAE,CAAC;IACjC,CAAC,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC;IAEtB,OAAO,gBAAgB,CACrB;IACE;;OAEG;IACH,WAAuB;IACvB;;;;OAIG;IACH,SAA6B,IAAI,EACjC,EAAE;QACF,6FAA6F;QAC7F,eAAe,EAAE,CAAC;QAElB,IAAI,YAAY,IAAI,IAAI,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,MAAM,OAAO,GACX,SAAS,IAAI,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC;QAClE,IAAI,OAAO,IAAI,IAAI,EAAE,CAAC;YACpB,OAAO;QACT,CAAC;QAED,4EAA4E;QAC5E,IACE,OAAO,OAAO,CAAC,aAAa,KAAK,UAAU;YAC3C,2BAA2B;YAC1B,UAAkB,CAAC,yBAAyB,EAC7C,CAAC;YACD,WAAW,EAAE,CAAC;YACd,OAAO;QACT,CAAC;QAED,YAAY,CAAC,OAAO,GAAG,qBAAqB,CAAC,GAAG,EAAE;YAChD,SAAS,IAAI;gBACX,IAAI,CAAC,OAAO,EAAE,CAAC;oBACb,OAAO;gBACT,CAAC;gBACD,2EAA2E;gBAC3E,0EAA0E;gBAC1E,OAAO,CAAC,UAAU,CAChB,OAAO,CAAC,aAAa,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CACrD,CAAC,IAAI,CAAC,GAAG,EAAE;oBACV,IAAI,MAAM,aAAN,MAAM,uBAAN,MAAM,CAAE,OAAO;wBAAE,OAAO;oBAC5B,0EAA0E;oBAC1E,yDAAyD;oBACzD,+CAA+C;oBAC/C,QAAQ,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC;gBAClC,CAAC,CAAC,CAAC;YACL,CAAC;YAED,2EAA2E;YAC3E,2DAA2D;YAC3D,IAAI,eAAe,EAAE,CAAC;gBACpB,cAAc,CAAC,OAAO,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;YACvD,CAAC;iBAAM,CAAC;gBACN,IAAI,EAAE,CAAC;YACT,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CACF,CAAC;AACJ,CAAC"}
@@ -0,0 +1,6 @@
1
+ type Callback = (...args: any[]) => any;
2
+ /**
3
+ * TODO: Long term, replace `useCallbackRef` with this hook.
4
+ */
5
+ export declare function useEventCallback<T extends Callback>(callback: T | undefined): T;
6
+ export {};
@@ -0,0 +1,53 @@
1
+ "use client";
2
+ /**
3
+ * Stable event callback: returns a function whose identity never changes but always
4
+ * invokes the latest `callback`. Avoids stale closures without re‑creating handlers.
5
+ *
6
+ * Why not `useCallback`? Its identity depends on a deps array:
7
+ * - omit deps -> stale; include deps -> new function each render.
8
+ * - This hook decouples identity from freshness.
9
+ *
10
+ * How it works: a single stable "trampoline" function delegates to a mutable ref. The current
11
+ * `callback` is promoted from `next` in an insertion/layout phase effect so abandoned concurrent
12
+ * renders cannot leak outdated handlers.
13
+ *
14
+ * Guarantees: stable identity; latest logic executed; no calls from uncommitted renders; dev
15
+ * error if invoked during render; safe when `callback` is undefined (no-op).
16
+ */
17
+ import React, { useLayoutEffect } from "react";
18
+ import { useRefWithInit } from "./useRefWithInit.js";
19
+ /* https://github.com/mui/material-ui/issues/41190#issuecomment-2040873379 */
20
+ const useInsertionEffect = React[`useInsertionEffect${Math.random().toFixed(1)}`.slice(0, -3)];
21
+ const useSafeInsertionEffect =
22
+ // React 17 doesn't have useInsertionEffect.
23
+ useInsertionEffect &&
24
+ // Preact replaces useInsertionEffect with useLayoutEffect and fires too late.
25
+ useInsertionEffect !== useLayoutEffect
26
+ ? useInsertionEffect
27
+ : (fn) => fn();
28
+ /**
29
+ * TODO: Long term, replace `useCallbackRef` with this hook.
30
+ */
31
+ export function useEventCallback(callback) {
32
+ const stable = useRefWithInit(createStableCallback).current;
33
+ stable.next = callback;
34
+ useSafeInsertionEffect(stable.effect);
35
+ return stable.trampoline;
36
+ }
37
+ function createStableCallback() {
38
+ const stable = {
39
+ next: undefined,
40
+ callback: assertNotCalled,
41
+ trampoline: (...args) => { var _a; return (_a = stable.callback) === null || _a === void 0 ? void 0 : _a.call(stable, ...args); },
42
+ effect: () => {
43
+ stable.callback = stable.next;
44
+ },
45
+ };
46
+ return stable;
47
+ }
48
+ function assertNotCalled() {
49
+ if (process.env.NODE_ENV !== "production") {
50
+ throw new Error("Aksel: Cannot call an event handler while rendering.");
51
+ }
52
+ }
53
+ //# sourceMappingURL=useEventCallback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useEventCallback.js","sourceRoot":"","sources":["../../../../src/overlays/overlay/hooks/useEventCallback.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb;;;;;;;;;;;;;;GAcG;AACH,OAAO,KAAK,EAAE,EAAE,eAAe,EAAE,MAAM,OAAO,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,6EAA6E;AAC7E,MAAM,kBAAkB,GAAI,KAAa,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,eAAe;IACpC,CAAC,CAAC,kBAAkB;IACpB,CAAC,CAAC,CAAC,EAAO,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC;AAaxB;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAC9B,QAAuB;IAEvB,MAAM,MAAM,GAAG,cAAc,CAAC,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"}
@@ -0,0 +1,5 @@
1
+ export declare function useLatestRef<T>(value: T): {
2
+ current: T;
3
+ next: T;
4
+ effect: () => void;
5
+ };
@@ -0,0 +1,20 @@
1
+ "use client";
2
+ import { useClientLayoutEffect } from "../../../util/index.js";
3
+ import { useRefWithInit } from "./useRefWithInit.js";
4
+ export function useLatestRef(value) {
5
+ const latest = useRefWithInit(createLatestRef, value).current;
6
+ latest.next = value;
7
+ useClientLayoutEffect(latest.effect);
8
+ return latest;
9
+ }
10
+ function createLatestRef(value) {
11
+ const latest = {
12
+ current: value,
13
+ next: value,
14
+ effect: () => {
15
+ latest.current = latest.next;
16
+ },
17
+ };
18
+ return latest;
19
+ }
20
+ //# sourceMappingURL=useLatestRef.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useLatestRef.js","sourceRoot":"","sources":["../../../../src/overlays/overlay/hooks/useLatestRef.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAElD,MAAM,UAAU,YAAY,CAAI,KAAQ;IACtC,MAAM,MAAM,GAAG,cAAc,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC,OAAQ,CAAC;IAE/D,MAAM,CAAC,IAAI,GAAG,KAAK,CAAC;IAEpB,qBAAqB,CAAC,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,31 @@
1
+ import React from "react";
2
+ interface useOpenChangeCompleteParameters {
3
+ /**
4
+ * Enable / disable the effect. Disabled => no animation tracking / callback.
5
+ * @default true
6
+ */
7
+ enabled?: boolean;
8
+ /**
9
+ * Current open state (e.g. popover open). When this flips we wait for any
10
+ * associated CSS/Web animations on `ref` to finish before firing `onComplete`.
11
+ */
12
+ open?: boolean;
13
+ /**
14
+ * Element whose animations/transition we observe. Should be stable while the
15
+ * open/close animation runs (typically the root animated node).
16
+ */
17
+ ref?: React.RefObject<HTMLElement | null>;
18
+ /**
19
+ * Called exactly once per open-change cycle after animations finish OR
20
+ * immediately if animations are disabled / unsupported.
21
+ */
22
+ onComplete: () => void;
23
+ }
24
+ /**
25
+ * Waits for the element's current Web Animations / CSS transitions to finish after an
26
+ * `open` state change, then invokes `onComplete`. Guards against race conditions by
27
+ * comparing the `open` value captured at scheduling time with the latest `open` via ref;
28
+ * if they differ (state flipped again mid‑animation) the callback is skipped.
29
+ */
30
+ export declare function useOpenChangeComplete(parameters: useOpenChangeCompleteParameters): void;
31
+ export {};
@@ -0,0 +1,32 @@
1
+ "use client";
2
+ import { useEffect } from "react";
3
+ import { useAnimationsFinished } from "./useAnimationsFinished.js";
4
+ import { useEventCallback } from "./useEventCallback.js";
5
+ import { useLatestRef } from "./useLatestRef.js";
6
+ /**
7
+ * Waits for the element's current Web Animations / CSS transitions to finish after an
8
+ * `open` state change, then invokes `onComplete`. Guards against race conditions by
9
+ * comparing the `open` value captured at scheduling time with the latest `open` via ref;
10
+ * if they differ (state flipped again mid‑animation) the callback is skipped.
11
+ */
12
+ export function useOpenChangeComplete(parameters) {
13
+ const { enabled = true, open, ref = null, onComplete: onCompleteParam, } = parameters;
14
+ const openRef = useLatestRef(open);
15
+ const onComplete = useEventCallback(onCompleteParam);
16
+ const runOnceAnimationsFinish = useAnimationsFinished(ref, open);
17
+ useEffect(() => {
18
+ if (!enabled) {
19
+ return;
20
+ }
21
+ /*
22
+ * Schedule completion once the *current* set of animations settle. If during
23
+ * that wait `open` toggles again, skip to avoid firing for an outdated cycle.
24
+ */
25
+ runOnceAnimationsFinish(() => {
26
+ if (open === openRef.current) {
27
+ onComplete();
28
+ }
29
+ });
30
+ }, [enabled, open, onComplete, runOnceAnimationsFinish, openRef]);
31
+ }
32
+ //# sourceMappingURL=useOpenChangeComplete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOpenChangeComplete.js","sourceRoot":"","sources":["../../../../src/overlays/overlay/hooks/useOpenChangeComplete.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAc,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAChE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAyB9C;;;;;GAKG;AACH,MAAM,UAAU,qBAAqB,CACnC,UAA2C;IAE3C,MAAM,EACJ,OAAO,GAAG,IAAI,EACd,IAAI,EACJ,GAAG,GAAG,IAAI,EACV,UAAU,EAAE,eAAe,GAC5B,GAAG,UAAU,CAAC;IAEf,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACnC,MAAM,UAAU,GAAG,gBAAgB,CAAC,eAAe,CAAC,CAAC;IACrD,MAAM,uBAAuB,GAAG,qBAAqB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IAEjE,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;QACT,CAAC;QAED;;;WAGG;QACH,uBAAuB,CAAC,GAAG,EAAE;YAC3B,IAAI,IAAI,KAAK,OAAO,CAAC,OAAO,EAAE,CAAC;gBAC7B,UAAU,EAAE,CAAC;YACf,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,uBAAuB,EAAE,OAAO,CAAC,CAAC,CAAC;AACpE,CAAC"}
@@ -0,0 +1,7 @@
1
+ import React from "react";
2
+ /**
3
+ * useRef initialized with a function on mount.
4
+ */
5
+ declare function useRefWithInit<T>(init: () => T): React.RefObject<T>;
6
+ declare function useRefWithInit<T, U>(init: (arg: U) => T, initArg: U): React.RefObject<T>;
7
+ export { useRefWithInit };
@@ -0,0 +1,12 @@
1
+ "use client";
2
+ import { useRef } from "react";
3
+ const UNINITIALIZED = {};
4
+ function useRefWithInit(init, initArg) {
5
+ const ref = useRef(UNINITIALIZED);
6
+ if (ref.current === UNINITIALIZED) {
7
+ ref.current = init(initArg);
8
+ }
9
+ return ref;
10
+ }
11
+ export { useRefWithInit };
12
+ //# sourceMappingURL=useRefWithInit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useRefWithInit.js","sourceRoot":"","sources":["../../../../src/overlays/overlay/hooks/useRefWithInit.ts"],"names":[],"mappings":"AAAA,YAAY,CAAC;AAEb,OAAc,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAEtC,MAAM,aAAa,GAAG,EAAE,CAAC;AAUzB,SAAS,cAAc,CAAC,IAAgC,EAAE,OAAiB;IACzE,MAAM,GAAG,GAAG,MAAM,CAAC,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;AAED,OAAO,EAAE,cAAc,EAAE,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import React from "react";
2
2
  import { RowProps } from "./Row.js";
3
- export interface ExpandableRowProps extends Omit<RowProps, "content"> {
3
+ export interface ExpandableRowProps extends Omit<RowProps, "content" | "onRowClick"> {
4
4
  /**
5
5
  * Content of the expanded row
6
6
  */
@@ -19,6 +19,7 @@ import { useI18n } from "../util/i18n/i18n.hooks.js";
19
19
  import AnimateHeight from "./AnimateHeight.js";
20
20
  import DataCell from "./DataCell.js";
21
21
  import Row from "./Row.js";
22
+ import { isElementInteractiveTarget } from "./Table.utils.js";
22
23
  export const ExpandableRow = forwardRef((_a, ref) => {
23
24
  var { className, children, content, togglePlacement = "left", defaultOpen = false, open, onOpenChange, expansionDisabled = false, expandOnRowClick = false, colSpan = 999, contentGutter, onClick } = _a, rest = __rest(_a, ["className", "children", "content", "togglePlacement", "defaultOpen", "open", "onOpenChange", "expansionDisabled", "expandOnRowClick", "colSpan", "contentGutter", "onClick"]);
24
25
  const { cn } = useRenameCSS();
@@ -36,7 +37,7 @@ export const ExpandableRow = forwardRef((_a, ref) => {
36
37
  const handleRowClick = (event) => {
37
38
  expandOnRowClick &&
38
39
  !expansionDisabled &&
39
- !isInteractiveTarget(event.target) &&
40
+ !isElementInteractiveTarget(event.target) &&
40
41
  expansionHandler(event);
41
42
  };
42
43
  return (React.createElement(React.Fragment, null,
@@ -55,14 +56,5 @@ export const ExpandableRow = forwardRef((_a, ref) => {
55
56
  React.createElement("td", { colSpan: colSpan, className: cn("navds-table__expanded-row-cell") },
56
57
  React.createElement(AnimateHeight, { className: cn("navds-table__expanded-row-collapse"), innerClassName: cn(`navds-table__expanded-row-content navds-table__expanded-row-content--gutter-${contentGutter !== null && contentGutter !== void 0 ? contentGutter : togglePlacement}`), height: _open ? "auto" : 0, duration: 150, easing: "cubic-bezier(0.39,0.57,0.56,1)" }, content)))));
57
58
  });
58
- function isInteractiveTarget(elm) {
59
- if (elm.nodeName === "TD" || elm.nodeName === "TH" || !elm.parentElement) {
60
- return false;
61
- }
62
- if (["BUTTON", "DETAILS", "LABEL", "SELECT", "TEXTAREA", "INPUT", "A"].includes(elm.nodeName)) {
63
- return true;
64
- }
65
- return isInteractiveTarget(elm.parentElement);
66
- }
67
59
  export default ExpandableRow;
68
60
  //# sourceMappingURL=ExpandableRow.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ExpandableRow.js","sourceRoot":"","sources":["../../src/table/ExpandableRow.tsx"],"names":[],"mappings":";;;;;;;;;;;AAAA,OAAO,KAAK,EAAE,EAAE,UAAU,EAAE,MAAM,OAAO,CAAC;AAC1C,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,oBAAoB,EAAE,MAAM,8BAA8B,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACtC,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,OAAO,EAAE,MAAM,yBAAyB,CAAC;AAClD,OAAO,aAAa,MAAM,iBAAiB,CAAC;AAC5C,OAAO,QAAQ,MAAM,YAAY,CAAC;AAClC,OAAO,GAAiB,MAAM,OAAO,CAAC;AAoDtC,MAAM,CAAC,MAAM,aAAa,GAAsB,UAAU,CACxD,CACE,EAcC,EACD,GAAG,EACH,EAAE;QAhBF,EACE,SAAS,EACT,QAAQ,EACR,OAAO,EACP,eAAe,GAAG,MAAM,EACxB,WAAW,GAAG,KAAK,EACnB,IAAI,EACJ,YAAY,EACZ,iBAAiB,GAAG,KAAK,EACzB,gBAAgB,GAAG,KAAK,EACxB,OAAO,GAAG,GAAG,EACb,aAAa,EACb,OAAO,OAER,EADI,IAAI,cAbT,8KAcC,CADQ;IAIT,MAAM,EAAE,EAAE,EAAE,GAAG,YAAY,EAAE,CAAC;IAC9B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,oBAAoB,CAAC;QAC7C,YAAY,EAAE,WAAW;QACzB,KAAK,EAAE,IAAI;QACX,QAAQ,EAAE,YAAY;KACvB,CAAC,CAAC;IACH,MAAM,SAAS,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;IAEpC,MAAM,EAAE,GAAG,KAAK,EAAE,CAAC;IAEnB,MAAM,gBAAgB,GAAG,CAAC,KAAoC,EAAE,EAAE;QAChE,QAAQ,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC;QAChC,KAAK,CAAC,eAAe,EAAE,CAAC;IAC1B,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,CAAC,KAA4C,EAAE,EAAE;QACtE,gBAAgB;YACd,CAAC,iBAAiB;YAClB,CAAC,mBAAmB,CAAC,KAAK,CAAC,MAAqB,CAAC;YACjD,gBAAgB,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,OAAO,CACL;QACE,oBAAC,GAAG,oBACE,IAAI,IACR,GAAG,EAAE,GAAG,EACR,SAAS,EAAE,EAAE,CAAC,6BAA6B,EAAE,SAAS,EAAE;gBACtD,mCAAmC,EAAE,KAAK;gBAC1C,iDAAiD,EAC/C,iBAAiB;gBACnB,wCAAwC,EAAE,gBAAgB;aAC3D,CAAC,EACF,OAAO,EAAE,oBAAoB,CAAC,OAAO,EAAE,cAAc,CAAC;YAErD,eAAe,KAAK,OAAO,IAAI,QAAQ;YACxC,oBAAC,QAAQ,IACP,SAAS,EAAE,EAAE,CAAC,iCAAiC,EAAE;oBAC/C,uCAAuC,EAAE,KAAK;iBAC/C,CAAC,EACF,OAAO,EAAE,CAAC,iBAAiB,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,IAAI,IAE1D,CAAC,iBAAiB,IAAI,CACrB,gCACE,SAAS,EAAE,EAAE,CAAC,mCAAmC,CAAC,EAClD,IAAI,EAAC,QAAQ,mBACE,EAAE,mBACF,KAAK,EACpB,OAAO,EAAE,gBAAgB;gBAEzB,oBAAC,eAAe,IACd,SAAS,EAAE,EAAE,CAAC,8BAA8B,CAAC,EAC7C,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,UAAU,CAAC,GAC5D,CACK,CACV,CACQ;YACV,eAAe,KAAK,MAAM,IAAI,QAAQ,CACnC;QACN,0CACc,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,EACrC,SAAS,EAAE,EAAE,CAAC,2BAA2B,CAAC,iBAC7B,CAAC,KAAK,EACnB,EAAE,EAAE,EAAE;YAEN,4BACE,OAAO,EAAE,OAAO,EAChB,SAAS,EAAE,EAAE,CAAC,gCAAgC,CAAC;gBAE/C,oBAAC,aAAa,IACZ,SAAS,EAAE,EAAE,CAAC,oCAAoC,CAAC,EACnD,cAAc,EAAE,EAAE,CAChB,+EACE,aAAa,aAAb,aAAa,cAAb,aAAa,GAAI,eACnB,EAAE,CACH,EACD,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAC1B,QAAQ,EAAE,GAAG,EACb,MAAM,EAAC,gCAAgC,IAEtC,OAAO,CACM,CACb,CACF,CACJ,CACJ,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,SAAS,mBAAmB,CAAC,GAAgB;IAC3C,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QACzE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IACE,CAAC,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,GAAG,CAAC,CAAC,QAAQ,CACzE,GAAG,CAAC,QAAQ,CACb,EACD,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,mBAAmB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;AAChD,CAAC;AAED,eAAe,aAAa,CAAC"}
1
+ {"version":3,"file":"ExpandableRow.js","sourceRoot":"","sources":["../../src/table/ExpandableRow.tsx"],"names":[],"mappings":"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"}