@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.
- package/README.md +204 -0
- package/dist/components/accordion/accordion-body.vue.d.ts +29 -0
- package/dist/components/accordion/accordion-body.vue.js +27 -0
- package/dist/components/accordion/accordion-body.vue2.js +5 -0
- package/dist/components/accordion/accordion-content.vue.d.ts +29 -0
- package/dist/components/accordion/accordion-content.vue.js +26 -0
- package/dist/components/accordion/accordion-content.vue2.js +5 -0
- package/dist/components/accordion/accordion-header.vue.d.ts +30 -0
- package/dist/components/accordion/accordion-header.vue.js +28 -0
- package/dist/components/accordion/accordion-header.vue2.js +5 -0
- package/dist/components/accordion/accordion-indicator.vue.d.ts +32 -0
- package/dist/components/accordion/accordion-indicator.vue.js +22 -0
- package/dist/components/accordion/accordion-indicator.vue2.js +5 -0
- package/dist/components/accordion/accordion-item.vue.d.ts +54 -0
- package/dist/components/accordion/accordion-item.vue.js +30 -0
- package/dist/components/accordion/accordion-item.vue2.js +5 -0
- package/dist/components/accordion/accordion-root.vue.d.ts +94 -0
- package/dist/components/accordion/accordion-root.vue.js +55 -0
- package/dist/components/accordion/accordion-root.vue2.js +5 -0
- package/dist/components/accordion/accordion-trigger.vue.d.ts +44 -0
- package/dist/components/accordion/accordion-trigger.vue.js +30 -0
- package/dist/components/accordion/accordion-trigger.vue2.js +5 -0
- package/dist/components/accordion/accordion.styles.d.ts +99 -0
- package/dist/components/accordion/accordion.styles.js +42 -0
- package/dist/components/accordion/index.d.ts +15 -0
- package/dist/components/accordion/index.js +8 -0
- package/dist/components/alert/alert-body.vue.d.ts +16 -0
- package/dist/components/alert/alert-body.vue.js +54 -0
- package/dist/components/alert/alert-body.vue2.js +5 -0
- package/dist/components/alert/alert-close.vue.d.ts +12 -0
- package/dist/components/alert/alert-close.vue.js +38 -0
- package/dist/components/alert/alert-close.vue2.js +5 -0
- package/dist/components/alert/alert-content.vue.d.ts +28 -0
- package/dist/components/alert/alert-content.vue.js +54 -0
- package/dist/components/alert/alert-content.vue2.js +5 -0
- package/dist/components/alert/alert-description.vue.d.ts +16 -0
- package/dist/components/alert/alert-description.vue.js +41 -0
- package/dist/components/alert/alert-description.vue2.js +5 -0
- package/dist/components/alert/alert-footer.vue.d.ts +16 -0
- package/dist/components/alert/alert-footer.vue.js +54 -0
- package/dist/components/alert/alert-footer.vue2.js +5 -0
- package/dist/components/alert/alert-header.vue.d.ts +16 -0
- package/dist/components/alert/alert-header.vue.js +54 -0
- package/dist/components/alert/alert-header.vue2.js +5 -0
- package/dist/components/alert/alert-icon.vue.d.ts +8 -0
- package/dist/components/alert/alert-icon.vue.js +43 -0
- package/dist/components/alert/alert-icon.vue2.js +5 -0
- package/dist/components/alert/alert-root.vue.d.ts +48 -0
- package/dist/components/alert/alert-root.vue.js +57 -0
- package/dist/components/alert/alert-root.vue2.js +5 -0
- package/dist/components/alert/alert-title.vue.d.ts +16 -0
- package/dist/components/alert/alert-title.vue.js +41 -0
- package/dist/components/alert/alert-title.vue2.js +5 -0
- package/dist/components/alert/alert.styles.d.ts +96 -0
- package/dist/components/alert/alert.styles.js +147 -0
- package/dist/components/alert/index.d.ts +19 -0
- package/dist/components/alert/index.js +10 -0
- package/dist/components/avatar/avatar-fallback.vue.d.ts +14 -0
- package/dist/components/avatar/avatar-fallback.vue.js +35 -0
- package/dist/components/avatar/avatar-fallback.vue2.js +5 -0
- package/dist/components/avatar/avatar-group.vue.d.ts +20 -0
- package/dist/components/avatar/avatar-group.vue.js +101 -0
- package/dist/components/avatar/avatar-group.vue2.js +5 -0
- package/dist/components/avatar/avatar-image.vue.d.ts +14 -0
- package/dist/components/avatar/avatar-image.vue.js +37 -0
- package/dist/components/avatar/avatar-image.vue2.js +5 -0
- package/dist/components/avatar/avatar-root.vue.d.ts +57 -0
- package/dist/components/avatar/avatar-root.vue.js +102 -0
- package/dist/components/avatar/avatar-root.vue2.js +5 -0
- package/dist/components/avatar/avatar.styles.d.ts +209 -0
- package/dist/components/avatar/avatar.styles.js +50 -0
- package/dist/components/avatar/index.d.ts +9 -0
- package/dist/components/avatar/index.js +5 -0
- package/dist/components/badge/badge.styles.d.ts +87 -0
- package/dist/components/badge/badge.styles.js +41 -0
- package/dist/components/badge/badge.vue.d.ts +116 -0
- package/dist/components/badge/badge.vue.js +79 -0
- package/dist/components/badge/badge.vue2.js +5 -0
- package/dist/components/badge/index.d.ts +3 -0
- package/dist/components/badge/index.js +2 -0
- package/dist/components/breadcrumb/breadcrumb-current-link.vue.d.ts +29 -0
- package/dist/components/breadcrumb/breadcrumb-current-link.vue.js +28 -0
- package/dist/components/breadcrumb/breadcrumb-current-link.vue2.js +5 -0
- package/dist/components/breadcrumb/breadcrumb-item.vue.d.ts +28 -0
- package/dist/components/breadcrumb/breadcrumb-item.vue.js +27 -0
- package/dist/components/breadcrumb/breadcrumb-item.vue2.js +5 -0
- package/dist/components/breadcrumb/breadcrumb-link.vue.d.ts +53 -0
- package/dist/components/breadcrumb/breadcrumb-link.vue.js +30 -0
- package/dist/components/breadcrumb/breadcrumb-link.vue2.js +5 -0
- package/dist/components/breadcrumb/breadcrumb-list.vue.d.ts +28 -0
- package/dist/components/breadcrumb/breadcrumb-list.vue.js +27 -0
- package/dist/components/breadcrumb/breadcrumb-list.vue2.js +5 -0
- package/dist/components/breadcrumb/breadcrumb-root.vue.d.ts +78 -0
- package/dist/components/breadcrumb/breadcrumb-root.vue.js +39 -0
- package/dist/components/breadcrumb/breadcrumb-root.vue2.js +5 -0
- package/dist/components/breadcrumb/breadcrumb-separator.vue.d.ts +41 -0
- package/dist/components/breadcrumb/breadcrumb-separator.vue.js +32 -0
- package/dist/components/breadcrumb/breadcrumb-separator.vue2.js +5 -0
- package/dist/components/breadcrumb/breadcrumb.styles.d.ts +144 -0
- package/dist/components/breadcrumb/breadcrumb.styles.js +58 -0
- package/dist/components/breadcrumb/index.d.ts +13 -0
- package/dist/components/breadcrumb/index.js +7 -0
- package/dist/components/button/button.styles.d.ts +90 -0
- package/dist/components/button/button.styles.js +41 -0
- package/dist/components/button/button.vue.d.ts +144 -0
- package/dist/components/button/button.vue.js +131 -0
- package/dist/components/button/button.vue2.js +5 -0
- package/dist/components/button/index.d.ts +3 -0
- package/dist/components/button/index.js +2 -0
- package/dist/components/card/card-body.vue.d.ts +29 -0
- package/dist/components/card/card-body.vue.js +27 -0
- package/dist/components/card/card-body.vue2.js +5 -0
- package/dist/components/card/card-footer.vue.d.ts +29 -0
- package/dist/components/card/card-footer.vue.js +27 -0
- package/dist/components/card/card-footer.vue2.js +5 -0
- package/dist/components/card/card-header.vue.d.ts +29 -0
- package/dist/components/card/card-header.vue.js +27 -0
- package/dist/components/card/card-header.vue2.js +5 -0
- package/dist/components/card/card-media.vue.d.ts +44 -0
- package/dist/components/card/card-media.vue.js +56 -0
- package/dist/components/card/card-media.vue2.js +5 -0
- package/dist/components/card/card-root.vue.d.ts +128 -0
- package/dist/components/card/card-root.vue.js +58 -0
- package/dist/components/card/card-root.vue2.js +5 -0
- package/dist/components/card/card.styles.d.ts +216 -0
- package/dist/components/card/card.styles.js +86 -0
- package/dist/components/card/index.d.ts +11 -0
- package/dist/components/card/index.js +6 -0
- package/dist/components/checkbox/checkbox-group-item.vue.d.ts +22 -0
- package/dist/components/checkbox/checkbox-group-item.vue.js +27 -0
- package/dist/components/checkbox/checkbox-group-item.vue2.js +5 -0
- package/dist/components/checkbox/checkbox-group.vue.d.ts +35 -0
- package/dist/components/checkbox/checkbox-group.vue.js +53 -0
- package/dist/components/checkbox/checkbox-group.vue2.js +5 -0
- package/dist/components/checkbox/checkbox-indicator.vue.d.ts +40 -0
- package/dist/components/checkbox/checkbox-indicator.vue.js +58 -0
- package/dist/components/checkbox/checkbox-indicator.vue2.js +5 -0
- package/dist/components/checkbox/checkbox-label.vue.d.ts +27 -0
- package/dist/components/checkbox/checkbox-label.vue.js +24 -0
- package/dist/components/checkbox/checkbox-label.vue2.js +5 -0
- package/dist/components/checkbox/checkbox-root.vue.d.ts +42 -0
- package/dist/components/checkbox/checkbox-root.vue.js +51 -0
- package/dist/components/checkbox/checkbox-root.vue2.js +5 -0
- package/dist/components/checkbox/checkbox.styles.d.ts +155 -0
- package/dist/components/checkbox/checkbox.styles.js +66 -0
- package/dist/components/checkbox/index.d.ts +11 -0
- package/dist/components/checkbox/index.js +6 -0
- package/dist/components/divider/divider.styles.d.ts +93 -0
- package/dist/components/divider/divider.styles.js +43 -0
- package/dist/components/divider/divider.vue.d.ts +89 -0
- package/dist/components/divider/divider.vue.js +51 -0
- package/dist/components/divider/divider.vue2.js +5 -0
- package/dist/components/divider/index.d.ts +3 -0
- package/dist/components/divider/index.js +2 -0
- package/dist/components/index.d.ts +10 -0
- package/dist/components/spinner/index.d.ts +3 -0
- package/dist/components/spinner/index.js +2 -0
- package/dist/components/spinner/spinner.styles.d.ts +112 -0
- package/dist/components/spinner/spinner.styles.js +47 -0
- package/dist/components/spinner/spinner.vue.d.ts +31 -0
- package/dist/components/spinner/spinner.vue.js +102 -0
- package/dist/components/spinner/spinner.vue2.js +5 -0
- package/dist/components/types/shared-types.d.ts +4 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +54 -0
- 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,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,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,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,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 };
|