pxd 0.0.55 → 0.0.61
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 +3 -3
- 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 +1 -1
- 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 +4 -6
- 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 +3 -2
- 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 +6 -1
- 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 +14 -11
- package/dist/components/popover/index.vue +116 -78
- package/dist/components/popover/types.d.ts +1 -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 -6
- 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 +3 -2
- 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-delay-destroy.d.ts +1 -1
- package/dist/composables/use-focus-trap.d.ts +7 -3
- 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 +4 -7
- 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.d.ts +1 -1
- 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/list.d.ts +1 -1
- package/dist/contexts/radio.d.ts +8 -2
- package/dist/contexts/resizable.d.ts +1 -1
- 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/ref.d.ts +1 -1
- 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,17 +1,32 @@
|
|
|
1
1
|
<script setup>
|
|
2
2
|
import ExternalIcon from "@gdsicon/vue/external";
|
|
3
3
|
import StopIcon from "@gdsicon/vue/stop";
|
|
4
|
+
import { tv } from "tailwind-variants";
|
|
4
5
|
import { computed } from "vue";
|
|
5
|
-
import { useConfigProvider } from "../../
|
|
6
|
+
import { useConfigProvider } from "../../contexts/config-provider";
|
|
6
7
|
import { isExternalLink } from "../../utils/format";
|
|
7
|
-
import { errorVariant } from "./cn";
|
|
8
8
|
defineOptions({
|
|
9
|
-
name: "PError"
|
|
9
|
+
name: "PError",
|
|
10
|
+
inheritAttrs: false
|
|
10
11
|
});
|
|
11
12
|
const props = defineProps({
|
|
12
|
-
size: { type: String, required: false
|
|
13
|
+
size: { type: String, required: false },
|
|
13
14
|
label: { type: [String, Number, Array, null], required: false },
|
|
14
|
-
error: { type:
|
|
15
|
+
error: { type: Object, required: false }
|
|
16
|
+
});
|
|
17
|
+
const errorVariant = tv({
|
|
18
|
+
base: "pxd-error flex text-red-900",
|
|
19
|
+
variants: {
|
|
20
|
+
size: {
|
|
21
|
+
xs: "text-xs [--mt:0.125rem]",
|
|
22
|
+
sm: "text-13px [--mt:0.125rem]",
|
|
23
|
+
md: "text-sm [--mt:0.125rem]",
|
|
24
|
+
lg: "text-base [--mt:0.25rem]"
|
|
25
|
+
}
|
|
26
|
+
},
|
|
27
|
+
defaultVariants: {
|
|
28
|
+
size: "md"
|
|
29
|
+
}
|
|
15
30
|
});
|
|
16
31
|
const configProvider = useConfigProvider();
|
|
17
32
|
const computedClasses = computed(() => {
|
|
@@ -20,7 +35,7 @@ const computedClasses = computed(() => {
|
|
|
20
35
|
</script>
|
|
21
36
|
|
|
22
37
|
<template>
|
|
23
|
-
<div :class="computedClasses">
|
|
38
|
+
<div :class="computedClasses" v-bind="$attrs">
|
|
24
39
|
<StopIcon class="size-4 mr-2 mt-(--mt) shrink-0" />
|
|
25
40
|
|
|
26
41
|
<div class="flex-1 shrink-0">
|
|
@@ -1,6 +1,12 @@
|
|
|
1
|
-
import type { ErrorType } from '../../types/components/error'
|
|
2
1
|
import type { ComponentLabel, ComponentSizeWithXs } from '../../types/shared'
|
|
3
2
|
|
|
3
|
+
export interface ErrorType {
|
|
4
|
+
link?: string
|
|
5
|
+
label?: string
|
|
6
|
+
action?: string
|
|
7
|
+
message: string
|
|
8
|
+
}
|
|
9
|
+
|
|
4
10
|
export interface ErrorProps {
|
|
5
11
|
size?: ComponentSizeWithXs
|
|
6
12
|
label?: ComponentLabel
|
|
@@ -6,12 +6,13 @@ import { getCssUnitValue } from "../../utils/format";
|
|
|
6
6
|
import { unrefElement } from "../../utils/ref";
|
|
7
7
|
import { throttleByRaf } from "../../utils/throttle";
|
|
8
8
|
defineOptions({
|
|
9
|
-
name: "PFader"
|
|
9
|
+
name: "PFader",
|
|
10
|
+
inheritAttrs: false
|
|
10
11
|
});
|
|
11
12
|
const props = defineProps({
|
|
12
13
|
size: { type: Number, required: false },
|
|
13
14
|
color: { type: String, required: false },
|
|
14
|
-
container: { type:
|
|
15
|
+
container: { type: [String, Object], required: false },
|
|
15
16
|
direction: { type: String, required: false, default: "both" }
|
|
16
17
|
});
|
|
17
18
|
const fader = shallowRef({
|
|
@@ -21,7 +22,7 @@ const fader = shallowRef({
|
|
|
21
22
|
bottom: false
|
|
22
23
|
});
|
|
23
24
|
const DEFAULT_SIZE = 16;
|
|
24
|
-
const DIFF_THRESHOLD =
|
|
25
|
+
const DIFF_THRESHOLD = 16;
|
|
25
26
|
const computedStyle = computed(() => ({
|
|
26
27
|
"--fader-color": props.color,
|
|
27
28
|
"--fader-size": getCssUnitValue(props.size)
|
|
@@ -36,7 +37,7 @@ const formattedContainer = computed(() => {
|
|
|
36
37
|
});
|
|
37
38
|
const onContainerScroll = throttleByRaf(() => {
|
|
38
39
|
const container = formattedContainer.value;
|
|
39
|
-
if (!container) {
|
|
40
|
+
if (!container || !container.isConnected) {
|
|
40
41
|
return;
|
|
41
42
|
}
|
|
42
43
|
const { size = DEFAULT_SIZE } = props;
|
|
@@ -59,7 +60,7 @@ watch(
|
|
|
59
60
|
if (!container) {
|
|
60
61
|
return;
|
|
61
62
|
}
|
|
62
|
-
cachedOn(container, "scroll", onContainerScroll);
|
|
63
|
+
cachedOn(container, "scroll", onContainerScroll, { passive: true });
|
|
63
64
|
},
|
|
64
65
|
{ immediate: true }
|
|
65
66
|
);
|
|
@@ -73,22 +74,24 @@ onBeforeUnmount(() => {
|
|
|
73
74
|
aria-hidden="true"
|
|
74
75
|
class="pxd-fader inset-0 pointer-events-none absolute size-full rounded-inherit"
|
|
75
76
|
:style="computedStyle"
|
|
77
|
+
v-bind="$attrs"
|
|
76
78
|
>
|
|
77
79
|
<div
|
|
78
80
|
v-if="['both', 'horizontal'].includes(direction)"
|
|
79
|
-
class="pxd-fader--item horizontal inset-0 absolute rounded-inherit before:default-transition-duration before:default-transition-timing-function"
|
|
81
|
+
class="pxd-fader--item horizontal inset-0 absolute rounded-inherit before:default-transition-duration before:default-transition-timing-function after:default-transition-duration after:default-transition-timing-function"
|
|
80
82
|
:class="{ left: fader.left, right: fader.right }"
|
|
81
83
|
/>
|
|
82
84
|
<div
|
|
83
85
|
v-if="['both', 'vertical'].includes(direction)"
|
|
84
|
-
class="pxd-fader--item vertical inset-0 absolute rounded-inherit before:default-transition-duration before:default-transition-timing-function"
|
|
86
|
+
class="pxd-fader--item vertical inset-0 absolute rounded-inherit before:default-transition-duration before:default-transition-timing-function after:default-transition-duration after:default-transition-timing-function"
|
|
85
87
|
:class="{ top: fader.top, bottom: fader.bottom }"
|
|
86
88
|
/>
|
|
87
89
|
</div>
|
|
88
90
|
</template>
|
|
89
91
|
|
|
90
92
|
<style lang="postcss">
|
|
91
|
-
.pxd-fader--item::before
|
|
93
|
+
.pxd-fader--item::before,
|
|
94
|
+
.pxd-fader--item::after {
|
|
92
95
|
content: '';
|
|
93
96
|
position: absolute;
|
|
94
97
|
border-radius: inherit;
|
|
@@ -103,12 +106,15 @@ onBeforeUnmount(() => {
|
|
|
103
106
|
}
|
|
104
107
|
|
|
105
108
|
.pxd-fader--item.left::before,
|
|
106
|
-
.pxd-fader--item.top::before
|
|
109
|
+
.pxd-fader--item.top::before,
|
|
110
|
+
.pxd-fader--item.right::after,
|
|
111
|
+
.pxd-fader--item.bottom::after {
|
|
107
112
|
opacity: 1;
|
|
108
113
|
}
|
|
109
114
|
|
|
110
115
|
.pxd-fader--item.horizontal {
|
|
111
|
-
&::before
|
|
116
|
+
&::before,
|
|
117
|
+
&::after {
|
|
112
118
|
top: 0;
|
|
113
119
|
width: var(--fader-size, 16px);
|
|
114
120
|
height: 100%;
|
|
@@ -119,10 +125,17 @@ onBeforeUnmount(() => {
|
|
|
119
125
|
--dir: to left;
|
|
120
126
|
--dir-revert: to right;
|
|
121
127
|
}
|
|
128
|
+
|
|
129
|
+
&::after {
|
|
130
|
+
right: 0;
|
|
131
|
+
--dir: to right;
|
|
132
|
+
--dir-revert: to left;
|
|
133
|
+
}
|
|
122
134
|
}
|
|
123
135
|
|
|
124
136
|
.pxd-fader--item.vertical {
|
|
125
|
-
&::before
|
|
137
|
+
&::before,
|
|
138
|
+
&::after {
|
|
126
139
|
left: 0;
|
|
127
140
|
width: 100%;
|
|
128
141
|
height: var(--fader-size, 16px);
|
|
@@ -133,5 +146,11 @@ onBeforeUnmount(() => {
|
|
|
133
146
|
--dir: to top;
|
|
134
147
|
--dir-revert: to bottom;
|
|
135
148
|
}
|
|
149
|
+
|
|
150
|
+
&::after {
|
|
151
|
+
bottom: 0;
|
|
152
|
+
--dir: to bottom;
|
|
153
|
+
--dir-revert: to top;
|
|
154
|
+
}
|
|
136
155
|
}
|
|
137
156
|
</style>
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import type { ComponentDirection } from '../../types/shared
|
|
1
|
+
import type { ComponentDirection } from '../../types/shared'
|
|
2
2
|
|
|
3
3
|
export interface FaderProps {
|
|
4
4
|
size?: number
|
|
5
5
|
color?: string
|
|
6
|
-
container?: string |
|
|
6
|
+
container?: string | object
|
|
7
7
|
direction?: ComponentDirection | 'both'
|
|
8
8
|
}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
<script setup>
|
|
2
2
|
import ChartActivityIcon from "@gdsicon/vue/chart-activity";
|
|
3
3
|
import { computed } from "vue";
|
|
4
|
-
import { useConfigProvider } from "../../
|
|
4
|
+
import { useConfigProvider } from "../../contexts/config-provider";
|
|
5
5
|
import { getColorByThreshold, getFallbackValue } from "../../utils/get";
|
|
6
6
|
defineOptions({
|
|
7
7
|
name: "PGauge",
|
|
8
|
+
inheritAttrs: false,
|
|
8
9
|
model: {
|
|
9
10
|
prop: "modelValue",
|
|
10
11
|
event: "update:modelValue"
|
|
@@ -99,7 +100,11 @@ const progressColors = computed(() => {
|
|
|
99
100
|
</script>
|
|
100
101
|
|
|
101
102
|
<template>
|
|
102
|
-
<div
|
|
103
|
+
<div
|
|
104
|
+
class="pxd-gauge relative size-max"
|
|
105
|
+
:style="`--gauge-size: ${computedSize}px`"
|
|
106
|
+
v-bind="$attrs"
|
|
107
|
+
>
|
|
103
108
|
<svg
|
|
104
109
|
class="pxd-gauge--svg block size-(--gauge-size) -rotate-85 overflow-visible"
|
|
105
110
|
aria-hidden="true"
|
|
@@ -52,7 +52,6 @@ const formattedCols = computed(() => {
|
|
|
52
52
|
});
|
|
53
53
|
const computedClasses = computed(() => {
|
|
54
54
|
return [
|
|
55
|
-
"pxd-grid relative grid max-w-full",
|
|
56
55
|
...Object.keys(formattedRows.value).map(
|
|
57
56
|
(bp) => presetGridRows[bp]
|
|
58
57
|
),
|
|
@@ -71,11 +70,17 @@ const computedStyle = computed(() => {
|
|
|
71
70
|
</script>
|
|
72
71
|
|
|
73
72
|
<template>
|
|
74
|
-
<div
|
|
75
|
-
<
|
|
73
|
+
<div class="pxd-grid relative w-full max-w-full" v-bind="$attrs">
|
|
74
|
+
<section
|
|
75
|
+
class="pxd-grid-section [container-type:inline-size] grid h-full max-h-inherit min-h-inherit w-full max-w-inherit min-w-inherit"
|
|
76
|
+
:class="computedClasses"
|
|
77
|
+
:style="computedStyle"
|
|
78
|
+
>
|
|
79
|
+
<slot />
|
|
80
|
+
</section>
|
|
76
81
|
</div>
|
|
77
82
|
</template>
|
|
78
83
|
|
|
79
84
|
<style>
|
|
80
|
-
.pxd-grid.debug{--grid-line-color:var(--color-amber-400);background-image:linear-gradient(to right,var(--grid-line-color) 0 1px,transparent 1px 100%),linear-gradient(to bottom,var(--grid-line-color) 0 1px,transparent 1px 100%),linear-gradient(to right,transparent calc(100% - 1px),var(--grid-line-color) 0),linear-gradient(to bottom,transparent calc(100% - 1px),var(--grid-line-color) 0);background-origin:padding-box;background-repeat:repeat,repeat,no-repeat,no-repeat;background-size:calc(100%/var(--cols-count)) 100%,100% calc(100%/var(--rows-count)),100% 100%,100% 100%}
|
|
85
|
+
.pxd-grid-section.debug{--grid-line-color:var(--color-amber-400);background-image:linear-gradient(to right,var(--grid-line-color) 0 1px,transparent 1px 100%),linear-gradient(to bottom,var(--grid-line-color) 0 1px,transparent 1px 100%),linear-gradient(to right,transparent calc(100% - 1px),var(--grid-line-color) 0),linear-gradient(to bottom,transparent calc(100% - 1px),var(--grid-line-color) 0);background-origin:padding-box;background-repeat:repeat,repeat,no-repeat,no-repeat;background-size:calc(100%/var(--cols-count)) 100%,100% calc(100%/var(--rows-count)),100% 100%,100% 100%}
|
|
81
86
|
</style>
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
import { computed } from "vue";
|
|
3
3
|
import { getResponsiveValue } from "../../utils/responsive";
|
|
4
4
|
defineOptions({
|
|
5
|
-
name: "PGridItem"
|
|
5
|
+
name: "PGridItem",
|
|
6
|
+
inheritAttrs: false
|
|
6
7
|
});
|
|
7
8
|
const props = defineProps({
|
|
8
9
|
row: { type: [String, Number, Object], required: false },
|
|
@@ -27,7 +28,9 @@ const formattedRow = computed(() => {
|
|
|
27
28
|
return getResponsiveValue(
|
|
28
29
|
row,
|
|
29
30
|
(typeof row === "object" ? row.xs : row) ?? "auto",
|
|
30
|
-
(acc, bp, value) =>
|
|
31
|
+
(acc, bp, value) => {
|
|
32
|
+
acc[`--${bp}-row`] = value;
|
|
33
|
+
}
|
|
31
34
|
);
|
|
32
35
|
});
|
|
33
36
|
const formattedCol = computed(() => {
|
|
@@ -35,16 +38,16 @@ const formattedCol = computed(() => {
|
|
|
35
38
|
return getResponsiveValue(
|
|
36
39
|
column,
|
|
37
40
|
(typeof column === "object" ? column.xs : column) ?? "auto",
|
|
38
|
-
(acc, bp, value) =>
|
|
41
|
+
(acc, bp, value) => {
|
|
42
|
+
acc[`--${bp}-col`] = value;
|
|
43
|
+
}
|
|
39
44
|
);
|
|
40
45
|
});
|
|
41
46
|
const computedClasses = computed(() => {
|
|
42
|
-
|
|
43
|
-
classes.push(
|
|
47
|
+
return [
|
|
44
48
|
...Object.keys(formattedRow.value).map((bp) => presetGridRow[bp]),
|
|
45
49
|
...Object.keys(formattedCol.value).map((bp) => presetGridCol[bp])
|
|
46
|
-
);
|
|
47
|
-
return classes.join(" ");
|
|
50
|
+
].join(" ");
|
|
48
51
|
});
|
|
49
52
|
const gridItemStyle = computed(() => {
|
|
50
53
|
return {
|
|
@@ -55,7 +58,12 @@ const gridItemStyle = computed(() => {
|
|
|
55
58
|
</script>
|
|
56
59
|
|
|
57
60
|
<template>
|
|
58
|
-
<div
|
|
61
|
+
<div
|
|
62
|
+
class="pxd-grid-item overflow-hidden"
|
|
63
|
+
:class="computedClasses"
|
|
64
|
+
:style="gridItemStyle"
|
|
65
|
+
v-bind="$attrs"
|
|
66
|
+
>
|
|
59
67
|
<slot />
|
|
60
68
|
</div>
|
|
61
69
|
</template>
|
|
@@ -10,15 +10,15 @@ type __VLS_Slots = {} & {
|
|
|
10
10
|
declare const __VLS_base: import("vue").DefineComponent<HoldButtonProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
11
11
|
pointerdown: (args_0: PointerEvent) => any;
|
|
12
12
|
pointerup: (args_0: PointerEvent) => any;
|
|
13
|
+
finished: (args_0: boolean) => any;
|
|
13
14
|
confirm: () => any;
|
|
14
15
|
canceled: () => any;
|
|
15
|
-
finished: (args_0: boolean) => any;
|
|
16
16
|
}, string, import("vue").PublicProps, Readonly<HoldButtonProps> & Readonly<{
|
|
17
17
|
onPointerdown?: ((args_0: PointerEvent) => any) | undefined;
|
|
18
18
|
onPointerup?: ((args_0: PointerEvent) => any) | undefined;
|
|
19
|
+
onFinished?: ((args_0: boolean) => any) | undefined;
|
|
19
20
|
onConfirm?: (() => any) | undefined;
|
|
20
21
|
onCanceled?: (() => any) | undefined;
|
|
21
|
-
onFinished?: ((args_0: boolean) => any) | undefined;
|
|
22
22
|
}>, {
|
|
23
23
|
durations: number | string;
|
|
24
24
|
vibrate: boolean;
|
|
@@ -7,12 +7,12 @@ export { default as Book } from './book/index.vue';
|
|
|
7
7
|
export { default as Browser } from './browser/index.vue';
|
|
8
8
|
export { default as Button } from './button/index.vue';
|
|
9
9
|
export { default as Carousel } from './carousel/index.vue';
|
|
10
|
-
export { default as
|
|
10
|
+
export { default as CarouselItem } from './carousel-item/index.vue';
|
|
11
11
|
export { default as Checkbox } from './checkbox/index.vue';
|
|
12
12
|
export { default as CheckboxGroup } from './checkbox-group/index.vue';
|
|
13
13
|
export { default as Chip } from './chip/index.vue';
|
|
14
14
|
export { default as Choicebox } from './choicebox/index.vue';
|
|
15
|
-
export { default as
|
|
15
|
+
export { default as ChoiceboxItem } from './choicebox-item/index.vue';
|
|
16
16
|
export { default as Collapse } from './collapse/index.vue';
|
|
17
17
|
export { default as CollapseGroup } from './collapse-group/index.vue';
|
|
18
18
|
export { default as CommandMenu } from './command-menu/index.vue';
|
|
@@ -22,6 +22,7 @@ export { default as Countdown } from './countdown/index.vue';
|
|
|
22
22
|
export { default as DashLine } from './dash-line/index.vue';
|
|
23
23
|
export { default as Description } from './description/index.vue';
|
|
24
24
|
export { default as Drawer } from './drawer/index.vue';
|
|
25
|
+
export { default as EllipsisText } from './ellipsis-text/index.vue';
|
|
25
26
|
export { default as EmptyState } from './empty-state/index.vue';
|
|
26
27
|
export { default as Error } from './error/index.vue';
|
|
27
28
|
export { default as Fader } from './fader/index.vue';
|
|
@@ -53,6 +54,7 @@ export { default as PinInput } from './pin-input/index.vue';
|
|
|
53
54
|
export { default as Placeholder } from './placeholder/index.vue';
|
|
54
55
|
export { default as Popover } from './popover/index.vue';
|
|
55
56
|
export { default as Progress } from './progress/index.vue';
|
|
57
|
+
export { default as ProjectBanner } from './project-banner/index.vue';
|
|
56
58
|
export { default as Radio } from './radio/index.vue';
|
|
57
59
|
export { default as RadioGroup } from './radio-group/index.vue';
|
|
58
60
|
export { default as Resizable } from './resizable/index.vue';
|
|
@@ -66,12 +68,14 @@ export { default as Spinner } from './spinner/index.vue';
|
|
|
66
68
|
export { default as Stack } from './stack/index.vue';
|
|
67
69
|
export { default as StatusDot } from './status-dot/index.vue';
|
|
68
70
|
export { default as Switch } from './switch/index.vue';
|
|
69
|
-
export { default as
|
|
71
|
+
export { default as SwitchItem } from './switch-item/index.vue';
|
|
70
72
|
export { default as Teleport } from './teleport/index.vue';
|
|
71
73
|
export { default as Text } from './text/index.vue';
|
|
72
74
|
export { default as Textarea } from './textarea/index.vue';
|
|
73
75
|
export { default as ThemeSwitcher } from './theme-switcher/index.vue';
|
|
74
76
|
export { default as TimePicker } from './time-picker/index.vue';
|
|
75
77
|
export { default as Toggle } from './toggle/index.vue';
|
|
78
|
+
export { default as ToggleButton } from './toggle-button/index.vue';
|
|
79
|
+
export { default as ToggleButtonGroup } from './toggle-button-group/index.vue';
|
|
76
80
|
export { default as Tooltip } from './tooltip/index.vue';
|
|
77
81
|
export { default as VirtualList } from './virtual-list/index.vue';
|
package/dist/components/index.js
CHANGED
|
@@ -7,12 +7,12 @@ export { default as Book } from "./book/index.vue";
|
|
|
7
7
|
export { default as Browser } from "./browser/index.vue";
|
|
8
8
|
export { default as Button } from "./button/index.vue";
|
|
9
9
|
export { default as Carousel } from "./carousel/index.vue";
|
|
10
|
-
export { default as
|
|
10
|
+
export { default as CarouselItem } from "./carousel-item/index.vue";
|
|
11
11
|
export { default as Checkbox } from "./checkbox/index.vue";
|
|
12
12
|
export { default as CheckboxGroup } from "./checkbox-group/index.vue";
|
|
13
13
|
export { default as Chip } from "./chip/index.vue";
|
|
14
14
|
export { default as Choicebox } from "./choicebox/index.vue";
|
|
15
|
-
export { default as
|
|
15
|
+
export { default as ChoiceboxItem } from "./choicebox-item/index.vue";
|
|
16
16
|
export { default as Collapse } from "./collapse/index.vue";
|
|
17
17
|
export { default as CollapseGroup } from "./collapse-group/index.vue";
|
|
18
18
|
export { default as CommandMenu } from "./command-menu/index.vue";
|
|
@@ -22,6 +22,7 @@ export { default as Countdown } from "./countdown/index.vue";
|
|
|
22
22
|
export { default as DashLine } from "./dash-line/index.vue";
|
|
23
23
|
export { default as Description } from "./description/index.vue";
|
|
24
24
|
export { default as Drawer } from "./drawer/index.vue";
|
|
25
|
+
export { default as EllipsisText } from "./ellipsis-text/index.vue";
|
|
25
26
|
export { default as EmptyState } from "./empty-state/index.vue";
|
|
26
27
|
export { default as Error } from "./error/index.vue";
|
|
27
28
|
export { default as Fader } from "./fader/index.vue";
|
|
@@ -53,6 +54,7 @@ export { default as PinInput } from "./pin-input/index.vue";
|
|
|
53
54
|
export { default as Placeholder } from "./placeholder/index.vue";
|
|
54
55
|
export { default as Popover } from "./popover/index.vue";
|
|
55
56
|
export { default as Progress } from "./progress/index.vue";
|
|
57
|
+
export { default as ProjectBanner } from "./project-banner/index.vue";
|
|
56
58
|
export { default as Radio } from "./radio/index.vue";
|
|
57
59
|
export { default as RadioGroup } from "./radio-group/index.vue";
|
|
58
60
|
export { default as Resizable } from "./resizable/index.vue";
|
|
@@ -66,12 +68,14 @@ export { default as Spinner } from "./spinner/index.vue";
|
|
|
66
68
|
export { default as Stack } from "./stack/index.vue";
|
|
67
69
|
export { default as StatusDot } from "./status-dot/index.vue";
|
|
68
70
|
export { default as Switch } from "./switch/index.vue";
|
|
69
|
-
export { default as
|
|
71
|
+
export { default as SwitchItem } from "./switch-item/index.vue";
|
|
70
72
|
export { default as Teleport } from "./teleport/index.vue";
|
|
71
73
|
export { default as Text } from "./text/index.vue";
|
|
72
74
|
export { default as Textarea } from "./textarea/index.vue";
|
|
73
75
|
export { default as ThemeSwitcher } from "./theme-switcher/index.vue";
|
|
74
76
|
export { default as TimePicker } from "./time-picker/index.vue";
|
|
75
77
|
export { default as Toggle } from "./toggle/index.vue";
|
|
78
|
+
export { default as ToggleButton } from "./toggle-button/index.vue";
|
|
79
|
+
export { default as ToggleButtonGroup } from "./toggle-button-group/index.vue";
|
|
76
80
|
export { default as Tooltip } from "./tooltip/index.vue";
|
|
77
81
|
export { default as VirtualList } from "./virtual-list/index.vue";
|
|
@@ -17,29 +17,29 @@ declare const __VLS_base: import("vue").DefineComponent<InputProps, {
|
|
|
17
17
|
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
18
18
|
input: (args_0: string) => any;
|
|
19
19
|
click: (args_0: MouseEvent) => any;
|
|
20
|
-
blur: (args_0: FocusEvent) => any;
|
|
21
20
|
change: (args_0: string, args_1: Event) => any;
|
|
21
|
+
"update:modelValue": (args_0: string) => any;
|
|
22
|
+
keydown: (args_0: KeyboardEvent) => any;
|
|
23
|
+
blur: (args_0: FocusEvent) => any;
|
|
22
24
|
compositionend: (args_0: CompositionEvent) => any;
|
|
23
25
|
compositionstart: (args_0: CompositionEvent) => any;
|
|
24
26
|
compositionupdate: (args_0: CompositionEvent) => any;
|
|
25
27
|
focus: (args_0: FocusEvent) => any;
|
|
26
|
-
keydown: (args_0: KeyboardEvent) => any;
|
|
27
|
-
"update:modelValue": (args_0: string) => any;
|
|
28
28
|
}, string, import("vue").PublicProps, Readonly<InputProps> & Readonly<{
|
|
29
29
|
onInput?: ((args_0: string) => any) | undefined;
|
|
30
30
|
onClick?: ((args_0: MouseEvent) => any) | undefined;
|
|
31
|
-
onBlur?: ((args_0: FocusEvent) => any) | undefined;
|
|
32
31
|
onChange?: ((args_0: string, args_1: Event) => any) | undefined;
|
|
32
|
+
"onUpdate:modelValue"?: ((args_0: string) => any) | undefined;
|
|
33
|
+
onKeydown?: ((args_0: KeyboardEvent) => any) | undefined;
|
|
34
|
+
onBlur?: ((args_0: FocusEvent) => any) | undefined;
|
|
33
35
|
onCompositionend?: ((args_0: CompositionEvent) => any) | undefined;
|
|
34
36
|
onCompositionstart?: ((args_0: CompositionEvent) => any) | undefined;
|
|
35
37
|
onCompositionupdate?: ((args_0: CompositionEvent) => any) | undefined;
|
|
36
38
|
onFocus?: ((args_0: FocusEvent) => any) | undefined;
|
|
37
|
-
onKeydown?: ((args_0: KeyboardEvent) => any) | undefined;
|
|
38
|
-
"onUpdate:modelValue"?: ((args_0: string) => any) | undefined;
|
|
39
39
|
}>, {
|
|
40
40
|
align: "left" | "center" | "right";
|
|
41
|
-
|
|
42
|
-
|
|
41
|
+
defaultPrefixStyle: boolean;
|
|
42
|
+
defaultSuffixStyle: boolean;
|
|
43
43
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
|
|
44
44
|
declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
|
|
45
45
|
declare const _default: typeof __VLS_export;
|
|
@@ -2,13 +2,13 @@
|
|
|
2
2
|
import CrossIcon from "@gdsicon/vue/cross";
|
|
3
3
|
import EyeIcon from "@gdsicon/vue/eye";
|
|
4
4
|
import EyeOffIcon from "@gdsicon/vue/eye-off";
|
|
5
|
+
import { tv } from "tailwind-variants";
|
|
5
6
|
import { computed, shallowRef } from "vue";
|
|
6
|
-
import { useConfigProvider } from "../../composables/use-config-provider-context";
|
|
7
7
|
import { useModelValue } from "../../composables/use-model-value";
|
|
8
|
+
import { useConfigProvider } from "../../contexts/config-provider";
|
|
8
9
|
import { NOOP } from "../../utils/event";
|
|
9
10
|
import { isTruthyProp } from "../../utils/format";
|
|
10
11
|
import { getUniqueId } from "../../utils/uid";
|
|
11
|
-
import { inputVariant } from "./cn";
|
|
12
12
|
defineOptions({
|
|
13
13
|
name: "PInput",
|
|
14
14
|
inheritAttrs: false,
|
|
@@ -18,7 +18,7 @@ defineOptions({
|
|
|
18
18
|
}
|
|
19
19
|
});
|
|
20
20
|
const props = defineProps({
|
|
21
|
-
size: { type:
|
|
21
|
+
size: { type: String, required: false },
|
|
22
22
|
error: { type: [Boolean, String], required: false },
|
|
23
23
|
min: { type: [Number, String], required: false },
|
|
24
24
|
max: { type: [Number, String], required: false },
|
|
@@ -26,23 +26,57 @@ const props = defineProps({
|
|
|
26
26
|
readonly: { type: Boolean, required: false },
|
|
27
27
|
disabled: { type: Boolean, required: false },
|
|
28
28
|
password: { type: Boolean, required: false },
|
|
29
|
-
required: { type: Boolean, required: false },
|
|
30
29
|
autofocus: { type: Boolean, required: false },
|
|
31
|
-
inputType: { type:
|
|
32
|
-
inputmode: { type:
|
|
30
|
+
inputType: { type: String, required: false },
|
|
31
|
+
inputmode: { type: String, required: false },
|
|
33
32
|
minlength: { type: [Number, String], required: false },
|
|
34
33
|
maxlength: { type: [Number, String], required: false },
|
|
35
34
|
clearable: { type: Boolean, required: false },
|
|
36
|
-
clearValue: { type: null, required: false },
|
|
37
|
-
modelValue: { type: null, required: false },
|
|
35
|
+
clearValue: { type: [String, Number, null], required: false },
|
|
36
|
+
modelValue: { type: [String, Number, null], required: false },
|
|
38
37
|
placeholder: { type: String, required: false },
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
38
|
+
prefixClass: { type: [String, Array, Object], required: false },
|
|
39
|
+
suffixClass: { type: [String, Array, Object], required: false },
|
|
40
|
+
selectOnFocus: { type: Boolean, required: false },
|
|
41
|
+
defaultPrefixStyle: { type: Boolean, required: false, default: true },
|
|
42
|
+
defaultSuffixStyle: { type: Boolean, required: false, default: true }
|
|
44
43
|
});
|
|
45
44
|
const emits = defineEmits(["click", "input", "change", "focus", "blur", "keydown", "update:modelValue", "compositionstart", "compositionupdate", "compositionend"]);
|
|
45
|
+
const inputVariant = tv({
|
|
46
|
+
base: "pxd-input pxd-input--border group relative flex w-full max-w-full items-center overflow-hidden bg-background-100 data-[disabled=true]:cursor-not-allowed data-[disabled=true]:bg-gray-100 motion-safe:transition-all",
|
|
47
|
+
variants: {
|
|
48
|
+
size: {
|
|
49
|
+
xs: "h-6 text-xs rounded-sm",
|
|
50
|
+
sm: "h-7.5 text-sm rounded-md",
|
|
51
|
+
md: "h-9 text-sm rounded-md",
|
|
52
|
+
lg: "h-10 text-base rounded-lg"
|
|
53
|
+
},
|
|
54
|
+
align: {
|
|
55
|
+
left: "text-left",
|
|
56
|
+
center: "text-center",
|
|
57
|
+
right: "text-right"
|
|
58
|
+
},
|
|
59
|
+
disabled: {
|
|
60
|
+
true: "is-disabled",
|
|
61
|
+
false: ""
|
|
62
|
+
},
|
|
63
|
+
readonly: {
|
|
64
|
+
true: "is-readonly",
|
|
65
|
+
false: ""
|
|
66
|
+
},
|
|
67
|
+
error: {
|
|
68
|
+
true: "is-error",
|
|
69
|
+
false: ""
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
defaultVariants: {
|
|
73
|
+
size: "md",
|
|
74
|
+
align: "left",
|
|
75
|
+
disabled: false,
|
|
76
|
+
readonly: false,
|
|
77
|
+
error: false
|
|
78
|
+
}
|
|
79
|
+
});
|
|
46
80
|
const uniqueId = getUniqueId();
|
|
47
81
|
const inputRef = shallowRef();
|
|
48
82
|
const configProvider = useConfigProvider();
|
|
@@ -150,7 +184,7 @@ defineExpose({
|
|
|
150
184
|
v-if="$slots.prefix"
|
|
151
185
|
class="pxd-input--prefix text-sm flex h-full items-center text-foreground-secondary"
|
|
152
186
|
:class="[
|
|
153
|
-
{ 'px-3 rounded-l-inherit border-r border-gray-300 bg-background-200':
|
|
187
|
+
{ 'px-3 rounded-l-inherit border-r border-gray-300 bg-background-200': defaultPrefixStyle },
|
|
154
188
|
prefixClass
|
|
155
189
|
]"
|
|
156
190
|
@pointerdown.prevent="NOOP"
|
|
@@ -161,7 +195,7 @@ defineExpose({
|
|
|
161
195
|
<input
|
|
162
196
|
:id="uniqueId"
|
|
163
197
|
ref="inputRef"
|
|
164
|
-
class="px-3 py-0 file:font-medium size-full appearance-none rounded-
|
|
198
|
+
class="px-3 py-0 file:font-medium size-full appearance-none rounded-none border-none bg-transparent [text-align:inherit] font-inherit outline-none select-auto file:border-0 file:bg-transparent placeholder:text-gray-600 placeholder:select-none read-only:cursor-default disabled:cursor-not-allowed disabled:text-gray-700 disabled:placeholder:text-gray-500"
|
|
165
199
|
autocorrect="off"
|
|
166
200
|
autocomplete="off"
|
|
167
201
|
autocapitalize="off"
|
|
@@ -171,7 +205,6 @@ defineExpose({
|
|
|
171
205
|
:value="modelValue"
|
|
172
206
|
:readonly="readonly"
|
|
173
207
|
:disabled="disabled"
|
|
174
|
-
:required="required"
|
|
175
208
|
:inputmode="inputmode"
|
|
176
209
|
:minlength="minlength"
|
|
177
210
|
:maxlength="maxlength"
|
|
@@ -192,12 +225,12 @@ defineExpose({
|
|
|
192
225
|
v-if="password || clearable"
|
|
193
226
|
v-show="modelValue"
|
|
194
227
|
:class="{ 'pr-2': password && clearable }"
|
|
195
|
-
class="pxd-input--icon top-0 right-0 gap-1 flex aspect-square h-full
|
|
228
|
+
class="pxd-input--icon top-0 right-0 gap-1 flex aspect-square h-full items-center justify-center rounded-r-inherit text-foreground-secondary"
|
|
196
229
|
@pointerdown.prevent="NOOP"
|
|
197
230
|
>
|
|
198
231
|
<button
|
|
199
232
|
v-if="password"
|
|
200
|
-
class="p-1 appearance-none rounded-sm font-inherit self-focus-ring outline-none hover:bg-background-hover hover:text-foreground active:bg-background-active motion-safe:transition-colors"
|
|
233
|
+
class="p-1 cursor-pointer appearance-none rounded-sm font-inherit self-focus-ring outline-none hover:bg-background-hover hover:text-foreground active:bg-background-active motion-safe:transition-colors"
|
|
201
234
|
@click.stop.prevent="toggleType"
|
|
202
235
|
>
|
|
203
236
|
<EyeOffIcon v-if="isPasswordVisible" class="size-3 pointer-events-none" />
|
|
@@ -205,7 +238,7 @@ defineExpose({
|
|
|
205
238
|
</button>
|
|
206
239
|
<button
|
|
207
240
|
v-if="clearable"
|
|
208
|
-
class="p-1 appearance-none rounded-sm font-inherit self-focus-ring outline-none hover:bg-background-hover hover:text-foreground active:bg-background-active motion-safe:transition-colors"
|
|
241
|
+
class="p-1 cursor-pointer appearance-none rounded-sm font-inherit self-focus-ring outline-none hover:bg-background-hover hover:text-foreground active:bg-background-active motion-safe:transition-colors"
|
|
209
242
|
@click.stop.prevent="clear"
|
|
210
243
|
>
|
|
211
244
|
<CrossIcon class="size-3 pointer-events-none" />
|
|
@@ -216,7 +249,7 @@ defineExpose({
|
|
|
216
249
|
v-if="$slots.suffix"
|
|
217
250
|
class="pxd-input--suffix text-sm flex h-full items-center text-foreground-secondary"
|
|
218
251
|
:class="[
|
|
219
|
-
{ 'px-3 rounded-r-inherit border-l border-gray-300 bg-background-200':
|
|
252
|
+
{ 'px-3 rounded-r-inherit border-l border-gray-300 bg-background-200': defaultSuffixStyle },
|
|
220
253
|
suffixClass
|
|
221
254
|
]"
|
|
222
255
|
@pointerdown.prevent="NOOP"
|
|
@@ -227,5 +260,5 @@ defineExpose({
|
|
|
227
260
|
</template>
|
|
228
261
|
|
|
229
262
|
<style>
|
|
230
|
-
|
|
263
|
+
input:-webkit-autofill,input:-webkit-autofill:active,input:-webkit-autofill:focus,input:-webkit-autofill:hover{--autofill-delay:calc(infinity*1s);-webkit-transition:background-color var(--autofill-delay) ease-in-out 0s,color var(--autofill-delay) ease-in-out 0s;transition:background-color var(--autofill-delay) ease-in-out 0s,color var(--autofill-delay) ease-in-out 0s}
|
|
231
264
|
</style>
|