@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,78 @@
1
+ import type { Colors, Sizes } from "../types/shared-types";
2
+ /**
3
+ * Props for the VifUI Breadcrumb root component.
4
+ * Controls size, color, alignment, and style customization.
5
+ */
6
+ export interface BreadcrumbRootProps {
7
+ /**
8
+ * Defines the overall sizing for breadcrumb text, spacing,
9
+ * and separator dimensions.
10
+ *
11
+ * Allowed values: `"sm" | "md" | "lg"`
12
+ *
13
+ * @default "md"
14
+ * @example
15
+ * ```vue
16
+ * <Breadcrumb size="lg">
17
+ * <BreadcrumbItem>Home</BreadcrumbItem>
18
+ * </Breadcrumb>
19
+ * ```
20
+ */
21
+ size?: Exclude<Sizes, "xl" | "xs">;
22
+ /**
23
+ * Determines the color scheme applied to breadcrumb items
24
+ * and separators. Useful for matching the component to
25
+ * different themes or contexts.
26
+ *
27
+ * @default "neutral"
28
+ * @example
29
+ * ```vue
30
+ * <Breadcrumb color="brand">
31
+ * <BreadcrumbItem>Dashboard</BreadcrumbItem>
32
+ * </Breadcrumb>
33
+ * ```
34
+ */
35
+ color?: Colors;
36
+ /**
37
+ * Controls horizontal alignment of the entire breadcrumb.
38
+ *
39
+ * - `left` — Standard left alignment.
40
+ * - `center` — Centers the breadcrumb within the container.
41
+ * - `right` — Right-aligns the breadcrumb.
42
+ *
43
+ * @default "left"
44
+ * @example
45
+ * ```vue
46
+ * <Breadcrumb align="center">
47
+ * <BreadcrumbItem>Profile</BreadcrumbItem>
48
+ * </Breadcrumb>
49
+ * ```
50
+ */
51
+ align?: "left" | "center" | "right";
52
+ /**
53
+ * Custom utility classes for extending or overriding styles.
54
+ * Applied to the outer `<nav>` element.
55
+ *
56
+ * @example
57
+ * ```vue
58
+ * <Breadcrumb class="mb-4 text-sm" />
59
+ * ```
60
+ */
61
+ class?: string;
62
+ }
63
+ declare var __VLS_1: {};
64
+ type __VLS_Slots = {} & {
65
+ default?: (props: typeof __VLS_1) => any;
66
+ };
67
+ declare const __VLS_component: import("vue").DefineComponent<BreadcrumbRootProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<BreadcrumbRootProps> & Readonly<{}>, {
68
+ size: Exclude<Sizes, "xl" | "xs">;
69
+ color: Colors;
70
+ align: "left" | "center" | "right";
71
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
72
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
73
+ export default _default;
74
+ type __VLS_WithSlots<T, S> = T & {
75
+ new (): {
76
+ $slots: S;
77
+ };
78
+ };
@@ -0,0 +1,39 @@
1
+ import { defineComponent, computed, provide, createElementBlock, openBlock, normalizeClass, renderSlot } from 'vue';
2
+ import { breadcrumbVariants } from './breadcrumb.styles.js';
3
+
4
+ var _sfc_main = /* @__PURE__ */ defineComponent({
5
+ __name: "breadcrumb-root",
6
+ props: {
7
+ size: { type: String, required: false, default: "md" },
8
+ color: { type: String, required: false, default: "neutral" },
9
+ align: { type: String, required: false, default: "left" },
10
+ class: { type: String, required: false }
11
+ },
12
+ setup(__props) {
13
+ const props = __props;
14
+ const slots = computed(
15
+ () => breadcrumbVariants({
16
+ size: props.size,
17
+ color: props.color,
18
+ align: props.align
19
+ })
20
+ );
21
+ provide("breadcrumbSlots", slots);
22
+ return (_ctx, _cache) => {
23
+ return openBlock(), createElementBlock(
24
+ "nav",
25
+ {
26
+ class: normalizeClass([slots.value.root(), props.class]),
27
+ "aria-label": "Breadcrumb"
28
+ },
29
+ [
30
+ renderSlot(_ctx.$slots, "default")
31
+ ],
32
+ 2
33
+ /* CLASS */
34
+ );
35
+ };
36
+ }
37
+ });
38
+
39
+ export { _sfc_main as default };
@@ -0,0 +1,5 @@
1
+ import _sfc_main from './breadcrumb-root.vue.js';
2
+
3
+
4
+
5
+ export { _sfc_main as default };
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Props for the VifUI BreadcrumbSeparator component.
3
+ * Renders the visual separator between breadcrumb items, typically an icon.
4
+ */
5
+ export interface BreadcrumbSeparatorProps {
6
+ /**
7
+ * Custom separator icon.
8
+ * Accepts any Iconify icon name.
9
+ *
10
+ * @default "lucide:chevron-right"
11
+ * @example
12
+ * ```vue
13
+ * <BreadcrumbSeparator icon="mdi:slash-forward" />
14
+ * ```
15
+ */
16
+ icon?: string;
17
+ /**
18
+ * Custom class names for the breadcrumb separator.
19
+ * Applied directly to the `<li>` wrapper.
20
+ *
21
+ * @example
22
+ * ```vue
23
+ * <BreadcrumbSeparator class="text-gray-400" />
24
+ * ```
25
+ */
26
+ class?: string;
27
+ }
28
+ declare var __VLS_1: {};
29
+ type __VLS_Slots = {} & {
30
+ default?: (props: typeof __VLS_1) => any;
31
+ };
32
+ declare const __VLS_component: import("vue").DefineComponent<BreadcrumbSeparatorProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<BreadcrumbSeparatorProps> & Readonly<{}>, {
33
+ icon: string;
34
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
35
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
36
+ export default _default;
37
+ type __VLS_WithSlots<T, S> = T & {
38
+ new (): {
39
+ $slots: S;
40
+ };
41
+ };
@@ -0,0 +1,32 @@
1
+ import { defineComponent, inject, createElementBlock, openBlock, normalizeClass, unref, renderSlot, createVNode } from 'vue';
2
+ import { Icon } from '@iconify/vue';
3
+
4
+ var _sfc_main = /* @__PURE__ */ defineComponent({
5
+ __name: "breadcrumb-separator",
6
+ props: {
7
+ icon: { type: String, required: false, default: "lucide:chevron-right" },
8
+ class: { type: String, required: false }
9
+ },
10
+ setup(__props) {
11
+ const props = __props;
12
+ const slots = inject("breadcrumbSlots", null);
13
+ return (_ctx, _cache) => {
14
+ return openBlock(), createElementBlock(
15
+ "li",
16
+ {
17
+ class: normalizeClass([unref(slots)?.separator?.(), props.class]),
18
+ "aria-hidden": "true"
19
+ },
20
+ [
21
+ renderSlot(_ctx.$slots, "default", {}, () => [
22
+ createVNode(unref(Icon), { icon: __props.icon }, null, 8, ["icon"])
23
+ ])
24
+ ],
25
+ 2
26
+ /* CLASS */
27
+ );
28
+ };
29
+ }
30
+ });
31
+
32
+ export { _sfc_main as default };
@@ -0,0 +1,5 @@
1
+ import _sfc_main from './breadcrumb-separator.vue.js';
2
+
3
+
4
+
5
+ export { _sfc_main as default };
@@ -0,0 +1,144 @@
1
+ import type { VariantProps } from "tailwind-variants";
2
+ /**
3
+ * Breadcrumb component variant mapper
4
+ *
5
+ * Maps variant props to @vifui/styles CSS classes
6
+ * Inspired by Vuesax's breadcrumb architecture
7
+ */
8
+ export declare const breadcrumbVariants: import("tailwind-variants").TVReturnType<{
9
+ size: {
10
+ sm: {
11
+ root: string;
12
+ };
13
+ md: {};
14
+ lg: {
15
+ root: string;
16
+ };
17
+ };
18
+ color: {
19
+ neutral: {
20
+ root: string;
21
+ };
22
+ brand: {
23
+ root: string;
24
+ };
25
+ success: {
26
+ root: string;
27
+ };
28
+ warning: {
29
+ root: string;
30
+ };
31
+ danger: {
32
+ root: string;
33
+ };
34
+ };
35
+ align: {
36
+ left: {
37
+ root: string;
38
+ };
39
+ center: {
40
+ root: string;
41
+ };
42
+ right: {
43
+ root: string;
44
+ };
45
+ };
46
+ }, {
47
+ root: string;
48
+ list: string;
49
+ item: string;
50
+ link: string;
51
+ currentLink: string;
52
+ separator: string;
53
+ }, undefined, {
54
+ size: {
55
+ sm: {
56
+ root: string;
57
+ };
58
+ md: {};
59
+ lg: {
60
+ root: string;
61
+ };
62
+ };
63
+ color: {
64
+ neutral: {
65
+ root: string;
66
+ };
67
+ brand: {
68
+ root: string;
69
+ };
70
+ success: {
71
+ root: string;
72
+ };
73
+ warning: {
74
+ root: string;
75
+ };
76
+ danger: {
77
+ root: string;
78
+ };
79
+ };
80
+ align: {
81
+ left: {
82
+ root: string;
83
+ };
84
+ center: {
85
+ root: string;
86
+ };
87
+ right: {
88
+ root: string;
89
+ };
90
+ };
91
+ }, {
92
+ root: string;
93
+ list: string;
94
+ item: string;
95
+ link: string;
96
+ currentLink: string;
97
+ separator: string;
98
+ }, import("tailwind-variants").TVReturnType<{
99
+ size: {
100
+ sm: {
101
+ root: string;
102
+ };
103
+ md: {};
104
+ lg: {
105
+ root: string;
106
+ };
107
+ };
108
+ color: {
109
+ neutral: {
110
+ root: string;
111
+ };
112
+ brand: {
113
+ root: string;
114
+ };
115
+ success: {
116
+ root: string;
117
+ };
118
+ warning: {
119
+ root: string;
120
+ };
121
+ danger: {
122
+ root: string;
123
+ };
124
+ };
125
+ align: {
126
+ left: {
127
+ root: string;
128
+ };
129
+ center: {
130
+ root: string;
131
+ };
132
+ right: {
133
+ root: string;
134
+ };
135
+ };
136
+ }, {
137
+ root: string;
138
+ list: string;
139
+ item: string;
140
+ link: string;
141
+ currentLink: string;
142
+ separator: string;
143
+ }, undefined, unknown, unknown, undefined>>;
144
+ export type BreadcrumbVariantProps = VariantProps<typeof breadcrumbVariants>;
@@ -0,0 +1,58 @@
1
+ import { tv } from 'tailwind-variants';
2
+
3
+ const breadcrumbVariants = tv({
4
+ slots: {
5
+ root: "vif-breadcrumb",
6
+ list: "vif-breadcrumb__list",
7
+ item: "vif-breadcrumb__item",
8
+ link: "vif-breadcrumb__link",
9
+ currentLink: "vif-breadcrumb__current-link",
10
+ separator: "vif-breadcrumb__separator"
11
+ },
12
+ variants: {
13
+ size: {
14
+ sm: {
15
+ root: "vif-breadcrumb--sm"
16
+ },
17
+ md: {},
18
+ lg: {
19
+ root: "vif-breadcrumb--lg"
20
+ }
21
+ },
22
+ color: {
23
+ neutral: {
24
+ root: "vif-breadcrumb--neutral"
25
+ },
26
+ brand: {
27
+ root: "vif-breadcrumb--brand"
28
+ },
29
+ success: {
30
+ root: "vif-breadcrumb--success"
31
+ },
32
+ warning: {
33
+ root: "vif-breadcrumb--warning"
34
+ },
35
+ danger: {
36
+ root: "vif-breadcrumb--danger"
37
+ }
38
+ },
39
+ align: {
40
+ left: {
41
+ root: "vif-breadcrumb--left"
42
+ },
43
+ center: {
44
+ root: "vif-breadcrumb--center"
45
+ },
46
+ right: {
47
+ root: "vif-breadcrumb--right"
48
+ }
49
+ }
50
+ },
51
+ defaultVariants: {
52
+ size: "md",
53
+ color: "neutral",
54
+ align: "left"
55
+ }
56
+ });
57
+
58
+ export { breadcrumbVariants };
@@ -0,0 +1,13 @@
1
+ export { default as BreadcrumbRoot } from "./breadcrumb-root.vue";
2
+ export { default as BreadcrumbList } from "./breadcrumb-list.vue";
3
+ export { default as BreadcrumbItem } from "./breadcrumb-item.vue";
4
+ export { default as BreadcrumbLink } from "./breadcrumb-link.vue";
5
+ export { default as BreadcrumbCurrentLink } from "./breadcrumb-current-link.vue";
6
+ export { default as BreadcrumbSeparator } from "./breadcrumb-separator.vue";
7
+ export { breadcrumbVariants, type BreadcrumbVariantProps } from "./breadcrumb.styles";
8
+ export type { BreadcrumbRootProps } from "./breadcrumb-root.vue";
9
+ export type { BreadcrumbListProps } from "./breadcrumb-list.vue";
10
+ export type { BreadcrumbItemProps } from "./breadcrumb-item.vue";
11
+ export type { BreadcrumbLinkProps } from "./breadcrumb-link.vue";
12
+ export type { BreadcrumbCurrentLinkProps } from "./breadcrumb-current-link.vue";
13
+ export type { BreadcrumbSeparatorProps } from "./breadcrumb-separator.vue";
@@ -0,0 +1,7 @@
1
+ export { default as BreadcrumbRoot } from './breadcrumb-root.vue.js';
2
+ export { default as BreadcrumbList } from './breadcrumb-list.vue.js';
3
+ export { default as BreadcrumbItem } from './breadcrumb-item.vue.js';
4
+ export { default as BreadcrumbLink } from './breadcrumb-link.vue.js';
5
+ export { default as BreadcrumbCurrentLink } from './breadcrumb-current-link.vue.js';
6
+ export { default as BreadcrumbSeparator } from './breadcrumb-separator.vue.js';
7
+ export { breadcrumbVariants } from './breadcrumb.styles.js';
@@ -0,0 +1,90 @@
1
+ import type { VariantProps } from "tailwind-variants";
2
+ /**
3
+ * Button component variant mapper
4
+ *
5
+ * Maps variant props to @vifui/styles CSS classes
6
+ * Inspired by Vuesax's button architecture
7
+ */
8
+ export declare const buttonVariants: import("tailwind-variants").TVReturnType<{
9
+ variant: {
10
+ primary: string;
11
+ secondary: string;
12
+ soft: string;
13
+ ghost: string;
14
+ outline: string;
15
+ shadow: string;
16
+ danger: string;
17
+ };
18
+ color: {
19
+ neutral: string;
20
+ brand: string;
21
+ success: string;
22
+ warning: string;
23
+ danger: string;
24
+ };
25
+ size: {
26
+ xs: string;
27
+ sm: string;
28
+ md: string;
29
+ lg: string;
30
+ xl: string;
31
+ };
32
+ isIconOnly: {
33
+ true: string;
34
+ };
35
+ }, undefined, "vif-button", {
36
+ variant: {
37
+ primary: string;
38
+ secondary: string;
39
+ soft: string;
40
+ ghost: string;
41
+ outline: string;
42
+ shadow: string;
43
+ danger: string;
44
+ };
45
+ color: {
46
+ neutral: string;
47
+ brand: string;
48
+ success: string;
49
+ warning: string;
50
+ danger: string;
51
+ };
52
+ size: {
53
+ xs: string;
54
+ sm: string;
55
+ md: string;
56
+ lg: string;
57
+ xl: string;
58
+ };
59
+ isIconOnly: {
60
+ true: string;
61
+ };
62
+ }, undefined, import("tailwind-variants").TVReturnType<{
63
+ variant: {
64
+ primary: string;
65
+ secondary: string;
66
+ soft: string;
67
+ ghost: string;
68
+ outline: string;
69
+ shadow: string;
70
+ danger: string;
71
+ };
72
+ color: {
73
+ neutral: string;
74
+ brand: string;
75
+ success: string;
76
+ warning: string;
77
+ danger: string;
78
+ };
79
+ size: {
80
+ xs: string;
81
+ sm: string;
82
+ md: string;
83
+ lg: string;
84
+ xl: string;
85
+ };
86
+ isIconOnly: {
87
+ true: string;
88
+ };
89
+ }, undefined, "vif-button", unknown, unknown, undefined>>;
90
+ export type ButtonVariantProps = VariantProps<typeof buttonVariants>;
@@ -0,0 +1,41 @@
1
+ import { tv } from 'tailwind-variants';
2
+
3
+ const buttonVariants = tv({
4
+ base: "vif-button",
5
+ variants: {
6
+ variant: {
7
+ primary: "vif-button--primary",
8
+ secondary: "vif-button--secondary",
9
+ soft: "vif-button--soft",
10
+ ghost: "vif-button--ghost",
11
+ outline: "vif-button--outline",
12
+ shadow: "vif-button--shadow",
13
+ danger: "vif-button--danger"
14
+ },
15
+ color: {
16
+ neutral: "vif-button--neutral",
17
+ brand: "vif-button--brand",
18
+ success: "vif-button--success",
19
+ warning: "vif-button--warning",
20
+ danger: "vif-button--danger"
21
+ },
22
+ size: {
23
+ xs: "vif-button--xs",
24
+ sm: "vif-button--sm",
25
+ md: "",
26
+ lg: "vif-button--lg",
27
+ xl: "vif-button--xl"
28
+ },
29
+ isIconOnly: {
30
+ true: "vif-button--icon-only"
31
+ }
32
+ },
33
+ defaultVariants: {
34
+ variant: "primary",
35
+ color: "brand",
36
+ size: "md",
37
+ isIconOnly: false
38
+ }
39
+ });
40
+
41
+ export { buttonVariants };