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,12 +1,13 @@
1
1
  <script setup>
2
+ import { tv } from "tailwind-variants";
2
3
  import { computed } from "vue";
3
- import { useConfigProvider } from "../../composables/use-config-provider-context";
4
4
  import { useModelValue } from "../../composables/use-model-value";
5
+ import { useConfigProvider } from "../../contexts/config-provider";
5
6
  import { isTruthyProp } from "../../utils/format";
6
7
  import { getUniqueId } from "../../utils/uid";
7
- import { textareaVariant } from "./cn";
8
8
  defineOptions({
9
9
  name: "PTextarea",
10
+ inheritAttrs: false,
10
11
  model: {
11
12
  prop: "modelValue",
12
13
  event: "update:modelValue"
@@ -19,7 +20,6 @@ const props = defineProps({
19
20
  error: { type: [Boolean, String], required: false },
20
21
  readonly: { type: Boolean, required: false },
21
22
  disabled: { type: Boolean, required: false },
22
- required: { type: Boolean, required: false },
23
23
  autofocus: { type: Boolean, required: false },
24
24
  minlength: { type: [Number, String], required: false },
25
25
  maxlength: { type: [Number, String], required: false },
@@ -27,6 +27,35 @@ const props = defineProps({
27
27
  placeholder: { type: String, required: false }
28
28
  });
29
29
  const emits = defineEmits(["update:modelValue", "change", "focus", "blur"]);
30
+ const textareaVariant = tv({
31
+ base: "",
32
+ variants: {
33
+ size: {
34
+ xs: "text-xs",
35
+ sm: "text-sm",
36
+ md: "text-sm",
37
+ lg: "text-base"
38
+ },
39
+ disabled: {
40
+ true: "is-disabled",
41
+ false: ""
42
+ },
43
+ readonly: {
44
+ true: "is-readonly",
45
+ false: ""
46
+ },
47
+ error: {
48
+ true: "is-error",
49
+ false: ""
50
+ }
51
+ },
52
+ defaultVariants: {
53
+ size: "md",
54
+ disabled: false,
55
+ readonly: false,
56
+ error: false
57
+ }
58
+ });
30
59
  const uniqueId = getUniqueId();
31
60
  const modelValue = useModelValue(props, emits);
32
61
  const configProvider = useConfigProvider();
@@ -54,6 +83,7 @@ function onInputChange(event) {
54
83
  :for="uniqueId"
55
84
  class="pxd-textarea pxd-input--border flex size-full min-h-inherit max-w-full items-center justify-center overflow-hidden rounded-md bg-background-100 motion-safe:transition-all"
56
85
  :class="computedClasses"
86
+ v-bind="$attrs"
57
87
  >
58
88
  <textarea
59
89
  :id="uniqueId"
@@ -66,7 +96,6 @@ function onInputChange(event) {
66
96
  :cols="cols"
67
97
  :readonly="readonly"
68
98
  :disabled="disabled"
69
- :required="required"
70
99
  :autofocus="autofocus"
71
100
  :minlength="minlength"
72
101
  :maxlength="maxlength"
@@ -7,7 +7,6 @@ export interface TextareaProps {
7
7
  error?: boolean | string
8
8
  readonly?: boolean
9
9
  disabled?: boolean
10
- required?: boolean
11
10
  autofocus?: boolean
12
11
  minlength?: number | string
13
12
  maxlength?: number | string
@@ -1,5 +1,4 @@
1
1
  import type { TimePickerProps } from './types';
2
- import CalendarIcon from '@gdsicon/vue/calendar';
3
2
  declare const __VLS_export: import("vue").DefineComponent<TimePickerProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
4
3
  select: (args_0: MouseEvent) => any;
5
4
  change: (args_0: boolean) => any;
@@ -12,7 +11,7 @@ declare const __VLS_export: import("vue").DefineComponent<TimePickerProps, {}, {
12
11
  format: string;
13
12
  modelValue: Date | string | number | null;
14
13
  closeOnPressEscape: boolean;
15
- presets: CalendarIcon[];
14
+ presets: import("./types").DateTimePreset[];
16
15
  prefixIcon: boolean;
17
16
  showSeconds: boolean;
18
17
  valueFormat: string;
@@ -1,8 +1,8 @@
1
1
  <script setup>
2
2
  import CalendarIcon from "@gdsicon/vue/calendar";
3
3
  import { computed, shallowRef, watch } from "vue";
4
- import { useConfigProvider } from "../../composables/use-config-provider-context";
5
4
  import { usePopoverResponsive } from "../../composables/use-popover-responsive";
5
+ import { useConfigProvider } from "../../contexts/config-provider";
6
6
  import { dayjs } from "../../utils/date";
7
7
  import { clampValue } from "../../utils/format";
8
8
  import PButton from "../button/index.vue";
@@ -201,7 +201,7 @@ watch(() => props.modelValue, updateDayjsDateTime, { immediate: true });
201
201
  :clearable="clearable"
202
202
  :model-value="modelValue"
203
203
  :placeholder="placeholder"
204
- :prefix-style="false"
204
+ :default-prefix-style="false"
205
205
  :data-focusing="popoverVisible"
206
206
  :select-on-focus="!isXs"
207
207
  v-bind="$attrs"
@@ -225,7 +225,7 @@ watch(() => props.modelValue, updateDayjsDateTime, { immediate: true });
225
225
  </div>
226
226
 
227
227
  <div
228
- class="sm:text-sm max-sm:text-15px flex max-w-full transform-gpu items-stretch tabular-nums outline-none select-none"
228
+ class="sm:text-sm max-sm:text-base flex max-w-full transform-gpu items-stretch tabular-nums outline-none select-none"
229
229
  @click.stop="onTimeListClick"
230
230
  >
231
231
  <div class="p-2 gap-1 relative mx-auto flex items-center">
@@ -233,7 +233,7 @@ watch(() => props.modelValue, updateDayjsDateTime, { immediate: true });
233
233
  <ul
234
234
  ref="timeHoursRef"
235
235
  data-type="hour"
236
- class="w-8 h-40 px-0 m-0 py-16 scrollbar-hidden list-none overflow-x-hidden overflow-y-scroll overscroll-contain text-center outline-none [-webkit-overflow-scrolling:auto]"
236
+ class="w-8 h-40 px-0 m-0 py-16 relative scrollbar-none list-none overflow-x-hidden overflow-y-scroll overscroll-contain text-center outline-none motion-safe:transition-colors"
237
237
  @scroll.stop="onTimeListScroll"
238
238
  >
239
239
  <li v-for="(_, i) of 24" :key="i" class="h-8 leading-8 cursor-pointer">
@@ -245,7 +245,7 @@ watch(() => props.modelValue, updateDayjsDateTime, { immediate: true });
245
245
  <ul
246
246
  ref="timeMinutesRef"
247
247
  data-type="minute"
248
- class="w-8 h-40 px-0 m-0 py-16 scrollbar-hidden list-none overflow-x-hidden overflow-y-scroll overscroll-contain text-center outline-none [-webkit-overflow-scrolling:auto]"
248
+ class="w-8 h-40 px-0 m-0 py-16 relative scrollbar-none list-none overflow-x-hidden overflow-y-scroll overscroll-contain text-center outline-none motion-safe:transition-colors"
249
249
  @scroll.stop="onTimeListScroll"
250
250
  >
251
251
  <li v-for="(_, i) of 60" :key="i" class="h-8 leading-8 cursor-pointer">
@@ -257,7 +257,7 @@ watch(() => props.modelValue, updateDayjsDateTime, { immediate: true });
257
257
  <ul
258
258
  ref="timeSecondsRef"
259
259
  data-type="second"
260
- class="w-8 h-40 px-0 m-0 py-16 scrollbar-hidden list-none overflow-x-hidden overflow-y-scroll overscroll-contain text-center outline-none [-webkit-overflow-scrolling:auto]"
260
+ class="w-8 h-40 px-0 m-0 py-16 relative scrollbar-none list-none overflow-x-hidden overflow-y-scroll overscroll-contain text-center outline-none motion-safe:transition-colors"
261
261
  @scroll.stop="onTimeListScroll"
262
262
  >
263
263
  <li v-for="(_, i) of 60" :key="i" class="h-8 leading-8 cursor-pointer">
@@ -269,7 +269,7 @@ watch(() => props.modelValue, updateDayjsDateTime, { immediate: true });
269
269
 
270
270
  <div
271
271
  v-if="presets?.length"
272
- class="max-sm:w-36 sm:w-25 p-2 gap-1 scrollbar-hidden flex flex-wrap content-start self-stretch overflow-auto border-l outline-none"
272
+ class="max-sm:w-36 sm:w-25 p-2 gap-1 scrollbar-none flex flex-wrap content-start self-stretch overflow-auto border-l outline-none"
273
273
  @click="onPresetClick"
274
274
  >
275
275
  <button
@@ -286,6 +286,40 @@ watch(() => props.modelValue, updateDayjsDateTime, { immediate: true });
286
286
  </PPopover>
287
287
  </template>
288
288
 
289
- <style>
290
- .pxd-time-picker--list:after,.pxd-time-picker--list:before{background:linear-gradient(var(--time-picker-list-gradient-direction),var(--color-background-100) 15%,transparent);content:"";height:50%;pointer-events:none;position:absolute;width:100%}.pxd-time-picker--list:before{--time-picker-list-gradient-direction:to bottom;top:0}.pxd-time-picker--list:after{--time-picker-list-gradient-direction:to top;bottom:0}
289
+ <style lang="postcss">
290
+ .pxd-time-picker--list {
291
+ &::before,
292
+ &::after {
293
+ content: '';
294
+ position: absolute;
295
+ left: -2px;
296
+ right: -2px;
297
+ height: 64px;
298
+ pointer-events: none;
299
+ z-index: 1;
300
+ }
301
+
302
+ &::before {
303
+ border-bottom: 1px solid hsl(var(--color-gray-300-value));
304
+ top: 0;
305
+ }
306
+
307
+ &::after {
308
+ border-top: 1px solid hsl(var(--color-gray-300-value));
309
+ bottom: 0;
310
+ }
311
+
312
+ & > ul {
313
+ -webkit-overflow-scrolling: auto;
314
+ /* py-16(64px) / h-40(160px) = 40% */
315
+ mask-image: linear-gradient(to bottom, transparent 0%, black 50%, black 60%, transparent 100%);
316
+ -webkit-mask-image: linear-gradient(
317
+ to bottom,
318
+ transparent 0%,
319
+ black 50%,
320
+ black 60%,
321
+ transparent 100%
322
+ );
323
+ }
324
+ }
291
325
  </style>
@@ -1,5 +1,4 @@
1
- import type { DateTimePreset } from '../../types/components/time-picker'
2
- import type { ComponentSize } from '../../types/shared/props'
1
+ import type { ComponentSize } from '../../types/shared'
3
2
 
4
3
  export interface DateTimePreset<T = Date> {
5
4
  label: string
@@ -1,12 +1,13 @@
1
1
  <script setup>
2
2
  import LoaderCircleIcon from "@gdsicon/vue/loader-circle";
3
3
  import { computed } from "vue";
4
- import { useConfigProvider } from "../../composables/use-config-provider-context";
5
4
  import { useModelValue } from "../../composables/use-model-value";
5
+ import { useConfigProvider } from "../../contexts/config-provider";
6
6
  import { getFallbackValue } from "../../utils/get";
7
7
  import { getUniqueId } from "../../utils/uid";
8
8
  defineOptions({
9
9
  name: "PToggle",
10
+ inheritAttrs: false,
10
11
  model: {
11
12
  prop: "modelValue",
12
13
  event: "update:modelValue"
@@ -35,6 +36,7 @@ const uniqueId = getUniqueId();
35
36
  const configProvider = useConfigProvider();
36
37
  const modelValue = useModelValue(props, emits);
37
38
  const isChecked = computed(() => modelValue.value === props.activeValue);
39
+ const isDisabled = computed(() => props.disabled || props.loading);
38
40
  const computedSize = computed(() => getFallbackValue(props.size, SIZES, configProvider.size));
39
41
  async function onCheckboxChange(e) {
40
42
  if (props.loading) {
@@ -61,13 +63,14 @@ async function onCheckboxChange(e) {
61
63
  :for="uniqueId"
62
64
  class="pxd-toggle group/toggle inline-flex cursor-pointer touch-manipulation items-center select-none"
63
65
  :aria-label="modelValue ? activeLabel : inactiveLabel"
66
+ v-bind="$attrs"
64
67
  >
65
68
  <input
66
69
  :id="uniqueId"
67
70
  type="checkbox"
68
- :disabled="disabled || loading"
71
+ :disabled="isDisabled"
69
72
  :checked="isChecked"
70
- class="pxd-toggle--input peer smallest"
73
+ class="pxd-toggle--input peer visually-hidden"
71
74
  @change.prevent="onCheckboxChange"
72
75
  />
73
76
 
@@ -78,7 +81,7 @@ async function onCheckboxChange(e) {
78
81
  >
79
82
 
80
83
  <div
81
- class="pxd-toggle--handle rounded-full border border-input bg-(--toggle-inactive-color) p-px peer-focus-ring [--tx:0] peer-checked:bg-(--toggle-active-color) peer-checked:[--tx:100%] peer-disabled:cursor-not-allowed motion-safe:transition-all"
84
+ class="pxd-toggle--handle rounded-full border border-input bg-(--toggle-inactive-color) p-px peer-focus-ring [--tx:0] peer-checked:bg-(--toggle-active-color) peer-checked:[--tx:100%] peer-disabled:cursor-not-allowed peer-checked:peer-disabled:bg-gray-500 motion-safe:transition-all"
82
85
  :class="computedSize"
83
86
  :style="{
84
87
  '--toggle-active-color': activeColor,
@@ -86,9 +89,11 @@ async function onCheckboxChange(e) {
86
89
  }"
87
90
  >
88
91
  <div
89
- class="pxd-toggle--handle-icon text-xs shadow-sm relative flex aspect-square h-full translate-x-(--tx) transform-gpu items-center justify-center overflow-hidden rounded-full bg-background-100 text-foreground-secondary motion-safe:transition-transform"
92
+ :data-checked="isChecked"
93
+ :data-disabled="isDisabled"
94
+ class="pxd-toggle--handle-icon text-xs shadow-sm bg-white relative flex aspect-square h-full translate-x-(--tx) transform-gpu items-center justify-center overflow-hidden rounded-full text-foreground-secondary motion-safe:transition-all dark:data-[checked=true]:bg-background-100 dark:data-[disabled=true]:bg-gray-900 dark:data-[disabled=true]:text-gray-500"
90
95
  >
91
- <div class="inset-0 absolute flex items-center justify-center">
96
+ <div class="inset-0 pointer-events-none absolute flex items-center justify-center">
92
97
  <Transition name="pxd-transition--fade" mode="out-in">
93
98
  <LoaderCircleIcon v-if="loading" class="motion-safe:animate-spin" />
94
99
  <slot v-else-if="modelValue" name="checked" />
@@ -105,7 +110,3 @@ async function onCheckboxChange(e) {
105
110
  >
106
111
  </label>
107
112
  </template>
108
-
109
- <style>
110
- .pxd-toggle--input:checked:disabled+.pxd-toggle--handle{background-color:var(--color-gray-300)}
111
- </style>
@@ -0,0 +1,22 @@
1
+ import type { ToggleButtonProps } from './types';
2
+ declare var __VLS_1: {};
3
+ type __VLS_Slots = {} & {
4
+ default?: (props: typeof __VLS_1) => any;
5
+ };
6
+ declare const __VLS_base: import("vue").DefineComponent<ToggleButtonProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
+ change: (args_0: NonNullable<import("../../types/shared").ComponentValue | import("../../types/shared").ComponentValue[] | undefined>) => any;
8
+ "update:modelValue": (args_0: NonNullable<import("../../types/shared").ComponentValue | import("../../types/shared").ComponentValue[] | undefined>) => any;
9
+ }, string, import("vue").PublicProps, Readonly<ToggleButtonProps> & Readonly<{
10
+ onChange?: ((args_0: NonNullable<import("../../types/shared").ComponentValue | import("../../types/shared").ComponentValue[] | undefined>) => any) | undefined;
11
+ "onUpdate:modelValue"?: ((args_0: NonNullable<import("../../types/shared").ComponentValue | import("../../types/shared").ComponentValue[] | undefined>) => any) | undefined;
12
+ }>, {
13
+ value: import("../../types/shared").ComponentValue;
14
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
15
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
16
+ declare const _default: typeof __VLS_export;
17
+ export default _default;
18
+ type __VLS_WithSlots<T, S> = T & {
19
+ new (): {
20
+ $slots: S;
21
+ };
22
+ };
@@ -0,0 +1,110 @@
1
+ <script setup>
2
+ import { tv } from "tailwind-variants";
3
+ import { computed } from "vue";
4
+ import { useModelValue } from "../../composables/use-model-value";
5
+ import { useConfigProvider } from "../../contexts/config-provider";
6
+ import { useToggleButtonGroupContext } from "../../contexts/toggle-button";
7
+ import { toArray } from "../../utils/format";
8
+ defineOptions({
9
+ name: "PToggleButton",
10
+ inheritAttrs: false,
11
+ model: {
12
+ prop: "modelValue",
13
+ event: "update:modelValue"
14
+ }
15
+ });
16
+ const props = defineProps({
17
+ variant: { type: String, required: false },
18
+ disabled: { type: Boolean, required: false },
19
+ label: { type: [String, Number, Array, null], required: false },
20
+ size: { type: String, required: false },
21
+ value: { type: [String, Number, Boolean], required: false, default: true },
22
+ modelValue: { type: [String, Number, Boolean, Array], required: false }
23
+ });
24
+ const emits = defineEmits(["change", "update:modelValue"]);
25
+ const toggleButtonVariant = tv({
26
+ base: "pxd-toggle-button gap-2 font-medium relative inline-flex shrink-0 appearance-none items-center justify-center border bg-background-100 outline-none group-data-[gap=0]/toggle-button-group:not-first:-ml-px group-data-[gap=0]/toggle-button-group:not-first:rounded-l-none group-data-[gap=0]/toggle-button-group:not-last:rounded-r-none group-data-[gap=0]/toggle-button-group:first:rounded-r-none data-[state=off]:enabled:hover:z-1 data-[state=on]:z-1 motion-safe:transition-colors [&_svg]:pointer-events-none",
27
+ variants: {
28
+ size: {
29
+ sm: "h-7.5 px-1.75 text-sm rounded-md",
30
+ md: "h-9 px-2.5 text-sm rounded-md",
31
+ lg: "h-10 px-2.75 text-base rounded-lg"
32
+ },
33
+ variant: {
34
+ ghost: "border-transparent",
35
+ outline: "border-input"
36
+ },
37
+ disabled: {
38
+ true: "cursor-not-allowed",
39
+ false: "hover:bg-background-hover data-[state=on]:bg-gray-300"
40
+ },
41
+ checked: {
42
+ true: "",
43
+ false: ""
44
+ }
45
+ },
46
+ compoundVariants: [
47
+ { checked: true, disabled: true, class: "bg-gray-200" },
48
+ { checked: false, disabled: true, class: "text-gray-400" },
49
+ { checked: false, disabled: false, class: "hover:text-gray-800" },
50
+ { variant: "outline", checked: false, disabled: true, class: "border-gray-400" },
51
+ { variant: "outline", checked: true, disabled: true, class: "border-gray-500 bg-gray-100" }
52
+ ],
53
+ defaultVariants: {
54
+ size: "md",
55
+ variant: "ghost",
56
+ checked: false,
57
+ disabled: false
58
+ }
59
+ });
60
+ const toggleButtonGroupContext = useToggleButtonGroupContext();
61
+ const modelValue = useModelValue(
62
+ toggleButtonGroupContext?.props ?? props,
63
+ toggleButtonGroupContext?.emits ?? emits
64
+ );
65
+ const configProvider = useConfigProvider();
66
+ const isDisabled = computed(() => props.disabled || toggleButtonGroupContext?.props.disabled);
67
+ const isChecked = computed(() => {
68
+ if (toggleButtonGroupContext?.props.multiple) {
69
+ return toArray(modelValue.value).includes(props.value);
70
+ }
71
+ return modelValue.value === props.value;
72
+ });
73
+ const computedClasses = computed(() => {
74
+ return toggleButtonVariant({
75
+ size: props.size || toggleButtonGroupContext?.props.size || configProvider.size,
76
+ checked: isChecked.value,
77
+ variant: props.variant || toggleButtonGroupContext?.props.variant,
78
+ disabled: isDisabled.value
79
+ });
80
+ });
81
+ function onToggleClick() {
82
+ const newCheckedState = !isChecked.value;
83
+ if (toggleButtonGroupContext) {
84
+ if (toggleButtonGroupContext.props.multiple) {
85
+ const formattedValue = toArray(modelValue.value);
86
+ modelValue.value = newCheckedState ? [...formattedValue, props.value] : formattedValue.filter((v) => v !== props.value);
87
+ } else {
88
+ modelValue.value = props.value;
89
+ }
90
+ return;
91
+ }
92
+ modelValue.value = newCheckedState;
93
+ }
94
+ </script>
95
+
96
+ <template>
97
+ <button
98
+ type="button"
99
+ :aria-pressed="isChecked"
100
+ :data-state="isChecked ? 'on' : 'off'"
101
+ :disabled="isDisabled"
102
+ :class="computedClasses"
103
+ v-bind="$attrs"
104
+ @click="onToggleClick"
105
+ >
106
+ <slot>
107
+ {{ label }}
108
+ </slot>
109
+ </button>
110
+ </template>
@@ -0,0 +1,16 @@
1
+ import type { ComponentLabel, ComponentSize, ComponentValue } from '../../types/shared'
2
+ import type { CheckboxProps } from '../checkbox/types'
3
+
4
+ export interface ToggleButtonProps {
5
+ variant?: 'ghost' | 'outline'
6
+ disabled?: boolean
7
+ label?: ComponentLabel
8
+ size?: ComponentSize
9
+ value?: ComponentValue
10
+ modelValue?: ComponentValue | ComponentValue[]
11
+ }
12
+
13
+ export interface ToggleButtonEmits {
14
+ change: [NonNullable<CheckboxProps['modelValue']>]
15
+ 'update:modelValue': [NonNullable<CheckboxProps['modelValue']>]
16
+ }
@@ -1,18 +1,18 @@
1
- import type { ChoiceboxGroupProps } from '../choicebox/types';
1
+ import type { ToggleButtonGroupProps } from './types';
2
2
  declare var __VLS_8: {};
3
3
  type __VLS_Slots = {} & {
4
4
  default?: (props: typeof __VLS_8) => any;
5
5
  };
6
- declare const __VLS_base: import("vue").DefineComponent<ChoiceboxGroupProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
6
+ declare const __VLS_base: import("vue").DefineComponent<ToggleButtonGroupProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
7
  change: (args_0: NonNullable<import("../../types/shared").ComponentValue | import("../../types/shared").ComponentValue[] | undefined>) => any;
8
8
  "update:modelValue": (args_0: NonNullable<import("../../types/shared").ComponentValue | import("../../types/shared").ComponentValue[] | undefined>) => any;
9
- }, string, import("vue").PublicProps, Readonly<ChoiceboxGroupProps> & Readonly<{
9
+ }, string, import("vue").PublicProps, Readonly<ToggleButtonGroupProps> & Readonly<{
10
10
  onChange?: ((args_0: NonNullable<import("../../types/shared").ComponentValue | import("../../types/shared").ComponentValue[] | undefined>) => any) | undefined;
11
11
  "onUpdate:modelValue"?: ((args_0: NonNullable<import("../../types/shared").ComponentValue | import("../../types/shared").ComponentValue[] | undefined>) => any) | undefined;
12
12
  }>, {
13
- disabled: boolean;
14
13
  modelValue: import("../../types/shared").ComponentValue | import("../../types/shared").ComponentValue[];
15
- required: boolean;
14
+ gap: import("../../types/shared").ResponsiveValue<string | number>;
15
+ multiple: boolean;
16
16
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
17
17
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
18
18
  declare const _default: typeof __VLS_export;
@@ -0,0 +1,68 @@
1
+ <script setup>
2
+ import { tv } from "tailwind-variants";
3
+ import { computed } from "vue";
4
+ import { useConfigProvider } from "../../contexts/config-provider";
5
+ import { provideToggleButtonGroupContext } from "../../contexts/toggle-button";
6
+ import PStack from "../stack/index.vue";
7
+ import PToggleButton from "../toggle-button/index.vue";
8
+ defineOptions({
9
+ name: "PToggleButtonGroup",
10
+ inheritAttrs: false,
11
+ model: {
12
+ prop: "modelValue",
13
+ event: "update:modelValue"
14
+ }
15
+ });
16
+ const props = defineProps({
17
+ gap: { type: [String, Number, Object], required: false, default: 0 },
18
+ size: { type: String, required: false },
19
+ disabled: { type: Boolean, required: false },
20
+ multiple: { type: Boolean, required: false, default: true },
21
+ options: { type: Array, required: false },
22
+ variant: { type: String, required: false },
23
+ modelValue: { type: [String, Number, Boolean, Array], required: false, default: () => [] }
24
+ });
25
+ const emits = defineEmits(["change", "update:modelValue"]);
26
+ const configProvider = useConfigProvider();
27
+ const toggleButtonGroupVariant = tv({
28
+ base: "pxd-toggle-button-group group/toggle-button-group w-max overflow-hidden",
29
+ variants: {
30
+ size: {
31
+ sm: "rounded-md",
32
+ md: "rounded-md",
33
+ lg: "rounded-lg"
34
+ },
35
+ variant: {
36
+ outline: "",
37
+ ghost: ""
38
+ }
39
+ },
40
+ defaultVariants: {
41
+ size: "md"
42
+ }
43
+ });
44
+ const computedSize = computed(() => props.size || configProvider.size);
45
+ const computedClasses = computed(
46
+ () => toggleButtonGroupVariant({
47
+ size: computedSize.value,
48
+ variant: props.variant
49
+ })
50
+ );
51
+ provideToggleButtonGroupContext({ props, emits });
52
+ </script>
53
+
54
+ <template>
55
+ <PStack
56
+ role="group"
57
+ :class="computedClasses"
58
+ aria-label="Toggle Button Group"
59
+ align="center"
60
+ :gap="gap"
61
+ :data-gap="gap"
62
+ v-bind="$attrs"
63
+ >
64
+ <slot>
65
+ <PToggleButton v-for="option in options" :key="option.value" v-bind="option" />
66
+ </slot>
67
+ </PStack>
68
+ </template>
@@ -0,0 +1,22 @@
1
+ import type {
2
+ ComponentSize,
3
+ ComponentValue,
4
+ ComponentOption,
5
+ ResponsiveValue,
6
+ } from '../../types/shared'
7
+ import type { CheckboxProps } from '../checkbox/types'
8
+
9
+ export interface ToggleButtonGroupProps {
10
+ gap?: ResponsiveValue<string | number>
11
+ size?: ComponentSize
12
+ disabled?: boolean
13
+ multiple?: boolean
14
+ options?: ComponentOption[]
15
+ variant?: 'ghost' | 'outline'
16
+ modelValue?: ComponentValue | ComponentValue[]
17
+ }
18
+
19
+ export interface ToggleButtonGroupEmits {
20
+ change: [NonNullable<CheckboxProps['modelValue']>]
21
+ 'update:modelValue': [NonNullable<CheckboxProps['modelValue']>]
22
+ }
@@ -8,6 +8,8 @@ type __VLS_Slots = {} & {
8
8
  declare const __VLS_base: import("vue").DefineComponent<TooltipProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<TooltipProps> & Readonly<{}>, {
9
9
  variant: import("../../types/shared").ComponentVariant;
10
10
  position: import("../../types/shared").ComponentPosition;
11
+ showDelay: number;
12
+ hideDelay: number;
11
13
  showArrow: boolean;
12
14
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
13
15
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
@@ -13,6 +13,8 @@ const props = defineProps({
13
13
  variant: { type: String, required: false, default: "primary" },
14
14
  position: { type: null, required: false, default: "top" },
15
15
  disabled: { type: Boolean, required: false },
16
+ showDelay: { type: Number, required: false, default: 300 },
17
+ hideDelay: { type: Number, required: false, default: 100 },
16
18
  showArrow: { type: Boolean, required: false, default: true },
17
19
  desktopOnly: { type: Boolean, required: false },
18
20
  contentClass: { type: [String, Array, Object], required: false },
@@ -37,12 +39,12 @@ const VARIANTS = {
37
39
  }
38
40
  };
39
41
  const computedVariant = computed(() => getFallbackValue(props.variant, VARIANTS, "primary"));
40
- const computedDisabled = computed(() => {
42
+ const isDisabled = computed(() => {
41
43
  return props.disabled || props.desktopOnly && isTouchDevice();
42
44
  });
43
45
  const computedClasses = computed(() => {
44
46
  return [
45
- "px-2 py-2 rounded-md text-sm break-words whitespace-pre-line shadow-border-tooltip bg-(--popover-arrow-bg)",
47
+ "px-3 py-2 rounded-md text-sm break-words whitespace-pre-line bg-(--popover-arrow-bg)",
46
48
  computedVariant.value.text,
47
49
  props.contentClass
48
50
  ].join(" ");
@@ -51,10 +53,14 @@ const computedClasses = computed(() => {
51
53
 
52
54
  <template>
53
55
  <PPopover
56
+ role="tooltip"
54
57
  class="pxd-tooltip"
55
58
  :position="position"
56
- :disabled="computedDisabled"
59
+ :disabled="isDisabled"
57
60
  :show-arrow="showArrow"
61
+ :show-delay="showDelay"
62
+ :hide-delay="hideDelay"
63
+ wrapper-class="max-sm:data-[position^=top]:px-1 max-sm:data-[position^=bottom]:px-1 max-sm:data-[position^=left]:pl-1 max-sm:data-[position^=right]:pr-1"
58
64
  :arrow-color="computedVariant.bg"
59
65
  :content-class="computedClasses"
60
66
  :content-style="contentStyle"
@@ -1,6 +1,5 @@
1
- import type { CSSProperties } from 'vue'
2
-
3
1
  import type { ComponentClass, ComponentPosition, ComponentVariant } from '../../types/shared'
2
+ import type { CSSProperties } from 'vue'
4
3
 
5
4
  export interface TooltipProps {
6
5
  offset?: number
@@ -8,6 +7,8 @@ export interface TooltipProps {
8
7
  variant?: ComponentVariant
9
8
  position?: ComponentPosition
10
9
  disabled?: boolean
10
+ showDelay?: number
11
+ hideDelay?: number
11
12
  showArrow?: boolean
12
13
  desktopOnly?: boolean
13
14
  contentClass?: ComponentClass
@@ -1,14 +1,35 @@
1
1
  import type { VirtualListProps } from './types';
2
2
  declare var __VLS_1: {
3
3
  item: any;
4
- };
4
+ virtualItem: import("../../composables/use-virtual-list").VirtualListItem;
5
+ }, __VLS_3: {};
5
6
  type __VLS_Slots = {} & {
6
- default?: (props: typeof __VLS_1) => any;
7
+ item?: (props: typeof __VLS_1) => any;
8
+ } & {
9
+ message?: (props: typeof __VLS_3) => any;
7
10
  };
8
- declare const __VLS_base: import("vue").DefineComponent<VirtualListProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<VirtualListProps> & Readonly<{}>, {
9
- dataKey: string;
11
+ declare const __VLS_base: import("vue").DefineComponent<VirtualListProps, {
12
+ totalSize: import("vue").ComputedRef<number>;
13
+ virtualItems: import("vue").ComputedRef<import("../../composables/use-virtual-list").VirtualListItem[]>;
14
+ getVirtualizer: () => import("@tanstack/virtual-core").Virtualizer<HTMLElement, HTMLElement>;
15
+ scrollToIndex: any;
16
+ scrollToOffset: any;
17
+ scrollBy: any;
18
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
19
+ bottom: () => any;
20
+ retry: () => any;
21
+ }, string, import("vue").PublicProps, Readonly<VirtualListProps> & Readonly<{
22
+ onBottom?: (() => any) | undefined;
23
+ onRetry?: (() => any) | undefined;
24
+ }>, {
25
+ bottomThreshold: number;
10
26
  listData: any[];
11
27
  itemSize: number;
28
+ errorText: string;
29
+ loadingText: string;
30
+ finishedText: string;
31
+ dataKey: string;
32
+ overScan: number;
12
33
  }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
13
34
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
14
35
  declare const _default: typeof __VLS_export;