@octaviaflow/core 3.1.0-beta.78 → 3.1.0-beta.79

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/dist/index.js CHANGED
@@ -26,7 +26,7 @@ import {
26
26
  handleCentre,
27
27
  usePasswordStrength,
28
28
  useViewportOrNull
29
- } from "./chunk-2N74IQCL.js";
29
+ } from "./chunk-PB4O5GEF.js";
30
30
  import {
31
31
  AVATAR_PALETTE_SIZE,
32
32
  Avatar,
@@ -50,7 +50,7 @@ import {
50
50
  useTextareaCommands,
51
51
  useTextareaSelection,
52
52
  useTextareaTools
53
- } from "./chunk-REEBXURQ.js";
53
+ } from "./chunk-XD5G2K2M.js";
54
54
  import {
55
55
  $05678f3aee5e7d1a$export$6d08773d2e66f8f2,
56
56
  $384704861d32dbed$export$bca9d026f8e704eb,
@@ -64,7 +64,7 @@ import {
64
64
  Spinner,
65
65
  Tooltip,
66
66
  resolveAccessibleName
67
- } from "./chunk-CRDYAV5R.js";
67
+ } from "./chunk-FJHUWP4K.js";
68
68
  import {
69
69
  __export,
70
70
  cn
@@ -6977,7 +6977,11 @@ var DialogContent = forwardRef31(function DialogContent2({
6977
6977
  isOpen: open,
6978
6978
  onClose,
6979
6979
  isDismissable: closeOnOverlayClick,
6980
- isKeyboardDismissDisabled: !closeOnEsc
6980
+ isKeyboardDismissDisabled: !closeOnEsc,
6981
+ // Floating layers (Select/Combobox/DropdownMenu/DatePicker dropdowns)
6982
+ // portal to <body>, OUTSIDE the dialog subtree — without this, picking
6983
+ // an option counted as an outside click and closed the dialog.
6984
+ shouldCloseOnInteractOutside: (element) => !(element instanceof Element && element.closest("[data-ods-floating]"))
6981
6985
  },
6982
6986
  overlayRef
6983
6987
  );
@@ -7644,76 +7648,82 @@ var ContextMenu = forwardRef34(
7644
7648
  );
7645
7649
  }
7646
7650
  const portalTarget = container ?? document.body;
7647
- const panel = /* @__PURE__ */ jsx42(AnimatePresence8, { children: open && /* @__PURE__ */ jsx42(
7648
- motion10.div,
7651
+ const panel = /* @__PURE__ */ jsx42(
7652
+ AnimatePresence8,
7649
7653
  {
7650
- ...rest,
7651
- ref: (el) => {
7652
- panelRef.current = el;
7653
- if (typeof ref === "function") ref(el);
7654
- else if (ref) {
7655
- ref.current = el;
7656
- }
7657
- },
7658
- id: baseId,
7659
- role: "menu",
7660
- "aria-label": ariaLabel,
7661
- tabIndex: -1,
7662
- className: cn("ods-ctxmenu", className),
7663
- style: {
7664
- top: adjustedPosition.y,
7665
- left: adjustedPosition.x
7666
- },
7667
- initial: reducedMotion ? void 0 : { opacity: 0, scale: 0.96 },
7668
- animate: reducedMotion ? void 0 : { opacity: 1, scale: 1 },
7669
- exit: reducedMotion ? void 0 : { opacity: 0, scale: 0.96 },
7670
- transition: { duration: 0.12 },
7671
- onKeyDown: handleKeyDown,
7672
- onContextMenu: (e) => e.preventDefault(),
7673
- children: /* @__PURE__ */ jsx42("ul", { className: "ods-ctxmenu__list", children: items.map((item, i) => {
7674
- if (item.separator) {
7675
- return /* @__PURE__ */ jsx42(
7676
- "li",
7677
- {
7678
- role: "separator",
7679
- className: "ods-ctxmenu__separator"
7680
- },
7681
- `sep-${i}`
7682
- );
7683
- }
7684
- const isActive2 = i === activeIndex;
7685
- return /* @__PURE__ */ jsxs42(
7686
- "li",
7687
- {
7688
- role: "menuitem",
7689
- "aria-disabled": item.disabled || void 0,
7690
- tabIndex: -1,
7691
- className: cn(
7692
- "ods-ctxmenu__item",
7693
- isActive2 && "ods-ctxmenu__item--active",
7694
- item.danger && "ods-ctxmenu__item--danger",
7695
- item.disabled && "ods-ctxmenu__item--disabled"
7696
- ),
7697
- onMouseEnter: () => !item.disabled && setActiveIndex(i),
7698
- onClick: () => handleItemClick(item),
7699
- children: [
7700
- item.icon && /* @__PURE__ */ jsx42(
7701
- "span",
7702
- {
7703
- className: "ods-ctxmenu__icon",
7704
- "aria-hidden": "true",
7705
- children: item.icon
7706
- }
7707
- ),
7708
- /* @__PURE__ */ jsx42("span", { className: "ods-ctxmenu__label", children: item.label }),
7709
- item.shortcut && /* @__PURE__ */ jsx42("kbd", { className: "ods-ctxmenu__shortcut", children: item.shortcut })
7710
- ]
7654
+ "data-ods-floating": "",
7655
+ children: open && /* @__PURE__ */ jsx42(
7656
+ motion10.div,
7657
+ {
7658
+ ...rest,
7659
+ ref: (el) => {
7660
+ panelRef.current = el;
7661
+ if (typeof ref === "function") ref(el);
7662
+ else if (ref) {
7663
+ ref.current = el;
7664
+ }
7711
7665
  },
7712
- `${item.label}-${i}`
7713
- );
7714
- }) })
7666
+ id: baseId,
7667
+ role: "menu",
7668
+ "aria-label": ariaLabel,
7669
+ tabIndex: -1,
7670
+ className: cn("ods-ctxmenu", className),
7671
+ style: {
7672
+ top: adjustedPosition.y,
7673
+ left: adjustedPosition.x
7674
+ },
7675
+ initial: reducedMotion ? void 0 : { opacity: 0, scale: 0.96 },
7676
+ animate: reducedMotion ? void 0 : { opacity: 1, scale: 1 },
7677
+ exit: reducedMotion ? void 0 : { opacity: 0, scale: 0.96 },
7678
+ transition: { duration: 0.12 },
7679
+ onKeyDown: handleKeyDown,
7680
+ onContextMenu: (e) => e.preventDefault(),
7681
+ children: /* @__PURE__ */ jsx42("ul", { className: "ods-ctxmenu__list", children: items.map((item, i) => {
7682
+ if (item.separator) {
7683
+ return /* @__PURE__ */ jsx42(
7684
+ "li",
7685
+ {
7686
+ role: "separator",
7687
+ className: "ods-ctxmenu__separator"
7688
+ },
7689
+ `sep-${i}`
7690
+ );
7691
+ }
7692
+ const isActive2 = i === activeIndex;
7693
+ return /* @__PURE__ */ jsxs42(
7694
+ "li",
7695
+ {
7696
+ role: "menuitem",
7697
+ "aria-disabled": item.disabled || void 0,
7698
+ tabIndex: -1,
7699
+ className: cn(
7700
+ "ods-ctxmenu__item",
7701
+ isActive2 && "ods-ctxmenu__item--active",
7702
+ item.danger && "ods-ctxmenu__item--danger",
7703
+ item.disabled && "ods-ctxmenu__item--disabled"
7704
+ ),
7705
+ onMouseEnter: () => !item.disabled && setActiveIndex(i),
7706
+ onClick: () => handleItemClick(item),
7707
+ children: [
7708
+ item.icon && /* @__PURE__ */ jsx42(
7709
+ "span",
7710
+ {
7711
+ className: "ods-ctxmenu__icon",
7712
+ "aria-hidden": "true",
7713
+ children: item.icon
7714
+ }
7715
+ ),
7716
+ /* @__PURE__ */ jsx42("span", { className: "ods-ctxmenu__label", children: item.label }),
7717
+ item.shortcut && /* @__PURE__ */ jsx42("kbd", { className: "ods-ctxmenu__shortcut", children: item.shortcut })
7718
+ ]
7719
+ },
7720
+ `${item.label}-${i}`
7721
+ );
7722
+ }) })
7723
+ }
7724
+ )
7715
7725
  }
7716
- ) });
7726
+ );
7717
7727
  return /* @__PURE__ */ jsxs42(Fragment16, { children: [
7718
7728
  /* @__PURE__ */ jsx42(
7719
7729
  "span",
@@ -10648,6 +10658,7 @@ var DatePicker = forwardRef37(
10648
10658
  "div",
10649
10659
  {
10650
10660
  ref: popoverRef,
10661
+ "data-ods-floating": "",
10651
10662
  className: "ods-datepicker__popover",
10652
10663
  role: "dialog",
10653
10664
  "aria-modal": "false",
@@ -11139,6 +11150,7 @@ function MenuPopup({
11139
11150
  const portalContent = /* @__PURE__ */ jsx50(AnimatePresence9, { children: state.isOpen && /* @__PURE__ */ jsx50(
11140
11151
  motion12.ul,
11141
11152
  {
11153
+ "data-ods-floating": "",
11142
11154
  ...(() => {
11143
11155
  const { onDrag, onDragStart, onDragEnd, onAnimationStart, ...safe } = menuProps;
11144
11156
  return safe;
@@ -25778,6 +25790,7 @@ var MultiSelect = forwardRef65(
25778
25790
  motion20.div,
25779
25791
  {
25780
25792
  ref: dropdownRef,
25793
+ "data-ods-floating": "",
25781
25794
  className: "ods-multiselect__dropdown",
25782
25795
  style: {
25783
25796
  position: "fixed",