@velkymx/vibeui 0.6.0 → 0.8.0
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 +13 -8
- package/dist/components/VibeAccordion.vue.d.ts +2 -2
- package/dist/components/VibeAlert.vue.d.ts +9 -0
- package/dist/components/VibeBadge.vue.d.ts +9 -0
- package/dist/components/VibeButton.vue.d.ts +9 -0
- package/dist/components/VibeDataTable.vue.d.ts +3 -1
- package/dist/components/VibeDropdown.vue.d.ts +2 -2
- package/dist/components/VibeFormInput.vue.d.ts +19 -1
- package/dist/components/VibeFormWysiwyg.vue.d.ts +9 -0
- package/dist/components/VibeInputGroup.vue.d.ts +60 -0
- package/dist/components/VibeLink.vue.d.ts +112 -0
- package/dist/components/VibeNav.vue.d.ts +11 -2
- package/dist/components/index.d.ts +3 -1
- package/dist/composables/useBackButton.d.ts +9 -0
- package/dist/composables/useBreakpoints.d.ts +13 -0
- package/dist/composables/useColorMode.d.ts +15 -0
- package/dist/index.d.ts +3 -0
- package/dist/types.d.ts +1 -0
- package/dist/vibeui.css +1 -1
- package/dist/vibeui.es.js +1637 -1417
- package/dist/vibeui.umd.js +1 -1
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -41,19 +41,19 @@ createApp(App).use(VibeUI).mount('#app');
|
|
|
41
41
|
|
|
42
42
|
## Advanced Interactivity
|
|
43
43
|
|
|
44
|
-
VibeUI v0.
|
|
44
|
+
VibeUI v0.8.0 is optimized for mobile and hybrid apps, and fully abstracts Bootstrap's JavaScript. You no longer need to manually initialize tooltips, modals, or collapses.
|
|
45
45
|
|
|
46
46
|
```vue
|
|
47
47
|
<template>
|
|
48
48
|
<div>
|
|
49
|
-
<!-- Automatic tooltip initialization -->
|
|
49
|
+
<!-- Automatic tooltip initialization with touch optimization -->
|
|
50
50
|
<VibeTooltip text="I just work!">
|
|
51
|
-
<VibeButton>Hover Me</VibeButton>
|
|
51
|
+
<VibeButton>Hover or Tap Me</VibeButton>
|
|
52
52
|
</VibeTooltip>
|
|
53
53
|
|
|
54
|
-
<!-- Full v-model support for Modals -->
|
|
54
|
+
<!-- Full v-model support for Modals with Android back button support -->
|
|
55
55
|
<VibeModal v-model="showModal" title="Hello!">
|
|
56
|
-
Fully reactive and
|
|
56
|
+
Fully reactive, automated, and hybrid-ready.
|
|
57
57
|
</VibeModal>
|
|
58
58
|
</div>
|
|
59
59
|
</template>
|
|
@@ -69,6 +69,11 @@ VibeUI handles accessibility and IDs for you.
|
|
|
69
69
|
<VibeFormGroup label="Email Address">
|
|
70
70
|
<VibeFormInput v-model="email" type="email" />
|
|
71
71
|
</VibeFormGroup>
|
|
72
|
+
|
|
73
|
+
<!-- New in v0.8.0: Input Groups -->
|
|
74
|
+
<VibeInputGroup prepend="@">
|
|
75
|
+
<VibeFormInput v-model="username" noWrapper />
|
|
76
|
+
</VibeInputGroup>
|
|
72
77
|
</template>
|
|
73
78
|
```
|
|
74
79
|
|
|
@@ -77,11 +82,11 @@ VibeUI handles accessibility and IDs for you.
|
|
|
77
82
|
VibeUI includes all major Bootstrap 5.3 components, fully wrapped for Vue 3:
|
|
78
83
|
|
|
79
84
|
* **Layout**: Container, Row, Col
|
|
80
|
-
* **Core**: Alert, Badge, Button, ButtonGroup, CloseButton, Spinner, Placeholder, Icon
|
|
85
|
+
* **Core**: Alert, Badge, Button, ButtonGroup, CloseButton, Spinner, Placeholder, Icon, Link
|
|
81
86
|
* **Navigation**: Breadcrumb, Nav, Navbar, Pagination, Scrollspy
|
|
82
87
|
* **Interactive**: Accordion, Collapse, Dropdown, Modal, Offcanvas, Toast, Carousel
|
|
83
|
-
* **Data**: DataTable
|
|
84
|
-
* **Forms**: Input, Select, Textarea, Spinbutton, Datepicker, Checkbox, Radio, Switch, Wysiwyg, FormGroup
|
|
88
|
+
* **Data**: DataTable (with mobile Stack mode)
|
|
89
|
+
* **Forms**: Input, InputGroup, Select, Textarea, Spinbutton, Datepicker, Checkbox, Radio, Switch, Wysiwyg, FormGroup
|
|
85
90
|
|
|
86
91
|
## Full Documentation
|
|
87
92
|
|
|
@@ -45,8 +45,8 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
|
|
|
45
45
|
refresh: () => Promise<void>;
|
|
46
46
|
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
47
47
|
"component-error": (...args: any[]) => void;
|
|
48
|
-
"item-click": (...args: any[]) => void;
|
|
49
48
|
show: (...args: any[]) => void;
|
|
49
|
+
"item-click": (...args: any[]) => void;
|
|
50
50
|
shown: (...args: any[]) => void;
|
|
51
51
|
hide: (...args: any[]) => void;
|
|
52
52
|
hidden: (...args: any[]) => void;
|
|
@@ -69,8 +69,8 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
|
|
|
69
69
|
};
|
|
70
70
|
}>> & Readonly<{
|
|
71
71
|
"onComponent-error"?: ((...args: any[]) => any) | undefined;
|
|
72
|
-
"onItem-click"?: ((...args: any[]) => any) | undefined;
|
|
73
72
|
onShow?: ((...args: any[]) => any) | undefined;
|
|
73
|
+
"onItem-click"?: ((...args: any[]) => any) | undefined;
|
|
74
74
|
onShown?: ((...args: any[]) => any) | undefined;
|
|
75
75
|
onHide?: ((...args: any[]) => any) | undefined;
|
|
76
76
|
onHidden?: ((...args: any[]) => any) | undefined;
|
|
@@ -14,6 +14,10 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
|
|
|
14
14
|
type: StringConstructor;
|
|
15
15
|
default: string;
|
|
16
16
|
};
|
|
17
|
+
subtle: {
|
|
18
|
+
type: BooleanConstructor;
|
|
19
|
+
default: boolean;
|
|
20
|
+
};
|
|
17
21
|
modelValue: {
|
|
18
22
|
type: BooleanConstructor;
|
|
19
23
|
default: boolean;
|
|
@@ -40,6 +44,10 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
|
|
|
40
44
|
type: StringConstructor;
|
|
41
45
|
default: string;
|
|
42
46
|
};
|
|
47
|
+
subtle: {
|
|
48
|
+
type: BooleanConstructor;
|
|
49
|
+
default: boolean;
|
|
50
|
+
};
|
|
43
51
|
modelValue: {
|
|
44
52
|
type: BooleanConstructor;
|
|
45
53
|
default: boolean;
|
|
@@ -63,6 +71,7 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
|
|
|
63
71
|
"onComponent-error"?: ((...args: any[]) => any) | undefined;
|
|
64
72
|
}>, {
|
|
65
73
|
variant: string;
|
|
74
|
+
subtle: boolean;
|
|
66
75
|
modelValue: boolean;
|
|
67
76
|
dismissable: boolean;
|
|
68
77
|
fade: boolean;
|
|
@@ -13,6 +13,10 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
|
|
|
13
13
|
type: () => Variant;
|
|
14
14
|
default: string;
|
|
15
15
|
};
|
|
16
|
+
subtle: {
|
|
17
|
+
type: BooleanConstructor;
|
|
18
|
+
default: boolean;
|
|
19
|
+
};
|
|
16
20
|
pill: {
|
|
17
21
|
type: BooleanConstructor;
|
|
18
22
|
default: boolean;
|
|
@@ -28,6 +32,10 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
|
|
|
28
32
|
type: () => Variant;
|
|
29
33
|
default: string;
|
|
30
34
|
};
|
|
35
|
+
subtle: {
|
|
36
|
+
type: BooleanConstructor;
|
|
37
|
+
default: boolean;
|
|
38
|
+
};
|
|
31
39
|
pill: {
|
|
32
40
|
type: BooleanConstructor;
|
|
33
41
|
default: boolean;
|
|
@@ -40,6 +48,7 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
|
|
|
40
48
|
"onComponent-error"?: ((...args: any[]) => any) | undefined;
|
|
41
49
|
}>, {
|
|
42
50
|
variant: Variant;
|
|
51
|
+
subtle: boolean;
|
|
43
52
|
pill: boolean;
|
|
44
53
|
tag: "a" | Tag;
|
|
45
54
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
@@ -41,6 +41,10 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
|
|
|
41
41
|
type: BooleanConstructor;
|
|
42
42
|
default: boolean;
|
|
43
43
|
};
|
|
44
|
+
focusRing: {
|
|
45
|
+
type: BooleanConstructor;
|
|
46
|
+
default: boolean;
|
|
47
|
+
};
|
|
44
48
|
}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
45
49
|
"component-error": (...args: any[]) => void;
|
|
46
50
|
click: (...args: any[]) => void;
|
|
@@ -77,6 +81,10 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
|
|
|
77
81
|
type: BooleanConstructor;
|
|
78
82
|
default: boolean;
|
|
79
83
|
};
|
|
84
|
+
focusRing: {
|
|
85
|
+
type: BooleanConstructor;
|
|
86
|
+
default: boolean;
|
|
87
|
+
};
|
|
80
88
|
}>> & Readonly<{
|
|
81
89
|
"onComponent-error"?: ((...args: any[]) => any) | undefined;
|
|
82
90
|
onClick?: ((...args: any[]) => any) | undefined;
|
|
@@ -89,6 +97,7 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
|
|
|
89
97
|
href: string;
|
|
90
98
|
to: string | Record<string, any>;
|
|
91
99
|
active: boolean;
|
|
100
|
+
focusRing: boolean;
|
|
92
101
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
93
102
|
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
94
103
|
export default _default;
|
|
@@ -10,6 +10,7 @@ declare const _default: <T extends Record<string, unknown>>(__VLS_props: NonNull
|
|
|
10
10
|
bordered: boolean;
|
|
11
11
|
borderless: boolean;
|
|
12
12
|
responsive: boolean;
|
|
13
|
+
stack: boolean;
|
|
13
14
|
searchable: boolean;
|
|
14
15
|
sortable: boolean;
|
|
15
16
|
paginated: boolean;
|
|
@@ -32,6 +33,7 @@ declare const _default: <T extends Record<string, unknown>>(__VLS_props: NonNull
|
|
|
32
33
|
readonly bordered: boolean;
|
|
33
34
|
readonly borderless: boolean;
|
|
34
35
|
readonly responsive: boolean;
|
|
36
|
+
readonly stack: boolean;
|
|
35
37
|
readonly searchable: boolean;
|
|
36
38
|
readonly sortable: boolean;
|
|
37
39
|
readonly paginated: boolean;
|
|
@@ -51,7 +53,7 @@ declare const _default: <T extends Record<string, unknown>>(__VLS_props: NonNull
|
|
|
51
53
|
readonly "onUpdate:sortBy"?: ((value: string | undefined) => any) | undefined;
|
|
52
54
|
readonly "onUpdate:sortDesc"?: ((value: boolean) => any) | undefined;
|
|
53
55
|
readonly "onRow-clicked"?: ((...args: any[]) => any) | undefined;
|
|
54
|
-
} & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, "variant" | "small" | "items" | "hover" | "rowKey" | "striped" | "bordered" | "borderless" | "responsive" | "searchable" | "sortable" | "paginated" | "searchPlaceholder" | "searchDebounce" | "showEmpty" | "emptyText" | "showPerPage" | "showInfo" | "infoText" | "filteredInfoText" | "perPageOptions">, "onComponent-error" | "onUpdate:currentPage" | "columns" | "onUpdate:perPage" | "onUpdate:sortBy" | "onUpdate:sortDesc" | "onRow-clicked" | ("variant" | "small" | "items" | "hover" | "rowKey" | "striped" | "bordered" | "borderless" | "responsive" | "searchable" | "sortable" | "paginated" | "searchPlaceholder" | "searchDebounce" | "showEmpty" | "emptyText" | "showPerPage" | "showInfo" | "infoText" | "filteredInfoText" | "perPageOptions")> & {
|
|
56
|
+
} & import('vue').VNodeProps & import('vue').AllowedComponentProps & import('vue').ComponentCustomProps, "variant" | "small" | "items" | "hover" | "rowKey" | "striped" | "bordered" | "borderless" | "responsive" | "stack" | "searchable" | "sortable" | "paginated" | "searchPlaceholder" | "searchDebounce" | "showEmpty" | "emptyText" | "showPerPage" | "showInfo" | "infoText" | "filteredInfoText" | "perPageOptions">, "onComponent-error" | "onUpdate:currentPage" | "columns" | "onUpdate:perPage" | "onUpdate:sortBy" | "onUpdate:sortDesc" | "onRow-clicked" | ("variant" | "small" | "items" | "hover" | "rowKey" | "striped" | "bordered" | "borderless" | "responsive" | "stack" | "searchable" | "sortable" | "paginated" | "searchPlaceholder" | "searchDebounce" | "showEmpty" | "emptyText" | "showPerPage" | "showInfo" | "infoText" | "filteredInfoText" | "perPageOptions")> & {
|
|
55
57
|
currentPage?: number;
|
|
56
58
|
perPage?: number;
|
|
57
59
|
sortBy?: string | undefined;
|
|
@@ -62,8 +62,8 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
|
|
|
62
62
|
toggle: () => void | undefined;
|
|
63
63
|
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
64
64
|
"component-error": (...args: any[]) => void;
|
|
65
|
-
"item-click": (...args: any[]) => void;
|
|
66
65
|
show: (...args: any[]) => void;
|
|
66
|
+
"item-click": (...args: any[]) => void;
|
|
67
67
|
shown: (...args: any[]) => void;
|
|
68
68
|
hide: (...args: any[]) => void;
|
|
69
69
|
hidden: (...args: any[]) => void;
|
|
@@ -106,8 +106,8 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
|
|
|
106
106
|
};
|
|
107
107
|
}>> & Readonly<{
|
|
108
108
|
"onComponent-error"?: ((...args: any[]) => any) | undefined;
|
|
109
|
-
"onItem-click"?: ((...args: any[]) => any) | undefined;
|
|
110
109
|
onShow?: ((...args: any[]) => any) | undefined;
|
|
110
|
+
"onItem-click"?: ((...args: any[]) => any) | undefined;
|
|
111
111
|
onShown?: ((...args: any[]) => any) | undefined;
|
|
112
112
|
onHide?: ((...args: any[]) => any) | undefined;
|
|
113
113
|
onHidden?: ((...args: any[]) => any) | undefined;
|
|
@@ -61,6 +61,14 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
61
61
|
type: BooleanConstructor;
|
|
62
62
|
default: boolean;
|
|
63
63
|
};
|
|
64
|
+
noWrapper: {
|
|
65
|
+
type: BooleanConstructor;
|
|
66
|
+
default: boolean;
|
|
67
|
+
};
|
|
68
|
+
focusRing: {
|
|
69
|
+
type: BooleanConstructor;
|
|
70
|
+
default: boolean;
|
|
71
|
+
};
|
|
64
72
|
}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
65
73
|
"update:modelValue": (...args: any[]) => void;
|
|
66
74
|
blur: (...args: any[]) => void;
|
|
@@ -129,6 +137,14 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
129
137
|
type: BooleanConstructor;
|
|
130
138
|
default: boolean;
|
|
131
139
|
};
|
|
140
|
+
noWrapper: {
|
|
141
|
+
type: BooleanConstructor;
|
|
142
|
+
default: boolean;
|
|
143
|
+
};
|
|
144
|
+
focusRing: {
|
|
145
|
+
type: BooleanConstructor;
|
|
146
|
+
default: boolean;
|
|
147
|
+
};
|
|
132
148
|
}>> & Readonly<{
|
|
133
149
|
"onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
|
|
134
150
|
onBlur?: ((...args: any[]) => any) | undefined;
|
|
@@ -143,6 +159,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
143
159
|
label: string;
|
|
144
160
|
size: Size;
|
|
145
161
|
disabled: boolean;
|
|
162
|
+
focusRing: boolean;
|
|
146
163
|
placeholder: string;
|
|
147
164
|
plaintext: boolean;
|
|
148
165
|
id: string;
|
|
@@ -152,5 +169,6 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
152
169
|
validationRules: ValidatorFunction | ValidationRule[];
|
|
153
170
|
validateOn: "blur" | "change" | "input";
|
|
154
171
|
helpText: string;
|
|
155
|
-
|
|
172
|
+
noWrapper: boolean;
|
|
173
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
156
174
|
export default _default;
|
|
@@ -37,6 +37,10 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
37
37
|
type: PropType<unknown[] | string | boolean>;
|
|
38
38
|
default: undefined;
|
|
39
39
|
};
|
|
40
|
+
mobileToolbar: {
|
|
41
|
+
type: PropType<unknown[] | string | boolean>;
|
|
42
|
+
default: undefined;
|
|
43
|
+
};
|
|
40
44
|
validationState: {
|
|
41
45
|
type: PropType<ValidationState>;
|
|
42
46
|
default: null;
|
|
@@ -105,6 +109,10 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
105
109
|
type: PropType<unknown[] | string | boolean>;
|
|
106
110
|
default: undefined;
|
|
107
111
|
};
|
|
112
|
+
mobileToolbar: {
|
|
113
|
+
type: PropType<unknown[] | string | boolean>;
|
|
114
|
+
default: undefined;
|
|
115
|
+
};
|
|
108
116
|
validationState: {
|
|
109
117
|
type: PropType<ValidationState>;
|
|
110
118
|
default: null;
|
|
@@ -152,6 +160,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
152
160
|
validateOn: "blur" | "change";
|
|
153
161
|
helpText: string;
|
|
154
162
|
toolbar: string | boolean | unknown[];
|
|
163
|
+
mobileToolbar: string | boolean | unknown[];
|
|
155
164
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
|
|
156
165
|
editorContainer: HTMLDivElement;
|
|
157
166
|
}, HTMLDivElement>;
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { PropType } from 'vue';
|
|
2
|
+
import { Size, Tag } from '../types';
|
|
3
|
+
declare function __VLS_template(): {
|
|
4
|
+
attrs: Partial<{}>;
|
|
5
|
+
slots: {
|
|
6
|
+
prepend?(_: {}): any;
|
|
7
|
+
default?(_: {}): any;
|
|
8
|
+
append?(_: {}): any;
|
|
9
|
+
};
|
|
10
|
+
refs: {};
|
|
11
|
+
rootEl: any;
|
|
12
|
+
};
|
|
13
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
14
|
+
declare const __VLS_component: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
15
|
+
size: {
|
|
16
|
+
type: PropType<Size>;
|
|
17
|
+
default: undefined;
|
|
18
|
+
};
|
|
19
|
+
prepend: {
|
|
20
|
+
type: StringConstructor;
|
|
21
|
+
default: undefined;
|
|
22
|
+
};
|
|
23
|
+
append: {
|
|
24
|
+
type: StringConstructor;
|
|
25
|
+
default: undefined;
|
|
26
|
+
};
|
|
27
|
+
tag: {
|
|
28
|
+
type: PropType<Tag>;
|
|
29
|
+
default: string;
|
|
30
|
+
};
|
|
31
|
+
}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
32
|
+
size: {
|
|
33
|
+
type: PropType<Size>;
|
|
34
|
+
default: undefined;
|
|
35
|
+
};
|
|
36
|
+
prepend: {
|
|
37
|
+
type: StringConstructor;
|
|
38
|
+
default: undefined;
|
|
39
|
+
};
|
|
40
|
+
append: {
|
|
41
|
+
type: StringConstructor;
|
|
42
|
+
default: undefined;
|
|
43
|
+
};
|
|
44
|
+
tag: {
|
|
45
|
+
type: PropType<Tag>;
|
|
46
|
+
default: string;
|
|
47
|
+
};
|
|
48
|
+
}>> & Readonly<{}>, {
|
|
49
|
+
tag: Tag;
|
|
50
|
+
size: Size;
|
|
51
|
+
prepend: string;
|
|
52
|
+
append: string;
|
|
53
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
54
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
55
|
+
export default _default;
|
|
56
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
57
|
+
new (): {
|
|
58
|
+
$slots: S;
|
|
59
|
+
};
|
|
60
|
+
};
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { PropType } from 'vue';
|
|
2
|
+
import { Tag, Variant } from '../types';
|
|
3
|
+
declare function __VLS_template(): {
|
|
4
|
+
attrs: Partial<{}>;
|
|
5
|
+
slots: {
|
|
6
|
+
default?(_: {}): any;
|
|
7
|
+
};
|
|
8
|
+
refs: {};
|
|
9
|
+
rootEl: any;
|
|
10
|
+
};
|
|
11
|
+
type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
|
|
12
|
+
declare const __VLS_component: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
|
|
13
|
+
tag: {
|
|
14
|
+
type: PropType<Tag | "a">;
|
|
15
|
+
default: string;
|
|
16
|
+
};
|
|
17
|
+
href: {
|
|
18
|
+
type: StringConstructor;
|
|
19
|
+
default: undefined;
|
|
20
|
+
};
|
|
21
|
+
to: {
|
|
22
|
+
type: (StringConstructor | ObjectConstructor)[];
|
|
23
|
+
default: undefined;
|
|
24
|
+
};
|
|
25
|
+
variant: {
|
|
26
|
+
type: PropType<Variant>;
|
|
27
|
+
default: undefined;
|
|
28
|
+
};
|
|
29
|
+
underline: {
|
|
30
|
+
type: PropType<boolean | "0" | "1" | "2" | "3">;
|
|
31
|
+
default: boolean;
|
|
32
|
+
};
|
|
33
|
+
underlineVariant: {
|
|
34
|
+
type: PropType<Variant>;
|
|
35
|
+
default: undefined;
|
|
36
|
+
};
|
|
37
|
+
underlineOpacity: {
|
|
38
|
+
type: PropType<"0" | "10" | "25" | "50" | "75" | "100" | 0 | 10 | 25 | 50 | 75 | 100>;
|
|
39
|
+
default: undefined;
|
|
40
|
+
};
|
|
41
|
+
offset: {
|
|
42
|
+
type: PropType<"1" | "2" | "3" | 1 | 2 | 3>;
|
|
43
|
+
default: undefined;
|
|
44
|
+
};
|
|
45
|
+
opacity: {
|
|
46
|
+
type: PropType<"10" | "25" | "50" | "75" | "100" | 10 | 25 | 50 | 75 | 100>;
|
|
47
|
+
default: undefined;
|
|
48
|
+
};
|
|
49
|
+
focusRing: {
|
|
50
|
+
type: BooleanConstructor;
|
|
51
|
+
default: boolean;
|
|
52
|
+
};
|
|
53
|
+
}>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
|
|
54
|
+
tag: {
|
|
55
|
+
type: PropType<Tag | "a">;
|
|
56
|
+
default: string;
|
|
57
|
+
};
|
|
58
|
+
href: {
|
|
59
|
+
type: StringConstructor;
|
|
60
|
+
default: undefined;
|
|
61
|
+
};
|
|
62
|
+
to: {
|
|
63
|
+
type: (StringConstructor | ObjectConstructor)[];
|
|
64
|
+
default: undefined;
|
|
65
|
+
};
|
|
66
|
+
variant: {
|
|
67
|
+
type: PropType<Variant>;
|
|
68
|
+
default: undefined;
|
|
69
|
+
};
|
|
70
|
+
underline: {
|
|
71
|
+
type: PropType<boolean | "0" | "1" | "2" | "3">;
|
|
72
|
+
default: boolean;
|
|
73
|
+
};
|
|
74
|
+
underlineVariant: {
|
|
75
|
+
type: PropType<Variant>;
|
|
76
|
+
default: undefined;
|
|
77
|
+
};
|
|
78
|
+
underlineOpacity: {
|
|
79
|
+
type: PropType<"0" | "10" | "25" | "50" | "75" | "100" | 0 | 10 | 25 | 50 | 75 | 100>;
|
|
80
|
+
default: undefined;
|
|
81
|
+
};
|
|
82
|
+
offset: {
|
|
83
|
+
type: PropType<"1" | "2" | "3" | 1 | 2 | 3>;
|
|
84
|
+
default: undefined;
|
|
85
|
+
};
|
|
86
|
+
opacity: {
|
|
87
|
+
type: PropType<"10" | "25" | "50" | "75" | "100" | 10 | 25 | 50 | 75 | 100>;
|
|
88
|
+
default: undefined;
|
|
89
|
+
};
|
|
90
|
+
focusRing: {
|
|
91
|
+
type: BooleanConstructor;
|
|
92
|
+
default: boolean;
|
|
93
|
+
};
|
|
94
|
+
}>> & Readonly<{}>, {
|
|
95
|
+
variant: Variant;
|
|
96
|
+
tag: "a" | Tag;
|
|
97
|
+
href: string;
|
|
98
|
+
to: string | Record<string, any>;
|
|
99
|
+
focusRing: boolean;
|
|
100
|
+
offset: 1 | "1" | "2" | "3" | 2 | 3;
|
|
101
|
+
underline: boolean | "0" | "1" | "2" | "3";
|
|
102
|
+
underlineVariant: Variant;
|
|
103
|
+
underlineOpacity: 0 | "0" | 10 | 100 | "10" | 25 | 50 | "25" | "50" | "75" | "100" | 75;
|
|
104
|
+
opacity: 10 | 100 | "10" | 25 | 50 | "25" | "50" | "75" | "100" | 75;
|
|
105
|
+
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
|
|
106
|
+
declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
|
|
107
|
+
export default _default;
|
|
108
|
+
type __VLS_WithTemplateSlots<T, S> = T & {
|
|
109
|
+
new (): {
|
|
110
|
+
$slots: S;
|
|
111
|
+
};
|
|
112
|
+
};
|
|
@@ -28,6 +28,10 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
28
28
|
type: BooleanConstructor;
|
|
29
29
|
default: boolean;
|
|
30
30
|
};
|
|
31
|
+
underline: {
|
|
32
|
+
type: BooleanConstructor;
|
|
33
|
+
default: boolean;
|
|
34
|
+
};
|
|
31
35
|
tag: {
|
|
32
36
|
type: StringConstructor;
|
|
33
37
|
default: string;
|
|
@@ -37,8 +41,8 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
37
41
|
refresh: () => Promise<void>;
|
|
38
42
|
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
|
|
39
43
|
"component-error": (...args: any[]) => void;
|
|
40
|
-
"item-click": (...args: any[]) => void;
|
|
41
44
|
show: (...args: any[]) => void;
|
|
45
|
+
"item-click": (...args: any[]) => void;
|
|
42
46
|
shown: (...args: any[]) => void;
|
|
43
47
|
hide: (...args: any[]) => void;
|
|
44
48
|
hidden: (...args: any[]) => void;
|
|
@@ -67,14 +71,18 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
67
71
|
type: BooleanConstructor;
|
|
68
72
|
default: boolean;
|
|
69
73
|
};
|
|
74
|
+
underline: {
|
|
75
|
+
type: BooleanConstructor;
|
|
76
|
+
default: boolean;
|
|
77
|
+
};
|
|
70
78
|
tag: {
|
|
71
79
|
type: StringConstructor;
|
|
72
80
|
default: string;
|
|
73
81
|
};
|
|
74
82
|
}>> & Readonly<{
|
|
75
83
|
"onComponent-error"?: ((...args: any[]) => any) | undefined;
|
|
76
|
-
"onItem-click"?: ((...args: any[]) => any) | undefined;
|
|
77
84
|
onShow?: ((...args: any[]) => any) | undefined;
|
|
85
|
+
"onItem-click"?: ((...args: any[]) => any) | undefined;
|
|
78
86
|
onShown?: ((...args: any[]) => any) | undefined;
|
|
79
87
|
onHide?: ((...args: any[]) => any) | undefined;
|
|
80
88
|
onHidden?: ((...args: any[]) => any) | undefined;
|
|
@@ -85,6 +93,7 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
|
|
|
85
93
|
pills: boolean;
|
|
86
94
|
tabs: boolean;
|
|
87
95
|
justified: boolean;
|
|
96
|
+
underline: boolean;
|
|
88
97
|
}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
|
|
89
98
|
navRef: unknown;
|
|
90
99
|
}, any>;
|
|
@@ -41,7 +41,9 @@ import { default as VibeFormRadio } from './VibeFormRadio.vue';
|
|
|
41
41
|
import { default as VibeFormSwitch } from './VibeFormSwitch.vue';
|
|
42
42
|
import { default as VibeFormGroup } from './VibeFormGroup.vue';
|
|
43
43
|
import { default as VibeFormWysiwyg } from './VibeFormWysiwyg.vue';
|
|
44
|
+
import { default as VibeInputGroup } from './VibeInputGroup.vue';
|
|
45
|
+
import { default as VibeLink } from './VibeLink.vue';
|
|
44
46
|
import { Plugin } from 'vue';
|
|
45
|
-
export { VibeAlert, VibeBadge, VibeButton, VibeButtonGroup, VibeCloseButton, VibeSpinner, VibePlaceholder, VibeContainer, VibeRow, VibeCol, VibeCard, VibeBreadcrumb, VibeNav, VibeNavbar, VibeNavbarBrand, VibeNavbarToggle, VibeNavbarNav, VibePagination, VibeTabContent, VibeListGroup, VibeProgress, VibeAccordion, VibeCollapse, VibeDropdown, VibeModal, VibeOffcanvas, VibeToast, VibeCarousel, VibeTooltip, VibePopover, VibeScrollspy, VibeIcon, VibeDataTable, VibeFormInput, VibeFormSelect, VibeFormTextarea, VibeFormSpinbutton, VibeFormDatepicker, VibeFormCheckbox, VibeFormRadio, VibeFormSwitch, VibeFormGroup, VibeFormWysiwyg };
|
|
47
|
+
export { VibeAlert, VibeBadge, VibeButton, VibeButtonGroup, VibeCloseButton, VibeSpinner, VibePlaceholder, VibeContainer, VibeRow, VibeCol, VibeCard, VibeBreadcrumb, VibeNav, VibeNavbar, VibeNavbarBrand, VibeNavbarToggle, VibeNavbarNav, VibePagination, VibeTabContent, VibeListGroup, VibeProgress, VibeAccordion, VibeCollapse, VibeDropdown, VibeModal, VibeOffcanvas, VibeToast, VibeCarousel, VibeTooltip, VibePopover, VibeScrollspy, VibeIcon, VibeDataTable, VibeFormInput, VibeFormSelect, VibeFormTextarea, VibeFormSpinbutton, VibeFormDatepicker, VibeFormCheckbox, VibeFormRadio, VibeFormSwitch, VibeFormGroup, VibeFormWysiwyg, VibeInputGroup, VibeLink };
|
|
46
48
|
declare const VibeUIPlugin: Plugin;
|
|
47
49
|
export default VibeUIPlugin;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
type CloseAction = () => void;
|
|
2
|
+
/**
|
|
3
|
+
* Composable to manage closing active UI layers when the hardware back button is pressed.
|
|
4
|
+
* Useful for Android devices in hybrid mobile environments.
|
|
5
|
+
*
|
|
6
|
+
* @param closeAction The function to call when the back button is pressed.
|
|
7
|
+
*/
|
|
8
|
+
export declare function useBackButton(closeAction: CloseAction): void;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Composable for programmatic breakpoint detection using Bootstrap standard sizes.
|
|
3
|
+
*/
|
|
4
|
+
export declare function useBreakpoints(): {
|
|
5
|
+
isXs: import('vue').ComputedRef<boolean>;
|
|
6
|
+
isSm: import('vue').Ref<boolean, boolean>;
|
|
7
|
+
isMd: import('vue').Ref<boolean, boolean>;
|
|
8
|
+
isLg: import('vue').Ref<boolean, boolean>;
|
|
9
|
+
isXl: import('vue').Ref<boolean, boolean>;
|
|
10
|
+
isXxl: import('vue').Ref<boolean, boolean>;
|
|
11
|
+
isMobile: import('vue').ComputedRef<boolean>;
|
|
12
|
+
isTablet: import('vue').ComputedRef<boolean>;
|
|
13
|
+
};
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ColorMode } from '../types';
|
|
2
|
+
export declare function useColorMode(): {
|
|
3
|
+
colorMode: import('vue').Ref<ColorMode, ColorMode>;
|
|
4
|
+
setColorMode: (mode: ColorMode) => void;
|
|
5
|
+
toggleColorMode: () => void;
|
|
6
|
+
initColorMode: () => void;
|
|
7
|
+
clearColorMode: () => void;
|
|
8
|
+
onColorModeChange: (callback: (mode: ColorMode) => void) => void;
|
|
9
|
+
};
|
|
10
|
+
/**
|
|
11
|
+
* For testing only — not re-exported from the package index.
|
|
12
|
+
* Resets singleton state and removes the storage key.
|
|
13
|
+
* Must be called in beforeEach to guarantee clean state between tests.
|
|
14
|
+
*/
|
|
15
|
+
export declare function _resetColorMode(): void;
|
package/dist/index.d.ts
CHANGED
|
@@ -3,4 +3,7 @@ export * from './components';
|
|
|
3
3
|
export * from './types';
|
|
4
4
|
export * from './composables/useFormValidation';
|
|
5
5
|
export { useId } from './composables/useId';
|
|
6
|
+
export { useColorMode } from './composables/useColorMode';
|
|
7
|
+
export { useBreakpoints } from './composables/useBreakpoints';
|
|
8
|
+
export { useBackButton } from './composables/useBackButton';
|
|
6
9
|
export default VibeUIPlugin;
|
package/dist/types.d.ts
CHANGED
package/dist/vibeui.css
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
.vibe-datatable[data-v-
|
|
1
|
+
.navbar.fixed-top[data-v-8228b170],.navbar.sticky-top[data-v-8228b170]{padding-top:env(safe-area-inset-top,0)}.navbar.fixed-bottom[data-v-8228b170]{padding-bottom:env(safe-area-inset-bottom,0)}.modal.show .modal-dialog.modal-fullscreen[data-v-c11ac690],.modal.show .modal-dialog.modal-fullscreen .modal-content[data-v-c11ac690]{height:100dvh}.modal-header[data-v-c11ac690]{padding-top:calc(1rem + env(safe-area-inset-top,0))}.modal-footer[data-v-c11ac690]{padding-bottom:calc(.75rem + env(safe-area-inset-bottom,0))}.offcanvas.offcanvas-start[data-v-f03bd194],.offcanvas.offcanvas-end[data-v-f03bd194]{height:100dvh}.offcanvas.offcanvas-top[data-v-f03bd194],.offcanvas.offcanvas-bottom[data-v-f03bd194]{max-height:100dvh}.offcanvas-header[data-v-f03bd194]{padding-top:calc(1rem + env(safe-area-inset-top,0))}.offcanvas-body[data-v-f03bd194]{padding-bottom:calc(1rem + env(safe-area-inset-bottom,0))}.vibe-datatable[data-v-c496dc70]{width:100%}.datatable-info[data-v-c496dc70]{padding:.5rem 0;color:var(--bs-secondary-color)}@media(max-width:767.98px){.vibe-table-stack[data-v-c496dc70],.vibe-table-stack tbody[data-v-c496dc70],.vibe-table-stack tr[data-v-c496dc70],.vibe-table-stack td[data-v-c496dc70]{display:block;width:100%}.vibe-table-stack thead[data-v-c496dc70]{display:none}.vibe-table-stack tr[data-v-c496dc70]{margin-bottom:1rem;border:1px solid var(--bs-border-color);border-radius:.375rem;background-color:var(--bs-body-bg)}.vibe-table-stack td[data-v-c496dc70]{text-align:right;padding:.5rem 1rem;position:relative;padding-left:50%;border-top:none;border-bottom:1px solid var(--bs-border-color)}.vibe-table-stack td[data-v-c496dc70]:last-child{border-bottom:none}.vibe-table-stack td[data-v-c496dc70]:before{content:attr(data-label);position:absolute;left:1rem;width:45%;text-align:left;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}}.input-group-vertical[data-v-49746a62]{flex-direction:column}.input-group-vertical[data-v-49746a62]>*{width:100%}.vibe-wysiwyg-container[data-v-952f7269]{border:1px solid var(--bs-border-color);border-radius:.375rem}.vibe-wysiwyg-container.is-valid[data-v-952f7269]{border-color:var(--bs-success)}.vibe-wysiwyg-container.is-invalid[data-v-952f7269]{border-color:var(--bs-danger)}.vibe-wysiwyg-container.disabled[data-v-952f7269]{background-color:var(--bs-secondary-bg);opacity:.6;cursor:not-allowed}.vibe-wysiwyg-container[data-v-952f7269] .ql-container{border:none;font-size:1rem}.vibe-wysiwyg-container[data-v-952f7269] .ql-toolbar{border:none;border-bottom:1px solid var(--bs-border-color);border-top-left-radius:.375rem;border-top-right-radius:.375rem}.vibe-wysiwyg-container[data-v-952f7269] .ql-editor{min-height:150px}
|