pxd 0.0.55 → 0.0.60
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -4
- package/dist/components/_internal/fragment-container.vue +3 -2
- package/dist/components/active-graph/index.d.vue.ts +2 -3
- package/dist/components/active-graph/index.vue +23 -16
- package/dist/components/active-graph/types.d.ts +4 -3
- package/dist/components/avatar/index.vue +19 -10
- package/dist/components/avatar/types.d.ts +0 -12
- package/dist/components/avatar-group/index.d.vue.ts +2 -2
- package/dist/components/avatar-group/index.vue +4 -3
- package/dist/components/avatar-group/types.d.ts +11 -0
- package/dist/components/badge/index.d.vue.ts +1 -1
- package/dist/components/badge/index.vue +47 -3
- package/dist/components/badge/types.d.ts +24 -1
- package/dist/components/book/index.vue +3 -2
- package/dist/components/browser/index.vue +6 -2
- package/dist/components/button/index.d.vue.ts +1 -1
- package/dist/components/button/index.vue +60 -12
- package/dist/components/carousel/index.d.vue.ts +24 -2
- package/dist/components/carousel/index.vue +341 -28
- package/dist/components/carousel/types.d.ts +2 -2
- package/dist/components/carousel-item/index.d.vue.ts +13 -0
- package/dist/components/carousel-item/index.vue +49 -0
- package/dist/components/checkbox/index.d.vue.ts +1 -5
- package/dist/components/checkbox/index.vue +66 -31
- package/dist/components/checkbox/types.d.ts +2 -14
- package/dist/components/checkbox-group/index.d.vue.ts +2 -7
- package/dist/components/checkbox-group/index.vue +11 -29
- package/dist/components/checkbox-group/types.d.ts +12 -0
- package/dist/components/chip/index.d.vue.ts +1 -1
- package/dist/components/chip/index.vue +31 -2
- package/dist/components/choicebox/index.d.vue.ts +11 -5
- package/dist/components/choicebox/index.vue +36 -54
- package/dist/components/choicebox/types.d.ts +11 -18
- package/dist/components/choicebox-item/index.d.vue.ts +16 -0
- package/dist/components/choicebox-item/index.vue +67 -0
- package/dist/components/choicebox-item/types.d.ts +12 -0
- package/dist/components/collapse/index.d.vue.ts +5 -4
- package/dist/components/collapse/index.vue +47 -30
- package/dist/components/collapse/types.d.ts +2 -5
- package/dist/components/collapse-group/index.d.vue.ts +2 -4
- package/dist/components/collapse-group/index.vue +8 -20
- package/dist/components/collapse-group/types.d.ts +6 -0
- package/dist/components/command-menu/index.vue +6 -7
- package/dist/components/command-menu/types.d.ts +0 -5
- package/dist/components/command-menu-group/index.d.vue.ts +1 -1
- package/dist/components/command-menu-group/index.vue +3 -2
- package/dist/components/command-menu-group/types.d.ts +5 -0
- package/dist/components/config-provider/index.d.vue.ts +2 -2
- package/dist/components/config-provider/index.vue +6 -4
- package/dist/components/countdown/index.vue +3 -2
- package/dist/components/countdown/types.d.ts +2 -2
- package/dist/components/dash-line/index.vue +3 -1
- package/dist/components/description/index.d.vue.ts +1 -1
- package/dist/components/description/index.vue +8 -7
- package/dist/components/description/types.d.ts +1 -1
- package/dist/components/drawer/index.d.vue.ts +3 -2
- package/dist/components/drawer/index.vue +20 -15
- package/dist/components/drawer/types.d.ts +3 -3
- package/dist/components/ellipsis-text/index.d.vue.ts +14 -0
- package/dist/components/ellipsis-text/index.vue +242 -0
- package/dist/components/ellipsis-text/types.d.ts +14 -0
- package/dist/components/empty-state/index.vue +6 -2
- package/dist/components/error/index.d.vue.ts +1 -3
- package/dist/components/error/index.vue +21 -6
- package/dist/components/error/types.d.ts +7 -1
- package/dist/components/fader/index.vue +30 -11
- package/dist/components/fader/types.d.ts +2 -2
- package/dist/components/gauge/index.vue +7 -2
- package/dist/components/grid/index.vue +9 -4
- package/dist/components/grid/types.d.ts +0 -5
- package/dist/components/grid-item/index.d.vue.ts +1 -1
- package/dist/components/grid-item/index.vue +16 -8
- package/dist/components/grid-item/types.d.ts +6 -0
- package/dist/components/hold-button/index.d.vue.ts +2 -2
- package/dist/components/hold-button/index.vue +7 -4
- package/dist/components/index.d.ts +7 -3
- package/dist/components/index.js +7 -3
- package/dist/components/input/index.d.vue.ts +8 -8
- package/dist/components/input/index.vue +54 -21
- package/dist/components/input/types.d.ts +7 -10
- package/dist/components/intersection-observer/index.d.vue.ts +0 -1
- package/dist/components/intersection-observer/index.vue +12 -3
- package/dist/components/kbd/index.vue +1 -1
- package/dist/components/link-button/index.d.vue.ts +1 -1
- package/dist/components/link-button/index.vue +5 -4
- package/dist/components/link-button/types.d.ts +1 -1
- package/dist/components/list/index.d.vue.ts +8 -5
- package/dist/components/list/index.vue +50 -54
- package/dist/components/list/types.d.ts +3 -20
- package/dist/components/list-item/index.d.vue.ts +4 -3
- package/dist/components/list-item/index.vue +44 -18
- package/dist/components/list-item/types.d.ts +15 -0
- package/dist/components/loading-bar/index.vue +33 -2
- package/dist/components/loading-bar/types.d.ts +1 -1
- package/dist/components/loading-dots/index.vue +3 -2
- package/dist/components/menu/index.d.vue.ts +5 -2
- package/dist/components/menu/index.vue +4 -1
- package/dist/components/menu/types.d.ts +5 -0
- package/dist/components/message/index.d.vue.ts +11 -8
- package/dist/components/message/index.vue +4 -12
- package/dist/components/message/types.d.ts +1 -12
- package/dist/components/message-item/index.d.vue.ts +1 -3
- package/dist/components/message-item/index.vue +13 -7
- package/dist/components/message-item/types.d.ts +11 -0
- package/dist/components/modal/index.d.vue.ts +3 -2
- package/dist/components/modal/index.vue +17 -13
- package/dist/components/modal/types.d.ts +3 -3
- package/dist/components/noise-background/index.vue +4 -3
- package/dist/components/note/index.d.vue.ts +1 -2
- package/dist/components/note/index.vue +81 -29
- package/dist/components/note/types.d.ts +10 -2
- package/dist/components/number-input/index.d.vue.ts +5 -4
- package/dist/components/number-input/index.vue +36 -6
- package/dist/components/number-input/types.d.ts +2 -0
- package/dist/components/overlay/index.vue +1 -1
- package/dist/components/overlay/types.d.ts +1 -1
- package/dist/components/pagination/index.vue +5 -3
- package/dist/components/pin-input/index.d.vue.ts +7 -2
- package/dist/components/pin-input/index.vue +60 -23
- package/dist/components/pin-input/types.d.ts +0 -4
- package/dist/components/placeholder/index.vue +2 -1
- package/dist/components/popover/index.d.vue.ts +1 -1
- package/dist/components/popover/index.vue +116 -78
- package/dist/components/popover/types.d.ts +2 -0
- package/dist/components/progress/index.d.vue.ts +1 -1
- package/dist/components/progress/index.vue +15 -2
- package/dist/components/project-banner/index.d.vue.ts +18 -0
- package/dist/components/project-banner/index.vue +59 -0
- package/dist/components/project-banner/types.d.ts +8 -0
- package/dist/components/radio/index.vue +62 -20
- package/dist/components/radio/types.d.ts +1 -14
- package/dist/components/radio-group/index.d.vue.ts +2 -4
- package/dist/components/radio-group/index.vue +11 -16
- package/dist/components/radio-group/types.d.ts +12 -0
- package/dist/components/resizable/types.d.ts +5 -10
- package/dist/components/resizable-handle/index.vue +1 -1
- package/dist/components/resizable-panel/index.d.vue.ts +1 -1
- package/dist/components/resizable-panel/index.vue +7 -2
- package/dist/components/resizable-panel/types.d.ts +4 -0
- package/dist/components/scrollable/index.d.vue.ts +29 -0
- package/dist/components/scrollable/index.vue +98 -83
- package/dist/components/scrollable/types.d.ts +19 -5
- package/dist/components/skeleton/index.vue +24 -1
- package/dist/components/slider/index.d.vue.ts +6 -6
- package/dist/components/slider/index.vue +86 -44
- package/dist/components/slider/types.d.ts +1 -1
- package/dist/components/snippet/index.vue +28 -2
- package/dist/components/spinner/index.vue +4 -2
- package/dist/components/stack/index.d.vue.ts +2 -2
- package/dist/components/stack/index.vue +35 -3
- package/dist/components/stack/types.d.ts +1 -1
- package/dist/components/status-dot/index.vue +5 -1
- package/dist/components/switch/index.d.vue.ts +10 -1
- package/dist/components/switch/index.vue +35 -44
- package/dist/components/switch/types.d.ts +4 -12
- package/dist/components/switch-item/index.d.vue.ts +14 -0
- package/dist/components/switch-item/index.vue +79 -0
- package/dist/components/switch-item/types.d.ts +9 -0
- package/dist/components/teleport/index.d.vue.ts +1 -1
- package/dist/components/teleport/index.vue +1 -1
- package/dist/components/teleport/types.d.ts +1 -1
- package/dist/components/text/index.d.vue.ts +1 -2
- package/dist/components/text/index.vue +36 -22
- package/dist/components/text/types.d.ts +1 -1
- package/dist/components/textarea/index.d.vue.ts +4 -4
- package/dist/components/textarea/index.vue +33 -4
- package/dist/components/textarea/types.d.ts +0 -1
- package/dist/components/time-picker/index.d.vue.ts +1 -2
- package/dist/components/time-picker/index.vue +43 -9
- package/dist/components/time-picker/types.d.ts +1 -2
- package/dist/components/toggle/index.vue +11 -10
- package/dist/components/toggle-button/index.d.vue.ts +22 -0
- package/dist/components/toggle-button/index.vue +110 -0
- package/dist/components/toggle-button/types.d.ts +16 -0
- package/dist/components/{choicebox-group → toggle-button-group}/index.d.vue.ts +5 -5
- package/dist/components/toggle-button-group/index.vue +68 -0
- package/dist/components/toggle-button-group/types.d.ts +22 -0
- package/dist/components/tooltip/index.d.vue.ts +2 -0
- package/dist/components/tooltip/index.vue +9 -3
- package/dist/components/tooltip/types.d.ts +2 -0
- package/dist/components/virtual-list/index.d.vue.ts +25 -4
- package/dist/components/virtual-list/index.vue +66 -10
- package/dist/components/virtual-list/types.d.ts +9 -4
- package/dist/composables/index.d.ts +2 -2
- package/dist/composables/index.js +2 -2
- package/dist/composables/use-browser-observer.d.ts +5 -5
- package/dist/composables/use-browser-observer.js +23 -20
- package/dist/composables/use-copy-click.js +4 -0
- package/dist/composables/use-countdown.d.ts +2 -2
- package/dist/composables/use-focus-trap.d.ts +6 -2
- package/dist/composables/use-focus-trap.js +19 -7
- package/dist/composables/use-forward-ref-expose.d.ts +2 -0
- package/dist/composables/use-forward-ref-expose.js +41 -0
- package/dist/composables/use-message.d.ts +3 -6
- package/dist/composables/use-model-value.d.ts +9 -8
- package/dist/composables/use-popover-responsive.d.ts +2 -2
- package/dist/composables/use-popover-responsive.js +3 -3
- package/dist/composables/use-repeat-action.js +2 -2
- package/dist/composables/use-virtual-list.d.ts +21 -12
- package/dist/composables/use-virtual-list.js +90 -158
- package/dist/composables/use-window-size.d.ts +4 -0
- package/dist/composables/use-window-size.js +27 -0
- package/dist/contexts/avatar.d.ts +5 -2
- package/dist/contexts/carousel.d.ts +4 -4
- package/dist/contexts/carousel.js +1 -1
- package/dist/contexts/checkbox.d.ts +7 -2
- package/dist/contexts/choicebox.d.ts +8 -4
- package/dist/contexts/choicebox.js +1 -4
- package/dist/contexts/collapse.d.ts +5 -6
- package/dist/contexts/collapse.js +1 -1
- package/dist/contexts/config-provider.d.ts +5 -0
- package/dist/{composables/use-config-provider-context.js → contexts/config-provider.js} +8 -5
- package/dist/contexts/radio.d.ts +8 -2
- package/dist/contexts/switch.d.ts +8 -4
- package/dist/contexts/switch.js +1 -2
- package/dist/contexts/toggle-button.d.ts +7 -0
- package/dist/contexts/toggle-button.js +2 -0
- package/dist/styles/source.css +14 -2
- package/dist/styles/styles.css +2 -2
- package/dist/styles/tw.css +14 -2
- package/dist/types/shared/props.d.ts +1 -3
- package/dist/types/shared/utils.d.ts +0 -3
- package/dist/utils/context.d.ts +1 -0
- package/dist/utils/get.d.ts +1 -0
- package/dist/utils/get.js +14 -0
- package/dist/utils/responsive.js +2 -1
- package/dist/utils/throttle.js +9 -7
- package/dist/utils/uid.d.ts +1 -1
- package/dist/utils/uid.js +2 -2
- package/package.json +23 -21
- package/volar.d.ts +7 -3
- package/dist/components/badge/cn.d.ts +0 -90
- package/dist/components/badge/cn.js +0 -44
- package/dist/components/button/cn.d.ts +0 -121
- package/dist/components/button/cn.js +0 -55
- package/dist/components/carousel-group/index.d.vue.ts +0 -35
- package/dist/components/carousel-group/index.vue +0 -368
- package/dist/components/checkbox/cn.d.ts +0 -67
- package/dist/components/checkbox/cn.js +0 -31
- package/dist/components/chip/cn.d.ts +0 -49
- package/dist/components/chip/cn.js +0 -26
- package/dist/components/choicebox-group/index.vue +0 -65
- package/dist/components/error/cn.d.ts +0 -22
- package/dist/components/error/cn.js +0 -15
- package/dist/components/input/cn.d.ts +0 -73
- package/dist/components/input/cn.js +0 -36
- package/dist/components/list-item/cn.d.ts +0 -22
- package/dist/components/list-item/cn.js +0 -15
- package/dist/components/loading-bar/cn.d.ts +0 -70
- package/dist/components/loading-bar/cn.js +0 -32
- package/dist/components/note/cn.d.ts +0 -121
- package/dist/components/note/cn.js +0 -66
- package/dist/components/pin-input/cn.d.ts +0 -46
- package/dist/components/pin-input/cn.js +0 -25
- package/dist/components/progress/cn.d.ts +0 -19
- package/dist/components/progress/cn.js +0 -14
- package/dist/components/radio/cn.d.ts +0 -46
- package/dist/components/radio/cn.js +0 -42
- package/dist/components/skeleton/cn.d.ts +0 -43
- package/dist/components/skeleton/cn.js +0 -24
- package/dist/components/snippet/cn.d.ts +0 -52
- package/dist/components/snippet/cn.js +0 -27
- package/dist/components/stack/cn.d.ts +0 -70
- package/dist/components/stack/cn.js +0 -33
- package/dist/components/switch/cn.d.ts +0 -16
- package/dist/components/switch/cn.js +0 -13
- package/dist/components/switch-group/index.d.vue.ts +0 -23
- package/dist/components/switch-group/index.vue +0 -54
- package/dist/components/text/cn.d.ts +0 -67
- package/dist/components/text/cn.js +0 -34
- package/dist/components/textarea/cn.d.ts +0 -58
- package/dist/components/textarea/cn.js +0 -30
- package/dist/composables/use-config-provider-context.d.ts +0 -3
- package/dist/composables/use-unique-id-context.d.ts +0 -2
- package/dist/composables/use-unique-id-context.js +0 -11
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
-
import { arrow, computePosition, flip,
|
|
3
|
-
import { computed, shallowRef, watch } from "vue";
|
|
4
|
-
import { useIntersectionObserver } from "../../composables/use-browser-observer";
|
|
2
|
+
import { arrow, autoUpdate, computePosition, flip, shift, hide } from "@floating-ui/dom";
|
|
3
|
+
import { computed, onBeforeUnmount, shallowRef, watch } from "vue";
|
|
5
4
|
import { useDelayDestroy } from "../../composables/use-delay-destroy";
|
|
6
5
|
import { useLockScroll } from "../../composables/use-lock-scroll";
|
|
7
6
|
import { useOutsideClick } from "../../composables/use-outside-click";
|
|
8
7
|
import { debounce } from "../../utils/debounce";
|
|
9
8
|
import { cachedOff, cachedOn, sleep } from "../../utils/event";
|
|
10
9
|
import { getCssUnitValue, toArray } from "../../utils/format";
|
|
11
|
-
import { useConfigProvider } from "../../
|
|
10
|
+
import { useConfigProvider } from "../../contexts/config-provider";
|
|
12
11
|
import PTeleport from "../teleport/index.vue";
|
|
13
12
|
defineOptions({
|
|
14
13
|
name: "PPopover",
|
|
@@ -30,7 +29,7 @@ const props = defineProps({
|
|
|
30
29
|
autoPosition: { type: Boolean, required: false, default: true },
|
|
31
30
|
wrapperClass: { type: [String, Array, Object], required: false },
|
|
32
31
|
contentClass: { type: [String, Array, Object], required: false },
|
|
33
|
-
contentStyle: { type:
|
|
32
|
+
contentStyle: { type: [Object, String], required: false },
|
|
34
33
|
unsetPosition: { type: Boolean, required: false, default: false },
|
|
35
34
|
transitionType: { type: String, required: false, default: "fade-scale" },
|
|
36
35
|
toggleOnTrigger: { type: Boolean, required: false, default: true },
|
|
@@ -39,8 +38,10 @@ const props = defineProps({
|
|
|
39
38
|
lockScrollOnVisible: { type: Boolean, required: false }
|
|
40
39
|
});
|
|
41
40
|
const emits = defineEmits(["show", "hide", "escape", "outside-click", "trigger-click", "visible-change"]);
|
|
41
|
+
let isLockedScroll = false;
|
|
42
42
|
let showPopoverTimer;
|
|
43
43
|
let hidePopoverTimer;
|
|
44
|
+
let cleanupAutoUpdate = null;
|
|
44
45
|
const allowedMethods = ["click", "manual", "contextmenu"];
|
|
45
46
|
const arrayRef = shallowRef(null);
|
|
46
47
|
const triggerRef = shallowRef(null);
|
|
@@ -49,6 +50,7 @@ const localPosition = shallowRef(props.position);
|
|
|
49
50
|
const triggerMethods = computed(() => toArray(props.trigger));
|
|
50
51
|
const wrapperStyle = computed(() => ({
|
|
51
52
|
"z-index": props.zIndex,
|
|
53
|
+
"--popover-offset": props.offset,
|
|
52
54
|
"--popover-arrow-bg": props.arrowColor,
|
|
53
55
|
"--popover-max-width": getCssUnitValue(props.maxWidth)
|
|
54
56
|
}));
|
|
@@ -68,11 +70,13 @@ const {
|
|
|
68
70
|
emits("visible-change", v);
|
|
69
71
|
if (v) {
|
|
70
72
|
if (props.lockScrollOnVisible) {
|
|
73
|
+
isLockedScroll = true;
|
|
71
74
|
lockScroll();
|
|
72
75
|
}
|
|
73
76
|
emits("show");
|
|
74
77
|
} else {
|
|
75
|
-
if (
|
|
78
|
+
if (isLockedScroll) {
|
|
79
|
+
isLockedScroll = false;
|
|
76
80
|
unlockScroll();
|
|
77
81
|
}
|
|
78
82
|
emits("hide");
|
|
@@ -99,11 +103,44 @@ useOutsideClick(wrapperRef, {
|
|
|
99
103
|
{ edges: ["leading"] }
|
|
100
104
|
)
|
|
101
105
|
});
|
|
102
|
-
|
|
103
|
-
if (
|
|
106
|
+
function disposeAutoUpdate() {
|
|
107
|
+
if (cleanupAutoUpdate) {
|
|
108
|
+
cleanupAutoUpdate();
|
|
109
|
+
cleanupAutoUpdate = null;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
async function updatePosition() {
|
|
113
|
+
const { x, y, placement, middlewareData } = await computePosition(
|
|
114
|
+
triggerRef.value,
|
|
115
|
+
wrapperRef.value,
|
|
116
|
+
{
|
|
117
|
+
placement: props.position,
|
|
118
|
+
middleware: [
|
|
119
|
+
shift(),
|
|
120
|
+
props.autoPosition && flip(),
|
|
121
|
+
props.showArrow && arrow({ element: arrayRef.value }),
|
|
122
|
+
props.closeOnInvisible && hide({ strategy: "referenceHidden" }),
|
|
123
|
+
props.closeOnInvisible && hide({ strategy: "escaped" })
|
|
124
|
+
]
|
|
125
|
+
}
|
|
126
|
+
);
|
|
127
|
+
localPosition.value = placement;
|
|
128
|
+
if (middlewareData.hide?.referenceHidden || middlewareData.hide?.escaped) {
|
|
104
129
|
handlePopoverHide(true);
|
|
130
|
+
return;
|
|
105
131
|
}
|
|
106
|
-
|
|
132
|
+
Object.assign(wrapperRef.value.style, {
|
|
133
|
+
left: `${x}px`,
|
|
134
|
+
top: `${y}px`
|
|
135
|
+
});
|
|
136
|
+
if (middlewareData.arrow) {
|
|
137
|
+
const { x: arrowX, y: arrowY } = middlewareData.arrow;
|
|
138
|
+
Object.assign(arrayRef.value.style, {
|
|
139
|
+
left: arrowX != null ? `${Math.max(arrowX, 5)}px` : "",
|
|
140
|
+
top: arrowY != null ? `${Math.max(arrowY, 5)}px` : ""
|
|
141
|
+
});
|
|
142
|
+
}
|
|
143
|
+
}
|
|
107
144
|
async function handlePopoverShow() {
|
|
108
145
|
if (showPopoverTimer || props.disabled) {
|
|
109
146
|
return;
|
|
@@ -126,30 +163,11 @@ async function handlePopoverShow() {
|
|
|
126
163
|
Object.assign(wrapperRef.value.style, { left: "0", top: "0" });
|
|
127
164
|
return;
|
|
128
165
|
}
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
wrapperRef.value,
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
middleware: [
|
|
135
|
-
shift(),
|
|
136
|
-
offset(props.offset),
|
|
137
|
-
props.autoPosition && flip(),
|
|
138
|
-
props.showArrow && arrow({ element: arrayRef.value })
|
|
139
|
-
]
|
|
140
|
-
}
|
|
141
|
-
);
|
|
142
|
-
localPosition.value = placement;
|
|
143
|
-
Object.assign(wrapperRef.value.style, {
|
|
144
|
-
left: `${x}px`,
|
|
145
|
-
top: `${y}px`
|
|
146
|
-
});
|
|
147
|
-
if (middlewareData.arrow) {
|
|
148
|
-
const { x: x2, y: y2 } = middlewareData.arrow;
|
|
149
|
-
Object.assign(arrayRef.value.style, {
|
|
150
|
-
left: x2 != null ? `${Math.max(x2, 5)}px` : "",
|
|
151
|
-
top: y2 != null ? `${Math.max(y2, 5)}px` : ""
|
|
152
|
-
});
|
|
166
|
+
disposeAutoUpdate();
|
|
167
|
+
if (props.autoPosition) {
|
|
168
|
+
cleanupAutoUpdate = autoUpdate(triggerRef.value, wrapperRef.value, updatePosition);
|
|
169
|
+
} else {
|
|
170
|
+
await updatePosition();
|
|
153
171
|
}
|
|
154
172
|
}
|
|
155
173
|
async function handlePopoverHide(immediate = false) {
|
|
@@ -169,6 +187,7 @@ async function handlePopoverHide(immediate = false) {
|
|
|
169
187
|
immediate ? 0 : props.hideDelay
|
|
170
188
|
);
|
|
171
189
|
});
|
|
190
|
+
disposeAutoUpdate();
|
|
172
191
|
await hidePopover();
|
|
173
192
|
if (props.closeOnPressEscape) {
|
|
174
193
|
cachedOff(document, "keydown", onPopoverKeystroke);
|
|
@@ -264,6 +283,13 @@ watch(
|
|
|
264
283
|
}
|
|
265
284
|
}
|
|
266
285
|
);
|
|
286
|
+
onBeforeUnmount(() => {
|
|
287
|
+
if (isLockedScroll) {
|
|
288
|
+
isLockedScroll = false;
|
|
289
|
+
unlockScroll();
|
|
290
|
+
}
|
|
291
|
+
disposeAutoUpdate();
|
|
292
|
+
});
|
|
267
293
|
defineExpose({
|
|
268
294
|
show: handlePopoverShow,
|
|
269
295
|
hide: handlePopoverHide
|
|
@@ -273,7 +299,9 @@ defineExpose({
|
|
|
273
299
|
<template>
|
|
274
300
|
<div
|
|
275
301
|
ref="triggerRef"
|
|
276
|
-
class="pxd-popover inline-flex max-w-full active:select-none"
|
|
302
|
+
class="pxd-popover inline-flex max-w-full active:select-none data-[disabled=true]:pointer-events-none data-[visible=true]:pointer-events-auto"
|
|
303
|
+
:data-visible="isVisible"
|
|
304
|
+
:data-disabled="disabled"
|
|
277
305
|
v-bind="$attrs"
|
|
278
306
|
@click="onTriggerClick"
|
|
279
307
|
@focusin="onTriggerFocusin"
|
|
@@ -292,19 +320,28 @@ defineExpose({
|
|
|
292
320
|
:class="wrapperClass"
|
|
293
321
|
:style="wrapperStyle"
|
|
294
322
|
:data-visible="isVisible"
|
|
323
|
+
:data-position="localPosition"
|
|
295
324
|
:data-interactive="interactive"
|
|
296
|
-
|
|
325
|
+
:data-unset-position="unsetPosition"
|
|
326
|
+
class="pxd-popover--wrapper sm:max-w-(--popover-max-width) absolute isolate z-10 flex max-h-full max-w-full outline-none data-[interactive=false]:pointer-events-none data-[visible=false]:pointer-events-none motion-reduce:data-[visible=false]:hidden"
|
|
297
327
|
@pointerenter="onContentPointerEnter"
|
|
298
328
|
@pointerleave="onContentPointerLeave"
|
|
299
329
|
>
|
|
300
330
|
<div
|
|
301
|
-
class="pxd-popover--container pointer-events-auto relative z-1 w-inherit transform-gpu default-animation-duration default-animation-timing-function"
|
|
302
|
-
:data-position="localPosition"
|
|
331
|
+
class="pxd-popover--container pointer-events-auto relative z-1 max-h-[80dvh] max-h-[80vh] w-inherit transform-gpu default-animation-duration default-animation-timing-function"
|
|
303
332
|
:data-transition-type="transitionType"
|
|
304
333
|
:data-show-transition="configProvider.popoverShowTransition"
|
|
305
334
|
>
|
|
306
|
-
<i
|
|
307
|
-
|
|
335
|
+
<i
|
|
336
|
+
v-if="showArrow"
|
|
337
|
+
ref="arrayRef"
|
|
338
|
+
class="pxd-popover--arrow absolute z-1 rotate-45 border-5 border-(--popover-arrow-bg)"
|
|
339
|
+
/>
|
|
340
|
+
<div
|
|
341
|
+
class="pxd-popover--content h-full max-h-inherit overflow-auto"
|
|
342
|
+
:class="contentClass"
|
|
343
|
+
:style="contentStyle"
|
|
344
|
+
>
|
|
308
345
|
<slot name="content" />
|
|
309
346
|
</div>
|
|
310
347
|
</div>
|
|
@@ -389,6 +426,7 @@ defineExpose({
|
|
|
389
426
|
}
|
|
390
427
|
|
|
391
428
|
.pxd-popover--container {
|
|
429
|
+
--popover-padding: calc(var(--popover-offset, 8) * 1px);
|
|
392
430
|
animation-name: popover-fade-show;
|
|
393
431
|
animation-fill-mode: forwards;
|
|
394
432
|
|
|
@@ -424,84 +462,84 @@ defineExpose({
|
|
|
424
462
|
animation-name: popover-fade-slide-hide;
|
|
425
463
|
}
|
|
426
464
|
|
|
427
|
-
|
|
428
|
-
transform-origin:
|
|
465
|
+
[data-position='top'] & {
|
|
466
|
+
transform-origin: 50% 100%;
|
|
429
467
|
}
|
|
430
468
|
|
|
431
|
-
|
|
432
|
-
transform-origin:
|
|
469
|
+
[data-position='top-start'] & {
|
|
470
|
+
transform-origin: 0% 100%;
|
|
433
471
|
}
|
|
434
472
|
|
|
435
|
-
|
|
436
|
-
transform-origin:
|
|
473
|
+
[data-position='top-end'] & {
|
|
474
|
+
transform-origin: 100% 100%;
|
|
437
475
|
}
|
|
438
476
|
|
|
439
|
-
|
|
477
|
+
[data-position='bottom'] & {
|
|
440
478
|
transform-origin: top center;
|
|
441
479
|
}
|
|
442
480
|
|
|
443
|
-
|
|
481
|
+
[data-position='bottom-start'] & {
|
|
444
482
|
transform-origin: top left;
|
|
445
483
|
}
|
|
446
484
|
|
|
447
|
-
|
|
485
|
+
[data-position='bottom-end'] & {
|
|
448
486
|
transform-origin: top right;
|
|
449
487
|
}
|
|
450
488
|
|
|
451
|
-
|
|
489
|
+
[data-position='left'] & {
|
|
452
490
|
transform-origin: right center;
|
|
453
491
|
}
|
|
454
492
|
|
|
455
|
-
|
|
493
|
+
[data-position='left-start'] & {
|
|
456
494
|
transform-origin: right top;
|
|
457
495
|
}
|
|
458
496
|
|
|
459
|
-
|
|
497
|
+
[data-position='left-end'] & {
|
|
460
498
|
transform-origin: right bottom;
|
|
461
499
|
}
|
|
462
500
|
|
|
463
|
-
|
|
501
|
+
[data-position='right'] & {
|
|
464
502
|
transform-origin: left center;
|
|
465
503
|
}
|
|
466
504
|
|
|
467
|
-
|
|
505
|
+
[data-position='right-start'] & {
|
|
468
506
|
transform-origin: left top;
|
|
469
507
|
}
|
|
470
508
|
|
|
471
|
-
|
|
509
|
+
[data-position='right-end'] & {
|
|
472
510
|
transform-origin: left bottom;
|
|
473
511
|
}
|
|
474
512
|
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
&[data-position='top-end'] .pxd-popover--arrow {
|
|
478
|
-
bottom: -5px;
|
|
479
|
-
border-width: 6px 6px 0;
|
|
480
|
-
border-color: var(--popover-arrow-bg) transparent transparent;
|
|
513
|
+
[data-position^='top'][data-unset-position='false'] & {
|
|
514
|
+
padding-bottom: var(--popover-padding);
|
|
481
515
|
}
|
|
482
516
|
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
&[data-position='bottom-end'] .pxd-popover--arrow {
|
|
486
|
-
top: -5px;
|
|
487
|
-
border-width: 0 6px 6px;
|
|
488
|
-
border-color: transparent transparent var(--popover-arrow-bg);
|
|
517
|
+
[data-position^='bottom'][data-unset-position='false'] & {
|
|
518
|
+
padding-top: var(--popover-padding);
|
|
489
519
|
}
|
|
490
520
|
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
&[data-position='left-end'] .pxd-popover--arrow {
|
|
494
|
-
right: -5px;
|
|
495
|
-
border-width: 6px 0 6px 6px;
|
|
496
|
-
border-color: transparent transparent transparent var(--popover-arrow-bg);
|
|
521
|
+
[data-position^='left'][data-unset-position='false'] & {
|
|
522
|
+
padding-right: var(--popover-padding);
|
|
497
523
|
}
|
|
498
524
|
|
|
499
|
-
|
|
500
|
-
|
|
501
|
-
&[data-position='right-end'] .pxd-popover--arrow {
|
|
502
|
-
left: -5px;
|
|
503
|
-
border-width: 6px 6px 6px 0;
|
|
504
|
-
border-color: transparent var(--popover-arrow-bg) transparent transparent;
|
|
525
|
+
[data-position^='right'][data-unset-position='false'] & {
|
|
526
|
+
padding-left: var(--popover-padding);
|
|
505
527
|
}
|
|
506
528
|
}
|
|
529
|
+
|
|
530
|
+
.pxd-popover--wrapper[data-position^='top'] .pxd-popover--arrow {
|
|
531
|
+
bottom: 4px;
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
.pxd-popover--wrapper[data-position^='bottom'] .pxd-popover--arrow {
|
|
535
|
+
top: 4px;
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
.pxd-popover--wrapper[data-position^='left'] .pxd-popover--arrow {
|
|
539
|
+
right: 4px;
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
.pxd-popover--wrapper[data-position^='right'] .pxd-popover--arrow {
|
|
543
|
+
left: 4px;
|
|
544
|
+
}
|
|
507
545
|
</style>
|
|
@@ -11,8 +11,8 @@ declare const __VLS_base: import("vue").DefineComponent<ProgressProps, {}, {}, {
|
|
|
11
11
|
"onUpdate:modelValue"?: ((args_0: number) => any) | undefined;
|
|
12
12
|
}>, {
|
|
13
13
|
label: boolean | string | number;
|
|
14
|
-
variant: import("../../types/shared").ComponentVariant | "secondary";
|
|
15
14
|
max: number;
|
|
15
|
+
variant: import("../../types/shared").ComponentVariant | "secondary";
|
|
16
16
|
min: number;
|
|
17
17
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
18
18
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
<script setup>
|
|
2
2
|
import { computed } from "vue";
|
|
3
|
-
import { useConfigProvider } from "../../
|
|
3
|
+
import { useConfigProvider } from "../../contexts/config-provider";
|
|
4
4
|
import { useModelValue } from "../../composables/use-model-value";
|
|
5
5
|
import { isTruthyProp } from "../../utils/format";
|
|
6
6
|
import { getColorByThreshold } from "../../utils/get";
|
|
7
|
-
import {
|
|
7
|
+
import { tv } from "tailwind-variants";
|
|
8
8
|
defineOptions({
|
|
9
9
|
name: "PProgress",
|
|
10
10
|
inheritAttrs: false,
|
|
@@ -23,6 +23,19 @@ const props = defineProps({
|
|
|
23
23
|
modelValue: { type: [Number, null], required: false }
|
|
24
24
|
});
|
|
25
25
|
const emits = defineEmits(["change", "update:modelValue"]);
|
|
26
|
+
const progressVariant = tv({
|
|
27
|
+
base: "pxd-progress-bar flex-1 shrink-0 overflow-hidden rounded-full bg-gray-200",
|
|
28
|
+
variants: {
|
|
29
|
+
size: {
|
|
30
|
+
sm: "h-2",
|
|
31
|
+
md: "h-2.5",
|
|
32
|
+
lg: "h-3.5"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
defaultVariants: {
|
|
36
|
+
size: "md"
|
|
37
|
+
}
|
|
38
|
+
});
|
|
26
39
|
const configProvider = useConfigProvider();
|
|
27
40
|
const VARIANTS_COLORS = {
|
|
28
41
|
primary: "var(--color-primary)",
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { ProjectBannerProps } from './types';
|
|
2
|
+
declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {};
|
|
3
|
+
type __VLS_Slots = {} & {
|
|
4
|
+
icon?: (props: typeof __VLS_1) => any;
|
|
5
|
+
} & {
|
|
6
|
+
default?: (props: typeof __VLS_3) => any;
|
|
7
|
+
} & {
|
|
8
|
+
action?: (props: typeof __VLS_5) => any;
|
|
9
|
+
};
|
|
10
|
+
declare const __VLS_base: import("vue").DefineComponent<ProjectBannerProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ProjectBannerProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
11
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
12
|
+
declare const _default: typeof __VLS_export;
|
|
13
|
+
export default _default;
|
|
14
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
15
|
+
new (): {
|
|
16
|
+
$slots: S;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
<script setup>
|
|
2
|
+
import { computed } from "vue";
|
|
3
|
+
import { tv } from "tailwind-variants";
|
|
4
|
+
defineOptions({
|
|
5
|
+
name: "PProjectBanner",
|
|
6
|
+
inheritAttrs: false
|
|
7
|
+
});
|
|
8
|
+
const props = defineProps({
|
|
9
|
+
label: { type: [String, Number, Array, null], required: false },
|
|
10
|
+
variant: { type: String, required: false }
|
|
11
|
+
});
|
|
12
|
+
const projectBannerVariant = tv({
|
|
13
|
+
slots: {
|
|
14
|
+
base: "gap-x-2 py-2 leading-5 min-h-10 text-sm flex w-full -translate-y-px items-center justify-center border-y",
|
|
15
|
+
action: "ml-6 md:ml-0 font-medium cursor-pointer underline underline-offset-3 motion-safe:transition-colors"
|
|
16
|
+
},
|
|
17
|
+
variants: {
|
|
18
|
+
variant: {
|
|
19
|
+
warning: {
|
|
20
|
+
base: "border-amber-400 bg-amber-100 text-amber-900",
|
|
21
|
+
action: "text-amber-1000 decoration-amber-400 hover:border-amber-500 hover:text-amber-900"
|
|
22
|
+
},
|
|
23
|
+
success: {
|
|
24
|
+
base: "border-green-400 bg-green-100 text-green-900",
|
|
25
|
+
action: "text-green-1000 decoration-green-400 hover:border-green-500 hover:text-green-900"
|
|
26
|
+
},
|
|
27
|
+
error: {
|
|
28
|
+
base: "border-red-400 bg-red-100 text-red-900",
|
|
29
|
+
action: "text-red-1000 decoration-red-400 hover:border-red-500 hover:text-red-900"
|
|
30
|
+
},
|
|
31
|
+
info: {
|
|
32
|
+
base: "border-blue-400 bg-blue-100 text-blue-900",
|
|
33
|
+
action: "text-blue-1000 decoration-blue-400 hover:border-blue-500 hover:text-blue-900"
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
});
|
|
38
|
+
const computedClasses = computed(() => projectBannerVariant({ variant: props.variant }));
|
|
39
|
+
</script>
|
|
40
|
+
|
|
41
|
+
<template>
|
|
42
|
+
<aside :class="computedClasses.base()" v-bind="$attrs">
|
|
43
|
+
<div class="gap-2 px-6 md:justify-center md:flex-row md:items-center flex w-full flex-col">
|
|
44
|
+
<div class="gap-2 flex items-center">
|
|
45
|
+
<div v-if="$slots.icon" aria-hidden="true" class="shrink-0">
|
|
46
|
+
<slot name="icon"></slot>
|
|
47
|
+
</div>
|
|
48
|
+
|
|
49
|
+
<p class="my-0!">
|
|
50
|
+
<slot>{{ label }}</slot>
|
|
51
|
+
</p>
|
|
52
|
+
</div>
|
|
53
|
+
|
|
54
|
+
<div v-if="$slots.action" :class="computedClasses.action()">
|
|
55
|
+
<slot name="action"></slot>
|
|
56
|
+
</div>
|
|
57
|
+
</div>
|
|
58
|
+
</aside>
|
|
59
|
+
</template>
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
<script setup>
|
|
2
2
|
import { computed } from "vue";
|
|
3
3
|
import { useModelValue } from "../../composables/use-model-value";
|
|
4
|
-
import { useUniqueId } from "../../composables/use-unique-id-context";
|
|
5
4
|
import { useRadioGroupContext } from "../../contexts/radio";
|
|
6
5
|
import { getUniqueId } from "../../utils/uid";
|
|
7
|
-
import {
|
|
6
|
+
import { tv } from "tailwind-variants";
|
|
8
7
|
defineOptions({
|
|
9
8
|
name: "PRadio",
|
|
9
|
+
inheritAttrs: false,
|
|
10
10
|
model: {
|
|
11
11
|
prop: "modelValue",
|
|
12
12
|
event: "update:modelValue"
|
|
@@ -15,50 +15,92 @@ defineOptions({
|
|
|
15
15
|
const props = defineProps({
|
|
16
16
|
label: { type: [String, Number, Array, null], required: false },
|
|
17
17
|
value: { type: [String, Number, Boolean], required: true },
|
|
18
|
-
required: { type: Boolean, required: false },
|
|
19
18
|
disabled: { type: Boolean, required: false },
|
|
20
19
|
modelValue: { type: [String, Number, Boolean], required: false }
|
|
21
20
|
});
|
|
22
21
|
const emits = defineEmits(["change", "update:modelValue"]);
|
|
22
|
+
const radioVariant = tv({
|
|
23
|
+
base: "pxd-radio--inner size-4 after:content-empty after:size-2 inline-flex items-center justify-center rounded-full border peer-focus-ring after:scale-40 after:rounded-full after:bg-primary after:opacity-0 peer-checked:after:scale-100 peer-checked:after:opacity-100 motion-safe:transition-colors motion-safe:after:transition-all",
|
|
24
|
+
variants: {
|
|
25
|
+
checked: {
|
|
26
|
+
true: {
|
|
27
|
+
base: "border-primary bg-background-100 peer-checked:after:scale-100",
|
|
28
|
+
disabled: "border-gray-500 bg-gray-100 peer-disabled:after:bg-gray-500"
|
|
29
|
+
},
|
|
30
|
+
false: {
|
|
31
|
+
base: "border-gray-alpha-400 bg-background-100 group-hover/radio:bg-gray-200",
|
|
32
|
+
disabled: "border-gray-500 bg-gray-100"
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
disabled: {
|
|
36
|
+
true: "",
|
|
37
|
+
false: ""
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
compoundVariants: [
|
|
41
|
+
{
|
|
42
|
+
checked: true,
|
|
43
|
+
disabled: false,
|
|
44
|
+
class: "border-primary bg-background-100 peer-checked:after:scale-100"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
checked: true,
|
|
48
|
+
disabled: true,
|
|
49
|
+
class: "border-gray-500 bg-gray-100 peer-disabled:after:bg-gray-500"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
checked: false,
|
|
53
|
+
disabled: false,
|
|
54
|
+
class: "border-gray-alpha-400 bg-background-100 group-hover/radio:bg-gray-200"
|
|
55
|
+
},
|
|
56
|
+
{ checked: false, disabled: true, class: "border-gray-500 bg-gray-100" }
|
|
57
|
+
],
|
|
58
|
+
defaultVariants: {
|
|
59
|
+
checked: false,
|
|
60
|
+
disabled: false
|
|
61
|
+
}
|
|
62
|
+
});
|
|
23
63
|
const uniqueId = getUniqueId();
|
|
24
|
-
const modelValue = useModelValue(props, emits);
|
|
25
|
-
const radioGroupName = useUniqueId("RadioGroupName");
|
|
26
64
|
const radioGroupContext = useRadioGroupContext();
|
|
27
|
-
const
|
|
28
|
-
|
|
65
|
+
const radioGroupName = radioGroupContext?.name ?? getUniqueId();
|
|
66
|
+
const modelValue = useModelValue(
|
|
67
|
+
radioGroupContext?.props ?? props,
|
|
68
|
+
radioGroupContext?.emits ?? emits
|
|
29
69
|
);
|
|
30
|
-
const
|
|
31
|
-
const
|
|
70
|
+
const isChecked = computed(() => modelValue.value === props.value);
|
|
71
|
+
const isDisabled = computed(() => props.disabled || radioGroupContext?.props.disabled);
|
|
32
72
|
const computedClasses = computed(() => {
|
|
33
73
|
return radioVariant({
|
|
34
74
|
checked: isChecked.value,
|
|
35
|
-
disabled:
|
|
75
|
+
disabled: isDisabled.value
|
|
36
76
|
});
|
|
37
77
|
});
|
|
38
|
-
function
|
|
39
|
-
|
|
78
|
+
function onInputChange() {
|
|
79
|
+
if (isDisabled.value) {
|
|
80
|
+
return;
|
|
81
|
+
}
|
|
82
|
+
modelValue.value = props.value;
|
|
40
83
|
}
|
|
41
84
|
</script>
|
|
42
85
|
|
|
43
86
|
<template>
|
|
44
87
|
<label
|
|
45
88
|
role="radio"
|
|
46
|
-
:aria-
|
|
47
|
-
:data-disabled="
|
|
48
|
-
class="pxd-radio group/radio gap-2 inline-flex max-w-full cursor-pointer touch-manipulation items-center data-[disabled=true]:cursor-not-allowed"
|
|
49
|
-
:class="{ 'is-disabled text-gray-500': computedDisabled }"
|
|
89
|
+
:aria-selected="isChecked"
|
|
90
|
+
:data-disabled="isDisabled"
|
|
91
|
+
class="pxd-radio group/radio gap-2 inline-flex max-w-full cursor-pointer touch-manipulation items-center data-[disabled=true]:cursor-not-allowed data-[disabled=true]:text-gray-500"
|
|
50
92
|
:for="uniqueId"
|
|
93
|
+
v-bind="$attrs"
|
|
51
94
|
>
|
|
52
95
|
<input
|
|
53
96
|
:id="uniqueId"
|
|
54
97
|
type="radio"
|
|
55
98
|
:value="value"
|
|
56
|
-
class="peer
|
|
99
|
+
class="peer visually-hidden"
|
|
57
100
|
:checked="isChecked"
|
|
58
101
|
:name="radioGroupName"
|
|
59
|
-
:
|
|
60
|
-
|
|
61
|
-
@change="onChangeValue"
|
|
102
|
+
:disabled="isDisabled"
|
|
103
|
+
@change="onInputChange"
|
|
62
104
|
/>
|
|
63
105
|
|
|
64
106
|
<span aria-hidden="true" :class="computedClasses" />
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import type { ComponentLabel,
|
|
1
|
+
import type { ComponentLabel, ComponentValue } from '../../types/shared'
|
|
2
2
|
|
|
3
3
|
export interface RadioProps {
|
|
4
4
|
label?: ComponentLabel
|
|
5
5
|
value: ComponentValue
|
|
6
|
-
required?: boolean
|
|
7
6
|
disabled?: boolean
|
|
8
7
|
modelValue?: ComponentValue
|
|
9
8
|
}
|
|
@@ -12,15 +11,3 @@ export interface RadioEmits {
|
|
|
12
11
|
change: [NonNullable<RadioProps['modelValue']>]
|
|
13
12
|
'update:modelValue': [NonNullable<RadioProps['modelValue']>]
|
|
14
13
|
}
|
|
15
|
-
|
|
16
|
-
export interface RadioGroupProps {
|
|
17
|
-
disabled?: boolean
|
|
18
|
-
required?: boolean
|
|
19
|
-
modelValue?: ComponentValue
|
|
20
|
-
options?: ComponentOption[]
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
export interface RadioGroupEmits {
|
|
24
|
-
change: [NonNullable<RadioGroupProps['modelValue']>]
|
|
25
|
-
'update:modelValue': [NonNullable<RadioGroupProps['modelValue']>]
|
|
26
|
-
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { RadioGroupProps } from '
|
|
1
|
+
import type { RadioGroupProps } from './types';
|
|
2
2
|
declare var __VLS_8: {};
|
|
3
3
|
type __VLS_Slots = {} & {
|
|
4
4
|
default?: (props: typeof __VLS_8) => any;
|
|
@@ -9,9 +9,7 @@ declare const __VLS_base: import("vue").DefineComponent<RadioGroupProps, {}, {},
|
|
|
9
9
|
}, string, import("vue").PublicProps, Readonly<RadioGroupProps> & Readonly<{
|
|
10
10
|
onChange?: ((args_0: NonNullable<import("../../types/shared").ComponentValue | undefined>) => any) | undefined;
|
|
11
11
|
"onUpdate:modelValue"?: ((args_0: NonNullable<import("../../types/shared").ComponentValue | undefined>) => any) | undefined;
|
|
12
|
-
}>, {
|
|
13
|
-
options: import("../../types/shared").ComponentOption[];
|
|
14
|
-
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
12
|
+
}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
15
13
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
16
14
|
declare const _default: typeof __VLS_export;
|
|
17
15
|
export default _default;
|