@velkymx/vibeui 0.9.0 → 1.0.2

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 (205) hide show
  1. package/AGENTS.md +44 -0
  2. package/CLAUDE.md +48 -0
  3. package/README.md +222 -197
  4. package/dist/purify.es-1D-VntFD.mjs +679 -0
  5. package/dist/src/App.vue.d.ts +3 -0
  6. package/dist/src/components/HelloWorld.vue.d.ts +6 -0
  7. package/dist/src/components/VibeAccordion.vue.d.ts +89 -0
  8. package/dist/{components → src/components}/VibeAlert.vue.d.ts +18 -34
  9. package/dist/src/components/VibeAutocomplete.vue.d.ts +74 -0
  10. package/dist/{components → src/components}/VibeBadge.vue.d.ts +10 -18
  11. package/dist/src/components/VibeBreadcrumb.vue.d.ts +51 -0
  12. package/dist/{components → src/components}/VibeButton.vue.d.ts +13 -17
  13. package/dist/{components → src/components}/VibeButtonGroup.vue.d.ts +10 -18
  14. package/dist/{components → src/components}/VibeCard.vue.d.ts +51 -24
  15. package/dist/{components → src/components}/VibeCarousel.vue.d.ts +27 -49
  16. package/dist/src/components/VibeChartBar.vue.d.ts +61 -0
  17. package/dist/src/components/VibeChartLine.vue.d.ts +70 -0
  18. package/dist/src/components/VibeChartPie.vue.d.ts +34 -0
  19. package/dist/{components → src/components}/VibeCloseButton.vue.d.ts +9 -7
  20. package/dist/{components → src/components}/VibeCol.vue.d.ts +9 -17
  21. package/dist/src/components/VibeCollapse.vue.d.ts +76 -0
  22. package/dist/src/components/VibeContainer.vue.d.ts +36 -0
  23. package/dist/src/components/VibeDataTable.vue.d.ts +131 -0
  24. package/dist/{components → src/components}/VibeDatePicker.vue.d.ts +4 -6
  25. package/dist/{components → src/components}/VibeDraggable.vue.d.ts +9 -13
  26. package/dist/{components → src/components}/VibeDropdown.vue.d.ts +46 -43
  27. package/dist/{components → src/components}/VibeDroppable.vue.d.ts +9 -13
  28. package/dist/{components → src/components}/VibeFileInput.vue.d.ts +14 -20
  29. package/dist/{components → src/components}/VibeFormCheckbox.vue.d.ts +29 -21
  30. package/dist/{components → src/components}/VibeFormDatepicker.vue.d.ts +26 -29
  31. package/dist/{components → src/components}/VibeFormGroup.vue.d.ts +10 -13
  32. package/dist/{components → src/components}/VibeFormInput.vue.d.ts +22 -23
  33. package/dist/{components → src/components}/VibeFormRadio.vue.d.ts +22 -23
  34. package/dist/{components → src/components}/VibeFormSelect.vue.d.ts +27 -33
  35. package/dist/{components → src/components}/VibeFormSpinbutton.vue.d.ts +30 -33
  36. package/dist/{components → src/components}/VibeFormSwitch.vue.d.ts +21 -22
  37. package/dist/{components → src/components}/VibeFormTextarea.vue.d.ts +23 -24
  38. package/dist/{components → src/components}/VibeFormWysiwyg.vue.d.ts +22 -21
  39. package/dist/src/components/VibeHero.vue.d.ts +108 -0
  40. package/dist/{components → src/components}/VibeIcon.vue.d.ts +27 -7
  41. package/dist/{components → src/components}/VibeInputGroup.vue.d.ts +11 -13
  42. package/dist/{components → src/components}/VibeLink.vue.d.ts +14 -18
  43. package/dist/{components → src/components}/VibeListGroup.vue.d.ts +26 -22
  44. package/dist/{components → src/components}/VibeModal.vue.d.ts +29 -45
  45. package/dist/{components → src/components}/VibeNav.vue.d.ts +40 -20
  46. package/dist/{components → src/components}/VibeNavbar.vue.d.ts +12 -19
  47. package/dist/src/components/VibeNavbarBrand.vue.d.ts +34 -0
  48. package/dist/src/components/VibeNavbarNav.vue.d.ts +80 -0
  49. package/dist/{components → src/components}/VibeNavbarToggle.vue.d.ts +7 -5
  50. package/dist/{components → src/components}/VibeOffcanvas.vue.d.ts +28 -43
  51. package/dist/{components → src/components}/VibePagination.vue.d.ts +38 -29
  52. package/dist/{components → src/components}/VibePlaceholder.vue.d.ts +9 -17
  53. package/dist/src/components/VibePopover.vue.d.ts +72 -0
  54. package/dist/src/components/VibeProgress.vue.d.ts +37 -0
  55. package/dist/{components → src/components}/VibeResizable.vue.d.ts +10 -14
  56. package/dist/{components → src/components}/VibeRow.vue.d.ts +9 -17
  57. package/dist/src/components/VibeScrollspy.vue.d.ts +89 -0
  58. package/dist/{components → src/components}/VibeSkeleton.vue.d.ts +2 -1
  59. package/dist/{components → src/components}/VibeSlider.vue.d.ts +4 -5
  60. package/dist/src/components/VibeSortable.vue.d.ts +59 -0
  61. package/dist/{components → src/components}/VibeSpinner.vue.d.ts +4 -7
  62. package/dist/{components → src/components}/VibeStepper.vue.d.ts +32 -31
  63. package/dist/{components → src/components}/VibeTab.vue.d.ts +7 -11
  64. package/dist/src/components/VibeTabContent.vue.d.ts +56 -0
  65. package/dist/{components → src/components}/VibeTabs.vue.d.ts +9 -13
  66. package/dist/{components → src/components}/VibeToast.vue.d.ts +31 -44
  67. package/dist/{components → src/components}/VibeToastHost.vue.d.ts +2 -1
  68. package/dist/src/components/VibeTooltip.vue.d.ts +63 -0
  69. package/dist/src/components/chart/chartColors.d.ts +3 -0
  70. package/dist/src/components/chart/chartResize.d.ts +2 -0
  71. package/dist/src/components/chart/chartTooltip.d.ts +2 -0
  72. package/dist/src/components/chart/chartTypes.d.ts +6 -0
  73. package/dist/src/components/chart/drawBar.d.ts +5 -0
  74. package/dist/src/components/chart/drawLine.d.ts +18 -0
  75. package/dist/src/components/chart/drawPie.d.ts +4 -0
  76. package/dist/{components → src/components}/dndStore.d.ts +1 -0
  77. package/dist/{components → src/components}/index.d.ts +5 -1
  78. package/dist/{composables → src/composables}/useBreakpoints.d.ts +1 -0
  79. package/dist/{composables → src/composables}/useColorMode.d.ts +1 -1
  80. package/dist/src/composables/useId.d.ts +2 -0
  81. package/dist/{directives → src/directives}/vTooltip.d.ts +2 -3
  82. package/dist/src/injectionKeys.d.ts +28 -0
  83. package/dist/{types.d.ts → src/types.d.ts} +21 -2
  84. package/dist/src/utils/safeCss.d.ts +16 -0
  85. package/dist/src/utils/safeHref.d.ts +7 -0
  86. package/dist/src/utils/sanitizeHtml.d.ts +13 -0
  87. package/dist/vibeui.css +2 -1
  88. package/dist/vibeui.es.js +8269 -5855
  89. package/dist/vibeui.umd.js +3 -1
  90. package/docs/README.md +225 -0
  91. package/docs/components/advanced/popover.md +125 -0
  92. package/docs/components/advanced/scrollspy.md +106 -0
  93. package/docs/components/advanced/tooltip.md +90 -0
  94. package/docs/components/card/card.md +223 -0
  95. package/docs/components/charts/chart-bar.md +129 -0
  96. package/docs/components/charts/chart-line.md +136 -0
  97. package/docs/components/charts/chart-pie.md +102 -0
  98. package/docs/components/core/alert.md +94 -0
  99. package/docs/components/core/badge.md +75 -0
  100. package/docs/components/core/button-group.md +99 -0
  101. package/docs/components/core/button.md +127 -0
  102. package/docs/components/core/close-button.md +82 -0
  103. package/docs/components/core/link.md +79 -0
  104. package/docs/components/core/placeholder.md +129 -0
  105. package/docs/components/core/skeleton.md +40 -0
  106. package/docs/components/core/spinner.md +103 -0
  107. package/docs/components/data/datatable.md +435 -0
  108. package/docs/components/hero/hero.md +64 -0
  109. package/docs/components/interactive/accordion.md +121 -0
  110. package/docs/components/interactive/carousel.md +112 -0
  111. package/docs/components/interactive/collapse.md +106 -0
  112. package/docs/components/interactive/date-picker.md +78 -0
  113. package/docs/components/interactive/draggable.md +91 -0
  114. package/docs/components/interactive/dropdown.md +129 -0
  115. package/docs/components/interactive/modal.md +143 -0
  116. package/docs/components/interactive/offcanvas.md +92 -0
  117. package/docs/components/interactive/resizable.md +73 -0
  118. package/docs/components/interactive/slider.md +57 -0
  119. package/docs/components/interactive/sortable.md +52 -0
  120. package/docs/components/interactive/stepper.md +83 -0
  121. package/docs/components/interactive/tabs.md +66 -0
  122. package/docs/components/interactive/toast.md +177 -0
  123. package/docs/components/layout/col.md +117 -0
  124. package/docs/components/layout/container.md +53 -0
  125. package/docs/components/layout/row.md +107 -0
  126. package/docs/components/list/list-group.md +225 -0
  127. package/docs/components/navigation/breadcrumb.md +120 -0
  128. package/docs/components/navigation/nav.md +151 -0
  129. package/docs/components/navigation/navbar.md +108 -0
  130. package/docs/components/navigation/pagination.md +162 -0
  131. package/docs/components/progress/progress.md +188 -0
  132. package/docs/composables/back-button.md +28 -0
  133. package/docs/composables/breakpoints.md +54 -0
  134. package/docs/composables/color-mode.md +179 -0
  135. package/docs/composables/use-form.md +78 -0
  136. package/docs/composables/use-position.md +68 -0
  137. package/docs/composables/use-toast.md +91 -0
  138. package/docs/directives/v-tooltip.md +58 -0
  139. package/docs/forms/README.md +87 -0
  140. package/docs/forms/autocomplete.md +96 -0
  141. package/docs/forms/file-input.md +97 -0
  142. package/docs/forms/form-checkbox.md +100 -0
  143. package/docs/forms/form-datepicker.md +80 -0
  144. package/docs/forms/form-group.md +115 -0
  145. package/docs/forms/form-input.md +112 -0
  146. package/docs/forms/form-radio.md +82 -0
  147. package/docs/forms/form-select.md +98 -0
  148. package/docs/forms/form-spinbutton.md +94 -0
  149. package/docs/forms/form-switch.md +75 -0
  150. package/docs/forms/form-textarea.md +82 -0
  151. package/docs/forms/form-wysiwyg.md +99 -0
  152. package/docs/forms/input-group.md +70 -0
  153. package/docs/forms/validation.md +213 -0
  154. package/docs/getting-started/starter-template.md +136 -0
  155. package/docs/superpowers/plans/2026-05-12-vibe-charts.md +1999 -0
  156. package/docs/superpowers/plans/2026-05-29-e2e-browser-testing.md +615 -0
  157. package/docs/superpowers/specs/2026-05-12-charting-design.md +185 -0
  158. package/docs/superpowers/specs/2026-05-29-e2e-browser-testing-design.md +168 -0
  159. package/docs/utilities/position.md +82 -0
  160. package/docs/versioning.md +57 -0
  161. package/examples/README.md +201 -0
  162. package/examples/album.html +262 -0
  163. package/examples/blog.html +166 -0
  164. package/examples/carousel.html +114 -0
  165. package/examples/checkout.html +275 -0
  166. package/examples/cover.html +89 -0
  167. package/examples/dashboard.html +156 -0
  168. package/examples/index.html +129 -0
  169. package/examples/jumbotron.html +56 -0
  170. package/examples/mobile-dashboard.html +138 -0
  171. package/examples/pricing.html +172 -0
  172. package/examples/product.html +145 -0
  173. package/examples/sidebars.html +166 -0
  174. package/examples/sign-in.html +119 -0
  175. package/examples/starter.html +314 -0
  176. package/examples/sticky-footer-navbar.html +70 -0
  177. package/examples/sticky-footer.html +60 -0
  178. package/examples/test-simple.html +91 -0
  179. package/llms.txt +782 -0
  180. package/package.json +44 -14
  181. package/dist/App.vue.d.ts +0 -2
  182. package/dist/components/HelloWorld.vue.d.ts +0 -5
  183. package/dist/components/VibeAccordion.vue.d.ts +0 -90
  184. package/dist/components/VibeAutocomplete.vue.d.ts +0 -46
  185. package/dist/components/VibeBreadcrumb.vue.d.ts +0 -47
  186. package/dist/components/VibeCollapse.vue.d.ts +0 -84
  187. package/dist/components/VibeContainer.vue.d.ts +0 -44
  188. package/dist/components/VibeDataTable.vue.d.ts +0 -76
  189. package/dist/components/VibeNavbarBrand.vue.d.ts +0 -42
  190. package/dist/components/VibeNavbarNav.vue.d.ts +0 -61
  191. package/dist/components/VibePopover.vue.d.ts +0 -95
  192. package/dist/components/VibeProgress.vue.d.ts +0 -45
  193. package/dist/components/VibeScrollspy.vue.d.ts +0 -77
  194. package/dist/components/VibeSortable.vue.d.ts +0 -40
  195. package/dist/components/VibeTabContent.vue.d.ts +0 -74
  196. package/dist/components/VibeTooltip.vue.d.ts +0 -86
  197. package/dist/composables/useId.d.ts +0 -5
  198. package/dist/types/index.d.ts +0 -6
  199. /package/dist/{composables → src/composables}/useBackButton.d.ts +0 -0
  200. /package/dist/{composables → src/composables}/useForm.d.ts +0 -0
  201. /package/dist/{composables → src/composables}/useFormValidation.d.ts +0 -0
  202. /package/dist/{composables → src/composables}/usePosition.d.ts +0 -0
  203. /package/dist/{composables → src/composables}/useToast.d.ts +0 -0
  204. /package/dist/{index.d.ts → src/index.d.ts} +0 -0
  205. /package/dist/{main.d.ts → src/main.d.ts} +0 -0
@@ -6,34 +6,32 @@ export interface StepperStep {
6
6
  icon?: string;
7
7
  }
8
8
  type StepperGuard = (currentIndex: number, direction: 'next' | 'prev') => boolean | Promise<boolean>;
9
- declare function __VLS_template(): {
10
- attrs: Partial<{}>;
11
- slots: {
12
- marker?(_: {
13
- index: number;
14
- step: StepperStep;
15
- active: boolean;
16
- }): any;
17
- label?(_: {
18
- index: number;
19
- step: StepperStep;
20
- }): any;
21
- step?(_: {
22
- index: number;
23
- step: StepperStep;
24
- }): any;
25
- actions?(_: {
26
- next: () => Promise<void>;
27
- prev: () => Promise<void>;
28
- isFirst: boolean;
29
- isLast: boolean;
30
- }): any;
31
- };
32
- refs: {};
33
- rootEl: HTMLDivElement;
9
+ declare var __VLS_1: {
10
+ index: number;
11
+ step: StepperStep;
12
+ active: boolean;
13
+ }, __VLS_3: {
14
+ index: number;
15
+ step: StepperStep;
16
+ }, __VLS_5: {
17
+ index: number;
18
+ step: StepperStep | undefined;
19
+ }, __VLS_7: {
20
+ next: () => Promise<void>;
21
+ prev: () => Promise<void>;
22
+ isFirst: boolean;
23
+ isLast: boolean;
34
24
  };
35
- type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
36
- declare const __VLS_component: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
25
+ type __VLS_Slots = {} & {
26
+ marker?: (props: typeof __VLS_1) => any;
27
+ } & {
28
+ label?: (props: typeof __VLS_3) => any;
29
+ } & {
30
+ step?: (props: typeof __VLS_5) => any;
31
+ } & {
32
+ actions?: (props: typeof __VLS_7) => any;
33
+ };
34
+ declare const __VLS_base: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
37
35
  modelValue: {
38
36
  type: NumberConstructor;
39
37
  default: number;
@@ -72,6 +70,7 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
72
70
  };
73
71
  }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
74
72
  "update:modelValue": (index: number) => any;
73
+ "component-error": (error: unknown) => any;
75
74
  finish: () => any;
76
75
  }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
77
76
  modelValue: {
@@ -112,20 +111,22 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
112
111
  };
113
112
  }>> & Readonly<{
114
113
  "onUpdate:modelValue"?: ((index: number) => any) | undefined;
114
+ "onComponent-error"?: ((error: unknown) => any) | undefined;
115
115
  onFinish?: (() => any) | undefined;
116
116
  }>, {
117
117
  modelValue: number;
118
118
  vertical: boolean;
119
+ linear: boolean;
119
120
  prevText: string;
120
121
  nextText: string;
121
- linear: boolean;
122
122
  beforeNext: StepperGuard;
123
123
  beforePrev: StepperGuard;
124
124
  finishText: string;
125
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
126
- declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
125
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
126
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
127
+ declare const _default: typeof __VLS_export;
127
128
  export default _default;
128
- type __VLS_WithTemplateSlots<T, S> = T & {
129
+ type __VLS_WithSlots<T, S> = T & {
129
130
  new (): {
130
131
  $slots: S;
131
132
  };
@@ -1,13 +1,8 @@
1
- declare function __VLS_template(): {
2
- attrs: Partial<{}>;
3
- slots: {
4
- default?(_: {}): any;
5
- };
6
- refs: {};
7
- rootEl: any;
1
+ declare var __VLS_1: {};
2
+ type __VLS_Slots = {} & {
3
+ default?: (props: typeof __VLS_1) => any;
8
4
  };
9
- type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
10
- declare const __VLS_component: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
5
+ declare const __VLS_base: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
11
6
  name: {
12
7
  type: StringConstructor;
13
8
  required: true;
@@ -36,9 +31,10 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
36
31
  }>> & Readonly<{}>, {
37
32
  disabled: boolean;
38
33
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
39
- declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
34
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
35
+ declare const _default: typeof __VLS_export;
40
36
  export default _default;
41
- type __VLS_WithTemplateSlots<T, S> = T & {
37
+ type __VLS_WithSlots<T, S> = T & {
42
38
  new (): {
43
39
  $slots: S;
44
40
  };
@@ -0,0 +1,56 @@
1
+ import { PropType } from 'vue';
2
+ import { Tag, TabPane } from '../types';
3
+ declare var __VLS_8: {
4
+ pane: TabPane;
5
+ index: number;
6
+ };
7
+ type __VLS_Slots = {} & {
8
+ pane?: (props: typeof __VLS_8) => any;
9
+ };
10
+ declare const __VLS_base: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
11
+ id: {
12
+ type: StringConstructor;
13
+ default: undefined;
14
+ };
15
+ tag: {
16
+ type: PropType<Tag>;
17
+ default: string;
18
+ };
19
+ panes: {
20
+ type: () => TabPane[];
21
+ required: true;
22
+ };
23
+ fade: {
24
+ type: BooleanConstructor;
25
+ default: boolean;
26
+ };
27
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
28
+ id: {
29
+ type: StringConstructor;
30
+ default: undefined;
31
+ };
32
+ tag: {
33
+ type: PropType<Tag>;
34
+ default: string;
35
+ };
36
+ panes: {
37
+ type: () => TabPane[];
38
+ required: true;
39
+ };
40
+ fade: {
41
+ type: BooleanConstructor;
42
+ default: boolean;
43
+ };
44
+ }>> & Readonly<{}>, {
45
+ fade: boolean;
46
+ tag: Tag;
47
+ id: string;
48
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
49
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
50
+ declare const _default: typeof __VLS_export;
51
+ export default _default;
52
+ type __VLS_WithSlots<T, S> = T & {
53
+ new (): {
54
+ $slots: S;
55
+ };
56
+ };
@@ -1,15 +1,10 @@
1
1
  import { PropType } from 'vue';
2
2
  type TabsVariant = 'tabs' | 'pills' | 'underline';
3
- declare function __VLS_template(): {
4
- attrs: Partial<{}>;
5
- slots: {
6
- default?(_: {}): any;
7
- };
8
- refs: {};
9
- rootEl: HTMLDivElement;
3
+ declare var __VLS_1: {};
4
+ type __VLS_Slots = {} & {
5
+ default?: (props: typeof __VLS_1) => any;
10
6
  };
11
- type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
12
- declare const __VLS_component: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
7
+ declare const __VLS_base: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
13
8
  modelValue: {
14
9
  type: StringConstructor;
15
10
  default: undefined;
@@ -69,13 +64,14 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
69
64
  variant: TabsVariant;
70
65
  modelValue: string;
71
66
  fill: boolean;
72
- lazy: boolean;
73
67
  vertical: boolean;
74
68
  justified: boolean;
75
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, HTMLDivElement>;
76
- declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
69
+ lazy: boolean;
70
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
71
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
72
+ declare const _default: typeof __VLS_export;
77
73
  export default _default;
78
- type __VLS_WithTemplateSlots<T, S> = T & {
74
+ type __VLS_WithSlots<T, S> = T & {
79
75
  new (): {
80
76
  $slots: S;
81
77
  };
@@ -1,27 +1,23 @@
1
- import { Variant, ToastPlacement } from '../types';
1
+ import { Variant, ToastPlacement, ComponentError } from '../types';
2
2
  interface BootstrapToast {
3
3
  show: () => void;
4
4
  hide: () => void;
5
5
  dispose: () => void;
6
6
  }
7
- declare function __VLS_template(): {
8
- attrs: Partial<{}>;
9
- slots: {
10
- header?(_: {}): any;
11
- header?(_: {}): any;
12
- default?(_: {}): any;
13
- default?(_: {}): any;
14
- };
15
- refs: {
16
- toastRef: HTMLDivElement;
17
- };
18
- rootEl: any;
7
+ declare var __VLS_1: {}, __VLS_3: {}, __VLS_11: {}, __VLS_13: {};
8
+ type __VLS_Slots = {} & {
9
+ header?: (props: typeof __VLS_1) => any;
10
+ } & {
11
+ default?: (props: typeof __VLS_3) => any;
12
+ } & {
13
+ header?: (props: typeof __VLS_11) => any;
14
+ } & {
15
+ default?: (props: typeof __VLS_13) => any;
19
16
  };
20
- type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
21
- declare const __VLS_component: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
17
+ declare const __VLS_base: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
22
18
  id: {
23
19
  type: StringConstructor;
24
- default: () => string;
20
+ default: undefined;
25
21
  };
26
22
  modelValue: {
27
23
  type: BooleanConstructor;
@@ -58,26 +54,18 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
58
54
  }>, {
59
55
  show: () => void | undefined;
60
56
  hide: () => void | undefined;
61
- bsInstance: import('vue').Ref<{
62
- show: () => void;
63
- hide: () => void;
64
- dispose: () => void;
65
- } | null, BootstrapToast | {
66
- show: () => void;
67
- hide: () => void;
68
- dispose: () => void;
69
- } | null>;
70
- }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
71
- "update:modelValue": (...args: any[]) => void;
72
- "component-error": (...args: any[]) => void;
73
- show: (...args: any[]) => void;
74
- shown: (...args: any[]) => void;
75
- hide: (...args: any[]) => void;
76
- hidden: (...args: any[]) => void;
57
+ _unsafe_bsInstance: import('vue').ShallowRef<BootstrapToast | null, BootstrapToast | null>;
58
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
59
+ "update:modelValue": (value: boolean) => any;
60
+ "component-error": (error: ComponentError) => any;
61
+ show: () => any;
62
+ hidden: () => any;
63
+ hide: () => any;
64
+ shown: () => any;
77
65
  }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
78
66
  id: {
79
67
  type: StringConstructor;
80
- default: () => string;
68
+ default: undefined;
81
69
  };
82
70
  modelValue: {
83
71
  type: BooleanConstructor;
@@ -112,12 +100,12 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
112
100
  default: boolean;
113
101
  };
114
102
  }>> & Readonly<{
115
- "onUpdate:modelValue"?: ((...args: any[]) => any) | undefined;
116
- "onComponent-error"?: ((...args: any[]) => any) | undefined;
117
- onShow?: ((...args: any[]) => any) | undefined;
118
- onShown?: ((...args: any[]) => any) | undefined;
119
- onHide?: ((...args: any[]) => any) | undefined;
120
- onHidden?: ((...args: any[]) => any) | undefined;
103
+ "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
104
+ "onComponent-error"?: ((error: ComponentError) => any) | undefined;
105
+ onShow?: (() => any) | undefined;
106
+ onHidden?: (() => any) | undefined;
107
+ onHide?: (() => any) | undefined;
108
+ onShown?: (() => any) | undefined;
121
109
  }>, {
122
110
  variant: Variant;
123
111
  modelValue: boolean;
@@ -128,12 +116,11 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
128
116
  autohide: boolean;
129
117
  delay: number;
130
118
  noContainer: boolean;
131
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
132
- toastRef: HTMLDivElement;
133
- }, any>;
134
- declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
119
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
120
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
121
+ declare const _default: typeof __VLS_export;
135
122
  export default _default;
136
- type __VLS_WithTemplateSlots<T, S> = T & {
123
+ type __VLS_WithSlots<T, S> = T & {
137
124
  new (): {
138
125
  $slots: S;
139
126
  };
@@ -1,5 +1,5 @@
1
1
  import { ToastPlacement } from '../types';
2
- declare const _default: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
2
+ declare const __VLS_export: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
3
3
  defaultPlacement: {
4
4
  type: () => ToastPlacement;
5
5
  default: string;
@@ -12,4 +12,5 @@ declare const _default: import('vue').DefineComponent<import('vue').ExtractPropT
12
12
  }>> & Readonly<{}>, {
13
13
  defaultPlacement: ToastPlacement;
14
14
  }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
15
+ declare const _default: typeof __VLS_export;
15
16
  export default _default;
@@ -0,0 +1,63 @@
1
+ import { TooltipPlacement, ComponentError } from '../types';
2
+ interface BootstrapTooltip {
3
+ dispose: () => void;
4
+ setContent: (content: object) => void;
5
+ }
6
+ declare var __VLS_1: {};
7
+ type __VLS_Slots = {} & {
8
+ default?: (props: typeof __VLS_1) => any;
9
+ };
10
+ declare const __VLS_base: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
11
+ content: {
12
+ type: StringConstructor;
13
+ default: undefined;
14
+ };
15
+ text: {
16
+ type: StringConstructor;
17
+ default: undefined;
18
+ };
19
+ placement: {
20
+ type: () => TooltipPlacement;
21
+ default: string;
22
+ };
23
+ trigger: {
24
+ type: StringConstructor;
25
+ default: string;
26
+ };
27
+ }>, {
28
+ _unsafe_bsInstance: import('vue').ShallowRef<BootstrapTooltip | null, BootstrapTooltip | null>;
29
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
30
+ "component-error": (error: ComponentError) => any;
31
+ }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
32
+ content: {
33
+ type: StringConstructor;
34
+ default: undefined;
35
+ };
36
+ text: {
37
+ type: StringConstructor;
38
+ default: undefined;
39
+ };
40
+ placement: {
41
+ type: () => TooltipPlacement;
42
+ default: string;
43
+ };
44
+ trigger: {
45
+ type: StringConstructor;
46
+ default: string;
47
+ };
48
+ }>> & Readonly<{
49
+ "onComponent-error"?: ((error: ComponentError) => any) | undefined;
50
+ }>, {
51
+ text: string;
52
+ content: string;
53
+ placement: TooltipPlacement;
54
+ trigger: string;
55
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
56
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
57
+ declare const _default: typeof __VLS_export;
58
+ export default _default;
59
+ type __VLS_WithSlots<T, S> = T & {
60
+ new (): {
61
+ $slots: S;
62
+ };
63
+ };
@@ -0,0 +1,3 @@
1
+ import { ChartDataset } from '../../types';
2
+ export declare function resolveColors(datasets: ChartDataset[], el: HTMLElement): string[];
3
+ export declare function resolveSliceColors(count: number, el: HTMLElement): string[];
@@ -0,0 +1,2 @@
1
+ import { Ref } from 'vue';
2
+ export declare function useChartResize(container: Ref<HTMLElement | null>, canvas: Ref<HTMLCanvasElement | null>, onResize: (w: number, h: number) => void): void;
@@ -0,0 +1,2 @@
1
+ import { TooltipHit } from './chartTypes';
2
+ export declare function bindTooltip(container: HTMLElement, canvas: HTMLCanvasElement, hitTest: (x: number, y: number) => TooltipHit | null): () => void;
@@ -0,0 +1,6 @@
1
+ export interface TooltipHit {
2
+ datasetIndex: number;
3
+ pointIndex: number;
4
+ value: number;
5
+ label: string;
6
+ }
@@ -0,0 +1,5 @@
1
+ import { ChartData } from '../../types';
2
+ import { TooltipHit } from './chartTypes';
3
+ export declare function getMaxVal(data: ChartData, stacked: boolean): number;
4
+ export declare function drawBar(ctx: CanvasRenderingContext2D, data: ChartData, w: number, h: number, colors: string[], showAxes: boolean, showGrid: boolean, stacked: boolean): void;
5
+ export declare function hitTestBar(x: number, y: number, data: ChartData, w: number, h: number, showAxes: boolean, stacked: boolean, maxVal: number): TooltipHit | null;
@@ -0,0 +1,18 @@
1
+ import { ChartData } from '../../types';
2
+ import { TooltipHit } from './chartTypes';
3
+ export declare function drawLine(ctx: CanvasRenderingContext2D, data: ChartData, w: number, h: number, colors: string[], showAxes: boolean, showGrid: boolean, smooth: boolean, fill: boolean): void;
4
+ /**
5
+ * Compute the {min, max, range} across all dataset values, or null for empty data.
6
+ * Exposed so the chart component can precompute it once per data change and pass it to
7
+ * hitTestLine, instead of re-scanning every value on every mousemove.
8
+ */
9
+ export declare function getLineExtent(data: ChartData): {
10
+ min: number;
11
+ max: number;
12
+ range: number;
13
+ } | null;
14
+ export declare function hitTestLine(x: number, y: number, data: ChartData, w: number, h: number, showAxes: boolean, extent: {
15
+ min: number;
16
+ max: number;
17
+ range: number;
18
+ } | null): TooltipHit | null;
@@ -0,0 +1,4 @@
1
+ import { ChartData } from '../../types';
2
+ import { TooltipHit } from './chartTypes';
3
+ export declare function drawPie(ctx: CanvasRenderingContext2D, data: ChartData, w: number, h: number, colors: string[]): void;
4
+ export declare function hitTestPie(x: number, y: number, data: ChartData, w: number, h: number): TooltipHit | null;
@@ -1,4 +1,5 @@
1
1
  export declare const setActiveDrag: (payload: unknown, group: string) => void;
2
+ export declare const resetDndStoreForSSR: () => void;
2
3
  export declare const clearActiveDrag: () => void;
3
4
  export declare const getActiveDrag: () => {
4
5
  payload: unknown;
@@ -10,6 +10,7 @@ import { default as VibeContainer } from './VibeContainer.vue';
10
10
  import { default as VibeRow } from './VibeRow.vue';
11
11
  import { default as VibeCol } from './VibeCol.vue';
12
12
  import { default as VibeCard } from './VibeCard.vue';
13
+ import { default as VibeHero } from './VibeHero.vue';
13
14
  import { default as VibeBreadcrumb } from './VibeBreadcrumb.vue';
14
15
  import { default as VibeNav } from './VibeNav.vue';
15
16
  import { default as VibeNavbar } from './VibeNavbar.vue';
@@ -34,6 +35,9 @@ import { default as VibeTooltip } from './VibeTooltip.vue';
34
35
  import { default as VibePopover } from './VibePopover.vue';
35
36
  import { default as VibeScrollspy } from './VibeScrollspy.vue';
36
37
  import { default as VibeIcon } from './VibeIcon.vue';
38
+ import { default as VibeChartLine } from './VibeChartLine.vue';
39
+ import { default as VibeChartBar } from './VibeChartBar.vue';
40
+ import { default as VibeChartPie } from './VibeChartPie.vue';
37
41
  import { default as VibeDataTable } from './VibeDataTable.vue';
38
42
  import { default as VibeFormInput } from './VibeFormInput.vue';
39
43
  import { default as VibeFormSelect } from './VibeFormSelect.vue';
@@ -57,6 +61,6 @@ import { default as VibeFormWysiwyg } from './VibeFormWysiwyg.vue';
57
61
  import { default as VibeInputGroup } from './VibeInputGroup.vue';
58
62
  import { default as VibeLink } from './VibeLink.vue';
59
63
  import { Plugin } from 'vue';
60
- export { VibeAlert, VibeBadge, VibeButton, VibeButtonGroup, VibeCloseButton, VibeSpinner, VibePlaceholder, VibeSkeleton, VibeContainer, VibeRow, VibeCol, VibeCard, VibeBreadcrumb, VibeNav, VibeNavbar, VibeNavbarBrand, VibeNavbarToggle, VibeNavbarNav, VibePagination, VibeTabContent, VibeTabs, VibeTab, VibeListGroup, VibeProgress, VibeAccordion, VibeCollapse, VibeDropdown, VibeModal, VibeOffcanvas, VibeToast, VibeToastHost, VibeCarousel, VibeTooltip, VibePopover, VibeScrollspy, VibeIcon, VibeDataTable, VibeFormInput, VibeFormSelect, VibeFormTextarea, VibeFormSpinbutton, VibeFormDatepicker, VibeFileInput, VibeSlider, VibeStepper, VibeAutocomplete, VibeSortable, VibeDraggable, VibeDroppable, VibeResizable, VibeDatePicker, VibeFormCheckbox, VibeFormRadio, VibeFormSwitch, VibeFormGroup, VibeFormWysiwyg, VibeInputGroup, VibeLink };
64
+ export { VibeAlert, VibeBadge, VibeButton, VibeButtonGroup, VibeCloseButton, VibeSpinner, VibePlaceholder, VibeSkeleton, VibeContainer, VibeRow, VibeCol, VibeCard, VibeHero, VibeBreadcrumb, VibeNav, VibeNavbar, VibeNavbarBrand, VibeNavbarToggle, VibeNavbarNav, VibePagination, VibeTabContent, VibeTabs, VibeTab, VibeListGroup, VibeProgress, VibeAccordion, VibeCollapse, VibeDropdown, VibeModal, VibeOffcanvas, VibeToast, VibeToastHost, VibeCarousel, VibeTooltip, VibePopover, VibeScrollspy, VibeIcon, VibeChartLine, VibeChartBar, VibeChartPie, VibeDataTable, VibeFormInput, VibeFormSelect, VibeFormTextarea, VibeFormSpinbutton, VibeFormDatepicker, VibeFileInput, VibeSlider, VibeStepper, VibeAutocomplete, VibeSortable, VibeDraggable, VibeDroppable, VibeResizable, VibeDatePicker, VibeFormCheckbox, VibeFormRadio, VibeFormSwitch, VibeFormGroup, VibeFormWysiwyg, VibeInputGroup, VibeLink };
61
65
  declare const VibeUIPlugin: Plugin;
62
66
  export default VibeUIPlugin;
@@ -10,4 +10,5 @@ export declare function useBreakpoints(): {
10
10
  isXxl: import('vue').Ref<boolean, boolean>;
11
11
  isMobile: import('vue').ComputedRef<boolean>;
12
12
  isTablet: import('vue').ComputedRef<boolean>;
13
+ cleanup: () => void;
13
14
  };
@@ -5,7 +5,7 @@ export declare function useColorMode(): {
5
5
  toggleColorMode: () => void;
6
6
  initColorMode: () => void;
7
7
  clearColorMode: () => void;
8
- onColorModeChange: (callback: (mode: ColorMode) => void) => void;
8
+ onColorModeChange: (callback: (mode: ColorMode) => void) => () => void;
9
9
  };
10
10
  /**
11
11
  * For testing only — not re-exported from the package index.
@@ -0,0 +1,2 @@
1
+ export declare function useId(prefix?: string): string;
2
+ export declare function _resetIdCounter(): void;
@@ -1,5 +1,5 @@
1
1
  import { Directive } from 'vue';
2
- import { Placement } from '../types';
2
+ import { TooltipPlacement } from '../types';
3
3
  interface BootstrapTooltipInstance {
4
4
  dispose: () => void;
5
5
  setContent: (content: Record<string, string>) => void;
@@ -8,9 +8,8 @@ interface TooltipOptions {
8
8
  title?: string;
9
9
  text?: string;
10
10
  content?: string;
11
- placement?: Placement;
11
+ placement?: TooltipPlacement;
12
12
  trigger?: string;
13
- html?: boolean;
14
13
  }
15
14
  type TooltipBindingValue = string | TooltipOptions | undefined;
16
15
  declare const INSTANCE_KEY: unique symbol;
@@ -0,0 +1,28 @@
1
+ import { InjectionKey, ComputedRef } from 'vue';
2
+ export interface FormGroupContext {
3
+ /** The group's computed element id — shared with the first control that calls consumeId(). */
4
+ id: ComputedRef<string>;
5
+ /**
6
+ * Claim the group id for label association.
7
+ * Only the first control that calls this receives the id — subsequent calls get null.
8
+ * Prevents duplicate id attributes when multiple controls are inside one group.
9
+ */
10
+ consumeId: () => string | null;
11
+ hasLabel: ComputedRef<boolean>;
12
+ hasValidation: ComputedRef<boolean>;
13
+ hasHelp: ComputedRef<boolean>;
14
+ }
15
+ export declare const FORM_GROUP_KEY: InjectionKey<FormGroupContext | null>;
16
+ export interface NavbarCollapseContext {
17
+ collapseStates: Record<string, boolean>;
18
+ toggleCollapse: (id: string) => void;
19
+ }
20
+ export declare const NAVBAR_COLLAPSE_KEY: InjectionKey<NavbarCollapseContext | null>;
21
+ export interface TabsContext {
22
+ register: (name: string, label: string, disabled: boolean) => void;
23
+ unregister: (name: string) => void;
24
+ isActive: (name: string) => boolean;
25
+ hasBeenActive: (name: string) => boolean;
26
+ lazy: boolean;
27
+ }
28
+ export declare const TABS_CONTEXT_KEY: InjectionKey<TabsContext | null>;
@@ -1,9 +1,15 @@
1
+ /** Payload emitted by the `component-error` event on all Bootstrap-backed components. */
2
+ export interface ComponentError {
3
+ message: string;
4
+ componentName: string;
5
+ originalError: unknown;
6
+ }
1
7
  export type ColorMode = 'light' | 'dark' | 'auto';
2
8
  export type Variant = 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info' | 'light' | 'dark';
3
9
  export type ButtonVariant = Variant | 'link';
4
10
  export type Size = 'sm' | 'lg';
5
11
  export type ButtonType = 'button' | 'submit' | 'reset';
6
- export type Placement = 'top' | 'bottom' | 'start' | 'end';
12
+ export type TooltipPlacement = 'top' | 'bottom' | 'start' | 'end';
7
13
  export type Tag = 'div' | 'span' | 'section' | 'article' | 'nav' | 'aside' | 'header' | 'footer' | 'main';
8
14
  export type Direction = 'up' | 'down' | 'start' | 'end';
9
15
  export type SpinnerType = 'border' | 'grow';
@@ -49,6 +55,8 @@ export interface NavItem {
49
55
  text: string;
50
56
  href?: string;
51
57
  to?: string | object;
58
+ /** Tab panel ID (e.g. '#panel-id') for tabs/pills mode when using router-link */
59
+ target?: string;
52
60
  active?: boolean;
53
61
  disabled?: boolean;
54
62
  children?: DropdownItem[];
@@ -108,7 +116,8 @@ export interface TabPane {
108
116
  }
109
117
  export type InputType = 'text' | 'email' | 'password' | 'number' | 'tel' | 'url' | 'search' | 'date' | 'time' | 'datetime-local' | 'month' | 'week' | 'color';
110
118
  export type ValidationState = 'valid' | 'invalid' | null;
111
- export type ValidatorFunction = (value: any) => boolean | string | Promise<boolean | string>;
119
+ /** Return true for valid, false for invalid (uses rule.message), or a non-empty string as the error message (also invalid). */
120
+ export type ValidatorFunction = (value: unknown) => boolean | string | Promise<boolean | string>;
112
121
  export interface ValidationRule {
113
122
  validator: ValidatorFunction;
114
123
  message?: string;
@@ -123,3 +132,13 @@ export interface FormSelectOption {
123
132
  text: string;
124
133
  disabled?: boolean;
125
134
  }
135
+ export interface ChartDataset {
136
+ label: string;
137
+ data: number[];
138
+ color?: string;
139
+ }
140
+ export interface ChartData {
141
+ labels: string[];
142
+ datasets: ChartDataset[];
143
+ }
144
+ export type ChartLegendPosition = 'top' | 'bottom' | 'none';
@@ -0,0 +1,16 @@
1
+ export declare const SAFE_COLUMN_STYLE_PROPS: Set<string>;
2
+ /**
3
+ * Validate a CSS length/size prop (width, height, fontSize, etc.).
4
+ * Returns the value unchanged if safe, undefined otherwise.
5
+ */
6
+ export declare function safeLength(value: string | undefined): string | undefined;
7
+ /**
8
+ * Validate a CSS color prop.
9
+ * Returns the value unchanged if it matches a known-safe color form, undefined otherwise.
10
+ */
11
+ export declare function safeColor(value: string | undefined): string | undefined;
12
+ /**
13
+ * Filter a consumer-supplied CSS style object to an allowlist of known-safe property names.
14
+ * Use for thStyle / tdStyle column config in VibeDataTable.
15
+ */
16
+ export declare function safeCssObject(obj: Record<string, string> | undefined): Record<string, string>;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Sanitize an href prop value against javascript: / data: / vbscript: injection.
3
+ *
4
+ * Returns the original value unchanged if it matches a safe pattern, or
5
+ * undefined otherwise so the attribute is omitted from the DOM entirely.
6
+ */
7
+ export declare function safeHref(href: string | undefined): string | undefined;