@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,87 @@
1
+ import type { VariantProps } from "tailwind-variants";
2
+ /**
3
+ * Badge component variant mapper
4
+ *
5
+ * Maps variant props to @vifui/styles CSS classes
6
+ * Follows VifUI design system
7
+ */
8
+ export declare const badgeVariants: import("tailwind-variants").TVReturnType<{
9
+ variant: {
10
+ solid: string;
11
+ soft: string;
12
+ outline: string;
13
+ flat: string;
14
+ };
15
+ color: {
16
+ neutral: string;
17
+ brand: string;
18
+ success: string;
19
+ warning: string;
20
+ danger: string;
21
+ };
22
+ size: {
23
+ xs: string;
24
+ sm: string;
25
+ md: string;
26
+ lg: string;
27
+ };
28
+ rounded: {
29
+ true: string;
30
+ };
31
+ dot: {
32
+ true: string;
33
+ };
34
+ }, undefined, "vif-badge", {
35
+ variant: {
36
+ solid: string;
37
+ soft: string;
38
+ outline: string;
39
+ flat: string;
40
+ };
41
+ color: {
42
+ neutral: string;
43
+ brand: string;
44
+ success: string;
45
+ warning: string;
46
+ danger: string;
47
+ };
48
+ size: {
49
+ xs: string;
50
+ sm: string;
51
+ md: string;
52
+ lg: string;
53
+ };
54
+ rounded: {
55
+ true: string;
56
+ };
57
+ dot: {
58
+ true: string;
59
+ };
60
+ }, undefined, import("tailwind-variants").TVReturnType<{
61
+ variant: {
62
+ solid: string;
63
+ soft: string;
64
+ outline: string;
65
+ flat: string;
66
+ };
67
+ color: {
68
+ neutral: string;
69
+ brand: string;
70
+ success: string;
71
+ warning: string;
72
+ danger: string;
73
+ };
74
+ size: {
75
+ xs: string;
76
+ sm: string;
77
+ md: string;
78
+ lg: string;
79
+ };
80
+ rounded: {
81
+ true: string;
82
+ };
83
+ dot: {
84
+ true: string;
85
+ };
86
+ }, undefined, "vif-badge", unknown, unknown, undefined>>;
87
+ export type BadgeVariantProps = VariantProps<typeof badgeVariants>;
@@ -0,0 +1,41 @@
1
+ import { tv } from 'tailwind-variants';
2
+
3
+ const badgeVariants = tv({
4
+ base: "vif-badge",
5
+ variants: {
6
+ variant: {
7
+ solid: "vif-badge--solid",
8
+ soft: "vif-badge--soft",
9
+ outline: "vif-badge--outline",
10
+ flat: "vif-badge--flat"
11
+ },
12
+ color: {
13
+ neutral: "vif-badge--neutral",
14
+ brand: "vif-badge--brand",
15
+ success: "vif-badge--success",
16
+ warning: "vif-badge--warning",
17
+ danger: "vif-badge--danger"
18
+ },
19
+ size: {
20
+ xs: "vif-badge--xs",
21
+ sm: "vif-badge--sm",
22
+ md: "vif-badge--md",
23
+ lg: "vif-badge--lg"
24
+ },
25
+ rounded: {
26
+ true: "vif-badge--rounded"
27
+ },
28
+ dot: {
29
+ true: "vif-badge--dot"
30
+ }
31
+ },
32
+ defaultVariants: {
33
+ variant: "solid",
34
+ color: "brand",
35
+ size: "sm",
36
+ rounded: false,
37
+ dot: false
38
+ }
39
+ });
40
+
41
+ export { badgeVariants };
@@ -0,0 +1,116 @@
1
+ import type { Colors, Sizes } from "../types/shared-types";
2
+ /**
3
+ * Props for the VifUI Badge component.
4
+ * Provides configuration for variant, size, color, and features.
5
+ */
6
+ export interface BadgeProps {
7
+ /**
8
+ * Defines the visual style of the badge.
9
+ *
10
+ * @type {"solid" | "soft" | "outline" | "flat"}
11
+ * @default "solid"
12
+ * @example
13
+ * ```vue
14
+ * <Badge variant="soft">New</Badge>
15
+ * ```
16
+ */
17
+ variant?: "solid" | "soft" | "outline" | "flat";
18
+ /**
19
+ * Defines the badge color scheme.
20
+ * @type {"neutral" | "brand" | "success" | "warning" | "danger"}
21
+ * @default "brand"
22
+ */
23
+ color?: Colors;
24
+ /**
25
+ * Controls the overall badge size.
26
+ *
27
+ * @type {"xs" | "sm" | "md" | "lg"}
28
+ * @default "sm"
29
+ * @example
30
+ * ```vue
31
+ * <Badge size="lg">Large</Badge>
32
+ * ```
33
+ */
34
+ size?: Exclude<Sizes, "xl">;
35
+ /**
36
+ * Fully rounded badge (pill shape).
37
+ *
38
+ * @default false
39
+ * @example
40
+ * ```vue
41
+ * <Badge rounded>Rounded</Badge>
42
+ * ```
43
+ */
44
+ rounded?: boolean;
45
+ /**
46
+ * Shows a dot indicator before the content.
47
+ *
48
+ * @default false
49
+ * @example
50
+ * ```vue
51
+ * <Badge dot>Active</Badge>
52
+ * ```
53
+ */
54
+ dot?: boolean;
55
+ /**
56
+ * Makes the badge removable with a close button.
57
+ *
58
+ * @default false
59
+ * @example
60
+ * ```vue
61
+ * <Badge removable @remove="handleRemove">Removable</Badge>
62
+ * ```
63
+ */
64
+ removable?: boolean;
65
+ /**
66
+ * Custom class names for extending or overriding styles.
67
+ *
68
+ * @example
69
+ * ```vue
70
+ * <Badge class="uppercase">Custom</Badge>
71
+ * ```
72
+ */
73
+ class?: string;
74
+ /**
75
+ * Icon to display before the badge content.
76
+ * Should be a component (e.g., from lucide-vue-next or @iconify/vue).
77
+ *
78
+ * @example
79
+ * ```vue
80
+ * <Badge :startIcon="CheckIcon">Verified</Badge>
81
+ * ```
82
+ */
83
+ startIcon?: any;
84
+ /**
85
+ * Icon to display after the badge content.
86
+ *
87
+ * @example
88
+ * ```vue
89
+ * <Badge :endIcon="ArrowRightIcon">Next</Badge>
90
+ * ```
91
+ */
92
+ endIcon?: any;
93
+ }
94
+ declare var __VLS_5: {};
95
+ type __VLS_Slots = {} & {
96
+ default?: (props: typeof __VLS_5) => any;
97
+ };
98
+ declare const __VLS_component: import("vue").DefineComponent<BadgeProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
99
+ remove: () => any;
100
+ }, string, import("vue").PublicProps, Readonly<BadgeProps> & Readonly<{
101
+ onRemove?: (() => any) | undefined;
102
+ }>, {
103
+ size: Exclude<Sizes, "xl">;
104
+ variant: "solid" | "soft" | "outline" | "flat";
105
+ color: Colors;
106
+ rounded: boolean;
107
+ dot: boolean;
108
+ removable: boolean;
109
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
110
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
111
+ export default _default;
112
+ type __VLS_WithSlots<T, S> = T & {
113
+ new (): {
114
+ $slots: S;
115
+ };
116
+ };
@@ -0,0 +1,79 @@
1
+ import { defineComponent, computed, createElementBlock, openBlock, normalizeClass, createCommentVNode, createBlock, renderSlot, resolveDynamicComponent, createVNode, unref } from 'vue';
2
+ import { Icon } from '@iconify/vue';
3
+ import { badgeVariants } from './badge.styles.js';
4
+
5
+ const _hoisted_1 = {
6
+ key: 0,
7
+ class: "vif-badge__dot",
8
+ "aria-hidden": "true"
9
+ };
10
+ var _sfc_main = /* @__PURE__ */ defineComponent({
11
+ __name: "badge",
12
+ props: {
13
+ variant: { type: String, required: false, default: "solid" },
14
+ color: { type: String, required: false, default: "brand" },
15
+ size: { type: String, required: false, default: "sm" },
16
+ rounded: { type: Boolean, required: false, default: false },
17
+ dot: { type: Boolean, required: false, default: false },
18
+ removable: { type: Boolean, required: false, default: false },
19
+ class: { type: String, required: false },
20
+ startIcon: { type: null, required: false },
21
+ endIcon: { type: null, required: false }
22
+ },
23
+ emits: ["remove"],
24
+ setup(__props, { emit: __emit }) {
25
+ const props = __props;
26
+ const emit = __emit;
27
+ const classes = computed(
28
+ () => badgeVariants({
29
+ variant: props.variant,
30
+ color: props.color,
31
+ size: props.size,
32
+ rounded: props.rounded,
33
+ dot: props.dot,
34
+ class: props.class
35
+ })
36
+ );
37
+ const showDot = computed(() => {
38
+ return props.dot && !props.startIcon && !props.endIcon;
39
+ });
40
+ const handleRemove = () => {
41
+ emit("remove");
42
+ };
43
+ return (_ctx, _cache) => {
44
+ return openBlock(), createElementBlock(
45
+ "span",
46
+ {
47
+ class: normalizeClass(classes.value)
48
+ },
49
+ [
50
+ showDot.value ? (openBlock(), createElementBlock("span", _hoisted_1)) : createCommentVNode("v-if", true),
51
+ __props.startIcon && __props.startIcon ? (openBlock(), createBlock(resolveDynamicComponent(__props.startIcon), {
52
+ key: 1,
53
+ class: "vif-badge__icon",
54
+ "aria-hidden": "true"
55
+ })) : createCommentVNode("v-if", true),
56
+ renderSlot(_ctx.$slots, "default"),
57
+ __props.endIcon ? (openBlock(), createBlock(resolveDynamicComponent(__props.endIcon), {
58
+ key: 2,
59
+ class: "vif-badge__icon",
60
+ "aria-hidden": "true"
61
+ })) : createCommentVNode("v-if", true),
62
+ __props.removable ? (openBlock(), createElementBlock("button", {
63
+ key: 3,
64
+ type: "button",
65
+ class: "vif-badge__close",
66
+ "aria-label": "Remove",
67
+ onClick: handleRemove
68
+ }, [
69
+ createVNode(unref(Icon), { icon: "lucide:x" })
70
+ ])) : createCommentVNode("v-if", true)
71
+ ],
72
+ 2
73
+ /* CLASS */
74
+ );
75
+ };
76
+ }
77
+ });
78
+
79
+ export { _sfc_main as default };
@@ -0,0 +1,5 @@
1
+ import _sfc_main from './badge.vue.js';
2
+
3
+
4
+
5
+ export { _sfc_main as default };
@@ -0,0 +1,3 @@
1
+ export { default as Badge } from './badge.vue';
2
+ export { badgeVariants, type BadgeVariantProps } from './badge.styles';
3
+ export type { BadgeProps } from './badge.vue';
@@ -0,0 +1,2 @@
1
+ export { default as Badge } from './badge.vue.js';
2
+ export { badgeVariants } from './badge.styles.js';
@@ -0,0 +1,29 @@
1
+ /**
2
+ * Props for the VifUI BreadcrumbCurrentLink component.
3
+ * Represents the current page/item in the breadcrumb and renders
4
+ * a `<span aria-current="page">` for accessibility.
5
+ */
6
+ export interface BreadcrumbCurrentLinkProps {
7
+ /**
8
+ * Custom class names for the current breadcrumb item.
9
+ * Applied to the `<span aria-current="page">` element.
10
+ *
11
+ * @example
12
+ * ```vue
13
+ * <BreadcrumbCurrentLink class="text-gray-900" />
14
+ * ```
15
+ */
16
+ class?: string;
17
+ }
18
+ declare var __VLS_1: {};
19
+ type __VLS_Slots = {} & {
20
+ default?: (props: typeof __VLS_1) => any;
21
+ };
22
+ declare const __VLS_component: import("vue").DefineComponent<BreadcrumbCurrentLinkProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<BreadcrumbCurrentLinkProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
23
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
24
+ export default _default;
25
+ type __VLS_WithSlots<T, S> = T & {
26
+ new (): {
27
+ $slots: S;
28
+ };
29
+ };
@@ -0,0 +1,28 @@
1
+ import { defineComponent, inject, createElementBlock, openBlock, normalizeClass, unref, renderSlot } from 'vue';
2
+
3
+ var _sfc_main = /* @__PURE__ */ defineComponent({
4
+ __name: "breadcrumb-current-link",
5
+ props: {
6
+ class: { type: String, required: false }
7
+ },
8
+ setup(__props) {
9
+ const props = __props;
10
+ const slots = inject("breadcrumbSlots", null);
11
+ return (_ctx, _cache) => {
12
+ return openBlock(), createElementBlock(
13
+ "span",
14
+ {
15
+ class: normalizeClass([unref(slots)?.currentLink?.(), props.class]),
16
+ "aria-current": "page"
17
+ },
18
+ [
19
+ renderSlot(_ctx.$slots, "default")
20
+ ],
21
+ 2
22
+ /* CLASS */
23
+ );
24
+ };
25
+ }
26
+ });
27
+
28
+ export { _sfc_main as default };
@@ -0,0 +1,5 @@
1
+ import _sfc_main from './breadcrumb-current-link.vue.js';
2
+
3
+
4
+
5
+ export { _sfc_main as default };
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Props for the VifUI BreadcrumbItem component.
3
+ * Represents a single `<li>` wrapper for breadcrumb content.
4
+ */
5
+ export interface BreadcrumbItemProps {
6
+ /**
7
+ * Custom class names for the breadcrumb item wrapper.
8
+ * Applied to the `<li>` element.
9
+ *
10
+ * @example
11
+ * ```vue
12
+ * <BreadcrumbItem class="font-medium" />
13
+ * ```
14
+ */
15
+ class?: string;
16
+ }
17
+ declare var __VLS_1: {};
18
+ type __VLS_Slots = {} & {
19
+ default?: (props: typeof __VLS_1) => any;
20
+ };
21
+ declare const __VLS_component: import("vue").DefineComponent<BreadcrumbItemProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<BreadcrumbItemProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
22
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
23
+ export default _default;
24
+ type __VLS_WithSlots<T, S> = T & {
25
+ new (): {
26
+ $slots: S;
27
+ };
28
+ };
@@ -0,0 +1,27 @@
1
+ import { defineComponent, inject, createElementBlock, openBlock, normalizeClass, unref, renderSlot } from 'vue';
2
+
3
+ var _sfc_main = /* @__PURE__ */ defineComponent({
4
+ __name: "breadcrumb-item",
5
+ props: {
6
+ class: { type: String, required: false }
7
+ },
8
+ setup(__props) {
9
+ const props = __props;
10
+ const slots = inject("breadcrumbSlots", null);
11
+ return (_ctx, _cache) => {
12
+ return openBlock(), createElementBlock(
13
+ "li",
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 './breadcrumb-item.vue.js';
2
+
3
+
4
+
5
+ export { _sfc_main as default };
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Props for the VifUI BreadcrumbLink component.
3
+ * Renders an interactive breadcrumb link (`<a>`) when `href` is provided,
4
+ * otherwise renders a non-interactive `<span>`.
5
+ */
6
+ export interface BreadcrumbLinkProps {
7
+ /**
8
+ * The URL target for the breadcrumb link.
9
+ * When provided, the component renders an `<a>` tag.
10
+ * When omitted, it renders a non-interactive `<span>`.
11
+ *
12
+ * @example
13
+ * ```vue
14
+ * <BreadcrumbLink href="/settings">Settings</BreadcrumbLink>
15
+ * ```
16
+ */
17
+ href?: string;
18
+ /**
19
+ * Disables the breadcrumb link.
20
+ * Applies `aria-disabled="true"` and prevents interaction.
21
+ *
22
+ * @default false
23
+ * @example
24
+ * ```vue
25
+ * <BreadcrumbLink disabled>Billing</BreadcrumbLink>
26
+ * ```
27
+ */
28
+ disabled?: boolean;
29
+ /**
30
+ * Custom class names for the breadcrumb link.
31
+ * Applied directly to the rendered component (`<a>` or `<span>`).
32
+ *
33
+ * @example
34
+ * ```vue
35
+ * <BreadcrumbLink class="text-brand-600" />
36
+ * ```
37
+ */
38
+ class?: string;
39
+ }
40
+ declare var __VLS_6: {};
41
+ type __VLS_Slots = {} & {
42
+ default?: (props: typeof __VLS_6) => any;
43
+ };
44
+ declare const __VLS_component: import("vue").DefineComponent<BreadcrumbLinkProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<BreadcrumbLinkProps> & Readonly<{}>, {
45
+ disabled: boolean;
46
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
47
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
48
+ export default _default;
49
+ type __VLS_WithSlots<T, S> = T & {
50
+ new (): {
51
+ $slots: S;
52
+ };
53
+ };
@@ -0,0 +1,30 @@
1
+ import { defineComponent, inject, computed, createBlock, openBlock, resolveDynamicComponent, normalizeClass, unref, withCtx, renderSlot } from 'vue';
2
+
3
+ var _sfc_main = /* @__PURE__ */ defineComponent({
4
+ __name: "breadcrumb-link",
5
+ props: {
6
+ href: { type: String, required: false },
7
+ disabled: { type: Boolean, required: false, default: false },
8
+ class: { type: String, required: false }
9
+ },
10
+ setup(__props) {
11
+ const props = __props;
12
+ const slots = inject("breadcrumbSlots", null);
13
+ const componentTag = computed(() => props.href ? "a" : "span");
14
+ return (_ctx, _cache) => {
15
+ return openBlock(), createBlock(resolveDynamicComponent(componentTag.value), {
16
+ href: __props.href,
17
+ class: normalizeClass([unref(slots)?.link?.(), props.class]),
18
+ "aria-disabled": __props.disabled || void 0
19
+ }, {
20
+ default: withCtx(() => [
21
+ renderSlot(_ctx.$slots, "default")
22
+ ]),
23
+ _: 3
24
+ /* FORWARDED */
25
+ }, 8, ["href", "class", "aria-disabled"]);
26
+ };
27
+ }
28
+ });
29
+
30
+ export { _sfc_main as default };
@@ -0,0 +1,5 @@
1
+ import _sfc_main from './breadcrumb-link.vue.js';
2
+
3
+
4
+
5
+ export { _sfc_main as default };
@@ -0,0 +1,28 @@
1
+ /**
2
+ * Props for the VifUI BreadcrumbList component.
3
+ * Represents the `<ol>` container that holds breadcrumb items.
4
+ */
5
+ export interface BreadcrumbListProps {
6
+ /**
7
+ * Custom class names for styling or extending the breadcrumb list.
8
+ * Applied directly to the `<ol>` element.
9
+ *
10
+ * @example
11
+ * ```vue
12
+ * <BreadcrumbList class="gap-3" />
13
+ * ```
14
+ */
15
+ class?: string;
16
+ }
17
+ declare var __VLS_1: {};
18
+ type __VLS_Slots = {} & {
19
+ default?: (props: typeof __VLS_1) => any;
20
+ };
21
+ declare const __VLS_component: import("vue").DefineComponent<BreadcrumbListProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<BreadcrumbListProps> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
22
+ declare const _default: __VLS_WithSlots<typeof __VLS_component, __VLS_Slots>;
23
+ export default _default;
24
+ type __VLS_WithSlots<T, S> = T & {
25
+ new (): {
26
+ $slots: S;
27
+ };
28
+ };
@@ -0,0 +1,27 @@
1
+ import { defineComponent, inject, createElementBlock, openBlock, normalizeClass, unref, renderSlot } from 'vue';
2
+
3
+ var _sfc_main = /* @__PURE__ */ defineComponent({
4
+ __name: "breadcrumb-list",
5
+ props: {
6
+ class: { type: String, required: false }
7
+ },
8
+ setup(__props) {
9
+ const props = __props;
10
+ const slots = inject("breadcrumbSlots", null);
11
+ return (_ctx, _cache) => {
12
+ return openBlock(), createElementBlock(
13
+ "ol",
14
+ {
15
+ class: normalizeClass([unref(slots)?.list?.(), 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 './breadcrumb-list.vue.js';
2
+
3
+
4
+
5
+ export { _sfc_main as default };