@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.
- package/AGENTS.md +44 -0
- package/CLAUDE.md +48 -0
- package/README.md +222 -197
- package/dist/purify.es-1D-VntFD.mjs +679 -0
- package/dist/src/App.vue.d.ts +3 -0
- package/dist/src/components/HelloWorld.vue.d.ts +6 -0
- package/dist/src/components/VibeAccordion.vue.d.ts +89 -0
- package/dist/{components → src/components}/VibeAlert.vue.d.ts +18 -34
- package/dist/src/components/VibeAutocomplete.vue.d.ts +74 -0
- package/dist/{components → src/components}/VibeBadge.vue.d.ts +10 -18
- package/dist/src/components/VibeBreadcrumb.vue.d.ts +51 -0
- package/dist/{components → src/components}/VibeButton.vue.d.ts +13 -17
- package/dist/{components → src/components}/VibeButtonGroup.vue.d.ts +10 -18
- package/dist/{components → src/components}/VibeCard.vue.d.ts +51 -24
- package/dist/{components → src/components}/VibeCarousel.vue.d.ts +27 -49
- package/dist/src/components/VibeChartBar.vue.d.ts +61 -0
- package/dist/src/components/VibeChartLine.vue.d.ts +70 -0
- package/dist/src/components/VibeChartPie.vue.d.ts +34 -0
- package/dist/{components → src/components}/VibeCloseButton.vue.d.ts +9 -7
- package/dist/{components → src/components}/VibeCol.vue.d.ts +9 -17
- package/dist/src/components/VibeCollapse.vue.d.ts +76 -0
- package/dist/src/components/VibeContainer.vue.d.ts +36 -0
- package/dist/src/components/VibeDataTable.vue.d.ts +131 -0
- package/dist/{components → src/components}/VibeDatePicker.vue.d.ts +4 -6
- package/dist/{components → src/components}/VibeDraggable.vue.d.ts +9 -13
- package/dist/{components → src/components}/VibeDropdown.vue.d.ts +46 -43
- package/dist/{components → src/components}/VibeDroppable.vue.d.ts +9 -13
- package/dist/{components → src/components}/VibeFileInput.vue.d.ts +14 -20
- package/dist/{components → src/components}/VibeFormCheckbox.vue.d.ts +29 -21
- package/dist/{components → src/components}/VibeFormDatepicker.vue.d.ts +26 -29
- package/dist/{components → src/components}/VibeFormGroup.vue.d.ts +10 -13
- package/dist/{components → src/components}/VibeFormInput.vue.d.ts +22 -23
- package/dist/{components → src/components}/VibeFormRadio.vue.d.ts +22 -23
- package/dist/{components → src/components}/VibeFormSelect.vue.d.ts +27 -33
- package/dist/{components → src/components}/VibeFormSpinbutton.vue.d.ts +30 -33
- package/dist/{components → src/components}/VibeFormSwitch.vue.d.ts +21 -22
- package/dist/{components → src/components}/VibeFormTextarea.vue.d.ts +23 -24
- package/dist/{components → src/components}/VibeFormWysiwyg.vue.d.ts +22 -21
- package/dist/src/components/VibeHero.vue.d.ts +108 -0
- package/dist/{components → src/components}/VibeIcon.vue.d.ts +27 -7
- package/dist/{components → src/components}/VibeInputGroup.vue.d.ts +11 -13
- package/dist/{components → src/components}/VibeLink.vue.d.ts +14 -18
- package/dist/{components → src/components}/VibeListGroup.vue.d.ts +26 -22
- package/dist/{components → src/components}/VibeModal.vue.d.ts +29 -45
- package/dist/{components → src/components}/VibeNav.vue.d.ts +40 -20
- package/dist/{components → src/components}/VibeNavbar.vue.d.ts +12 -19
- package/dist/src/components/VibeNavbarBrand.vue.d.ts +34 -0
- package/dist/src/components/VibeNavbarNav.vue.d.ts +80 -0
- package/dist/{components → src/components}/VibeNavbarToggle.vue.d.ts +7 -5
- package/dist/{components → src/components}/VibeOffcanvas.vue.d.ts +28 -43
- package/dist/{components → src/components}/VibePagination.vue.d.ts +38 -29
- package/dist/{components → src/components}/VibePlaceholder.vue.d.ts +9 -17
- package/dist/src/components/VibePopover.vue.d.ts +72 -0
- package/dist/src/components/VibeProgress.vue.d.ts +37 -0
- package/dist/{components → src/components}/VibeResizable.vue.d.ts +10 -14
- package/dist/{components → src/components}/VibeRow.vue.d.ts +9 -17
- package/dist/src/components/VibeScrollspy.vue.d.ts +89 -0
- package/dist/{components → src/components}/VibeSkeleton.vue.d.ts +2 -1
- package/dist/{components → src/components}/VibeSlider.vue.d.ts +4 -5
- package/dist/src/components/VibeSortable.vue.d.ts +59 -0
- package/dist/{components → src/components}/VibeSpinner.vue.d.ts +4 -7
- package/dist/{components → src/components}/VibeStepper.vue.d.ts +32 -31
- package/dist/{components → src/components}/VibeTab.vue.d.ts +7 -11
- package/dist/src/components/VibeTabContent.vue.d.ts +56 -0
- package/dist/{components → src/components}/VibeTabs.vue.d.ts +9 -13
- package/dist/{components → src/components}/VibeToast.vue.d.ts +31 -44
- package/dist/{components → src/components}/VibeToastHost.vue.d.ts +2 -1
- package/dist/src/components/VibeTooltip.vue.d.ts +63 -0
- package/dist/src/components/chart/chartColors.d.ts +3 -0
- package/dist/src/components/chart/chartResize.d.ts +2 -0
- package/dist/src/components/chart/chartTooltip.d.ts +2 -0
- package/dist/src/components/chart/chartTypes.d.ts +6 -0
- package/dist/src/components/chart/drawBar.d.ts +5 -0
- package/dist/src/components/chart/drawLine.d.ts +18 -0
- package/dist/src/components/chart/drawPie.d.ts +4 -0
- package/dist/{components → src/components}/dndStore.d.ts +1 -0
- package/dist/{components → src/components}/index.d.ts +5 -1
- package/dist/{composables → src/composables}/useBreakpoints.d.ts +1 -0
- package/dist/{composables → src/composables}/useColorMode.d.ts +1 -1
- package/dist/src/composables/useId.d.ts +2 -0
- package/dist/{directives → src/directives}/vTooltip.d.ts +2 -3
- package/dist/src/injectionKeys.d.ts +28 -0
- package/dist/{types.d.ts → src/types.d.ts} +21 -2
- package/dist/src/utils/safeCss.d.ts +16 -0
- package/dist/src/utils/safeHref.d.ts +7 -0
- package/dist/src/utils/sanitizeHtml.d.ts +13 -0
- package/dist/vibeui.css +2 -1
- package/dist/vibeui.es.js +8269 -5855
- package/dist/vibeui.umd.js +3 -1
- package/docs/README.md +225 -0
- package/docs/components/advanced/popover.md +125 -0
- package/docs/components/advanced/scrollspy.md +106 -0
- package/docs/components/advanced/tooltip.md +90 -0
- package/docs/components/card/card.md +223 -0
- package/docs/components/charts/chart-bar.md +129 -0
- package/docs/components/charts/chart-line.md +136 -0
- package/docs/components/charts/chart-pie.md +102 -0
- package/docs/components/core/alert.md +94 -0
- package/docs/components/core/badge.md +75 -0
- package/docs/components/core/button-group.md +99 -0
- package/docs/components/core/button.md +127 -0
- package/docs/components/core/close-button.md +82 -0
- package/docs/components/core/link.md +79 -0
- package/docs/components/core/placeholder.md +129 -0
- package/docs/components/core/skeleton.md +40 -0
- package/docs/components/core/spinner.md +103 -0
- package/docs/components/data/datatable.md +435 -0
- package/docs/components/hero/hero.md +64 -0
- package/docs/components/interactive/accordion.md +121 -0
- package/docs/components/interactive/carousel.md +112 -0
- package/docs/components/interactive/collapse.md +106 -0
- package/docs/components/interactive/date-picker.md +78 -0
- package/docs/components/interactive/draggable.md +91 -0
- package/docs/components/interactive/dropdown.md +129 -0
- package/docs/components/interactive/modal.md +143 -0
- package/docs/components/interactive/offcanvas.md +92 -0
- package/docs/components/interactive/resizable.md +73 -0
- package/docs/components/interactive/slider.md +57 -0
- package/docs/components/interactive/sortable.md +52 -0
- package/docs/components/interactive/stepper.md +83 -0
- package/docs/components/interactive/tabs.md +66 -0
- package/docs/components/interactive/toast.md +177 -0
- package/docs/components/layout/col.md +117 -0
- package/docs/components/layout/container.md +53 -0
- package/docs/components/layout/row.md +107 -0
- package/docs/components/list/list-group.md +225 -0
- package/docs/components/navigation/breadcrumb.md +120 -0
- package/docs/components/navigation/nav.md +151 -0
- package/docs/components/navigation/navbar.md +108 -0
- package/docs/components/navigation/pagination.md +162 -0
- package/docs/components/progress/progress.md +188 -0
- package/docs/composables/back-button.md +28 -0
- package/docs/composables/breakpoints.md +54 -0
- package/docs/composables/color-mode.md +179 -0
- package/docs/composables/use-form.md +78 -0
- package/docs/composables/use-position.md +68 -0
- package/docs/composables/use-toast.md +91 -0
- package/docs/directives/v-tooltip.md +58 -0
- package/docs/forms/README.md +87 -0
- package/docs/forms/autocomplete.md +96 -0
- package/docs/forms/file-input.md +97 -0
- package/docs/forms/form-checkbox.md +100 -0
- package/docs/forms/form-datepicker.md +80 -0
- package/docs/forms/form-group.md +115 -0
- package/docs/forms/form-input.md +112 -0
- package/docs/forms/form-radio.md +82 -0
- package/docs/forms/form-select.md +98 -0
- package/docs/forms/form-spinbutton.md +94 -0
- package/docs/forms/form-switch.md +75 -0
- package/docs/forms/form-textarea.md +82 -0
- package/docs/forms/form-wysiwyg.md +99 -0
- package/docs/forms/input-group.md +70 -0
- package/docs/forms/validation.md +213 -0
- package/docs/getting-started/starter-template.md +136 -0
- package/docs/superpowers/plans/2026-05-12-vibe-charts.md +1999 -0
- package/docs/superpowers/plans/2026-05-29-e2e-browser-testing.md +615 -0
- package/docs/superpowers/specs/2026-05-12-charting-design.md +185 -0
- package/docs/superpowers/specs/2026-05-29-e2e-browser-testing-design.md +168 -0
- package/docs/utilities/position.md +82 -0
- package/docs/versioning.md +57 -0
- package/examples/README.md +201 -0
- package/examples/album.html +262 -0
- package/examples/blog.html +166 -0
- package/examples/carousel.html +114 -0
- package/examples/checkout.html +275 -0
- package/examples/cover.html +89 -0
- package/examples/dashboard.html +156 -0
- package/examples/index.html +129 -0
- package/examples/jumbotron.html +56 -0
- package/examples/mobile-dashboard.html +138 -0
- package/examples/pricing.html +172 -0
- package/examples/product.html +145 -0
- package/examples/sidebars.html +166 -0
- package/examples/sign-in.html +119 -0
- package/examples/starter.html +314 -0
- package/examples/sticky-footer-navbar.html +70 -0
- package/examples/sticky-footer.html +60 -0
- package/examples/test-simple.html +91 -0
- package/llms.txt +782 -0
- package/package.json +44 -14
- package/dist/App.vue.d.ts +0 -2
- package/dist/components/HelloWorld.vue.d.ts +0 -5
- package/dist/components/VibeAccordion.vue.d.ts +0 -90
- package/dist/components/VibeAutocomplete.vue.d.ts +0 -46
- package/dist/components/VibeBreadcrumb.vue.d.ts +0 -47
- package/dist/components/VibeCollapse.vue.d.ts +0 -84
- package/dist/components/VibeContainer.vue.d.ts +0 -44
- package/dist/components/VibeDataTable.vue.d.ts +0 -76
- package/dist/components/VibeNavbarBrand.vue.d.ts +0 -42
- package/dist/components/VibeNavbarNav.vue.d.ts +0 -61
- package/dist/components/VibePopover.vue.d.ts +0 -95
- package/dist/components/VibeProgress.vue.d.ts +0 -45
- package/dist/components/VibeScrollspy.vue.d.ts +0 -77
- package/dist/components/VibeSortable.vue.d.ts +0 -40
- package/dist/components/VibeTabContent.vue.d.ts +0 -74
- package/dist/components/VibeTooltip.vue.d.ts +0 -86
- package/dist/composables/useId.d.ts +0 -5
- package/dist/types/index.d.ts +0 -6
- /package/dist/{composables → src/composables}/useBackButton.d.ts +0 -0
- /package/dist/{composables → src/composables}/useForm.d.ts +0 -0
- /package/dist/{composables → src/composables}/useFormValidation.d.ts +0 -0
- /package/dist/{composables → src/composables}/usePosition.d.ts +0 -0
- /package/dist/{composables → src/composables}/useToast.d.ts +0 -0
- /package/dist/{index.d.ts → src/index.d.ts} +0 -0
- /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
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
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
|
|
36
|
-
|
|
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, {},
|
|
126
|
-
declare const
|
|
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
|
|
129
|
+
type __VLS_WithSlots<T, S> = T & {
|
|
129
130
|
new (): {
|
|
130
131
|
$slots: S;
|
|
131
132
|
};
|
|
@@ -1,13 +1,8 @@
|
|
|
1
|
-
declare
|
|
2
|
-
|
|
3
|
-
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
4
|
-
|
|
5
|
-
|
|
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
|
-
|
|
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
|
-
|
|
76
|
-
|
|
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
|
|
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
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
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
|
-
|
|
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:
|
|
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
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
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:
|
|
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"?: ((
|
|
116
|
-
"onComponent-error"?: ((
|
|
117
|
-
onShow?: ((
|
|
118
|
-
|
|
119
|
-
onHide?: ((
|
|
120
|
-
|
|
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
|
-
|
|
133
|
-
|
|
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
|
|
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
|
|
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,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;
|
|
@@ -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;
|
|
@@ -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,5 @@
|
|
|
1
1
|
import { Directive } from 'vue';
|
|
2
|
-
import {
|
|
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?:
|
|
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
|
|
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
|
-
|
|
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;
|