reka-ui 2.9.1 → 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 (59) hide show
  1. package/dist/Calendar/CalendarGrid.cjs +2 -2
  2. package/dist/Calendar/CalendarGrid.cjs.map +1 -1
  3. package/dist/Calendar/CalendarGrid.js +3 -3
  4. package/dist/Calendar/CalendarGrid.js.map +1 -1
  5. package/dist/Menu/MenuItemImpl.cjs +1 -3
  6. package/dist/Menu/MenuItemImpl.cjs.map +1 -1
  7. package/dist/Menu/MenuItemImpl.js +1 -3
  8. package/dist/Menu/MenuItemImpl.js.map +1 -1
  9. package/dist/MonthPicker/MonthPickerGrid.cjs +2 -2
  10. package/dist/MonthPicker/MonthPickerGrid.cjs.map +1 -1
  11. package/dist/MonthPicker/MonthPickerGrid.js +3 -3
  12. package/dist/MonthPicker/MonthPickerGrid.js.map +1 -1
  13. package/dist/MonthRangePicker/MonthRangePickerGrid.cjs +2 -2
  14. package/dist/MonthRangePicker/MonthRangePickerGrid.cjs.map +1 -1
  15. package/dist/MonthRangePicker/MonthRangePickerGrid.js +3 -3
  16. package/dist/MonthRangePicker/MonthRangePickerGrid.js.map +1 -1
  17. package/dist/RangeCalendar/RangeCalendarGrid.cjs +2 -2
  18. package/dist/RangeCalendar/RangeCalendarGrid.cjs.map +1 -1
  19. package/dist/RangeCalendar/RangeCalendarGrid.js +3 -3
  20. package/dist/RangeCalendar/RangeCalendarGrid.js.map +1 -1
  21. package/dist/Splitter/SplitterGroup.cjs +7 -0
  22. package/dist/Splitter/SplitterGroup.cjs.map +1 -1
  23. package/dist/Splitter/SplitterGroup.js +7 -0
  24. package/dist/Splitter/SplitterGroup.js.map +1 -1
  25. package/dist/YearPicker/YearPickerGrid.cjs +2 -2
  26. package/dist/YearPicker/YearPickerGrid.cjs.map +1 -1
  27. package/dist/YearPicker/YearPickerGrid.js +3 -3
  28. package/dist/YearPicker/YearPickerGrid.js.map +1 -1
  29. package/dist/YearRangePicker/YearRangePickerGrid.cjs +2 -2
  30. package/dist/YearRangePicker/YearRangePickerGrid.cjs.map +1 -1
  31. package/dist/YearRangePicker/YearRangePickerGrid.js +3 -3
  32. package/dist/YearRangePicker/YearRangePickerGrid.js.map +1 -1
  33. package/dist/index3.d.cts +1014 -1014
  34. package/dist/index3.d.cts.map +1 -1
  35. package/dist/index3.d.ts +1041 -1041
  36. package/dist/index3.d.ts.map +1 -1
  37. package/dist/internal.d.cts +2 -2
  38. package/dist/internal.d.cts.map +1 -1
  39. package/dist/internal.d.ts +2 -2
  40. package/dist/internal.d.ts.map +1 -1
  41. package/dist/shared/useHideOthers.cjs +5 -1
  42. package/dist/shared/useHideOthers.cjs.map +1 -1
  43. package/dist/shared/useHideOthers.js +5 -1
  44. package/dist/shared/useHideOthers.js.map +1 -1
  45. package/dist/utils/units.cjs +5 -0
  46. package/dist/utils/units.cjs.map +1 -1
  47. package/dist/utils/units.js +5 -0
  48. package/dist/utils/units.js.map +1 -1
  49. package/package.json +1 -1
  50. package/src/Calendar/CalendarGrid.vue +0 -5
  51. package/src/Menu/MenuItemImpl.vue +1 -4
  52. package/src/MonthPicker/MonthPickerGrid.vue +0 -5
  53. package/src/MonthRangePicker/MonthRangePickerGrid.vue +0 -5
  54. package/src/RangeCalendar/RangeCalendarGrid.vue +0 -5
  55. package/src/Splitter/SplitterGroup.vue +20 -0
  56. package/src/Splitter/utils/units.ts +12 -0
  57. package/src/YearPicker/YearPickerGrid.vue +0 -5
  58. package/src/YearRangePicker/YearRangePickerGrid.vue +0 -5
  59. package/src/shared/useHideOthers.ts +7 -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 vue13 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,7 +8,7 @@ declare var __VLS_6: {};
8
8
  type __VLS_Slots = {} & {
9
9
  default?: (props: typeof __VLS_6) => any;
10
10
  };
11
- declare const __VLS_component: vue13.DefineComponent<MenuAnchorProps, {}, {}, {}, {}, vue13.ComponentOptionsMixin, vue13.ComponentOptionsMixin, {}, string, vue13.PublicProps, Readonly<MenuAnchorProps> & Readonly<{}>, {}, {}, {}, {}, string, vue13.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 (): {
@@ -1 +1 @@
1
- {"version":3,"file":"internal.d.cts","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,eApBuB,EAoBR,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"}
1
+ {"version":3,"file":"internal.d.cts","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,eApBuB,EAoBR,IAAA,CAAA,eApBe,CAoBf,eApBe,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAAA,CAAA,CAAA,EAoBf,IAAA,CAAA,qBAAA,EAAA,IAAA,CAAA,qBAAA,EApBe,CAAA,CAAA,EAAA,MAAA,EAoBf,IAAA,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,IAAA,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,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 vue105 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,7 +8,7 @@ declare var __VLS_6: {};
8
8
  type __VLS_Slots = {} & {
9
9
  default?: (props: typeof __VLS_6) => any;
10
10
  };
11
- declare const __VLS_component: vue105.DefineComponent<MenuAnchorProps, {}, {}, {}, {}, vue105.ComponentOptionsMixin, vue105.ComponentOptionsMixin, {}, string, vue105.PublicProps, Readonly<MenuAnchorProps> & Readonly<{}>, {}, {}, {}, {}, string, vue105.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 (): {
@@ -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"}
@@ -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 && !el.closest("[popover]:not(:popover-open)")) 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;AAKxC,MAAI,OAAO,GAAG,QAAQ,+BAA+B,CACnD,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 && !el.closest("[popover]:not(:popover-open)")) 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;AAKxC,MAAI,OAAO,GAAG,QAAQ,+BAA+B,CACnD,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"}
@@ -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.1",
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",
@@ -17,11 +17,6 @@ const readonly = computed(() => rootContext.readonly.value ? true : undefined)
17
17
  </script>
18
18
 
19
19
  <template>
20
- <!--
21
- role="application" is intentional: it ensures screen readers like NVDA pass
22
- keyboard events (arrow keys) to the web app instead of intercepting them
23
- for virtual cursor navigation. This is the same pattern used by React Aria.
24
- -->
25
20
  <Primitive
26
21
  v-bind="props"
27
22
  tabindex="-1"
@@ -1,6 +1,5 @@
1
1
  <script lang="ts">
2
2
  import type { PrimitiveProps } from '@/Primitive'
3
- import { injectMenuContext } from './MenuRoot.vue'
4
3
 
5
4
  export interface MenuItemImplProps extends PrimitiveProps {
6
5
  /** When `true`, prevents the user from interacting with the item. */
@@ -29,7 +28,6 @@ defineOptions({
29
28
 
30
29
  const props = defineProps<MenuItemImplProps>()
31
30
 
32
- const menuContext = injectMenuContext()
33
31
  const contentContext = injectMenuContentContext()
34
32
  const { forwardRef, currentElement } = useForwardExpose()
35
33
  const { CollectionItem } = useCollection()
@@ -38,9 +36,8 @@ const isFocused = ref(false)
38
36
  const isHighlighted = computed(() => isFocused.value || (contentContext.highlightedElement.value === currentElement.value))
39
37
 
40
38
  async function handlePointerMove(event: PointerEvent) {
41
- if (event.defaultPrevented || !isMouseEvent(event) || !menuContext.open.value) {
39
+ if (event.defaultPrevented || !isMouseEvent(event))
42
40
  return
43
- }
44
41
  if (props.disabled) {
45
42
  contentContext.onItemLeave(event)
46
43
  }
@@ -17,11 +17,6 @@ const readonly = computed(() => rootContext.readonly.value ? true : undefined)
17
17
  </script>
18
18
 
19
19
  <template>
20
- <!--
21
- role="application" is intentional: it ensures screen readers like NVDA pass
22
- keyboard events (arrow keys) to the web app instead of intercepting them
23
- for virtual cursor navigation. This is the same pattern used by React Aria.
24
- -->
25
20
  <Primitive
26
21
  v-bind="props"
27
22
  tabindex="-1"
@@ -17,11 +17,6 @@ const readonly = computed(() => rootContext.readonly.value ? true : undefined)
17
17
  </script>
18
18
 
19
19
  <template>
20
- <!--
21
- role="application" is intentional: it ensures screen readers like NVDA pass
22
- keyboard events (arrow keys) to the web app instead of intercepting them
23
- for virtual cursor navigation. This is the same pattern used by React Aria.
24
- -->
25
20
  <Primitive
26
21
  v-bind="props"
27
22
  tabindex="-1"
@@ -18,11 +18,6 @@ const readonly = computed(() => rootContext.readonly.value ? true : undefined)
18
18
  </script>
19
19
 
20
20
  <template>
21
- <!--
22
- role="application" is intentional: it ensures screen readers like NVDA pass
23
- keyboard events (arrow keys) to the web app instead of intercepting them
24
- for virtual cursor navigation. This is the same pattern used by React Aria.
25
- -->
26
21
  <Primitive
27
22
  v-bind="props"
28
23
  tabindex="-1"
@@ -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())
@@ -357,6 +358,11 @@ watch(() => eagerValuesRef.value.panelDataArrayChanged, () => {
357
358
  panelConstraints,
358
359
  })
359
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
+
360
366
  if (!areEqual(prevLayout, nextLayout)) {
361
367
  setLayout(nextLayout)
362
368
 
@@ -383,6 +389,20 @@ watch(groupSizeInPixels, (nextSize, prevSize) => {
383
389
  if (!hasPixelSizedPanel(panelDataArray))
384
390
  return
385
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
+
386
406
  const recalculatedLayout = recalculateLayoutForPixelPanels({
387
407
  layout: prevLayout,
388
408
  panelDataArray,
@@ -157,5 +157,17 @@ export function recalculateLayoutForPixelPanels({
157
157
  nextLayout[index] = prevSize * scaleFactor
158
158
  }
159
159
 
160
+ // Normalize to ensure percentages always sum to exactly 100.
161
+ // Floating-point arithmetic in the px→% conversions above can cause drift
162
+ // (e.g. 99.89% instead of 100%) that gets persisted to localStorage and
163
+ // triggers validation warnings on every subsequent page load.
164
+ const total = nextLayout.reduce((sum, size) => sum + size, 0)
165
+ if (total > 0 && Math.abs(total - 100) > 1e-9) {
166
+ const factor = 100 / total
167
+ for (let index = 0; index < nextLayout.length; index++) {
168
+ nextLayout[index] = (nextLayout[index] ?? 0) * factor
169
+ }
170
+ }
171
+
160
172
  return nextLayout
161
173
  }
@@ -17,11 +17,6 @@ const readonly = computed(() => rootContext.readonly.value ? true : undefined)
17
17
  </script>
18
18
 
19
19
  <template>
20
- <!--
21
- role="application" is intentional: it ensures screen readers like NVDA pass
22
- keyboard events (arrow keys) to the web app instead of intercepting them
23
- for virtual cursor navigation. This is the same pattern used by React Aria.
24
- -->
25
20
  <Primitive
26
21
  v-bind="props"
27
22
  tabindex="-1"
@@ -17,11 +17,6 @@ const readonly = computed(() => rootContext.readonly.value ? true : undefined)
17
17
  </script>
18
18
 
19
19
  <template>
20
- <!--
21
- role="application" is intentional: it ensures screen readers like NVDA pass
22
- keyboard events (arrow keys) to the web app instead of intercepting them
23
- for virtual cursor navigation. This is the same pattern used by React Aria.
24
- -->
25
20
  <Primitive
26
21
  v-bind="props"
27
22
  tabindex="-1"
@@ -17,7 +17,13 @@ export function useHideOthers(target: MaybeElementRef) {
17
17
  if (import.meta.env.MODE === 'test')
18
18
  return
19
19
  // Skip if inside a closed native popover
20
- if (el && !el.closest('[popover]:not(:popover-open)'))
20
+ // Use try/catch as `:popover-open` pseudo-class is not supported in all browsers (e.g. Safari 18)
21
+ let isInsideClosedPopover = false
22
+ try {
23
+ isInsideClosedPopover = !!el?.closest('[popover]:not(:popover-open)')
24
+ }
25
+ catch {}
26
+ if (el && !isInsideClosedPopover)
21
27
  undo = hideOthers(el)
22
28
  else if (undo)
23
29
  undo()