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,368 +0,0 @@
1
- <script setup>
2
- import ChevronRightIcon from "@gdsicon/vue/chevron-right";
3
- import { computed, nextTick, onBeforeUnmount, onMounted, ref, shallowRef } from "vue";
4
- import { usePointerGesture } from "../../composables/use-pointer-gesture";
5
- import { provideCarouselGroupContext } from "../../contexts/carousel";
6
- import { getCssUnitValue } from "../../utils/format";
7
- import { throttle } from "../../utils/throttle";
8
- defineOptions({
9
- name: "PCarouselGroup"
10
- });
11
- const props = defineProps({
12
- index: { type: Number, required: false, default: 0 },
13
- loop: { type: Boolean, required: false, default: true },
14
- arrow: { type: Boolean, required: false, default: true },
15
- height: { type: [Number, String], required: false, default: 180 },
16
- autoplay: { type: Boolean, required: false, default: true },
17
- interval: { type: Number, required: false, default: 3e3 },
18
- indicator: { type: Boolean, required: false, default: true },
19
- direction: { type: String, required: false, default: "horizontal" },
20
- indicatorType: { type: String, required: false, default: "line" },
21
- indicatorPosition: { type: String, required: false, default: "bottom" },
22
- pauseOnHover: { type: Boolean, required: false, default: true },
23
- toggleOnWheel: { type: Boolean, required: false }
24
- });
25
- const emits = defineEmits(["change"]);
26
- const THROTTLE_INTERVALS = 550;
27
- const TRANSITION_CLASSES = ["transition-transform", "duration-500"];
28
- let autoPlayRafId = null;
29
- let autoPlaySession = 0;
30
- let isPointerEntering = false;
31
- const carousels = ref([]);
32
- const sliderRef = shallowRef();
33
- const virtualIndex = shallowRef(props.index);
34
- const correctIndex = computed(() => {
35
- const index = virtualIndex.value;
36
- if (index >= carousels.value.length) {
37
- return 0;
38
- }
39
- if (index <= -1) {
40
- return carousels.value.length - 1;
41
- }
42
- return index;
43
- });
44
- const computedStyle = computed(() => {
45
- const translateValue = virtualIndex.value * -100;
46
- const styles = {
47
- transform: props.direction === "horizontal" ? `translateX(${translateValue}%)` : `translateY(${translateValue}%)`
48
- };
49
- return styles;
50
- });
51
- function translateItems() {
52
- carousels.value.forEach((carousel, index) => {
53
- carousel.translateItem(index, virtualIndex.value);
54
- });
55
- }
56
- const onToggleClick = throttle(
57
- (delta) => {
58
- const length = carousels.value.length;
59
- if (length === 0) {
60
- return;
61
- }
62
- if (props.loop) {
63
- virtualIndex.value += delta;
64
- translateItems();
65
- } else {
66
- virtualIndex.value = Math.max(0, Math.min(virtualIndex.value + delta, length - 1));
67
- }
68
- emits("change", correctIndex.value);
69
- nextTick(onPointerLeave);
70
- },
71
- THROTTLE_INTERVALS,
72
- { edges: ["leading"] }
73
- );
74
- function onWheelToggle(ev) {
75
- if (!props.toggleOnWheel) {
76
- return;
77
- }
78
- const length = carousels.value.length;
79
- if (length <= 1) {
80
- return;
81
- }
82
- const delta = ev.deltaY > 0 ? 1 : -1;
83
- const indexBefore = virtualIndex.value;
84
- const lastIndex = length - 1;
85
- if (!props.loop) {
86
- const isAtFirstAndGoPrev = indexBefore <= 0 && delta < 0;
87
- const isAtLastAndGoNext = indexBefore >= lastIndex && delta > 0;
88
- if (isAtFirstAndGoPrev || isAtLastAndGoNext) {
89
- return;
90
- }
91
- }
92
- if (ev.cancelable) {
93
- ev.preventDefault();
94
- }
95
- onToggleClick(delta);
96
- }
97
- function resetContainerPosition(resetIndex) {
98
- const containerClassList = sliderRef.value.classList;
99
- containerClassList.remove(...TRANSITION_CLASSES);
100
- virtualIndex.value = resetIndex;
101
- translateItems();
102
- setTimeout(() => {
103
- containerClassList.add(...TRANSITION_CLASSES);
104
- }, 0);
105
- }
106
- function onTransitionsEnd(ev) {
107
- if (ev.propertyName !== "transform" || ev.target !== sliderRef.value) {
108
- return;
109
- }
110
- if (!props.loop) {
111
- return;
112
- }
113
- if (virtualIndex.value >= carousels.value.length) {
114
- resetContainerPosition(0);
115
- } else if (virtualIndex.value <= -1) {
116
- resetContainerPosition(carousels.value.length - 1);
117
- }
118
- }
119
- function clearAutoPlayTimer() {
120
- autoPlaySession++;
121
- if (autoPlayRafId != null) {
122
- cancelAnimationFrame(autoPlayRafId);
123
- autoPlayRafId = null;
124
- }
125
- }
126
- function setAutoPlayTimer() {
127
- const mySession = autoPlaySession;
128
- const startTime = performance.now();
129
- const onAnimationFrame = () => {
130
- if (mySession !== autoPlaySession || isPointerEntering) {
131
- return;
132
- }
133
- const currentTime = performance.now();
134
- const elapsedTime = currentTime - startTime;
135
- if (elapsedTime >= props.interval) {
136
- onToggleClick(1);
137
- return;
138
- }
139
- autoPlayRafId = requestAnimationFrame(onAnimationFrame);
140
- };
141
- autoPlayRafId = requestAnimationFrame(onAnimationFrame);
142
- }
143
- function onPointerEnter() {
144
- if (props.pauseOnHover) {
145
- isPointerEntering = true;
146
- clearAutoPlayTimer();
147
- }
148
- }
149
- function onPointerLeave() {
150
- isPointerEntering = false;
151
- if (!props.autoplay) {
152
- return;
153
- }
154
- clearAutoPlayTimer();
155
- setAutoPlayTimer();
156
- }
157
- function onIndicatorClick(ev) {
158
- clearAutoPlayTimer();
159
- const targetEl = ev.target.closest("[data-index]");
160
- const targetIndex = Number(targetEl?.dataset.index);
161
- if (Number.isNaN(targetIndex)) {
162
- return;
163
- }
164
- const deltaIndex = targetIndex - virtualIndex.value;
165
- if (deltaIndex !== 0) {
166
- onToggleClick(deltaIndex);
167
- }
168
- nextTick(onPointerLeave);
169
- }
170
- function registerCarousel(state) {
171
- carousels.value.push(state);
172
- }
173
- function unregisterCarousel(id) {
174
- carousels.value = carousels.value.filter(({ uid }) => uid !== id);
175
- }
176
- usePointerGesture(sliderRef, {
177
- axis: () => props.direction === "horizontal" ? "x" : "y",
178
- directionGuard: (d) => {
179
- if (props.direction === "horizontal") {
180
- return d === "left" || d === "right";
181
- }
182
- return d === "up" || d === "down";
183
- },
184
- onRelease(hit, dir, kind) {
185
- if (!hit || !dir || kind === "longpress") {
186
- return;
187
- }
188
- if (dir === "left" || dir === "up") {
189
- onToggleClick(1);
190
- } else if (dir === "right" || dir === "down") {
191
- onToggleClick(-1);
192
- }
193
- }
194
- });
195
- provideCarouselGroupContext({
196
- props,
197
- carousels,
198
- registerCarousel,
199
- unregisterCarousel
200
- });
201
- onMounted(async () => {
202
- onPointerLeave();
203
- await nextTick();
204
- translateItems();
205
- });
206
- onBeforeUnmount(() => {
207
- clearAutoPlayTimer();
208
- carousels.value = [];
209
- });
210
- </script>
211
-
212
- <template>
213
- <div
214
- tabindex="-1"
215
- :data-direction="direction"
216
- :data-indicator-type="indicatorType"
217
- :data-indicator-position="indicatorPosition"
218
- class="pxd-carousel-group group relative w-full touch-none overflow-hidden"
219
- :style="{ height: getCssUnitValue(height) }"
220
- @pointerenter="onPointerEnter"
221
- @pointerleave="onPointerLeave"
222
- @wheel="onWheelToggle"
223
- >
224
- <div class="pxd-carousel-group--container size-full">
225
- <div
226
- ref="sliderRef"
227
- class="pxd-carousel-group--slider translate-z-0 size-full"
228
- :style="computedStyle"
229
- :class="TRANSITION_CLASSES"
230
- @transitionend="onTransitionsEnd"
231
- >
232
- <slot />
233
- </div>
234
- </div>
235
-
236
- <div
237
- v-if="indicator"
238
- class="pxd-carousel-group--indicator gap-2 absolute flex w-max items-center"
239
- @click="onIndicatorClick"
240
- >
241
- <slot name="indicator" :current="correctIndex + 1" :total="carousels.length">
242
- <button
243
- v-for="(_, i) in carousels.length"
244
- :key="i"
245
- :data-index="i"
246
- class="pxd-carousel-group--indicator-item relative h-(--carousel-dot-height) w-(--carousel-dot-width) cursor-pointer appearance-none rounded-full bg-gray-alpha-200 font-inherit self-focus-ring outline-none hover:bg-gray-alpha-400 motion-safe:transition-colors"
247
- :class="{ 'bg-primary!': i === correctIndex }"
248
- />
249
- </slot>
250
- </div>
251
-
252
- <div v-if="arrow" class="pxd-carousel-group--toggler gap-2 absolute flex">
253
- <button
254
- type="button"
255
- aria-label="Carousel arrow left"
256
- class="pxd-carousel-group--prev-btn p-1.5 cursor-pointer appearance-none rounded-md bg-gray-alpha-100 font-inherit text-foreground-secondary self-focus-ring outline-none hover:bg-background-hover active:bg-background-active disabled:pointer-events-none motion-safe:transition-colors"
257
- @click="onToggleClick(-1)"
258
- >
259
- <ChevronRightIcon class="rotate-180" />
260
- </button>
261
-
262
- <button
263
- type="button"
264
- aria-label="Carousel arrow right"
265
- class="pxd-carousel-group--next-btn p-1.5 cursor-pointer appearance-none rounded-md bg-gray-alpha-100 font-inherit text-foreground-secondary self-focus-ring outline-none hover:bg-background-hover active:bg-background-active disabled:pointer-events-none motion-safe:transition-colors"
266
- @click="onToggleClick(1)"
267
- >
268
- <ChevronRightIcon />
269
- </button>
270
- </div>
271
- </div>
272
- </template>
273
-
274
- <style lang="postcss">
275
- .pxd-carousel-group {
276
- &[data-indicator-type='dot'] {
277
- --carousel-dot-width: 8px;
278
- --carousel-dot-height: 8px;
279
- }
280
-
281
- &[data-indicator-type='line'] {
282
- &[data-indicator-position='top'],
283
- &[data-indicator-position='bottom'] {
284
- --carousel-dot-width: 16px;
285
- --carousel-dot-height: 4px;
286
- }
287
-
288
- &[data-indicator-position='left'],
289
- &[data-indicator-position='right'] {
290
- --carousel-dot-width: 4px;
291
- --carousel-dot-height: 16px;
292
- }
293
- }
294
-
295
- &[data-indicator-position='top'] {
296
- .pxd-carousel-group--indicator {
297
- left: 12px;
298
- top: 8px;
299
- }
300
-
301
- .pxd-carousel-group--toggler {
302
- right: 8px;
303
- top: 8px;
304
- }
305
- }
306
-
307
- &[data-indicator-position='bottom'] {
308
- .pxd-carousel-group--indicator {
309
- left: 12px;
310
- bottom: 8px;
311
- }
312
-
313
- .pxd-carousel-group--toggler {
314
- right: 8px;
315
- bottom: 8px;
316
- }
317
- }
318
-
319
- &[data-indicator-position='left'] {
320
- .pxd-carousel-group--indicator {
321
- left: 8px;
322
- top: 12px;
323
- }
324
-
325
- .pxd-carousel-group--toggler {
326
- left: 8px;
327
- bottom: 8px;
328
- }
329
- }
330
-
331
- &[data-indicator-position='right'] {
332
- .pxd-carousel-group--indicator {
333
- right: 8px;
334
- top: 12px;
335
- }
336
-
337
- .pxd-carousel-group--toggler {
338
- right: 8px;
339
- bottom: 8px;
340
- }
341
- }
342
-
343
- &[data-direction='horizontal'] .pxd-carousel-group--slider {
344
- display: flex;
345
- }
346
-
347
- &[data-direction='vertical'] {
348
- .pxd-carousel-group--prev-btn,
349
- .pxd-carousel-group--next-btn {
350
- transform: rotate(90deg);
351
- }
352
- }
353
-
354
- &[data-indicator-position='left'],
355
- &[data-indicator-position='right'] {
356
- .pxd-carousel-group--indicator,
357
- .pxd-carousel-group--toggler {
358
- flex-direction: column;
359
- }
360
- }
361
- }
362
-
363
- .pxd-carousel-group--indicator-item::before {
364
- content: '';
365
- position: absolute;
366
- inset: -4px;
367
- }
368
- </style>
@@ -1,67 +0,0 @@
1
- export declare const checkboxVariant: import("tailwind-variants").TVReturnType<{
2
- checked: {
3
- true: {
4
- inner: string;
5
- };
6
- false: {
7
- inner: string;
8
- };
9
- };
10
- disabled: {
11
- true: {
12
- wrapper: string;
13
- inner: string;
14
- };
15
- false: {
16
- wrapper: string;
17
- inner: string;
18
- };
19
- };
20
- }, {
21
- wrapper: string;
22
- inner: string;
23
- }, undefined, {
24
- checked: {
25
- true: {
26
- inner: string;
27
- };
28
- false: {
29
- inner: string;
30
- };
31
- };
32
- disabled: {
33
- true: {
34
- wrapper: string;
35
- inner: string;
36
- };
37
- false: {
38
- wrapper: string;
39
- inner: string;
40
- };
41
- };
42
- }, {
43
- wrapper: string;
44
- inner: string;
45
- }, import("tailwind-variants").TVReturnType<{
46
- checked: {
47
- true: {
48
- inner: string;
49
- };
50
- false: {
51
- inner: string;
52
- };
53
- };
54
- disabled: {
55
- true: {
56
- wrapper: string;
57
- inner: string;
58
- };
59
- false: {
60
- wrapper: string;
61
- inner: string;
62
- };
63
- };
64
- }, {
65
- wrapper: string;
66
- inner: string;
67
- }, undefined, unknown, unknown, undefined>>;
@@ -1,31 +0,0 @@
1
- import { tv } from "tailwind-variants";
2
- export const checkboxVariant = tv({
3
- slots: {
4
- wrapper: "pxd-checkbox group/checkbox gap-2 inline-flex max-w-full cursor-pointer touch-manipulation items-center data-[disabled=true]:cursor-not-allowed",
5
- inner: "pxd-checkbox--inner size-4 inline-flex shrink-0 transform-gpu items-center justify-center overflow-hidden rounded-sm border peer-focus-ring motion-safe:transition-colors"
6
- },
7
- variants: {
8
- checked: {
9
- true: {
10
- inner: "border-primary bg-primary"
11
- },
12
- false: {
13
- inner: "border-gray-alpha-400 bg-background-100 group-hover/checkbox:bg-gray-200"
14
- }
15
- },
16
- disabled: {
17
- true: {
18
- wrapper: "is-disabled text-gray-500",
19
- inner: ""
20
- },
21
- false: {
22
- wrapper: "",
23
- inner: ""
24
- }
25
- }
26
- },
27
- compoundVariants: [
28
- { checked: true, disabled: true, inner: "border-gray-600 bg-gray-600" },
29
- { checked: false, disabled: true, inner: "border-gray-500 bg-gray-100" }
30
- ]
31
- });
@@ -1,49 +0,0 @@
1
- export declare const chipVariant: import("tailwind-variants").TVReturnType<{
2
- variant: {
3
- primary: string;
4
- error: string;
5
- warning: string;
6
- success: string;
7
- secondary: string;
8
- };
9
- inset: {
10
- true: {};
11
- false: string;
12
- };
13
- hasLabel: {
14
- true: {};
15
- false: string;
16
- };
17
- }, undefined, "pxd-chip--label text-xs top-0 right-0 absolute rounded-full border border-background-100 motion-safe:transition-all", {
18
- variant: {
19
- primary: string;
20
- error: string;
21
- warning: string;
22
- success: string;
23
- secondary: string;
24
- };
25
- inset: {
26
- true: {};
27
- false: string;
28
- };
29
- hasLabel: {
30
- true: {};
31
- false: string;
32
- };
33
- }, undefined, import("tailwind-variants").TVReturnType<{
34
- variant: {
35
- primary: string;
36
- error: string;
37
- warning: string;
38
- success: string;
39
- secondary: string;
40
- };
41
- inset: {
42
- true: {};
43
- false: string;
44
- };
45
- hasLabel: {
46
- true: {};
47
- false: string;
48
- };
49
- }, undefined, "pxd-chip--label text-xs top-0 right-0 absolute rounded-full border border-background-100 motion-safe:transition-all", unknown, unknown, undefined>>;
@@ -1,26 +0,0 @@
1
- import { tv } from "tailwind-variants";
2
- export const chipVariant = tv({
3
- base: "pxd-chip--label text-xs top-0 right-0 absolute rounded-full border border-background-100 motion-safe:transition-all",
4
- variants: {
5
- variant: {
6
- primary: "bg-primary text-background-100",
7
- error: "bg-red-700 text-background-100 dark:text-gray-1000",
8
- warning: "bg-amber-700 text-gray-1000 dark:text-gray-100",
9
- success: "bg-green-700 text-background-100 dark:text-gray-1000",
10
- secondary: "bg-gray-700 text-background-100 dark:text-gray-1000"
11
- },
12
- inset: {
13
- true: {},
14
- false: "translate-x-1/2 -translate-y-1/3"
15
- },
16
- hasLabel: {
17
- true: {},
18
- false: "size-(--chip-size)"
19
- }
20
- },
21
- defaultVariants: {
22
- variant: "primary",
23
- inset: false,
24
- hasLabel: false
25
- }
26
- });
@@ -1,65 +0,0 @@
1
- <script setup>
2
- import { computed, markRaw, useAttrs } from "vue";
3
- import { useModelValue } from "../../composables/use-model-value";
4
- import {
5
- provideChoiceboxGroupContext,
6
- provideChoiceboxGroupModelValue
7
- } from "../../contexts/choicebox";
8
- import PCheckboxGroup from "../checkbox-group/index.vue";
9
- import PChoicebox from "../choicebox/index.vue";
10
- import PRadioGroup from "../radio-group/index.vue";
11
- defineOptions({
12
- name: "PChoiceboxGroup",
13
- inheritAttrs: false,
14
- model: {
15
- prop: "modelValue",
16
- event: "update:modelValue"
17
- }
18
- });
19
- const props = defineProps({
20
- label: { type: [String, Number, Array, null], required: false },
21
- multiple: { type: Boolean, required: false },
22
- required: { type: Boolean, required: false, default: false },
23
- disabled: { type: Boolean, required: false, default: false },
24
- options: { type: Array, required: false },
25
- modelValue: { type: [String, Number, Boolean, Array], required: false, default: "" }
26
- });
27
- const emits = defineEmits(["change", "update:modelValue"]);
28
- const attrs = useAttrs();
29
- const modelValue = useModelValue(props, emits);
30
- const renderComponent = computed(() => markRaw(props.multiple ? PCheckboxGroup : PRadioGroup));
31
- const computedAttrs = computed(() => {
32
- const { disabled, multiple, required, options } = props;
33
- const { class: classes, ...rest } = attrs;
34
- return {
35
- role: multiple ? "group" : "radiogroup",
36
- "aria-required": required,
37
- "aria-multiselectable": multiple,
38
- gap: attrs.gap || "3",
39
- disabled,
40
- required,
41
- options,
42
- ...rest
43
- };
44
- });
45
- provideChoiceboxGroupContext(props);
46
- provideChoiceboxGroupModelValue(modelValue);
47
- </script>
48
-
49
- <template>
50
- <Component
51
- :is="renderComponent"
52
- v-model="modelValue"
53
- class="pxd-choicebox-group w-full"
54
- v-bind="computedAttrs"
55
- >
56
- <slot>
57
- <PChoicebox
58
- v-for="option in options"
59
- :key="option.value"
60
- v-model="modelValue"
61
- v-bind="option"
62
- />
63
- </slot>
64
- </Component>
65
- </template>
@@ -1,22 +0,0 @@
1
- export declare const errorVariant: import("tailwind-variants").TVReturnType<{
2
- size: {
3
- xs: string;
4
- sm: string;
5
- md: string;
6
- lg: string;
7
- };
8
- }, undefined, "pxd-error flex text-red-900", {
9
- size: {
10
- xs: string;
11
- sm: string;
12
- md: string;
13
- lg: string;
14
- };
15
- }, undefined, import("tailwind-variants").TVReturnType<{
16
- size: {
17
- xs: string;
18
- sm: string;
19
- md: string;
20
- lg: string;
21
- };
22
- }, undefined, "pxd-error flex text-red-900", unknown, unknown, undefined>>;
@@ -1,15 +0,0 @@
1
- import { tv } from "tailwind-variants";
2
- export const errorVariant = tv({
3
- base: "pxd-error flex text-red-900",
4
- variants: {
5
- size: {
6
- xs: "text-xs [--mt:2px]",
7
- sm: "text-13px [--mt:2px]",
8
- md: "text-sm [--mt:2px]",
9
- lg: "text-base [--mt:4px]"
10
- }
11
- },
12
- defaultVariants: {
13
- size: "md"
14
- }
15
- });