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.
Files changed (279) hide show
  1. package/README.md +18 -4
  2. package/dist/components/_internal/fragment-container.vue +3 -2
  3. package/dist/components/active-graph/index.d.vue.ts +2 -3
  4. package/dist/components/active-graph/index.vue +23 -16
  5. package/dist/components/active-graph/types.d.ts +4 -3
  6. package/dist/components/avatar/index.vue +19 -10
  7. package/dist/components/avatar/types.d.ts +0 -12
  8. package/dist/components/avatar-group/index.d.vue.ts +2 -2
  9. package/dist/components/avatar-group/index.vue +4 -3
  10. package/dist/components/avatar-group/types.d.ts +11 -0
  11. package/dist/components/badge/index.d.vue.ts +1 -1
  12. package/dist/components/badge/index.vue +47 -3
  13. package/dist/components/badge/types.d.ts +24 -1
  14. package/dist/components/book/index.vue +3 -2
  15. package/dist/components/browser/index.vue +6 -2
  16. package/dist/components/button/index.d.vue.ts +1 -1
  17. package/dist/components/button/index.vue +60 -12
  18. package/dist/components/carousel/index.d.vue.ts +24 -2
  19. package/dist/components/carousel/index.vue +341 -28
  20. package/dist/components/carousel/types.d.ts +2 -2
  21. package/dist/components/carousel-item/index.d.vue.ts +13 -0
  22. package/dist/components/carousel-item/index.vue +49 -0
  23. package/dist/components/checkbox/index.d.vue.ts +1 -5
  24. package/dist/components/checkbox/index.vue +66 -31
  25. package/dist/components/checkbox/types.d.ts +2 -14
  26. package/dist/components/checkbox-group/index.d.vue.ts +2 -7
  27. package/dist/components/checkbox-group/index.vue +11 -29
  28. package/dist/components/checkbox-group/types.d.ts +12 -0
  29. package/dist/components/chip/index.d.vue.ts +1 -1
  30. package/dist/components/chip/index.vue +31 -2
  31. package/dist/components/choicebox/index.d.vue.ts +11 -5
  32. package/dist/components/choicebox/index.vue +36 -54
  33. package/dist/components/choicebox/types.d.ts +11 -18
  34. package/dist/components/choicebox-item/index.d.vue.ts +16 -0
  35. package/dist/components/choicebox-item/index.vue +67 -0
  36. package/dist/components/choicebox-item/types.d.ts +12 -0
  37. package/dist/components/collapse/index.d.vue.ts +5 -4
  38. package/dist/components/collapse/index.vue +47 -30
  39. package/dist/components/collapse/types.d.ts +2 -5
  40. package/dist/components/collapse-group/index.d.vue.ts +2 -4
  41. package/dist/components/collapse-group/index.vue +8 -20
  42. package/dist/components/collapse-group/types.d.ts +6 -0
  43. package/dist/components/command-menu/index.vue +6 -7
  44. package/dist/components/command-menu/types.d.ts +0 -5
  45. package/dist/components/command-menu-group/index.d.vue.ts +1 -1
  46. package/dist/components/command-menu-group/index.vue +3 -2
  47. package/dist/components/command-menu-group/types.d.ts +5 -0
  48. package/dist/components/config-provider/index.d.vue.ts +3 -3
  49. package/dist/components/config-provider/index.vue +6 -4
  50. package/dist/components/countdown/index.vue +3 -2
  51. package/dist/components/countdown/types.d.ts +2 -2
  52. package/dist/components/dash-line/index.vue +3 -1
  53. package/dist/components/description/index.d.vue.ts +1 -1
  54. package/dist/components/description/index.vue +8 -7
  55. package/dist/components/description/types.d.ts +1 -1
  56. package/dist/components/drawer/index.d.vue.ts +3 -2
  57. package/dist/components/drawer/index.vue +20 -15
  58. package/dist/components/drawer/types.d.ts +3 -3
  59. package/dist/components/ellipsis-text/index.d.vue.ts +14 -0
  60. package/dist/components/ellipsis-text/index.vue +242 -0
  61. package/dist/components/ellipsis-text/types.d.ts +14 -0
  62. package/dist/components/empty-state/index.vue +6 -2
  63. package/dist/components/error/index.d.vue.ts +1 -3
  64. package/dist/components/error/index.vue +21 -6
  65. package/dist/components/error/types.d.ts +7 -1
  66. package/dist/components/fader/index.vue +30 -11
  67. package/dist/components/fader/types.d.ts +2 -2
  68. package/dist/components/gauge/index.vue +7 -2
  69. package/dist/components/grid/index.vue +9 -4
  70. package/dist/components/grid/types.d.ts +0 -5
  71. package/dist/components/grid-item/index.d.vue.ts +1 -1
  72. package/dist/components/grid-item/index.vue +16 -8
  73. package/dist/components/grid-item/types.d.ts +6 -0
  74. package/dist/components/hold-button/index.d.vue.ts +2 -2
  75. package/dist/components/hold-button/index.vue +1 -1
  76. package/dist/components/index.d.ts +7 -3
  77. package/dist/components/index.js +7 -3
  78. package/dist/components/input/index.d.vue.ts +8 -8
  79. package/dist/components/input/index.vue +54 -21
  80. package/dist/components/input/types.d.ts +7 -10
  81. package/dist/components/intersection-observer/index.d.vue.ts +0 -1
  82. package/dist/components/intersection-observer/index.vue +12 -3
  83. package/dist/components/kbd/index.vue +1 -1
  84. package/dist/components/link-button/index.d.vue.ts +1 -1
  85. package/dist/components/link-button/index.vue +4 -6
  86. package/dist/components/link-button/types.d.ts +1 -1
  87. package/dist/components/list/index.d.vue.ts +8 -5
  88. package/dist/components/list/index.vue +50 -54
  89. package/dist/components/list/types.d.ts +3 -20
  90. package/dist/components/list-item/index.d.vue.ts +3 -2
  91. package/dist/components/list-item/index.vue +44 -18
  92. package/dist/components/list-item/types.d.ts +15 -0
  93. package/dist/components/loading-bar/index.vue +33 -2
  94. package/dist/components/loading-bar/types.d.ts +1 -1
  95. package/dist/components/loading-dots/index.vue +3 -2
  96. package/dist/components/menu/index.d.vue.ts +5 -2
  97. package/dist/components/menu/index.vue +4 -1
  98. package/dist/components/menu/types.d.ts +5 -0
  99. package/dist/components/message/index.d.vue.ts +11 -8
  100. package/dist/components/message/index.vue +4 -12
  101. package/dist/components/message/types.d.ts +1 -12
  102. package/dist/components/message-item/index.d.vue.ts +1 -3
  103. package/dist/components/message-item/index.vue +13 -7
  104. package/dist/components/message-item/types.d.ts +11 -0
  105. package/dist/components/modal/index.d.vue.ts +3 -2
  106. package/dist/components/modal/index.vue +17 -13
  107. package/dist/components/modal/types.d.ts +3 -3
  108. package/dist/components/noise-background/index.vue +4 -3
  109. package/dist/components/note/index.d.vue.ts +1 -2
  110. package/dist/components/note/index.vue +81 -29
  111. package/dist/components/note/types.d.ts +10 -2
  112. package/dist/components/number-input/index.d.vue.ts +5 -4
  113. package/dist/components/number-input/index.vue +36 -6
  114. package/dist/components/number-input/types.d.ts +2 -0
  115. package/dist/components/overlay/index.vue +1 -1
  116. package/dist/components/overlay/types.d.ts +1 -1
  117. package/dist/components/pagination/index.vue +5 -3
  118. package/dist/components/pin-input/index.d.vue.ts +6 -1
  119. package/dist/components/pin-input/index.vue +60 -23
  120. package/dist/components/pin-input/types.d.ts +0 -4
  121. package/dist/components/placeholder/index.vue +14 -11
  122. package/dist/components/popover/index.vue +116 -78
  123. package/dist/components/popover/types.d.ts +1 -0
  124. package/dist/components/progress/index.d.vue.ts +1 -1
  125. package/dist/components/progress/index.vue +15 -2
  126. package/dist/components/project-banner/index.d.vue.ts +18 -0
  127. package/dist/components/project-banner/index.vue +59 -0
  128. package/dist/components/project-banner/types.d.ts +8 -0
  129. package/dist/components/radio/index.vue +62 -20
  130. package/dist/components/radio/types.d.ts +1 -14
  131. package/dist/components/radio-group/index.d.vue.ts +2 -4
  132. package/dist/components/radio-group/index.vue +11 -16
  133. package/dist/components/radio-group/types.d.ts +12 -0
  134. package/dist/components/resizable/types.d.ts +5 -10
  135. package/dist/components/resizable-handle/index.vue +1 -1
  136. package/dist/components/resizable-panel/index.d.vue.ts +1 -1
  137. package/dist/components/resizable-panel/index.vue +7 -2
  138. package/dist/components/resizable-panel/types.d.ts +4 -0
  139. package/dist/components/scrollable/index.d.vue.ts +29 -0
  140. package/dist/components/scrollable/index.vue +98 -83
  141. package/dist/components/scrollable/types.d.ts +19 -6
  142. package/dist/components/skeleton/index.vue +24 -1
  143. package/dist/components/slider/index.d.vue.ts +6 -6
  144. package/dist/components/slider/index.vue +86 -44
  145. package/dist/components/slider/types.d.ts +1 -1
  146. package/dist/components/snippet/index.vue +28 -2
  147. package/dist/components/spinner/index.vue +4 -2
  148. package/dist/components/stack/index.d.vue.ts +2 -2
  149. package/dist/components/stack/index.vue +35 -3
  150. package/dist/components/stack/types.d.ts +1 -1
  151. package/dist/components/status-dot/index.vue +5 -1
  152. package/dist/components/switch/index.d.vue.ts +10 -1
  153. package/dist/components/switch/index.vue +35 -44
  154. package/dist/components/switch/types.d.ts +4 -12
  155. package/dist/components/switch-item/index.d.vue.ts +14 -0
  156. package/dist/components/switch-item/index.vue +79 -0
  157. package/dist/components/switch-item/types.d.ts +9 -0
  158. package/dist/components/teleport/index.d.vue.ts +1 -1
  159. package/dist/components/teleport/index.vue +1 -1
  160. package/dist/components/teleport/types.d.ts +1 -1
  161. package/dist/components/text/index.d.vue.ts +1 -2
  162. package/dist/components/text/index.vue +36 -22
  163. package/dist/components/text/types.d.ts +1 -1
  164. package/dist/components/textarea/index.d.vue.ts +4 -4
  165. package/dist/components/textarea/index.vue +33 -4
  166. package/dist/components/textarea/types.d.ts +0 -1
  167. package/dist/components/time-picker/index.d.vue.ts +1 -2
  168. package/dist/components/time-picker/index.vue +43 -9
  169. package/dist/components/time-picker/types.d.ts +1 -2
  170. package/dist/components/toggle/index.vue +11 -10
  171. package/dist/components/toggle-button/index.d.vue.ts +22 -0
  172. package/dist/components/toggle-button/index.vue +110 -0
  173. package/dist/components/toggle-button/types.d.ts +16 -0
  174. package/dist/components/{choicebox-group → toggle-button-group}/index.d.vue.ts +5 -5
  175. package/dist/components/toggle-button-group/index.vue +68 -0
  176. package/dist/components/toggle-button-group/types.d.ts +22 -0
  177. package/dist/components/tooltip/index.d.vue.ts +2 -0
  178. package/dist/components/tooltip/index.vue +9 -3
  179. package/dist/components/tooltip/types.d.ts +3 -2
  180. package/dist/components/virtual-list/index.d.vue.ts +25 -4
  181. package/dist/components/virtual-list/index.vue +66 -10
  182. package/dist/components/virtual-list/types.d.ts +9 -4
  183. package/dist/composables/index.d.ts +2 -2
  184. package/dist/composables/index.js +2 -2
  185. package/dist/composables/use-browser-observer.d.ts +5 -5
  186. package/dist/composables/use-browser-observer.js +23 -20
  187. package/dist/composables/use-copy-click.js +4 -0
  188. package/dist/composables/use-countdown.d.ts +2 -2
  189. package/dist/composables/use-delay-destroy.d.ts +1 -1
  190. package/dist/composables/use-focus-trap.d.ts +7 -3
  191. package/dist/composables/use-focus-trap.js +19 -7
  192. package/dist/composables/use-forward-ref-expose.d.ts +2 -0
  193. package/dist/composables/use-forward-ref-expose.js +41 -0
  194. package/dist/composables/use-message.d.ts +4 -7
  195. package/dist/composables/use-model-value.d.ts +9 -8
  196. package/dist/composables/use-popover-responsive.d.ts +2 -2
  197. package/dist/composables/use-popover-responsive.js +3 -3
  198. package/dist/composables/use-repeat-action.d.ts +1 -1
  199. package/dist/composables/use-repeat-action.js +2 -2
  200. package/dist/composables/use-virtual-list.d.ts +21 -12
  201. package/dist/composables/use-virtual-list.js +90 -158
  202. package/dist/composables/use-window-size.d.ts +4 -0
  203. package/dist/composables/use-window-size.js +27 -0
  204. package/dist/contexts/avatar.d.ts +5 -2
  205. package/dist/contexts/carousel.d.ts +4 -4
  206. package/dist/contexts/carousel.js +1 -1
  207. package/dist/contexts/checkbox.d.ts +7 -2
  208. package/dist/contexts/choicebox.d.ts +8 -4
  209. package/dist/contexts/choicebox.js +1 -4
  210. package/dist/contexts/collapse.d.ts +5 -6
  211. package/dist/contexts/collapse.js +1 -1
  212. package/dist/contexts/config-provider.d.ts +5 -0
  213. package/dist/{composables/use-config-provider-context.js → contexts/config-provider.js} +8 -5
  214. package/dist/contexts/list.d.ts +1 -1
  215. package/dist/contexts/radio.d.ts +8 -2
  216. package/dist/contexts/resizable.d.ts +1 -1
  217. package/dist/contexts/switch.d.ts +8 -4
  218. package/dist/contexts/switch.js +1 -2
  219. package/dist/contexts/toggle-button.d.ts +7 -0
  220. package/dist/contexts/toggle-button.js +2 -0
  221. package/dist/styles/source.css +14 -2
  222. package/dist/styles/styles.css +2 -2
  223. package/dist/styles/tw.css +14 -2
  224. package/dist/types/shared/props.d.ts +1 -3
  225. package/dist/types/shared/utils.d.ts +0 -3
  226. package/dist/utils/context.d.ts +1 -0
  227. package/dist/utils/get.d.ts +1 -0
  228. package/dist/utils/get.js +14 -0
  229. package/dist/utils/ref.d.ts +1 -1
  230. package/dist/utils/responsive.js +2 -1
  231. package/dist/utils/throttle.js +9 -7
  232. package/dist/utils/uid.d.ts +1 -1
  233. package/dist/utils/uid.js +2 -2
  234. package/package.json +23 -21
  235. package/volar.d.ts +7 -3
  236. package/dist/components/badge/cn.d.ts +0 -90
  237. package/dist/components/badge/cn.js +0 -44
  238. package/dist/components/button/cn.d.ts +0 -121
  239. package/dist/components/button/cn.js +0 -55
  240. package/dist/components/carousel-group/index.d.vue.ts +0 -35
  241. package/dist/components/carousel-group/index.vue +0 -368
  242. package/dist/components/checkbox/cn.d.ts +0 -67
  243. package/dist/components/checkbox/cn.js +0 -31
  244. package/dist/components/chip/cn.d.ts +0 -49
  245. package/dist/components/chip/cn.js +0 -26
  246. package/dist/components/choicebox-group/index.vue +0 -65
  247. package/dist/components/error/cn.d.ts +0 -22
  248. package/dist/components/error/cn.js +0 -15
  249. package/dist/components/input/cn.d.ts +0 -73
  250. package/dist/components/input/cn.js +0 -36
  251. package/dist/components/list-item/cn.d.ts +0 -22
  252. package/dist/components/list-item/cn.js +0 -15
  253. package/dist/components/loading-bar/cn.d.ts +0 -70
  254. package/dist/components/loading-bar/cn.js +0 -32
  255. package/dist/components/note/cn.d.ts +0 -121
  256. package/dist/components/note/cn.js +0 -66
  257. package/dist/components/pin-input/cn.d.ts +0 -46
  258. package/dist/components/pin-input/cn.js +0 -25
  259. package/dist/components/progress/cn.d.ts +0 -19
  260. package/dist/components/progress/cn.js +0 -14
  261. package/dist/components/radio/cn.d.ts +0 -46
  262. package/dist/components/radio/cn.js +0 -42
  263. package/dist/components/skeleton/cn.d.ts +0 -43
  264. package/dist/components/skeleton/cn.js +0 -24
  265. package/dist/components/snippet/cn.d.ts +0 -52
  266. package/dist/components/snippet/cn.js +0 -27
  267. package/dist/components/stack/cn.d.ts +0 -70
  268. package/dist/components/stack/cn.js +0 -33
  269. package/dist/components/switch/cn.d.ts +0 -16
  270. package/dist/components/switch/cn.js +0 -13
  271. package/dist/components/switch-group/index.d.vue.ts +0 -23
  272. package/dist/components/switch-group/index.vue +0 -54
  273. package/dist/components/text/cn.d.ts +0 -67
  274. package/dist/components/text/cn.js +0 -34
  275. package/dist/components/textarea/cn.d.ts +0 -58
  276. package/dist/components/textarea/cn.js +0 -30
  277. package/dist/composables/use-config-provider-context.d.ts +0 -3
  278. package/dist/composables/use-unique-id-context.d.ts +0 -2
  279. 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 "../../composables/use-config-provider-context";
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, default: "md" },
13
+ size: { type: String, required: false },
13
14
  label: { type: [String, Number, Array, null], required: false },
14
- error: { type: null, required: false }
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: null, required: false },
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 = 1;
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/props'
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 | HTMLElement
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 "../../composables/use-config-provider-context";
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 class="pxd-gauge relative size-max" :style="`--gauge-size: ${computedSize}px`">
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 :class="computedClasses" :style="computedStyle" v-bind="$attrs">
75
- <slot />
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>
@@ -5,8 +5,3 @@ export interface GridProps {
5
5
  rows?: ResponsiveValue<string | number>
6
6
  columns?: ResponsiveValue<string | number>
7
7
  }
8
-
9
- export interface GridItemProps {
10
- row?: ResponsiveValue<string | number>
11
- column?: ResponsiveValue<string | number>
12
- }
@@ -1,4 +1,4 @@
1
- import type { GridItemProps } from '../grid/types';
1
+ import type { GridItemProps } from './types';
2
2
  declare var __VLS_1: {};
3
3
  type __VLS_Slots = {} & {
4
4
  default?: (props: typeof __VLS_1) => any;
@@ -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) => acc[`--${bp}-row`] = 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) => acc[`--${bp}-col`] = value
41
+ (acc, bp, value) => {
42
+ acc[`--${bp}-col`] = value;
43
+ }
39
44
  );
40
45
  });
41
46
  const computedClasses = computed(() => {
42
- const classes = ["pxd-grid-item overflow-hidden"];
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 :class="computedClasses" :style="gridItemStyle" v-bind="$attrs">
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>
@@ -0,0 +1,6 @@
1
+ import type { ResponsiveValue } from '../../types/shared'
2
+
3
+ export interface GridItemProps {
4
+ row?: ResponsiveValue<string | number>
5
+ column?: ResponsiveValue<string | number>
6
+ }
@@ -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;
@@ -177,7 +177,7 @@ onBeforeUnmount(() => {
177
177
  clip-path: inset(0px);
178
178
  transition:
179
179
  clip-path var(--hold-button-durations),
180
- opacity var(--default-transition-duration);
180
+ opacity 0.1s;
181
181
  }
182
182
  }
183
183
  </style>
@@ -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 CarouselGroup } from './carousel-group/index.vue';
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 ChoiceboxGroup } from './choicebox-group/index.vue';
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 SwitchGroup } from './switch-group/index.vue';
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';
@@ -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 CarouselGroup } from "./carousel-group/index.vue";
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 ChoiceboxGroup } from "./choicebox-group/index.vue";
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 SwitchGroup } from "./switch-group/index.vue";
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
- prefixStyle: boolean;
42
- suffixStyle: boolean;
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: null, required: false },
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: null, required: false },
32
- inputmode: { type: null, required: false },
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
- prefixStyle: { type: Boolean, required: false, default: true },
40
- suffixStyle: { type: Boolean, required: false, default: true },
41
- prefixClass: { type: null, required: false },
42
- suffixClass: { type: null, required: false },
43
- selectOnFocus: { type: Boolean, required: false }
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': prefixStyle },
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-inherit 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"
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 cursor-pointer items-center justify-center rounded-r-inherit text-foreground-secondary"
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': suffixStyle },
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
- .pxd-input:has(.pxd-input--prefix) input{border-bottom-left-radius:0;border-top-left-radius:0}.pxd-input:has(.pxd-input--suffix) input{border-bottom-right-radius:0;border-top-right-radius:0}
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>