@baklavue/ui 1.0.0 → 1.0.1
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/dist/accordion/Accordion.vue.d.ts +51 -0
- package/dist/accordion/Accordion.vue.d.ts.map +1 -0
- package/dist/accordion/accordion.types.d.ts +97 -0
- package/dist/accordion/accordion.types.d.ts.map +1 -0
- package/dist/accordion/index.d.ts +3 -0
- package/dist/accordion/index.d.ts.map +1 -0
- package/dist/alert/Alert.vue.d.ts +49 -0
- package/dist/alert/Alert.vue.d.ts.map +1 -0
- package/dist/alert/alert.types.d.ts +52 -0
- package/dist/alert/alert.types.d.ts.map +1 -0
- package/dist/alert/index.d.ts +3 -0
- package/dist/alert/index.d.ts.map +1 -0
- package/dist/badge/Badge.vue.d.ts +22 -0
- package/dist/badge/Badge.vue.d.ts.map +1 -0
- package/dist/badge/badge.types.d.ts +7 -0
- package/dist/badge/badge.types.d.ts.map +1 -0
- package/dist/badge/index.d.ts +3 -0
- package/dist/badge/index.d.ts.map +1 -0
- package/dist/banner/Banner.vue.d.ts +36 -0
- package/dist/banner/Banner.vue.d.ts.map +1 -0
- package/dist/banner/banner.types.d.ts +70 -0
- package/dist/banner/banner.types.d.ts.map +1 -0
- package/dist/banner/index.d.ts +3 -0
- package/dist/banner/index.d.ts.map +1 -0
- package/dist/button/Button.vue.d.ts +36 -0
- package/dist/button/Button.vue.d.ts.map +1 -0
- package/dist/button/button.types.d.ts +24 -0
- package/dist/button/button.types.d.ts.map +1 -0
- package/dist/button/index.d.ts +3 -0
- package/dist/button/index.d.ts.map +1 -0
- package/dist/checkbox/Checkbox.vue.d.ts +39 -0
- package/dist/checkbox/Checkbox.vue.d.ts.map +1 -0
- package/dist/checkbox/checkbox.types.d.ts +95 -0
- package/dist/checkbox/checkbox.types.d.ts.map +1 -0
- package/dist/checkbox/index.d.ts +3 -0
- package/dist/checkbox/index.d.ts.map +1 -0
- package/dist/chip/Chip.vue.d.ts +29 -0
- package/dist/chip/Chip.vue.d.ts.map +1 -0
- package/dist/chip/chip.types.d.ts +59 -0
- package/dist/chip/chip.types.d.ts.map +1 -0
- package/dist/chip/index.d.ts +3 -0
- package/dist/chip/index.d.ts.map +1 -0
- package/dist/datepicker/Datepicker.vue.d.ts +41 -0
- package/dist/datepicker/Datepicker.vue.d.ts.map +1 -0
- package/dist/datepicker/datepicker.types.d.ts +38 -0
- package/dist/datepicker/datepicker.types.d.ts.map +1 -0
- package/dist/datepicker/index.d.ts +3 -0
- package/dist/datepicker/index.d.ts.map +1 -0
- package/dist/dialog/Dialog.vue.d.ts +44 -0
- package/dist/dialog/Dialog.vue.d.ts.map +1 -0
- package/dist/dialog/dialog.types.d.ts +18 -0
- package/dist/dialog/dialog.types.d.ts.map +1 -0
- package/dist/dialog/index.d.ts +3 -0
- package/dist/dialog/index.d.ts.map +1 -0
- package/dist/drawer/Drawer.vue.d.ts +42 -0
- package/dist/drawer/Drawer.vue.d.ts.map +1 -0
- package/dist/drawer/drawer.types.d.ts +18 -0
- package/dist/drawer/drawer.types.d.ts.map +1 -0
- package/dist/drawer/index.d.ts +3 -0
- package/dist/drawer/index.d.ts.map +1 -0
- package/dist/dropdown/Dropdown.vue.d.ts +59 -0
- package/dist/dropdown/Dropdown.vue.d.ts.map +1 -0
- package/dist/dropdown/dropdown.types.d.ts +92 -0
- package/dist/dropdown/dropdown.types.d.ts.map +1 -0
- package/dist/dropdown/index.d.ts +3 -0
- package/dist/dropdown/index.d.ts.map +1 -0
- package/dist/file-upload/FileUpload.vue.d.ts +44 -0
- package/dist/file-upload/FileUpload.vue.d.ts.map +1 -0
- package/dist/file-upload/file-upload.types.d.ts +76 -0
- package/dist/file-upload/file-upload.types.d.ts.map +1 -0
- package/dist/file-upload/index.d.ts +3 -0
- package/dist/file-upload/index.d.ts.map +1 -0
- package/dist/icon/Icon.vue.d.ts +29 -0
- package/dist/icon/Icon.vue.d.ts.map +1 -0
- package/dist/icon/icon.types.d.ts +23 -0
- package/dist/icon/icon.types.d.ts.map +1 -0
- package/dist/icon/index.d.ts +3 -0
- package/dist/icon/index.d.ts.map +1 -0
- package/dist/image/Image.vue.d.ts +30 -0
- package/dist/image/Image.vue.d.ts.map +1 -0
- package/dist/image/image.types.d.ts +48 -0
- package/dist/image/image.types.d.ts.map +1 -0
- package/dist/image/index.d.ts +3 -0
- package/dist/image/index.d.ts.map +1 -0
- package/dist/index.css +474 -0
- package/dist/index.d.ts +42 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +2404 -0
- package/dist/index.js.map +1 -0
- package/dist/input/Input.vue.d.ts +39 -0
- package/dist/input/Input.vue.d.ts.map +1 -0
- package/dist/input/index.d.ts +3 -0
- package/dist/input/index.d.ts.map +1 -0
- package/dist/input/input.types.d.ts +122 -0
- package/dist/input/input.types.d.ts.map +1 -0
- package/dist/link/Link.vue.d.ts +38 -0
- package/dist/link/Link.vue.d.ts.map +1 -0
- package/dist/link/index.d.ts +3 -0
- package/dist/link/index.d.ts.map +1 -0
- package/dist/link/link.types.d.ts +40 -0
- package/dist/link/link.types.d.ts.map +1 -0
- package/dist/notification/Notification.vue.d.ts +7 -0
- package/dist/notification/Notification.vue.d.ts.map +1 -0
- package/dist/notification/index.d.ts +3 -0
- package/dist/notification/index.d.ts.map +1 -0
- package/dist/notification/notification.types.d.ts +25 -0
- package/dist/notification/notification.types.d.ts.map +1 -0
- package/dist/pagination/Pagination.vue.d.ts +34 -0
- package/dist/pagination/Pagination.vue.d.ts.map +1 -0
- package/dist/pagination/index.d.ts +3 -0
- package/dist/pagination/index.d.ts.map +1 -0
- package/dist/pagination/pagination.types.d.ts +54 -0
- package/dist/pagination/pagination.types.d.ts.map +1 -0
- package/dist/radio/Radio.vue.d.ts +42 -0
- package/dist/radio/Radio.vue.d.ts.map +1 -0
- package/dist/radio/index.d.ts +3 -0
- package/dist/radio/index.d.ts.map +1 -0
- package/dist/radio/radio.types.d.ts +84 -0
- package/dist/radio/radio.types.d.ts.map +1 -0
- package/dist/scroll-to-top/ScrollToTop.vue.d.ts +14 -0
- package/dist/scroll-to-top/ScrollToTop.vue.d.ts.map +1 -0
- package/dist/scroll-to-top/index.d.ts +3 -0
- package/dist/scroll-to-top/index.d.ts.map +1 -0
- package/dist/scroll-to-top/scroll-to-top.types.d.ts +33 -0
- package/dist/scroll-to-top/scroll-to-top.types.d.ts.map +1 -0
- package/dist/select/Select.vue.d.ts +42 -0
- package/dist/select/Select.vue.d.ts.map +1 -0
- package/dist/select/index.d.ts +3 -0
- package/dist/select/index.d.ts.map +1 -0
- package/dist/select/select.types.d.ts +52 -0
- package/dist/select/select.types.d.ts.map +1 -0
- package/dist/skeleton/Skeleton.vue.d.ts +9 -0
- package/dist/skeleton/Skeleton.vue.d.ts.map +1 -0
- package/dist/skeleton/index.d.ts +3 -0
- package/dist/skeleton/index.d.ts.map +1 -0
- package/dist/skeleton/skeleton.types.d.ts +30 -0
- package/dist/skeleton/skeleton.types.d.ts.map +1 -0
- package/dist/spinner/Spinner.vue.d.ts +8 -0
- package/dist/spinner/Spinner.vue.d.ts.map +1 -0
- package/dist/spinner/index.d.ts +3 -0
- package/dist/spinner/index.d.ts.map +1 -0
- package/dist/spinner/spinner.types.d.ts +12 -0
- package/dist/spinner/spinner.types.d.ts.map +1 -0
- package/dist/split-button/SplitButton.vue.d.ts +25 -0
- package/dist/split-button/SplitButton.vue.d.ts.map +1 -0
- package/dist/split-button/index.d.ts +3 -0
- package/dist/split-button/index.d.ts.map +1 -0
- package/dist/split-button/split-button.types.d.ts +19 -0
- package/dist/split-button/split-button.types.d.ts.map +1 -0
- package/dist/stepper/Stepper.vue.d.ts +30 -0
- package/dist/stepper/Stepper.vue.d.ts.map +1 -0
- package/dist/stepper/index.d.ts +3 -0
- package/dist/stepper/index.d.ts.map +1 -0
- package/dist/stepper/stepper.types.d.ts +29 -0
- package/dist/stepper/stepper.types.d.ts.map +1 -0
- package/dist/switch/Switch.vue.d.ts +32 -0
- package/dist/switch/Switch.vue.d.ts.map +1 -0
- package/dist/switch/index.d.ts +3 -0
- package/dist/switch/index.d.ts.map +1 -0
- package/dist/switch/switch.types.d.ts +14 -0
- package/dist/switch/switch.types.d.ts.map +1 -0
- package/dist/tab/Tab.vue.d.ts +31 -0
- package/dist/tab/Tab.vue.d.ts.map +1 -0
- package/dist/tab/index.d.ts +3 -0
- package/dist/tab/index.d.ts.map +1 -0
- package/dist/tab/tab.types.d.ts +17 -0
- package/dist/tab/tab.types.d.ts.map +1 -0
- package/dist/table/Table.vue.d.ts +181 -0
- package/dist/table/Table.vue.d.ts.map +1 -0
- package/dist/table/index.d.ts +3 -0
- package/dist/table/index.d.ts.map +1 -0
- package/dist/table/table.types.d.ts +61 -0
- package/dist/table/table.types.d.ts.map +1 -0
- package/dist/tag/Tag.vue.d.ts +31 -0
- package/dist/tag/Tag.vue.d.ts.map +1 -0
- package/dist/tag/index.d.ts +3 -0
- package/dist/tag/index.d.ts.map +1 -0
- package/dist/tag/tag.types.d.ts +22 -0
- package/dist/tag/tag.types.d.ts.map +1 -0
- package/dist/textarea/Textarea.vue.d.ts +35 -0
- package/dist/textarea/Textarea.vue.d.ts.map +1 -0
- package/dist/textarea/index.d.ts +3 -0
- package/dist/textarea/index.d.ts.map +1 -0
- package/dist/textarea/textarea.types.d.ts +37 -0
- package/dist/textarea/textarea.types.d.ts.map +1 -0
- package/dist/tooltip/Tooltip.vue.d.ts +33 -0
- package/dist/tooltip/Tooltip.vue.d.ts.map +1 -0
- package/dist/tooltip/index.d.ts +3 -0
- package/dist/tooltip/index.d.ts.map +1 -0
- package/dist/tooltip/tooltip.types.d.ts +17 -0
- package/dist/tooltip/tooltip.types.d.ts.map +1 -0
- package/dist/utils/loadBaklavaResources.d.ts +2 -0
- package/dist/utils/loadBaklavaResources.d.ts.map +1 -0
- package/package.json +18 -2
- package/.releaserc.json +0 -14
- package/CHANGELOG.md +0 -88
- package/env.d.ts +0 -5
- package/index.ts +0 -1
- package/src/accordion/Accordion.spec.ts +0 -75
- package/src/accordion/Accordion.vue +0 -206
- package/src/accordion/accordion.types.ts +0 -109
- package/src/accordion/index.ts +0 -3
- package/src/alert/Alert.spec.ts +0 -38
- package/src/alert/Alert.vue +0 -199
- package/src/alert/alert.types.ts +0 -58
- package/src/alert/index.ts +0 -2
- package/src/badge/Badge.spec.ts +0 -28
- package/src/badge/Badge.vue +0 -20
- package/src/badge/badge.types.ts +0 -7
- package/src/badge/index.ts +0 -2
- package/src/banner/Banner.spec.ts +0 -111
- package/src/banner/Banner.vue +0 -265
- package/src/banner/banner.types.ts +0 -86
- package/src/banner/index.ts +0 -2
- package/src/button/Button.spec.ts +0 -51
- package/src/button/Button.vue +0 -45
- package/src/button/button.types.ts +0 -30
- package/src/button/index.ts +0 -3
- package/src/checkbox/Checkbox.spec.ts +0 -216
- package/src/checkbox/Checkbox.vue +0 -148
- package/src/checkbox/checkbox.types.ts +0 -108
- package/src/checkbox/index.ts +0 -2
- package/src/chip/Chip.spec.ts +0 -49
- package/src/chip/Chip.vue +0 -237
- package/src/chip/chip.types.ts +0 -77
- package/src/chip/index.ts +0 -2
- package/src/datepicker/Datepicker.spec.ts +0 -129
- package/src/datepicker/Datepicker.vue +0 -172
- package/src/datepicker/datepicker.types.ts +0 -39
- package/src/datepicker/index.ts +0 -2
- package/src/dialog/Dialog.spec.ts +0 -111
- package/src/dialog/Dialog.vue +0 -178
- package/src/dialog/dialog.types.ts +0 -17
- package/src/dialog/index.ts +0 -2
- package/src/drawer/Drawer.spec.ts +0 -102
- package/src/drawer/Drawer.vue +0 -162
- package/src/drawer/drawer.types.ts +0 -17
- package/src/drawer/index.ts +0 -2
- package/src/dropdown/Dropdown.spec.ts +0 -207
- package/src/dropdown/Dropdown.vue +0 -231
- package/src/dropdown/dropdown.types.ts +0 -110
- package/src/dropdown/index.ts +0 -2
- package/src/file-upload/FileUpload.spec.ts +0 -359
- package/src/file-upload/FileUpload.vue +0 -440
- package/src/file-upload/file-upload.types.ts +0 -89
- package/src/file-upload/index.ts +0 -7
- package/src/icon/Icon.spec.ts +0 -40
- package/src/icon/Icon.vue +0 -102
- package/src/icon/icon.types.ts +0 -25
- package/src/icon/index.ts +0 -2
- package/src/image/Image.spec.ts +0 -23
- package/src/image/Image.vue +0 -144
- package/src/image/image.types.ts +0 -57
- package/src/image/index.ts +0 -3
- package/src/index.ts +0 -43
- package/src/input/Input.spec.ts +0 -69
- package/src/input/Input.vue +0 -148
- package/src/input/index.ts +0 -3
- package/src/input/input.types.ts +0 -156
- package/src/link/Link.spec.ts +0 -69
- package/src/link/Link.vue +0 -133
- package/src/link/index.ts +0 -2
- package/src/link/link.types.ts +0 -42
- package/src/notification/Notification.spec.ts +0 -18
- package/src/notification/Notification.vue +0 -57
- package/src/notification/index.ts +0 -2
- package/src/notification/notification.types.ts +0 -25
- package/src/pagination/Pagination.spec.ts +0 -39
- package/src/pagination/Pagination.vue +0 -137
- package/src/pagination/index.ts +0 -2
- package/src/pagination/pagination.types.ts +0 -61
- package/src/radio/Radio.spec.ts +0 -149
- package/src/radio/Radio.vue +0 -205
- package/src/radio/index.ts +0 -2
- package/src/radio/radio.types.ts +0 -95
- package/src/scroll-to-top/ScrollToTop.spec.ts +0 -119
- package/src/scroll-to-top/ScrollToTop.vue +0 -130
- package/src/scroll-to-top/index.ts +0 -2
- package/src/scroll-to-top/scroll-to-top.types.ts +0 -42
- package/src/select/Select.spec.ts +0 -47
- package/src/select/Select.vue +0 -147
- package/src/select/index.ts +0 -2
- package/src/select/select.types.ts +0 -53
- package/src/skeleton/Skeleton.spec.ts +0 -28
- package/src/skeleton/Skeleton.vue +0 -115
- package/src/skeleton/index.ts +0 -2
- package/src/skeleton/skeleton.types.ts +0 -33
- package/src/spinner/Spinner.spec.ts +0 -28
- package/src/spinner/Spinner.vue +0 -49
- package/src/spinner/index.ts +0 -2
- package/src/spinner/spinner.types.ts +0 -11
- package/src/split-button/SplitButton.spec.ts +0 -24
- package/src/split-button/SplitButton.vue +0 -73
- package/src/split-button/index.ts +0 -2
- package/src/split-button/split-button.types.ts +0 -19
- package/src/stepper/Stepper.spec.ts +0 -37
- package/src/stepper/Stepper.vue +0 -100
- package/src/stepper/index.ts +0 -2
- package/src/stepper/stepper.types.ts +0 -29
- package/src/switch/Switch.spec.ts +0 -30
- package/src/switch/Switch.vue +0 -80
- package/src/switch/index.ts +0 -2
- package/src/switch/switch.types.ts +0 -13
- package/src/tab/Tab.spec.ts +0 -87
- package/src/tab/Tab.vue +0 -99
- package/src/tab/index.ts +0 -2
- package/src/tab/tab.types.ts +0 -17
- package/src/table/Table.spec.ts +0 -185
- package/src/table/Table.vue +0 -264
- package/src/table/index.ts +0 -7
- package/src/table/table.types.ts +0 -62
- package/src/tag/Tag.spec.ts +0 -84
- package/src/tag/Tag.vue +0 -83
- package/src/tag/index.ts +0 -2
- package/src/tag/tag.types.ts +0 -24
- package/src/textarea/Textarea.spec.ts +0 -105
- package/src/textarea/Textarea.vue +0 -84
- package/src/textarea/index.ts +0 -2
- package/src/textarea/textarea.types.ts +0 -37
- package/src/tooltip/Tooltip.spec.ts +0 -46
- package/src/tooltip/Tooltip.vue +0 -81
- package/src/tooltip/index.ts +0 -3
- package/src/tooltip/tooltip.types.ts +0 -29
- package/src/utils/loadBaklavaResources.ts +0 -24
- package/tests/setup.ts +0 -352
- package/tsconfig.json +0 -29
- package/vitest.config.ts +0 -32
|
@@ -1,109 +0,0 @@
|
|
|
1
|
-
import type { BaklavaIcon } from "@trendyol/baklava-icons";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Properties for a single accordion item when used in group mode.
|
|
5
|
-
*
|
|
6
|
-
* @interface AccordionItem
|
|
7
|
-
*/
|
|
8
|
-
export interface AccordionItem {
|
|
9
|
-
/**
|
|
10
|
-
* Whether the accordion is open/expanded.
|
|
11
|
-
*
|
|
12
|
-
* @default false
|
|
13
|
-
*/
|
|
14
|
-
open?: boolean;
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* The caption text displayed in the accordion header.
|
|
18
|
-
*/
|
|
19
|
-
caption?: string;
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Icon configuration for the accordion header.
|
|
23
|
-
* Can be a boolean to show/hide default icon, or a specific BaklavaIcon.
|
|
24
|
-
*/
|
|
25
|
-
icon?: boolean | BaklavaIcon;
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Whether the accordion is disabled.
|
|
29
|
-
*
|
|
30
|
-
* @default false
|
|
31
|
-
*/
|
|
32
|
-
disabled?: boolean;
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Duration of the expand/collapse animation in milliseconds.
|
|
36
|
-
*
|
|
37
|
-
* @default 250
|
|
38
|
-
*/
|
|
39
|
-
animationDuration?: number;
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Additional custom data for use in the #item scoped slot.
|
|
43
|
-
* Content is provided via the #item slot, not via a property.
|
|
44
|
-
*/
|
|
45
|
-
[key: string]: unknown;
|
|
46
|
-
}
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Props for the Accordion component.
|
|
50
|
-
*
|
|
51
|
-
* When `multiple` prop is provided, the component acts as an accordion group container.
|
|
52
|
-
* Otherwise, it acts as a single accordion.
|
|
53
|
-
*
|
|
54
|
-
* @interface AccordionProps
|
|
55
|
-
*/
|
|
56
|
-
export interface AccordionProps {
|
|
57
|
-
/**
|
|
58
|
-
* Whether the accordion is open/expanded.
|
|
59
|
-
* Only used when component is in single accordion mode.
|
|
60
|
-
*
|
|
61
|
-
* @default false
|
|
62
|
-
*/
|
|
63
|
-
open?: boolean;
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* The caption text displayed in the accordion header.
|
|
67
|
-
* Only used when component is in single accordion mode.
|
|
68
|
-
*/
|
|
69
|
-
caption?: string;
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Icon configuration for the accordion header.
|
|
73
|
-
* Can be a boolean to show/hide default icon, or a specific BaklavaIcon.
|
|
74
|
-
* Only used when component is in single accordion mode.
|
|
75
|
-
*/
|
|
76
|
-
icon?: boolean | BaklavaIcon;
|
|
77
|
-
|
|
78
|
-
/**
|
|
79
|
-
* Whether the accordion is disabled.
|
|
80
|
-
* Only used when component is in single accordion mode.
|
|
81
|
-
*
|
|
82
|
-
* @default false
|
|
83
|
-
*/
|
|
84
|
-
disabled?: boolean;
|
|
85
|
-
|
|
86
|
-
/**
|
|
87
|
-
* Duration of the expand/collapse animation in milliseconds.
|
|
88
|
-
* Only used when component is in single accordion mode.
|
|
89
|
-
*
|
|
90
|
-
* @default 250
|
|
91
|
-
*/
|
|
92
|
-
animationDuration?: number;
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* Allow multiple accordions to be open at once.
|
|
96
|
-
* When this prop is provided, the component acts as an accordion group container.
|
|
97
|
-
* When not provided, the component acts as a single accordion.
|
|
98
|
-
*
|
|
99
|
-
* @default false (when used as group)
|
|
100
|
-
*/
|
|
101
|
-
multiple?: boolean;
|
|
102
|
-
|
|
103
|
-
/**
|
|
104
|
-
* Array of accordion items to render when in group mode.
|
|
105
|
-
* Each item will be rendered as a bl-accordion element.
|
|
106
|
-
* Only used when component is in group mode.
|
|
107
|
-
*/
|
|
108
|
-
items?: AccordionItem[];
|
|
109
|
-
}
|
package/src/accordion/index.ts
DELETED
package/src/alert/Alert.spec.ts
DELETED
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
import { mount } from "@vue/test-utils";
|
|
2
|
-
import { describe, expect, it } from "vitest";
|
|
3
|
-
import BvAlert from "./Alert.vue";
|
|
4
|
-
|
|
5
|
-
describe("BvAlert", () => {
|
|
6
|
-
it("renders with default props", () => {
|
|
7
|
-
const wrapper = mount(BvAlert);
|
|
8
|
-
expect(wrapper.find("bl-alert").exists()).toBe(true);
|
|
9
|
-
});
|
|
10
|
-
|
|
11
|
-
it("passes variant and description to bl-alert", () => {
|
|
12
|
-
const wrapper = mount(BvAlert, {
|
|
13
|
-
props: { variant: "success", description: "Done" },
|
|
14
|
-
});
|
|
15
|
-
const el = wrapper.find("bl-alert").element;
|
|
16
|
-
expect(el.getAttribute("variant")).toBe("success");
|
|
17
|
-
expect(el.getAttribute("description")).toBe("Done");
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
it("emits close when bl-alert fires bl-close", async () => {
|
|
21
|
-
const wrapper = mount(BvAlert, { props: { closable: true } });
|
|
22
|
-
wrapper.find("bl-alert").element.dispatchEvent(
|
|
23
|
-
new CustomEvent("bl-close", { bubbles: true }),
|
|
24
|
-
);
|
|
25
|
-
await wrapper.vm.$nextTick();
|
|
26
|
-
expect(wrapper.emitted("close")).toHaveLength(1);
|
|
27
|
-
});
|
|
28
|
-
|
|
29
|
-
it("exposes open and close methods", async () => {
|
|
30
|
-
const wrapper = mount(BvAlert, { props: { closable: true } });
|
|
31
|
-
const vm = wrapper.vm as unknown as { open: () => Promise<void>; close: () => Promise<void> };
|
|
32
|
-
expect(typeof vm.open).toBe("function");
|
|
33
|
-
expect(typeof vm.close).toBe("function");
|
|
34
|
-
await vm.close();
|
|
35
|
-
await wrapper.vm.$nextTick();
|
|
36
|
-
expect(wrapper.emitted("close")).toHaveLength(1);
|
|
37
|
-
});
|
|
38
|
-
});
|
package/src/alert/Alert.vue
DELETED
|
@@ -1,199 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
/**
|
|
3
|
-
* Alert Component
|
|
4
|
-
*
|
|
5
|
-
* A Vue UI kit component for Baklava's `bl-alert` web component.
|
|
6
|
-
* Displays contextual feedback messages with variants (info, success, warning, danger).
|
|
7
|
-
*
|
|
8
|
-
* @component
|
|
9
|
-
* @example
|
|
10
|
-
* ```vue
|
|
11
|
-
* <!-- Basic alert -->
|
|
12
|
-
* <template>
|
|
13
|
-
* <BvAlert variant="info" description="This is an informational message" />
|
|
14
|
-
* </template>
|
|
15
|
-
* ```
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* ```vue
|
|
19
|
-
* <!-- Closable alert with controlled state -->
|
|
20
|
-
* <template>
|
|
21
|
-
* <BvAlert
|
|
22
|
-
* variant="warning"
|
|
23
|
-
* caption="Warning"
|
|
24
|
-
* closable
|
|
25
|
-
* :closed="isClosed"
|
|
26
|
-
* @close="isClosed = true"
|
|
27
|
-
* >
|
|
28
|
-
* <p>You can close this alert.</p>
|
|
29
|
-
* </BvAlert>
|
|
30
|
-
* </template>
|
|
31
|
-
* ```
|
|
32
|
-
*
|
|
33
|
-
* @example
|
|
34
|
-
* ```vue
|
|
35
|
-
* <!-- Programmatic control via ref -->
|
|
36
|
-
* <template>
|
|
37
|
-
* <BvAlert ref="alertRef" variant="success" closable>
|
|
38
|
-
* <p>Content</p>
|
|
39
|
-
* </BvAlert>
|
|
40
|
-
* <button @click="alertRef?.close()">Close</button>
|
|
41
|
-
* </template>
|
|
42
|
-
* ```
|
|
43
|
-
*/
|
|
44
|
-
import { nextTick, onMounted, ref, watch } from "vue";
|
|
45
|
-
import { loadBaklavaResources } from "../utils/loadBaklavaResources";
|
|
46
|
-
import type { AlertProps, BlAlertElement } from "./alert.types";
|
|
47
|
-
|
|
48
|
-
/**
|
|
49
|
-
* Component props with default values.
|
|
50
|
-
*/
|
|
51
|
-
const props = withDefaults(defineProps<AlertProps>(), {
|
|
52
|
-
variant: "info",
|
|
53
|
-
description: undefined,
|
|
54
|
-
icon: undefined,
|
|
55
|
-
closable: false,
|
|
56
|
-
caption: undefined,
|
|
57
|
-
closed: false,
|
|
58
|
-
});
|
|
59
|
-
|
|
60
|
-
const emit = defineEmits<{
|
|
61
|
-
/**
|
|
62
|
-
* Emitted when the close button is clicked (only when closable is true).
|
|
63
|
-
*/
|
|
64
|
-
close: [];
|
|
65
|
-
}>();
|
|
66
|
-
|
|
67
|
-
/**
|
|
68
|
-
* Reference to the underlying bl-alert element.
|
|
69
|
-
*/
|
|
70
|
-
const alertRef = ref<HTMLElement | null>(null);
|
|
71
|
-
|
|
72
|
-
/**
|
|
73
|
-
* Safely casts an HTMLElement to BlAlertElement.
|
|
74
|
-
*
|
|
75
|
-
* @param el - The element to cast.
|
|
76
|
-
* @returns The element typed as BlAlertElement, or null.
|
|
77
|
-
*/
|
|
78
|
-
function asBlAlert(el: HTMLElement | null): BlAlertElement | null {
|
|
79
|
-
return el as BlAlertElement | null;
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* Waits for the bl-alert custom element to be defined.
|
|
84
|
-
* Used when Baklava script loads asynchronously.
|
|
85
|
-
*/
|
|
86
|
-
async function waitForBlAlert(): Promise<void> {
|
|
87
|
-
if (!customElements.get("bl-alert")) {
|
|
88
|
-
await customElements.whenDefined("bl-alert");
|
|
89
|
-
}
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
/**
|
|
93
|
-
* Syncs the `closed` prop state with the underlying bl-alert web component.
|
|
94
|
-
* Calls open() or close() on the element when prop and element state differ.
|
|
95
|
-
*
|
|
96
|
-
* @param el - The bl-alert element to sync.
|
|
97
|
-
*/
|
|
98
|
-
function syncWithBlAlert(el: HTMLElement): void {
|
|
99
|
-
const blAlert = asBlAlert(el);
|
|
100
|
-
if (!blAlert || typeof blAlert.close !== "function" || typeof blAlert.open !== "function") {
|
|
101
|
-
return;
|
|
102
|
-
}
|
|
103
|
-
if (props.closed && !blAlert.closed) {
|
|
104
|
-
blAlert.close();
|
|
105
|
-
} else if (!props.closed && blAlert.closed) {
|
|
106
|
-
blAlert.open();
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
|
|
110
|
-
/**
|
|
111
|
-
* Calls open or close on the bl-alert element when available.
|
|
112
|
-
*
|
|
113
|
-
* @param method - The method to call ("open" or "close").
|
|
114
|
-
*/
|
|
115
|
-
function callBlAlertMethod(method: "open" | "close"): void {
|
|
116
|
-
const el = asBlAlert(alertRef.value);
|
|
117
|
-
if (el && typeof el[method] === "function") {
|
|
118
|
-
el[method]!();
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
|
|
122
|
-
/**
|
|
123
|
-
* Watches for changes to the closed prop and syncs with the web component.
|
|
124
|
-
*/
|
|
125
|
-
watch(
|
|
126
|
-
() => props.closed,
|
|
127
|
-
() => {
|
|
128
|
-
if (alertRef.value) {
|
|
129
|
-
syncWithBlAlert(alertRef.value);
|
|
130
|
-
}
|
|
131
|
-
},
|
|
132
|
-
);
|
|
133
|
-
|
|
134
|
-
/**
|
|
135
|
-
* Handles the bl-close event from the underlying web component.
|
|
136
|
-
* Forwards it to the component's emit.
|
|
137
|
-
*/
|
|
138
|
-
function handleClose(): void {
|
|
139
|
-
emit("close");
|
|
140
|
-
}
|
|
141
|
-
|
|
142
|
-
/**
|
|
143
|
-
* Lifecycle hook: Component mounted.
|
|
144
|
-
*
|
|
145
|
-
* Loads Baklava resources, waits for bl-alert to be defined,
|
|
146
|
-
* then syncs the initial closed state with the web component.
|
|
147
|
-
*/
|
|
148
|
-
onMounted(async () => {
|
|
149
|
-
loadBaklavaResources();
|
|
150
|
-
|
|
151
|
-
await nextTick();
|
|
152
|
-
await waitForBlAlert();
|
|
153
|
-
|
|
154
|
-
if (alertRef.value) {
|
|
155
|
-
syncWithBlAlert(alertRef.value);
|
|
156
|
-
}
|
|
157
|
-
});
|
|
158
|
-
|
|
159
|
-
/**
|
|
160
|
-
* Exposed methods for programmatic control of the alert.
|
|
161
|
-
*/
|
|
162
|
-
defineExpose({
|
|
163
|
-
/**
|
|
164
|
-
* Opens the alert programmatically.
|
|
165
|
-
*
|
|
166
|
-
* @public
|
|
167
|
-
*/
|
|
168
|
-
open: async (): Promise<void> => {
|
|
169
|
-
await nextTick();
|
|
170
|
-
callBlAlertMethod("open");
|
|
171
|
-
},
|
|
172
|
-
|
|
173
|
-
/**
|
|
174
|
-
* Closes the alert programmatically.
|
|
175
|
-
*
|
|
176
|
-
* @public
|
|
177
|
-
*/
|
|
178
|
-
close: async (): Promise<void> => {
|
|
179
|
-
await nextTick();
|
|
180
|
-
callBlAlertMethod("close");
|
|
181
|
-
},
|
|
182
|
-
});
|
|
183
|
-
</script>
|
|
184
|
-
|
|
185
|
-
<template>
|
|
186
|
-
<bl-alert
|
|
187
|
-
ref="alertRef"
|
|
188
|
-
v-bind="{
|
|
189
|
-
...props,
|
|
190
|
-
closable: props.closable === true ? true : undefined,
|
|
191
|
-
closed: props.closed,
|
|
192
|
-
}"
|
|
193
|
-
@bl-close="handleClose"
|
|
194
|
-
>
|
|
195
|
-
<slot v-if="$slots['caption']" name="caption" />
|
|
196
|
-
<slot v-if="$slots['default']" />
|
|
197
|
-
<slot v-if="$slots['action']" name="action" />
|
|
198
|
-
</bl-alert>
|
|
199
|
-
</template>
|
package/src/alert/alert.types.ts
DELETED
|
@@ -1,58 +0,0 @@
|
|
|
1
|
-
import type { BaklavaIcon } from "@trendyol/baklava-icons";
|
|
2
|
-
import type { AlertVariant } from "@trendyol/baklava/dist/components/alert/bl-alert";
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Interface for the bl-alert custom element.
|
|
6
|
-
* Extends HTMLElement with Baklava Alert API.
|
|
7
|
-
*
|
|
8
|
-
* @interface BlAlertElement
|
|
9
|
-
*/
|
|
10
|
-
export interface BlAlertElement extends HTMLElement {
|
|
11
|
-
closed?: boolean;
|
|
12
|
-
open?: () => void;
|
|
13
|
-
close?: () => void;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Props for the Alert component.
|
|
18
|
-
* Wraps Baklava's bl-alert web component.
|
|
19
|
-
*
|
|
20
|
-
* @interface AlertProps
|
|
21
|
-
*/
|
|
22
|
-
export interface AlertProps {
|
|
23
|
-
/**
|
|
24
|
-
* Alert variant (success, danger, info, warning).
|
|
25
|
-
*
|
|
26
|
-
* @default "info"
|
|
27
|
-
*/
|
|
28
|
-
variant?: AlertVariant;
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Alert description text.
|
|
32
|
-
*/
|
|
33
|
-
description?: string;
|
|
34
|
-
|
|
35
|
-
/**
|
|
36
|
-
* Icon configuration: boolean to show/hide default icon, or a specific BaklavaIcon.
|
|
37
|
-
*/
|
|
38
|
-
icon?: boolean | BaklavaIcon;
|
|
39
|
-
|
|
40
|
-
/**
|
|
41
|
-
* Whether to show the close button.
|
|
42
|
-
*
|
|
43
|
-
* @default false
|
|
44
|
-
*/
|
|
45
|
-
closable?: boolean;
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Alert caption text.
|
|
49
|
-
*/
|
|
50
|
-
caption?: string;
|
|
51
|
-
|
|
52
|
-
/**
|
|
53
|
-
* Whether the alert is closed/collapsed.
|
|
54
|
-
*
|
|
55
|
-
* @default false
|
|
56
|
-
*/
|
|
57
|
-
closed?: boolean;
|
|
58
|
-
}
|
package/src/alert/index.ts
DELETED
package/src/badge/Badge.spec.ts
DELETED
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { mount } from "@vue/test-utils";
|
|
2
|
-
import { describe, expect, it } from "vitest";
|
|
3
|
-
import BvBadge from "./Badge.vue";
|
|
4
|
-
|
|
5
|
-
describe("BvBadge", () => {
|
|
6
|
-
it("renders with default props", () => {
|
|
7
|
-
const wrapper = mount(BvBadge);
|
|
8
|
-
const blBadge = wrapper.find("bl-badge");
|
|
9
|
-
expect(blBadge.exists()).toBe(true);
|
|
10
|
-
});
|
|
11
|
-
|
|
12
|
-
it("passes size to bl-badge", () => {
|
|
13
|
-
const wrapper = mount(BvBadge, {
|
|
14
|
-
props: { size: "small" },
|
|
15
|
-
});
|
|
16
|
-
const blBadge = wrapper.find("bl-badge").element;
|
|
17
|
-
expect(blBadge.getAttribute("size")).toBe("small");
|
|
18
|
-
});
|
|
19
|
-
|
|
20
|
-
it("renders slot content", () => {
|
|
21
|
-
const wrapper = mount(BvBadge, {
|
|
22
|
-
slots: {
|
|
23
|
-
default: "Badge content",
|
|
24
|
-
},
|
|
25
|
-
});
|
|
26
|
-
expect(wrapper.text()).toContain("Badge content");
|
|
27
|
-
});
|
|
28
|
-
});
|
package/src/badge/Badge.vue
DELETED
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import { onMounted } from "vue";
|
|
3
|
-
import { loadBaklavaResources } from "../utils/loadBaklavaResources";
|
|
4
|
-
import type { BadgeProps } from "./badge.types";
|
|
5
|
-
|
|
6
|
-
const props = withDefaults(defineProps<BadgeProps>(), {
|
|
7
|
-
size: "medium",
|
|
8
|
-
icon: undefined,
|
|
9
|
-
});
|
|
10
|
-
|
|
11
|
-
onMounted(() => {
|
|
12
|
-
loadBaklavaResources();
|
|
13
|
-
});
|
|
14
|
-
</script>
|
|
15
|
-
|
|
16
|
-
<template>
|
|
17
|
-
<bl-badge v-bind="props">
|
|
18
|
-
<slot />
|
|
19
|
-
</bl-badge>
|
|
20
|
-
</template>
|
package/src/badge/badge.types.ts
DELETED
package/src/badge/index.ts
DELETED
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
import { mount } from "@vue/test-utils";
|
|
2
|
-
import { nextTick } from "vue";
|
|
3
|
-
import { afterEach, describe, expect, it, vi } from "vitest";
|
|
4
|
-
import BvBanner from "./Banner.vue";
|
|
5
|
-
|
|
6
|
-
describe("BvBanner", () => {
|
|
7
|
-
afterEach(() => {
|
|
8
|
-
localStorage.clear();
|
|
9
|
-
});
|
|
10
|
-
|
|
11
|
-
it("renders with title", () => {
|
|
12
|
-
const wrapper = mount(BvBanner, {
|
|
13
|
-
props: { title: "Important message" },
|
|
14
|
-
});
|
|
15
|
-
expect(wrapper.text()).toContain("Important message");
|
|
16
|
-
});
|
|
17
|
-
|
|
18
|
-
it("emits close when close button is clicked", async () => {
|
|
19
|
-
const wrapper = mount(BvBanner, {
|
|
20
|
-
props: { title: "Message", close: true },
|
|
21
|
-
});
|
|
22
|
-
const closeBtn = wrapper.find(".bv-banner__close-btn");
|
|
23
|
-
await closeBtn.trigger("click");
|
|
24
|
-
expect(wrapper.emitted("close")).toHaveLength(1);
|
|
25
|
-
});
|
|
26
|
-
|
|
27
|
-
it("applies color variant via inline style", () => {
|
|
28
|
-
const wrapper = mount(BvBanner, {
|
|
29
|
-
props: { title: "Test", color: "success" },
|
|
30
|
-
});
|
|
31
|
-
const banner = wrapper.find(".bv-banner").element;
|
|
32
|
-
expect(banner.getAttribute("style")).toContain("bl-color-success");
|
|
33
|
-
});
|
|
34
|
-
|
|
35
|
-
it("renders action buttons when actions prop provided", async () => {
|
|
36
|
-
const onClick = () => {};
|
|
37
|
-
const wrapper = mount(BvBanner, {
|
|
38
|
-
props: {
|
|
39
|
-
title: "Actions",
|
|
40
|
-
actions: [{ label: "Action 1", onClick }],
|
|
41
|
-
},
|
|
42
|
-
});
|
|
43
|
-
expect(wrapper.find(".bv-banner__actions").exists()).toBe(true);
|
|
44
|
-
await wrapper.find(".bv-banner__action-btn").trigger("click");
|
|
45
|
-
});
|
|
46
|
-
|
|
47
|
-
it("renders as link when to prop provided", () => {
|
|
48
|
-
const wrapper = mount(BvBanner, {
|
|
49
|
-
props: { title: "Link", to: "/page" },
|
|
50
|
-
});
|
|
51
|
-
expect(wrapper.find(".bv-banner__inner--link").exists()).toBe(true);
|
|
52
|
-
expect(wrapper.find("bl-link").attributes("href")).toBe("/page");
|
|
53
|
-
});
|
|
54
|
-
|
|
55
|
-
it("renders icon when icon prop is provided", () => {
|
|
56
|
-
const wrapper = mount(BvBanner, {
|
|
57
|
-
props: { title: "With icon", icon: "info" },
|
|
58
|
-
});
|
|
59
|
-
expect(wrapper.find(".bv-banner__icon").exists()).toBe(true);
|
|
60
|
-
});
|
|
61
|
-
|
|
62
|
-
it("dismisses on mount when localStorage has 'true' for banner id", async () => {
|
|
63
|
-
localStorage.setItem("banner-test-banner", "true");
|
|
64
|
-
const wrapper = mount(BvBanner, {
|
|
65
|
-
props: { title: "Persisted", close: true, id: "test-banner" },
|
|
66
|
-
});
|
|
67
|
-
await nextTick();
|
|
68
|
-
expect(wrapper.find(".bv-banner").exists()).toBe(false);
|
|
69
|
-
});
|
|
70
|
-
|
|
71
|
-
it("persists dismissal to localStorage when closing a banner with id", async () => {
|
|
72
|
-
const wrapper = mount(BvBanner, {
|
|
73
|
-
props: { title: "Persist close", close: true, id: "persist-id" },
|
|
74
|
-
});
|
|
75
|
-
const closeBtn = wrapper.find(".bv-banner__close-btn");
|
|
76
|
-
await closeBtn.trigger("click");
|
|
77
|
-
expect(localStorage.getItem("banner-persist-id")).toBe("true");
|
|
78
|
-
expect(wrapper.emitted("close")).toHaveLength(1);
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
it("does not persist when id sanitizes to empty string", async () => {
|
|
82
|
-
const wrapper = mount(BvBanner, {
|
|
83
|
-
props: { title: "Bad id", close: true, id: "!!!" },
|
|
84
|
-
});
|
|
85
|
-
const closeBtn = wrapper.find(".bv-banner__close-btn");
|
|
86
|
-
await closeBtn.trigger("click");
|
|
87
|
-
expect(wrapper.emitted("close")).toHaveLength(1);
|
|
88
|
-
// No key written because sanitized id is empty
|
|
89
|
-
expect(localStorage.length).toBe(0);
|
|
90
|
-
});
|
|
91
|
-
|
|
92
|
-
it("handles action button without an onClick handler", async () => {
|
|
93
|
-
const wrapper = mount(BvBanner, {
|
|
94
|
-
props: {
|
|
95
|
-
title: "No handler",
|
|
96
|
-
actions: [{ label: "NoOp" }],
|
|
97
|
-
},
|
|
98
|
-
});
|
|
99
|
-
// Should not throw when clicking an action with no onClick
|
|
100
|
-
await wrapper.find(".bv-banner__action-btn").trigger("click");
|
|
101
|
-
expect(wrapper.find(".bv-banner__actions").exists()).toBe(true);
|
|
102
|
-
});
|
|
103
|
-
|
|
104
|
-
it("falls back to primary color when unknown color is given", () => {
|
|
105
|
-
const wrapper = mount(BvBanner, {
|
|
106
|
-
props: { title: "Unknown", color: "custom-unknown" as any },
|
|
107
|
-
});
|
|
108
|
-
const banner = wrapper.find(".bv-banner").element;
|
|
109
|
-
expect(banner.getAttribute("style")).toContain("bl-color-primary");
|
|
110
|
-
});
|
|
111
|
-
});
|