@baklavue/ui 1.0.0-preview.4 → 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 +28 -4
- package/.releaserc.json +0 -14
- package/CHANGELOG.md +0 -56
- package/index.ts +0 -1
- 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.vue +0 -199
- package/src/alert/alert.types.ts +0 -58
- package/src/alert/index.ts +0 -2
- package/src/badge/Badge.vue +0 -20
- package/src/badge/badge.types.ts +0 -7
- package/src/badge/index.ts +0 -2
- 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.vue +0 -148
- package/src/checkbox/checkbox.types.ts +0 -108
- package/src/checkbox/index.ts +0 -2
- 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.vue +0 -178
- package/src/dialog/dialog.types.ts +0 -17
- package/src/dialog/index.ts +0 -2
- 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.vue +0 -231
- package/src/dropdown/dropdown.types.ts +0 -110
- package/src/dropdown/index.ts +0 -2
- 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.vue +0 -102
- package/src/icon/icon.types.ts +0 -25
- package/src/icon/index.ts +0 -2
- 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 -41
- 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.vue +0 -133
- package/src/link/index.ts +0 -2
- package/src/link/link.types.ts +0 -42
- 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.vue +0 -137
- package/src/pagination/index.ts +0 -2
- package/src/pagination/pagination.types.ts +0 -61
- 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.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.vue +0 -147
- package/src/select/index.ts +0 -2
- package/src/select/select.types.ts +0 -53
- 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.vue +0 -49
- package/src/spinner/index.ts +0 -2
- package/src/spinner/spinner.types.ts +0 -11
- 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.vue +0 -100
- package/src/stepper/index.ts +0 -2
- package/src/stepper/stepper.types.ts +0 -29
- 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.vue +0 -99
- package/src/tab/index.ts +0 -2
- package/src/tab/tab.types.ts +0 -17
- 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.vue +0 -83
- package/src/tag/index.ts +0 -2
- package/src/tag/tag.types.ts +0 -24
- 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.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/tsconfig.json +0 -28
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.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
package/src/button/Button.vue
DELETED
|
@@ -1,45 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
import { onMounted } from "vue";
|
|
3
|
-
import { loadBaklavaResources } from "../utils/loadBaklavaResources";
|
|
4
|
-
import type { ButtonProps } from "./button.types";
|
|
5
|
-
|
|
6
|
-
const props = withDefaults(defineProps<ButtonProps>(), {
|
|
7
|
-
variant: "primary",
|
|
8
|
-
kind: "default",
|
|
9
|
-
size: "medium",
|
|
10
|
-
disabled: undefined,
|
|
11
|
-
loading: undefined,
|
|
12
|
-
loadingLabel: "...",
|
|
13
|
-
label: undefined,
|
|
14
|
-
href: undefined,
|
|
15
|
-
icon: undefined,
|
|
16
|
-
target: undefined,
|
|
17
|
-
type: "button",
|
|
18
|
-
autofocus: undefined,
|
|
19
|
-
});
|
|
20
|
-
|
|
21
|
-
const emit = defineEmits<{
|
|
22
|
-
click: [event: CustomEvent<MouseEvent>];
|
|
23
|
-
}>();
|
|
24
|
-
|
|
25
|
-
onMounted(() => {
|
|
26
|
-
loadBaklavaResources();
|
|
27
|
-
});
|
|
28
|
-
</script>
|
|
29
|
-
|
|
30
|
-
<template>
|
|
31
|
-
<bl-button
|
|
32
|
-
v-bind="{
|
|
33
|
-
...props,
|
|
34
|
-
loading: props.loading === true ? true : undefined,
|
|
35
|
-
}"
|
|
36
|
-
:style="{
|
|
37
|
-
'--bl-color-primary': kind === 'custom' ? customClass?.color : undefined,
|
|
38
|
-
'--bl-color-primary-highlight':
|
|
39
|
-
kind === 'custom' ? customClass?.highlightColor : undefined,
|
|
40
|
-
}"
|
|
41
|
-
@bl-click="emit('click', $event)"
|
|
42
|
-
>
|
|
43
|
-
<slot>{{ label }}</slot>
|
|
44
|
-
</bl-button>
|
|
45
|
-
</template>
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import type { BaklavaIcon } from "@trendyol/baklava-icons";
|
|
2
|
-
import type {
|
|
3
|
-
ButtonKind as BaseButtonKind,
|
|
4
|
-
ButtonSize,
|
|
5
|
-
ButtonVariant,
|
|
6
|
-
TargetType,
|
|
7
|
-
} from "@trendyol/baklava/dist/components/button/bl-button";
|
|
8
|
-
|
|
9
|
-
type ButtonKind = BaseButtonKind | "custom";
|
|
10
|
-
|
|
11
|
-
interface CustomClass {
|
|
12
|
-
color?: string;
|
|
13
|
-
highlightColor?: string;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
export interface ButtonProps {
|
|
17
|
-
variant?: ButtonVariant;
|
|
18
|
-
kind?: ButtonKind;
|
|
19
|
-
size?: ButtonSize;
|
|
20
|
-
label?: string;
|
|
21
|
-
loadingLabel?: string;
|
|
22
|
-
loading?: boolean;
|
|
23
|
-
disabled?: boolean;
|
|
24
|
-
href?: string;
|
|
25
|
-
icon?: BaklavaIcon;
|
|
26
|
-
target?: TargetType;
|
|
27
|
-
type?: HTMLButtonElement["type"];
|
|
28
|
-
autofocus?: boolean;
|
|
29
|
-
customClass?: CustomClass;
|
|
30
|
-
}
|
package/src/button/index.ts
DELETED
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
/**
|
|
3
|
-
* Checkbox Component
|
|
4
|
-
*
|
|
5
|
-
* A Vue UI kit component for Baklava's `bl-checkbox` and `bl-checkbox-group` web components.
|
|
6
|
-
* Can be used as either a single checkbox or as a group container for multiple checkboxes.
|
|
7
|
-
*
|
|
8
|
-
* @component
|
|
9
|
-
* @example
|
|
10
|
-
* ```vue
|
|
11
|
-
* <!-- Single checkbox -->
|
|
12
|
-
* <template>
|
|
13
|
-
* <BvCheckbox v-model="checked" label="I agree" />
|
|
14
|
-
* </template>
|
|
15
|
-
* ```
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* ```vue
|
|
19
|
-
* <!-- Checkbox group -->
|
|
20
|
-
* <template>
|
|
21
|
-
* <BvCheckbox v-model="selected" :items="items">
|
|
22
|
-
* <template #item="{ item }">{{ item.label }}</template>
|
|
23
|
-
* </BvCheckbox>
|
|
24
|
-
* </template>
|
|
25
|
-
* ```
|
|
26
|
-
*/
|
|
27
|
-
import { computed, onMounted } from "vue";
|
|
28
|
-
import { loadBaklavaResources } from "../utils/loadBaklavaResources";
|
|
29
|
-
import type { CheckboxProps } from "./checkbox.types";
|
|
30
|
-
|
|
31
|
-
const props = withDefaults(defineProps<CheckboxProps>(), {
|
|
32
|
-
modelValue: undefined,
|
|
33
|
-
disabled: undefined,
|
|
34
|
-
indeterminate: undefined,
|
|
35
|
-
value: undefined,
|
|
36
|
-
name: undefined,
|
|
37
|
-
label: undefined,
|
|
38
|
-
items: undefined,
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
const emit = defineEmits<{
|
|
42
|
-
"update:modelValue": [value: boolean | (string | number)[]];
|
|
43
|
-
change: [event: CustomEvent];
|
|
44
|
-
input: [event: CustomEvent];
|
|
45
|
-
}>();
|
|
46
|
-
|
|
47
|
-
/**
|
|
48
|
-
* Determines if the component should act as a group container.
|
|
49
|
-
* When `items` prop is provided and is an array, it acts as a group.
|
|
50
|
-
*/
|
|
51
|
-
const isGroupMode = computed(
|
|
52
|
-
() => props.items !== undefined && Array.isArray(props.items),
|
|
53
|
-
);
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Normalized model value for group mode (always array).
|
|
57
|
-
*/
|
|
58
|
-
const groupValue = computed(() => {
|
|
59
|
-
const val = props.modelValue;
|
|
60
|
-
if (Array.isArray(val)) return val;
|
|
61
|
-
return [];
|
|
62
|
-
});
|
|
63
|
-
|
|
64
|
-
/**
|
|
65
|
-
* Check if an item is selected in group mode.
|
|
66
|
-
*/
|
|
67
|
-
const isItemChecked = (item: { value: string | number }) => {
|
|
68
|
-
return groupValue.value.includes(item.value);
|
|
69
|
-
};
|
|
70
|
-
|
|
71
|
-
/**
|
|
72
|
-
* Handles the change event from the single checkbox.
|
|
73
|
-
*/
|
|
74
|
-
const handleSingleChange = (event: CustomEvent) => {
|
|
75
|
-
const checked = (event.target as HTMLInputElement & { checked?: boolean })
|
|
76
|
-
?.checked;
|
|
77
|
-
emit("change", event);
|
|
78
|
-
emit("update:modelValue", checked ?? false);
|
|
79
|
-
};
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* Handles the change event from the checkbox group.
|
|
83
|
-
* Normalizes value to array (Baklava may emit array or comma-separated string).
|
|
84
|
-
*/
|
|
85
|
-
const handleGroupChange = (event: CustomEvent) => {
|
|
86
|
-
emit("change", event);
|
|
87
|
-
const target = event.target as { value?: unknown };
|
|
88
|
-
let newValue: (string | number)[];
|
|
89
|
-
if (Array.isArray(target?.value)) {
|
|
90
|
-
newValue = target.value as (string | number)[];
|
|
91
|
-
} else if (typeof target?.value === "string") {
|
|
92
|
-
newValue = target.value ? target.value.split(",").map((s) => s.trim()) : [];
|
|
93
|
-
} else {
|
|
94
|
-
newValue = [];
|
|
95
|
-
}
|
|
96
|
-
emit("update:modelValue", newValue);
|
|
97
|
-
};
|
|
98
|
-
|
|
99
|
-
onMounted(() => {
|
|
100
|
-
loadBaklavaResources();
|
|
101
|
-
});
|
|
102
|
-
</script>
|
|
103
|
-
|
|
104
|
-
<template>
|
|
105
|
-
<!-- Group mode: render as bl-checkbox-group -->
|
|
106
|
-
<bl-checkbox-group
|
|
107
|
-
v-if="isGroupMode"
|
|
108
|
-
:value="groupValue"
|
|
109
|
-
@bl-checkbox-group-change="handleGroupChange"
|
|
110
|
-
>
|
|
111
|
-
<bl-checkbox
|
|
112
|
-
v-for="(item, index) in props.items"
|
|
113
|
-
:key="String(item.value)"
|
|
114
|
-
v-bind="{
|
|
115
|
-
value: item.value,
|
|
116
|
-
checked: isItemChecked(item),
|
|
117
|
-
disabled: item.disabled === true ? true : undefined,
|
|
118
|
-
indeterminate: item.indeterminate === true ? true : undefined,
|
|
119
|
-
name: item.name,
|
|
120
|
-
}"
|
|
121
|
-
>
|
|
122
|
-
<slot name="item" :item="item" :index="index">
|
|
123
|
-
{{ item.label }}
|
|
124
|
-
</slot>
|
|
125
|
-
</bl-checkbox>
|
|
126
|
-
</bl-checkbox-group>
|
|
127
|
-
|
|
128
|
-
<!-- Single checkbox mode: render as bl-checkbox -->
|
|
129
|
-
<bl-checkbox
|
|
130
|
-
v-else
|
|
131
|
-
v-bind="{
|
|
132
|
-
checked:
|
|
133
|
-
props.modelValue === true
|
|
134
|
-
? true
|
|
135
|
-
: props.modelValue === false
|
|
136
|
-
? false
|
|
137
|
-
: undefined,
|
|
138
|
-
disabled: props.disabled === true ? true : undefined,
|
|
139
|
-
indeterminate: props.indeterminate === true ? true : undefined,
|
|
140
|
-
value: props.value,
|
|
141
|
-
name: props.name,
|
|
142
|
-
}"
|
|
143
|
-
@bl-change="handleSingleChange"
|
|
144
|
-
@bl-input="emit('input', $event)"
|
|
145
|
-
>
|
|
146
|
-
<slot>{{ label }}</slot>
|
|
147
|
-
</bl-checkbox>
|
|
148
|
-
</template>
|
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Properties for a single checkbox item when used in group mode.
|
|
3
|
-
*
|
|
4
|
-
* @interface CheckboxItem
|
|
5
|
-
*/
|
|
6
|
-
export interface CheckboxItem {
|
|
7
|
-
/**
|
|
8
|
-
* The value of the checkbox (used for v-model in group mode).
|
|
9
|
-
*/
|
|
10
|
-
value: string | number;
|
|
11
|
-
|
|
12
|
-
/**
|
|
13
|
-
* The label text displayed next to the checkbox.
|
|
14
|
-
*/
|
|
15
|
-
label?: string;
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Whether the checkbox is checked.
|
|
19
|
-
*
|
|
20
|
-
* @default false
|
|
21
|
-
*/
|
|
22
|
-
checked?: boolean;
|
|
23
|
-
|
|
24
|
-
/**
|
|
25
|
-
* Whether the checkbox is disabled.
|
|
26
|
-
*
|
|
27
|
-
* @default false
|
|
28
|
-
*/
|
|
29
|
-
disabled?: boolean;
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Whether the checkbox is in indeterminate state.
|
|
33
|
-
*
|
|
34
|
-
* @default false
|
|
35
|
-
*/
|
|
36
|
-
indeterminate?: boolean;
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* The name attribute for the checkbox.
|
|
40
|
-
*/
|
|
41
|
-
name?: string;
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* Additional custom data for use in the #item scoped slot.
|
|
45
|
-
*/
|
|
46
|
-
[key: string]: unknown;
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
/**
|
|
50
|
-
* Props for the Checkbox component.
|
|
51
|
-
*
|
|
52
|
-
* When `items` prop is provided, the component acts as a checkbox group container.
|
|
53
|
-
* Otherwise, it acts as a single checkbox.
|
|
54
|
-
*
|
|
55
|
-
* @interface CheckboxProps
|
|
56
|
-
*/
|
|
57
|
-
export interface CheckboxProps {
|
|
58
|
-
/**
|
|
59
|
-
* Checked state (single mode) or selected values array (group mode).
|
|
60
|
-
* Use v-model for two-way binding.
|
|
61
|
-
* - Single mode: boolean
|
|
62
|
-
* - Group mode: (string | number)[]
|
|
63
|
-
*/
|
|
64
|
-
modelValue?: boolean | (string | number)[];
|
|
65
|
-
|
|
66
|
-
/**
|
|
67
|
-
* Whether the checkbox is disabled.
|
|
68
|
-
* Only used when component is in single checkbox mode.
|
|
69
|
-
*
|
|
70
|
-
* @default false
|
|
71
|
-
*/
|
|
72
|
-
disabled?: boolean;
|
|
73
|
-
|
|
74
|
-
/**
|
|
75
|
-
* Whether the checkbox is in indeterminate state.
|
|
76
|
-
* Only used when component is in single checkbox mode.
|
|
77
|
-
*
|
|
78
|
-
* @default false
|
|
79
|
-
*/
|
|
80
|
-
indeterminate?: boolean;
|
|
81
|
-
|
|
82
|
-
/**
|
|
83
|
-
* The value of the checkbox (for form submission).
|
|
84
|
-
* Only used when component is in single checkbox mode.
|
|
85
|
-
*/
|
|
86
|
-
value?: string | number;
|
|
87
|
-
|
|
88
|
-
/**
|
|
89
|
-
* The name attribute for the checkbox.
|
|
90
|
-
* Only used when component is in single checkbox mode.
|
|
91
|
-
*/
|
|
92
|
-
name?: string;
|
|
93
|
-
|
|
94
|
-
/**
|
|
95
|
-
* The label text displayed next to the checkbox.
|
|
96
|
-
* Only used when component is in single checkbox mode.
|
|
97
|
-
* Can be overridden by default slot content.
|
|
98
|
-
*/
|
|
99
|
-
label?: string;
|
|
100
|
-
|
|
101
|
-
/**
|
|
102
|
-
* Array of checkbox items to render when in group mode.
|
|
103
|
-
* Each item will be rendered as a bl-checkbox element inside bl-checkbox-group.
|
|
104
|
-
* Only used when component is in group mode.
|
|
105
|
-
*/
|
|
106
|
-
items?: CheckboxItem[];
|
|
107
|
-
|
|
108
|
-
}
|
package/src/checkbox/index.ts
DELETED