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
@@ -0,0 +1,18 @@
1
+ import type { ProjectBannerProps } from './types';
2
+ declare var __VLS_1: {}, __VLS_3: {}, __VLS_5: {};
3
+ type __VLS_Slots = {} & {
4
+ icon?: (props: typeof __VLS_1) => any;
5
+ } & {
6
+ default?: (props: typeof __VLS_3) => any;
7
+ } & {
8
+ action?: (props: typeof __VLS_5) => any;
9
+ };
10
+ declare const __VLS_base: import("vue").DefineComponent<ProjectBannerProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<ProjectBannerProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
11
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
12
+ declare const _default: typeof __VLS_export;
13
+ export default _default;
14
+ type __VLS_WithSlots<T, S> = T & {
15
+ new (): {
16
+ $slots: S;
17
+ };
18
+ };
@@ -0,0 +1,59 @@
1
+ <script setup>
2
+ import { tv } from "tailwind-variants";
3
+ import { computed } from "vue";
4
+ defineOptions({
5
+ name: "PProjectBanner",
6
+ inheritAttrs: false
7
+ });
8
+ const props = defineProps({
9
+ label: { type: [String, Number, Array, null], required: false },
10
+ variant: { type: String, required: false }
11
+ });
12
+ const projectBannerVariant = tv({
13
+ slots: {
14
+ base: "gap-x-2 py-2 leading-5 min-h-10 text-sm flex w-full -translate-y-px items-center justify-center border-y",
15
+ action: "ml-6 md:ml-0 font-medium cursor-pointer underline underline-offset-3 motion-safe:transition-colors"
16
+ },
17
+ variants: {
18
+ variant: {
19
+ warning: {
20
+ base: "border-amber-400 bg-amber-100 text-amber-900",
21
+ action: "text-amber-1000 decoration-amber-400 hover:border-amber-500 hover:text-amber-900"
22
+ },
23
+ success: {
24
+ base: "border-green-400 bg-green-100 text-green-900",
25
+ action: "text-green-1000 decoration-green-400 hover:border-green-500 hover:text-green-900"
26
+ },
27
+ error: {
28
+ base: "border-red-400 bg-red-100 text-red-900",
29
+ action: "text-red-1000 decoration-red-400 hover:border-red-500 hover:text-red-900"
30
+ },
31
+ info: {
32
+ base: "border-blue-400 bg-blue-100 text-blue-900",
33
+ action: "text-blue-1000 decoration-blue-400 hover:border-blue-500 hover:text-blue-900"
34
+ }
35
+ }
36
+ }
37
+ });
38
+ const computedClasses = computed(() => projectBannerVariant({ variant: props.variant }));
39
+ </script>
40
+
41
+ <template>
42
+ <aside :class="computedClasses.base()" v-bind="$attrs">
43
+ <div class="gap-2 px-6 md:justify-center md:flex-row md:items-center flex w-full flex-col">
44
+ <div class="gap-2 flex items-center">
45
+ <div v-if="$slots.icon" aria-hidden="true" class="shrink-0">
46
+ <slot name="icon"></slot>
47
+ </div>
48
+
49
+ <p class="my-0!">
50
+ <slot>{{ label }}</slot>
51
+ </p>
52
+ </div>
53
+
54
+ <div v-if="$slots.action" :class="computedClasses.action()">
55
+ <slot name="action"></slot>
56
+ </div>
57
+ </div>
58
+ </aside>
59
+ </template>
@@ -0,0 +1,8 @@
1
+ import type { ComponentLabel } from '../../types/shared'
2
+
3
+ export type ProjectBannerVariant = 'warning' | 'error' | 'success' | 'info'
4
+
5
+ export interface ProjectBannerProps {
6
+ label?: ComponentLabel
7
+ variant?: ProjectBannerVariant
8
+ }
@@ -1,12 +1,12 @@
1
1
  <script setup>
2
+ import { tv } from "tailwind-variants";
2
3
  import { computed } from "vue";
3
4
  import { useModelValue } from "../../composables/use-model-value";
4
- import { useUniqueId } from "../../composables/use-unique-id-context";
5
5
  import { useRadioGroupContext } from "../../contexts/radio";
6
6
  import { getUniqueId } from "../../utils/uid";
7
- import { radioVariant } from "./cn";
8
7
  defineOptions({
9
8
  name: "PRadio",
9
+ inheritAttrs: false,
10
10
  model: {
11
11
  prop: "modelValue",
12
12
  event: "update:modelValue"
@@ -15,50 +15,92 @@ defineOptions({
15
15
  const props = defineProps({
16
16
  label: { type: [String, Number, Array, null], required: false },
17
17
  value: { type: [String, Number, Boolean], required: true },
18
- required: { type: Boolean, required: false },
19
18
  disabled: { type: Boolean, required: false },
20
19
  modelValue: { type: [String, Number, Boolean], required: false }
21
20
  });
22
21
  const emits = defineEmits(["change", "update:modelValue"]);
22
+ const radioVariant = tv({
23
+ base: "pxd-radio--inner size-4 after:content-empty after:size-2 inline-flex items-center justify-center rounded-full border peer-focus-ring after:scale-40 after:rounded-full after:bg-primary after:opacity-0 peer-checked:after:scale-100 peer-checked:after:opacity-100 motion-safe:transition-colors motion-safe:after:transition-all",
24
+ variants: {
25
+ checked: {
26
+ true: {
27
+ base: "border-primary bg-background-100 peer-checked:after:scale-100",
28
+ disabled: "border-gray-500 bg-gray-100 peer-disabled:after:bg-gray-500"
29
+ },
30
+ false: {
31
+ base: "border-gray-alpha-400 bg-background-100 group-hover/radio:bg-gray-200",
32
+ disabled: "border-gray-500 bg-gray-100"
33
+ }
34
+ },
35
+ disabled: {
36
+ true: "",
37
+ false: ""
38
+ }
39
+ },
40
+ compoundVariants: [
41
+ {
42
+ checked: true,
43
+ disabled: false,
44
+ class: "border-primary bg-background-100 peer-checked:after:scale-100"
45
+ },
46
+ {
47
+ checked: true,
48
+ disabled: true,
49
+ class: "border-gray-500 bg-gray-100 peer-disabled:after:bg-gray-500"
50
+ },
51
+ {
52
+ checked: false,
53
+ disabled: false,
54
+ class: "border-gray-alpha-400 bg-background-100 group-hover/radio:bg-gray-200"
55
+ },
56
+ { checked: false, disabled: true, class: "border-gray-500 bg-gray-100" }
57
+ ],
58
+ defaultVariants: {
59
+ checked: false,
60
+ disabled: false
61
+ }
62
+ });
23
63
  const uniqueId = getUniqueId();
24
- const modelValue = useModelValue(props, emits);
25
- const radioGroupName = useUniqueId("RadioGroupName");
26
64
  const radioGroupContext = useRadioGroupContext();
27
- const isChecked = computed(
28
- () => (radioGroupContext?.modelValue ?? modelValue.value) === props.value
65
+ const radioGroupName = radioGroupContext?.name ?? getUniqueId();
66
+ const modelValue = useModelValue(
67
+ radioGroupContext?.props ?? props,
68
+ radioGroupContext?.emits ?? emits
29
69
  );
30
- const computedDisabled = computed(() => props.disabled || radioGroupContext?.disabled);
31
- const computedRequired = computed(() => props.required || radioGroupContext?.required);
70
+ const isChecked = computed(() => modelValue.value === props.value);
71
+ const isDisabled = computed(() => props.disabled || radioGroupContext?.props.disabled);
32
72
  const computedClasses = computed(() => {
33
73
  return radioVariant({
34
74
  checked: isChecked.value,
35
- disabled: computedDisabled.value
75
+ disabled: isDisabled.value
36
76
  });
37
77
  });
38
- function onChangeValue() {
39
- emits("update:modelValue", props.value);
78
+ function onInputChange() {
79
+ if (isDisabled.value) {
80
+ return;
81
+ }
82
+ modelValue.value = props.value;
40
83
  }
41
84
  </script>
42
85
 
43
86
  <template>
44
87
  <label
45
88
  role="radio"
46
- :aria-checked="isChecked"
47
- :data-disabled="computedDisabled"
48
- class="pxd-radio group/radio gap-2 inline-flex max-w-full cursor-pointer touch-manipulation items-center data-[disabled=true]:cursor-not-allowed"
49
- :class="{ 'is-disabled text-gray-500': computedDisabled }"
89
+ :aria-selected="isChecked"
90
+ :data-disabled="isDisabled"
91
+ class="pxd-radio group/radio gap-2 inline-flex max-w-full cursor-pointer touch-manipulation items-center data-[disabled=true]:cursor-not-allowed data-[disabled=true]:text-gray-500"
50
92
  :for="uniqueId"
93
+ v-bind="$attrs"
51
94
  >
52
95
  <input
53
96
  :id="uniqueId"
54
97
  type="radio"
55
98
  :value="value"
56
- class="peer smallest"
99
+ class="peer visually-hidden"
57
100
  :checked="isChecked"
58
101
  :name="radioGroupName"
59
- :required="computedRequired"
60
- :disabled="computedDisabled"
61
- @change="onChangeValue"
102
+ :disabled="isDisabled"
103
+ @change="onInputChange"
62
104
  />
63
105
 
64
106
  <span aria-hidden="true" :class="computedClasses" />
@@ -1,9 +1,8 @@
1
- import type { ComponentLabel, ComponentOption, ComponentValue } from '../../types/shared'
1
+ import type { ComponentLabel, ComponentValue } from '../../types/shared'
2
2
 
3
3
  export interface RadioProps {
4
4
  label?: ComponentLabel
5
5
  value: ComponentValue
6
- required?: boolean
7
6
  disabled?: boolean
8
7
  modelValue?: ComponentValue
9
8
  }
@@ -12,15 +11,3 @@ export interface RadioEmits {
12
11
  change: [NonNullable<RadioProps['modelValue']>]
13
12
  'update:modelValue': [NonNullable<RadioProps['modelValue']>]
14
13
  }
15
-
16
- export interface RadioGroupProps {
17
- disabled?: boolean
18
- required?: boolean
19
- modelValue?: ComponentValue
20
- options?: ComponentOption[]
21
- }
22
-
23
- export interface RadioGroupEmits {
24
- change: [NonNullable<RadioGroupProps['modelValue']>]
25
- 'update:modelValue': [NonNullable<RadioGroupProps['modelValue']>]
26
- }
@@ -1,4 +1,4 @@
1
- import type { RadioGroupProps } from '../radio/types';
1
+ import type { RadioGroupProps } from './types';
2
2
  declare var __VLS_8: {};
3
3
  type __VLS_Slots = {} & {
4
4
  default?: (props: typeof __VLS_8) => any;
@@ -9,9 +9,7 @@ declare const __VLS_base: import("vue").DefineComponent<RadioGroupProps, {}, {},
9
9
  }, string, import("vue").PublicProps, Readonly<RadioGroupProps> & Readonly<{
10
10
  onChange?: ((args_0: NonNullable<import("../../types/shared").ComponentValue | undefined>) => any) | undefined;
11
11
  "onUpdate:modelValue"?: ((args_0: NonNullable<import("../../types/shared").ComponentValue | undefined>) => any) | undefined;
12
- }>, {
13
- options: import("../../types/shared").ComponentOption[];
14
- }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
12
+ }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
15
13
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
16
14
  declare const _default: typeof __VLS_export;
17
15
  export default _default;
@@ -1,7 +1,6 @@
1
1
  <script setup>
2
- import { useModelValue } from "../../composables/use-model-value";
3
- import { provideUniqueId } from "../../composables/use-unique-id-context";
4
2
  import { provideRadioGroupContext } from "../../contexts/radio";
3
+ import { getUniqueId } from "../../utils/uid";
5
4
  import PRadio from "../radio/index.vue";
6
5
  import PStack from "../stack/index.vue";
7
6
  defineOptions({
@@ -14,27 +13,23 @@ defineOptions({
14
13
  });
15
14
  const props = defineProps({
16
15
  disabled: { type: Boolean, required: false },
17
- required: { type: Boolean, required: false },
18
16
  modelValue: { type: [String, Number, Boolean], required: false },
19
- options: { type: Array, required: false, default: () => [] }
17
+ options: { type: Array, required: false }
20
18
  });
21
19
  const emits = defineEmits(["change", "update:modelValue"]);
22
- const modelValue = useModelValue(props, emits);
23
- provideUniqueId("RadioGroupName");
24
- provideRadioGroupContext(props);
20
+ provideRadioGroupContext({ props, emits, name: getUniqueId() });
25
21
  </script>
26
22
 
27
23
  <template>
28
- <PStack class="pxd-radio-group" role="radiogroup" aria-label="Radio Group" v-bind="$attrs">
24
+ <PStack
25
+ class="pxd-radio-group"
26
+ role="radiogroup"
27
+ aria-label="Radio Group"
28
+ aria-multiselectable="false"
29
+ v-bind="$attrs"
30
+ >
29
31
  <slot>
30
- <PRadio
31
- v-for="option in options"
32
- :key="option.value"
33
- v-model="modelValue"
34
- :label="option.label"
35
- :value="option.value"
36
- :disabled="option.disabled"
37
- />
32
+ <PRadio v-for="option in options" :key="option.value" v-bind="option" />
38
33
  </slot>
39
34
  </PStack>
40
35
  </template>
@@ -0,0 +1,12 @@
1
+ import type { ComponentOption, ComponentValue } from '../../types/shared'
2
+
3
+ export interface RadioGroupProps {
4
+ disabled?: boolean
5
+ modelValue?: ComponentValue
6
+ options?: ComponentOption[]
7
+ }
8
+
9
+ export interface RadioGroupEmits {
10
+ change: [NonNullable<RadioGroupProps['modelValue']>]
11
+ 'update:modelValue': [NonNullable<RadioGroupProps['modelValue']>]
12
+ }
@@ -1,13 +1,4 @@
1
- import type { ComponentDirection } from '../../types/shared/props'
2
-
3
- export interface ResizableProps {
4
- direction?: ComponentDirection
5
- }
6
-
7
- export interface ResizablePanelProps {
8
- size?: number | null
9
- minSize?: number
10
- }
1
+ import type { ComponentDirection } from '../../types/shared'
11
2
 
12
3
  export interface PanelConfig {
13
4
  id: string
@@ -21,3 +12,7 @@ export interface HandleConfig {
21
12
  order: number
22
13
  onDrag: (delta: { deltaX: number; deltaY: number }) => void
23
14
  }
15
+
16
+ export interface ResizableProps {
17
+ direction?: ComponentDirection
18
+ }
@@ -6,8 +6,8 @@ defineOptions({
6
6
  name: "PResizableHandle",
7
7
  inheritAttrs: false
8
8
  });
9
- const resizableContext = useResizableContext();
10
9
  const uniqueId = getUniqueId();
10
+ const resizableContext = useResizableContext();
11
11
  let isDragging = false;
12
12
  let startPosition = { x: 0, y: 0 };
13
13
  function onDrag(delta) {
@@ -1,4 +1,4 @@
1
- import type { ResizablePanelProps } from '../resizable/types';
1
+ import type { ResizablePanelProps } from './types';
2
2
  declare var __VLS_1: {};
3
3
  type __VLS_Slots = {} & {
4
4
  default?: (props: typeof __VLS_1) => any;
@@ -3,7 +3,8 @@ import { computed, onBeforeUnmount, onMounted, watch } from "vue";
3
3
  import { useResizableContext } from "../../contexts/resizable";
4
4
  import { getUniqueId } from "../../utils/uid";
5
5
  defineOptions({
6
- name: "PResizablePanel"
6
+ name: "PResizablePanel",
7
+ inheritAttrs: false
7
8
  });
8
9
  const props = defineProps({
9
10
  size: { type: [Number, null], required: false, default: null },
@@ -50,7 +51,11 @@ watch(
50
51
  </script>
51
52
 
52
53
  <template>
53
- <div class="pxd-resizable-panel min-w-0 min-h-0 overflow-hidden" :style="computedStyle">
54
+ <div
55
+ class="pxd-resizable-panel min-w-0 min-h-0 overflow-hidden"
56
+ :style="computedStyle"
57
+ v-bind="$attrs"
58
+ >
54
59
  <slot />
55
60
  </div>
56
61
  </template>
@@ -0,0 +1,4 @@
1
+ export interface ResizablePanelProps {
2
+ size?: number | null
3
+ minSize?: number
4
+ }
@@ -0,0 +1,29 @@
1
+ import type { ScrollableProps } from './types';
2
+ declare function scrollTo(top: number, left: number): void;
3
+ declare function forceUpdate(): void;
4
+ declare var __VLS_1: {};
5
+ type __VLS_Slots = {} & {
6
+ default?: (props: typeof __VLS_1) => any;
7
+ };
8
+ declare const __VLS_base: import("vue").DefineComponent<ScrollableProps, {
9
+ scrollTo: typeof scrollTo;
10
+ forceUpdate: typeof forceUpdate;
11
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
12
+ scroll: (args_0: Event) => any;
13
+ bottom: (args_0: import("../../types/shared").ComponentDirection, args_1: Event) => any;
14
+ }, string, import("vue").PublicProps, Readonly<ScrollableProps> & Readonly<{
15
+ onScroll?: ((args_0: Event) => any) | undefined;
16
+ onBottom?: ((args_0: import("../../types/shared").ComponentDirection, args_1: Event) => any) | undefined;
17
+ }>, {
18
+ fader: boolean;
19
+ scrollbar: boolean;
20
+ bottomThreshold: number;
21
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
22
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
23
+ declare const _default: typeof __VLS_export;
24
+ export default _default;
25
+ type __VLS_WithSlots<T, S> = T & {
26
+ new (): {
27
+ $slots: S;
28
+ };
29
+ };