ropav 0.0.9 → 0.0.10

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 (159) hide show
  1. package/dist/color-input.css +19 -19
  2. package/dist/color-input.js +8 -3
  3. package/dist/color-picker.css +20 -20
  4. package/dist/color-picker.js +107 -27
  5. package/dist/components/accordion/accordion-item.d.ts +4 -4
  6. package/dist/components/accordion/accordion.d.ts +1 -1
  7. package/dist/components/accordion/index.d.ts +4 -4
  8. package/dist/components/accordion/types.d.ts +1 -1
  9. package/dist/components/accordion/useAccordion.d.ts +1 -1
  10. package/dist/components/alert/alert.d.ts +1 -1
  11. package/dist/components/alert/index.d.ts +3 -3
  12. package/dist/components/alert/types.d.ts +1 -1
  13. package/dist/components/alert/useAlertColor.d.ts +1 -1
  14. package/dist/components/aspect-ratio/aspect-ratio.d.ts +1 -1
  15. package/dist/components/aspect-ratio/index.d.ts +2 -2
  16. package/dist/components/avatar/avatar.d.ts +1 -1
  17. package/dist/components/avatar/index.d.ts +3 -3
  18. package/dist/components/avatar/types.d.ts +1 -1
  19. package/dist/components/avatar/useAvatarColor.d.ts +1 -1
  20. package/dist/components/badge/badge.d.ts +1 -1
  21. package/dist/components/badge/index.d.ts +3 -3
  22. package/dist/components/badge/types.d.ts +1 -1
  23. package/dist/components/badge/useBadgeColor.d.ts +1 -1
  24. package/dist/components/button/button.d.ts +1 -1
  25. package/dist/components/button/index.d.ts +2 -2
  26. package/dist/components/button/types.d.ts +1 -1
  27. package/dist/components/button/useButtonColor.d.ts +1 -1
  28. package/dist/components/button-group/button-group.d.ts +1 -1
  29. package/dist/components/button-group/index.d.ts +2 -2
  30. package/dist/components/button-link/button-link.d.ts +1 -1
  31. package/dist/components/button-link/index.d.ts +2 -2
  32. package/dist/components/button-link/types.d.ts +1 -1
  33. package/dist/components/card/card.d.ts +1 -1
  34. package/dist/components/card/index.d.ts +2 -2
  35. package/dist/components/checkbox/checkbox.d.ts +1 -1
  36. package/dist/components/checkbox/index.d.ts +2 -2
  37. package/dist/components/checkbox/types.d.ts +1 -1
  38. package/dist/components/checkbox/useCheckbox.d.ts +2 -2
  39. package/dist/components/collapse/collapse.d.ts +2 -2
  40. package/dist/components/collapse/index.d.ts +3 -3
  41. package/dist/components/collapse/useCollapse.d.ts +1 -1
  42. package/dist/components/color-input/color-input.d.ts +1 -1
  43. package/dist/components/color-input/index.d.ts +2 -2
  44. package/dist/components/color-input/types.d.ts +4 -3
  45. package/dist/components/color-input/useColorInput.d.ts +5 -5
  46. package/dist/components/color-input/useColorInputEyeDropper.d.ts +1 -1
  47. package/dist/components/color-input/useColorInputPopover.d.ts +2 -2
  48. package/dist/components/color-input/useColorInputValue.d.ts +1 -1
  49. package/dist/components/color-picker/color-picker-saturation.d.ts +1 -1
  50. package/dist/components/color-picker/color-picker-slider.d.ts +1 -1
  51. package/dist/components/color-picker/color-picker-utils.d.ts +1 -1
  52. package/dist/components/color-picker/color-picker.d.ts +1 -1
  53. package/dist/components/color-picker/index.d.ts +3 -3
  54. package/dist/components/color-picker/useColorPickerDrag.d.ts +7 -2
  55. package/dist/components/color-picker/useColorPickerSwatches.d.ts +1 -1
  56. package/dist/components/color-picker/useColorPickerValue.d.ts +2 -2
  57. package/dist/components/color-swatch/color-swatch.d.ts +1 -1
  58. package/dist/components/color-swatch/index.d.ts +2 -2
  59. package/dist/components/dropdown-menu/dropdown-menu-items.d.ts +15 -6
  60. package/dist/components/dropdown-menu/dropdown-menu-utils.d.ts +1 -1
  61. package/dist/components/dropdown-menu/dropdown-menu.d.ts +1 -1
  62. package/dist/components/dropdown-menu/index.d.ts +3 -3
  63. package/dist/components/dropdown-menu/useDropdownMenu.d.ts +11 -10
  64. package/dist/components/dropdown-menu/useDropdownMenuDisclosure.d.ts +2 -2
  65. package/dist/components/dropdown-menu/useDropdownMenuDom.d.ts +2 -2
  66. package/dist/components/dropdown-menu/useDropdownMenuHoverIntent.d.ts +2 -2
  67. package/dist/components/dropdown-menu/useDropdownMenuInteractions.d.ts +2 -2
  68. package/dist/components/dropdown-menu/useDropdownMenuNavigation.d.ts +3 -3
  69. package/dist/components/dropdown-menu/useDropdownMenuRenderItems.d.ts +12 -4
  70. package/dist/components/dropdown-menu/useDropdownSubmenus.d.ts +3 -3
  71. package/dist/components/field/field.d.ts +2 -2
  72. package/dist/components/field/index.d.ts +2 -2
  73. package/dist/components/field/useField.d.ts +1 -1
  74. package/dist/components/icon-button/icon-button.d.ts +1 -1
  75. package/dist/components/icon-button/index.d.ts +2 -2
  76. package/dist/components/icon-button/types.d.ts +1 -1
  77. package/dist/components/input/index.d.ts +2 -2
  78. package/dist/components/input/input.d.ts +1 -1
  79. package/dist/components/input/useInput.d.ts +2 -2
  80. package/dist/components/modal/index.d.ts +2 -2
  81. package/dist/components/modal/modal.d.ts +1 -1
  82. package/dist/components/modal/types.d.ts +1 -1
  83. package/dist/components/modal/useModal.d.ts +1 -1
  84. package/dist/components/number-input/index.d.ts +2 -2
  85. package/dist/components/number-input/number-input.d.ts +1 -1
  86. package/dist/components/number-input/types.d.ts +1 -1
  87. package/dist/components/number-input/useNumberInput.d.ts +2 -2
  88. package/dist/components/overlay/index.d.ts +2 -2
  89. package/dist/components/overlay/overlay.d.ts +1 -1
  90. package/dist/components/overlay/useOverlay.d.ts +1 -1
  91. package/dist/components/popover/index.d.ts +3 -3
  92. package/dist/components/popover/popover.d.ts +2 -2
  93. package/dist/components/popover/types.d.ts +1 -0
  94. package/dist/components/popover/usePopover.d.ts +2 -1
  95. package/dist/components/progress/index.d.ts +3 -3
  96. package/dist/components/progress/progress.d.ts +1 -1
  97. package/dist/components/progress/types.d.ts +1 -1
  98. package/dist/components/progress/useProgress.d.ts +2 -2
  99. package/dist/components/radio/index.d.ts +3 -3
  100. package/dist/components/radio/radio-group.d.ts +1 -1
  101. package/dist/components/radio/radio.d.ts +1 -1
  102. package/dist/components/radio/types.d.ts +1 -1
  103. package/dist/components/radio/useRadio.d.ts +2 -2
  104. package/dist/components/select/index.d.ts +2 -2
  105. package/dist/components/select/select.d.ts +1 -1
  106. package/dist/components/select/useSelect.d.ts +2 -2
  107. package/dist/components/slider/index.d.ts +4 -4
  108. package/dist/components/slider/range-slider-tooltip.d.ts +34 -0
  109. package/dist/components/slider/range-slider.d.ts +4 -12
  110. package/dist/components/slider/slider.d.ts +1 -1
  111. package/dist/components/slider/sliderCore.d.ts +35 -0
  112. package/dist/components/slider/types.d.ts +2 -5
  113. package/dist/components/slider/useRangeSlider.d.ts +5 -7
  114. package/dist/components/slider/useRangeSliderPointer.d.ts +19 -0
  115. package/dist/components/slider/useRangeSliderTooltipCollision.d.ts +31 -2
  116. package/dist/components/slider/useRangeSliderTooltipState.d.ts +23 -0
  117. package/dist/components/slider/useSlider.d.ts +11 -15
  118. package/dist/components/switch/index.d.ts +2 -2
  119. package/dist/components/switch/switch.d.ts +1 -1
  120. package/dist/components/switch/types.d.ts +1 -1
  121. package/dist/components/switch/useSwitch.d.ts +2 -2
  122. package/dist/components/tabs/index.d.ts +6 -6
  123. package/dist/components/tabs/tabs-content.d.ts +2 -2
  124. package/dist/components/tabs/tabs-list.d.ts +4 -4
  125. package/dist/components/tabs/tabs-trigger.d.ts +5 -5
  126. package/dist/components/tabs/tabs.d.ts +5 -5
  127. package/dist/components/tabs/useTabs.d.ts +1 -1
  128. package/dist/components/textarea/index.d.ts +2 -2
  129. package/dist/components/textarea/textarea.d.ts +1 -1
  130. package/dist/components/textarea/useTextarea.d.ts +2 -2
  131. package/dist/components/toast/defaults.d.ts +7 -0
  132. package/dist/components/toast/index.d.ts +7 -0
  133. package/dist/components/toast/index.js +2 -0
  134. package/dist/components/toast/toast-provider.d.ts +21 -0
  135. package/dist/components/toast/toast-viewport.d.ts +34 -0
  136. package/dist/components/toast/toast.d.ts +31 -0
  137. package/dist/components/toast/types.d.ts +106 -0
  138. package/dist/components/toast/useToast.d.ts +4 -0
  139. package/dist/components/toast/useToastColor.d.ts +3 -0
  140. package/dist/components/toast/useToastState.d.ts +2 -0
  141. package/dist/components/tooltip/index.d.ts +2 -2
  142. package/dist/components/tooltip/tooltip.d.ts +2 -2
  143. package/dist/components/tooltip/types.d.ts +1 -1
  144. package/dist/components/tooltip/useTooltip.d.ts +3 -1
  145. package/dist/dropdown-menu.js +160 -39
  146. package/dist/index.d.ts +31 -30
  147. package/dist/index.js +2 -1
  148. package/dist/popover.css +28 -28
  149. package/dist/popover.js +25 -14
  150. package/dist/rafScheduler.js +34 -0
  151. package/dist/slider.css +355 -228
  152. package/dist/slider.js +890 -862
  153. package/dist/textarea.js +8 -2
  154. package/dist/toast.css +232 -0
  155. package/dist/toast.js +679 -0
  156. package/dist/tooltip.js +17 -10
  157. package/dist/utils/componentColors.d.ts +60 -0
  158. package/package.json +17 -9
  159. package/dist/components/slider/useRangeSliderTooltipTransition.d.ts +0 -4
@@ -11,29 +11,6 @@ var chevron_right_default = markRaw(defineVaporComponent({
11
11
  name: "lucide-chevron-right",
12
12
  render
13
13
  }));
14
- //#endregion
15
- //#region src/components/dropdown-menu/dropdown-menu-items.ts
16
- var dropdown_menu_items_default = defineComponent({
17
- name: "RpDropdownMenuItems",
18
- props: { items: {
19
- type: Array,
20
- required: true
21
- } },
22
- setup(props, { slots }) {
23
- function renderItems(items) {
24
- return items.map((renderedItem) => {
25
- const children = [h("button", renderedItem.props, slots.item?.(renderedItem.slotProps))];
26
- if (renderedItem.hasSubmenu && renderedItem.submenuOpen) children.push(h("div", renderedItem.submenuProps, renderItems(renderedItem.children)));
27
- return h("div", {
28
- key: renderedItem.key,
29
- class: "rp-dropdown-menu__item-wrap",
30
- role: "none"
31
- }, children);
32
- });
33
- }
34
- return () => renderItems(props.items);
35
- }
36
- });
37
14
  var DEFAULT_FOCUS_TARGET = "first";
38
15
  function getOpenFocusTarget(options) {
39
16
  if (typeof options === "string") return options;
@@ -52,7 +29,7 @@ function hasItemSubmenu(item) {
52
29
  return (item.children?.length ?? 0) > 0;
53
30
  }
54
31
  function hasNestedItems(items) {
55
- return items.some((item) => hasItemSubmenu(item) || hasNestedItems(item.children ?? []));
32
+ return items.some(hasItemSubmenu);
56
33
  }
57
34
  function getPathKey(path) {
58
35
  return path.length === 0 ? "root" : path.join("-");
@@ -95,6 +72,138 @@ function getNextEnabledIndex(items, index, direction) {
95
72
  return enabledIndexes[enabledIndexes.length - 1];
96
73
  }
97
74
  //#endregion
75
+ //#region src/components/dropdown-menu/dropdown-menu-items.ts
76
+ var contextProp = {
77
+ type: Object,
78
+ required: true
79
+ };
80
+ var renderItemProp = {
81
+ type: Function,
82
+ required: true
83
+ };
84
+ var DropdownMenuItemRow = defineComponent({
85
+ name: "RpDropdownMenuItemRow",
86
+ props: {
87
+ context: contextProp,
88
+ disabled: {
89
+ type: Boolean,
90
+ required: true
91
+ },
92
+ focused: {
93
+ type: Boolean,
94
+ required: true
95
+ },
96
+ index: {
97
+ type: Number,
98
+ required: true
99
+ },
100
+ item: {
101
+ type: Object,
102
+ required: true
103
+ },
104
+ parentPath: {
105
+ type: Array,
106
+ required: true
107
+ },
108
+ renderItem: renderItemProp,
109
+ submenuOpen: {
110
+ type: Boolean,
111
+ required: true
112
+ }
113
+ },
114
+ setup(props) {
115
+ const path = computed(() => [...props.parentPath, props.index]);
116
+ return () => {
117
+ const currentPath = path.value;
118
+ const hasSubmenu = hasItemSubmenu(props.item);
119
+ const children = [h("button", props.context.getItemProps(props.item, currentPath, props.focused, props.disabled, props.submenuOpen), props.renderItem(props.context.getItemSlotProps(props.item, currentPath, props.focused, props.disabled, props.submenuOpen)))];
120
+ if (hasSubmenu && props.submenuOpen) children.push(h(DropdownMenuSubmenu, {
121
+ context: props.context,
122
+ item: props.item,
123
+ path: currentPath,
124
+ renderItem: props.renderItem
125
+ }));
126
+ return h("div", {
127
+ class: "rp-dropdown-menu__item-wrap",
128
+ role: "none"
129
+ }, children);
130
+ };
131
+ }
132
+ });
133
+ var DropdownMenuItemsList = defineComponent({
134
+ name: "RpDropdownMenuItemsList",
135
+ props: {
136
+ context: contextProp,
137
+ items: {
138
+ type: Array,
139
+ required: true
140
+ },
141
+ parentPath: {
142
+ type: Array,
143
+ default: () => []
144
+ },
145
+ renderItem: renderItemProp
146
+ },
147
+ setup(props) {
148
+ return () => props.items.map((item, index) => {
149
+ const path = [...props.parentPath, index];
150
+ const hasSubmenu = hasItemSubmenu(item);
151
+ return h(DropdownMenuItemRow, {
152
+ key: `${getPathKey(path)}:${String(item.value)}`,
153
+ context: props.context,
154
+ disabled: Boolean(item.disabled),
155
+ focused: props.context.isItemFocused(path),
156
+ index,
157
+ item,
158
+ parentPath: props.parentPath,
159
+ renderItem: props.renderItem,
160
+ submenuOpen: hasSubmenu && props.context.isSubmenuOpen(path)
161
+ });
162
+ });
163
+ }
164
+ });
165
+ var DropdownMenuSubmenu = defineComponent({
166
+ name: "RpDropdownMenuSubmenu",
167
+ props: {
168
+ context: contextProp,
169
+ item: {
170
+ type: Object,
171
+ required: true
172
+ },
173
+ path: {
174
+ type: Array,
175
+ required: true
176
+ },
177
+ renderItem: renderItemProp
178
+ },
179
+ setup(props) {
180
+ return () => h("div", props.context.getSubmenuProps(props.item, props.path, true), [h(DropdownMenuItemsList, {
181
+ context: props.context,
182
+ items: props.item.children ?? [],
183
+ parentPath: props.path,
184
+ renderItem: props.renderItem
185
+ })]);
186
+ }
187
+ });
188
+ var dropdown_menu_items_default = defineComponent({
189
+ name: "RpDropdownMenuItems",
190
+ props: {
191
+ context: contextProp,
192
+ items: {
193
+ type: Array,
194
+ required: true
195
+ }
196
+ },
197
+ setup(props, { slots }) {
198
+ const renderItem = (slotProps) => slots.item?.(slotProps);
199
+ return () => h(DropdownMenuItemsList, {
200
+ context: props.context,
201
+ items: props.items,
202
+ renderItem
203
+ });
204
+ }
205
+ });
206
+ //#endregion
98
207
  //#region src/components/dropdown-menu/useDropdownMenuDisclosure.ts
99
208
  function useDropdownMenuDisclosure({ props, emit, rootRef, uncontrolledOpen, isDisabled, isOpen, isVisible, focusedPath, resetFocus, resetSubmenus, resetHoverIntent, focusItem, focusMenu, focusTrigger }) {
100
209
  function setOpen(nextOpen) {
@@ -567,25 +676,25 @@ function useDropdownMenuRenderItems({ items, getItemId, getSubmenuId, getMenuAct
567
676
  disabled,
568
677
  hasSubmenu,
569
678
  submenuOpen,
570
- props: getItemProps(item, path, focused, disabled),
571
- submenuProps: hasSubmenu ? getSubmenuProps(item, path) : void 0,
572
- slotProps: getItemSlotProps(item, path, focused, disabled),
573
- children: hasSubmenu ? getRenderedItems(item.children ?? [], path) : []
679
+ props: getItemProps(item, path, focused, disabled, submenuOpen),
680
+ submenuProps: submenuOpen ? getSubmenuProps(item, path, true) : void 0,
681
+ slotProps: getItemSlotProps(item, path, focused, disabled, submenuOpen),
682
+ children: submenuOpen ? getRenderedItems(item.children ?? [], path) : []
574
683
  };
575
684
  });
576
685
  }
577
- function getItemProps(item, indexOrPath, focused = isItemFocused(indexOrPath), disabled = Boolean(item.disabled)) {
686
+ function getItemProps(item, indexOrPath, focused = isItemFocused(indexOrPath), disabled = Boolean(item.disabled), submenuOpen) {
578
687
  const path = normalizePath(indexOrPath);
579
688
  const hasSubmenu = hasItemSubmenu(item);
580
- const submenuOpen = hasSubmenu && isSubmenuOpen(path);
689
+ const resolvedSubmenuOpen = submenuOpen ?? (hasSubmenu ? isSubmenuOpen(path) : false);
581
690
  return {
582
691
  id: getItemId(path),
583
692
  type: "button",
584
693
  role: "menuitem",
585
694
  tabindex: -1,
586
- class: getItemClass(item, focused, disabled, hasSubmenu, submenuOpen),
695
+ class: getItemClass(item, focused, disabled, hasSubmenu, resolvedSubmenuOpen),
587
696
  "aria-controls": hasSubmenu ? getSubmenuId(path) : void 0,
588
- "aria-expanded": hasSubmenu ? submenuOpen : void 0,
697
+ "aria-expanded": hasSubmenu ? resolvedSubmenuOpen : void 0,
589
698
  "aria-haspopup": hasSubmenu ? "menu" : void 0,
590
699
  "aria-disabled": disabled || void 0,
591
700
  "data-disabled": disabled || void 0,
@@ -595,21 +704,22 @@ function useDropdownMenuRenderItems({ items, getItemId, getSubmenuId, getMenuAct
595
704
  onMouseenter: (event) => focusHoveredItem(item, path, event)
596
705
  };
597
706
  }
598
- function getSubmenuProps(item, path) {
707
+ function getSubmenuProps(item, path, submenuOpen = isSubmenuOpen(path)) {
599
708
  return {
600
709
  id: getSubmenuId(path),
601
710
  role: "menu",
602
711
  class: bem("rp-dropdown-menu__submenu", {
603
- open: isSubmenuOpen(path),
712
+ open: submenuOpen,
604
713
  "has-submenu": hasNestedItems(item.children ?? [])
605
714
  }),
606
715
  "aria-label": item.label,
607
716
  "aria-activedescendant": getMenuActiveDescendant(path)
608
717
  };
609
718
  }
610
- function getItemSlotProps(item, indexOrPath, focused = isItemFocused(indexOrPath), disabled = Boolean(item.disabled)) {
719
+ function getItemSlotProps(item, indexOrPath, focused = isItemFocused(indexOrPath), disabled = Boolean(item.disabled), submenuOpen) {
611
720
  const path = normalizePath(indexOrPath);
612
721
  const hasSubmenu = hasItemSubmenu(item);
722
+ const resolvedSubmenuOpen = submenuOpen ?? (hasSubmenu ? isSubmenuOpen(path) : false);
613
723
  return {
614
724
  item,
615
725
  index: path[path.length - 1] ?? -1,
@@ -618,7 +728,7 @@ function useDropdownMenuRenderItems({ items, getItemId, getSubmenuId, getMenuAct
618
728
  focused,
619
729
  disabled,
620
730
  hasSubmenu,
621
- isSubmenuOpen: hasSubmenu && isSubmenuOpen(path),
731
+ isSubmenuOpen: resolvedSubmenuOpen,
622
732
  select: () => selectItem(item),
623
733
  openSubmenu: (focus = DEFAULT_FOCUS_TARGET) => openSubmenu(path, focus),
624
734
  closeSubmenu: () => closeSubmenu(path),
@@ -627,6 +737,13 @@ function useDropdownMenuRenderItems({ items, getItemId, getSubmenuId, getMenuAct
627
737
  }
628
738
  return {
629
739
  renderedItems,
740
+ renderContext: {
741
+ isItemFocused,
742
+ isSubmenuOpen,
743
+ getItemProps,
744
+ getSubmenuProps,
745
+ getItemSlotProps
746
+ },
630
747
  getItemProps,
631
748
  getItemSlotProps
632
749
  };
@@ -768,7 +885,7 @@ function useDropdownMenu(props, emit = {}) {
768
885
  close,
769
886
  toggle
770
887
  }));
771
- const { renderedItems, getItemProps, getItemSlotProps } = useDropdownMenuRenderItems({
888
+ const { renderedItems, renderContext, getItemProps, getItemSlotProps } = useDropdownMenuRenderItems({
772
889
  items: visibleItems,
773
890
  getItemId,
774
891
  getSubmenuId,
@@ -790,6 +907,7 @@ function useDropdownMenu(props, emit = {}) {
790
907
  isEmpty,
791
908
  visibleItems,
792
909
  renderedItems,
910
+ renderContext,
793
911
  focusedIndex,
794
912
  focusedPath,
795
913
  activeDescendantId,
@@ -847,7 +965,7 @@ var dropdown_menu_default = /* @__PURE__ */ defineVaporComponent({
847
965
  setup(__props, { emit: __emit }) {
848
966
  const props = __props;
849
967
  const emit = __emit;
850
- const { rootRef, menuRef, isVisible, isEmpty, renderedItems, rootClass, contentClass, contentProps, slotProps } = useDropdownMenu(props, {
968
+ const { rootRef, menuRef, isVisible, isEmpty, visibleItems, renderContext, rootClass, contentClass, contentProps, slotProps } = useDropdownMenu(props, {
851
969
  openChange: (open) => emit("update:open", open),
852
970
  select: (item) => emit("select", item)
853
971
  });
@@ -871,7 +989,10 @@ var dropdown_menu_default = /* @__PURE__ */ defineVaporComponent({
871
989
  return n8;
872
990
  });
873
991
  setInsertionState(n21, null, 1);
874
- createComponent(unref(dropdown_menu_items_default), { items: () => unref(renderedItems) }, { "item": extend((itemSlotProps) => {
992
+ createComponent(unref(dropdown_menu_items_default), {
993
+ items: () => unref(visibleItems),
994
+ context: () => unref(renderContext)
995
+ }, { "item": extend((itemSlotProps) => {
875
996
  return [createSlot("item", { $: [() => itemSlotProps] }, () => {
876
997
  const n11 = t2();
877
998
  const x11 = txt(n11);
package/dist/index.d.ts CHANGED
@@ -1,30 +1,31 @@
1
- export * from './components/alert';
2
- export * from './components/accordion';
3
- export * from './components/aspect-ratio';
4
- export * from './components/avatar';
5
- export * from './components/badge';
6
- export * from './components/button';
7
- export * from './components/button-link';
8
- export * from './components/button-group';
9
- export * from './components/card';
10
- export * from './components/checkbox';
11
- export * from './components/collapse';
12
- export * from './components/color-input';
13
- export * from './components/color-picker';
14
- export * from './components/color-swatch';
15
- export * from './components/dropdown-menu';
16
- export * from './components/field';
17
- export * from './components/icon-button';
18
- export * from './components/input';
19
- export * from './components/modal';
20
- export * from './components/number-input';
21
- export * from './components/overlay';
22
- export * from './components/popover';
23
- export * from './components/progress';
24
- export * from './components/radio';
25
- export * from './components/select';
26
- export * from './components/slider';
27
- export * from './components/switch';
28
- export * from './components/tabs';
29
- export * from './components/textarea';
30
- export * from './components/tooltip';
1
+ export * from './components/alert/index.js';
2
+ export * from './components/accordion/index.js';
3
+ export * from './components/aspect-ratio/index.js';
4
+ export * from './components/avatar/index.js';
5
+ export * from './components/badge/index.js';
6
+ export * from './components/button/index.js';
7
+ export * from './components/button-link/index.js';
8
+ export * from './components/button-group/index.js';
9
+ export * from './components/card/index.js';
10
+ export * from './components/checkbox/index.js';
11
+ export * from './components/collapse/index.js';
12
+ export * from './components/color-input/index.js';
13
+ export * from './components/color-picker/index.js';
14
+ export * from './components/color-swatch/index.js';
15
+ export * from './components/dropdown-menu/index.js';
16
+ export * from './components/field/index.js';
17
+ export * from './components/icon-button/index.js';
18
+ export * from './components/input/index.js';
19
+ export * from './components/modal/index.js';
20
+ export * from './components/number-input/index.js';
21
+ export * from './components/overlay/index.js';
22
+ export * from './components/popover/index.js';
23
+ export * from './components/progress/index.js';
24
+ export * from './components/radio/index.js';
25
+ export * from './components/select/index.js';
26
+ export * from './components/slider/index.js';
27
+ export * from './components/switch/index.js';
28
+ export * from './components/tabs/index.js';
29
+ export * from './components/textarea/index.js';
30
+ export * from './components/toast/index.js';
31
+ export * from './components/tooltip/index.js';
package/dist/index.js CHANGED
@@ -35,5 +35,6 @@ import { a as slider_default, i as range_slider_default, n as sliderOrientations
35
35
  import { t as switch_default } from "./switch.js";
36
36
  import { a as useTabs, c as useTabsTrigger, i as tabs_default, n as tabs_list_default, o as useTabsContent, r as tabs_content_default, s as useTabsList, t as tabs_trigger_default } from "./tabs.js";
37
37
  import { t as textarea_default } from "./textarea.js";
38
+ import { a as toastColors, c as toastTypes, i as useToast, l as toastVariants, n as toast_viewport_default, o as toastPositions, r as toast_provider_default, s as toastRadiuses, t as useToastState, u as toast_default } from "./toast.js";
38
39
  import "./components/tooltip/index.js";
39
- export { accordion_default as Accordion, accordion_item_default as AccordionItem, alert_default as Alert, aspect_ratio_default as AspectRatio, avatar_default as Avatar, badge_default as Badge, button_default as Button, button_group_default as ButtonGroup, button_link_default as ButtonLink, card_default as Card, checkbox_default as Checkbox, collapse_default as Collapse, color_input_default as ColorInput, color_picker_default as ColorPicker, color_swatch_default as ColorSwatch, dropdown_menu_default as DropdownMenu, field_default as Field, icon_button_default as IconButton, input_default as Input, modal_default as Modal, number_input_default as NumberInput, overlay_default as Overlay, popover_default as Popover, progress_default as Progress, radio_default as Radio, radio_group_default as RadioGroup, range_slider_default as RangeSlider, select_default as Select, slider_default as Slider, switch_default as Switch, tabs_default as Tabs, tabs_content_default as TabsContent, tabs_list_default as TabsList, tabs_trigger_default as TabsTrigger, textarea_default as Textarea, tooltip_default as Tooltip, alertColors, alertRadiuses, alertVariants, avatarColors, avatarRadiuses, avatarSizes, avatarVariants, badgeColors, badgeRadiuses, badgeSizes, badgeVariants, colorPickerFormats, colorPickerSizes, popoverPlacements, progressColors, progressRadiuses, progressSizes, sliderColors, sliderOrientations, sliderSizes, useAccordion, useAccordionItem, useCollapse, useDropdownMenu, useTabs, useTabsContent, useTabsList, useTabsTrigger };
40
+ export { accordion_default as Accordion, accordion_item_default as AccordionItem, alert_default as Alert, aspect_ratio_default as AspectRatio, avatar_default as Avatar, badge_default as Badge, button_default as Button, button_group_default as ButtonGroup, button_link_default as ButtonLink, card_default as Card, checkbox_default as Checkbox, collapse_default as Collapse, color_input_default as ColorInput, color_picker_default as ColorPicker, color_swatch_default as ColorSwatch, dropdown_menu_default as DropdownMenu, field_default as Field, icon_button_default as IconButton, input_default as Input, modal_default as Modal, number_input_default as NumberInput, overlay_default as Overlay, popover_default as Popover, progress_default as Progress, radio_default as Radio, radio_group_default as RadioGroup, range_slider_default as RangeSlider, select_default as Select, slider_default as Slider, switch_default as Switch, tabs_default as Tabs, tabs_content_default as TabsContent, tabs_list_default as TabsList, tabs_trigger_default as TabsTrigger, textarea_default as Textarea, toast_default as Toast, toast_provider_default as ToastProvider, toast_viewport_default as ToastViewport, tooltip_default as Tooltip, alertColors, alertRadiuses, alertVariants, avatarColors, avatarRadiuses, avatarSizes, avatarVariants, badgeColors, badgeRadiuses, badgeSizes, badgeVariants, colorPickerFormats, colorPickerSizes, popoverPlacements, progressColors, progressRadiuses, progressSizes, sliderColors, sliderOrientations, sliderSizes, toastColors, toastPositions, toastRadiuses, toastTypes, toastVariants, useAccordion, useAccordionItem, useCollapse, useDropdownMenu, useTabs, useTabsContent, useTabsList, useTabsTrigger, useToast, useToastState };
package/dist/popover.css CHANGED
@@ -1,4 +1,4 @@
1
- .rp-popover[data-v-fd62ef9b] {
1
+ .rp-popover[data-v-13614b6c] {
2
2
  --_rp-popover-main-axis-offset: var(--rp-spacing-2);
3
3
  --_rp-popover-cross-axis-offset: 0px;
4
4
  --_rp-popover-radius: var(--rp-radius-sm);
@@ -7,7 +7,7 @@
7
7
  font-family: var(--rp-font-family);
8
8
  vertical-align: middle;
9
9
  }
10
- .rp-popover__content[data-v-fd62ef9b] {
10
+ .rp-popover__content[data-v-13614b6c] {
11
11
  position: absolute;
12
12
  z-index: 100;
13
13
  box-sizing: border-box;
@@ -23,42 +23,42 @@
23
23
  border-radius: var(--_rp-popover-radius);
24
24
  box-shadow: var(--rp-shadow-base);
25
25
  }
26
- .rp-popover--placement-top-start .rp-popover__content[data-v-fd62ef9b], .rp-popover--placement-top .rp-popover__content[data-v-fd62ef9b], .rp-popover--placement-top-end .rp-popover__content[data-v-fd62ef9b] {
26
+ .rp-popover--placement-top-start .rp-popover__content[data-v-13614b6c], .rp-popover--placement-top .rp-popover__content[data-v-13614b6c], .rp-popover--placement-top-end .rp-popover__content[data-v-13614b6c] {
27
27
  bottom: calc(100% + var(--_rp-popover-main-axis-offset));
28
28
  }
29
- .rp-popover--placement-right-start .rp-popover__content[data-v-fd62ef9b], .rp-popover--placement-right .rp-popover__content[data-v-fd62ef9b], .rp-popover--placement-right-end .rp-popover__content[data-v-fd62ef9b] {
29
+ .rp-popover--placement-right-start .rp-popover__content[data-v-13614b6c], .rp-popover--placement-right .rp-popover__content[data-v-13614b6c], .rp-popover--placement-right-end .rp-popover__content[data-v-13614b6c] {
30
30
  left: calc(100% + var(--_rp-popover-main-axis-offset));
31
31
  }
32
- .rp-popover--placement-bottom-start .rp-popover__content[data-v-fd62ef9b], .rp-popover--placement-bottom .rp-popover__content[data-v-fd62ef9b], .rp-popover--placement-bottom-end .rp-popover__content[data-v-fd62ef9b] {
32
+ .rp-popover--placement-bottom-start .rp-popover__content[data-v-13614b6c], .rp-popover--placement-bottom .rp-popover__content[data-v-13614b6c], .rp-popover--placement-bottom-end .rp-popover__content[data-v-13614b6c] {
33
33
  top: calc(100% + var(--_rp-popover-main-axis-offset));
34
34
  }
35
- .rp-popover--placement-left-start .rp-popover__content[data-v-fd62ef9b], .rp-popover--placement-left .rp-popover__content[data-v-fd62ef9b], .rp-popover--placement-left-end .rp-popover__content[data-v-fd62ef9b] {
35
+ .rp-popover--placement-left-start .rp-popover__content[data-v-13614b6c], .rp-popover--placement-left .rp-popover__content[data-v-13614b6c], .rp-popover--placement-left-end .rp-popover__content[data-v-13614b6c] {
36
36
  right: calc(100% + var(--_rp-popover-main-axis-offset));
37
37
  }
38
- .rp-popover--placement-top-start .rp-popover__content[data-v-fd62ef9b], .rp-popover--placement-bottom-start .rp-popover__content[data-v-fd62ef9b] {
38
+ .rp-popover--placement-top-start .rp-popover__content[data-v-13614b6c], .rp-popover--placement-bottom-start .rp-popover__content[data-v-13614b6c] {
39
39
  left: var(--_rp-popover-cross-axis-offset);
40
40
  }
41
- .rp-popover--placement-top .rp-popover__content[data-v-fd62ef9b], .rp-popover--placement-bottom .rp-popover__content[data-v-fd62ef9b] {
41
+ .rp-popover--placement-top .rp-popover__content[data-v-13614b6c], .rp-popover--placement-bottom .rp-popover__content[data-v-13614b6c] {
42
42
  left: calc(50% + var(--_rp-popover-cross-axis-offset));
43
43
  translate: -50% 0;
44
44
  }
45
- .rp-popover--placement-top-end .rp-popover__content[data-v-fd62ef9b], .rp-popover--placement-bottom-end .rp-popover__content[data-v-fd62ef9b] {
45
+ .rp-popover--placement-top-end .rp-popover__content[data-v-13614b6c], .rp-popover--placement-bottom-end .rp-popover__content[data-v-13614b6c] {
46
46
  right: calc(0px - var(--_rp-popover-cross-axis-offset));
47
47
  }
48
- .rp-popover--placement-right-start .rp-popover__content[data-v-fd62ef9b], .rp-popover--placement-left-start .rp-popover__content[data-v-fd62ef9b] {
48
+ .rp-popover--placement-right-start .rp-popover__content[data-v-13614b6c], .rp-popover--placement-left-start .rp-popover__content[data-v-13614b6c] {
49
49
  top: var(--_rp-popover-cross-axis-offset);
50
50
  }
51
- .rp-popover--placement-right .rp-popover__content[data-v-fd62ef9b], .rp-popover--placement-left .rp-popover__content[data-v-fd62ef9b] {
51
+ .rp-popover--placement-right .rp-popover__content[data-v-13614b6c], .rp-popover--placement-left .rp-popover__content[data-v-13614b6c] {
52
52
  top: calc(50% + var(--_rp-popover-cross-axis-offset));
53
53
  translate: 0 -50%;
54
54
  }
55
- .rp-popover--placement-right-end .rp-popover__content[data-v-fd62ef9b], .rp-popover--placement-left-end .rp-popover__content[data-v-fd62ef9b] {
55
+ .rp-popover--placement-right-end .rp-popover__content[data-v-13614b6c], .rp-popover--placement-left-end .rp-popover__content[data-v-13614b6c] {
56
56
  bottom: calc(0px - var(--_rp-popover-cross-axis-offset));
57
57
  }
58
- .rp-popover--target[data-v-fd62ef9b] {
58
+ .rp-popover--target[data-v-13614b6c] {
59
59
  display: contents;
60
60
  }
61
- .rp-popover--target .rp-popover__content[data-v-fd62ef9b] {
61
+ .rp-popover--target .rp-popover__content[data-v-13614b6c] {
62
62
  --_rp-popover-target-translate-x: 0px;
63
63
  --_rp-popover-target-translate-y: 0px;
64
64
  position: fixed;
@@ -68,41 +68,41 @@
68
68
  left: var(--_rp-popover-target-x, 0);
69
69
  translate: var(--_rp-popover-target-translate-x) var(--_rp-popover-target-translate-y);
70
70
  }
71
- .rp-popover--target.rp-popover--placement-top-start .rp-popover__content[data-v-fd62ef9b], .rp-popover--target.rp-popover--placement-top .rp-popover__content[data-v-fd62ef9b], .rp-popover--target.rp-popover--placement-top-end .rp-popover__content[data-v-fd62ef9b] {
71
+ .rp-popover--target.rp-popover--placement-top-start .rp-popover__content[data-v-13614b6c], .rp-popover--target.rp-popover--placement-top .rp-popover__content[data-v-13614b6c], .rp-popover--target.rp-popover--placement-top-end .rp-popover__content[data-v-13614b6c] {
72
72
  --_rp-popover-target-translate-y: calc(-100% - var(--_rp-popover-main-axis-offset));
73
73
  }
74
- .rp-popover--target.rp-popover--placement-right-start .rp-popover__content[data-v-fd62ef9b], .rp-popover--target.rp-popover--placement-right .rp-popover__content[data-v-fd62ef9b], .rp-popover--target.rp-popover--placement-right-end .rp-popover__content[data-v-fd62ef9b] {
74
+ .rp-popover--target.rp-popover--placement-right-start .rp-popover__content[data-v-13614b6c], .rp-popover--target.rp-popover--placement-right .rp-popover__content[data-v-13614b6c], .rp-popover--target.rp-popover--placement-right-end .rp-popover__content[data-v-13614b6c] {
75
75
  --_rp-popover-target-translate-x: var(--_rp-popover-main-axis-offset);
76
76
  }
77
- .rp-popover--target.rp-popover--placement-bottom-start .rp-popover__content[data-v-fd62ef9b], .rp-popover--target.rp-popover--placement-bottom .rp-popover__content[data-v-fd62ef9b], .rp-popover--target.rp-popover--placement-bottom-end .rp-popover__content[data-v-fd62ef9b] {
77
+ .rp-popover--target.rp-popover--placement-bottom-start .rp-popover__content[data-v-13614b6c], .rp-popover--target.rp-popover--placement-bottom .rp-popover__content[data-v-13614b6c], .rp-popover--target.rp-popover--placement-bottom-end .rp-popover__content[data-v-13614b6c] {
78
78
  --_rp-popover-target-translate-y: var(--_rp-popover-main-axis-offset);
79
79
  }
80
- .rp-popover--target.rp-popover--placement-left-start .rp-popover__content[data-v-fd62ef9b], .rp-popover--target.rp-popover--placement-left .rp-popover__content[data-v-fd62ef9b], .rp-popover--target.rp-popover--placement-left-end .rp-popover__content[data-v-fd62ef9b] {
80
+ .rp-popover--target.rp-popover--placement-left-start .rp-popover__content[data-v-13614b6c], .rp-popover--target.rp-popover--placement-left .rp-popover__content[data-v-13614b6c], .rp-popover--target.rp-popover--placement-left-end .rp-popover__content[data-v-13614b6c] {
81
81
  --_rp-popover-target-translate-x: calc(-100% - var(--_rp-popover-main-axis-offset));
82
82
  }
83
- .rp-popover--target.rp-popover--placement-top-start .rp-popover__content[data-v-fd62ef9b], .rp-popover--target.rp-popover--placement-bottom-start .rp-popover__content[data-v-fd62ef9b] {
83
+ .rp-popover--target.rp-popover--placement-top-start .rp-popover__content[data-v-13614b6c], .rp-popover--target.rp-popover--placement-bottom-start .rp-popover__content[data-v-13614b6c] {
84
84
  --_rp-popover-target-translate-x: var(--_rp-popover-cross-axis-offset);
85
85
  }
86
- .rp-popover--target.rp-popover--placement-top .rp-popover__content[data-v-fd62ef9b], .rp-popover--target.rp-popover--placement-bottom .rp-popover__content[data-v-fd62ef9b] {
86
+ .rp-popover--target.rp-popover--placement-top .rp-popover__content[data-v-13614b6c], .rp-popover--target.rp-popover--placement-bottom .rp-popover__content[data-v-13614b6c] {
87
87
  --_rp-popover-target-translate-x: calc(-50% + var(--_rp-popover-cross-axis-offset));
88
88
  }
89
- .rp-popover--target.rp-popover--placement-top-end .rp-popover__content[data-v-fd62ef9b], .rp-popover--target.rp-popover--placement-bottom-end .rp-popover__content[data-v-fd62ef9b] {
89
+ .rp-popover--target.rp-popover--placement-top-end .rp-popover__content[data-v-13614b6c], .rp-popover--target.rp-popover--placement-bottom-end .rp-popover__content[data-v-13614b6c] {
90
90
  --_rp-popover-target-translate-x: calc(-100% + var(--_rp-popover-cross-axis-offset));
91
91
  }
92
- .rp-popover--target.rp-popover--placement-right-start .rp-popover__content[data-v-fd62ef9b], .rp-popover--target.rp-popover--placement-left-start .rp-popover__content[data-v-fd62ef9b] {
92
+ .rp-popover--target.rp-popover--placement-right-start .rp-popover__content[data-v-13614b6c], .rp-popover--target.rp-popover--placement-left-start .rp-popover__content[data-v-13614b6c] {
93
93
  --_rp-popover-target-translate-y: var(--_rp-popover-cross-axis-offset);
94
94
  }
95
- .rp-popover--target.rp-popover--placement-right .rp-popover__content[data-v-fd62ef9b], .rp-popover--target.rp-popover--placement-left .rp-popover__content[data-v-fd62ef9b] {
95
+ .rp-popover--target.rp-popover--placement-right .rp-popover__content[data-v-13614b6c], .rp-popover--target.rp-popover--placement-left .rp-popover__content[data-v-13614b6c] {
96
96
  --_rp-popover-target-translate-y: calc(-50% + var(--_rp-popover-cross-axis-offset));
97
97
  }
98
- .rp-popover--target.rp-popover--placement-right-end .rp-popover__content[data-v-fd62ef9b], .rp-popover--target.rp-popover--placement-left-end .rp-popover__content[data-v-fd62ef9b] {
98
+ .rp-popover--target.rp-popover--placement-right-end .rp-popover__content[data-v-13614b6c], .rp-popover--target.rp-popover--placement-left-end .rp-popover__content[data-v-13614b6c] {
99
99
  --_rp-popover-target-translate-y: calc(-100% + var(--_rp-popover-cross-axis-offset));
100
100
  }
101
- .rp-popover-content-enter-active[data-v-fd62ef9b],
102
- .rp-popover-content-leave-active[data-v-fd62ef9b] {
101
+ .rp-popover-content-enter-active[data-v-13614b6c],
102
+ .rp-popover-content-leave-active[data-v-13614b6c] {
103
103
  transition: opacity var(--rp-transition-fast);
104
104
  }
105
- .rp-popover-content-enter-from[data-v-fd62ef9b],
106
- .rp-popover-content-leave-to[data-v-fd62ef9b] {
105
+ .rp-popover-content-enter-from[data-v-13614b6c],
106
+ .rp-popover-content-leave-to[data-v-13614b6c] {
107
107
  opacity: 0;
108
108
  }
package/dist/popover.js CHANGED
@@ -1,7 +1,8 @@
1
1
  import './popover.css';
2
2
  import { t as bem } from "./bem.js";
3
3
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
4
- import { VaporTransition, applyVShow, computed, createComponent, createIf, createSlot, defineVaporComponent, extend, isRef, onMounted, ref, renderEffect, setAttr, setClass, setInsertionState, setProp, setStaticTemplateRef, setStyle, template, unref, useId, useSlots, watch } from "vue";
4
+ import { t as createRafScheduler } from "./rafScheduler.js";
5
+ import { VaporTransition, applyVShow, computed, createComponent, createIf, createSlot, defineVaporComponent, extend, isRef, onBeforeUnmount, onMounted, ref, renderEffect, setAttr, setClass, setInsertionState, setProp, setStaticTemplateRef, setStyle, template, unref, useId, useSlots, watch } from "vue";
5
6
  //#region src/components/popover/usePopover.ts
6
7
  var DEFAULT_PLACEMENT = "bottom";
7
8
  var DEFAULT_ROLE = "dialog";
@@ -95,6 +96,7 @@ function usePopover(props, emitOpenChange) {
95
96
  const targetElement = ref(null);
96
97
  const targetPosition = ref(null);
97
98
  const uncontrolledOpen = ref(false);
99
+ const positionScheduler = createRafScheduler(updateTargetPosition, () => targetElement.value?.ownerDocument.defaultView);
98
100
  const popoverId = computed(() => props.id ?? `${generatedId}-popover`);
99
101
  const placement = computed(() => props.placement ?? DEFAULT_PLACEMENT);
100
102
  const popoverRole = computed(() => props.role ?? DEFAULT_ROLE);
@@ -103,7 +105,8 @@ function usePopover(props, emitOpenChange) {
103
105
  const isDisabled = computed(() => Boolean(props.disabled || !hasContent.value));
104
106
  const isOpen = computed(() => props.open ?? uncontrolledOpen.value);
105
107
  const isVisible = computed(() => isOpen.value && !isDisabled.value);
106
- const shouldRenderContent = computed(() => !isDisabled.value);
108
+ const shouldRenderContent = computed(() => !isDisabled.value && (Boolean(props.keepMounted) || isVisible.value));
109
+ const shouldShowContent = computed(() => !props.keepMounted || isVisible.value);
107
110
  const shouldWireTarget = computed(() => isTargetMode.value && !isDisabled.value);
108
111
  const ariaLabel = computed(() => props.ariaLabel || void 0);
109
112
  const ariaLabelledby = computed(() => props.ariaLabelledby || void 0);
@@ -146,7 +149,6 @@ function usePopover(props, emitOpenChange) {
146
149
  }
147
150
  function openPopover() {
148
151
  if (isDisabled.value) return;
149
- updateTargetPosition();
150
152
  setOpen(true);
151
153
  }
152
154
  function closePopover() {
@@ -191,13 +193,13 @@ function usePopover(props, emitOpenChange) {
191
193
  closePopover();
192
194
  }
193
195
  function syncTargetElement() {
196
+ positionScheduler.cancel();
194
197
  const nextTarget = isTargetMode.value ? resolveTargetElement(readTarget()) : null;
195
198
  if (targetElement.value !== nextTarget) targetElement.value = nextTarget;
196
199
  if (!nextTarget) {
197
200
  targetPosition.value = null;
198
201
  return;
199
202
  }
200
- if (isVisible.value) updateTargetPosition();
201
203
  }
202
204
  watch(isDisabled, (disabled) => {
203
205
  if (disabled) closePopover();
@@ -233,12 +235,14 @@ function usePopover(props, emitOpenChange) {
233
235
  isTargetMode,
234
236
  targetElement
235
237
  ], ([visible, targetMode, target], _previous, onCleanup) => {
236
- if (!visible || !targetMode || !target || typeof window === "undefined") return;
237
- window.addEventListener("resize", updateTargetPosition);
238
- window.addEventListener("scroll", updateTargetPosition, true);
238
+ const view = target?.ownerDocument.defaultView;
239
+ if (!visible || !targetMode || !view) return;
240
+ view.addEventListener("resize", positionScheduler.schedule);
241
+ view.addEventListener("scroll", positionScheduler.schedule, true);
239
242
  onCleanup(() => {
240
- window.removeEventListener("resize", updateTargetPosition);
241
- window.removeEventListener("scroll", updateTargetPosition, true);
243
+ view.removeEventListener("resize", positionScheduler.schedule);
244
+ view.removeEventListener("scroll", positionScheduler.schedule, true);
245
+ positionScheduler.cancel();
242
246
  });
243
247
  }, { flush: "sync" });
244
248
  watch(isVisible, (visible, _previous, onCleanup) => {
@@ -258,9 +262,11 @@ function usePopover(props, emitOpenChange) {
258
262
  placement,
259
263
  isVisible
260
264
  ], () => {
265
+ positionScheduler.cancel();
261
266
  if (isVisible.value) updateTargetPosition();
262
267
  }, { flush: "sync" });
263
268
  onMounted(syncTargetElement);
269
+ onBeforeUnmount(positionScheduler.cancel);
264
270
  return {
265
271
  rootRef,
266
272
  popoverId,
@@ -272,6 +278,7 @@ function usePopover(props, emitOpenChange) {
272
278
  ariaLabelledby,
273
279
  ariaDescribedby,
274
280
  shouldRenderContent,
281
+ shouldShowContent,
275
282
  rootClass,
276
283
  contentStyle,
277
284
  triggerProps,
@@ -285,8 +292,8 @@ function usePopover(props, emitOpenChange) {
285
292
  }
286
293
  //#endregion
287
294
  //#region src/components/popover/popover.vue?vue&type=script&setup=true&vapor=true&lang.ts
288
- var t0 = template("<section data-v-fd62ef9b class=rp-popover__content>");
289
- var t1 = template("<span data-v-fd62ef9b>", 1);
295
+ var t0 = template("<section data-v-13614b6c class=rp-popover__content>");
296
+ var t1 = template("<span data-v-13614b6c>", 1);
290
297
  //#endregion
291
298
  //#region src/components/popover/popover.vue
292
299
  var popover_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
@@ -316,13 +323,17 @@ var popover_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
316
323
  closeOnEscape: {
317
324
  type: Boolean,
318
325
  default: true
326
+ },
327
+ keepMounted: {
328
+ type: Boolean,
329
+ default: false
319
330
  }
320
331
  },
321
332
  emits: ["update:open"],
322
333
  setup(__props, { emit: __emit }) {
323
334
  const props = __props;
324
335
  const emit = __emit;
325
- const { rootRef, popoverId, isVisible, isTargetMode, popoverRole, ariaLabel, ariaLabelledby, ariaDescribedby, shouldRenderContent, rootClass, contentStyle, slotProps, contentSlotProps } = usePopover(props, (open) => {
336
+ const { rootRef, popoverId, isTargetMode, popoverRole, ariaLabel, ariaLabelledby, ariaDescribedby, shouldRenderContent, shouldShowContent, rootClass, contentStyle, slotProps, contentSlotProps } = usePopover(props, (open) => {
326
337
  emit("update:open", open);
327
338
  });
328
339
  const n12 = t1();
@@ -368,13 +379,13 @@ var popover_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
368
379
  }, null, 1);
369
380
  }, null, 129);
370
381
  }, 1);
371
- applyVShow(n10, () => unref(isVisible));
382
+ applyVShow(n10, () => unref(shouldShowContent));
372
383
  return n10;
373
384
  }, null, 129);
374
385
  }, { _: 8 }));
375
386
  setStaticTemplateRef(n12, rootRef, null, "rootRef");
376
387
  return n12;
377
388
  }
378
- }), [["__scopeId", "data-v-fd62ef9b"]]);
389
+ }), [["__scopeId", "data-v-13614b6c"]]);
379
390
  //#endregion
380
391
  export { popover_default as t };