@seclab-dev/vue 0.1.0-alpha.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.
Files changed (33) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/LICENSE +21 -0
  3. package/README.md +62 -0
  4. package/dist/components/SecLabActionMenu.vue.d.ts +24 -0
  5. package/dist/components/SecLabAlert.vue.d.ts +37 -0
  6. package/dist/components/SecLabBreadcrumb.vue.d.ts +23 -0
  7. package/dist/components/SecLabBreadcrumbItem.vue.d.ts +13 -0
  8. package/dist/components/SecLabButton.vue.d.ts +36 -0
  9. package/dist/components/SecLabCard.vue.d.ts +34 -0
  10. package/dist/components/SecLabCheckbox.vue.d.ts +31 -0
  11. package/dist/components/SecLabDateTimeRangePicker.vue.d.ts +53 -0
  12. package/dist/components/SecLabDescriptions.vue.d.ts +41 -0
  13. package/dist/components/SecLabDialog.vue.d.ts +39 -0
  14. package/dist/components/SecLabDrawer.vue.d.ts +35 -0
  15. package/dist/components/SecLabEmpty.vue.d.ts +26 -0
  16. package/dist/components/SecLabFormItem.vue.d.ts +25 -0
  17. package/dist/components/SecLabIcon.vue.d.ts +17 -0
  18. package/dist/components/SecLabInput.vue.d.ts +49 -0
  19. package/dist/components/SecLabLoading.vue.d.ts +25 -0
  20. package/dist/components/SecLabMenu.vue.d.ts +28 -0
  21. package/dist/components/SecLabModal.vue.d.ts +31 -0
  22. package/dist/components/SecLabPagination.vue.d.ts +35 -0
  23. package/dist/components/SecLabSelect.vue.d.ts +29 -0
  24. package/dist/components/SecLabSwitch.vue.d.ts +24 -0
  25. package/dist/components/SecLabTable.vue.d.ts +60 -0
  26. package/dist/components/SecLabTabs.vue.d.ts +24 -0
  27. package/dist/components/SecLabTag.vue.d.ts +26 -0
  28. package/dist/components/SecLabToast.vue.d.ts +17 -0
  29. package/dist/components/SecLabTooltip.vue.d.ts +29 -0
  30. package/dist/index.d.ts +30 -0
  31. package/dist/index.js +1237 -0
  32. package/dist/style.css +2 -0
  33. package/package.json +48 -0
@@ -0,0 +1,31 @@
1
+ /**
2
+ * @file SecLabModal.vue
3
+ * @description SecLab 平台自研通用模态框组件,支持确认、信息展示及自定义操作。
4
+ */
5
+ interface Props {
6
+ /** 是否可见 */
7
+ visible: boolean;
8
+ /** 标题 */
9
+ title: string;
10
+ /** 消息内容 */
11
+ message: string;
12
+ /** 确认按钮文案 */
13
+ confirmText?: string;
14
+ /** 取消按钮文案 */
15
+ cancelText?: string;
16
+ /** 确认按钮类型 */
17
+ type?: "primary" | "danger" | "warning";
18
+ }
19
+ declare const __VLS_export: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
20
+ cancel: () => any;
21
+ confirm: () => any;
22
+ }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
23
+ onCancel?: (() => any) | undefined;
24
+ onConfirm?: (() => any) | undefined;
25
+ }>, {
26
+ type: "primary" | "danger" | "warning";
27
+ confirmText: string;
28
+ cancelText: string;
29
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
30
+ declare const _default: typeof __VLS_export;
31
+ export default _default;
@@ -0,0 +1,35 @@
1
+ declare const __VLS_export: import('vue').DefineComponent<import('vue').ExtractPropTypes<{
2
+ currentPage: {
3
+ type: NumberConstructor;
4
+ required: true;
5
+ };
6
+ totalPages: {
7
+ type: NumberConstructor;
8
+ required: true;
9
+ };
10
+ maxVisibleButtons: {
11
+ type: NumberConstructor;
12
+ default: number;
13
+ };
14
+ }>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
15
+ "page-change": (...args: any[]) => void;
16
+ }, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<{
17
+ currentPage: {
18
+ type: NumberConstructor;
19
+ required: true;
20
+ };
21
+ totalPages: {
22
+ type: NumberConstructor;
23
+ required: true;
24
+ };
25
+ maxVisibleButtons: {
26
+ type: NumberConstructor;
27
+ default: number;
28
+ };
29
+ }>> & Readonly<{
30
+ "onPage-change"?: ((...args: any[]) => any) | undefined;
31
+ }>, {
32
+ maxVisibleButtons: number;
33
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
34
+ declare const _default: typeof __VLS_export;
35
+ export default _default;
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @file SecLabSelect.vue
3
+ * @description SecLab 平台自研下拉选择组件,支持自定义内容渲染和 Teleport 浮层。
4
+ */
5
+ interface Option {
6
+ value: string | number;
7
+ label: string;
8
+ disabled?: boolean;
9
+ hint?: string;
10
+ }
11
+ type __VLS_Props = {
12
+ /** 绑定值 */
13
+ modelValue: string | number | null;
14
+ /** 选项列表 */
15
+ options: Option[];
16
+ /** 占位符 */
17
+ placeholder?: string;
18
+ /** 是否禁用 */
19
+ disabled?: boolean;
20
+ };
21
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
22
+ "update:modelValue": (value: string | number | null) => any;
23
+ "option-disabled": (option: Option) => any;
24
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
25
+ "onUpdate:modelValue"?: ((value: string | number | null) => any) | undefined;
26
+ "onOption-disabled"?: ((option: Option) => any) | undefined;
27
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
28
+ declare const _default: typeof __VLS_export;
29
+ export default _default;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @file SecLabSwitch.vue
3
+ * @description SecLab 平台自研开关组件,严格遵循 SDL 设计规范。
4
+ */
5
+ interface Props {
6
+ /** 绑定值 */
7
+ modelValue: boolean;
8
+ /** 激活时的文字 */
9
+ activeText?: string;
10
+ /** 禁用状态 */
11
+ disabled?: boolean;
12
+ }
13
+ declare const __VLS_export: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
14
+ "update:modelValue": (value: boolean) => any;
15
+ change: (value: boolean) => any;
16
+ }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
17
+ "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
18
+ onChange?: ((value: boolean) => any) | undefined;
19
+ }>, {
20
+ disabled: boolean;
21
+ activeText: string;
22
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
23
+ declare const _default: typeof __VLS_export;
24
+ export default _default;
@@ -0,0 +1,60 @@
1
+ /**
2
+ * @file SecLabTable.vue
3
+ * @description SecLab 平台自研表格组件,严格遵循 SDL 设计规范。
4
+ * 支持数据驱动列配置、自定义插槽渲染、固定列以及全网格边框。
5
+ */
6
+ export interface SecLabTableColumn {
7
+ prop?: string;
8
+ label: string;
9
+ width?: string | number;
10
+ minWidth?: string | number;
11
+ align?: "left" | "center" | "right";
12
+ headerAlign?: "left" | "center" | "right";
13
+ slot?: string;
14
+ headerSlot?: string;
15
+ fixed?: string;
16
+ }
17
+ declare const __VLS_export: <T extends Record<string, any>>(__VLS_props: NonNullable<Awaited<typeof __VLS_setup>>["props"], __VLS_ctx?: __VLS_PrettifyLocal<Pick<NonNullable<Awaited<typeof __VLS_setup>>, "attrs" | "emit" | "slots">>, __VLS_exposed?: NonNullable<Awaited<typeof __VLS_setup>>["expose"], __VLS_setup?: Promise<{
18
+ props: import('vue').PublicProps & __VLS_PrettifyLocal<{
19
+ /** 表格数据 */
20
+ data: T[];
21
+ /** 列配置 */
22
+ columns: SecLabTableColumn[];
23
+ /** 是否显示全网格边框 */
24
+ border?: boolean;
25
+ /** 无数据时显示的占位文案 */
26
+ emptyText?: string;
27
+ } & {
28
+ onRowMouseenter?: ((row: T, event: MouseEvent, index: number) => any) | undefined;
29
+ onRowContextmenu?: ((row: T, event: MouseEvent, index: number) => any) | undefined;
30
+ }> & (typeof globalThis extends {
31
+ __VLS_PROPS_FALLBACK: infer P;
32
+ } ? P : {});
33
+ expose: (exposed: {}) => void;
34
+ attrs: any;
35
+ slots: {
36
+ [x: string]: ((props: {
37
+ column: SecLabTableColumn;
38
+ index: number;
39
+ row: any;
40
+ }) => any) | undefined;
41
+ } & {
42
+ [x: string]: ((props: {
43
+ row: T;
44
+ column: SecLabTableColumn;
45
+ index: number;
46
+ }) => any) | undefined;
47
+ } & {
48
+ empty?: (props: {}) => any;
49
+ };
50
+ emit: ((evt: "rowMouseenter", row: T, event: MouseEvent, index: number) => void) & ((evt: "rowContextmenu", row: T, event: MouseEvent, index: number) => void);
51
+ }>) => import('vue').VNode & {
52
+ __ctx?: Awaited<typeof __VLS_setup>;
53
+ };
54
+ declare const _default: typeof __VLS_export;
55
+ export default _default;
56
+ type __VLS_PrettifyLocal<T> = (T extends any ? {
57
+ [K in keyof T]: T[K];
58
+ } : {
59
+ [K in keyof T as K]: T[K];
60
+ }) & {};
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @file SecLabTabs.vue
3
+ * @description SecLab 平台自研标签页组件,支持单选高亮,严格遵循 SDL 设计规范。
4
+ */
5
+ interface TabItem {
6
+ label: string;
7
+ name: string;
8
+ disabled?: boolean;
9
+ }
10
+ interface Props {
11
+ /** 当前选中的标签页 name */
12
+ modelValue: string;
13
+ /** 标签页列表 */
14
+ tabs: TabItem[];
15
+ }
16
+ declare const __VLS_export: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
17
+ "update:modelValue": (value: string) => any;
18
+ "tab-change": (value: string) => any;
19
+ }, string, import('vue').PublicProps, Readonly<Props> & Readonly<{
20
+ "onUpdate:modelValue"?: ((value: string) => any) | undefined;
21
+ "onTab-change"?: ((value: string) => any) | undefined;
22
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
23
+ declare const _default: typeof __VLS_export;
24
+ export default _default;
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @file SecLabTag.vue
3
+ * @description SecLab 平台自研标签组件,严格遵循 SDL 设计规范。
4
+ */
5
+ interface Props {
6
+ /** 标签类型 */
7
+ type?: "primary" | "success" | "warning" | "danger" | "info" | "default";
8
+ /** 主题风格 */
9
+ effect?: "light" | "plain" | "dark";
10
+ }
11
+ declare var __VLS_1: {};
12
+ type __VLS_Slots = {} & {
13
+ default?: (props: typeof __VLS_1) => any;
14
+ };
15
+ declare const __VLS_base: import('vue').DefineComponent<Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<Props> & Readonly<{}>, {
16
+ type: "primary" | "success" | "warning" | "danger" | "info" | "default";
17
+ effect: "light" | "plain" | "dark";
18
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
19
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
20
+ declare const _default: typeof __VLS_export;
21
+ export default _default;
22
+ type __VLS_WithSlots<T, S> = T & {
23
+ new (): {
24
+ $slots: S;
25
+ };
26
+ };
@@ -0,0 +1,17 @@
1
+ export interface ToastItem {
2
+ id: string;
3
+ type: "success" | "error" | "warning" | "info";
4
+ title: string;
5
+ message: string;
6
+ }
7
+ type __VLS_Props = {
8
+ /** 通知列表 */
9
+ toasts: ToastItem[];
10
+ };
11
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
12
+ close: (id: string) => any;
13
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
14
+ onClose?: ((id: string) => any) | undefined;
15
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
16
+ declare const _default: typeof __VLS_export;
17
+ export default _default;
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @file SecLabTooltip.vue
3
+ * @description SecLab 平台自研文字提示组件,严格遵循 SDL 设计规范。
4
+ */
5
+ type TooltipPosition = "top" | "bottom" | "left" | "right";
6
+ type __VLS_Props = {
7
+ /** 提示文字内容 */
8
+ text: string;
9
+ /** 显示位置 */
10
+ position?: TooltipPosition;
11
+ /** 显示延迟 (ms) */
12
+ delay?: number;
13
+ };
14
+ declare var __VLS_1: {};
15
+ type __VLS_Slots = {} & {
16
+ default?: (props: typeof __VLS_1) => any;
17
+ };
18
+ declare const __VLS_base: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {
19
+ position: TooltipPosition;
20
+ delay: number;
21
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
22
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
23
+ declare const _default: typeof __VLS_export;
24
+ export default _default;
25
+ type __VLS_WithSlots<T, S> = T & {
26
+ new (): {
27
+ $slots: S;
28
+ };
29
+ };
@@ -0,0 +1,30 @@
1
+ import { default as SecLabIcon } from './components/SecLabIcon.vue';
2
+ import { default as SecLabButton } from './components/SecLabButton.vue';
3
+ import { default as SecLabInput } from './components/SecLabInput.vue';
4
+ import { default as SecLabSwitch } from './components/SecLabSwitch.vue';
5
+ import { default as SecLabTag } from './components/SecLabTag.vue';
6
+ import { default as SecLabCard } from './components/SecLabCard.vue';
7
+ import { default as SecLabCheckbox } from './components/SecLabCheckbox.vue';
8
+ import { default as SecLabEmpty } from './components/SecLabEmpty.vue';
9
+ import { default as SecLabAlert } from './components/SecLabAlert.vue';
10
+ import { default as SecLabLoading } from './components/SecLabLoading.vue';
11
+ import { default as SecLabBreadcrumb } from './components/SecLabBreadcrumb.vue';
12
+ import { default as SecLabBreadcrumbItem } from './components/SecLabBreadcrumbItem.vue';
13
+ import { default as SecLabToast } from './components/SecLabToast.vue';
14
+ import { default as SecLabTooltip } from './components/SecLabTooltip.vue';
15
+ import { default as SecLabDescriptions } from './components/SecLabDescriptions.vue';
16
+ import { default as SecLabFormItem } from './components/SecLabFormItem.vue';
17
+ import { default as SecLabTabs } from './components/SecLabTabs.vue';
18
+ import { default as SecLabMenu } from './components/SecLabMenu.vue';
19
+ import { default as SecLabActionMenu } from './components/SecLabActionMenu.vue';
20
+ import { default as SecLabDialog } from './components/SecLabDialog.vue';
21
+ import { default as SecLabDrawer } from './components/SecLabDrawer.vue';
22
+ import { default as SecLabModal } from './components/SecLabModal.vue';
23
+ import { default as SecLabPagination } from './components/SecLabPagination.vue';
24
+ import { default as SecLabSelect } from './components/SecLabSelect.vue';
25
+ import { default as SecLabTable } from './components/SecLabTable.vue';
26
+ import { default as SecLabDateTimeRangePicker } from './components/SecLabDateTimeRangePicker.vue';
27
+ export type { ToastItem } from './components/SecLabToast.vue';
28
+ export type { SecLabTableColumn } from './components/SecLabTable.vue';
29
+ export type { DateTimeRangeValue } from './components/SecLabDateTimeRangePicker.vue';
30
+ export { SecLabIcon, SecLabButton, SecLabInput, SecLabSwitch, SecLabTag, SecLabCard, SecLabCheckbox, SecLabEmpty, SecLabAlert, SecLabLoading, SecLabBreadcrumb, SecLabBreadcrumbItem, SecLabToast, SecLabTooltip, SecLabDescriptions, SecLabFormItem, SecLabTabs, SecLabMenu, SecLabActionMenu, SecLabDialog, SecLabDrawer, SecLabModal, SecLabPagination, SecLabSelect, SecLabTable, SecLabDateTimeRangePicker, };