@vifui/core 0.4.0-alpha.6

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 (166) hide show
  1. package/README.md +204 -0
  2. package/dist/components/accordion/accordion-body.vue.d.ts +29 -0
  3. package/dist/components/accordion/accordion-body.vue.js +27 -0
  4. package/dist/components/accordion/accordion-body.vue2.js +5 -0
  5. package/dist/components/accordion/accordion-content.vue.d.ts +29 -0
  6. package/dist/components/accordion/accordion-content.vue.js +26 -0
  7. package/dist/components/accordion/accordion-content.vue2.js +5 -0
  8. package/dist/components/accordion/accordion-header.vue.d.ts +30 -0
  9. package/dist/components/accordion/accordion-header.vue.js +28 -0
  10. package/dist/components/accordion/accordion-header.vue2.js +5 -0
  11. package/dist/components/accordion/accordion-indicator.vue.d.ts +32 -0
  12. package/dist/components/accordion/accordion-indicator.vue.js +22 -0
  13. package/dist/components/accordion/accordion-indicator.vue2.js +5 -0
  14. package/dist/components/accordion/accordion-item.vue.d.ts +54 -0
  15. package/dist/components/accordion/accordion-item.vue.js +30 -0
  16. package/dist/components/accordion/accordion-item.vue2.js +5 -0
  17. package/dist/components/accordion/accordion-root.vue.d.ts +94 -0
  18. package/dist/components/accordion/accordion-root.vue.js +55 -0
  19. package/dist/components/accordion/accordion-root.vue2.js +5 -0
  20. package/dist/components/accordion/accordion-trigger.vue.d.ts +44 -0
  21. package/dist/components/accordion/accordion-trigger.vue.js +30 -0
  22. package/dist/components/accordion/accordion-trigger.vue2.js +5 -0
  23. package/dist/components/accordion/accordion.styles.d.ts +99 -0
  24. package/dist/components/accordion/accordion.styles.js +42 -0
  25. package/dist/components/accordion/index.d.ts +15 -0
  26. package/dist/components/accordion/index.js +8 -0
  27. package/dist/components/alert/alert-body.vue.d.ts +16 -0
  28. package/dist/components/alert/alert-body.vue.js +54 -0
  29. package/dist/components/alert/alert-body.vue2.js +5 -0
  30. package/dist/components/alert/alert-close.vue.d.ts +12 -0
  31. package/dist/components/alert/alert-close.vue.js +38 -0
  32. package/dist/components/alert/alert-close.vue2.js +5 -0
  33. package/dist/components/alert/alert-content.vue.d.ts +28 -0
  34. package/dist/components/alert/alert-content.vue.js +54 -0
  35. package/dist/components/alert/alert-content.vue2.js +5 -0
  36. package/dist/components/alert/alert-description.vue.d.ts +16 -0
  37. package/dist/components/alert/alert-description.vue.js +41 -0
  38. package/dist/components/alert/alert-description.vue2.js +5 -0
  39. package/dist/components/alert/alert-footer.vue.d.ts +16 -0
  40. package/dist/components/alert/alert-footer.vue.js +54 -0
  41. package/dist/components/alert/alert-footer.vue2.js +5 -0
  42. package/dist/components/alert/alert-header.vue.d.ts +16 -0
  43. package/dist/components/alert/alert-header.vue.js +54 -0
  44. package/dist/components/alert/alert-header.vue2.js +5 -0
  45. package/dist/components/alert/alert-icon.vue.d.ts +8 -0
  46. package/dist/components/alert/alert-icon.vue.js +43 -0
  47. package/dist/components/alert/alert-icon.vue2.js +5 -0
  48. package/dist/components/alert/alert-root.vue.d.ts +48 -0
  49. package/dist/components/alert/alert-root.vue.js +57 -0
  50. package/dist/components/alert/alert-root.vue2.js +5 -0
  51. package/dist/components/alert/alert-title.vue.d.ts +16 -0
  52. package/dist/components/alert/alert-title.vue.js +41 -0
  53. package/dist/components/alert/alert-title.vue2.js +5 -0
  54. package/dist/components/alert/alert.styles.d.ts +96 -0
  55. package/dist/components/alert/alert.styles.js +147 -0
  56. package/dist/components/alert/index.d.ts +19 -0
  57. package/dist/components/alert/index.js +10 -0
  58. package/dist/components/avatar/avatar-fallback.vue.d.ts +14 -0
  59. package/dist/components/avatar/avatar-fallback.vue.js +35 -0
  60. package/dist/components/avatar/avatar-fallback.vue2.js +5 -0
  61. package/dist/components/avatar/avatar-group.vue.d.ts +20 -0
  62. package/dist/components/avatar/avatar-group.vue.js +101 -0
  63. package/dist/components/avatar/avatar-group.vue2.js +5 -0
  64. package/dist/components/avatar/avatar-image.vue.d.ts +14 -0
  65. package/dist/components/avatar/avatar-image.vue.js +37 -0
  66. package/dist/components/avatar/avatar-image.vue2.js +5 -0
  67. package/dist/components/avatar/avatar-root.vue.d.ts +57 -0
  68. package/dist/components/avatar/avatar-root.vue.js +102 -0
  69. package/dist/components/avatar/avatar-root.vue2.js +5 -0
  70. package/dist/components/avatar/avatar.styles.d.ts +209 -0
  71. package/dist/components/avatar/avatar.styles.js +50 -0
  72. package/dist/components/avatar/index.d.ts +9 -0
  73. package/dist/components/avatar/index.js +5 -0
  74. package/dist/components/badge/badge.styles.d.ts +87 -0
  75. package/dist/components/badge/badge.styles.js +41 -0
  76. package/dist/components/badge/badge.vue.d.ts +116 -0
  77. package/dist/components/badge/badge.vue.js +79 -0
  78. package/dist/components/badge/badge.vue2.js +5 -0
  79. package/dist/components/badge/index.d.ts +3 -0
  80. package/dist/components/badge/index.js +2 -0
  81. package/dist/components/breadcrumb/breadcrumb-current-link.vue.d.ts +29 -0
  82. package/dist/components/breadcrumb/breadcrumb-current-link.vue.js +28 -0
  83. package/dist/components/breadcrumb/breadcrumb-current-link.vue2.js +5 -0
  84. package/dist/components/breadcrumb/breadcrumb-item.vue.d.ts +28 -0
  85. package/dist/components/breadcrumb/breadcrumb-item.vue.js +27 -0
  86. package/dist/components/breadcrumb/breadcrumb-item.vue2.js +5 -0
  87. package/dist/components/breadcrumb/breadcrumb-link.vue.d.ts +53 -0
  88. package/dist/components/breadcrumb/breadcrumb-link.vue.js +30 -0
  89. package/dist/components/breadcrumb/breadcrumb-link.vue2.js +5 -0
  90. package/dist/components/breadcrumb/breadcrumb-list.vue.d.ts +28 -0
  91. package/dist/components/breadcrumb/breadcrumb-list.vue.js +27 -0
  92. package/dist/components/breadcrumb/breadcrumb-list.vue2.js +5 -0
  93. package/dist/components/breadcrumb/breadcrumb-root.vue.d.ts +78 -0
  94. package/dist/components/breadcrumb/breadcrumb-root.vue.js +39 -0
  95. package/dist/components/breadcrumb/breadcrumb-root.vue2.js +5 -0
  96. package/dist/components/breadcrumb/breadcrumb-separator.vue.d.ts +41 -0
  97. package/dist/components/breadcrumb/breadcrumb-separator.vue.js +32 -0
  98. package/dist/components/breadcrumb/breadcrumb-separator.vue2.js +5 -0
  99. package/dist/components/breadcrumb/breadcrumb.styles.d.ts +144 -0
  100. package/dist/components/breadcrumb/breadcrumb.styles.js +58 -0
  101. package/dist/components/breadcrumb/index.d.ts +13 -0
  102. package/dist/components/breadcrumb/index.js +7 -0
  103. package/dist/components/button/button.styles.d.ts +90 -0
  104. package/dist/components/button/button.styles.js +41 -0
  105. package/dist/components/button/button.vue.d.ts +144 -0
  106. package/dist/components/button/button.vue.js +131 -0
  107. package/dist/components/button/button.vue2.js +5 -0
  108. package/dist/components/button/index.d.ts +3 -0
  109. package/dist/components/button/index.js +2 -0
  110. package/dist/components/card/card-body.vue.d.ts +29 -0
  111. package/dist/components/card/card-body.vue.js +27 -0
  112. package/dist/components/card/card-body.vue2.js +5 -0
  113. package/dist/components/card/card-footer.vue.d.ts +29 -0
  114. package/dist/components/card/card-footer.vue.js +27 -0
  115. package/dist/components/card/card-footer.vue2.js +5 -0
  116. package/dist/components/card/card-header.vue.d.ts +29 -0
  117. package/dist/components/card/card-header.vue.js +27 -0
  118. package/dist/components/card/card-header.vue2.js +5 -0
  119. package/dist/components/card/card-media.vue.d.ts +44 -0
  120. package/dist/components/card/card-media.vue.js +56 -0
  121. package/dist/components/card/card-media.vue2.js +5 -0
  122. package/dist/components/card/card-root.vue.d.ts +128 -0
  123. package/dist/components/card/card-root.vue.js +58 -0
  124. package/dist/components/card/card-root.vue2.js +5 -0
  125. package/dist/components/card/card.styles.d.ts +216 -0
  126. package/dist/components/card/card.styles.js +86 -0
  127. package/dist/components/card/index.d.ts +11 -0
  128. package/dist/components/card/index.js +6 -0
  129. package/dist/components/checkbox/checkbox-group-item.vue.d.ts +22 -0
  130. package/dist/components/checkbox/checkbox-group-item.vue.js +27 -0
  131. package/dist/components/checkbox/checkbox-group-item.vue2.js +5 -0
  132. package/dist/components/checkbox/checkbox-group.vue.d.ts +35 -0
  133. package/dist/components/checkbox/checkbox-group.vue.js +53 -0
  134. package/dist/components/checkbox/checkbox-group.vue2.js +5 -0
  135. package/dist/components/checkbox/checkbox-indicator.vue.d.ts +40 -0
  136. package/dist/components/checkbox/checkbox-indicator.vue.js +58 -0
  137. package/dist/components/checkbox/checkbox-indicator.vue2.js +5 -0
  138. package/dist/components/checkbox/checkbox-label.vue.d.ts +27 -0
  139. package/dist/components/checkbox/checkbox-label.vue.js +24 -0
  140. package/dist/components/checkbox/checkbox-label.vue2.js +5 -0
  141. package/dist/components/checkbox/checkbox-root.vue.d.ts +42 -0
  142. package/dist/components/checkbox/checkbox-root.vue.js +51 -0
  143. package/dist/components/checkbox/checkbox-root.vue2.js +5 -0
  144. package/dist/components/checkbox/checkbox.styles.d.ts +155 -0
  145. package/dist/components/checkbox/checkbox.styles.js +66 -0
  146. package/dist/components/checkbox/index.d.ts +11 -0
  147. package/dist/components/checkbox/index.js +6 -0
  148. package/dist/components/divider/divider.styles.d.ts +93 -0
  149. package/dist/components/divider/divider.styles.js +43 -0
  150. package/dist/components/divider/divider.vue.d.ts +89 -0
  151. package/dist/components/divider/divider.vue.js +51 -0
  152. package/dist/components/divider/divider.vue2.js +5 -0
  153. package/dist/components/divider/index.d.ts +3 -0
  154. package/dist/components/divider/index.js +2 -0
  155. package/dist/components/index.d.ts +10 -0
  156. package/dist/components/spinner/index.d.ts +3 -0
  157. package/dist/components/spinner/index.js +2 -0
  158. package/dist/components/spinner/spinner.styles.d.ts +112 -0
  159. package/dist/components/spinner/spinner.styles.js +47 -0
  160. package/dist/components/spinner/spinner.vue.d.ts +31 -0
  161. package/dist/components/spinner/spinner.vue.js +102 -0
  162. package/dist/components/spinner/spinner.vue2.js +5 -0
  163. package/dist/components/types/shared-types.d.ts +4 -0
  164. package/dist/index.d.ts +2 -0
  165. package/dist/index.js +54 -0
  166. package/package.json +94 -0
@@ -0,0 +1,128 @@
1
+ import type { Colors, Sizes } from "../types/shared-types";
2
+ /**
3
+ * Props for the VifUI Card component.
4
+ * Controls appearance, behavior, interactivity, and layout.
5
+ */
6
+ export interface CardRootProps {
7
+ /**
8
+ * Determines the visual style of the card.
9
+ *
10
+ * - `elevated` — Raised surface with shadow.
11
+ * - `outlined` — Minimal style with a border.
12
+ * - `flat` — No elevation or border.
13
+ * - `ghost` — Ultra-light, low-emphasis style.
14
+ *
15
+ * @default "elevated"
16
+ * @example
17
+ * ```vue
18
+ * <Card variant="outlined" />
19
+ * ```
20
+ */
21
+ variant?: "elevated" | "outlined" | "flat" | "ghost";
22
+ /**
23
+ * Defines the card color theme.
24
+ * Affects borders, shadows, and subtle accents.
25
+ *
26
+ * @type {Colors}
27
+ * @example
28
+ * ```vue
29
+ * <Card color="brand" />
30
+ * ```
31
+ */
32
+ color?: Colors;
33
+ /**
34
+ * Controls internal padding and card density.
35
+ *
36
+ * Allowed sizes: `"sm" | "md" | "lg"`
37
+ *
38
+ * @default "md"
39
+ * @example
40
+ * ```vue
41
+ * <Card size="lg" />
42
+ * ```
43
+ */
44
+ size?: Exclude<Sizes, "xs" | "xl">;
45
+ /**
46
+ * Enables hover-based visual feedback.
47
+ * Useful for interactive cards such as dashboards or menus.
48
+ *
49
+ * @default false
50
+ * @example
51
+ * ```vue
52
+ * <Card hoverable />
53
+ * ```
54
+ */
55
+ hoverable?: boolean;
56
+ /**
57
+ * Makes the card stretch to fill the available vertical space.
58
+ *
59
+ * @default false
60
+ * @example
61
+ * ```vue
62
+ * <Card full-height />
63
+ * ```
64
+ */
65
+ fullHeight?: boolean;
66
+ /**
67
+ * Disables interactions and applies a muted appearance.
68
+ *
69
+ * @default false
70
+ * @example
71
+ * ```vue
72
+ * <Card disabled />
73
+ * ```
74
+ */
75
+ disabled?: boolean;
76
+ /**
77
+ * Shows a loading state and prevents interaction.
78
+ * Often used while content inside the card is still fetching/loading.
79
+ *
80
+ * @default false
81
+ * @example
82
+ * ```vue
83
+ * <Card loading />
84
+ * ```
85
+ */
86
+ loading?: boolean;
87
+ /**
88
+ * Custom utility classes for extending or overriding styles.
89
+ *
90
+ * @example
91
+ * ```vue
92
+ * <Card class="rounded-xl p-6" />
93
+ * ```
94
+ */
95
+ class?: string;
96
+ /**
97
+ * Make entire card clickable
98
+ */
99
+ href?: string;
100
+ /**
101
+ * Target for link
102
+ */
103
+ target?: "_blank" | "_self" | "_parent" | "_top";
104
+ }
105
+ declare var __VLS_10: {};
106
+ type __VLS_Slots = {} & {
107
+ default?: (props: typeof __VLS_10) => any;
108
+ };
109
+ declare const __VLS_component: import("vue").DefineComponent<CardRootProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
110
+ click: (event: MouseEvent) => any;
111
+ }, string, import("vue").PublicProps, Readonly<CardRootProps> & Readonly<{
112
+ onClick?: ((event: MouseEvent) => any) | undefined;
113
+ }>, {
114
+ size: Exclude<Sizes, "xs" | "xl">;
115
+ variant: "elevated" | "outlined" | "flat" | "ghost";
116
+ loading: boolean;
117
+ color: Colors;
118
+ disabled: boolean;
119
+ hoverable: boolean;
120
+ fullHeight: boolean;
121
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
122
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
123
+ export default _default;
124
+ type __VLS_WithSlots<T, S> = T & {
125
+ new (): {
126
+ $slots: S;
127
+ };
128
+ };
@@ -0,0 +1,58 @@
1
+ import { defineComponent, computed, provide, createBlock, openBlock, resolveDynamicComponent, normalizeClass, withCtx, renderSlot } from 'vue';
2
+ import { cardVariants } from './card.styles.js';
3
+
4
+ var _sfc_main = /* @__PURE__ */ defineComponent({
5
+ __name: "card-root",
6
+ props: {
7
+ variant: { type: String, required: false, default: "elevated" },
8
+ color: { type: String, required: false, default: "neutral" },
9
+ size: { type: String, required: false, default: "md" },
10
+ hoverable: { type: Boolean, required: false, default: false },
11
+ fullHeight: { type: Boolean, required: false, default: false },
12
+ disabled: { type: Boolean, required: false, default: false },
13
+ loading: { type: Boolean, required: false, default: false },
14
+ class: { type: String, required: false },
15
+ href: { type: String, required: false },
16
+ target: { type: String, required: false }
17
+ },
18
+ emits: ["click"],
19
+ setup(__props, { emit: __emit }) {
20
+ const props = __props;
21
+ const emit = __emit;
22
+ const slots = computed(
23
+ () => cardVariants({
24
+ variant: props.variant,
25
+ size: props.size,
26
+ color: props.color,
27
+ hoverable: props.hoverable,
28
+ fullHeight: props.fullHeight,
29
+ disabled: props.disabled,
30
+ loading: props.loading
31
+ })
32
+ );
33
+ provide("cardSlots", slots);
34
+ const componentTag = computed(() => props.href ? "a" : "div");
35
+ const handleClick = (event) => {
36
+ if (!props.disabled && !props.loading) {
37
+ emit("click", event);
38
+ }
39
+ };
40
+ return (_ctx, _cache) => {
41
+ return openBlock(), createBlock(resolveDynamicComponent(componentTag.value), {
42
+ class: normalizeClass([slots.value.root(), props.class]),
43
+ href: __props.href,
44
+ target: __props.href && __props.target,
45
+ "aria-disabled": __props.disabled || __props.loading || void 0,
46
+ onClick: handleClick
47
+ }, {
48
+ default: withCtx(() => [
49
+ renderSlot(_ctx.$slots, "default")
50
+ ]),
51
+ _: 3
52
+ /* FORWARDED */
53
+ }, 8, ["class", "href", "target", "aria-disabled"]);
54
+ };
55
+ }
56
+ });
57
+
58
+ export { _sfc_main as default };
@@ -0,0 +1,5 @@
1
+ import _sfc_main from './card-root.vue.js';
2
+
3
+
4
+
5
+ export { _sfc_main as default };
@@ -0,0 +1,216 @@
1
+ import type { VariantProps } from "tailwind-variants";
2
+ /**
3
+ * Card component variant mapper
4
+ *
5
+ * Maps variant props to @vifui/styles CSS classes
6
+ * Inspired by Vuesax's card architecture
7
+ */
8
+ export declare const cardVariants: import("tailwind-variants").TVReturnType<{
9
+ variant: {
10
+ elevated: {
11
+ root: string;
12
+ };
13
+ outlined: {
14
+ root: string;
15
+ };
16
+ flat: {
17
+ root: string;
18
+ };
19
+ ghost: {
20
+ root: string;
21
+ };
22
+ };
23
+ size: {
24
+ sm: {
25
+ root: string;
26
+ };
27
+ md: {
28
+ root: string;
29
+ };
30
+ lg: {
31
+ root: string;
32
+ };
33
+ };
34
+ color: {
35
+ neutral: {
36
+ root: string;
37
+ };
38
+ brand: {
39
+ root: string;
40
+ };
41
+ success: {
42
+ root: string;
43
+ };
44
+ warning: {
45
+ root: string;
46
+ };
47
+ danger: {
48
+ root: string;
49
+ };
50
+ };
51
+ hoverable: {
52
+ true: {
53
+ root: string;
54
+ };
55
+ };
56
+ fullHeight: {
57
+ true: {
58
+ root: string;
59
+ };
60
+ };
61
+ disabled: {
62
+ true: {
63
+ root: string;
64
+ };
65
+ };
66
+ loading: {
67
+ true: {
68
+ root: string;
69
+ };
70
+ };
71
+ }, {
72
+ root: string;
73
+ header: string;
74
+ body: string;
75
+ footer: string;
76
+ media: string;
77
+ }, undefined, {
78
+ variant: {
79
+ elevated: {
80
+ root: string;
81
+ };
82
+ outlined: {
83
+ root: string;
84
+ };
85
+ flat: {
86
+ root: string;
87
+ };
88
+ ghost: {
89
+ root: string;
90
+ };
91
+ };
92
+ size: {
93
+ sm: {
94
+ root: string;
95
+ };
96
+ md: {
97
+ root: string;
98
+ };
99
+ lg: {
100
+ root: string;
101
+ };
102
+ };
103
+ color: {
104
+ neutral: {
105
+ root: string;
106
+ };
107
+ brand: {
108
+ root: string;
109
+ };
110
+ success: {
111
+ root: string;
112
+ };
113
+ warning: {
114
+ root: string;
115
+ };
116
+ danger: {
117
+ root: string;
118
+ };
119
+ };
120
+ hoverable: {
121
+ true: {
122
+ root: string;
123
+ };
124
+ };
125
+ fullHeight: {
126
+ true: {
127
+ root: string;
128
+ };
129
+ };
130
+ disabled: {
131
+ true: {
132
+ root: string;
133
+ };
134
+ };
135
+ loading: {
136
+ true: {
137
+ root: string;
138
+ };
139
+ };
140
+ }, {
141
+ root: string;
142
+ header: string;
143
+ body: string;
144
+ footer: string;
145
+ media: string;
146
+ }, import("tailwind-variants").TVReturnType<{
147
+ variant: {
148
+ elevated: {
149
+ root: string;
150
+ };
151
+ outlined: {
152
+ root: string;
153
+ };
154
+ flat: {
155
+ root: string;
156
+ };
157
+ ghost: {
158
+ root: string;
159
+ };
160
+ };
161
+ size: {
162
+ sm: {
163
+ root: string;
164
+ };
165
+ md: {
166
+ root: string;
167
+ };
168
+ lg: {
169
+ root: string;
170
+ };
171
+ };
172
+ color: {
173
+ neutral: {
174
+ root: string;
175
+ };
176
+ brand: {
177
+ root: string;
178
+ };
179
+ success: {
180
+ root: string;
181
+ };
182
+ warning: {
183
+ root: string;
184
+ };
185
+ danger: {
186
+ root: string;
187
+ };
188
+ };
189
+ hoverable: {
190
+ true: {
191
+ root: string;
192
+ };
193
+ };
194
+ fullHeight: {
195
+ true: {
196
+ root: string;
197
+ };
198
+ };
199
+ disabled: {
200
+ true: {
201
+ root: string;
202
+ };
203
+ };
204
+ loading: {
205
+ true: {
206
+ root: string;
207
+ };
208
+ };
209
+ }, {
210
+ root: string;
211
+ header: string;
212
+ body: string;
213
+ footer: string;
214
+ media: string;
215
+ }, undefined, unknown, unknown, undefined>>;
216
+ export type CardVariantProps = VariantProps<typeof cardVariants>;
@@ -0,0 +1,86 @@
1
+ import { tv } from 'tailwind-variants';
2
+
3
+ const cardVariants = tv({
4
+ slots: {
5
+ root: "vif-card",
6
+ header: "vif-card__header",
7
+ body: "vif-card__body",
8
+ footer: "vif-card__footer",
9
+ media: "vif-card__media"
10
+ },
11
+ variants: {
12
+ variant: {
13
+ elevated: {
14
+ root: "vif-card--elevated"
15
+ },
16
+ outlined: {
17
+ root: "vif-card--outlined"
18
+ },
19
+ flat: {
20
+ root: "vif-card--flat"
21
+ },
22
+ ghost: {
23
+ root: "vif-card--ghost"
24
+ }
25
+ },
26
+ size: {
27
+ sm: {
28
+ root: "vif-card--sm"
29
+ },
30
+ md: {
31
+ root: "vif-card--md"
32
+ },
33
+ lg: {
34
+ root: "vif-card--lg"
35
+ }
36
+ },
37
+ color: {
38
+ neutral: {
39
+ root: "vif-card--neutral"
40
+ },
41
+ brand: {
42
+ root: "vif-card--brand"
43
+ },
44
+ success: {
45
+ root: "vif-card--success"
46
+ },
47
+ warning: {
48
+ root: "vif-card--warning"
49
+ },
50
+ danger: {
51
+ root: "vif-card--danger"
52
+ }
53
+ },
54
+ hoverable: {
55
+ true: {
56
+ root: "vif-card--hoverable"
57
+ }
58
+ },
59
+ fullHeight: {
60
+ true: {
61
+ root: "vif-card--full-height"
62
+ }
63
+ },
64
+ disabled: {
65
+ true: {
66
+ root: "vif-card--disabled"
67
+ }
68
+ },
69
+ loading: {
70
+ true: {
71
+ root: "vif-card--loading"
72
+ }
73
+ }
74
+ },
75
+ defaultVariants: {
76
+ variant: "elevated",
77
+ size: "md",
78
+ color: "neutral",
79
+ hoverable: false,
80
+ fullHeight: false,
81
+ disabled: false,
82
+ loading: false
83
+ }
84
+ });
85
+
86
+ export { cardVariants };
@@ -0,0 +1,11 @@
1
+ export { default as CardRoot } from "./card-root.vue";
2
+ export { default as CardHeader } from "./card-header.vue";
3
+ export { default as CardBody } from "./card-body.vue";
4
+ export { default as CardFooter } from "./card-footer.vue";
5
+ export { default as CardMedia } from "./card-media.vue";
6
+ export { cardVariants, type CardVariantProps } from "./card.styles";
7
+ export type { CardRootProps } from "./card-root.vue";
8
+ export type { CardHeaderProps } from "./card-header.vue";
9
+ export type { CardBodyProps } from "./card-body.vue";
10
+ export type { CardFooterProps } from "./card-footer.vue";
11
+ export type { CardMediaProps } from "./card-media.vue";
@@ -0,0 +1,6 @@
1
+ export { default as CardRoot } from './card-root.vue.js';
2
+ export { default as CardHeader } from './card-header.vue.js';
3
+ export { default as CardBody } from './card-body.vue.js';
4
+ export { default as CardFooter } from './card-footer.vue.js';
5
+ export { default as CardMedia } from './card-media.vue.js';
6
+ export { cardVariants } from './card.styles.js';
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Props for the VifUI CheckboxGroupItem component.
3
+ * Wrapper for individual checkbox items within a CheckboxGroup.
4
+ */
5
+ export interface CheckboxGroupItemProps {
6
+ /**
7
+ * Custom class names for the item wrapper.
8
+ */
9
+ class?: string;
10
+ }
11
+ declare var __VLS_1: {};
12
+ type __VLS_Slots = {} & {
13
+ default?: (props: typeof __VLS_1) => any;
14
+ };
15
+ declare const __VLS_component: import("vue").DefineComponent<CheckboxGroupItemProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<CheckboxGroupItemProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
16
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
17
+ export default _default;
18
+ type __VLS_WithSlots<T, S> = T & {
19
+ new (): {
20
+ $slots: S;
21
+ };
22
+ };
@@ -0,0 +1,27 @@
1
+ import { defineComponent, inject, createElementBlock, openBlock, normalizeClass, unref, renderSlot } from 'vue';
2
+
3
+ var _sfc_main = /* @__PURE__ */ defineComponent({
4
+ __name: "checkbox-group-item",
5
+ props: {
6
+ class: { type: String, required: false }
7
+ },
8
+ setup(__props) {
9
+ const props = __props;
10
+ const slots = inject("checkboxGroupSlots", null);
11
+ return (_ctx, _cache) => {
12
+ return openBlock(), createElementBlock(
13
+ "div",
14
+ {
15
+ class: normalizeClass([unref(slots)?.item?.(), props.class])
16
+ },
17
+ [
18
+ renderSlot(_ctx.$slots, "default")
19
+ ],
20
+ 2
21
+ /* CLASS */
22
+ );
23
+ };
24
+ }
25
+ });
26
+
27
+ export { _sfc_main as default };
@@ -0,0 +1,5 @@
1
+ import _sfc_main from './checkbox-group-item.vue.js';
2
+
3
+
4
+
5
+ export { _sfc_main as default };
@@ -0,0 +1,35 @@
1
+ import { type CheckboxGroupRootProps as RekaCheckboxGroupRootProps } from "reka-ui";
2
+ /**
3
+ * Props for the VifUI CheckboxGroup component.
4
+ * Wraps Reka UI's CheckboxGroupRoot for managing multiple checkboxes.
5
+ */
6
+ export interface CheckboxGroupProps extends RekaCheckboxGroupRootProps {
7
+ /**
8
+ * The orientation of the checkbox group.
9
+ * @default "vertical"
10
+ */
11
+ orientation?: "vertical" | "horizontal";
12
+ /**
13
+ * Custom class names for the group wrapper.
14
+ */
15
+ class?: string;
16
+ }
17
+ declare var __VLS_6: {};
18
+ type __VLS_Slots = {} & {
19
+ default?: (props: typeof __VLS_6) => any;
20
+ };
21
+ declare const __VLS_component: import("vue").DefineComponent<CheckboxGroupProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
22
+ "update:modelValue": (value: import("reka-ui").AcceptableValue[]) => any;
23
+ }, string, import("vue").PublicProps, Readonly<CheckboxGroupProps> & Readonly<{
24
+ "onUpdate:modelValue"?: ((value: import("reka-ui").AcceptableValue[]) => any) | undefined;
25
+ }>, {
26
+ as: import("reka-ui").AsTag | import("vue").Component;
27
+ orientation: "vertical" | "horizontal";
28
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
29
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
30
+ export default _default;
31
+ type __VLS_WithSlots<T, S> = T & {
32
+ new (): {
33
+ $slots: S;
34
+ };
35
+ };
@@ -0,0 +1,53 @@
1
+ import { defineComponent, computed, provide, createBlock, openBlock, unref, mergeProps, withCtx, renderSlot } from 'vue';
2
+ import { useForwardPropsEmits, CheckboxGroupRoot } from 'reka-ui';
3
+ import { checkboxGroupVariants } from './checkbox.styles.js';
4
+
5
+ var _sfc_main = /* @__PURE__ */ defineComponent({
6
+ __name: "checkbox-group",
7
+ props: {
8
+ orientation: { type: String, required: false, default: "vertical" },
9
+ class: { type: String, required: false },
10
+ defaultValue: { type: Array, required: false },
11
+ modelValue: { type: Array, required: false },
12
+ rovingFocus: { type: Boolean, required: false },
13
+ disabled: { type: Boolean, required: false },
14
+ as: { type: null, required: false, default: "div" },
15
+ asChild: { type: Boolean, required: false },
16
+ dir: { type: String, required: false },
17
+ loop: { type: Boolean, required: false },
18
+ name: { type: String, required: false },
19
+ required: { type: Boolean, required: false }
20
+ },
21
+ emits: ["update:modelValue"],
22
+ setup(__props, { emit: __emit }) {
23
+ const props = __props;
24
+ const emits = __emit;
25
+ const delegatedProps = computed(() => {
26
+ const { class: _, ...delegated } = props;
27
+ return delegated;
28
+ });
29
+ const forwarded = useForwardPropsEmits(delegatedProps, emits);
30
+ const slots = computed(
31
+ () => checkboxGroupVariants({
32
+ orientation: props.orientation
33
+ })
34
+ );
35
+ provide(
36
+ "checkboxGroupSlots",
37
+ slots
38
+ );
39
+ return (_ctx, _cache) => {
40
+ return openBlock(), createBlock(unref(CheckboxGroupRoot), mergeProps(unref(forwarded), {
41
+ class: [slots.value.root(), props.class]
42
+ }), {
43
+ default: withCtx(() => [
44
+ renderSlot(_ctx.$slots, "default")
45
+ ]),
46
+ _: 3
47
+ /* FORWARDED */
48
+ }, 16, ["class"]);
49
+ };
50
+ }
51
+ });
52
+
53
+ export { _sfc_main as default };
@@ -0,0 +1,5 @@
1
+ import _sfc_main from './checkbox-group.vue.js';
2
+
3
+
4
+
5
+ export { _sfc_main as default };