@velkymx/vibeui 0.9.0 → 1.1.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.
Files changed (184) hide show
  1. package/AGENTS.md +44 -0
  2. package/CLAUDE.md +48 -0
  3. package/README.md +222 -197
  4. package/dist/App.vue.d.ts +2 -1
  5. package/dist/components/HelloWorld.vue.d.ts +2 -1
  6. package/dist/components/VibeAccordion.vue.d.ts +39 -40
  7. package/dist/components/VibeAlert.vue.d.ts +21 -37
  8. package/dist/components/VibeAutocomplete.vue.d.ts +59 -31
  9. package/dist/components/VibeBadge.vue.d.ts +10 -18
  10. package/dist/components/VibeBreadcrumb.vue.d.ts +25 -21
  11. package/dist/components/VibeButton.vue.d.ts +13 -17
  12. package/dist/components/VibeButtonGroup.vue.d.ts +11 -19
  13. package/dist/components/VibeCard.vue.d.ts +51 -24
  14. package/dist/components/VibeCarousel.vue.d.ts +27 -49
  15. package/dist/components/VibeChartBar.vue.d.ts +61 -0
  16. package/dist/components/VibeChartLine.vue.d.ts +70 -0
  17. package/dist/components/VibeChartPie.vue.d.ts +34 -0
  18. package/dist/components/VibeCloseButton.vue.d.ts +9 -7
  19. package/dist/components/VibeCol.vue.d.ts +9 -17
  20. package/dist/components/VibeCollapse.vue.d.ts +24 -32
  21. package/dist/components/VibeContainer.vue.d.ts +9 -17
  22. package/dist/components/VibeDataTable.vue.d.ts +122 -63
  23. package/dist/components/VibeDatePicker.vue.d.ts +4 -6
  24. package/dist/components/VibeDraggable.vue.d.ts +9 -13
  25. package/dist/components/VibeDropdown.vue.d.ts +46 -43
  26. package/dist/components/VibeDroppable.vue.d.ts +9 -13
  27. package/dist/components/VibeFileInput.vue.d.ts +14 -20
  28. package/dist/components/VibeFormCheckbox.vue.d.ts +30 -22
  29. package/dist/components/VibeFormDatepicker.vue.d.ts +27 -30
  30. package/dist/components/VibeFormErrorSummary.vue.d.ts +17 -0
  31. package/dist/components/VibeFormGroup.vue.d.ts +10 -13
  32. package/dist/components/VibeFormInput.vue.d.ts +60 -25
  33. package/dist/components/VibeFormRadio.vue.d.ts +23 -24
  34. package/dist/components/VibeFormSelect.vue.d.ts +28 -34
  35. package/dist/components/VibeFormSpinbutton.vue.d.ts +31 -34
  36. package/dist/components/VibeFormSwitch.vue.d.ts +22 -23
  37. package/dist/components/VibeFormTextarea.vue.d.ts +24 -25
  38. package/dist/components/VibeFormWysiwyg.vue.d.ts +23 -22
  39. package/dist/components/VibeHero.vue.d.ts +117 -0
  40. package/dist/components/VibeIcon.vue.d.ts +27 -7
  41. package/dist/components/VibeInputGroup.vue.d.ts +12 -14
  42. package/dist/components/VibeLink.vue.d.ts +14 -18
  43. package/dist/components/VibeListGroup.vue.d.ts +26 -22
  44. package/dist/components/VibeModal.vue.d.ts +47 -45
  45. package/dist/components/VibeNav.vue.d.ts +40 -20
  46. package/dist/components/VibeNavbar.vue.d.ts +12 -19
  47. package/dist/components/VibeNavbarBrand.vue.d.ts +9 -17
  48. package/dist/components/VibeNavbarNav.vue.d.ts +52 -33
  49. package/dist/components/VibeNavbarToggle.vue.d.ts +7 -5
  50. package/dist/components/VibeOffcanvas.vue.d.ts +28 -43
  51. package/dist/components/VibePagination.vue.d.ts +38 -29
  52. package/dist/components/VibePlaceholder.vue.d.ts +9 -17
  53. package/dist/components/VibePopover.vue.d.ts +17 -40
  54. package/dist/components/VibeProgress.vue.d.ts +13 -21
  55. package/dist/components/VibeResizable.vue.d.ts +10 -14
  56. package/dist/components/VibeRow.vue.d.ts +9 -17
  57. package/dist/components/VibeScrollspy.vue.d.ts +37 -25
  58. package/dist/components/VibeSkeleton.vue.d.ts +2 -1
  59. package/dist/components/VibeSlider.vue.d.ts +4 -5
  60. package/dist/components/VibeSortable.vue.d.ts +37 -18
  61. package/dist/components/VibeSpinner.vue.d.ts +4 -7
  62. package/dist/components/VibeStepper.vue.d.ts +32 -31
  63. package/dist/components/VibeTab.vue.d.ts +7 -11
  64. package/dist/components/VibeTabContent.vue.d.ts +13 -31
  65. package/dist/components/VibeTabs.vue.d.ts +9 -13
  66. package/dist/components/VibeToast.vue.d.ts +31 -44
  67. package/dist/components/VibeToastHost.vue.d.ts +2 -1
  68. package/dist/components/VibeTooltip.vue.d.ts +16 -39
  69. package/dist/components/chart/chartColors.d.ts +3 -0
  70. package/dist/components/chart/chartResize.d.ts +2 -0
  71. package/dist/components/chart/chartTooltip.d.ts +2 -0
  72. package/dist/components/chart/chartTypes.d.ts +6 -0
  73. package/dist/components/chart/drawBar.d.ts +5 -0
  74. package/dist/components/chart/drawLine.d.ts +18 -0
  75. package/dist/components/chart/drawPie.d.ts +4 -0
  76. package/dist/components/dndStore.d.ts +1 -0
  77. package/dist/components/index.d.ts +6 -1
  78. package/dist/composables/useBreakpoints.d.ts +1 -0
  79. package/dist/composables/useColorMode.d.ts +1 -1
  80. package/dist/composables/useId.d.ts +1 -4
  81. package/dist/directives/vTooltip.d.ts +2 -3
  82. package/dist/injectionKeys.d.ts +34 -0
  83. package/dist/purify.es-eYghtX9j.mjs +735 -0
  84. package/dist/types.d.ts +23 -2
  85. package/dist/utils/routeKey.d.ts +11 -0
  86. package/dist/utils/safeCss.d.ts +16 -0
  87. package/dist/utils/safeHref.d.ts +7 -0
  88. package/dist/utils/sanitizeHtml.d.ts +13 -0
  89. package/dist/vibeui.css +2 -1
  90. package/dist/vibeui.es.js +8527 -5855
  91. package/dist/vibeui.umd.js +3 -1
  92. package/docs/README.md +225 -0
  93. package/docs/components/advanced/popover.md +125 -0
  94. package/docs/components/advanced/scrollspy.md +106 -0
  95. package/docs/components/advanced/tooltip.md +90 -0
  96. package/docs/components/card/card.md +223 -0
  97. package/docs/components/charts/chart-bar.md +129 -0
  98. package/docs/components/charts/chart-line.md +136 -0
  99. package/docs/components/charts/chart-pie.md +102 -0
  100. package/docs/components/core/alert.md +94 -0
  101. package/docs/components/core/badge.md +75 -0
  102. package/docs/components/core/button-group.md +99 -0
  103. package/docs/components/core/button.md +145 -0
  104. package/docs/components/core/close-button.md +82 -0
  105. package/docs/components/core/link.md +79 -0
  106. package/docs/components/core/placeholder.md +129 -0
  107. package/docs/components/core/skeleton.md +40 -0
  108. package/docs/components/core/spinner.md +103 -0
  109. package/docs/components/data/datatable.md +437 -0
  110. package/docs/components/hero/hero.md +65 -0
  111. package/docs/components/interactive/accordion.md +121 -0
  112. package/docs/components/interactive/carousel.md +112 -0
  113. package/docs/components/interactive/collapse.md +106 -0
  114. package/docs/components/interactive/date-picker.md +78 -0
  115. package/docs/components/interactive/draggable.md +91 -0
  116. package/docs/components/interactive/dropdown.md +129 -0
  117. package/docs/components/interactive/modal.md +151 -0
  118. package/docs/components/interactive/offcanvas.md +92 -0
  119. package/docs/components/interactive/resizable.md +73 -0
  120. package/docs/components/interactive/slider.md +57 -0
  121. package/docs/components/interactive/sortable.md +52 -0
  122. package/docs/components/interactive/stepper.md +83 -0
  123. package/docs/components/interactive/tabs.md +66 -0
  124. package/docs/components/interactive/toast.md +177 -0
  125. package/docs/components/layout/col.md +117 -0
  126. package/docs/components/layout/container.md +53 -0
  127. package/docs/components/layout/row.md +107 -0
  128. package/docs/components/list/list-group.md +225 -0
  129. package/docs/components/navigation/breadcrumb.md +120 -0
  130. package/docs/components/navigation/nav.md +151 -0
  131. package/docs/components/navigation/navbar.md +114 -0
  132. package/docs/components/navigation/pagination.md +163 -0
  133. package/docs/components/progress/progress.md +188 -0
  134. package/docs/composables/back-button.md +28 -0
  135. package/docs/composables/breakpoints.md +54 -0
  136. package/docs/composables/color-mode.md +179 -0
  137. package/docs/composables/use-form.md +78 -0
  138. package/docs/composables/use-position.md +68 -0
  139. package/docs/composables/use-toast.md +91 -0
  140. package/docs/directives/v-tooltip.md +58 -0
  141. package/docs/forms/README.md +87 -0
  142. package/docs/forms/autocomplete.md +96 -0
  143. package/docs/forms/file-input.md +97 -0
  144. package/docs/forms/form-checkbox.md +100 -0
  145. package/docs/forms/form-datepicker.md +80 -0
  146. package/docs/forms/form-error-summary.md +96 -0
  147. package/docs/forms/form-group.md +118 -0
  148. package/docs/forms/form-input.md +140 -0
  149. package/docs/forms/form-radio.md +82 -0
  150. package/docs/forms/form-select.md +98 -0
  151. package/docs/forms/form-spinbutton.md +94 -0
  152. package/docs/forms/form-switch.md +75 -0
  153. package/docs/forms/form-textarea.md +82 -0
  154. package/docs/forms/form-wysiwyg.md +99 -0
  155. package/docs/forms/input-group.md +70 -0
  156. package/docs/forms/validation.md +213 -0
  157. package/docs/getting-started/starter-template.md +136 -0
  158. package/docs/superpowers/plans/2026-05-12-vibe-charts.md +1999 -0
  159. package/docs/superpowers/plans/2026-05-29-e2e-browser-testing.md +615 -0
  160. package/docs/superpowers/specs/2026-05-12-charting-design.md +185 -0
  161. package/docs/superpowers/specs/2026-05-29-e2e-browser-testing-design.md +168 -0
  162. package/docs/utilities/position.md +82 -0
  163. package/docs/versioning.md +57 -0
  164. package/examples/README.md +201 -0
  165. package/examples/album.html +262 -0
  166. package/examples/blog.html +166 -0
  167. package/examples/carousel.html +114 -0
  168. package/examples/checkout.html +275 -0
  169. package/examples/cover.html +89 -0
  170. package/examples/dashboard.html +156 -0
  171. package/examples/index.html +129 -0
  172. package/examples/jumbotron.html +56 -0
  173. package/examples/mobile-dashboard.html +138 -0
  174. package/examples/pricing.html +172 -0
  175. package/examples/product.html +145 -0
  176. package/examples/sidebars.html +166 -0
  177. package/examples/sign-in.html +119 -0
  178. package/examples/starter.html +314 -0
  179. package/examples/sticky-footer-navbar.html +70 -0
  180. package/examples/sticky-footer.html +60 -0
  181. package/examples/test-simple.html +91 -0
  182. package/llms.txt +801 -0
  183. package/package.json +44 -14
  184. package/dist/types/index.d.ts +0 -6
@@ -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_7: {}, __VLS_9: {}, __VLS_11: {}, __VLS_13: {};
8
+ type __VLS_Slots = {} & {
9
+ header?: (props: typeof __VLS_7) => any;
10
+ } & {
11
+ default?: (props: typeof __VLS_9) => 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;
@@ -1,20 +1,13 @@
1
- import { Placement } from '../types';
1
+ import { TooltipPlacement, ComponentError } from '../types';
2
2
  interface BootstrapTooltip {
3
3
  dispose: () => void;
4
4
  setContent: (content: object) => void;
5
5
  }
6
- declare function __VLS_template(): {
7
- attrs: Partial<{}>;
8
- slots: {
9
- default?(_: {}): any;
10
- };
11
- refs: {
12
- tooltipRef: HTMLSpanElement;
13
- };
14
- rootEl: HTMLSpanElement;
6
+ declare var __VLS_1: {};
7
+ type __VLS_Slots = {} & {
8
+ default?: (props: typeof __VLS_1) => any;
15
9
  };
16
- type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
17
- declare const __VLS_component: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
10
+ declare const __VLS_base: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
18
11
  content: {
19
12
  type: StringConstructor;
20
13
  default: undefined;
@@ -24,27 +17,17 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
24
17
  default: undefined;
25
18
  };
26
19
  placement: {
27
- type: () => Placement;
20
+ type: () => TooltipPlacement;
28
21
  default: string;
29
22
  };
30
23
  trigger: {
31
24
  type: StringConstructor;
32
25
  default: string;
33
26
  };
34
- html: {
35
- type: BooleanConstructor;
36
- default: boolean;
37
- };
38
27
  }>, {
39
- bsInstance: import('vue').Ref<{
40
- dispose: () => void;
41
- setContent: (content: object) => void;
42
- } | null, BootstrapTooltip | {
43
- dispose: () => void;
44
- setContent: (content: object) => void;
45
- } | null>;
46
- }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
47
- "component-error": (...args: any[]) => void;
28
+ _unsafe_bsInstance: import('vue').ShallowRef<BootstrapTooltip | null, BootstrapTooltip | null>;
29
+ }, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
30
+ "component-error": (error: ComponentError) => any;
48
31
  }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
49
32
  content: {
50
33
  type: StringConstructor;
@@ -55,31 +38,25 @@ declare const __VLS_component: import('vue').DefineComponent<import('vue').Extra
55
38
  default: undefined;
56
39
  };
57
40
  placement: {
58
- type: () => Placement;
41
+ type: () => TooltipPlacement;
59
42
  default: string;
60
43
  };
61
44
  trigger: {
62
45
  type: StringConstructor;
63
46
  default: string;
64
47
  };
65
- html: {
66
- type: BooleanConstructor;
67
- default: boolean;
68
- };
69
48
  }>> & Readonly<{
70
- "onComponent-error"?: ((...args: any[]) => any) | undefined;
49
+ "onComponent-error"?: ((error: ComponentError) => any) | undefined;
71
50
  }>, {
72
- html: boolean;
73
51
  text: string;
74
- placement: Placement;
75
52
  content: string;
53
+ placement: TooltipPlacement;
76
54
  trigger: string;
77
- }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {
78
- tooltipRef: HTMLSpanElement;
79
- }, HTMLSpanElement>;
80
- declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, __VLS_TemplateResult["slots"]>;
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;
81
58
  export default _default;
82
- type __VLS_WithTemplateSlots<T, S> = T & {
59
+ type __VLS_WithSlots<T, S> = T & {
83
60
  new (): {
84
61
  $slots: S;
85
62
  };
@@ -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';
@@ -53,10 +57,11 @@ import { default as VibeFormCheckbox } from './VibeFormCheckbox.vue';
53
57
  import { default as VibeFormRadio } from './VibeFormRadio.vue';
54
58
  import { default as VibeFormSwitch } from './VibeFormSwitch.vue';
55
59
  import { default as VibeFormGroup } from './VibeFormGroup.vue';
60
+ import { default as VibeFormErrorSummary } from './VibeFormErrorSummary.vue';
56
61
  import { default as VibeFormWysiwyg } from './VibeFormWysiwyg.vue';
57
62
  import { default as VibeInputGroup } from './VibeInputGroup.vue';
58
63
  import { default as VibeLink } from './VibeLink.vue';
59
64
  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 };
65
+ 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, VibeFormErrorSummary, VibeFormWysiwyg, VibeInputGroup, VibeLink };
61
66
  declare const VibeUIPlugin: Plugin;
62
67
  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.
@@ -1,5 +1,2 @@
1
- /**
2
- * Composable to generate a unique ID for a component instance.
3
- * SSR-friendly by incorporating instance UID if available.
4
- */
5
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,34 @@
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
+ * WCAG 1.3.1 / 3.3.1: ids of the help text and feedback elements rendered by
16
+ * this group so nested controls can reference them in aria-describedby.
17
+ */
18
+ helpId: ComputedRef<string | null>;
19
+ feedbackId: ComputedRef<string | null>;
20
+ }
21
+ export declare const FORM_GROUP_KEY: InjectionKey<FormGroupContext | null>;
22
+ export interface NavbarCollapseContext {
23
+ collapseStates: Record<string, boolean>;
24
+ toggleCollapse: (id: string) => void;
25
+ }
26
+ export declare const NAVBAR_COLLAPSE_KEY: InjectionKey<NavbarCollapseContext | null>;
27
+ export interface TabsContext {
28
+ register: (name: string, label: string, disabled: boolean) => void;
29
+ unregister: (name: string) => void;
30
+ isActive: (name: string) => boolean;
31
+ hasBeenActive: (name: string) => boolean;
32
+ lazy: boolean;
33
+ }
34
+ export declare const TABS_CONTEXT_KEY: InjectionKey<TabsContext | null>;