pxd 0.0.49 → 0.0.51

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 (121) hide show
  1. package/README.md +2 -2
  2. package/dist/components/_internal/fragment-container.d.vue.ts +13 -0
  3. package/dist/components/_internal/fragment-container.vue +11 -0
  4. package/dist/components/_internal/fragment-container.vue.d.ts +13 -0
  5. package/dist/components/avatar/index.vue +2 -2
  6. package/dist/components/book/index.vue +3 -3
  7. package/dist/components/button/index.vue +1 -1
  8. package/dist/components/carousel-group/index.d.vue.ts +1 -1
  9. package/dist/components/carousel-group/index.vue +7 -7
  10. package/dist/components/carousel-group/index.vue.d.ts +1 -1
  11. package/dist/components/checkbox/index.d.vue.ts +2 -0
  12. package/dist/components/checkbox/index.vue +1 -1
  13. package/dist/components/checkbox/index.vue.d.ts +2 -0
  14. package/dist/components/checkbox-group/index.d.vue.ts +2 -2
  15. package/dist/components/checkbox-group/index.vue.d.ts +2 -2
  16. package/dist/components/chip/index.vue +2 -2
  17. package/dist/components/choicebox/index.vue +1 -1
  18. package/dist/components/choicebox-group/index.d.vue.ts +4 -4
  19. package/dist/components/choicebox-group/index.vue +18 -26
  20. package/dist/components/choicebox-group/index.vue.d.ts +4 -4
  21. package/dist/components/collapse/index.vue +1 -1
  22. package/dist/components/collapse-group/index.vue +3 -3
  23. package/dist/components/command-menu/index.d.vue.ts +2 -0
  24. package/dist/components/command-menu/index.vue +1 -1
  25. package/dist/components/command-menu/index.vue.d.ts +2 -0
  26. package/dist/components/config-provider/index.vue +1 -1
  27. package/dist/components/countdown/index.d.vue.ts +2 -2
  28. package/dist/components/countdown/index.vue.d.ts +2 -2
  29. package/dist/components/drawer/index.d.vue.ts +2 -0
  30. package/dist/components/drawer/index.vue +4 -4
  31. package/dist/components/drawer/index.vue.d.ts +2 -0
  32. package/dist/components/hold-button/index.vue +4 -4
  33. package/dist/components/index.d.ts +1 -0
  34. package/dist/components/index.js +1 -0
  35. package/dist/components/input/index.d.vue.ts +4 -4
  36. package/dist/components/input/index.vue +37 -18
  37. package/dist/components/input/index.vue.d.ts +4 -4
  38. package/dist/components/intersection-observer/index.vue +6 -6
  39. package/dist/components/label/index.d.vue.ts +13 -0
  40. package/dist/components/label/index.vue +12 -0
  41. package/dist/components/label/index.vue.d.ts +13 -0
  42. package/dist/components/menu/index.vue +8 -2
  43. package/dist/components/message/index.d.vue.ts +56 -37
  44. package/dist/components/message/index.vue +34 -27
  45. package/dist/components/message/index.vue.d.ts +56 -37
  46. package/dist/components/message-item/index.d.vue.ts +5 -10
  47. package/dist/components/message-item/index.vue +21 -20
  48. package/dist/components/message-item/index.vue.d.ts +5 -10
  49. package/dist/components/modal/index.d.vue.ts +2 -0
  50. package/dist/components/modal/index.vue +4 -4
  51. package/dist/components/modal/index.vue.d.ts +2 -0
  52. package/dist/components/more-button/index.d.vue.ts +2 -0
  53. package/dist/components/more-button/index.vue +1 -1
  54. package/dist/components/more-button/index.vue.d.ts +2 -0
  55. package/dist/components/number-input/index.d.vue.ts +3 -1
  56. package/dist/components/number-input/index.vue +4 -3
  57. package/dist/components/number-input/index.vue.d.ts +3 -1
  58. package/dist/components/overlay/index.vue +23 -61
  59. package/dist/components/pin-input/index.d.vue.ts +2 -0
  60. package/dist/components/pin-input/index.vue +1 -1
  61. package/dist/components/pin-input/index.vue.d.ts +2 -0
  62. package/dist/components/popover/index.d.vue.ts +7 -2
  63. package/dist/components/popover/index.vue +68 -56
  64. package/dist/components/popover/index.vue.d.ts +7 -2
  65. package/dist/components/progress/index.d.vue.ts +3 -1
  66. package/dist/components/progress/index.vue +1 -1
  67. package/dist/components/progress/index.vue.d.ts +3 -1
  68. package/dist/components/radio/index.d.vue.ts +2 -0
  69. package/dist/components/radio/index.vue +1 -1
  70. package/dist/components/radio/index.vue.d.ts +2 -0
  71. package/dist/components/radio-group/index.d.vue.ts +2 -2
  72. package/dist/components/radio-group/index.vue.d.ts +2 -2
  73. package/dist/components/slider/index.d.vue.ts +3 -1
  74. package/dist/components/slider/index.vue +1 -1
  75. package/dist/components/slider/index.vue.d.ts +3 -1
  76. package/dist/components/switch/index.vue +7 -1
  77. package/dist/components/switch-group/index.d.vue.ts +2 -0
  78. package/dist/components/switch-group/index.vue +1 -1
  79. package/dist/components/switch-group/index.vue.d.ts +2 -0
  80. package/dist/components/textarea/index.d.vue.ts +4 -4
  81. package/dist/components/textarea/index.vue +2 -2
  82. package/dist/components/textarea/index.vue.d.ts +4 -4
  83. package/dist/components/theme-switcher/index.vue +1 -3
  84. package/dist/components/time-picker/index.d.vue.ts +5 -3
  85. package/dist/components/time-picker/index.vue +34 -22
  86. package/dist/components/time-picker/index.vue.d.ts +5 -3
  87. package/dist/components/toggle/index.d.vue.ts +2 -2
  88. package/dist/components/toggle/index.vue +5 -5
  89. package/dist/components/toggle/index.vue.d.ts +2 -2
  90. package/dist/components/tooltip/index.vue +1 -1
  91. package/dist/composables/index.d.ts +2 -0
  92. package/dist/composables/index.js +2 -0
  93. package/dist/composables/use-document-hidden.d.ts +2 -1
  94. package/dist/composables/use-document-hidden.js +2 -1
  95. package/dist/composables/use-lock-scroll.d.ts +3 -3
  96. package/dist/composables/use-lock-scroll.js +10 -20
  97. package/dist/composables/use-media-query.d.ts +1 -0
  98. package/dist/composables/use-media-query.js +41 -29
  99. package/dist/composables/use-message.d.ts +10 -6
  100. package/dist/composables/use-message.js +0 -1
  101. package/dist/composables/use-model-value.d.ts +5 -3
  102. package/dist/composables/use-model-value.js +4 -1
  103. package/dist/composables/use-popover-responsive.d.ts +12 -0
  104. package/dist/composables/use-popover-responsive.js +24 -0
  105. package/dist/composables/use-toggle-value.d.ts +9 -0
  106. package/dist/composables/use-toggle-value.js +15 -0
  107. package/dist/locales/en-us.d.ts +2 -0
  108. package/dist/locales/en-us.js +3 -1
  109. package/dist/locales/zh-cn.d.ts +2 -0
  110. package/dist/locales/zh-cn.js +3 -1
  111. package/dist/styles/source.css +44 -37
  112. package/dist/styles/styles.css +1 -1
  113. package/dist/styles/tw.css +43 -37
  114. package/dist/types/components/input.d.ts +4 -1
  115. package/dist/utils/date.js +25 -24
  116. package/dist/utils/event.d.ts +1 -0
  117. package/dist/utils/event.js +2 -0
  118. package/package.json +9 -9
  119. package/volar.d.ts +1 -0
  120. package/dist/components/_internal/fragment-container.d.ts +0 -2
  121. package/dist/components/_internal/fragment-container.js +0 -15
@@ -13,8 +13,10 @@ interface Props {
13
13
  type?: 'numeric' | 'alphabetic' | 'alphanumeric' | 'numeric-password' | 'alphabetic-password' | 'alphanumeric-password';
14
14
  }
15
15
  declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
16
+ change: (args_0: string) => any;
16
17
  "update:modelValue": (args_0: string) => any;
17
18
  }, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
19
+ onChange?: ((args_0: string) => any) | undefined;
18
20
  "onUpdate:modelValue"?: ((args_0: string) => any) | undefined;
19
21
  }>, {
20
22
  length: number;
@@ -14,13 +14,16 @@ interface Props {
14
14
  enterable?: boolean;
15
15
  showArrow?: boolean;
16
16
  arrowColor?: string;
17
+ toggleClick?: boolean;
17
18
  autoPosition?: boolean;
18
19
  wrapperClass?: ComponentClass;
19
20
  contentClass?: ComponentClass;
20
21
  contentStyle?: CSSProperties | string;
21
- transitionType?: 'fade' | 'fade-scale';
22
+ unsetPosition?: boolean;
23
+ transitionType?: 'fade' | 'fade-scale' | 'fade-slide';
22
24
  closeOnInvisible?: boolean;
23
25
  closeOnPressEscape?: boolean;
26
+ lockScrollOnVisible?: boolean;
24
27
  }
25
28
  declare function handlePopoverShow(): Promise<void>;
26
29
  declare function handlePopoverHide(immediate?: boolean): Promise<void>;
@@ -54,8 +57,10 @@ declare const __VLS_base: import("vue").DefineComponent<Props, {
54
57
  showDelay: number;
55
58
  hideDelay: number;
56
59
  arrowColor: string;
60
+ toggleClick: boolean;
57
61
  autoPosition: boolean;
58
- transitionType: "fade" | "fade-scale";
62
+ unsetPosition: boolean;
63
+ transitionType: "fade" | "fade-scale" | "fade-slide";
59
64
  closeOnInvisible: boolean;
60
65
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
61
66
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -3,9 +3,10 @@ import { arrow, computePosition, flip, offset, shift } from "@floating-ui/dom";
3
3
  import { computed, shallowRef, watch } from "vue";
4
4
  import { useIntersectionObserver } from "../../composables/use-browser-observer";
5
5
  import { useDelayDestroy } from "../../composables/use-delay-destroy";
6
+ import { useLockScroll } from "../../composables/use-lock-scroll";
6
7
  import { useOutsideClick } from "../../composables/use-outside-click";
7
8
  import { debounce } from "../../utils/debounce";
8
- import { cachedOff, cachedOn } from "../../utils/event";
9
+ import { cachedOff, cachedOn, sleep } from "../../utils/event";
9
10
  import { getCssUnitValue, toArray } from "../../utils/format";
10
11
  import PTeleport from "../teleport/index.vue";
11
12
  defineOptions({
@@ -25,13 +26,16 @@ const props = defineProps({
25
26
  enterable: { type: Boolean, required: false },
26
27
  showArrow: { type: Boolean, required: false },
27
28
  arrowColor: { type: String, required: false, default: "hsl(var(--primary))" },
29
+ toggleClick: { type: Boolean, required: false, default: true },
28
30
  autoPosition: { type: Boolean, required: false, default: true },
29
31
  wrapperClass: { type: [String, Array, Object], required: false },
30
32
  contentClass: { type: [String, Array, Object], required: false },
31
33
  contentStyle: { type: [Object, String], required: false },
34
+ unsetPosition: { type: Boolean, required: false, default: false },
32
35
  transitionType: { type: String, required: false, default: "fade-scale" },
33
36
  closeOnInvisible: { type: Boolean, required: false, default: true },
34
- closeOnPressEscape: { type: Boolean, required: false }
37
+ closeOnPressEscape: { type: Boolean, required: false },
38
+ lockScrollOnVisible: { type: Boolean, required: false }
35
39
  });
36
40
  const emits = defineEmits(["show", "hide", "escape", "outside-click", "trigger-click", "visible-change"]);
37
41
  let showPopoverTimer;
@@ -47,6 +51,10 @@ const wrapperStyle = computed(() => ({
47
51
  "--popover-bg": props.arrowColor,
48
52
  "--popover-max-width": getCssUnitValue(props.maxWidth)
49
53
  }));
54
+ const {
55
+ lockScroll,
56
+ unlockScroll
57
+ } = useLockScroll();
50
58
  const {
51
59
  render: isRender,
52
60
  visible: isVisible,
@@ -60,8 +68,14 @@ const {
60
68
  }
61
69
  emits("visible-change", v);
62
70
  if (v) {
71
+ if (props.lockScrollOnVisible) {
72
+ lockScroll();
73
+ }
63
74
  emits("show");
64
75
  } else {
76
+ if (props.lockScrollOnVisible) {
77
+ unlockScroll();
78
+ }
65
79
  emits("hide");
66
80
  }
67
81
  }
@@ -102,6 +116,13 @@ async function handlePopoverShow() {
102
116
  }, props.showDelay);
103
117
  });
104
118
  await showPopover();
119
+ if (props.closeOnPressEscape) {
120
+ cachedOn(document, "keydown", onPopoverKeystroke);
121
+ }
122
+ if (props.unsetPosition) {
123
+ Object.assign(wrapperRef.value.style, { left: "0", top: "0" });
124
+ return;
125
+ }
105
126
  const { x, y, placement, middlewareData } = await computePosition(
106
127
  triggerRef.value,
107
128
  wrapperRef.value,
@@ -127,9 +148,6 @@ async function handlePopoverShow() {
127
148
  top: y2 != null ? `${Math.max(y2, 5)}px` : ""
128
149
  });
129
150
  }
130
- if (props.closeOnPressEscape) {
131
- cachedOn(document, "keydown", onPopoverKeystroke);
132
- }
133
151
  }
134
152
  async function handlePopoverHide(immediate = false) {
135
153
  if (hidePopoverTimer) {
@@ -168,41 +186,42 @@ async function onTriggerClick(ev) {
168
186
  if (!triggerMethods.value.includes("click")) {
169
187
  return;
170
188
  }
171
- if (isVisible.value) {
189
+ if (isVisible.value && props.toggleClick) {
172
190
  handlePopoverHide();
173
191
  return;
174
192
  }
175
193
  handlePopoverShow();
176
194
  }
177
195
  function onTriggerPointerEnter() {
178
- if (props.disabled) {
196
+ if (props.disabled || !triggerMethods.value.includes("hover")) {
179
197
  return;
180
198
  }
181
199
  handlePopoverShow();
182
200
  }
183
201
  function onTriggerPointerLeave() {
184
- if (props.disabled) {
202
+ if (props.disabled || !triggerMethods.value.includes("hover")) {
185
203
  return;
186
204
  }
187
205
  handlePopoverHide();
188
206
  }
189
207
  function onTriggerFocusin() {
190
- if (props.disabled) {
208
+ if (props.disabled || !triggerMethods.value.includes("focus")) {
191
209
  return;
192
210
  }
193
211
  handlePopoverShow();
194
212
  }
195
- function onTriggerFocusout() {
196
- if (props.disabled) {
213
+ async function onTriggerFocusout() {
214
+ if (props.disabled || !triggerMethods.value.includes("focus")) {
215
+ return;
216
+ }
217
+ await sleep(0);
218
+ if (wrapperRef.value.contains(document.activeElement)) {
197
219
  return;
198
220
  }
199
221
  handlePopoverHide();
200
222
  }
201
223
  async function onTriggerContextmenu() {
202
- if (props.disabled) {
203
- return;
204
- }
205
- if (!triggerMethods.value.includes("contextmenu")) {
224
+ if (props.disabled || !triggerMethods.value.includes("contextmenu")) {
206
225
  return;
207
226
  }
208
227
  if (isVisible.value) {
@@ -229,27 +248,6 @@ function onContentPointerLeave() {
229
248
  }
230
249
  handlePopoverHide();
231
250
  }
232
- const triggerMethodEvents = {
233
- focus: [
234
- ["focusin", onTriggerFocusin],
235
- ["focusout", onTriggerFocusout]
236
- ],
237
- hover: [
238
- ["pointerenter", onTriggerPointerEnter],
239
- ["pointerleave", onTriggerPointerLeave]
240
- ]
241
- };
242
- function updateTriggerEvents(methods, dom, handler) {
243
- for (const method of methods) {
244
- const events = triggerMethodEvents[method];
245
- if (!events) {
246
- continue;
247
- }
248
- for (const event of events) {
249
- handler(dom, event[0], event[1]);
250
- }
251
- }
252
- }
253
251
  watch(
254
252
  () => props.visible,
255
253
  (visible) => {
@@ -260,13 +258,6 @@ watch(
260
258
  }
261
259
  }
262
260
  );
263
- watch(
264
- () => [triggerRef.value, triggerMethods.value],
265
- ([newDom, newMethods], [oldDom, oldMethods]) => {
266
- updateTriggerEvents(oldMethods, oldDom, cachedOff);
267
- updateTriggerEvents(newMethods, newDom, cachedOn);
268
- }
269
- );
270
261
  defineExpose({
271
262
  show: handlePopoverShow,
272
263
  hide: handlePopoverHide
@@ -278,8 +269,12 @@ defineExpose({
278
269
  ref="triggerRef"
279
270
  class="pxd-popover inline-flex max-w-full active:select-none"
280
271
  v-bind="$attrs"
281
- @contextmenu.prevent="onTriggerContextmenu"
282
272
  @click="onTriggerClick"
273
+ @focusin="onTriggerFocusin"
274
+ @focusout="onTriggerFocusout"
275
+ @pointerenter="onTriggerPointerEnter"
276
+ @pointerleave="onTriggerPointerLeave"
277
+ @contextmenu.prevent="onTriggerContextmenu"
283
278
  >
284
279
  <slot />
285
280
 
@@ -287,19 +282,24 @@ defineExpose({
287
282
  <div
288
283
  v-if="isRender"
289
284
  ref="wrapperRef"
285
+ tabindex="-1"
290
286
  :class="wrapperClass"
291
287
  :style="wrapperStyle"
292
288
  :data-visible="isVisible"
293
289
  :data-enterable="enterable"
294
- :data-position="localPosition"
295
- :data-transition-type="transitionType"
296
- class="pxd-popover--container sm:max-w-(--popover-max-width) absolute isolate z-1 w-max max-w-full motion-reduce:data-[visible=false]:hidden"
290
+ class="pxd-popover--wrapper sm:max-w-(--popover-max-width) absolute isolate z-10 flex max-w-full outline-none data-[enterable=false]:pointer-events-none motion-reduce:data-[visible=false]:hidden"
297
291
  @pointerenter="onContentPointerEnter"
298
292
  @pointerleave="onContentPointerLeave"
299
293
  >
300
- <i v-if="showArrow" ref="arrayRef" class="pxd-popover--arrow absolute z-1 border-solid" />
301
- <div class="pxd-popover--content" :class="contentClass" :style="contentStyle">
302
- <slot name="content" />
294
+ <div
295
+ class="pxd-popover--container pointer-events-auto relative z-1 w-inherit"
296
+ :data-position="localPosition"
297
+ :data-transition-type="transitionType"
298
+ >
299
+ <i v-if="showArrow" ref="arrayRef" class="pxd-popover--arrow absolute z-1 border-solid" />
300
+ <div class="pxd-popover--content" :class="contentClass" :style="contentStyle">
301
+ <slot name="content" />
302
+ </div>
303
303
  </div>
304
304
  </div>
305
305
  </PTeleport>
@@ -323,29 +323,41 @@ defineExpose({
323
323
  0% { transform: scale(1); opacity: 1 }
324
324
  100% { transform: scale(0.95); opacity: 0; pointer-events: none; }
325
325
  }
326
+ @keyframes popover-fade-slide-show {
327
+ 0% { transform: translateY(100%); opacity: 0; pointer-events: none; }
328
+ 100% { transform: translateY(0); opacity: 1 }
329
+ }
330
+ @keyframes popover-fade-slide-hide {
331
+ 0% { transform: translateY(0); opacity: 1 }
332
+ 100% { transform: translateY(100%); opacity: 0; pointer-events: none; }
333
+ }
326
334
 
327
335
  .pxd-popover--container {
328
336
  will-change: transform, opacity;
329
337
  animation: popover-fade-show var(--default-transition-duration) var(--default-transition-timing-function) forwards;
330
338
 
331
- &[data-visible="true"][data-transition-type="fade"] {
339
+ [data-visible="true"] &[data-transition-type="fade"] {
332
340
  animation-name: popover-fade-show;
333
341
  }
334
342
 
335
- &[data-visible="false"][data-transition-type="fade"] {
343
+ [data-visible="false"] &[data-transition-type="fade"] {
336
344
  animation-name: popover-fade-hide;
337
345
  }
338
346
 
339
- &[data-visible="true"][data-transition-type="fade-scale"] {
347
+ [data-visible="true"] &[data-transition-type="fade-scale"] {
340
348
  animation-name: popover-fade-scale-show;
341
349
  }
342
350
 
343
- &[data-visible="false"][data-transition-type="fade-scale"] {
351
+ [data-visible="false"] &[data-transition-type="fade-scale"] {
344
352
  animation-name: popover-fade-scale-hide;
345
353
  }
346
354
 
347
- &[data-enterable="false"] {
348
- pointer-events: none;
355
+ [data-visible="true"] &[data-transition-type="fade-slide"] {
356
+ animation-name: popover-fade-slide-show;
357
+ }
358
+
359
+ [data-visible="false"] &[data-transition-type="fade-slide"] {
360
+ animation-name: popover-fade-slide-hide;
349
361
  }
350
362
 
351
363
  &[data-position='top'] {
@@ -14,13 +14,16 @@ interface Props {
14
14
  enterable?: boolean;
15
15
  showArrow?: boolean;
16
16
  arrowColor?: string;
17
+ toggleClick?: boolean;
17
18
  autoPosition?: boolean;
18
19
  wrapperClass?: ComponentClass;
19
20
  contentClass?: ComponentClass;
20
21
  contentStyle?: CSSProperties | string;
21
- transitionType?: 'fade' | 'fade-scale';
22
+ unsetPosition?: boolean;
23
+ transitionType?: 'fade' | 'fade-scale' | 'fade-slide';
22
24
  closeOnInvisible?: boolean;
23
25
  closeOnPressEscape?: boolean;
26
+ lockScrollOnVisible?: boolean;
24
27
  }
25
28
  declare function handlePopoverShow(): Promise<void>;
26
29
  declare function handlePopoverHide(immediate?: boolean): Promise<void>;
@@ -54,8 +57,10 @@ declare const __VLS_base: import("vue").DefineComponent<Props, {
54
57
  showDelay: number;
55
58
  hideDelay: number;
56
59
  arrowColor: string;
60
+ toggleClick: boolean;
57
61
  autoPosition: boolean;
58
- transitionType: "fade" | "fade-scale";
62
+ unsetPosition: boolean;
63
+ transitionType: "fade" | "fade-scale" | "fade-slide";
59
64
  closeOnInvisible: boolean;
60
65
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
61
66
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -13,13 +13,15 @@ type __VLS_Slots = {} & {
13
13
  default?: (props: typeof __VLS_1) => any;
14
14
  };
15
15
  declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
16
+ change: (args_0: number) => any;
16
17
  "update:modelValue": (args_0: number) => any;
17
18
  }, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
19
+ onChange?: ((args_0: number) => any) | undefined;
18
20
  "onUpdate:modelValue"?: ((args_0: number) => any) | undefined;
19
21
  }>, {
20
22
  label: boolean | string | number;
21
- max: number;
22
23
  variant: ComponentVariant | "secondary";
24
+ max: number;
23
25
  min: number;
24
26
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
25
27
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -20,7 +20,7 @@ const props = defineProps({
20
20
  colors: { type: Object, required: false },
21
21
  modelValue: { type: [Number, null], required: false }
22
22
  });
23
- const emits = defineEmits(["update:modelValue"]);
23
+ const emits = defineEmits(["change", "update:modelValue"]);
24
24
  const config = useConfigProvider();
25
25
  const SIZES = {
26
26
  sm: "h-2",
@@ -13,13 +13,15 @@ type __VLS_Slots = {} & {
13
13
  default?: (props: typeof __VLS_1) => any;
14
14
  };
15
15
  declare const __VLS_base: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
16
+ change: (args_0: number) => any;
16
17
  "update:modelValue": (args_0: number) => any;
17
18
  }, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
19
+ onChange?: ((args_0: number) => any) | undefined;
18
20
  "onUpdate:modelValue"?: ((args_0: number) => any) | undefined;
19
21
  }>, {
20
22
  label: boolean | string | number;
21
- max: number;
22
23
  variant: ComponentVariant | "secondary";
24
+ max: number;
23
25
  min: number;
24
26
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
25
27
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -4,8 +4,10 @@ type __VLS_Slots = {} & {
4
4
  default?: (props: typeof __VLS_1) => any;
5
5
  };
6
6
  declare const __VLS_base: import("vue").DefineComponent<RadioProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
+ change: (args_0: NonNullable<import("../../types/shared").ComponentValue | undefined>) => any;
7
8
  "update:modelValue": (args_0: NonNullable<import("../../types/shared").ComponentValue | undefined>) => any;
8
9
  }, string, import("vue").PublicProps, Readonly<RadioProps> & Readonly<{
10
+ onChange?: ((args_0: NonNullable<import("../../types/shared").ComponentValue | undefined>) => any) | undefined;
9
11
  "onUpdate:modelValue"?: ((args_0: NonNullable<import("../../types/shared").ComponentValue | undefined>) => any) | undefined;
10
12
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
13
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -18,7 +18,7 @@ const props = defineProps({
18
18
  disabled: { type: Boolean, required: false },
19
19
  modelValue: { type: [String, Number, Boolean], required: false }
20
20
  });
21
- const emits = defineEmits(["update:modelValue"]);
21
+ const emits = defineEmits(["change", "update:modelValue"]);
22
22
  const uniqueId = getUniqueId();
23
23
  const modelValue = useModelValue(props, emits);
24
24
  const radioGroupName = useUniqueId("RadioGroupName");
@@ -4,8 +4,10 @@ type __VLS_Slots = {} & {
4
4
  default?: (props: typeof __VLS_1) => any;
5
5
  };
6
6
  declare const __VLS_base: import("vue").DefineComponent<RadioProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
+ change: (args_0: NonNullable<import("../../types/shared").ComponentValue | undefined>) => any;
7
8
  "update:modelValue": (args_0: NonNullable<import("../../types/shared").ComponentValue | undefined>) => any;
8
9
  }, string, import("vue").PublicProps, Readonly<RadioProps> & Readonly<{
10
+ onChange?: ((args_0: NonNullable<import("../../types/shared").ComponentValue | undefined>) => any) | undefined;
9
11
  "onUpdate:modelValue"?: ((args_0: NonNullable<import("../../types/shared").ComponentValue | undefined>) => any) | undefined;
10
12
  }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
13
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -4,11 +4,11 @@ type __VLS_Slots = {} & {
4
4
  default?: (props: typeof __VLS_8) => any;
5
5
  };
6
6
  declare const __VLS_base: import("vue").DefineComponent<RadioGroupProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
- "update:modelValue": (args_0: NonNullable<import("../../types/shared").ComponentValue | undefined>) => any;
8
7
  change: (args_0: NonNullable<import("../../types/shared").ComponentValue | undefined>) => any;
8
+ "update:modelValue": (args_0: NonNullable<import("../../types/shared").ComponentValue | undefined>) => any;
9
9
  }, string, import("vue").PublicProps, Readonly<RadioGroupProps> & Readonly<{
10
- "onUpdate:modelValue"?: ((args_0: NonNullable<import("../../types/shared").ComponentValue | undefined>) => any) | undefined;
11
10
  onChange?: ((args_0: NonNullable<import("../../types/shared").ComponentValue | undefined>) => any) | undefined;
11
+ "onUpdate:modelValue"?: ((args_0: NonNullable<import("../../types/shared").ComponentValue | undefined>) => any) | undefined;
12
12
  }>, {
13
13
  options: import("../../types/shared").ComponentOption[];
14
14
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -4,11 +4,11 @@ type __VLS_Slots = {} & {
4
4
  default?: (props: typeof __VLS_8) => any;
5
5
  };
6
6
  declare const __VLS_base: import("vue").DefineComponent<RadioGroupProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
- "update:modelValue": (args_0: NonNullable<import("../../types/shared").ComponentValue | undefined>) => any;
8
7
  change: (args_0: NonNullable<import("../../types/shared").ComponentValue | undefined>) => any;
8
+ "update:modelValue": (args_0: NonNullable<import("../../types/shared").ComponentValue | undefined>) => any;
9
9
  }, string, import("vue").PublicProps, Readonly<RadioGroupProps> & Readonly<{
10
- "onUpdate:modelValue"?: ((args_0: NonNullable<import("../../types/shared").ComponentValue | undefined>) => any) | undefined;
11
10
  onChange?: ((args_0: NonNullable<import("../../types/shared").ComponentValue | undefined>) => any) | undefined;
11
+ "onUpdate:modelValue"?: ((args_0: NonNullable<import("../../types/shared").ComponentValue | undefined>) => any) | undefined;
12
12
  }>, {
13
13
  options: import("../../types/shared").ComponentOption[];
14
14
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -10,12 +10,14 @@ interface Props {
10
10
  modelValue?: number | [number, number] | null;
11
11
  }
12
12
  declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
13
+ change: (args_0: NonNullable<number | [number, number] | null | undefined>) => any;
13
14
  "update:modelValue": (args_0: NonNullable<number | [number, number] | null | undefined>) => any;
14
15
  }, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
16
+ onChange?: ((args_0: NonNullable<number | [number, number] | null | undefined>) => any) | undefined;
15
17
  "onUpdate:modelValue"?: ((args_0: NonNullable<number | [number, number] | null | undefined>) => any) | undefined;
16
18
  }>, {
17
- max: number;
18
19
  variant: ComponentVariant | "secondary";
20
+ max: number;
19
21
  modelValue: number | [number, number] | null;
20
22
  min: number;
21
23
  step: number;
@@ -21,7 +21,7 @@ const props = defineProps({
21
21
  variant: { type: String, required: false, default: "primary" },
22
22
  modelValue: { type: [Number, Array, null], required: false, default: 0 }
23
23
  });
24
- const emits = defineEmits(["update:modelValue"]);
24
+ const emits = defineEmits(["change", "update:modelValue"]);
25
25
  const SIZES = {
26
26
  sm: {
27
27
  track: "h-2",
@@ -10,12 +10,14 @@ interface Props {
10
10
  modelValue?: number | [number, number] | null;
11
11
  }
12
12
  declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
13
+ change: (args_0: NonNullable<number | [number, number] | null | undefined>) => any;
13
14
  "update:modelValue": (args_0: NonNullable<number | [number, number] | null | undefined>) => any;
14
15
  }, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
16
+ onChange?: ((args_0: NonNullable<number | [number, number] | null | undefined>) => any) | undefined;
15
17
  "onUpdate:modelValue"?: ((args_0: NonNullable<number | [number, number] | null | undefined>) => any) | undefined;
16
18
  }>, {
17
- max: number;
18
19
  variant: ComponentVariant | "secondary";
20
+ max: number;
19
21
  modelValue: number | [number, number] | null;
20
22
  min: number;
21
23
  step: number;
@@ -33,6 +33,12 @@ const computedClass = computed(() => {
33
33
  }
34
34
  return classes.join(" ");
35
35
  });
36
+ function onSwitchFocusIn() {
37
+ if (computedDisabled.value) {
38
+ return;
39
+ }
40
+ switchGroupModelValue.value = props.value;
41
+ }
36
42
  </script>
37
43
 
38
44
  <template>
@@ -53,7 +59,7 @@ const computedClass = computed(() => {
53
59
  :required="computedRequired"
54
60
  >
55
61
 
56
- <div :class="computedClass">
62
+ <div :class="computedClass" @focusin="onSwitchFocusIn">
57
63
  <slot>
58
64
  {{ label }}
59
65
  </slot>
@@ -4,8 +4,10 @@ type __VLS_Slots = {} & {
4
4
  default?: (props: typeof __VLS_1) => any;
5
5
  };
6
6
  declare const __VLS_base: import("vue").DefineComponent<SwitchGroupProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
+ change: (args_0: NonNullable<string | number | undefined>) => any;
7
8
  "update:modelValue": (args_0: NonNullable<string | number | undefined>) => any;
8
9
  }, string, import("vue").PublicProps, Readonly<SwitchGroupProps> & Readonly<{
10
+ onChange?: ((args_0: NonNullable<string | number | undefined>) => any) | undefined;
9
11
  "onUpdate:modelValue"?: ((args_0: NonNullable<string | number | undefined>) => any) | undefined;
10
12
  }>, {
11
13
  options: import("../../types/shared").ComponentOption[];
@@ -21,7 +21,7 @@ const props = defineProps({
21
21
  options: { type: Array, required: false, default: () => [] },
22
22
  modelValue: { type: [String, Number], required: false, default: "" }
23
23
  });
24
- const emits = defineEmits(["update:modelValue"]);
24
+ const emits = defineEmits(["change", "update:modelValue"]);
25
25
  const SIZES = {
26
26
  sm: "h-7.5",
27
27
  md: "h-9",
@@ -4,8 +4,10 @@ type __VLS_Slots = {} & {
4
4
  default?: (props: typeof __VLS_1) => any;
5
5
  };
6
6
  declare const __VLS_base: import("vue").DefineComponent<SwitchGroupProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
+ change: (args_0: NonNullable<string | number | undefined>) => any;
7
8
  "update:modelValue": (args_0: NonNullable<string | number | undefined>) => any;
8
9
  }, string, import("vue").PublicProps, Readonly<SwitchGroupProps> & Readonly<{
10
+ onChange?: ((args_0: NonNullable<string | number | undefined>) => any) | undefined;
9
11
  "onUpdate:modelValue"?: ((args_0: NonNullable<string | number | undefined>) => any) | undefined;
10
12
  }>, {
11
13
  options: import("../../types/shared").ComponentOption[];
@@ -12,15 +12,15 @@ interface Props {
12
12
  placeholder?: string;
13
13
  }
14
14
  declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
15
- "update:modelValue": (args_0: NonNullable<ComponentLabel | undefined>) => any;
16
15
  blur: (args_0: FocusEvent) => any;
17
- change: (args_0: Event) => any;
16
+ change: (args_0: NonNullable<ComponentLabel | undefined>) => any;
18
17
  focus: (args_0: FocusEvent) => any;
18
+ "update:modelValue": (args_0: NonNullable<ComponentLabel | undefined>) => any;
19
19
  }, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
20
- "onUpdate:modelValue"?: ((args_0: NonNullable<ComponentLabel | undefined>) => any) | undefined;
21
20
  onBlur?: ((args_0: FocusEvent) => any) | undefined;
22
- onChange?: ((args_0: Event) => any) | undefined;
21
+ onChange?: ((args_0: NonNullable<ComponentLabel | undefined>) => any) | undefined;
23
22
  onFocus?: ((args_0: FocusEvent) => any) | undefined;
23
+ "onUpdate:modelValue"?: ((args_0: NonNullable<ComponentLabel | undefined>) => any) | undefined;
24
24
  }>, {
25
25
  modelValue: ComponentLabel;
26
26
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -23,7 +23,7 @@ const props = defineProps({
23
23
  modelValue: { type: [String, Number, Array, null], required: false, default: "" },
24
24
  placeholder: { type: String, required: false }
25
25
  });
26
- const emits = defineEmits(["update:modelValue", "focus", "blur", "change"]);
26
+ const emits = defineEmits(["update:modelValue", "change", "focus", "blur"]);
27
27
  const uniqueId = getUniqueId();
28
28
  const SIZES = {
29
29
  xs: "text-xs",
@@ -54,7 +54,7 @@ function onInputBlur(event) {
54
54
  emits("blur", event);
55
55
  }
56
56
  function onInputChange(event) {
57
- emits("change", event);
57
+ emits("change", event.target.value);
58
58
  }
59
59
  </script>
60
60
 
@@ -12,15 +12,15 @@ interface Props {
12
12
  placeholder?: string;
13
13
  }
14
14
  declare const __VLS_export: import("vue").DefineComponent<Props, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
15
- "update:modelValue": (args_0: NonNullable<ComponentLabel | undefined>) => any;
16
15
  blur: (args_0: FocusEvent) => any;
17
- change: (args_0: Event) => any;
16
+ change: (args_0: NonNullable<ComponentLabel | undefined>) => any;
18
17
  focus: (args_0: FocusEvent) => any;
18
+ "update:modelValue": (args_0: NonNullable<ComponentLabel | undefined>) => any;
19
19
  }, string, import("vue").PublicProps, Readonly<Props> & Readonly<{
20
- "onUpdate:modelValue"?: ((args_0: NonNullable<ComponentLabel | undefined>) => any) | undefined;
21
20
  onBlur?: ((args_0: FocusEvent) => any) | undefined;
22
- onChange?: ((args_0: Event) => any) | undefined;
21
+ onChange?: ((args_0: NonNullable<ComponentLabel | undefined>) => any) | undefined;
23
22
  onFocus?: ((args_0: FocusEvent) => any) | undefined;
23
+ "onUpdate:modelValue"?: ((args_0: NonNullable<ComponentLabel | undefined>) => any) | undefined;
24
24
  }>, {
25
25
  modelValue: ComponentLabel;
26
26
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
@@ -26,8 +26,6 @@ watch(() => isDark.value, (newVal) => {
26
26
  icon
27
27
  @click="toggleDarkMode"
28
28
  >
29
- <Transition name="pxd-transition--fade-scale" mode="out-in">
30
- <Component :is="renderIcon" class="size-em" />
31
- </Transition>
29
+ <Component :is="renderIcon" class="size-em" />
32
30
  </PButton>
33
31
  </template>