reka-ui 2.9.0 → 2.9.2

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 (94) hide show
  1. package/dist/Calendar/CalendarGrid.cjs +1 -1
  2. package/dist/Calendar/CalendarGrid.js +1 -1
  3. package/dist/Combobox/ComboboxInput.cjs +10 -1
  4. package/dist/Combobox/ComboboxInput.cjs.map +1 -1
  5. package/dist/Combobox/ComboboxInput.js +10 -1
  6. package/dist/Combobox/ComboboxInput.js.map +1 -1
  7. package/dist/DismissableLayer/utils.cjs +1 -0
  8. package/dist/DismissableLayer/utils.cjs.map +1 -1
  9. package/dist/DismissableLayer/utils.js +1 -0
  10. package/dist/DismissableLayer/utils.js.map +1 -1
  11. package/dist/Menu/MenuGroup.cjs +13 -2
  12. package/dist/Menu/MenuGroup.cjs.map +1 -1
  13. package/dist/Menu/MenuGroup.js +8 -3
  14. package/dist/Menu/MenuGroup.js.map +1 -1
  15. package/dist/Menu/MenuItemImpl.cjs +1 -2
  16. package/dist/Menu/MenuItemImpl.cjs.map +1 -1
  17. package/dist/Menu/MenuItemImpl.js +1 -2
  18. package/dist/Menu/MenuItemImpl.js.map +1 -1
  19. package/dist/Menu/MenuLabel.cjs +4 -2
  20. package/dist/Menu/MenuLabel.cjs.map +1 -1
  21. package/dist/Menu/MenuLabel.js +5 -3
  22. package/dist/Menu/MenuLabel.js.map +1 -1
  23. package/dist/MonthPicker/MonthPickerGrid.cjs +1 -1
  24. package/dist/MonthPicker/MonthPickerGrid.js +1 -1
  25. package/dist/MonthRangePicker/MonthRangePickerGrid.cjs +1 -1
  26. package/dist/MonthRangePicker/MonthRangePickerGrid.js +1 -1
  27. package/dist/RangeCalendar/RangeCalendarGrid.cjs +1 -1
  28. package/dist/RangeCalendar/RangeCalendarGrid.js +1 -1
  29. package/dist/Splitter/SplitterGroup.cjs +30 -13
  30. package/dist/Splitter/SplitterGroup.cjs.map +1 -1
  31. package/dist/Splitter/SplitterGroup.js +30 -13
  32. package/dist/Splitter/SplitterGroup.js.map +1 -1
  33. package/dist/Toast/FocusProxy.cjs +0 -1
  34. package/dist/Toast/FocusProxy.cjs.map +1 -1
  35. package/dist/Toast/FocusProxy.js +0 -1
  36. package/dist/Toast/FocusProxy.js.map +1 -1
  37. package/dist/Toast/ToastRootImpl.cjs +1 -5
  38. package/dist/Toast/ToastRootImpl.cjs.map +1 -1
  39. package/dist/Toast/ToastRootImpl.js +1 -5
  40. package/dist/Toast/ToastRootImpl.js.map +1 -1
  41. package/dist/YearPicker/YearPickerGrid.cjs +1 -1
  42. package/dist/YearPicker/YearPickerGrid.js +1 -1
  43. package/dist/YearRangePicker/YearRangePickerGrid.cjs +1 -1
  44. package/dist/YearRangePicker/YearRangePickerGrid.js +1 -1
  45. package/dist/constant.d.cts.map +1 -1
  46. package/dist/date/useDateField.cjs +1 -0
  47. package/dist/date/useDateField.cjs.map +1 -1
  48. package/dist/date/useDateField.js +1 -0
  49. package/dist/date/useDateField.js.map +1 -1
  50. package/dist/index.cjs +1 -1
  51. package/dist/index.js +1 -1
  52. package/dist/index3.d.cts +1021 -1020
  53. package/dist/index3.d.cts.map +1 -1
  54. package/dist/index3.d.ts +1047 -1046
  55. package/dist/index3.d.ts.map +1 -1
  56. package/dist/internal.d.cts +2 -4
  57. package/dist/internal.d.ts +2 -4
  58. package/dist/internal.d.ts.map +1 -1
  59. package/dist/shared/useBodyScrollLock.cjs +1 -0
  60. package/dist/shared/useBodyScrollLock.cjs.map +1 -1
  61. package/dist/shared/useBodyScrollLock.js +1 -0
  62. package/dist/shared/useBodyScrollLock.js.map +1 -1
  63. package/dist/shared/useHideOthers.cjs +5 -1
  64. package/dist/shared/useHideOthers.cjs.map +1 -1
  65. package/dist/shared/useHideOthers.js +5 -1
  66. package/dist/shared/useHideOthers.js.map +1 -1
  67. package/dist/utils/callPanelCallbacks.cjs +10 -7
  68. package/dist/utils/callPanelCallbacks.cjs.map +1 -1
  69. package/dist/utils/callPanelCallbacks.js +10 -7
  70. package/dist/utils/callPanelCallbacks.js.map +1 -1
  71. package/dist/utils/units.cjs +5 -0
  72. package/dist/utils/units.cjs.map +1 -1
  73. package/dist/utils/units.js +5 -0
  74. package/dist/utils/units.js.map +1 -1
  75. package/package.json +2 -2
  76. package/src/Calendar/CalendarGrid.vue +1 -1
  77. package/src/Combobox/ComboboxInput.vue +19 -0
  78. package/src/DismissableLayer/utils.ts +4 -1
  79. package/src/Menu/MenuGroup.vue +12 -0
  80. package/src/Menu/MenuItemImpl.vue +1 -4
  81. package/src/Menu/MenuLabel.vue +7 -1
  82. package/src/MonthPicker/MonthPickerGrid.vue +1 -1
  83. package/src/MonthRangePicker/MonthRangePickerGrid.vue +1 -1
  84. package/src/RangeCalendar/RangeCalendarGrid.vue +1 -1
  85. package/src/Splitter/SplitterGroup.vue +46 -6
  86. package/src/Splitter/utils/callPanelCallbacks.ts +16 -8
  87. package/src/Splitter/utils/units.ts +12 -0
  88. package/src/Toast/FocusProxy.vue +0 -1
  89. package/src/Toast/ToastRootImpl.vue +0 -4
  90. package/src/YearPicker/YearPickerGrid.vue +1 -1
  91. package/src/YearRangePicker/YearRangePickerGrid.vue +1 -1
  92. package/src/shared/date/useDateField.ts +2 -1
  93. package/src/shared/useBodyScrollLock.ts +2 -0
  94. package/src/shared/useHideOthers.ts +8 -1
@@ -1,6 +1,6 @@
1
1
  import "./index2.cjs";
2
2
  import { MenuArrowProps, MenuCheckboxItemEmits, MenuCheckboxItemProps, MenuContentEmits, MenuContentProps, MenuEmits, MenuGroupProps, MenuItemEmits, MenuItemIndicatorProps, MenuItemProps, MenuLabelProps, MenuPortalProps, MenuProps, MenuRadioGroupEmits, MenuRadioGroupProps, MenuRadioItemEmits, MenuRadioItemProps, MenuSeparatorProps, MenuSubContentEmits, MenuSubContentProps, MenuSubEmits, MenuSubProps, MenuSubTriggerProps, PopperAnchorProps, _default$277 as _default$13, _default$278 as _default$8, _default$279 as _default, _default$280 as _default$6, _default$281 as _default$10, _default$282 as _default$3, _default$283 as _default$14, _default$284 as _default$12, _default$285 as _default$2, _default$286 as _default$1, _default$287 as _default$11, _default$288 as _default$7, _default$290 as _default$9, _default$291 as _default$4, _default$292 as _default$5, injectMenuContext, injectMenuRootContext } from "./index3.cjs";
3
- import * as vue0 from "vue";
3
+ import * as vue5 from "vue";
4
4
 
5
5
  //#region src/Menu/MenuAnchor.vue.d.ts
6
6
  interface MenuAnchorProps extends PopperAnchorProps {}
@@ -8,15 +8,13 @@ declare var __VLS_6: {};
8
8
  type __VLS_Slots = {} & {
9
9
  default?: (props: typeof __VLS_6) => any;
10
10
  };
11
- declare const __VLS_component: vue0.DefineComponent<MenuAnchorProps, {}, {}, {}, {}, vue0.ComponentOptionsMixin, vue0.ComponentOptionsMixin, {}, string, vue0.PublicProps, Readonly<MenuAnchorProps> & Readonly<{}>, {}, {}, {}, {}, string, vue0.ComponentProvideOptions, false, {}, any>;
11
+ declare const __VLS_component: vue5.DefineComponent<MenuAnchorProps, {}, {}, {}, {}, vue5.ComponentOptionsMixin, vue5.ComponentOptionsMixin, {}, string, vue5.PublicProps, Readonly<MenuAnchorProps> & Readonly<{}>, {}, {}, {}, {}, string, vue5.ComponentProvideOptions, false, {}, any>;
12
12
  declare const _default$15: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
13
13
  type __VLS_WithSlots<T, S> = T & {
14
14
  new (): {
15
15
  $slots: S;
16
16
  };
17
17
  };
18
- //# sourceMappingURL=MenuAnchor.vue.d.ts.map
19
-
20
18
  //#endregion
21
19
  export { _default$15 as MenuAnchor, _default$5 as MenuArrow, MenuArrowProps, _default$9 as MenuCheckboxItem, MenuCheckboxItemEmits, MenuCheckboxItemProps, _default$7 as MenuContent, MenuContentEmits, MenuContentProps, MenuEmits, _default$11 as MenuGroup, MenuGroupProps, _default$4 as MenuItem, MenuItemEmits, _default$1 as MenuItemIndicator, MenuItemIndicatorProps, MenuItemProps, _default$2 as MenuLabel, MenuLabelProps, _default$12 as MenuPortal, MenuPortalProps, MenuProps, _default$14 as MenuRadioGroup, MenuRadioGroupEmits, MenuRadioGroupProps, _default$3 as MenuRadioItem, MenuRadioItemEmits, MenuRadioItemProps, _default$10 as MenuRoot, _default$6 as MenuSeparator, MenuSeparatorProps, _default as MenuSub, _default$8 as MenuSubContent, MenuSubContentEmits, MenuSubContentProps, MenuSubEmits, MenuSubProps, _default$13 as MenuSubTrigger, MenuSubTriggerProps, injectMenuContext, injectMenuRootContext };
22
20
  //# sourceMappingURL=internal.d.cts.map
@@ -1,6 +1,6 @@
1
1
  import "./index2.js";
2
2
  import { MenuArrowProps, MenuCheckboxItemEmits, MenuCheckboxItemProps, MenuContentEmits, MenuContentProps, MenuEmits, MenuGroupProps, MenuItemEmits, MenuItemIndicatorProps, MenuItemProps, MenuLabelProps, MenuPortalProps, MenuProps, MenuRadioGroupEmits, MenuRadioGroupProps, MenuRadioItemEmits, MenuRadioItemProps, MenuSeparatorProps, MenuSubContentEmits, MenuSubContentProps, MenuSubEmits, MenuSubProps, MenuSubTriggerProps, PopperAnchorProps, _default$277 as _default$13, _default$278 as _default$8, _default$279 as _default, _default$280 as _default$6, _default$281 as _default$10, _default$282 as _default$3, _default$283 as _default$14, _default$284 as _default$12, _default$285 as _default$2, _default$286 as _default$1, _default$287 as _default$11, _default$288 as _default$7, _default$290 as _default$9, _default$291 as _default$4, _default$292 as _default$5, injectMenuContext, injectMenuRootContext } from "./index3.js";
3
- import * as vue619 from "vue";
3
+ import * as vue57 from "vue";
4
4
 
5
5
  //#region src/Menu/MenuAnchor.vue.d.ts
6
6
  interface MenuAnchorProps extends PopperAnchorProps {}
@@ -8,15 +8,13 @@ declare var __VLS_6: {};
8
8
  type __VLS_Slots = {} & {
9
9
  default?: (props: typeof __VLS_6) => any;
10
10
  };
11
- declare const __VLS_component: vue619.DefineComponent<MenuAnchorProps, {}, {}, {}, {}, vue619.ComponentOptionsMixin, vue619.ComponentOptionsMixin, {}, string, vue619.PublicProps, Readonly<MenuAnchorProps> & Readonly<{}>, {}, {}, {}, {}, string, vue619.ComponentProvideOptions, false, {}, any>;
11
+ declare const __VLS_component: vue57.DefineComponent<MenuAnchorProps, {}, {}, {}, {}, vue57.ComponentOptionsMixin, vue57.ComponentOptionsMixin, {}, string, vue57.PublicProps, Readonly<MenuAnchorProps> & Readonly<{}>, {}, {}, {}, {}, string, vue57.ComponentProvideOptions, false, {}, any>;
12
12
  declare const _default$15: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
13
13
  type __VLS_WithSlots<T, S> = T & {
14
14
  new (): {
15
15
  $slots: S;
16
16
  };
17
17
  };
18
- //# sourceMappingURL=MenuAnchor.vue.d.ts.map
19
-
20
18
  //#endregion
21
19
  export { _default$15 as MenuAnchor, _default$5 as MenuArrow, MenuArrowProps, _default$9 as MenuCheckboxItem, MenuCheckboxItemEmits, MenuCheckboxItemProps, _default$7 as MenuContent, MenuContentEmits, MenuContentProps, MenuEmits, _default$11 as MenuGroup, MenuGroupProps, _default$4 as MenuItem, MenuItemEmits, _default$1 as MenuItemIndicator, MenuItemIndicatorProps, MenuItemProps, _default$2 as MenuLabel, MenuLabelProps, _default$12 as MenuPortal, MenuPortalProps, MenuProps, _default$14 as MenuRadioGroup, MenuRadioGroupEmits, MenuRadioGroupProps, _default$3 as MenuRadioItem, MenuRadioItemEmits, MenuRadioItemProps, _default$10 as MenuRoot, _default$6 as MenuSeparator, MenuSeparatorProps, _default as MenuSub, _default$8 as MenuSubContent, MenuSubContentEmits, MenuSubContentProps, MenuSubEmits, MenuSubProps, _default$13 as MenuSubTrigger, MenuSubTriggerProps, injectMenuContext, injectMenuRootContext };
22
20
  //# sourceMappingURL=internal.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.ts","names":[],"sources":["../src/Menu/MenuAnchor.vue"],"sourcesContent":[],"mappings":";;;;;UAkBU,eAAA,SAAwB;YA4B9B;KACC,WAAA;EA7BK,OAAA,CAAA,EAAA,CAAA,KAAA,EAAgB,OA8BG,OA9BK,EAAA,GAAA,GAAA;AAAiB,CAAA;AA4B7B,cAsBhB,eArBU,EAqBK,MAAA,CAAA,eApBe,CAoBf,eApBe,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAoBf,MAAA,CAAA,qBAAA,EAAA,MAAA,CAAA,qBAAA,EApBe,CAAA,CAAA,EAAA,MAAA,EAoBf,MAAA,CAAA,WAAA,EAAA,QApBe,CAoBf,eApBe,CAAA,GAoBf,QApBe,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,EAoBf,MAAA,CAAA,uBAAA,EApBe,KAAA,EAAA,CAAA,CAAA,EAAA,GAAA,CAAA;AAAA,cAoBf,WAMnB,EACmB,eADnB,CAAA,OAC0C,eAD1C,EAC2D,WAD3D,CAAA;KASG,eAfgB,CAAA,CAAA,EAAA,CAAA,CAAA,GAeQ,CAfR,GAAA;EAAA,MAAA,EAAA;IAAA,MAAA,EAiBX,CAjBW;EAAA,CAAA;CAAA"}
1
+ {"version":3,"file":"internal.d.ts","names":[],"sources":["../src/Menu/MenuAnchor.vue"],"sourcesContent":[],"mappings":";;;;;UAkBU,eAAA,SAAwB;YA4B9B;KACC,WAAA;EA7BK,OAAA,CAAA,EAAA,CAAA,KAAA,EAAgB,OA8BG,OA9BK,EAAA,GAAA,GAAA;AAAiB,CAAA;AA4B7B,cAsBhB,eArBU,EAqBK,KAAA,CAAA,eApBe,CAoBf,eApBe,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAoBf,KAAA,CAAA,qBAAA,EAAA,KAAA,CAAA,qBAAA,EApBe,CAAA,CAAA,EAAA,MAAA,EAoBf,KAAA,CAAA,WAAA,EAAA,QApBe,CAoBf,eApBe,CAAA,GAoBf,QApBe,CAAA,CAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,MAAA,EAoBf,KAAA,CAAA,uBAAA,EApBe,KAAA,EAAA,CAAA,CAAA,EAAA,GAAA,CAAA;AAAA,cAoBf,WAMnB,EACmB,eADnB,CAAA,OAC0C,eAD1C,EAC2D,WAD3D,CAAA;KASG,eAfgB,CAAA,CAAA,EAAA,CAAA,CAAA,GAeQ,CAfR,GAAA;EAAA,MAAA,EAAA;IAAA,MAAA,EAiBX,CAjBW;EAAA,CAAA;CAAA"}
@@ -51,6 +51,7 @@ const useBodyLockStackCount = (0, __vueuse_core.createSharedComposable)(() => {
51
51
  }
52
52
  if (__vueuse_shared.isIOS) stopTouchMoveListener = (0, __vueuse_core.useEventListener)(document, "touchmove", (e) => preventDefault(e), { passive: false });
53
53
  (0, vue.nextTick)(() => {
54
+ if (!locked.value) return;
54
55
  document.body.style.pointerEvents = "none";
55
56
  document.body.style.overflow = "hidden";
56
57
  });
@@ -1 +1 @@
1
- {"version":3,"file":"useBodyScrollLock.cjs","names":["stopTouchMoveListener: Fn | null","isClient","isIOS","e: TouchEvent","initialState?: boolean | undefined","ele: Element","rawEvent: TouchEvent"],"sources":["../../src/shared/useBodyScrollLock.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"useBodyScrollLock.cjs","names":["stopTouchMoveListener: Fn | null","isClient","isIOS","e: TouchEvent","initialState?: boolean | undefined","ele: Element","rawEvent: TouchEvent"],"sources":["../../src/shared/useBodyScrollLock.ts"],"sourcesContent":[],"mappings":"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"}
@@ -50,6 +50,7 @@ const useBodyLockStackCount = createSharedComposable(() => {
50
50
  }
51
51
  if (isIOS) stopTouchMoveListener = useEventListener(document, "touchmove", (e) => preventDefault(e), { passive: false });
52
52
  nextTick(() => {
53
+ if (!locked.value) return;
53
54
  document.body.style.pointerEvents = "none";
54
55
  document.body.style.overflow = "hidden";
55
56
  });
@@ -1 +1 @@
1
- {"version":3,"file":"useBodyScrollLock.js","names":["stopTouchMoveListener: Fn | null","e: TouchEvent","initialState?: boolean | undefined","ele: Element","rawEvent: TouchEvent"],"sources":["../../src/shared/useBodyScrollLock.ts"],"sourcesContent":[],"mappings":"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"}
1
+ {"version":3,"file":"useBodyScrollLock.js","names":["stopTouchMoveListener: Fn | null","e: TouchEvent","initialState?: boolean | undefined","ele: Element","rawEvent: TouchEvent"],"sources":["../../src/shared/useBodyScrollLock.ts"],"sourcesContent":[],"mappings":"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"}
@@ -14,7 +14,11 @@ const aria_hidden = require_rolldown_runtime.__toESM(require("aria-hidden"));
14
14
  function useHideOthers(target) {
15
15
  let undo;
16
16
  (0, vue.watch)(() => (0, __vueuse_core.unrefElement)(target), (el) => {
17
- if (el) undo = (0, aria_hidden.hideOthers)(el);
17
+ let isInsideClosedPopover = false;
18
+ try {
19
+ isInsideClosedPopover = !!el?.closest("[popover]:not(:popover-open)");
20
+ } catch {}
21
+ if (el && !isInsideClosedPopover) undo = (0, aria_hidden.hideOthers)(el);
18
22
  else if (undo) undo();
19
23
  });
20
24
  (0, vue.onUnmounted)(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"useHideOthers.cjs","names":["target: MaybeElementRef","undo: ReturnType<typeof hideOthers>"],"sources":["../../src/shared/useHideOthers.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;AAYA,SAAgB,cAAcA,QAAyB;CACrD,IAAIC;AACJ,gBAAM,MAAM,gCAAa,OAAO,EAAE,CAAC,OAAO;AAIxC,MAAI,GACF,QAAO,4BAAW,GAAG;WACd,KACP,OAAM;CACT,EAAC;AAEF,sBAAY,MAAM;AAChB,MAAI,KACF,OAAM;CACT,EAAC;AACH"}
1
+ {"version":3,"file":"useHideOthers.cjs","names":["target: MaybeElementRef","undo: ReturnType<typeof hideOthers>"],"sources":["../../src/shared/useHideOthers.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;;AAYA,SAAgB,cAAcA,QAAyB;CACrD,IAAIC;AACJ,gBAAM,MAAM,gCAAa,OAAO,EAAE,CAAC,OAAO;EAMxC,IAAI,wBAAwB;AAC5B,MAAI;AACF,6BAA0B,IAAI,QAAQ,+BAA+B;EACtE,QACK,CAAE;AACR,MAAI,OAAO,sBACT,QAAO,4BAAW,GAAG;WACd,KACP,OAAM;CACT,EAAC;AAEF,sBAAY,MAAM;AAChB,MAAI,KACF,OAAM;CACT,EAAC;AACH"}
@@ -13,7 +13,11 @@ import { hideOthers } from "aria-hidden";
13
13
  function useHideOthers(target) {
14
14
  let undo;
15
15
  watch(() => unrefElement(target), (el) => {
16
- if (el) undo = hideOthers(el);
16
+ let isInsideClosedPopover = false;
17
+ try {
18
+ isInsideClosedPopover = !!el?.closest("[popover]:not(:popover-open)");
19
+ } catch {}
20
+ if (el && !isInsideClosedPopover) undo = hideOthers(el);
17
21
  else if (undo) undo();
18
22
  });
19
23
  onUnmounted(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"useHideOthers.js","names":["target: MaybeElementRef","undo: ReturnType<typeof hideOthers>"],"sources":["../../src/shared/useHideOthers.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;AAYA,SAAgB,cAAcA,QAAyB;CACrD,IAAIC;AACJ,OAAM,MAAM,aAAa,OAAO,EAAE,CAAC,OAAO;AAIxC,MAAI,GACF,QAAO,WAAW,GAAG;WACd,KACP,OAAM;CACT,EAAC;AAEF,aAAY,MAAM;AAChB,MAAI,KACF,OAAM;CACT,EAAC;AACH"}
1
+ {"version":3,"file":"useHideOthers.js","names":["target: MaybeElementRef","undo: ReturnType<typeof hideOthers>"],"sources":["../../src/shared/useHideOthers.ts"],"sourcesContent":[],"mappings":";;;;;;;;;;;;AAYA,SAAgB,cAAcA,QAAyB;CACrD,IAAIC;AACJ,OAAM,MAAM,aAAa,OAAO,EAAE,CAAC,OAAO;EAMxC,IAAI,wBAAwB;AAC5B,MAAI;AACF,6BAA0B,IAAI,QAAQ,+BAA+B;EACtE,QACK,CAAE;AACR,MAAI,OAAO,sBACT,QAAO,WAAW,GAAG;WACd,KACP,OAAM;CACT,EAAC;AAEF,aAAY,MAAM;AAChB,MAAI,KACF,OAAM;CACT,EAAC;AACH"}
@@ -1,20 +1,23 @@
1
1
  const require_utils_assert = require('./assert.cjs');
2
+ const require_utils_compare = require('./compare.cjs');
2
3
 
3
4
  //#region src/Splitter/utils/callPanelCallbacks.ts
4
- function callPanelCallbacks(panelsArray, layout, panelIdToLastNotifiedSizeMap) {
5
+ function callPanelCallbacks(panelsArray, layout, panelIdToLastNotifiedSizeMap, groupSizeInPixels) {
5
6
  layout.forEach((size, index) => {
6
7
  const panelData = panelsArray[index];
7
8
  require_utils_assert.assert(panelData);
8
9
  const { callbacks, constraints, id: panelId } = panelData;
9
- const { collapsedSize = 0, collapsible } = constraints;
10
+ const { collapsedSize = 0, collapsible, sizeUnit } = constraints;
11
+ let displaySize = size;
12
+ if (sizeUnit === "px" && groupSizeInPixels != null) displaySize = size / 100 * groupSizeInPixels;
10
13
  const lastNotifiedSize = panelIdToLastNotifiedSizeMap[panelId];
11
- if (lastNotifiedSize == null || size !== lastNotifiedSize) {
12
- panelIdToLastNotifiedSizeMap[panelId] = size;
14
+ if (lastNotifiedSize == null || !require_utils_compare.fuzzyNumbersEqual(displaySize, lastNotifiedSize)) {
15
+ panelIdToLastNotifiedSizeMap[panelId] = displaySize;
13
16
  const { onCollapse, onExpand, onResize } = callbacks;
14
- if (onResize) onResize(size, lastNotifiedSize);
17
+ if (onResize) onResize(displaySize, lastNotifiedSize);
15
18
  if (collapsible && (onCollapse || onExpand)) {
16
- if (onExpand && (lastNotifiedSize == null || lastNotifiedSize === collapsedSize) && size !== collapsedSize) onExpand();
17
- if (onCollapse && (lastNotifiedSize == null || lastNotifiedSize !== collapsedSize) && size === collapsedSize) onCollapse();
19
+ if (onExpand && (lastNotifiedSize == null || require_utils_compare.fuzzyNumbersEqual(lastNotifiedSize, collapsedSize)) && !require_utils_compare.fuzzyNumbersEqual(displaySize, collapsedSize)) onExpand();
20
+ if (onCollapse && (lastNotifiedSize == null || !require_utils_compare.fuzzyNumbersEqual(lastNotifiedSize, collapsedSize)) && require_utils_compare.fuzzyNumbersEqual(displaySize, collapsedSize)) onCollapse();
18
21
  }
19
22
  }
20
23
  });
@@ -1 +1 @@
1
- {"version":3,"file":"callPanelCallbacks.cjs","names":["panelsArray: PanelData[]","layout: number[]","panelIdToLastNotifiedSizeMap: Record<string, number>"],"sources":["../../src/Splitter/utils/callPanelCallbacks.ts"],"sourcesContent":[],"mappings":";;;AAIA,SAAgB,mBACdA,aACAC,QACAC,8BACA;AACA,QAAO,QAAQ,CAAC,MAAM,UAAU;EAC9B,MAAM,YAAY,YAAY;AAC9B,8BAAO,UAAU;EAEjB,MAAM,EAAE,WAAW,aAAa,IAAI,SAAS,GAAG;EAChD,MAAM,EAAE,gBAAgB,GAAG,aAAa,GAAG;EAE3C,MAAM,mBAAmB,6BAA6B;AACtD,MAAI,oBAAoB,QAAQ,SAAS,kBAAkB;AACzD,gCAA6B,WAAW;GAExC,MAAM,EAAE,YAAY,UAAU,UAAU,GAAG;AAE3C,OAAI,SACF,UAAS,MAAM,iBAAiB;AAElC,OAAI,gBAAgB,cAAc,WAAW;AAC3C,QACE,aACI,oBAAoB,QAAQ,qBAAqB,kBAClD,SAAS,cAEZ,WAAU;AAGZ,QACE,eACI,oBAAoB,QAAQ,qBAAqB,kBAClD,SAAS,cAEZ,aAAY;GAEf;EACF;CACF,EAAC;AACH"}
1
+ {"version":3,"file":"callPanelCallbacks.cjs","names":["panelsArray: PanelData[]","layout: number[]","panelIdToLastNotifiedSizeMap: Record<string, number>","groupSizeInPixels?: number | null"],"sources":["../../src/Splitter/utils/callPanelCallbacks.ts"],"sourcesContent":[],"mappings":";;;;AAKA,SAAgB,mBACdA,aACAC,QACAC,8BACAC,mBACA;AACA,QAAO,QAAQ,CAAC,MAAM,UAAU;EAC9B,MAAM,YAAY,YAAY;AAC9B,8BAAO,UAAU;EAEjB,MAAM,EAAE,WAAW,aAAa,IAAI,SAAS,GAAG;EAChD,MAAM,EAAE,gBAAgB,GAAG,aAAa,UAAU,GAAG;EAGrD,IAAI,cAAc;AAClB,MAAI,aAAa,QAAQ,qBAAqB,KAC5C,eAAe,OAAO,MAAO;EAG/B,MAAM,mBAAmB,6BAA6B;AACtD,MAAI,oBAAoB,SAAS,wCAAkB,aAAa,iBAAiB,EAAE;AACjF,gCAA6B,WAAW;GAExC,MAAM,EAAE,YAAY,UAAU,UAAU,GAAG;AAE3C,OAAI,SACF,UAAS,aAAa,iBAAiB;AAEzC,OAAI,gBAAgB,cAAc,WAAW;AAC3C,QACE,aACI,oBAAoB,QAAQ,wCAAkB,kBAAkB,cAAc,MAC9E,wCAAkB,aAAa,cAAc,CAEjD,WAAU;AAGZ,QACE,eACI,oBAAoB,SAAS,wCAAkB,kBAAkB,cAAc,KAChF,wCAAkB,aAAa,cAAc,CAEhD,aAAY;GAEf;EACF;CACF,EAAC;AACH"}
@@ -1,20 +1,23 @@
1
1
  import { assert } from "./assert.js";
2
+ import { fuzzyNumbersEqual } from "./compare.js";
2
3
 
3
4
  //#region src/Splitter/utils/callPanelCallbacks.ts
4
- function callPanelCallbacks(panelsArray, layout, panelIdToLastNotifiedSizeMap) {
5
+ function callPanelCallbacks(panelsArray, layout, panelIdToLastNotifiedSizeMap, groupSizeInPixels) {
5
6
  layout.forEach((size, index) => {
6
7
  const panelData = panelsArray[index];
7
8
  assert(panelData);
8
9
  const { callbacks, constraints, id: panelId } = panelData;
9
- const { collapsedSize = 0, collapsible } = constraints;
10
+ const { collapsedSize = 0, collapsible, sizeUnit } = constraints;
11
+ let displaySize = size;
12
+ if (sizeUnit === "px" && groupSizeInPixels != null) displaySize = size / 100 * groupSizeInPixels;
10
13
  const lastNotifiedSize = panelIdToLastNotifiedSizeMap[panelId];
11
- if (lastNotifiedSize == null || size !== lastNotifiedSize) {
12
- panelIdToLastNotifiedSizeMap[panelId] = size;
14
+ if (lastNotifiedSize == null || !fuzzyNumbersEqual(displaySize, lastNotifiedSize)) {
15
+ panelIdToLastNotifiedSizeMap[panelId] = displaySize;
13
16
  const { onCollapse, onExpand, onResize } = callbacks;
14
- if (onResize) onResize(size, lastNotifiedSize);
17
+ if (onResize) onResize(displaySize, lastNotifiedSize);
15
18
  if (collapsible && (onCollapse || onExpand)) {
16
- if (onExpand && (lastNotifiedSize == null || lastNotifiedSize === collapsedSize) && size !== collapsedSize) onExpand();
17
- if (onCollapse && (lastNotifiedSize == null || lastNotifiedSize !== collapsedSize) && size === collapsedSize) onCollapse();
19
+ if (onExpand && (lastNotifiedSize == null || fuzzyNumbersEqual(lastNotifiedSize, collapsedSize)) && !fuzzyNumbersEqual(displaySize, collapsedSize)) onExpand();
20
+ if (onCollapse && (lastNotifiedSize == null || !fuzzyNumbersEqual(lastNotifiedSize, collapsedSize)) && fuzzyNumbersEqual(displaySize, collapsedSize)) onCollapse();
18
21
  }
19
22
  }
20
23
  });
@@ -1 +1 @@
1
- {"version":3,"file":"callPanelCallbacks.js","names":["panelsArray: PanelData[]","layout: number[]","panelIdToLastNotifiedSizeMap: Record<string, number>"],"sources":["../../src/Splitter/utils/callPanelCallbacks.ts"],"sourcesContent":[],"mappings":";;;AAIA,SAAgB,mBACdA,aACAC,QACAC,8BACA;AACA,QAAO,QAAQ,CAAC,MAAM,UAAU;EAC9B,MAAM,YAAY,YAAY;AAC9B,SAAO,UAAU;EAEjB,MAAM,EAAE,WAAW,aAAa,IAAI,SAAS,GAAG;EAChD,MAAM,EAAE,gBAAgB,GAAG,aAAa,GAAG;EAE3C,MAAM,mBAAmB,6BAA6B;AACtD,MAAI,oBAAoB,QAAQ,SAAS,kBAAkB;AACzD,gCAA6B,WAAW;GAExC,MAAM,EAAE,YAAY,UAAU,UAAU,GAAG;AAE3C,OAAI,SACF,UAAS,MAAM,iBAAiB;AAElC,OAAI,gBAAgB,cAAc,WAAW;AAC3C,QACE,aACI,oBAAoB,QAAQ,qBAAqB,kBAClD,SAAS,cAEZ,WAAU;AAGZ,QACE,eACI,oBAAoB,QAAQ,qBAAqB,kBAClD,SAAS,cAEZ,aAAY;GAEf;EACF;CACF,EAAC;AACH"}
1
+ {"version":3,"file":"callPanelCallbacks.js","names":["panelsArray: PanelData[]","layout: number[]","panelIdToLastNotifiedSizeMap: Record<string, number>","groupSizeInPixels?: number | null"],"sources":["../../src/Splitter/utils/callPanelCallbacks.ts"],"sourcesContent":[],"mappings":";;;;AAKA,SAAgB,mBACdA,aACAC,QACAC,8BACAC,mBACA;AACA,QAAO,QAAQ,CAAC,MAAM,UAAU;EAC9B,MAAM,YAAY,YAAY;AAC9B,SAAO,UAAU;EAEjB,MAAM,EAAE,WAAW,aAAa,IAAI,SAAS,GAAG;EAChD,MAAM,EAAE,gBAAgB,GAAG,aAAa,UAAU,GAAG;EAGrD,IAAI,cAAc;AAClB,MAAI,aAAa,QAAQ,qBAAqB,KAC5C,eAAe,OAAO,MAAO;EAG/B,MAAM,mBAAmB,6BAA6B;AACtD,MAAI,oBAAoB,SAAS,kBAAkB,aAAa,iBAAiB,EAAE;AACjF,gCAA6B,WAAW;GAExC,MAAM,EAAE,YAAY,UAAU,UAAU,GAAG;AAE3C,OAAI,SACF,UAAS,aAAa,iBAAiB;AAEzC,OAAI,gBAAgB,cAAc,WAAW;AAC3C,QACE,aACI,oBAAoB,QAAQ,kBAAkB,kBAAkB,cAAc,MAC9E,kBAAkB,aAAa,cAAc,CAEjD,WAAU;AAGZ,QACE,eACI,oBAAoB,SAAS,kBAAkB,kBAAkB,cAAc,KAChF,kBAAkB,aAAa,cAAc,CAEhD,aAAY;GAEf;EACF;CACF,EAAC;AACH"}
@@ -76,6 +76,11 @@ function recalculateLayoutForPixelPanels({ layout, panelDataArray, prevGroupSize
76
76
  const prevSize = layout[index] ?? 0;
77
77
  nextLayout[index] = prevSize * scaleFactor;
78
78
  }
79
+ const total = nextLayout.reduce((sum, size) => sum + size, 0);
80
+ if (total > 0 && Math.abs(total - 100) > 1e-9) {
81
+ const factor = 100 / total;
82
+ for (let index = 0; index < nextLayout.length; index++) nextLayout[index] = (nextLayout[index] ?? 0) * factor;
83
+ }
79
84
  return nextLayout;
80
85
  }
81
86
 
@@ -1 +1 @@
1
- {"version":3,"file":"units.cjs","names":["panelDataArray: PanelData[]"],"sources":["../../src/Splitter/utils/units.ts"],"sourcesContent":[],"mappings":";;AAeA,SAAS,sBAAsB,EAAE,UAAU,mBAAmB,OAA4B,EAAsB;AAC9G,KAAI,SAAS,KACX,QAAO;AAET,KAAI,aAAa,IACf,QAAO;AAET,KAAI,qBAAqB,QAAQ,sBAAsB,EACrD;AAEF,QAAQ,QAAQ,oBAAqB;AACtC;AAED,SAAgB,iCAAiC,EAC/C,gBACA,mBACmC,EAA6B;CAChE,MAAM,sBAAsB,eAAe,KACzC,gBAAc,UAAU,YAAY,YAAY,SAAS,KAC1D;AAED,KAAI,yBAAyB,qBAAqB,OAAO,MAAM,kBAAkB,EAC/E,QAAO;AAET,QAAO,eAAe,IAAI,CAAC,cAAc;EACvC,MAAM,cAAc,UAAU;EAC9B,MAAM,WAAW,YAAY,YAAY;EAEzC,MAAM,gBAAgB,sBAAsB;GAC1C;GACA;GACA,OAAO,YAAY;EACpB,EAAC;EAEF,MAAM,cAAc,sBAAsB;GACxC;GACA;GACA,OAAO,YAAY;EACpB,EAAC;EAEF,MAAM,UAAU,sBAAsB;GACpC;GACA;GACA,OAAO,YAAY;EACpB,EAAC;EAEF,MAAM,UAAU,sBAAsB;GACpC;GACA;GACA,OAAO,YAAY;EACpB,EAAC;AAEF,SAAO;GACL,GAAG;GACH,eAAe,iBAAiB,YAAY,iBAAiB;GAC7D;GACA,SAAS,WAAW;GACpB,SAAS,WAAW;GACpB,UAAU;EACX;CACF,EAAC;AACH;AASD,SAAgB,mBAAmBA,gBAAsC;AACvE,QAAO,eAAe,KAAK,gBAAc,UAAU,YAAY,YAAY,SAAS,KAAK;AAC1F;AAED,SAAgB,gCAAgC,EAC9C,QACA,gBACA,eACA,eACyB,EAAmB;AAC5C,MAAK,mBAAmB,eAAe,CACrC,QAAO;AAGT,KACE,iBAAiB,QACd,iBAAiB,QACjB,kBAAkB,KAClB,kBAAkB,KAClB,OAAO,MAAM,cAAc,IAC3B,OAAO,MAAM,cAAc,CAE9B,QAAO;CAGT,MAAM,oBAAoB,eAAe,OAAiB,CAAC,SAAS,WAAW,UAAU;AACvF,OAAK,UAAU,YAAY,YAAY,SAAS,KAC9C,SAAQ,KAAK,MAAM;AAErB,SAAO;CACR,GAAE,CAAE,EAAC;AAEN,KAAI,kBAAkB,WAAW,EAC/B,QAAO;CAGT,MAAM,gBAAgB,IAAI,IAAI;CAE9B,MAAM,aAAa,OAAO,IAAI,UAAQ,QAAQ,EAAE;CAEhD,MAAM,4BAA4B,kBAAkB,OAAO,CAAC,KAAK,UAAU,OAAO,OAAO,UAAU,IAAI,EAAE;CAEzG,MAAM,oBAAoB,kBAAkB,IAAI,CAAC,UAAU;EACzD,MAAM,cAAc,OAAO,UAAU;EACrC,MAAM,gBAAiB,cAAc,MAAO;AAC5C,SAAQ,gBAAgB,gBAAiB;CAC1C,EAAC;CAEF,MAAM,wBAAwB,kBAAkB,OAAO,CAAC,KAAK,UAAU,MAAM,OAAO,EAAE;CAEtF,MAAM,8BAA8B,OAAO,OAAO,CAAC,KAAK,MAAM,UAAU;AACtE,MAAI,cAAc,IAAI,MAAM,CAC1B,QAAO;AAET,SAAO,OAAO,QAAQ;CACvB,GAAE,EAAE;CAEL,MAAM,uBAAuB,KAAK,IAAI,GAAG,MAAM,sBAAsB;CACrE,MAAM,cAAc,8BAA8B,IAC9C,uBAAuB,8BACvB;AAEJ,mBAAkB,QAAQ,CAAC,YAAY,eAAe;AACpD,aAAW,cAAc,kBAAkB;CAC5C,EAAC;AAEF,MAAK,IAAI,QAAQ,GAAG,QAAQ,WAAW,QAAQ,SAAS;AACtD,MAAI,cAAc,IAAI,MAAM,CAC1B;EAEF,MAAM,WAAW,OAAO,UAAU;AAClC,aAAW,SAAS,WAAW;CAChC;AAED,QAAO;AACR"}
1
+ {"version":3,"file":"units.cjs","names":["panelDataArray: PanelData[]"],"sources":["../../src/Splitter/utils/units.ts"],"sourcesContent":[],"mappings":"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"}
@@ -75,6 +75,11 @@ function recalculateLayoutForPixelPanels({ layout, panelDataArray, prevGroupSize
75
75
  const prevSize = layout[index] ?? 0;
76
76
  nextLayout[index] = prevSize * scaleFactor;
77
77
  }
78
+ const total = nextLayout.reduce((sum, size) => sum + size, 0);
79
+ if (total > 0 && Math.abs(total - 100) > 1e-9) {
80
+ const factor = 100 / total;
81
+ for (let index = 0; index < nextLayout.length; index++) nextLayout[index] = (nextLayout[index] ?? 0) * factor;
82
+ }
78
83
  return nextLayout;
79
84
  }
80
85
 
@@ -1 +1 @@
1
- {"version":3,"file":"units.js","names":["panelDataArray: PanelData[]"],"sources":["../../src/Splitter/utils/units.ts"],"sourcesContent":[],"mappings":";AAeA,SAAS,sBAAsB,EAAE,UAAU,mBAAmB,OAA4B,EAAsB;AAC9G,KAAI,SAAS,KACX,QAAO;AAET,KAAI,aAAa,IACf,QAAO;AAET,KAAI,qBAAqB,QAAQ,sBAAsB,EACrD;AAEF,QAAQ,QAAQ,oBAAqB;AACtC;AAED,SAAgB,iCAAiC,EAC/C,gBACA,mBACmC,EAA6B;CAChE,MAAM,sBAAsB,eAAe,KACzC,gBAAc,UAAU,YAAY,YAAY,SAAS,KAC1D;AAED,KAAI,yBAAyB,qBAAqB,OAAO,MAAM,kBAAkB,EAC/E,QAAO;AAET,QAAO,eAAe,IAAI,CAAC,cAAc;EACvC,MAAM,cAAc,UAAU;EAC9B,MAAM,WAAW,YAAY,YAAY;EAEzC,MAAM,gBAAgB,sBAAsB;GAC1C;GACA;GACA,OAAO,YAAY;EACpB,EAAC;EAEF,MAAM,cAAc,sBAAsB;GACxC;GACA;GACA,OAAO,YAAY;EACpB,EAAC;EAEF,MAAM,UAAU,sBAAsB;GACpC;GACA;GACA,OAAO,YAAY;EACpB,EAAC;EAEF,MAAM,UAAU,sBAAsB;GACpC;GACA;GACA,OAAO,YAAY;EACpB,EAAC;AAEF,SAAO;GACL,GAAG;GACH,eAAe,iBAAiB,YAAY,iBAAiB;GAC7D;GACA,SAAS,WAAW;GACpB,SAAS,WAAW;GACpB,UAAU;EACX;CACF,EAAC;AACH;AASD,SAAgB,mBAAmBA,gBAAsC;AACvE,QAAO,eAAe,KAAK,gBAAc,UAAU,YAAY,YAAY,SAAS,KAAK;AAC1F;AAED,SAAgB,gCAAgC,EAC9C,QACA,gBACA,eACA,eACyB,EAAmB;AAC5C,MAAK,mBAAmB,eAAe,CACrC,QAAO;AAGT,KACE,iBAAiB,QACd,iBAAiB,QACjB,kBAAkB,KAClB,kBAAkB,KAClB,OAAO,MAAM,cAAc,IAC3B,OAAO,MAAM,cAAc,CAE9B,QAAO;CAGT,MAAM,oBAAoB,eAAe,OAAiB,CAAC,SAAS,WAAW,UAAU;AACvF,OAAK,UAAU,YAAY,YAAY,SAAS,KAC9C,SAAQ,KAAK,MAAM;AAErB,SAAO;CACR,GAAE,CAAE,EAAC;AAEN,KAAI,kBAAkB,WAAW,EAC/B,QAAO;CAGT,MAAM,gBAAgB,IAAI,IAAI;CAE9B,MAAM,aAAa,OAAO,IAAI,UAAQ,QAAQ,EAAE;CAEhD,MAAM,4BAA4B,kBAAkB,OAAO,CAAC,KAAK,UAAU,OAAO,OAAO,UAAU,IAAI,EAAE;CAEzG,MAAM,oBAAoB,kBAAkB,IAAI,CAAC,UAAU;EACzD,MAAM,cAAc,OAAO,UAAU;EACrC,MAAM,gBAAiB,cAAc,MAAO;AAC5C,SAAQ,gBAAgB,gBAAiB;CAC1C,EAAC;CAEF,MAAM,wBAAwB,kBAAkB,OAAO,CAAC,KAAK,UAAU,MAAM,OAAO,EAAE;CAEtF,MAAM,8BAA8B,OAAO,OAAO,CAAC,KAAK,MAAM,UAAU;AACtE,MAAI,cAAc,IAAI,MAAM,CAC1B,QAAO;AAET,SAAO,OAAO,QAAQ;CACvB,GAAE,EAAE;CAEL,MAAM,uBAAuB,KAAK,IAAI,GAAG,MAAM,sBAAsB;CACrE,MAAM,cAAc,8BAA8B,IAC9C,uBAAuB,8BACvB;AAEJ,mBAAkB,QAAQ,CAAC,YAAY,eAAe;AACpD,aAAW,cAAc,kBAAkB;CAC5C,EAAC;AAEF,MAAK,IAAI,QAAQ,GAAG,QAAQ,WAAW,QAAQ,SAAS;AACtD,MAAI,cAAc,IAAI,MAAM,CAC1B;EAEF,MAAM,WAAW,OAAO,UAAU;AAClC,aAAW,SAAS,WAAW;CAChC;AAED,QAAO;AACR"}
1
+ {"version":3,"file":"units.js","names":["panelDataArray: PanelData[]"],"sources":["../../src/Splitter/utils/units.ts"],"sourcesContent":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "reka-ui",
3
3
  "type": "module",
4
- "version": "2.9.0",
4
+ "version": "2.9.2",
5
5
  "description": "Vue port for Radix UI Primitives.",
6
6
  "author": "UnoVue Contributors (https://github.com/unovue)",
7
7
  "license": "MIT",
@@ -106,7 +106,7 @@
106
106
  "@testing-library/user-event": "^14.6.1",
107
107
  "@testing-library/vue": "^8.1.0",
108
108
  "@tsconfig/node24": "^24.0.0",
109
- "@types/jsdom": "^27.0.0",
109
+ "@types/jsdom": "^28.0.0",
110
110
  "@types/node": "^24.0.13",
111
111
  "@vitejs/plugin-vue": "^6.0.4",
112
112
  "@vitest/coverage-istanbul": "^3.2.4",
@@ -20,7 +20,7 @@ const readonly = computed(() => rootContext.readonly.value ? true : undefined)
20
20
  <Primitive
21
21
  v-bind="props"
22
22
  tabindex="-1"
23
- role="grid"
23
+ role="application"
24
24
  :aria-readonly="readonly"
25
25
  :aria-disabled="disabled"
26
26
  :data-readonly="readonly && ''"
@@ -60,6 +60,24 @@ function handleFocus() {
60
60
  rootContext.onOpenChange(true)
61
61
  }
62
62
 
63
+ function handleBlur(ev: FocusEvent) {
64
+ if (!rootContext.open.value)
65
+ return
66
+
67
+ const nextFocus = ev.relatedTarget as Element | null
68
+
69
+ // If focus moves to nothing (e.g. click on non-focusable area), let DismissableLayer handle it
70
+ if (!nextFocus)
71
+ return
72
+
73
+ const isInsideRoot = rootContext.parentElement.value?.contains(nextFocus)
74
+ const isInsideContent = document.getElementById(rootContext.contentId)?.contains(nextFocus)
75
+
76
+ if (!isInsideRoot && !isInsideContent) {
77
+ rootContext.onOpenChange(false)
78
+ }
79
+ }
80
+
63
81
  function handleClick() {
64
82
  if (rootContext.openOnClick.value && !rootContext.open.value)
65
83
  rootContext.onOpenChange(true)
@@ -122,6 +140,7 @@ watch(rootContext.filterState, (_newValue, oldValue) => {
122
140
  @input="handleInput"
123
141
  @keydown.down.up.prevent="handleKeyDown"
124
142
  @focus="handleFocus"
143
+ @blur="handleBlur"
125
144
  >
126
145
  <slot />
127
146
  </ListboxFilter>
@@ -13,7 +13,10 @@ export const CONTEXT_UPDATE = 'dismissableLayer.update'
13
13
  export const POINTER_DOWN_OUTSIDE = 'dismissableLayer.pointerDownOutside'
14
14
  export const FOCUS_OUTSIDE = 'dismissableLayer.focusOutside'
15
15
 
16
- function isLayerExist(layerElement: HTMLElement, targetElement: HTMLElement) {
16
+ export function isLayerExist(layerElement: HTMLElement, targetElement: HTMLElement) {
17
+ if (!(targetElement instanceof Element))
18
+ return false
19
+
17
20
  const targetLayer = targetElement.closest(
18
21
  '[data-dismissable-layer]',
19
22
  )
@@ -1,19 +1,31 @@
1
1
  <script lang="ts">
2
2
  import type { PrimitiveProps } from '@/Primitive'
3
+ import { createContext, useId } from '@/shared'
3
4
 
4
5
  export interface MenuGroupProps extends PrimitiveProps {}
6
+
7
+ interface MenuGroupContext {
8
+ id: string
9
+ }
10
+
11
+ export const [injectMenuGroupContext, provideMenuGroupContext]
12
+ = createContext<MenuGroupContext>('MenuGroup')
5
13
  </script>
6
14
 
7
15
  <script setup lang="ts">
8
16
  import { Primitive } from '@/Primitive'
9
17
 
10
18
  const props = defineProps<MenuGroupProps>()
19
+
20
+ const id = useId(undefined, 'reka-menu-group')
21
+ provideMenuGroupContext({ id })
11
22
  </script>
12
23
 
13
24
  <template>
14
25
  <Primitive
15
26
  role="group"
16
27
  v-bind="props"
28
+ :aria-labelledby="id"
17
29
  >
18
30
  <slot />
19
31
  </Primitive>
@@ -36,11 +36,8 @@ const isFocused = ref(false)
36
36
  const isHighlighted = computed(() => isFocused.value || (contentContext.highlightedElement.value === currentElement.value))
37
37
 
38
38
  async function handlePointerMove(event: PointerEvent) {
39
- if (event.defaultPrevented)
40
- return
41
- if (!isMouseEvent(event))
39
+ if (event.defaultPrevented || !isMouseEvent(event))
42
40
  return
43
-
44
41
  if (props.disabled) {
45
42
  contentContext.onItemLeave(event)
46
43
  }
@@ -1,5 +1,6 @@
1
1
  <script lang="ts">
2
2
  import type { PrimitiveProps } from '@/Primitive'
3
+ import { injectMenuGroupContext } from './MenuGroup.vue'
3
4
 
4
5
  export interface MenuLabelProps extends PrimitiveProps {}
5
6
  </script>
@@ -10,10 +11,15 @@ import { Primitive } from '@/Primitive'
10
11
  const props = withDefaults(defineProps<MenuLabelProps>(), {
11
12
  as: 'div',
12
13
  })
14
+
15
+ const groupContext = injectMenuGroupContext({ id: '' })
13
16
  </script>
14
17
 
15
18
  <template>
16
- <Primitive v-bind="props">
19
+ <Primitive
20
+ v-bind="props"
21
+ :id="groupContext.id || undefined"
22
+ >
17
23
  <slot />
18
24
  </Primitive>
19
25
  </template>
@@ -20,7 +20,7 @@ const readonly = computed(() => rootContext.readonly.value ? true : undefined)
20
20
  <Primitive
21
21
  v-bind="props"
22
22
  tabindex="-1"
23
- role="grid"
23
+ role="application"
24
24
  :aria-labelledby="rootContext.headingId"
25
25
  :aria-readonly="readonly"
26
26
  :aria-disabled="disabled"
@@ -20,7 +20,7 @@ const readonly = computed(() => rootContext.readonly.value ? true : undefined)
20
20
  <Primitive
21
21
  v-bind="props"
22
22
  tabindex="-1"
23
- role="grid"
23
+ role="application"
24
24
  :aria-labelledby="rootContext.headingId"
25
25
  :aria-readonly="readonly"
26
26
  :aria-disabled="disabled"
@@ -21,7 +21,7 @@ const readonly = computed(() => rootContext.readonly.value ? true : undefined)
21
21
  <Primitive
22
22
  v-bind="props"
23
23
  tabindex="-1"
24
- role="grid"
24
+ role="application"
25
25
  :aria-readonly="readonly"
26
26
  :aria-disabled="disabled"
27
27
  :data-readonly="readonly && ''"
@@ -121,6 +121,7 @@ const { forwardRef, currentElement: panelGroupElementRef } = useForwardExpose()
121
121
 
122
122
  const dragState = ref<DragState | null>(null)
123
123
  const groupSizeInPixels = ref<number | null>(null)
124
+ const groupSizeAtLastLayoutInit = ref<number | null>(null)
124
125
  const layout = ref<number[]>([])
125
126
  const panelIdToLastNotifiedSizeMapRef = ref<Record<string, number>>({})
126
127
  const panelSizeBeforeCollapseRef = ref<Map<string, number>>(new Map())
@@ -193,6 +194,20 @@ function getPanelDataWithPercentConstraints(groupSizeOverride?: number | null) {
193
194
 
194
195
  const setLayout = (val: number[]) => layout.value = val
195
196
 
197
+ /** Convert internal layout (always in %) to native units for each panel */
198
+ function convertLayoutToNativeUnits(internalLayout: number[]): number[] {
199
+ const { panelDataArray } = eagerValuesRef.value
200
+ const groupSize = getGroupSizeInPixels()
201
+
202
+ return internalLayout.map((size, index) => {
203
+ const panelData = panelDataArray[index]
204
+ if (panelData && (panelData.constraints.sizeUnit ?? '%') === 'px' && groupSize != null) {
205
+ return (size / 100) * groupSize
206
+ }
207
+ return size
208
+ })
209
+ }
210
+
196
211
  useWindowSplitterPanelGroupBehavior({
197
212
  eagerValuesRef,
198
213
  groupId,
@@ -343,16 +358,22 @@ watch(() => eagerValuesRef.value.panelDataArrayChanged, () => {
343
358
  panelConstraints,
344
359
  })
345
360
 
361
+ // Track the group size used for this initialization.
362
+ // Used to detect when a nested px group was measured with an unreliable (too small)
363
+ // container size before the outer group finished layout.
364
+ groupSizeAtLastLayoutInit.value = getGroupSizeInPixels()
365
+
346
366
  if (!areEqual(prevLayout, nextLayout)) {
347
367
  setLayout(nextLayout)
348
368
 
349
369
  eagerValuesRef.value.layout = nextLayout
350
- emits('layout', nextLayout)
370
+ emits('layout', convertLayoutToNativeUnits(nextLayout))
351
371
 
352
372
  callPanelCallbacks(
353
373
  panelDataArray,
354
374
  nextLayout,
355
375
  panelIdToLastNotifiedSizeMapRef.value,
376
+ getGroupSizeInPixels(),
356
377
  )
357
378
  }
358
379
  }
@@ -368,6 +389,20 @@ watch(groupSizeInPixels, (nextSize, prevSize) => {
368
389
  if (!hasPixelSizedPanel(panelDataArray))
369
390
  return
370
391
 
392
+ // Detect if the layout was initialized with an unreliably small container.
393
+ // This happens with nested SplitterGroups using sizeUnit="px": the inner group's
394
+ // ResizeObserver fires before the outer group's flex layout completes, giving a
395
+ // near-zero container size (e.g. 3.45px). When the outer group finishes and the
396
+ // container grows to its real size (e.g. 923px), we must re-initialize rather
397
+ // than recalculate (which would "preserve" the garbage pixel sizes from 3.45px).
398
+ // We guard with initSize < 50 so that legitimately small-but-real containers
399
+ // (e.g. a sidebar at 60px) are not accidentally re-initialized on normal resizes.
400
+ const initSize = groupSizeAtLastLayoutInit.value
401
+ if (initSize != null && initSize > 0 && initSize < 50 && nextSize > initSize * 10) {
402
+ eagerValuesRef.value.panelDataArrayChanged = true
403
+ return
404
+ }
405
+
371
406
  const recalculatedLayout = recalculateLayoutForPixelPanels({
372
407
  layout: prevLayout,
373
408
  panelDataArray,
@@ -391,12 +426,13 @@ watch(groupSizeInPixels, (nextSize, prevSize) => {
391
426
  setLayout(nextLayout)
392
427
 
393
428
  eagerValuesRef.value.layout = nextLayout
394
- emits('layout', nextLayout)
429
+ emits('layout', convertLayoutToNativeUnits(nextLayout))
395
430
 
396
431
  callPanelCallbacks(
397
432
  panelDataArray,
398
433
  nextLayout,
399
434
  panelIdToLastNotifiedSizeMapRef.value,
435
+ getGroupSizeInPixels(),
400
436
  )
401
437
  }
402
438
  })
@@ -484,12 +520,13 @@ function registerResizeHandle(dragHandleId: string) {
484
520
  setLayout(nextLayout)
485
521
 
486
522
  eagerValuesRef.value.layout = nextLayout
487
- emits('layout', nextLayout)
523
+ emits('layout', convertLayoutToNativeUnits(nextLayout))
488
524
 
489
525
  callPanelCallbacks(
490
526
  panelDataArray,
491
527
  nextLayout,
492
528
  panelIdToLastNotifiedSizeMapRef.value,
529
+ getGroupSizeInPixels(),
493
530
  )
494
531
  }
495
532
  }
@@ -540,12 +577,13 @@ function resizePanel(panelData: PanelData, unsafePanelSize: number) {
540
577
  setLayout(nextLayout)
541
578
 
542
579
  eagerValuesRef.value.layout = nextLayout
543
- emits('layout', nextLayout)
580
+ emits('layout', convertLayoutToNativeUnits(nextLayout))
544
581
 
545
582
  callPanelCallbacks(
546
583
  panelDataArray,
547
584
  nextLayout,
548
585
  panelIdToLastNotifiedSizeMapRef.value,
586
+ getGroupSizeInPixels(),
549
587
  )
550
588
  }
551
589
  }
@@ -682,12 +720,13 @@ function collapsePanel(panelData: PanelData) {
682
720
 
683
721
  eagerValuesRef.value.layout = nextLayout
684
722
 
685
- emits('layout', nextLayout)
723
+ emits('layout', convertLayoutToNativeUnits(nextLayout))
686
724
 
687
725
  callPanelCallbacks(
688
726
  panelDataArray,
689
727
  nextLayout,
690
728
  panelIdToLastNotifiedSizeMapRef.value,
729
+ getGroupSizeInPixels(),
691
730
  )
692
731
  }
693
732
  }
@@ -747,12 +786,13 @@ function expandPanel(panelData: PanelData) {
747
786
 
748
787
  eagerValuesRef.value.layout = nextLayout
749
788
 
750
- emits('layout', nextLayout)
789
+ emits('layout', convertLayoutToNativeUnits(nextLayout))
751
790
 
752
791
  callPanelCallbacks(
753
792
  panelDataArray,
754
793
  nextLayout,
755
794
  panelIdToLastNotifiedSizeMapRef.value,
795
+ getGroupSizeInPixels(),
756
796
  )
757
797
  }
758
798
  }