ropav 0.0.13 → 0.1.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 (53) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +80 -1
  3. package/dist/accordion.js +1 -4
  4. package/dist/button-link.js +2 -2
  5. package/dist/button.js +2 -2
  6. package/dist/card.css +26 -26
  7. package/dist/card.js +6 -16
  8. package/dist/collapse.js +1 -4
  9. package/dist/components/card/types.d.ts +0 -3
  10. package/dist/components/dialog/types.d.ts +1 -0
  11. package/dist/components/dropdown-menu/types.d.ts +2 -6
  12. package/dist/components/modal/types.d.ts +1 -0
  13. package/dist/components/overlay/index.d.ts +3 -0
  14. package/dist/components/overlay/index.js +3 -2
  15. package/dist/components/overlay/overlay-layer-provider.d.ts +21 -0
  16. package/dist/components/overlay/types.d.ts +10 -1
  17. package/dist/components/overlay/useOverlayZIndex.d.ts +4 -0
  18. package/dist/components/popover/types.d.ts +1 -0
  19. package/dist/components/slider/index.d.ts +1 -1
  20. package/dist/components/slider/range-slider.d.ts +7 -11
  21. package/dist/components/slider/slider.d.ts +7 -14
  22. package/dist/components/slider/sliderCore.d.ts +7 -4
  23. package/dist/components/slider/types.d.ts +46 -4
  24. package/dist/components/slider/useRangeSlider.d.ts +2 -1
  25. package/dist/components/slider/useSlider.d.ts +13 -3
  26. package/dist/components/toast/types.d.ts +1 -0
  27. package/dist/components/tooltip/types.d.ts +1 -0
  28. package/dist/composables/useOverlayLayer.d.ts +1 -1
  29. package/dist/dialog.js +7 -2
  30. package/dist/dropdown-menu.js +18 -21
  31. package/dist/field.js +1 -1
  32. package/dist/index.js +3 -2
  33. package/dist/input.js +1 -1
  34. package/dist/modal.css +28 -28
  35. package/dist/modal.js +6 -7
  36. package/dist/overlay2.js +16 -1
  37. package/dist/popover.js +8 -6
  38. package/dist/progress.js +1 -1
  39. package/dist/select.js +1 -1
  40. package/dist/slider.css +256 -166
  41. package/dist/slider.js +334 -140
  42. package/dist/switch.css +17 -17
  43. package/dist/switch.js +10 -5
  44. package/dist/toast.css +21 -21
  45. package/dist/toast.js +10 -2
  46. package/dist/tooltip.js +9 -5
  47. package/dist/unplugin-icons.d.ts +5 -0
  48. package/dist/unplugin-icons.js +40 -0
  49. package/dist/{useOverlayLayer.js → useOverlayZIndex.js} +29 -4
  50. package/docs/public-overlay-layer-api.md +65 -0
  51. package/docs/public-styles-api.md +5 -6
  52. package/package.json +25 -12
  53. package/dist/legacy-unlayered.css +0 -5382
@@ -14,6 +14,7 @@ export type SliderColor = ComponentColorValue;
14
14
  export type SliderSize = (typeof sliderSizes)[number];
15
15
  export type SliderOrientation = (typeof sliderOrientations)[number];
16
16
  export type SliderValueFormatter = (value: number) => string | number;
17
+ export type SliderThumbMode = 'always' | 'interaction';
17
18
  export type RangeSliderValue = [number, number];
18
19
  export type RangeSliderThumb = 'lower' | 'upper';
19
20
  export type SliderInputAttrs = InputHTMLAttributes;
@@ -22,10 +23,44 @@ export type RangeSliderEndpointValueText = string | SliderValueFormatter;
22
23
  export type RangeSliderAriaValueText = RangeSliderEndpointValueText | [RangeSliderEndpointValueText, RangeSliderEndpointValueText];
23
24
  export type RangeSliderValidationMessage = string | [string | undefined, string | undefined];
24
25
  export type SliderTooltipMode = 'hover' | 'always';
25
- export type SliderTooltipOptions = Pick<TooltipProps, 'id' | 'placement' | 'color' | 'offset' | 'openDelay' | 'arrow'> & {
26
+ type SliderTooltipBaseOptions = Pick<TooltipProps, 'id' | 'placement' | 'color' | 'offset' | 'openDelay' | 'arrow'>;
27
+ export type SliderTooltipAnchor = 'thumb' | 'pointer';
28
+ export type SliderTooltipOptions = (SliderTooltipBaseOptions & {
29
+ anchor?: 'thumb';
30
+ mode?: SliderTooltipMode;
31
+ }) | (SliderTooltipBaseOptions & {
32
+ anchor: 'pointer';
33
+ mode?: 'hover';
34
+ });
35
+ export type RangeSliderTooltipOptions = SliderTooltipBaseOptions & {
26
36
  mode?: SliderTooltipMode;
27
37
  };
28
38
  export type SliderTooltip = false | SliderTooltipMode | SliderTooltipOptions;
39
+ export type RangeSliderTooltip = false | SliderTooltipMode | RangeSliderTooltipOptions;
40
+ export interface SliderTooltipSlotProps {
41
+ value: number;
42
+ formattedValue: string | number;
43
+ percent: number;
44
+ anchor: SliderTooltipAnchor;
45
+ }
46
+ export interface SliderTrackSlotProps {
47
+ value: number;
48
+ formattedValue: string | number;
49
+ percent: number;
50
+ min: number;
51
+ max: number;
52
+ orientation: SliderOrientation;
53
+ getPercent: (value: number) => number;
54
+ }
55
+ export interface RangeSliderTrackSlotProps {
56
+ value: RangeSliderValue;
57
+ formattedValue: [string | number, string | number];
58
+ percent: RangeSliderValue;
59
+ min: number;
60
+ max: number;
61
+ orientation: SliderOrientation;
62
+ getPercent: (value: number) => number;
63
+ }
29
64
  export type SliderMarkColor = SliderColor;
30
65
  export interface SliderMark {
31
66
  value: number;
@@ -34,11 +69,15 @@ export interface SliderMark {
34
69
  hidden?: boolean;
35
70
  }
36
71
  export type SliderMarkInput = number | SliderMark;
37
- export interface SliderThumbStyle {
72
+ export interface RangeSliderThumbOptions {
38
73
  size?: number | string;
39
74
  border?: number | string;
40
75
  padding?: number | string;
41
76
  }
77
+ export interface SliderThumbOptions extends RangeSliderThumbOptions {
78
+ visibility?: SliderThumbMode;
79
+ }
80
+ export type SliderThumb = false | SliderThumbMode | SliderThumbOptions;
42
81
  export interface SliderProps extends StylesApiProps<SliderPart> {
43
82
  id?: string;
44
83
  name?: string;
@@ -49,7 +88,7 @@ export interface SliderProps extends StylesApiProps<SliderPart> {
49
88
  max?: number;
50
89
  step?: number | 'any';
51
90
  marks?: SliderMarkInput[];
52
- thumbStyle?: SliderThumbStyle;
91
+ thumb?: SliderThumb;
53
92
  tooltip?: SliderTooltip;
54
93
  formatValue?: SliderValueFormatter;
55
94
  color?: SliderColor;
@@ -65,13 +104,16 @@ export interface SliderProps extends StylesApiProps<SliderPart> {
65
104
  inputAttrs?: SliderInputAttrs;
66
105
  validationMessage?: string;
67
106
  }
68
- export interface RangeSliderProps extends Omit<SliderProps, 'modelValue' | 'defaultValue' | 'name' | 'ariaLabel' | 'ariaValueText' | 'inputAttrs' | 'validationMessage' | 'classNames' | 'styles'>, StylesApiProps<RangeSliderPart> {
107
+ export interface RangeSliderProps extends Omit<SliderProps, 'modelValue' | 'defaultValue' | 'name' | 'ariaLabel' | 'ariaValueText' | 'inputAttrs' | 'validationMessage' | 'thumb' | 'tooltip' | 'classNames' | 'styles'>, StylesApiProps<RangeSliderPart> {
69
108
  modelValue?: RangeSliderValue;
70
109
  defaultValue?: RangeSliderValue;
71
110
  minRange?: number;
111
+ thumb?: RangeSliderThumbOptions;
112
+ tooltip?: RangeSliderTooltip;
72
113
  name?: string | [string, string];
73
114
  ariaLabel?: [string, string];
74
115
  ariaValueText?: RangeSliderAriaValueText;
75
116
  inputAttrs?: RangeSliderInputAttrs;
76
117
  validationMessage?: RangeSliderValidationMessage;
77
118
  }
119
+ export {};
@@ -1,5 +1,5 @@
1
1
  import { CSSProperties } from 'vue';
2
- import { RangeSliderProps, RangeSliderThumb, RangeSliderValue } from './types.js';
2
+ import { RangeSliderProps, RangeSliderTrackSlotProps, RangeSliderThumb, RangeSliderValue } from './types.js';
3
3
  type RangeSliderStateProps = Readonly<RangeSliderProps & {
4
4
  min: number;
5
5
  max: number;
@@ -33,6 +33,7 @@ export declare function useRangeSlider(props: RangeSliderStateProps, emitUpdate:
33
33
  filled: boolean;
34
34
  style: CSSProperties;
35
35
  }[]>;
36
+ trackSlotProps: import('vue').ComputedRef<RangeSliderTrackSlotProps>;
36
37
  trackStyle: import('vue').ComputedRef<CSSProperties>;
37
38
  activeThumb: import('vue').Ref<RangeSliderThumb | undefined, RangeSliderThumb | undefined>;
38
39
  tooltipVisible: import('vue').ComputedRef<boolean>;
@@ -1,11 +1,12 @@
1
1
  import { CSSProperties } from 'vue';
2
- import { SliderProps } from './types.js';
2
+ import { SliderProps, SliderTrackSlotProps } from './types.js';
3
3
  export { getSliderValuePercent, normalizeSliderBounds, normalizeSliderStep, normalizeSliderValue, } from './sliderCore.js';
4
4
  type SliderStateProps = Readonly<SliderProps & {
5
5
  min: number;
6
6
  max: number;
7
7
  step: number | 'any';
8
8
  tooltip: NonNullable<SliderProps['tooltip']>;
9
+ thumb: NonNullable<SliderProps['thumb']>;
9
10
  orientation: NonNullable<SliderProps['orientation']>;
10
11
  }>;
11
12
  export declare function useSlider(props: SliderStateProps, emitUpdate: (value: number) => void, getValue?: () => number): {
@@ -26,20 +27,29 @@ export declare function useSlider(props: SliderStateProps, emitUpdate: (value: n
26
27
  filled: boolean;
27
28
  style: CSSProperties;
28
29
  }[]>;
30
+ thumbMode: import('vue').ComputedRef<false | import('./types.js').SliderThumbMode>;
31
+ trackSlotProps: import('vue').ComputedRef<SliderTrackSlotProps>;
29
32
  trackStyle: import('vue').ComputedRef<CSSProperties>;
33
+ trackHovered: import('vue').Ref<boolean, boolean>;
34
+ dragging: import('vue').Ref<boolean, boolean>;
30
35
  tooltipVisible: import('vue').ComputedRef<boolean>;
31
36
  tooltipOpen: import('vue').ComputedRef<boolean>;
37
+ tooltipAnchor: import('vue').ComputedRef<import('./types.js').SliderTooltipAnchor>;
32
38
  tooltipPlacement: import('vue').ComputedRef<import('../tooltip/index.js').TooltipPlacement>;
33
39
  tooltipId: import('vue').ComputedRef<string | undefined>;
34
40
  tooltipColor: import('vue').ComputedRef<import('../../utils/componentColors.js').ComponentColorValue | undefined>;
35
41
  tooltipOffset: import('vue').ComputedRef<import('../floating/index.js').FloatingOffset | undefined>;
36
42
  tooltipOpenDelay: import('vue').ComputedRef<number>;
37
43
  tooltipArrow: import('vue').ComputedRef<boolean>;
44
+ tooltipValue: import('vue').ComputedRef<number>;
45
+ tooltipPercent: import('vue').ComputedRef<number>;
46
+ tooltipFormattedValue: import('vue').ComputedRef<string | number>;
38
47
  tooltipContent: import('vue').ComputedRef<string>;
39
48
  onInput: (e: Event) => void;
40
49
  onTooltipPointerDown: (event: PointerEvent) => void;
41
- onTooltipMouseEnter: () => void;
42
- onTooltipMouseLeave: () => void;
50
+ onTooltipPointerMove: (event: PointerEvent) => void;
51
+ onTooltipTrackEnter: (event: PointerEvent) => void;
52
+ onTooltipTrackLeave: () => void;
43
53
  onTooltipFocusIn: () => void;
44
54
  onTooltipFocusOut: () => void;
45
55
  onTooltipKeydown: (event: KeyboardEvent) => void;
@@ -75,6 +75,7 @@ export interface ToastProviderProps extends ToastStoreOptions {
75
75
  export interface ToastViewportProps extends TeleportProps, StylesApiProps<ToastViewportPart> {
76
76
  position?: ToastPosition;
77
77
  label?: string;
78
+ baseZIndex?: number;
78
79
  }
79
80
  export interface ToastOptions extends Omit<ToastProps, 'open'> {
80
81
  /** Replaces an active toast with the same id and starts a fresh lifecycle. */
@@ -21,6 +21,7 @@ export interface TooltipSlotProps {
21
21
  }
22
22
  export interface TooltipProps extends FloatingPositionProps<TooltipPlacement>, StylesApiProps<TooltipPart> {
23
23
  id?: string;
24
+ baseZIndex?: number;
24
25
  content?: string;
25
26
  color?: TooltipColor;
26
27
  autoContrast?: boolean;
@@ -22,7 +22,7 @@ export interface UseOverlayLayerOptions {
22
22
  modal?: MaybeRefOrGetter<boolean>;
23
23
  modalEffects?: boolean;
24
24
  preventScroll?: MaybeRefOrGetter<boolean>;
25
- baseZIndex?: number;
25
+ baseZIndex?: MaybeRefOrGetter<number>;
26
26
  }
27
27
  export declare function useOverlayLayer(options: UseOverlayLayerOptions): OverlayLayerContext;
28
28
  export declare function useOverlayLayerBranch(element: Ref<HTMLElement | null>, options?: {
package/dist/dialog.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { t as useRequiredInject } from "./useRequiredInject.js";
2
- import { n as useOverlayLayerBranch, t as useOverlayLayer } from "./useOverlayLayer.js";
2
+ import { i as useOverlayLayerBranch, n as useOverlayZIndex, r as useOverlayLayer } from "./useOverlayZIndex.js";
3
3
  import { t as useFocusTrap } from "./useFocusTrap.js";
4
4
  import { t as provideTeleportTarget } from "./useTeleportTarget.js";
5
5
  import { VaporTeleport, applyVShow, computed, createComponent, createDynamicComponent, createIf, createSlot, defineVaporComponent, extend, isRef, mergeProps, nextTick, onBeforeUnmount, provide, ref, setTemplateRefBinding, shallowRef, unref, useAttrs, useId, watch } from "vue";
@@ -298,6 +298,7 @@ var dialog_root_default = /* @__PURE__ */ defineVaporComponent({
298
298
  type: Boolean,
299
299
  default: false
300
300
  },
301
+ baseZIndex: {},
301
302
  modal: {
302
303
  type: Boolean,
303
304
  default: true
@@ -343,7 +344,11 @@ var dialog_root_default = /* @__PURE__ */ defineVaporComponent({
343
344
  modal,
344
345
  modalEffects: true,
345
346
  preventScroll,
346
- baseZIndex: 1e3
347
+ baseZIndex: useOverlayZIndex({
348
+ baseZIndex: () => props.baseZIndex,
349
+ defaultBaseZIndex: 1e3,
350
+ aboveParent: false
351
+ })
347
352
  });
348
353
  function setOpen(value) {
349
354
  const previous = isOpen.value;
@@ -2,7 +2,7 @@ import './dropdown-menu.css';
2
2
  import { t as bem } from "./bem.js";
3
3
  import { n as useStylesApi, t as presence } from "./styles-api.js";
4
4
  import { t as useRequiredInject } from "./useRequiredInject.js";
5
- import { t as useOverlayLayer } from "./useOverlayLayer.js";
5
+ import { n as useOverlayZIndex, r as useOverlayLayer } from "./useOverlayZIndex.js";
6
6
  import { n as useFloatingPosition, r as useFloatingTarget, t as isElementReference } from "./useFloatingPosition.js";
7
7
  import { n as useTeleportPositioningKey, r as useTeleportTarget, t as provideTeleportTarget } from "./useTeleportTarget.js";
8
8
  import { VaporTeleport, VaporTransition, child, computed, createComponent, createComponentWithFallback, createDynamicComponent, createFor, createIf, createSlot, createTemplateRefSetter, defineVaporComponent, extend, isRef, markRaw, mergeProps, nextTick, onBeforeUnmount, onMounted, onUnmounted, provide, ref, renderEffect, resolveComponent, setAttr, setDynamicProps, setInsertionState, setStaticTemplateRef, setStyle, setTemplateRefBinding, setText, shallowRef, template, toDisplayString, txt, unref, useAttrs, useId, watch } from "vue";
@@ -433,9 +433,9 @@ function useDropdownMenuPrimitiveContent(props, attrs, events, submenu) {
433
433
  placement: () => props.placement ?? defaultPlacement,
434
434
  strategy: () => props.strategy ?? "absolute",
435
435
  offset: () => props.offset,
436
- flip: () => props.avoidCollisions !== false && props.flip !== false,
436
+ flip: () => props.flip !== false,
437
437
  flipOptions: () => props.flipOptions,
438
- shift: () => props.avoidCollisions !== false && props.shift !== false,
438
+ shift: () => props.shift !== false,
439
439
  collisionPadding: () => props.collisionPadding ?? 8,
440
440
  autoUpdateOptions: () => props.autoUpdateOptions,
441
441
  restartKey: teleportPositioningKey
@@ -597,10 +597,6 @@ var dropdown_menu_content_default = /* @__PURE__ */ defineVaporComponent({
597
597
  type: Boolean,
598
598
  default: false
599
599
  },
600
- avoidCollisions: {
601
- type: Boolean,
602
- default: true
603
- },
604
600
  forceMount: {
605
601
  type: Boolean,
606
602
  default: false
@@ -1054,6 +1050,7 @@ var dropdown_menu_root_default = /* @__PURE__ */ defineVaporComponent({
1054
1050
  type: Boolean,
1055
1051
  default: false
1056
1052
  },
1053
+ baseZIndex: {},
1057
1054
  disabled: {
1058
1055
  type: Boolean,
1059
1056
  default: false
@@ -1085,10 +1082,15 @@ var dropdown_menu_root_default = /* @__PURE__ */ defineVaporComponent({
1085
1082
  const contentElement = ref(null);
1086
1083
  const inside = /* @__PURE__ */ new Set();
1087
1084
  let returnFocusElement = null;
1085
+ const baseZIndex = useOverlayZIndex({
1086
+ baseZIndex: () => props.baseZIndex,
1087
+ defaultBaseZIndex: 100,
1088
+ aboveParent: false
1089
+ });
1088
1090
  const layer = useOverlayLayer({
1089
1091
  active: computed(() => isOpen.value && !disabled.value),
1090
1092
  element: contentElement,
1091
- baseZIndex: 100
1093
+ baseZIndex
1092
1094
  });
1093
1095
  function setOpen(value) {
1094
1096
  if (value && disabled.value) return;
@@ -1300,10 +1302,6 @@ var dropdown_menu_sub_content_default = /* @__PURE__ */ defineVaporComponent({
1300
1302
  },
1301
1303
  collisionPadding: { default: 8 },
1302
1304
  autoUpdateOptions: {},
1303
- avoidCollisions: {
1304
- type: Boolean,
1305
- default: true
1306
- },
1307
1305
  forceMount: {
1308
1306
  type: Boolean,
1309
1307
  default: false
@@ -2366,10 +2364,9 @@ function useDropdownMenu(props, emit = {}) {
2366
2364
  const generatedId = useId();
2367
2365
  const menuId = computed(() => props.id ?? `${generatedId}-menu`);
2368
2366
  const placement = computed(() => props.placement ?? "bottom-start");
2369
- const requestedTeleportTarget = computed(() => props.portalTo ?? props.teleportTo);
2370
- const teleportTo = useTeleportTarget(() => requestedTeleportTarget.value);
2367
+ const teleportTo = useTeleportTarget(() => props.teleportTo);
2371
2368
  const teleportPositioningKey = useTeleportPositioningKey();
2372
- const shouldTeleport = computed(() => props.portal ?? props.teleport !== false);
2369
+ const shouldTeleport = computed(() => props.teleport !== false);
2373
2370
  const { isExplicitTarget, reference, resolvedTarget } = useFloatingTarget(() => props.target, rootRef);
2374
2371
  const targetElement = computed(() => isElementReference(resolvedTarget.value) ? resolvedTarget.value : null);
2375
2372
  const visibleItems = computed(() => props.items ?? []);
@@ -2379,7 +2376,11 @@ function useDropdownMenu(props, emit = {}) {
2379
2376
  const layer = useOverlayLayer({
2380
2377
  active: isVisible,
2381
2378
  element: menuRef,
2382
- baseZIndex: 100
2379
+ baseZIndex: useOverlayZIndex({
2380
+ baseZIndex: () => props.baseZIndex,
2381
+ defaultBaseZIndex: 100,
2382
+ aboveParent: false
2383
+ })
2383
2384
  });
2384
2385
  const contentHasSubmenu = computed(() => hasNestedItems(visibleItems.value));
2385
2386
  const isEmpty = computed(() => visibleItems.value.length === 0);
@@ -2597,6 +2598,7 @@ var dropdown_menu_default = /* @__PURE__ */ defineVaporComponent({
2597
2598
  __name: "dropdown-menu",
2598
2599
  props: {
2599
2600
  id: {},
2601
+ baseZIndex: {},
2600
2602
  items: { default: () => [] },
2601
2603
  open: {
2602
2604
  type: Boolean,
@@ -2616,11 +2618,6 @@ var dropdown_menu_default = /* @__PURE__ */ defineVaporComponent({
2616
2618
  default: false
2617
2619
  },
2618
2620
  ignore: {},
2619
- portal: {
2620
- type: Boolean,
2621
- default: void 0
2622
- },
2623
- portalTo: {},
2624
2621
  target: {},
2625
2622
  placement: { default: "bottom-start" },
2626
2623
  strategy: { default: "absolute" },
package/dist/field.js CHANGED
@@ -109,7 +109,7 @@ var field_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
109
109
  const n20 = t4();
110
110
  const n10 = child(n20, 1);
111
111
  renderEffect(() => setDynamicProps(n20, [rootAttrs.value]));
112
- setInsertionState(n20, 0, 0);
112
+ setInsertionState(n20, 0);
113
113
  createIf(() => unref(hasLabel), () => {
114
114
  const n8 = t2();
115
115
  renderEffect(() => setDynamicProps(n8, [
package/dist/index.js CHANGED
@@ -14,6 +14,7 @@ import { n as color_input_default, t as colorInputParts } from "./color-input.js
14
14
  import { t as color_swatch_default } from "./color-swatch.js";
15
15
  import { t as color_picker_default } from "./color-picker.js";
16
16
  import { t as input_default } from "./input.js";
17
+ import { n as useOverlayZIndex } from "./useOverlayZIndex.js";
17
18
  import { t as useFocusTrap } from "./useFocusTrap.js";
18
19
  import { n as useFloatingPosition } from "./useFloatingPosition.js";
19
20
  import { r as useTeleportTarget } from "./useTeleportTarget.js";
@@ -31,7 +32,7 @@ import { t as inputParts } from "./input2.js";
31
32
  import { t as overlay_default } from "./overlay.js";
32
33
  import { n as modal_default, t as modalParts } from "./modal.js";
33
34
  import { n as number_input_default, t as numberInputParts } from "./number-input.js";
34
- import { t as overlayParts } from "./overlay2.js";
35
+ import { n as overlay_layer_provider_default, t as overlayParts } from "./overlay2.js";
35
36
  import { n as popoverPlacements, t as popoverParts } from "./popover2.js";
36
37
  import { a as progress_default, i as progressSizes, n as progressParts, r as progressRadiuses, t as progressColors } from "./progress.js";
37
38
  import { i as radioParts, n as radio_default, r as radioGroupParts, t as radio_group_default } from "./radio.js";
@@ -44,4 +45,4 @@ import { t as teleport_provider_default } from "./teleport-provider.js";
44
45
  import { n as textarea_default, t as textareaParts } from "./textarea.js";
45
46
  import { a as toastColors, c as toastRadiuses, d as toastViewportParts, f as createToastStore, i as useToast, l as toastTypes, n as toast_viewport_default, o as toastParts, p as toast_default, r as toast_provider_default, s as toastPositions, t as useToastState, u as toastVariants } from "./toast.js";
46
47
  import { t as tooltipParts } from "./tooltip2.js";
47
- 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, dialog_close_default as DialogClose, dialog_content_default as DialogContent, dialog_description_default as DialogDescription, dialog_overlay_default as DialogOverlay, dialog_portal_default as DialogPortal, dialog_root_default as DialogRoot, dialog_title_default as DialogTitle, dialog_trigger_default as DialogTrigger, dropdown_menu_default as DropdownMenu, dropdown_menu_checkbox_item_default as DropdownMenuCheckboxItem, dropdown_menu_content_default as DropdownMenuContent, dropdown_menu_context_trigger_default as DropdownMenuContextTrigger, DropdownMenuItem, dropdown_menu_item_indicator_default as DropdownMenuItemIndicator, dropdown_menu_label_default as DropdownMenuLabel, dropdown_menu_portal_default as DropdownMenuPortal, dropdown_menu_radio_group_default as DropdownMenuRadioGroup, dropdown_menu_radio_item_default as DropdownMenuRadioItem, dropdown_menu_root_default as DropdownMenuRoot, dropdown_menu_separator_default as DropdownMenuSeparator, dropdown_menu_sub_default as DropdownMenuSub, dropdown_menu_sub_content_default as DropdownMenuSubContent, dropdown_menu_sub_trigger_default as DropdownMenuSubTrigger, dropdown_menu_trigger_default as DropdownMenuTrigger, field_default as Field, focus_trap_default as FocusTrap, 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, teleport_provider_default as TeleportProvider, textarea_default as Textarea, toast_default as Toast, toast_provider_default as ToastProvider, toast_viewport_default as ToastViewport, tooltip_default as Tooltip, accordionItemParts, accordionParts, alertColors, alertParts, alertRadiuses, alertVariants, aspectRatioParts, avatarColors, avatarParts, avatarRadiuses, avatarSizes, avatarVariants, badgeColors, badgeParts, badgeRadiuses, badgeSizes, badgeVariants, buttonGroupParts, buttonLinkParts, buttonParts, cardParts, checkboxParts, collapseParts, colorInputParts, colorPickerFormats, colorPickerParts, colorPickerSizes, colorSwatchParts, createToastStore, dropdownMenuParts, fieldParts, focusTrapParts, iconButtonParts, inputParts, modalParts, numberInputParts, overlayParts, popoverParts, popoverPlacements, progressColors, progressParts, progressRadiuses, progressSizes, radioGroupParts, radioParts, rangeSliderParts, selectParts, sliderColors, sliderOrientations, sliderParts, sliderSizes, switchParts, tabsContentParts, tabsListParts, tabsParts, tabsTriggerParts, textareaParts, toastColors, toastParts, toastPositions, toastRadiuses, toastTypes, toastVariants, toastViewportParts, tooltipParts, useAccordion, useAccordionItem, useCollapse, useDropdownMenu, useFloatingPosition, useFocusTrap, useHoverDisclosure, useTabs, useTabsContent, useTabsList, useTabsTrigger, useTeleportTarget, useToast, useToastState };
48
+ 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, dialog_close_default as DialogClose, dialog_content_default as DialogContent, dialog_description_default as DialogDescription, dialog_overlay_default as DialogOverlay, dialog_portal_default as DialogPortal, dialog_root_default as DialogRoot, dialog_title_default as DialogTitle, dialog_trigger_default as DialogTrigger, dropdown_menu_default as DropdownMenu, dropdown_menu_checkbox_item_default as DropdownMenuCheckboxItem, dropdown_menu_content_default as DropdownMenuContent, dropdown_menu_context_trigger_default as DropdownMenuContextTrigger, DropdownMenuItem, dropdown_menu_item_indicator_default as DropdownMenuItemIndicator, dropdown_menu_label_default as DropdownMenuLabel, dropdown_menu_portal_default as DropdownMenuPortal, dropdown_menu_radio_group_default as DropdownMenuRadioGroup, dropdown_menu_radio_item_default as DropdownMenuRadioItem, dropdown_menu_root_default as DropdownMenuRoot, dropdown_menu_separator_default as DropdownMenuSeparator, dropdown_menu_sub_default as DropdownMenuSub, dropdown_menu_sub_content_default as DropdownMenuSubContent, dropdown_menu_sub_trigger_default as DropdownMenuSubTrigger, dropdown_menu_trigger_default as DropdownMenuTrigger, field_default as Field, focus_trap_default as FocusTrap, icon_button_default as IconButton, input_default as Input, modal_default as Modal, number_input_default as NumberInput, overlay_default as Overlay, overlay_layer_provider_default as OverlayLayerProvider, 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, teleport_provider_default as TeleportProvider, textarea_default as Textarea, toast_default as Toast, toast_provider_default as ToastProvider, toast_viewport_default as ToastViewport, tooltip_default as Tooltip, accordionItemParts, accordionParts, alertColors, alertParts, alertRadiuses, alertVariants, aspectRatioParts, avatarColors, avatarParts, avatarRadiuses, avatarSizes, avatarVariants, badgeColors, badgeParts, badgeRadiuses, badgeSizes, badgeVariants, buttonGroupParts, buttonLinkParts, buttonParts, cardParts, checkboxParts, collapseParts, colorInputParts, colorPickerFormats, colorPickerParts, colorPickerSizes, colorSwatchParts, createToastStore, dropdownMenuParts, fieldParts, focusTrapParts, iconButtonParts, inputParts, modalParts, numberInputParts, overlayParts, popoverParts, popoverPlacements, progressColors, progressParts, progressRadiuses, progressSizes, radioGroupParts, radioParts, rangeSliderParts, selectParts, sliderColors, sliderOrientations, sliderParts, sliderSizes, switchParts, tabsContentParts, tabsListParts, tabsParts, tabsTriggerParts, textareaParts, toastColors, toastParts, toastPositions, toastRadiuses, toastTypes, toastVariants, toastViewportParts, tooltipParts, useAccordion, useAccordionItem, useCollapse, useDropdownMenu, useFloatingPosition, useFocusTrap, useHoverDisclosure, useOverlayZIndex, useTabs, useTabsContent, useTabsList, useTabsTrigger, useTeleportTarget, useToast, useToastState };
package/dist/input.js CHANGED
@@ -155,7 +155,7 @@ var input_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
155
155
  const n9 = t1();
156
156
  const n4 = child(n9, 1);
157
157
  renderEffect(() => setDynamicProps(n9, [rootAttrs.value]));
158
- setInsertionState(n9, 0, 0);
158
+ setInsertionState(n9, 0);
159
159
  createIf(() => $slots.left, () => {
160
160
  const n3 = t0();
161
161
  renderEffect(() => setDynamicProps(n3, [unref(getPartAttrs)("left", { class: "rp-input__left" })]));
package/dist/modal.css CHANGED
@@ -1,5 +1,5 @@
1
1
  @layer ropav.components {
2
- .rp-modal[data-v-1a627831] {
2
+ .rp-modal[data-v-04a5d994] {
3
3
  --_rp-modal-width: 32rem;
4
4
  --_rp-modal-max-height: calc(100vh - var(--rp-spacing-12));
5
5
  --_rp-modal-radius: var(--rp-radius-sm);
@@ -13,25 +13,25 @@
13
13
  overflow: auto;
14
14
  font-family: var(--rp-font-family);
15
15
  }
16
- .rp-modal--size-sm[data-v-1a627831] {
16
+ .rp-modal--size-sm[data-v-04a5d994] {
17
17
  --_rp-modal-width: 22rem;
18
18
  }
19
- .rp-modal--size-lg[data-v-1a627831] {
19
+ .rp-modal--size-lg[data-v-04a5d994] {
20
20
  --_rp-modal-width: 45rem;
21
21
  }
22
- .rp-modal--size-xl[data-v-1a627831] {
22
+ .rp-modal--size-xl[data-v-04a5d994] {
23
23
  --_rp-modal-width: 58rem;
24
24
  }
25
- .rp-modal--size-full[data-v-1a627831] {
25
+ .rp-modal--size-full[data-v-04a5d994] {
26
26
  --_rp-modal-width: 100vw;
27
27
  --_rp-modal-max-height: 100vh;
28
28
  --_rp-modal-radius: var(--rp-radius-none);
29
29
  padding: 0;
30
30
  }
31
- .rp-modal__overlay[data-v-1a627831] {
31
+ .rp-modal__overlay[data-v-04a5d994] {
32
32
  border-radius: 0;
33
33
  }
34
- .rp-modal__panel[data-v-1a627831] {
34
+ .rp-modal__panel[data-v-04a5d994] {
35
35
  position: relative;
36
36
  z-index: 1;
37
37
  box-sizing: border-box;
@@ -47,39 +47,39 @@
47
47
  box-shadow: var(--rp-shadow-lg);
48
48
  outline: none;
49
49
  }
50
- .rp-modal--size-full .rp-modal__panel[data-v-1a627831] {
50
+ .rp-modal--size-full .rp-modal__panel[data-v-04a5d994] {
51
51
  min-height: 100vh;
52
52
  border: 0;
53
53
  }
54
- .rp-modal__header[data-v-1a627831] {
54
+ .rp-modal__header[data-v-04a5d994] {
55
55
  box-sizing: border-box;
56
56
  padding: var(--rp-spacing-5) calc(var(--rp-spacing-6) + var(--rp-size-control-sm)) var(--rp-spacing-4) var(--rp-spacing-5);
57
57
  border-bottom: var(--rp-border-width-thin) solid var(--rp-color-default-border);
58
58
  }
59
- .rp-modal__heading[data-v-1a627831] {
59
+ .rp-modal__heading[data-v-04a5d994] {
60
60
  display: grid;
61
61
  gap: var(--rp-spacing-1);
62
62
  }
63
- .rp-modal__title[data-v-1a627831] {
63
+ .rp-modal__title[data-v-04a5d994] {
64
64
  margin: 0;
65
65
  color: var(--rp-color-text);
66
66
  font-size: var(--rp-font-size-xl);
67
67
  font-weight: var(--rp-font-weight-semibold);
68
68
  line-height: var(--rp-line-height-xs);
69
69
  }
70
- .rp-modal__description[data-v-1a627831] {
70
+ .rp-modal__description[data-v-04a5d994] {
71
71
  margin: 0;
72
72
  color: var(--rp-color-dimmed);
73
73
  font-size: var(--rp-font-size-sm);
74
74
  line-height: var(--rp-line-height-md);
75
75
  }
76
- .rp-modal__close[data-v-1a627831] {
76
+ .rp-modal__close[data-v-04a5d994] {
77
77
  position: absolute;
78
78
  top: var(--rp-spacing-3);
79
79
  right: var(--rp-spacing-3);
80
80
  z-index: 1;
81
81
  }
82
- .rp-modal__body[data-v-1a627831] {
82
+ .rp-modal__body[data-v-04a5d994] {
83
83
  box-sizing: border-box;
84
84
  flex: 1 1 auto;
85
85
  min-height: 0;
@@ -89,10 +89,10 @@
89
89
  font-size: var(--rp-font-size-md);
90
90
  line-height: var(--rp-line-height-md);
91
91
  }
92
- .rp-modal--closable.rp-modal--headerless .rp-modal__body[data-v-1a627831] {
92
+ .rp-modal--closable.rp-modal--headerless .rp-modal__body[data-v-04a5d994] {
93
93
  padding-right: calc(var(--rp-spacing-6) + var(--rp-size-control-sm));
94
94
  }
95
- .rp-modal__footer[data-v-1a627831] {
95
+ .rp-modal__footer[data-v-04a5d994] {
96
96
  box-sizing: border-box;
97
97
  display: flex;
98
98
  flex: 0 0 auto;
@@ -102,34 +102,34 @@
102
102
  padding: var(--rp-spacing-4) var(--rp-spacing-5);
103
103
  border-top: var(--rp-border-width-thin) solid var(--rp-color-default-border);
104
104
  }
105
- .rp-modal-enter-active[data-v-1a627831],
106
- .rp-modal-leave-active[data-v-1a627831] {
105
+ .rp-modal-enter-active[data-v-04a5d994],
106
+ .rp-modal-leave-active[data-v-04a5d994] {
107
107
  transition: opacity var(--rp-transition-fast);
108
108
  }
109
- .rp-modal-enter-active .rp-modal__panel[data-v-1a627831],
110
- .rp-modal-leave-active .rp-modal__panel[data-v-1a627831] {
109
+ .rp-modal-enter-active .rp-modal__panel[data-v-04a5d994],
110
+ .rp-modal-leave-active .rp-modal__panel[data-v-04a5d994] {
111
111
  transition: opacity var(--rp-transition-fast), transform var(--rp-transition-fast);
112
112
  }
113
- .rp-modal-enter-from[data-v-1a627831],
114
- .rp-modal-leave-to[data-v-1a627831] {
113
+ .rp-modal-enter-from[data-v-04a5d994],
114
+ .rp-modal-leave-to[data-v-04a5d994] {
115
115
  opacity: 0;
116
116
  }
117
- .rp-modal-enter-from .rp-modal__panel[data-v-1a627831],
118
- .rp-modal-leave-to .rp-modal__panel[data-v-1a627831] {
117
+ .rp-modal-enter-from .rp-modal__panel[data-v-04a5d994],
118
+ .rp-modal-leave-to .rp-modal__panel[data-v-04a5d994] {
119
119
  opacity: 0;
120
120
  transform: translateY(var(--rp-spacing-2)) scale(0.98);
121
121
  }
122
122
  @media (max-width: 480px) {
123
- .rp-modal[data-v-1a627831] {
123
+ .rp-modal[data-v-04a5d994] {
124
124
  padding: var(--rp-spacing-3);
125
125
  }
126
- .rp-modal__header[data-v-1a627831] {
126
+ .rp-modal__header[data-v-04a5d994] {
127
127
  padding-left: var(--rp-spacing-4);
128
128
  }
129
- .rp-modal__body[data-v-1a627831] {
129
+ .rp-modal__body[data-v-04a5d994] {
130
130
  padding: var(--rp-spacing-4);
131
131
  }
132
- .rp-modal__footer[data-v-1a627831] {
132
+ .rp-modal__footer[data-v-04a5d994] {
133
133
  padding: var(--rp-spacing-4);
134
134
  }
135
135
  }
package/dist/modal.js CHANGED
@@ -106,8 +106,8 @@ function useModal(props, emit = {}) {
106
106
  //#endregion
107
107
  //#region src/components/modal/modal.vue?vue&type=script&setup=true&vapor=true&lang.ts
108
108
  var t0 = template(" ");
109
- var t1 = template("<div data-v-1a627831 class=rp-modal__heading>");
110
- var t2 = template("<div data-v-1a627831>");
109
+ var t1 = template("<div data-v-04a5d994 class=rp-modal__heading>");
110
+ var t2 = template("<div data-v-04a5d994>");
111
111
  //#endregion
112
112
  //#region src/components/modal/modal.vue
113
113
  var modal_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__ */ defineVaporComponent({
@@ -120,6 +120,7 @@ var modal_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
120
120
  type: Boolean,
121
121
  default: void 0
122
122
  },
123
+ baseZIndex: {},
123
124
  title: { default: "" },
124
125
  description: { default: "" },
125
126
  ariaLabel: { default: "" },
@@ -196,6 +197,7 @@ var modal_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
196
197
  const closeStyles = computed(() => ({ root: props.styles?.close }));
197
198
  return createComponent(unref(dialog_root_default), {
198
199
  open: () => unref(isOpen),
200
+ "base-z-index": () => __props.baseZIndex,
199
201
  modal: () => __props.modal,
200
202
  "close-on-escape": () => __props.closeOnEscape,
201
203
  "close-on-outside-click": () => __props.closeOnOverlayClick,
@@ -208,10 +210,7 @@ var modal_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
208
210
  teleport: () => __props.teleport,
209
211
  "teleport-to": () => __props.teleportTo
210
212
  }, () => {
211
- return createComponent(VaporTransition, {
212
- name: "rp-modal",
213
- persisted: ""
214
- }, extend(() => {
213
+ return createComponent(VaporTransition, { name: "rp-modal" }, extend(() => {
215
214
  return createIf(() => unref(shouldRender), () => {
216
215
  const n30 = t2();
217
216
  renderEffect(() => setDynamicProps(n30, [getLayeredRootAttrs(_slotProps0.zIndex)]));
@@ -310,7 +309,7 @@ var modal_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE__
310
309
  });
311
310
  }, true);
312
311
  }
313
- }), [["__scopeId", "data-v-1a627831"]]);
312
+ }), [["__scopeId", "data-v-04a5d994"]]);
314
313
  //#endregion
315
314
  //#region src/components/modal/types.ts
316
315
  var modalParts = [
package/dist/overlay2.js CHANGED
@@ -1,4 +1,19 @@
1
+ import { t as provideOverlayZIndex } from "./useOverlayZIndex.js";
2
+ import { createSlot, defineVaporComponent } from "vue";
3
+ //#endregion
4
+ //#region src/components/overlay/overlay-layer-provider.vue
5
+ var overlay_layer_provider_default = /* @__PURE__ */ defineVaporComponent({
6
+ name: "RpOverlayLayerProvider",
7
+ __name: "overlay-layer-provider",
8
+ props: { baseZIndex: {} },
9
+ setup(__props) {
10
+ const props = __props;
11
+ provideOverlayZIndex(() => props.baseZIndex);
12
+ return createSlot();
13
+ }
14
+ });
15
+ //#endregion
1
16
  //#region src/components/overlay/types.ts
2
17
  var overlayParts = ["root"];
3
18
  //#endregion
4
- export { overlayParts as t };
19
+ export { overlay_layer_provider_default as n, overlayParts as t };
package/dist/popover.js CHANGED
@@ -2,7 +2,7 @@ import './popover.css';
2
2
  import { t as bem } from "./bem.js";
3
3
  import { n as useStylesApi, t as presence } from "./styles-api.js";
4
4
  import { t as _plugin_vue_export_helper_default } from "./_plugin-vue_export-helper.js";
5
- import { t as useOverlayLayer } from "./useOverlayLayer.js";
5
+ import { n as useOverlayZIndex, r as useOverlayLayer } from "./useOverlayZIndex.js";
6
6
  import { t as useFocusTrap } from "./useFocusTrap.js";
7
7
  import { n as useFloatingPosition, r as useFloatingTarget, t as isElementReference } from "./useFloatingPosition.js";
8
8
  import { n as useTeleportPositioningKey, r as useTeleportTarget } from "./useTeleportTarget.js";
@@ -70,7 +70,11 @@ function usePopover(props, emitOpenChange) {
70
70
  const layer = useOverlayLayer({
71
71
  active: isVisible,
72
72
  element: contentRef,
73
- baseZIndex: 100
73
+ baseZIndex: useOverlayZIndex({
74
+ baseZIndex: () => props.baseZIndex,
75
+ defaultBaseZIndex: 100,
76
+ aboveParent: false
77
+ })
74
78
  });
75
79
  const shouldRenderContent = computed(() => !isDisabled.value && (Boolean(props.keepMounted) || isVisible.value));
76
80
  const shouldShowContent = computed(() => !props.keepMounted || isVisible.value);
@@ -303,6 +307,7 @@ var popover_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
303
307
  __name: "popover",
304
308
  props: {
305
309
  id: {},
310
+ baseZIndex: {},
306
311
  contentClass: {},
307
312
  open: {
308
313
  type: Boolean,
@@ -416,10 +421,7 @@ var popover_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PURE
416
421
  to: () => unref(teleportTo),
417
422
  disabled: () => !__props.teleport
418
423
  }, () => {
419
- return createComponent(VaporTransition, {
420
- name: "rp-popover-content",
421
- persisted: ""
422
- }, extend(() => {
424
+ return createComponent(VaporTransition, { name: "rp-popover-content" }, extend(() => {
423
425
  return createIf(() => unref(shouldRenderContent), () => {
424
426
  const n13 = t1();
425
427
  renderEffect(() => setDynamicProps(n13, [
package/dist/progress.js CHANGED
@@ -126,7 +126,7 @@ var progress_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
126
126
  const n16 = child(n17, 1);
127
127
  const n15 = child(n16);
128
128
  renderEffect(() => setDynamicProps(n17, [rootAttrs.value]));
129
- setInsertionState(n17, 0, 0);
129
+ setInsertionState(n17, 0);
130
130
  createIf(() => $slots.default || !unref(isIndeterminate) && ($slots.value || __props.showValue), () => {
131
131
  const n14 = t2();
132
132
  setInsertionState(n14, null, 0);