@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/stepper/Stepper.vue
DELETED
|
@@ -1,100 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
/**
|
|
3
|
-
* Stepper Component
|
|
4
|
-
*
|
|
5
|
-
* A Vue UI kit component for Baklava's `bl-stepper` web component for step indicators.
|
|
6
|
-
* Displays progress through a sequence of steps. Use the `steps` prop for declarative
|
|
7
|
-
* configuration or the default slot for custom step content.
|
|
8
|
-
*
|
|
9
|
-
* @component
|
|
10
|
-
* @example
|
|
11
|
-
* ```vue
|
|
12
|
-
* <template>
|
|
13
|
-
* <BvStepper v-model:current-step="currentStep" :steps="steps" />
|
|
14
|
-
* </template>
|
|
15
|
-
* ```
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* ```vue
|
|
19
|
-
* <template>
|
|
20
|
-
* <BvStepper :steps="['Step 1', 'Step 2', 'Step 3']" />
|
|
21
|
-
* </template>
|
|
22
|
-
* ```
|
|
23
|
-
*/
|
|
24
|
-
import { onMounted } from "vue";
|
|
25
|
-
import { loadBaklavaResources } from "../utils/loadBaklavaResources";
|
|
26
|
-
import type { StepperProps, StepperStep } from "./stepper.types";
|
|
27
|
-
|
|
28
|
-
/**
|
|
29
|
-
* Component props with default values.
|
|
30
|
-
*/
|
|
31
|
-
const props = withDefaults(defineProps<StepperProps>(), {
|
|
32
|
-
currentStep: undefined,
|
|
33
|
-
steps: undefined,
|
|
34
|
-
orientation: undefined,
|
|
35
|
-
showLabels: undefined,
|
|
36
|
-
});
|
|
37
|
-
|
|
38
|
-
/**
|
|
39
|
-
* Component events.
|
|
40
|
-
*/
|
|
41
|
-
const emit = defineEmits<{
|
|
42
|
-
/**
|
|
43
|
-
* Emitted when the current step changes (for v-model:currentStep).
|
|
44
|
-
*
|
|
45
|
-
* @param {number} step - The new current step index.
|
|
46
|
-
*/
|
|
47
|
-
"update:currentStep": [step: number];
|
|
48
|
-
/**
|
|
49
|
-
* Emitted when the user selects a different step.
|
|
50
|
-
*
|
|
51
|
-
* @param {CustomEvent} event - The native bl-stepper-change event from bl-stepper.
|
|
52
|
-
*/
|
|
53
|
-
"step-change": [event: CustomEvent];
|
|
54
|
-
}>();
|
|
55
|
-
|
|
56
|
-
/**
|
|
57
|
-
* Returns the variant for a step based on its index and the current step.
|
|
58
|
-
*/
|
|
59
|
-
const getStepVariant = (index: number): "default" | "active" | "success" | "error" => {
|
|
60
|
-
const current = props.currentStep ?? 0;
|
|
61
|
-
const step = props.steps?.[index];
|
|
62
|
-
if (step?.error) return "error";
|
|
63
|
-
if (index < current) return "success";
|
|
64
|
-
if (index === current) return "active";
|
|
65
|
-
return "default";
|
|
66
|
-
};
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Handles the bl-stepper-change event from the underlying web component.
|
|
70
|
-
*/
|
|
71
|
-
const handleStepChange = (event: CustomEvent<{ activeStep: number; totalSteps: number }>) => {
|
|
72
|
-
emit("step-change", event);
|
|
73
|
-
const step = event.detail?.activeStep;
|
|
74
|
-
if (step !== undefined) emit("update:currentStep", step);
|
|
75
|
-
};
|
|
76
|
-
|
|
77
|
-
onMounted(() => {
|
|
78
|
-
loadBaklavaResources();
|
|
79
|
-
});
|
|
80
|
-
</script>
|
|
81
|
-
|
|
82
|
-
<template>
|
|
83
|
-
<bl-stepper
|
|
84
|
-
:direction="orientation ?? 'horizontal'"
|
|
85
|
-
@bl-stepper-change="handleStepChange"
|
|
86
|
-
>
|
|
87
|
-
<template v-if="steps">
|
|
88
|
-
<bl-stepper-item
|
|
89
|
-
v-for="(step, index) in steps"
|
|
90
|
-
:key="index"
|
|
91
|
-
:id="`step-${index}`"
|
|
92
|
-
:title="showLabels !== false ? step.label : ''"
|
|
93
|
-
:description="showLabels !== false && step.description ? step.description : ''"
|
|
94
|
-
:variant="getStepVariant(index)"
|
|
95
|
-
:disabled="step.disabled"
|
|
96
|
-
/>
|
|
97
|
-
</template>
|
|
98
|
-
<slot />
|
|
99
|
-
</bl-stepper>
|
|
100
|
-
</template>
|
package/src/stepper/index.ts
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Configuration for a single step in the stepper.
|
|
3
|
-
*/
|
|
4
|
-
export interface StepperStep {
|
|
5
|
-
/** Step label */
|
|
6
|
-
label: string;
|
|
7
|
-
/** Optional step description */
|
|
8
|
-
description?: string;
|
|
9
|
-
/** Whether the step is completed */
|
|
10
|
-
completed?: boolean;
|
|
11
|
-
/** Whether the step has an error state */
|
|
12
|
-
error?: boolean;
|
|
13
|
-
/** Whether the step is disabled */
|
|
14
|
-
disabled?: boolean;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
|
-
/**
|
|
18
|
-
* Props for the Stepper component.
|
|
19
|
-
*/
|
|
20
|
-
export interface StepperProps {
|
|
21
|
-
/** Current step index (0-based). Use with v-model:currentStep */
|
|
22
|
-
currentStep?: number;
|
|
23
|
-
/** Array of step configurations */
|
|
24
|
-
steps?: StepperStep[];
|
|
25
|
-
/** Layout direction (horizontal, vertical) */
|
|
26
|
-
orientation?: string;
|
|
27
|
-
/** Whether to show step labels */
|
|
28
|
-
showLabels?: boolean;
|
|
29
|
-
}
|
package/src/switch/Switch.vue
DELETED
|
@@ -1,80 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
/**
|
|
3
|
-
* Switch Component
|
|
4
|
-
*
|
|
5
|
-
* A Vue UI kit component for Baklava's `bl-switch` web component with v-model support.
|
|
6
|
-
* A toggle switch for boolean states. Supports v-model:checked for two-way binding.
|
|
7
|
-
*
|
|
8
|
-
* @component
|
|
9
|
-
* @example
|
|
10
|
-
* ```vue
|
|
11
|
-
* <template>
|
|
12
|
-
* <BvSwitch v-model:checked="enabled" label="Enable notifications" />
|
|
13
|
-
* </template>
|
|
14
|
-
* ```
|
|
15
|
-
*
|
|
16
|
-
* @example
|
|
17
|
-
* ```vue
|
|
18
|
-
* <template>
|
|
19
|
-
* <BvSwitch :checked="isOn" @change="handleChange" />
|
|
20
|
-
* </template>
|
|
21
|
-
* ```
|
|
22
|
-
*/
|
|
23
|
-
import { onMounted } from "vue";
|
|
24
|
-
import { loadBaklavaResources } from "../utils/loadBaklavaResources";
|
|
25
|
-
import type { SwitchProps } from "./switch.types";
|
|
26
|
-
|
|
27
|
-
/**
|
|
28
|
-
* Component props with default values.
|
|
29
|
-
*/
|
|
30
|
-
const props = withDefaults(defineProps<SwitchProps>(), {
|
|
31
|
-
checked: undefined,
|
|
32
|
-
disabled: undefined,
|
|
33
|
-
label: undefined,
|
|
34
|
-
size: undefined,
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
/**
|
|
38
|
-
* Component events.
|
|
39
|
-
*/
|
|
40
|
-
const emit = defineEmits<{
|
|
41
|
-
/**
|
|
42
|
-
* Emitted when the checked state changes (for v-model:checked).
|
|
43
|
-
*
|
|
44
|
-
* @param {boolean} checked - The new checked state.
|
|
45
|
-
*/
|
|
46
|
-
"update:checked": [checked: boolean];
|
|
47
|
-
/**
|
|
48
|
-
* Emitted when the user toggles the switch.
|
|
49
|
-
*
|
|
50
|
-
* @param {CustomEvent} event - The native change event from bl-switch.
|
|
51
|
-
*/
|
|
52
|
-
change: [event: CustomEvent];
|
|
53
|
-
/**
|
|
54
|
-
* Emitted on user input (mirrors native input event).
|
|
55
|
-
*
|
|
56
|
-
* @param {CustomEvent} event - The native input event from bl-switch.
|
|
57
|
-
*/
|
|
58
|
-
input: [event: CustomEvent];
|
|
59
|
-
}>();
|
|
60
|
-
|
|
61
|
-
onMounted(() => {
|
|
62
|
-
loadBaklavaResources();
|
|
63
|
-
});
|
|
64
|
-
</script>
|
|
65
|
-
|
|
66
|
-
<template>
|
|
67
|
-
<bl-switch
|
|
68
|
-
v-bind="{
|
|
69
|
-
...props,
|
|
70
|
-
checked: props.checked === true ? true : props.checked === false ? false : undefined,
|
|
71
|
-
disabled: props.disabled === true ? true : undefined,
|
|
72
|
-
}"
|
|
73
|
-
@bl-switch-toggle="
|
|
74
|
-
emit('change', $event);
|
|
75
|
-
emit('update:checked', $event.detail);
|
|
76
|
-
"
|
|
77
|
-
>
|
|
78
|
-
<slot>{{ label }}</slot>
|
|
79
|
-
</bl-switch>
|
|
80
|
-
</template>
|
package/src/switch/index.ts
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Props for the Switch component.
|
|
3
|
-
*/
|
|
4
|
-
export interface SwitchProps {
|
|
5
|
-
/** Checked state. Use with v-model:checked */
|
|
6
|
-
checked?: boolean;
|
|
7
|
-
/** Whether the switch is disabled */
|
|
8
|
-
disabled?: boolean;
|
|
9
|
-
/** Label for the switch */
|
|
10
|
-
label?: string;
|
|
11
|
-
/** Switch size (small, medium, large) */
|
|
12
|
-
size?: string;
|
|
13
|
-
}
|
package/src/tab/Tab.vue
DELETED
|
@@ -1,99 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
/**
|
|
3
|
-
* Tab Component
|
|
4
|
-
*
|
|
5
|
-
* A Vue UI kit component for Baklava's `bl-tabs` (bl-tab-group / bl-tab / bl-tab-panel) web components
|
|
6
|
-
* for tab navigation. Use the `tabs` prop for declarative configuration or the default slot
|
|
7
|
-
* for custom tab content.
|
|
8
|
-
*
|
|
9
|
-
* @component
|
|
10
|
-
* @example
|
|
11
|
-
* ```vue
|
|
12
|
-
* <!-- Basic usage with tabs prop -->
|
|
13
|
-
* <template>
|
|
14
|
-
* <BvTab v-model:activeTab="activeTab" :tabs="tabOptions">
|
|
15
|
-
* <div v-if="activeTab === 'tab1'">Content 1</div>
|
|
16
|
-
* <div v-if="activeTab === 'tab2'">Content 2</div>
|
|
17
|
-
* </BvTab>
|
|
18
|
-
* </template>
|
|
19
|
-
* ```
|
|
20
|
-
*
|
|
21
|
-
* @example
|
|
22
|
-
* ```vue
|
|
23
|
-
* <!-- Custom slots -->
|
|
24
|
-
* <template>
|
|
25
|
-
* <BvTab v-model:activeTab="active">
|
|
26
|
-
* <bl-tab value="a">Tab A</bl-tab>
|
|
27
|
-
* <bl-tab value="b">Tab B</bl-tab>
|
|
28
|
-
* <bl-tab-panel tab="a">Panel A content</bl-tab-panel>
|
|
29
|
-
* <bl-tab-panel tab="b">Panel B content</bl-tab-panel>
|
|
30
|
-
* </BvTab>
|
|
31
|
-
* </template>
|
|
32
|
-
* ```
|
|
33
|
-
*/
|
|
34
|
-
import { onMounted } from "vue";
|
|
35
|
-
import { loadBaklavaResources } from "../utils/loadBaklavaResources";
|
|
36
|
-
import type { TabProps } from "./tab.types";
|
|
37
|
-
|
|
38
|
-
const props = withDefaults(defineProps<TabProps>(), {
|
|
39
|
-
activeTab: undefined,
|
|
40
|
-
tabs: undefined,
|
|
41
|
-
variant: undefined,
|
|
42
|
-
orientation: undefined,
|
|
43
|
-
});
|
|
44
|
-
|
|
45
|
-
const emit = defineEmits<{
|
|
46
|
-
/**
|
|
47
|
-
* Emitted when the active tab changes (use with v-model:activeTab).
|
|
48
|
-
* @param {string} tab - The new active tab value.
|
|
49
|
-
*/
|
|
50
|
-
"update:activeTab": [tab: string];
|
|
51
|
-
/**
|
|
52
|
-
* Emitted when tab selection changes (raw CustomEvent from bl-tabs).
|
|
53
|
-
* @param {CustomEvent} event - The bl-tab-change event.
|
|
54
|
-
*/
|
|
55
|
-
"tab-change": [event: CustomEvent];
|
|
56
|
-
}>();
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* Handles the bl-tab-selected event from the underlying bl-tab-group.
|
|
60
|
-
* Emits update:activeTab with the new tab value and tab-change with the raw event.
|
|
61
|
-
*
|
|
62
|
-
* @param {CustomEvent} event - The bl-tab-selected event from bl-tab (detail is tab name).
|
|
63
|
-
*/
|
|
64
|
-
const handleTabChange = (event: CustomEvent<string>) => {
|
|
65
|
-
emit("tab-change", event);
|
|
66
|
-
const tab = event.detail;
|
|
67
|
-
if (tab !== undefined) emit("update:activeTab", tab);
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
onMounted(() => {
|
|
71
|
-
loadBaklavaResources();
|
|
72
|
-
});
|
|
73
|
-
</script>
|
|
74
|
-
|
|
75
|
-
<template>
|
|
76
|
-
<bl-tab-group @bl-tab-selected="handleTabChange">
|
|
77
|
-
<template v-if="tabs">
|
|
78
|
-
<bl-tab
|
|
79
|
-
v-for="tab in tabs"
|
|
80
|
-
:key="tab.value"
|
|
81
|
-
slot="tabs"
|
|
82
|
-
:name="tab.value"
|
|
83
|
-
:caption="tab.label"
|
|
84
|
-
:disabled="tab.disabled"
|
|
85
|
-
:selected="props.activeTab === tab.value"
|
|
86
|
-
>
|
|
87
|
-
{{ tab.label }}
|
|
88
|
-
</bl-tab>
|
|
89
|
-
<bl-tab-panel
|
|
90
|
-
v-for="tab in tabs"
|
|
91
|
-
:key="`panel-${tab.value}`"
|
|
92
|
-
:tab="tab.value"
|
|
93
|
-
>
|
|
94
|
-
<slot />
|
|
95
|
-
</bl-tab-panel>
|
|
96
|
-
</template>
|
|
97
|
-
<slot v-else />
|
|
98
|
-
</bl-tab-group>
|
|
99
|
-
</template>
|
package/src/tab/index.ts
DELETED
package/src/tab/tab.types.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
/** Tab option for the `tabs` prop */
|
|
2
|
-
export interface TabOption {
|
|
3
|
-
label: string;
|
|
4
|
-
value: string;
|
|
5
|
-
disabled?: boolean;
|
|
6
|
-
}
|
|
7
|
-
|
|
8
|
-
export interface TabProps {
|
|
9
|
-
/** Currently active tab value (use with v-model:activeTab) */
|
|
10
|
-
activeTab?: string;
|
|
11
|
-
/** Array of tab options. When provided, tabs are rendered from this array. */
|
|
12
|
-
tabs?: TabOption[];
|
|
13
|
-
/** Tab variant (passed to bl-tabs) */
|
|
14
|
-
variant?: string;
|
|
15
|
-
/** Tab orientation: horizontal or vertical */
|
|
16
|
-
orientation?: string;
|
|
17
|
-
}
|
package/src/table/Table.vue
DELETED
|
@@ -1,264 +0,0 @@
|
|
|
1
|
-
<script setup lang="ts">
|
|
2
|
-
/**
|
|
3
|
-
* Table Component
|
|
4
|
-
*
|
|
5
|
-
* A Vue UI kit component for Baklava's `bl-table` web component for displaying tabular data.
|
|
6
|
-
* Supports columns, data, sorting, row selection, loading/empty states, pagination,
|
|
7
|
-
* and custom slots for header actions, empty state, and per-column cell content.
|
|
8
|
-
*
|
|
9
|
-
* @component
|
|
10
|
-
* @example
|
|
11
|
-
* ```vue
|
|
12
|
-
* <!-- Basic usage -->
|
|
13
|
-
* <template>
|
|
14
|
-
* <BvTable :columns="columns" :data="tableData" />
|
|
15
|
-
* </template>
|
|
16
|
-
* ```
|
|
17
|
-
*
|
|
18
|
-
* @example
|
|
19
|
-
* ```vue
|
|
20
|
-
* <!-- With loading and empty states -->
|
|
21
|
-
* <template>
|
|
22
|
-
* <BvTable
|
|
23
|
-
* :columns="columns"
|
|
24
|
-
* :data="tableData"
|
|
25
|
-
* :is-loading="isLoading"
|
|
26
|
-
* >
|
|
27
|
-
* <template #empty-state>
|
|
28
|
-
* <span>No data found</span>
|
|
29
|
-
* </template>
|
|
30
|
-
* </BvTable>
|
|
31
|
-
* </template>
|
|
32
|
-
* ```
|
|
33
|
-
*/
|
|
34
|
-
import { computed, onMounted, type PropType } from "vue";
|
|
35
|
-
import { loadBaklavaResources } from "../utils/loadBaklavaResources";
|
|
36
|
-
import BvSpinner from "../spinner/Spinner.vue";
|
|
37
|
-
import type {
|
|
38
|
-
TableColumn,
|
|
39
|
-
TableRow,
|
|
40
|
-
TablePaginationProps,
|
|
41
|
-
} from "./table.types";
|
|
42
|
-
|
|
43
|
-
defineOptions({ inheritAttrs: false });
|
|
44
|
-
|
|
45
|
-
const props = defineProps({
|
|
46
|
-
title: { type: String, default: undefined },
|
|
47
|
-
headerOptions: {
|
|
48
|
-
type: Object as PropType<{ sticky?: boolean; minCellWidth?: string }>,
|
|
49
|
-
default: undefined,
|
|
50
|
-
},
|
|
51
|
-
data: { type: Array as PropType<TableRow[]>, default: () => [] },
|
|
52
|
-
columns: { type: Array as PropType<TableColumn[]>, default: undefined },
|
|
53
|
-
sortable: { type: Boolean, default: undefined },
|
|
54
|
-
selectable: { type: Boolean, default: undefined },
|
|
55
|
-
multiple: { type: Boolean, default: undefined },
|
|
56
|
-
selected: {
|
|
57
|
-
type: Array as PropType<(string | number)[]>,
|
|
58
|
-
default: undefined,
|
|
59
|
-
},
|
|
60
|
-
sortKey: { type: String, default: undefined },
|
|
61
|
-
sortDirection: { type: String, default: undefined },
|
|
62
|
-
stickyFirstColumn: { type: Boolean, default: undefined },
|
|
63
|
-
stickyLastColumn: { type: Boolean, default: undefined },
|
|
64
|
-
isLoading: { type: Boolean, default: undefined },
|
|
65
|
-
pagination: {
|
|
66
|
-
type: Object as PropType<TablePaginationProps>,
|
|
67
|
-
default: undefined,
|
|
68
|
-
},
|
|
69
|
-
loadingText: { type: String, default: "Loading..." },
|
|
70
|
-
});
|
|
71
|
-
|
|
72
|
-
const emit = defineEmits<{
|
|
73
|
-
/**
|
|
74
|
-
* Emitted when a row is clicked.
|
|
75
|
-
* @param {CustomEvent} event - The bl-row-click event.
|
|
76
|
-
*/
|
|
77
|
-
"row-click": [event: CustomEvent];
|
|
78
|
-
/**
|
|
79
|
-
* Emitted when table sort options change.
|
|
80
|
-
* @param {CustomEvent} event - The bl-sort event.
|
|
81
|
-
*/
|
|
82
|
-
sort: [event: CustomEvent];
|
|
83
|
-
/**
|
|
84
|
-
* Emitted when selected rows change.
|
|
85
|
-
* @param {CustomEvent} event - The bl-row-select event.
|
|
86
|
-
*/
|
|
87
|
-
select: [event: CustomEvent];
|
|
88
|
-
/**
|
|
89
|
-
* Emitted when pagination changes.
|
|
90
|
-
* @param {CustomEvent} event - The bl-change event with selectedPage, prevPage, itemsPerPage.
|
|
91
|
-
*/
|
|
92
|
-
change: [event: CustomEvent];
|
|
93
|
-
}>();
|
|
94
|
-
|
|
95
|
-
/**
|
|
96
|
-
* Baklava table expects selected IDs to always be strings,
|
|
97
|
-
* even when the actual data IDs might be numbers.
|
|
98
|
-
*/
|
|
99
|
-
const selectedIdsAsStrings = computed(() => {
|
|
100
|
-
const s = props.selected;
|
|
101
|
-
if (s == null || !Array.isArray(s)) return [];
|
|
102
|
-
return s.map((id) => String(id));
|
|
103
|
-
});
|
|
104
|
-
|
|
105
|
-
/** Column header text: prefer name, then label, then key */
|
|
106
|
-
const getColumnLabel = (col: { key: string; label?: string; name?: string }) =>
|
|
107
|
-
col.name ?? col.label ?? col.key;
|
|
108
|
-
|
|
109
|
-
/** Row key for :key and selection-key: prefer row.id, fallback to index */
|
|
110
|
-
const getRowKey = (row: Record<string, unknown> & { id?: string | number }, index: number) =>
|
|
111
|
-
row.id != null ? String(row.id) : String(index);
|
|
112
|
-
|
|
113
|
-
onMounted(() => {
|
|
114
|
-
loadBaklavaResources();
|
|
115
|
-
});
|
|
116
|
-
</script>
|
|
117
|
-
|
|
118
|
-
<template>
|
|
119
|
-
<div class="table">
|
|
120
|
-
<div v-if="props.title" class="header">
|
|
121
|
-
<span class="--title">{{ props.title }}</span>
|
|
122
|
-
<slot name="header-actions" />
|
|
123
|
-
</div>
|
|
124
|
-
|
|
125
|
-
<div class="table-content">
|
|
126
|
-
<!-- Loading state -->
|
|
127
|
-
<bl-table v-if="props.isLoading">
|
|
128
|
-
<div class="loading-state">
|
|
129
|
-
<BvSpinner />
|
|
130
|
-
<span>{{ props.loadingText }}</span>
|
|
131
|
-
</div>
|
|
132
|
-
</bl-table>
|
|
133
|
-
|
|
134
|
-
<!-- Empty state -->
|
|
135
|
-
<bl-table v-else-if="!props.data?.length">
|
|
136
|
-
<div class="empty-state">
|
|
137
|
-
<slot name="empty-state" />
|
|
138
|
-
</div>
|
|
139
|
-
</bl-table>
|
|
140
|
-
|
|
141
|
-
<!-- Data table -->
|
|
142
|
-
<bl-table
|
|
143
|
-
v-else
|
|
144
|
-
v-bind="{
|
|
145
|
-
sortable: props.sortable === true ? true : undefined,
|
|
146
|
-
selectable: props.selectable === true ? true : undefined,
|
|
147
|
-
multiple: props.multiple === true ? true : undefined,
|
|
148
|
-
...(props.selectable && { selected: selectedIdsAsStrings }),
|
|
149
|
-
sortKey: props.sortKey,
|
|
150
|
-
sortDirection: props.sortDirection,
|
|
151
|
-
stickyFirstColumn: props.stickyFirstColumn,
|
|
152
|
-
stickyLastColumn: props.stickyLastColumn,
|
|
153
|
-
}"
|
|
154
|
-
@bl-sort="emit('sort', $event)"
|
|
155
|
-
@bl-row-select="emit('select', $event)"
|
|
156
|
-
>
|
|
157
|
-
<bl-table-header :sticky="props.headerOptions?.sticky">
|
|
158
|
-
<bl-table-row>
|
|
159
|
-
<bl-table-header-cell
|
|
160
|
-
v-for="column in props.columns"
|
|
161
|
-
:key="column.key"
|
|
162
|
-
:sort-key="
|
|
163
|
-
props.sortable && column.sortable !== false ? column.key : undefined
|
|
164
|
-
"
|
|
165
|
-
:style="{
|
|
166
|
-
'--bl-table-header-cell-min-width':
|
|
167
|
-
props.headerOptions?.minCellWidth || '100px',
|
|
168
|
-
}"
|
|
169
|
-
>
|
|
170
|
-
{{ getColumnLabel(column) }}
|
|
171
|
-
</bl-table-header-cell>
|
|
172
|
-
</bl-table-row>
|
|
173
|
-
</bl-table-header>
|
|
174
|
-
|
|
175
|
-
<bl-table-body>
|
|
176
|
-
<bl-table-row
|
|
177
|
-
v-for="(row, index) in props.data"
|
|
178
|
-
:key="getRowKey(row, index)"
|
|
179
|
-
:selection-key="props.selectable ? getRowKey(row, index) : undefined"
|
|
180
|
-
>
|
|
181
|
-
<bl-table-cell v-for="column in props.columns" :key="column.key">
|
|
182
|
-
<slot
|
|
183
|
-
:name="column.key"
|
|
184
|
-
:row="row"
|
|
185
|
-
:value="row[column.key]"
|
|
186
|
-
>
|
|
187
|
-
{{ row[column.key] }}
|
|
188
|
-
</slot>
|
|
189
|
-
</bl-table-cell>
|
|
190
|
-
</bl-table-row>
|
|
191
|
-
</bl-table-body>
|
|
192
|
-
</bl-table>
|
|
193
|
-
</div>
|
|
194
|
-
|
|
195
|
-
<div v-if="props.pagination" class="pagination-wrapper">
|
|
196
|
-
<bl-pagination
|
|
197
|
-
:current-page="props.pagination!.currentPage"
|
|
198
|
-
:total-items="props.pagination!.totalItems"
|
|
199
|
-
:items-per-page="props.pagination!.itemsPerPage"
|
|
200
|
-
:has-jumper="props.pagination!.hasJumper ?? undefined"
|
|
201
|
-
:has-select="props.pagination!.hasSelect ?? undefined"
|
|
202
|
-
:jumper-label="props.pagination!.jumperLabel ?? 'Go to page'"
|
|
203
|
-
:select-label="props.pagination!.selectLabel ?? 'Items per page'"
|
|
204
|
-
:items-per-page-options="props.pagination!.itemsPerPageOptions"
|
|
205
|
-
@bl-change="emit('change', $event)"
|
|
206
|
-
/>
|
|
207
|
-
</div>
|
|
208
|
-
</div>
|
|
209
|
-
</template>
|
|
210
|
-
|
|
211
|
-
<style lang="css" scoped>
|
|
212
|
-
.table {
|
|
213
|
-
display: flex;
|
|
214
|
-
flex-direction: column;
|
|
215
|
-
gap: 24px;
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
.header {
|
|
219
|
-
display: flex;
|
|
220
|
-
align-items: center;
|
|
221
|
-
justify-content: space-between;
|
|
222
|
-
}
|
|
223
|
-
|
|
224
|
-
.--title {
|
|
225
|
-
font: var(--bl-font-title-1-medium);
|
|
226
|
-
}
|
|
227
|
-
|
|
228
|
-
.table-content {
|
|
229
|
-
width: 100%;
|
|
230
|
-
overflow-x: auto;
|
|
231
|
-
}
|
|
232
|
-
|
|
233
|
-
.table-content > bl-table {
|
|
234
|
-
min-width: max-content;
|
|
235
|
-
}
|
|
236
|
-
|
|
237
|
-
.loading-state {
|
|
238
|
-
display: flex;
|
|
239
|
-
flex-direction: column;
|
|
240
|
-
align-items: center;
|
|
241
|
-
justify-content: center;
|
|
242
|
-
padding: 48px;
|
|
243
|
-
gap: 16px;
|
|
244
|
-
}
|
|
245
|
-
|
|
246
|
-
.loading-state span {
|
|
247
|
-
font: var(--bl-font-body-2-regular);
|
|
248
|
-
color: var(--bl-color-primary);
|
|
249
|
-
}
|
|
250
|
-
|
|
251
|
-
.empty-state {
|
|
252
|
-
display: flex;
|
|
253
|
-
flex-direction: column;
|
|
254
|
-
align-items: center;
|
|
255
|
-
justify-content: center;
|
|
256
|
-
padding: 48px;
|
|
257
|
-
gap: 12px;
|
|
258
|
-
}
|
|
259
|
-
|
|
260
|
-
.pagination-wrapper {
|
|
261
|
-
display: flex;
|
|
262
|
-
justify-content: flex-end;
|
|
263
|
-
}
|
|
264
|
-
</style>
|
package/src/table/index.ts
DELETED
package/src/table/table.types.ts
DELETED
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import type { ItemsPerPageOption } from "../pagination/pagination.types";
|
|
2
|
-
|
|
3
|
-
/** Table column definition */
|
|
4
|
-
export interface TableColumn {
|
|
5
|
-
key: string;
|
|
6
|
-
/** Column header text (alias: use `name` or `label`) */
|
|
7
|
-
label?: string;
|
|
8
|
-
/** Column header text (alias: use `name` or `label`) */
|
|
9
|
-
name?: string;
|
|
10
|
-
sortable?: boolean;
|
|
11
|
-
}
|
|
12
|
-
|
|
13
|
-
/** Table row data (record of column keys to values). When selectable, rows should have `id`. */
|
|
14
|
-
export type TableRow = Record<string, unknown> & { id?: string | number };
|
|
15
|
-
|
|
16
|
-
/** Pagination props for table integration */
|
|
17
|
-
export interface TablePaginationProps {
|
|
18
|
-
currentPage: number;
|
|
19
|
-
totalItems: number;
|
|
20
|
-
itemsPerPage: number;
|
|
21
|
-
hasJumper?: boolean;
|
|
22
|
-
jumperLabel?: string;
|
|
23
|
-
hasSelect?: boolean;
|
|
24
|
-
selectLabel?: string;
|
|
25
|
-
itemsPerPageOptions?: ItemsPerPageOption[];
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
export interface TableProps {
|
|
29
|
-
/** Optional title displayed above the table */
|
|
30
|
-
title?: string;
|
|
31
|
-
/** Header options: sticky, minCellWidth */
|
|
32
|
-
headerOptions?: {
|
|
33
|
-
sticky?: boolean;
|
|
34
|
-
minCellWidth?: string;
|
|
35
|
-
};
|
|
36
|
-
/** Table data rows */
|
|
37
|
-
data?: TableRow[];
|
|
38
|
-
/** Column definitions */
|
|
39
|
-
columns?: TableColumn[];
|
|
40
|
-
/** Enable column sorting */
|
|
41
|
-
sortable?: boolean;
|
|
42
|
-
/** Enable row selection */
|
|
43
|
-
selectable?: boolean;
|
|
44
|
-
/** Enable multiple row selection */
|
|
45
|
-
multiple?: boolean;
|
|
46
|
-
/** Selected row selection keys (use with v-model:selected when selectable). Accepts string or number ids. */
|
|
47
|
-
selected?: (string | number)[];
|
|
48
|
-
/** Sort key for the sorted column */
|
|
49
|
-
sortKey?: string;
|
|
50
|
-
/** Sort direction: '' | 'asc' | 'desc' */
|
|
51
|
-
sortDirection?: string;
|
|
52
|
-
/** Make first column sticky */
|
|
53
|
-
stickyFirstColumn?: boolean;
|
|
54
|
-
/** Make last column sticky */
|
|
55
|
-
stickyLastColumn?: boolean;
|
|
56
|
-
/** Show loading state */
|
|
57
|
-
isLoading?: boolean;
|
|
58
|
-
/** Pagination configuration */
|
|
59
|
-
pagination?: TablePaginationProps;
|
|
60
|
-
/** Text shown in loading state */
|
|
61
|
-
loadingText?: string;
|
|
62
|
-
}
|