pxd 0.1.2 → 0.1.3
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/dist/components/_internal/calendar-day.vue +19 -19
- package/dist/components/_internal/dismiss-container.d.vue.ts +1 -1
- package/dist/components/_internal/dismiss-container.vue +19 -19
- package/dist/components/_internal/loading-mask.vue +9 -1
- package/dist/components/_internal/mention-editor.d.vue.ts +1 -1
- package/dist/components/_internal/mention-editor.vue +1 -1
- package/dist/components/_internal/popover-arrow.d.vue.ts +1 -1
- package/dist/components/_internal/popover-arrow.vue +1 -1
- package/dist/components/{steps → _internal}/step-item.d.vue.ts +1 -1
- package/dist/components/{steps → _internal}/step-item.vue +1 -1
- package/dist/components/_internal/tree-node.d.vue.ts +20 -20
- package/dist/components/_internal/tree-node.vue +53 -45
- package/dist/components/active-graph/index.d.vue.ts +2 -2
- package/dist/components/approval-card/index.d.vue.ts +1 -1
- package/dist/components/approval-card/index.vue +34 -17
- package/dist/components/approval-card/types.d.ts +1 -1
- package/dist/components/avatar/index.d.vue.ts +2 -2
- package/dist/components/avatar/index.vue +1 -1
- package/dist/components/backtop/index.d.vue.ts +3 -3
- package/dist/components/backtop/index.vue +17 -17
- package/dist/components/backtop/types.d.ts +1 -1
- package/dist/components/badge/index.d.vue.ts +3 -3
- package/dist/components/badge/index.vue +43 -43
- package/dist/components/badge/types.d.ts +1 -1
- package/dist/components/book/types.d.ts +1 -1
- package/dist/components/border-beam/index.vue +1 -1
- package/dist/components/border-beam/types.d.ts +1 -1
- package/dist/components/bubble/index.vue +1 -1
- package/dist/components/bubble-group/index.d.vue.ts +4 -4
- package/dist/components/button/index.d.vue.ts +5 -5
- package/dist/components/button/index.vue +13 -13
- package/dist/components/button/types.d.ts +1 -1
- package/dist/components/button-group/types.d.ts +1 -1
- package/dist/components/calendar/index.d.vue.ts +2 -2
- package/dist/components/calendar/index.vue +5 -5
- package/dist/components/calendar/types.d.ts +1 -1
- package/dist/components/card/types.d.ts +1 -1
- package/dist/components/carousel/index.d.vue.ts +7 -7
- package/dist/components/carousel/index.vue +1 -1
- package/dist/components/carousel/types.d.ts +1 -1
- package/dist/components/checkbox/index.vue +1 -1
- package/dist/components/checkbox/types.d.ts +1 -1
- package/dist/components/checkbox-group/index.d.vue.ts +2 -2
- package/dist/components/checkbox-group/types.d.ts +1 -1
- package/dist/components/chip/index.d.vue.ts +1 -1
- package/dist/components/chip/types.d.ts +1 -1
- package/dist/components/choicebox/index.d.vue.ts +3 -3
- package/dist/components/choicebox/types.d.ts +1 -1
- package/dist/components/choicebox-item/index.vue +8 -8
- package/dist/components/choicebox-item/types.d.ts +1 -1
- package/dist/components/collapse/index.vue +2 -2
- package/dist/components/collapse-group/index.vue +1 -1
- package/dist/components/collapse-group/types.d.ts +1 -1
- package/dist/components/command-menu/index.d.vue.ts +5 -5
- package/dist/components/command-menu/index.vue +10 -3
- package/dist/components/config-provider/index.d.vue.ts +40 -5
- package/dist/components/config-provider/types.d.ts +2 -1
- package/dist/components/confirm-popover/index.d.vue.ts +39 -0
- package/dist/components/confirm-popover/index.vue +177 -0
- package/dist/components/confirm-popover/types.d.ts +23 -0
- package/dist/components/copy-button/index.d.vue.ts +2 -6
- package/dist/components/copy-button/index.vue +4 -6
- package/dist/components/dash-line/index.d.vue.ts +1 -1
- package/dist/components/dash-line/index.vue +8 -8
- package/dist/components/dash-line/types.d.ts +1 -1
- package/dist/components/date-picker/index.d.vue.ts +1 -1
- package/dist/components/date-picker/index.vue +3 -3
- package/dist/components/date-picker/types.d.ts +1 -1
- package/dist/components/drawer/index.d.vue.ts +7 -7
- package/dist/components/drawer/index.vue +30 -15
- package/dist/components/drawer/types.d.ts +2 -2
- package/dist/components/effort-slider/index.vue +12 -18
- package/dist/components/effort-slider/types.d.ts +1 -1
- package/dist/components/ellipsis-text/index.d.vue.ts +2 -2
- package/dist/components/ellipsis-text/index.vue +75 -75
- package/dist/components/error/types.d.ts +1 -1
- package/dist/components/fader/index.vue +2 -2
- package/dist/components/fader/types.d.ts +1 -1
- package/dist/components/gauge/index.vue +2 -2
- package/dist/components/gauge/types.d.ts +1 -1
- package/dist/components/grid/types.d.ts +1 -1
- package/dist/components/grid-item/types.d.ts +1 -1
- package/dist/components/hint/index.d.vue.ts +32 -0
- package/dist/components/hint/index.vue +239 -0
- package/dist/components/hint/types.d.ts +17 -0
- package/dist/components/hold-button/index.d.vue.ts +4 -4
- package/dist/components/hold-button/index.vue +10 -10
- package/dist/components/index.d.ts +4 -0
- package/dist/components/index.js +4 -0
- package/dist/components/input/index.d.vue.ts +1 -1
- package/dist/components/input/index.vue +14 -7
- package/dist/components/input/types.d.ts +1 -1
- package/dist/components/intersection-observer/index.vue +3 -3
- package/dist/components/kbd/index.vue +2 -2
- package/dist/components/kbd/types.d.ts +1 -1
- package/dist/components/link-button/index.d.vue.ts +5 -5
- package/dist/components/list/index.d.vue.ts +4 -4
- package/dist/components/list/index.vue +126 -47
- package/dist/components/list/types.d.ts +1 -1
- package/dist/components/list-group/types.d.ts +1 -1
- package/dist/components/list-item/index.d.vue.ts +2 -2
- package/dist/components/list-item/index.vue +26 -8
- package/dist/components/loading-bar/index.vue +5 -5
- package/dist/components/marching-ants/index.d.vue.ts +2 -2
- package/dist/components/marching-ants/index.vue +56 -56
- package/dist/components/marching-ants/types.d.ts +1 -1
- package/dist/components/marquee/index.d.vue.ts +6 -6
- package/dist/components/marquee/index.vue +16 -16
- package/dist/components/marquee/types.d.ts +1 -1
- package/dist/components/material/index.d.vue.ts +3 -3
- package/dist/components/mention/index.d.vue.ts +5 -5
- package/dist/components/mention/index.vue +68 -68
- package/dist/components/menu/index.d.vue.ts +4 -4
- package/dist/components/menu/index.vue +10 -10
- package/dist/components/menu/types.d.ts +1 -1
- package/dist/components/message/index.d.vue.ts +1 -1
- package/dist/components/message/index.vue +19 -25
- package/dist/components/message/types.d.ts +1 -1
- package/dist/components/message-item/index.vue +2 -6
- package/dist/components/modal/index.d.vue.ts +7 -7
- package/dist/components/modal/index.vue +26 -11
- package/dist/components/modal/types.d.ts +2 -2
- package/dist/components/noise-background/types.d.ts +1 -1
- package/dist/components/note/index.vue +6 -2
- package/dist/components/note/types.d.ts +2 -1
- package/dist/components/number-input/index.d.vue.ts +11 -6
- package/dist/components/number-input/index.vue +57 -16
- package/dist/components/number-input/types.d.ts +2 -1
- package/dist/components/overlay/index.d.vue.ts +2 -3
- package/dist/components/overlay/index.vue +10 -62
- package/dist/components/overlay/types.d.ts +0 -2
- package/dist/components/page-number/index.vue +30 -29
- package/dist/components/page-number/types.d.ts +1 -1
- package/dist/components/pin-input/index.d.vue.ts +1 -1
- package/dist/components/pin-input/index.vue +6 -6
- package/dist/components/pin-input/types.d.ts +1 -1
- package/dist/components/popover/index.vue +49 -21
- package/dist/components/popover/types.d.ts +3 -1
- package/dist/components/progress/index.d.vue.ts +2 -2
- package/dist/components/progress/index.vue +12 -12
- package/dist/components/progress/types.d.ts +1 -1
- package/dist/components/project-banner/types.d.ts +1 -1
- package/dist/components/questionnaire/index.vue +14 -14
- package/dist/components/radio/index.vue +1 -1
- package/dist/components/radio/types.d.ts +1 -1
- package/dist/components/radio-group/index.d.vue.ts +2 -2
- package/dist/components/radio-group/types.d.ts +1 -1
- package/dist/components/rating/index.vue +28 -28
- package/dist/components/rating/types.d.ts +1 -1
- package/dist/components/resizable/index.d.vue.ts +1 -0
- package/dist/components/resizable/index.vue +130 -195
- package/dist/components/resizable/types.d.ts +2 -10
- package/dist/components/reveal/index.d.vue.ts +3 -3
- package/dist/components/reveal/index.vue +4 -4
- package/dist/components/reveal/types.d.ts +1 -1
- package/dist/components/rolling-number/index.d.vue.ts +2 -2
- package/dist/components/rolling-number/index.vue +15 -15
- package/dist/components/scalable-text/index.vue +9 -9
- package/dist/components/scroll-text/index.d.vue.ts +3 -3
- package/dist/components/scroll-text/index.vue +6 -6
- package/dist/components/scroll-text/types.d.ts +1 -1
- package/dist/components/scrollable/types.d.ts +2 -1
- package/dist/components/search-input/index.d.vue.ts +5 -5
- package/dist/components/search-input/index.vue +2 -1
- package/dist/components/select/index.d.vue.ts +12 -9
- package/dist/components/select/index.vue +165 -42
- package/dist/components/select/types.d.ts +3 -1
- package/dist/components/separator/index.d.vue.ts +1 -1
- package/dist/components/separator/types.d.ts +1 -1
- package/dist/components/skeleton/index.d.vue.ts +1 -1
- package/dist/components/skeleton/index.vue +11 -11
- package/dist/components/skeleton/types.d.ts +1 -1
- package/dist/components/slider/index.d.vue.ts +1 -1
- package/dist/components/slider/index.vue +1 -1
- package/dist/components/slider/types.d.ts +1 -1
- package/dist/components/snippet/index.d.vue.ts +3 -3
- package/dist/components/snippet/index.vue +7 -5
- package/dist/components/snippet/types.d.ts +1 -1
- package/dist/components/spinner/index.vue +5 -1
- package/dist/components/spinner-dots/index.d.vue.ts +1 -1
- package/dist/components/split-button/index.d.vue.ts +5 -5
- package/dist/components/split-button/types.d.ts +1 -1
- package/dist/components/stack/index.d.vue.ts +3 -3
- package/dist/components/stack/index.vue +28 -29
- package/dist/components/stack/types.d.ts +1 -1
- package/dist/components/status-dot/types.d.ts +1 -1
- package/dist/components/steps/index.d.vue.ts +2 -2
- package/dist/components/steps/index.vue +6 -6
- package/dist/components/steps/types.d.ts +1 -1
- package/dist/components/stick-to-bottom/types.d.ts +1 -1
- package/dist/components/swipe-cell/index.d.vue.ts +6 -6
- package/dist/components/swipe-cell/index.vue +64 -64
- package/dist/components/swipe-cell/types.d.ts +2 -1
- package/dist/components/switch/index.vue +1 -1
- package/dist/components/switch/types.d.ts +1 -1
- package/dist/components/switch-item/index.vue +1 -1
- package/dist/components/switch-item/types.d.ts +1 -1
- package/dist/components/tabs/index.d.vue.ts +1 -1
- package/dist/components/tabs/index.vue +48 -51
- package/dist/components/tabs/types.d.ts +1 -1
- package/dist/components/teleport/index.vue +2 -2
- package/dist/components/text/index.d.vue.ts +3 -3
- package/dist/components/text/index.vue +11 -11
- package/dist/components/text/types.d.ts +1 -1
- package/dist/components/textarea/index.vue +1 -1
- package/dist/components/textarea/types.d.ts +1 -1
- package/dist/components/theme-switcher/index.d.vue.ts +3 -2
- package/dist/components/theme-switcher/index.vue +15 -7
- package/dist/components/theme-switcher/types.d.ts +2 -2
- package/dist/components/time-ago/index.d.vue.ts +6 -0
- package/dist/components/time-ago/index.vue +143 -0
- package/dist/components/time-ago/types.d.ts +4 -0
- package/dist/components/time-picker/index.d.vue.ts +1 -1
- package/dist/components/time-picker/index.vue +7 -7
- package/dist/components/time-picker/types.d.ts +1 -1
- package/dist/components/toc/index.d.vue.ts +2 -2
- package/dist/components/toc/index.vue +1 -1
- package/dist/components/todo-list/index.d.vue.ts +4 -4
- package/dist/components/todo-list/index.vue +15 -15
- package/dist/components/todo-list/types.d.ts +1 -1
- package/dist/components/toggle/index.vue +3 -3
- package/dist/components/toggle/types.d.ts +1 -1
- package/dist/components/toggle-button/index.vue +14 -11
- package/dist/components/toggle-button/types.d.ts +2 -2
- package/dist/components/toggle-button-group/index.d.vue.ts +3 -3
- package/dist/components/toggle-button-group/index.vue +2 -2
- package/dist/components/toggle-button-group/types.d.ts +2 -2
- package/dist/components/tool-call/index.vue +5 -5
- package/dist/components/tooltip/index.d.vue.ts +4 -5
- package/dist/components/tooltip/index.vue +4 -49
- package/dist/components/tooltip/types.d.ts +3 -7
- package/dist/components/tour/index.d.vue.ts +33 -0
- package/dist/components/tour/index.vue +302 -0
- package/dist/components/tour/types.d.ts +29 -0
- package/dist/components/tree/index.d.vue.ts +24 -28
- package/dist/components/tree/index.vue +290 -223
- package/dist/components/tree/types.d.ts +38 -13
- package/dist/components/virtual-list/index.d.vue.ts +4 -4
- package/dist/composables/_internal/use-list-keyboard-controller.js +9 -10
- package/dist/composables/_internal/use-list-rows.d.ts +4 -0
- package/dist/composables/_internal/use-list-rows.js +12 -4
- package/dist/composables/_internal/use-list-selection.d.ts +1 -1
- package/dist/composables/_internal/use-lock-scroll.d.ts +8 -1
- package/dist/composables/_internal/use-lock-scroll.js +57 -36
- package/dist/composables/_internal/use-mention-editor.js +1 -1
- package/dist/composables/_internal/use-message-group.d.ts +22 -0
- package/dist/composables/_internal/use-message-group.js +143 -0
- package/dist/composables/_internal/use-overlay-dialog.js +1 -3
- package/dist/composables/_internal/use-overlay-manager.d.ts +4 -1
- package/dist/composables/_internal/use-overlay-manager.js +67 -8
- package/dist/composables/_internal/use-swipe-gesture.d.ts +1 -1
- package/dist/composables/_internal/use-tour-target.d.ts +29 -0
- package/dist/composables/_internal/use-tour-target.js +201 -0
- package/dist/composables/_internal/use-tree.d.ts +103 -0
- package/dist/composables/_internal/use-tree.js +676 -0
- package/dist/composables/_internal/use-word-limit.d.ts +1 -1
- package/dist/composables/index.d.ts +1 -0
- package/dist/composables/index.js +1 -0
- package/dist/composables/use-color-scheme.d.ts +1 -1
- package/dist/composables/use-color-scheme.js +7 -6
- package/dist/composables/use-delay-destroy.d.ts +1 -1
- package/dist/composables/use-document-hidden.d.ts +1 -1
- package/dist/composables/use-intersection-observer.d.ts +1 -1
- package/dist/composables/use-intersection-observer.js +1 -1
- package/dist/composables/{_internal/use-motion-reduce.js → use-motion-reduce.js} +2 -2
- package/dist/composables/use-mutation-observer.d.ts +1 -1
- package/dist/composables/use-mutation-observer.js +1 -1
- package/dist/composables/use-resize-observer.d.ts +1 -1
- package/dist/composables/use-resize-observer.js +1 -1
- package/dist/composables/use-view-transition.js +1 -0
- package/dist/composables/use-virtual-list.d.ts +1 -1
- package/dist/constants/tooltip-variants.d.ts +28 -0
- package/dist/constants/tooltip-variants.js +27 -0
- package/dist/contexts/avatar.js +1 -1
- package/dist/contexts/breadcrumb.js +1 -1
- package/dist/contexts/button.js +1 -1
- package/dist/contexts/checkbox.js +1 -1
- package/dist/contexts/choicebox.js +1 -1
- package/dist/contexts/collapse.js +1 -1
- package/dist/contexts/config-provider.js +1 -1
- package/dist/contexts/list.js +1 -1
- package/dist/contexts/radio.js +1 -1
- package/dist/contexts/switch.js +1 -1
- package/dist/contexts/toggle-button.js +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/locales/en-us.d.ts +35 -0
- package/dist/locales/en-us.js +20 -0
- package/dist/locales/zh-cn.d.ts +35 -0
- package/dist/locales/zh-cn.js +20 -0
- package/dist/styles/styles.css +1 -1
- package/dist/styles/tw.css +43 -30
- package/dist/utils/{context.js → _internal/context.js} +1 -1
- package/dist/utils/{observer.d.ts → _internal/observer.d.ts} +1 -1
- package/dist/utils/{observer.js → _internal/observer.js} +4 -4
- package/dist/{components/swipe-cell/instances.d.ts → utils/_internal/swipe-cell-instances.d.ts} +1 -1
- package/dist/utils/event.d.ts +2 -1
- package/dist/utils/event.js +3 -0
- package/package.json +26 -50
- package/volar.d.ts +4 -0
- package/dist/components/message/composables/use-group-expand.d.ts +0 -13
- package/dist/components/message/composables/use-group-expand.js +0 -50
- package/dist/components/message/composables/use-message-timer.d.ts +0 -9
- package/dist/components/message/composables/use-message-timer.js +0 -62
- package/dist/components/message/composables/use-promise-message.d.ts +0 -4
- package/dist/components/message/composables/use-promise-message.js +0 -49
- package/dist/components/resizable/utils.d.ts +0 -4
- package/dist/components/resizable/utils.js +0 -10
- package/dist/composables/_internal/use-tree-drag.d.ts +0 -23
- package/dist/composables/_internal/use-tree-drag.js +0 -196
- package/dist/composables/_internal/use-tree-move.d.ts +0 -20
- package/dist/composables/_internal/use-tree-move.js +0 -96
- package/dist/composables/_internal/use-tree-rows.d.ts +0 -46
- package/dist/composables/_internal/use-tree-rows.js +0 -101
- package/dist/composables/_internal/use-tree-selection.d.ts +0 -22
- package/dist/composables/_internal/use-tree-selection.js +0 -87
- package/dist/styles/source.css +0 -675
- package/dist/types/shared/index.d.ts +0 -2
- /package/dist/composables/{_internal/use-motion-reduce.d.ts → use-motion-reduce.d.ts} +0 -0
- /package/dist/utils/{context.d.ts → _internal/context.d.ts} +0 -0
- /package/dist/utils/{mention-html.d.ts → _internal/mention-html.d.ts} +0 -0
- /package/dist/utils/{mention-html.js → _internal/mention-html.js} +0 -0
- /package/dist/{components/swipe-cell/instances.js → utils/_internal/swipe-cell-instances.js} +0 -0
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
<script setup>
|
|
2
|
+
import CrossIcon from "@gdsicon/vue/cross";
|
|
2
3
|
import { computed, shallowRef, watch } from "vue";
|
|
3
4
|
import { useModelValue } from "../../composables/_internal/use-model-value.js";
|
|
4
5
|
import { useOverlayDialog } from "../../composables/_internal/use-overlay-dialog.js";
|
|
5
6
|
import { useConfigProvider } from "../../contexts/config-provider.js";
|
|
6
7
|
import { getCssUnitValue } from "../../utils/format.js";
|
|
7
8
|
import PLoadingMask from "../_internal/loading-mask.vue";
|
|
9
|
+
import PButton from "../button/index.vue";
|
|
8
10
|
import POverlay from "../overlay/index.vue";
|
|
9
11
|
defineOptions({
|
|
10
12
|
name: "PDrawer",
|
|
@@ -49,11 +51,6 @@ const props = defineProps({
|
|
|
49
51
|
type: String,
|
|
50
52
|
required: false
|
|
51
53
|
},
|
|
52
|
-
appendToBody: {
|
|
53
|
-
type: Boolean,
|
|
54
|
-
required: false,
|
|
55
|
-
default: true
|
|
56
|
-
},
|
|
57
54
|
wrapperClass: {
|
|
58
55
|
type: [
|
|
59
56
|
String,
|
|
@@ -94,6 +91,11 @@ const props = defineProps({
|
|
|
94
91
|
type: Boolean,
|
|
95
92
|
required: false,
|
|
96
93
|
default: true
|
|
94
|
+
},
|
|
95
|
+
closeable: {
|
|
96
|
+
type: Boolean,
|
|
97
|
+
required: false,
|
|
98
|
+
default: false
|
|
97
99
|
}
|
|
98
100
|
});
|
|
99
101
|
const emits = defineEmits([
|
|
@@ -105,8 +107,6 @@ const emits = defineEmits([
|
|
|
105
107
|
"update:modelValue"
|
|
106
108
|
]);
|
|
107
109
|
const drawerRef = shallowRef();
|
|
108
|
-
const isVisible = useModelValue(props, emits);
|
|
109
|
-
const configProvider = useConfigProvider();
|
|
110
110
|
const ensurePosition = computed(() => {
|
|
111
111
|
const { position } = props;
|
|
112
112
|
if ([
|
|
@@ -123,6 +123,13 @@ const defaultStyles = computed(() => ({
|
|
|
123
123
|
headerClass: props.defaultHeaderStyle ? "pbe-4 sm:pbe-6 border-b bg-background-200 dark:bg-background-100" : "",
|
|
124
124
|
footerClass: props.defaultFooterStyle ? "border-t pbs-4 bg-background-200 dark:bg-background-100" : ""
|
|
125
125
|
}));
|
|
126
|
+
const transitionName = computed(() => `pxd-transition--drawer-${ensurePosition.value}`);
|
|
127
|
+
const computedStyle = computed(() => ({
|
|
128
|
+
"--modal-index": props.zIndex,
|
|
129
|
+
"--drawer-size": getCssUnitValue(props.size)
|
|
130
|
+
}));
|
|
131
|
+
const isVisible = useModelValue(props, emits);
|
|
132
|
+
const configProvider = useConfigProvider();
|
|
126
133
|
const { closeOverlayIfNeed, onOverlayClick } = useOverlayDialog({
|
|
127
134
|
props,
|
|
128
135
|
emits,
|
|
@@ -131,11 +138,6 @@ const { closeOverlayIfNeed, onOverlayClick } = useOverlayDialog({
|
|
|
131
138
|
isVisible.value = false;
|
|
132
139
|
}
|
|
133
140
|
});
|
|
134
|
-
const transitionName = computed(() => `pxd-transition--drawer-${ensurePosition.value}`);
|
|
135
|
-
const computedStyle = computed(() => ({
|
|
136
|
-
"--modal-index": props.zIndex,
|
|
137
|
-
"--drawer-size": getCssUnitValue(props.size)
|
|
138
|
-
}));
|
|
139
141
|
watch(() => isVisible.value, (visible) => {
|
|
140
142
|
emits("visible-change", visible);
|
|
141
143
|
if (visible) {
|
|
@@ -149,7 +151,7 @@ watch(() => isVisible.value, (visible) => {
|
|
|
149
151
|
<template>
|
|
150
152
|
<POverlay
|
|
151
153
|
:model-value="isVisible"
|
|
152
|
-
:
|
|
154
|
+
:z-index="zIndex"
|
|
153
155
|
:close-on-press-escape="closeOnPressEscape"
|
|
154
156
|
@escape="closeOverlayIfNeed"
|
|
155
157
|
@click="onOverlayClick"
|
|
@@ -177,8 +179,8 @@ watch(() => isVisible.value, (visible) => {
|
|
|
177
179
|
v-bind="$attrs"
|
|
178
180
|
>
|
|
179
181
|
<header
|
|
180
|
-
class="pxd-drawer--header px-6 pbs-4 sm:pbs-6
|
|
181
|
-
:class="defaultStyles.headerClass"
|
|
182
|
+
class="pxd-drawer--header px-6 pbs-4 sm:pbs-6 relative shrink-0 empty:hidden"
|
|
183
|
+
:class="[defaultStyles.headerClass, { 'pe-15': closeable }]"
|
|
182
184
|
>
|
|
183
185
|
<slot name="header">
|
|
184
186
|
<h3
|
|
@@ -196,6 +198,19 @@ watch(() => isVisible.value, (visible) => {
|
|
|
196
198
|
</slot>
|
|
197
199
|
</div>
|
|
198
200
|
</slot>
|
|
201
|
+
|
|
202
|
+
<PButton
|
|
203
|
+
v-if="closeable"
|
|
204
|
+
variant="ghost"
|
|
205
|
+
size="sm"
|
|
206
|
+
icon
|
|
207
|
+
class="top-4 right-6 sm:top-6 size-7 absolute"
|
|
208
|
+
:aria-label="configProvider.locale.interaction.close"
|
|
209
|
+
:title="configProvider.locale.interaction.close"
|
|
210
|
+
@click="closeOverlayIfNeed"
|
|
211
|
+
>
|
|
212
|
+
<CrossIcon class="size-3" aria-hidden="true" />
|
|
213
|
+
</PButton>
|
|
199
214
|
</header>
|
|
200
215
|
|
|
201
216
|
<div
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { BasePosition, ComponentClass, ComponentLabel } from '../../types/shared'
|
|
1
|
+
import type { BasePosition, ComponentClass, ComponentLabel } from '../../types/shared/props'
|
|
2
2
|
|
|
3
3
|
export interface DrawerProps {
|
|
4
4
|
zIndex?: number
|
|
@@ -9,7 +9,6 @@ export interface DrawerProps {
|
|
|
9
9
|
position?: BasePosition
|
|
10
10
|
modelValue?: boolean
|
|
11
11
|
loadingText?: string
|
|
12
|
-
appendToBody?: boolean
|
|
13
12
|
wrapperClass?: ComponentClass
|
|
14
13
|
contentClass?: ComponentClass
|
|
15
14
|
autoFocusElement?: string | boolean
|
|
@@ -17,6 +16,7 @@ export interface DrawerProps {
|
|
|
17
16
|
defaultFooterStyle?: boolean
|
|
18
17
|
closeOnPressEscape?: boolean
|
|
19
18
|
closeOnClickOverlay?: boolean
|
|
19
|
+
closeable?: boolean
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
export interface DrawerEmits {
|
|
@@ -4,6 +4,7 @@ import { useModelValue } from "../../composables/_internal/use-model-value.js";
|
|
|
4
4
|
import { createTailwindVariant, useTailwindVariant } from "../../composables/_internal/use-tailwind-variant.js";
|
|
5
5
|
import { useConfigProvider } from "../../contexts/config-provider.js";
|
|
6
6
|
import { cachedOn, off, once, throttleByRaf } from "../../utils/event.js";
|
|
7
|
+
import { getColorByThreshold } from "../../utils/helper.js";
|
|
7
8
|
defineOptions({
|
|
8
9
|
name: "PEffortSlider",
|
|
9
10
|
inheritAttrs: false,
|
|
@@ -139,21 +140,14 @@ const tickList = computed(() => {
|
|
|
139
140
|
};
|
|
140
141
|
});
|
|
141
142
|
});
|
|
142
|
-
const
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
return {
|
|
153
|
-
width: `${percentage.value}%`,
|
|
154
|
-
background: color
|
|
155
|
-
};
|
|
156
|
-
});
|
|
143
|
+
const fillColor = computed(() => getColorByThreshold(currentIndex.value, {
|
|
144
|
+
0: PRIMARY_COLOR,
|
|
145
|
+
...props.colors
|
|
146
|
+
}));
|
|
147
|
+
const fillStyle = computed(() => ({
|
|
148
|
+
backgroundColor: fillColor.value,
|
|
149
|
+
clipPath: `inset(0 ${100 - percentage.value}% 0 0)`
|
|
150
|
+
}));
|
|
157
151
|
function setValue(index) {
|
|
158
152
|
const option = optionList.value[index];
|
|
159
153
|
if (!option) {
|
|
@@ -301,15 +295,15 @@ onBeforeUnmount(() => {
|
|
|
301
295
|
@pointerdown.prevent="onTrackPointerdown"
|
|
302
296
|
>
|
|
303
297
|
<div
|
|
304
|
-
class="pxd-effort-slider--fill inset-
|
|
305
|
-
:class="{ 'motion-safe:transition-
|
|
298
|
+
class="pxd-effort-slider--fill inset-0 pointer-events-none absolute rounded-full motion-safe:transition-[clip-path,background-color]"
|
|
299
|
+
:class="{ 'motion-safe:transition-colors': dragging || focused }"
|
|
306
300
|
:style="fillStyle"
|
|
307
301
|
/>
|
|
308
302
|
|
|
309
303
|
<span
|
|
310
304
|
v-for="tick in tickList"
|
|
311
305
|
:key="tick.level"
|
|
312
|
-
class="pxd-effort-slider--tick size-1 pointer-events-none absolute top-1/2 -translate-x-1/2 -translate-y-1/2 rounded-full bg-gray-
|
|
306
|
+
class="pxd-effort-slider--tick size-1 pointer-events-none absolute top-1/2 -translate-x-1/2 -translate-y-1/2 rounded-full bg-gray-alpha-200"
|
|
313
307
|
:style="{ left: `${tick.percentage}%` }"
|
|
314
308
|
/>
|
|
315
309
|
|
|
@@ -7,9 +7,9 @@ declare const __VLS_export: import("vue").DefineComponent<EllipsisTextProps, {
|
|
|
7
7
|
}, string, import("vue").PublicProps, Readonly<EllipsisTextProps> & Readonly<{
|
|
8
8
|
onToggle?: ((expanded: boolean) => any) | undefined;
|
|
9
9
|
}>, {
|
|
10
|
-
|
|
11
|
-
position: "start" | "middle" | "end";
|
|
10
|
+
position: "start" | "end" | "middle";
|
|
12
11
|
dots: string;
|
|
12
|
+
rows: number;
|
|
13
13
|
moreText: string;
|
|
14
14
|
lessText: string;
|
|
15
15
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
@@ -65,6 +65,80 @@ const maxRows = computed(() => {
|
|
|
65
65
|
const rows = Number(props.rows ?? 1);
|
|
66
66
|
return Number.isFinite(rows) && rows > 0 ? Math.floor(rows) : 1;
|
|
67
67
|
});
|
|
68
|
+
const updateEllipsis = scheduleByRaf(async () => {
|
|
69
|
+
if (isServer()) {
|
|
70
|
+
return;
|
|
71
|
+
}
|
|
72
|
+
const container = containerRef.value;
|
|
73
|
+
if (!container || !container.isConnected) {
|
|
74
|
+
return;
|
|
75
|
+
}
|
|
76
|
+
await nextTick();
|
|
77
|
+
const sourceText = props.text ?? "";
|
|
78
|
+
if (container.clientWidth <= 0) {
|
|
79
|
+
ellipsisText.value = sourceText;
|
|
80
|
+
isOverflow.value = false;
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
if (isExpanded.value || !sourceText) {
|
|
84
|
+
ellipsisText.value = sourceText;
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
const style = getStyle(textRef.value ?? container);
|
|
88
|
+
const lineHeight = getLineHeightPx(style);
|
|
89
|
+
if (lineHeight <= 0) {
|
|
90
|
+
ellipsisText.value = sourceText;
|
|
91
|
+
isOverflow.value = false;
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
const availableWidth = getAvailableWidth(container);
|
|
95
|
+
const textFont = getFontShorthand(style);
|
|
96
|
+
if (measureLineCount(sourceText, textFont, availableWidth) <= maxRows.value) {
|
|
97
|
+
ellipsisText.value = sourceText;
|
|
98
|
+
isOverflow.value = false;
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
isOverflow.value = true;
|
|
102
|
+
const actionText = props.action ? props.moreText : "";
|
|
103
|
+
const actionFont = actionRef.value ? getFontShorthand(getStyle(actionRef.value)) : textFont;
|
|
104
|
+
const dots = props.dots ?? "";
|
|
105
|
+
if (props.position === "end") {
|
|
106
|
+
const prepared = prepareWithSegments(sourceText, textFont);
|
|
107
|
+
const { lines } = layoutWithLines(prepared, availableWidth, lineHeight);
|
|
108
|
+
const baseText = lines.slice(0, maxRows.value).map((l) => l.text).join("");
|
|
109
|
+
const baseChars = [...baseText];
|
|
110
|
+
let low = 0;
|
|
111
|
+
let high = baseChars.length;
|
|
112
|
+
let best = "";
|
|
113
|
+
while (low <= high) {
|
|
114
|
+
const mid = Math.floor((low + high) / 2);
|
|
115
|
+
const candidate = `${joinChars(baseChars, 0, mid)}${dots}`;
|
|
116
|
+
if (measureLineCount(candidate, textFont, availableWidth, actionText, actionFont) <= maxRows.value) {
|
|
117
|
+
best = candidate;
|
|
118
|
+
low = mid + 1;
|
|
119
|
+
} else {
|
|
120
|
+
high = mid - 1;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
ellipsisText.value = best || dots;
|
|
124
|
+
return;
|
|
125
|
+
}
|
|
126
|
+
const chars = [...sourceText];
|
|
127
|
+
let low = 0;
|
|
128
|
+
let high = chars.length;
|
|
129
|
+
let best = "";
|
|
130
|
+
while (low <= high) {
|
|
131
|
+
const mid = Math.floor((low + high) / 2);
|
|
132
|
+
const candidate = buildCandidate(chars, mid, dots, props.position);
|
|
133
|
+
if (measureLineCount(candidate, textFont, availableWidth, actionText, actionFont) <= maxRows.value) {
|
|
134
|
+
best = candidate;
|
|
135
|
+
low = mid + 1;
|
|
136
|
+
} else {
|
|
137
|
+
high = mid - 1;
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
ellipsisText.value = best || dots;
|
|
141
|
+
});
|
|
68
142
|
const computedActionClass = computed(() => {
|
|
69
143
|
return cn("pxd-ellipsis-text--action cursor-pointer whitespace-nowrap text-blue-900", isExpanded.value ? props.lessActionClass : props.moreActionClass);
|
|
70
144
|
});
|
|
@@ -80,6 +154,7 @@ const displayText = computed(() => {
|
|
|
80
154
|
action: props.moreText
|
|
81
155
|
};
|
|
82
156
|
});
|
|
157
|
+
useResizeObserver(containerRef, updateEllipsis);
|
|
83
158
|
function toggleAction() {
|
|
84
159
|
if (!props.action) {
|
|
85
160
|
return;
|
|
@@ -145,80 +220,6 @@ function buildCandidate(chars, keep, dots, position) {
|
|
|
145
220
|
const tailLen = keep - headLen;
|
|
146
221
|
return `${joinChars(chars, 0, headLen)}${dots}${joinChars(chars, chars.length - tailLen, chars.length)}`;
|
|
147
222
|
}
|
|
148
|
-
const updateEllipsis = scheduleByRaf(async () => {
|
|
149
|
-
if (isServer()) {
|
|
150
|
-
return;
|
|
151
|
-
}
|
|
152
|
-
const container = containerRef.value;
|
|
153
|
-
if (!container || !container.isConnected) {
|
|
154
|
-
return;
|
|
155
|
-
}
|
|
156
|
-
await nextTick();
|
|
157
|
-
const sourceText = props.text ?? "";
|
|
158
|
-
if (container.clientWidth <= 0) {
|
|
159
|
-
ellipsisText.value = sourceText;
|
|
160
|
-
isOverflow.value = false;
|
|
161
|
-
return;
|
|
162
|
-
}
|
|
163
|
-
if (isExpanded.value || !sourceText) {
|
|
164
|
-
ellipsisText.value = sourceText;
|
|
165
|
-
return;
|
|
166
|
-
}
|
|
167
|
-
const style = getStyle(textRef.value ?? container);
|
|
168
|
-
const lineHeight = getLineHeightPx(style);
|
|
169
|
-
if (lineHeight <= 0) {
|
|
170
|
-
ellipsisText.value = sourceText;
|
|
171
|
-
isOverflow.value = false;
|
|
172
|
-
return;
|
|
173
|
-
}
|
|
174
|
-
const availableWidth = getAvailableWidth(container);
|
|
175
|
-
const textFont = getFontShorthand(style);
|
|
176
|
-
if (measureLineCount(sourceText, textFont, availableWidth) <= maxRows.value) {
|
|
177
|
-
ellipsisText.value = sourceText;
|
|
178
|
-
isOverflow.value = false;
|
|
179
|
-
return;
|
|
180
|
-
}
|
|
181
|
-
isOverflow.value = true;
|
|
182
|
-
const actionText = props.action ? props.moreText : "";
|
|
183
|
-
const actionFont = actionRef.value ? getFontShorthand(getStyle(actionRef.value)) : textFont;
|
|
184
|
-
const dots = props.dots ?? "";
|
|
185
|
-
if (props.position === "end") {
|
|
186
|
-
const prepared = prepareWithSegments(sourceText, textFont);
|
|
187
|
-
const { lines } = layoutWithLines(prepared, availableWidth, lineHeight);
|
|
188
|
-
const baseText = lines.slice(0, maxRows.value).map((l) => l.text).join("");
|
|
189
|
-
const baseChars = [...baseText];
|
|
190
|
-
let low = 0;
|
|
191
|
-
let high = baseChars.length;
|
|
192
|
-
let best = "";
|
|
193
|
-
while (low <= high) {
|
|
194
|
-
const mid = Math.floor((low + high) / 2);
|
|
195
|
-
const candidate = `${joinChars(baseChars, 0, mid)}${dots}`;
|
|
196
|
-
if (measureLineCount(candidate, textFont, availableWidth, actionText, actionFont) <= maxRows.value) {
|
|
197
|
-
best = candidate;
|
|
198
|
-
low = mid + 1;
|
|
199
|
-
} else {
|
|
200
|
-
high = mid - 1;
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
ellipsisText.value = best || dots;
|
|
204
|
-
return;
|
|
205
|
-
}
|
|
206
|
-
const chars = [...sourceText];
|
|
207
|
-
let low = 0;
|
|
208
|
-
let high = chars.length;
|
|
209
|
-
let best = "";
|
|
210
|
-
while (low <= high) {
|
|
211
|
-
const mid = Math.floor((low + high) / 2);
|
|
212
|
-
const candidate = buildCandidate(chars, mid, dots, props.position);
|
|
213
|
-
if (measureLineCount(candidate, textFont, availableWidth, actionText, actionFont) <= maxRows.value) {
|
|
214
|
-
best = candidate;
|
|
215
|
-
low = mid + 1;
|
|
216
|
-
} else {
|
|
217
|
-
high = mid - 1;
|
|
218
|
-
}
|
|
219
|
-
}
|
|
220
|
-
ellipsisText.value = best || dots;
|
|
221
|
-
});
|
|
222
223
|
watch(() => [
|
|
223
224
|
props.text,
|
|
224
225
|
props.rows,
|
|
@@ -236,7 +237,6 @@ watch(() => [
|
|
|
236
237
|
immediate: true,
|
|
237
238
|
flush: "post"
|
|
238
239
|
});
|
|
239
|
-
useResizeObserver(containerRef, updateEllipsis);
|
|
240
240
|
onBeforeUnmount(() => {
|
|
241
241
|
updateEllipsis.cancel();
|
|
242
242
|
});
|
|
@@ -27,14 +27,14 @@ const props = defineProps({
|
|
|
27
27
|
default: "both"
|
|
28
28
|
}
|
|
29
29
|
});
|
|
30
|
+
const DEFAULT_SIZE = 16;
|
|
31
|
+
const DIFF_THRESHOLD = 16;
|
|
30
32
|
const fader = shallowRef({
|
|
31
33
|
top: false,
|
|
32
34
|
left: false,
|
|
33
35
|
right: false,
|
|
34
36
|
bottom: false
|
|
35
37
|
});
|
|
36
|
-
const DEFAULT_SIZE = 16;
|
|
37
|
-
const DIFF_THRESHOLD = 16;
|
|
38
38
|
const computedStyle = computed(() => ({
|
|
39
39
|
"--fader-color": props.color,
|
|
40
40
|
"--fader-size": getCssUnitValue(props.size)
|
|
@@ -52,8 +52,6 @@ const defaultColors = {
|
|
|
52
52
|
30: "var(--color-amber-800)",
|
|
53
53
|
60: "var(--color-green-700)"
|
|
54
54
|
};
|
|
55
|
-
const configProvider = useConfigProvider();
|
|
56
|
-
const computedSize = computed(() => getFallbackValue(props.size, SIZES, configProvider.size));
|
|
57
55
|
const progress = computed(() => {
|
|
58
56
|
if (props.indeterminate) {
|
|
59
57
|
return 0;
|
|
@@ -117,6 +115,8 @@ const progressColors = computed(() => {
|
|
|
117
115
|
secondary: secondaryColor
|
|
118
116
|
};
|
|
119
117
|
});
|
|
118
|
+
const configProvider = useConfigProvider();
|
|
119
|
+
const computedSize = computed(() => getFallbackValue(props.size, SIZES, configProvider.size));
|
|
120
120
|
</script>
|
|
121
121
|
|
|
122
122
|
<template>
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import type { HintProps, HintStatus } from './types';
|
|
2
|
+
declare var __VLS_10: {
|
|
3
|
+
status: HintStatus;
|
|
4
|
+
}, __VLS_13: {
|
|
5
|
+
status: HintStatus;
|
|
6
|
+
value: unknown;
|
|
7
|
+
error: unknown;
|
|
8
|
+
activeTrigger: HTMLElement | null;
|
|
9
|
+
activeTriggerIndex: number;
|
|
10
|
+
};
|
|
11
|
+
type __VLS_Slots = {} & {
|
|
12
|
+
default?: (props: typeof __VLS_10) => any;
|
|
13
|
+
} & {
|
|
14
|
+
content?: (props: typeof __VLS_13) => any;
|
|
15
|
+
};
|
|
16
|
+
declare const __VLS_base: import("vue").DefineComponent<HintProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
17
|
+
close: () => any;
|
|
18
|
+
}, string, import("vue").PublicProps, Readonly<HintProps> & Readonly<{
|
|
19
|
+
onClose?: (() => any) | undefined;
|
|
20
|
+
}>, {
|
|
21
|
+
duration: number;
|
|
22
|
+
pauseOnHover: boolean;
|
|
23
|
+
position: import("../../types/shared/props.js").ComponentPosition;
|
|
24
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
25
|
+
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
26
|
+
declare const _default: typeof __VLS_export;
|
|
27
|
+
export default _default;
|
|
28
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
29
|
+
new (): {
|
|
30
|
+
$slots: S;
|
|
31
|
+
};
|
|
32
|
+
};
|