miao-design 1.0.0

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 (84) hide show
  1. package/README.md +76 -0
  2. package/dist/alert/Alert.vue.d.ts +27 -0
  3. package/dist/alert/index.d.ts +2 -0
  4. package/dist/alert/types.d.ts +20 -0
  5. package/dist/avatar/Avatar.vue.d.ts +18 -0
  6. package/dist/avatar/index.d.ts +2 -0
  7. package/dist/avatar/types.d.ts +19 -0
  8. package/dist/button/Button.vue.d.ts +26 -0
  9. package/dist/button/index.d.ts +2 -0
  10. package/dist/button/types.d.ts +21 -0
  11. package/dist/button-group/ButtonGroup.vue.d.ts +17 -0
  12. package/dist/button-group/context.d.ts +14 -0
  13. package/dist/button-group/index.d.ts +2 -0
  14. package/dist/button-group/types.d.ts +16 -0
  15. package/dist/checkbox/Checkbox.vue.d.ts +23 -0
  16. package/dist/checkbox/CheckboxGroup.vue.d.ts +23 -0
  17. package/dist/checkbox/context.d.ts +15 -0
  18. package/dist/checkbox/index.d.ts +3 -0
  19. package/dist/checkbox/types.d.ts +35 -0
  20. package/dist/date-picker/DatePicker.vue.d.ts +21 -0
  21. package/dist/date-picker/TimeSpinner.vue.d.ts +18 -0
  22. package/dist/date-picker/date-utils.d.ts +15 -0
  23. package/dist/date-picker/index.d.ts +3 -0
  24. package/dist/date-picker/types.d.ts +31 -0
  25. package/dist/date-range-picker/DateRangePicker.vue.d.ts +22 -0
  26. package/dist/date-range-picker/index.d.ts +2 -0
  27. package/dist/date-range-picker/types.d.ts +35 -0
  28. package/dist/dialog/Dialog.vue.d.ts +36 -0
  29. package/dist/dialog/index.d.ts +2 -0
  30. package/dist/dialog/types.d.ts +30 -0
  31. package/dist/directives/ripple.d.ts +58 -0
  32. package/dist/drawer/Drawer.vue.d.ts +35 -0
  33. package/dist/drawer/index.d.ts +2 -0
  34. package/dist/drawer/types.d.ts +26 -0
  35. package/dist/dropdown/Dropdown.vue.d.ts +32 -0
  36. package/dist/dropdown/DropdownItem.vue.d.ts +21 -0
  37. package/dist/dropdown/context.d.ts +13 -0
  38. package/dist/dropdown/index.d.ts +3 -0
  39. package/dist/dropdown/types.d.ts +45 -0
  40. package/dist/fab/Fab.vue.d.ts +26 -0
  41. package/dist/fab/index.d.ts +2 -0
  42. package/dist/fab/types.d.ts +21 -0
  43. package/dist/index.d.ts +27 -0
  44. package/dist/input/Input.vue.d.ts +34 -0
  45. package/dist/input/index.d.ts +2 -0
  46. package/dist/input/types.d.ts +24 -0
  47. package/dist/input-number/InputNumber.vue.d.ts +23 -0
  48. package/dist/input-number/index.d.ts +2 -0
  49. package/dist/input-number/types.d.ts +29 -0
  50. package/dist/miao-design.css +2 -0
  51. package/dist/miao-design.js +4103 -0
  52. package/dist/miao-design.umd.cjs +1 -0
  53. package/dist/radio/Radio.vue.d.ts +22 -0
  54. package/dist/radio/RadioGroup.vue.d.ts +23 -0
  55. package/dist/radio/context.d.ts +17 -0
  56. package/dist/radio/index.d.ts +3 -0
  57. package/dist/radio/types.d.ts +34 -0
  58. package/dist/select/Select.vue.d.ts +16 -0
  59. package/dist/select/index.d.ts +2 -0
  60. package/dist/select/types.d.ts +27 -0
  61. package/dist/slider/Slider.vue.d.ts +18 -0
  62. package/dist/slider/index.d.ts +2 -0
  63. package/dist/slider/types.d.ts +23 -0
  64. package/dist/switch/Switch.vue.d.ts +25 -0
  65. package/dist/switch/index.d.ts +2 -0
  66. package/dist/switch/types.d.ts +20 -0
  67. package/dist/tabs/TabPane.vue.d.ts +16 -0
  68. package/dist/tabs/Tabs.vue.d.ts +30 -0
  69. package/dist/tabs/context.d.ts +33 -0
  70. package/dist/tabs/index.d.ts +3 -0
  71. package/dist/tabs/types.d.ts +39 -0
  72. package/dist/toast/MToast.vue.d.ts +26 -0
  73. package/dist/toast/ToastCard.vue.d.ts +11 -0
  74. package/dist/toast/ToastContainer.vue.d.ts +3 -0
  75. package/dist/toast/index.d.ts +5 -0
  76. package/dist/toast/service.d.ts +15 -0
  77. package/dist/toast/state.d.ts +6 -0
  78. package/dist/toast/types.d.ts +46 -0
  79. package/dist/tooltip/Tooltip.vue.d.ts +32 -0
  80. package/dist/tooltip/index.d.ts +2 -0
  81. package/dist/tooltip/types.d.ts +30 -0
  82. package/dist/utils/scroll-lock.d.ts +2 -0
  83. package/dist/utils/throttle.d.ts +2 -0
  84. package/package.json +35 -0
@@ -0,0 +1,3 @@
1
+ export { default as MTabs } from './Tabs.vue';
2
+ export { default as MTabPane } from './TabPane.vue';
3
+ export type { MTabsProps, MTabPaneProps, TabsType, TabsSize, TabsColor } from './types';
@@ -0,0 +1,39 @@
1
+ export type TabsType = 'line' | 'card';
2
+ export type TabsSize = 'small' | 'default' | 'large';
3
+ export type TabsColor = 'primary' | 'secondary' | 'success' | 'warning' | 'error' | 'info';
4
+ export interface MTabsProps {
5
+ /** 当前激活的 TabPane name(v-model) */
6
+ modelValue?: string | number;
7
+ /** 标签形态:line 下划线(MUI 风格)/ card 卡片(淡彩背景激活) */
8
+ type?: TabsType;
9
+ /** 主题色:决定激活文字、指示条、hover 底色与卡片激活背景(默认 primary) */
10
+ color?: TabsColor;
11
+ /** 尺寸:影响标签高度与字号 */
12
+ size?: TabsSize;
13
+ /** 是否禁用全部标签 */
14
+ disabled?: boolean;
15
+ /** 标签是否显示关闭按钮(受 TabPane 自身 closable 覆盖) */
16
+ closable?: boolean;
17
+ /** 是否在标签栏尾部显示「新增」按钮,点击触发 add 事件 */
18
+ addable?: boolean;
19
+ }
20
+ export interface MTabPaneProps {
21
+ /** 唯一标识;不传时按渲染顺序自动分配索引 */
22
+ name?: string | number;
23
+ /** 标签文本(纯文本);需要富文本请用默认插槽内容配合自定义 label 槽位 */
24
+ label?: string;
25
+ /** 是否禁用该标签 */
26
+ disabled?: boolean;
27
+ /** 是否显示关闭按钮(未显式设置时继承 MTabs 的 closable) */
28
+ closable?: boolean;
29
+ }
30
+ export declare const MTabsPropsDefault: {
31
+ readonly type: "line";
32
+ readonly size: "default";
33
+ readonly disabled: false;
34
+ readonly closable: false;
35
+ readonly addable: false;
36
+ };
37
+ export declare const MTabPanePropsDefault: {
38
+ readonly disabled: false;
39
+ };
@@ -0,0 +1,26 @@
1
+ import { ToastType, MToastProps } from './types';
2
+ declare var __VLS_13: {};
3
+ type __VLS_Slots = {} & {
4
+ default?: (props: typeof __VLS_13) => any;
5
+ };
6
+ declare const __VLS_base: import('vue').DefineComponent<MToastProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
7
+ close: () => any;
8
+ "update:modelValue": (value: boolean) => any;
9
+ }, string, import('vue').PublicProps, Readonly<MToastProps> & Readonly<{
10
+ onClose?: (() => any) | undefined;
11
+ "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
12
+ }>, {
13
+ closable: boolean;
14
+ type: ToastType;
15
+ duration: number;
16
+ offset: number;
17
+ position: import('./types').ToastPosition;
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,11 @@
1
+ import { ToastItem } from './types';
2
+ type __VLS_Props = {
3
+ item: ToastItem;
4
+ };
5
+ declare const __VLS_export: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
6
+ close: () => any;
7
+ }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
8
+ onClose?: (() => any) | undefined;
9
+ }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
10
+ declare const _default: typeof __VLS_export;
11
+ export default _default;
@@ -0,0 +1,3 @@
1
+ declare const __VLS_export: import('vue').DefineComponent<{}, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<{}> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
2
+ declare const _default: typeof __VLS_export;
3
+ export default _default;
@@ -0,0 +1,5 @@
1
+ export { default as MToast } from './MToast.vue';
2
+ export { default as toast } from './service';
3
+ export { showToast } from './service';
4
+ export { toastItems } from './state';
5
+ export type { MToastProps, ToastItem, ToastOptions, ToastPosition, ToastType, } from './types';
@@ -0,0 +1,15 @@
1
+ import { removeToast, clearToasts } from './state';
2
+ import { ToastOptions } from './types';
3
+ export declare function showToast(message: string, options?: ToastOptions): void;
4
+ export declare const toast: {
5
+ show: typeof showToast;
6
+ success: (message: string, options?: ToastOptions) => void;
7
+ error: (message: string, options?: ToastOptions) => void;
8
+ warning: (message: string, options?: ToastOptions) => void;
9
+ info: (message: string, options?: ToastOptions) => void;
10
+ /** 按 id 关闭单条 */
11
+ close: typeof removeToast;
12
+ /** 清空全部 */
13
+ clearAll: typeof clearToasts;
14
+ };
15
+ export default toast;
@@ -0,0 +1,6 @@
1
+ import { ToastItem } from './types';
2
+ /** 编程式 Toast 的共享状态:由 ToastContainer 消费,service 通过 add / remove 增删 */
3
+ export declare const toastItems: import('vue').Reactive<ToastItem[]>;
4
+ export declare function addToast(item: Omit<ToastItem, 'id'>): number;
5
+ export declare function removeToast(id: number): void;
6
+ export declare function clearToasts(): void;
@@ -0,0 +1,46 @@
1
+ export type ToastType = 'default' | 'success' | 'error' | 'warning' | 'info';
2
+ export type ToastPosition = 'top-right' | 'top-left' | 'top-center' | 'bottom-right' | 'bottom-left' | 'bottom-center';
3
+ export interface ToastOptions {
4
+ type?: ToastType;
5
+ title?: string;
6
+ /** 自动关闭时长(ms),0 表示不自动关闭 */
7
+ duration?: number;
8
+ /** 显示关闭按钮 */
9
+ closable?: boolean;
10
+ position?: ToastPosition;
11
+ /** 距视口边缘间距(px) */
12
+ offset?: number;
13
+ }
14
+ /** 容器内单条 Toast 的数据结构 */
15
+ export interface ToastItem {
16
+ id: number;
17
+ message: string;
18
+ title?: string;
19
+ type: ToastType;
20
+ duration: number;
21
+ closable: boolean;
22
+ position: ToastPosition;
23
+ offset: number;
24
+ }
25
+ export declare const TOAST_DEFAULT_DURATION = 3000;
26
+ export declare const TOAST_DEFAULT_POSITION: ToastPosition;
27
+ export interface MToastProps {
28
+ /** 是否显示(v-model) */
29
+ modelValue?: boolean;
30
+ /** 提示内容(也可用默认插槽) */
31
+ message?: string;
32
+ title?: string;
33
+ type?: ToastType;
34
+ /** 自动关闭时长(ms),0 表示不自动关闭 */
35
+ duration?: number;
36
+ closable?: boolean;
37
+ position?: ToastPosition;
38
+ offset?: number;
39
+ }
40
+ export declare const MToastPropsDefault: {
41
+ readonly type: "default";
42
+ readonly duration: 3000;
43
+ readonly closable: false;
44
+ readonly position: "top-right";
45
+ readonly offset: 16;
46
+ };
@@ -0,0 +1,32 @@
1
+ import { TooltipPlacement, MTooltipProps } from './types';
2
+ declare var __VLS_1: {}, __VLS_15: {};
3
+ type __VLS_Slots = {} & {
4
+ default?: (props: typeof __VLS_1) => any;
5
+ } & {
6
+ content?: (props: typeof __VLS_15) => any;
7
+ };
8
+ declare const __VLS_base: import('vue').DefineComponent<MTooltipProps, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
9
+ close: () => any;
10
+ "update:modelValue": (value: boolean) => any;
11
+ open: () => any;
12
+ }, string, import('vue').PublicProps, Readonly<MTooltipProps> & Readonly<{
13
+ onClose?: (() => any) | undefined;
14
+ "onUpdate:modelValue"?: ((value: boolean) => any) | undefined;
15
+ onOpen?: (() => any) | undefined;
16
+ }>, {
17
+ disabled: boolean;
18
+ appendToBody: boolean;
19
+ trigger: import('./types').TooltipTrigger;
20
+ placement: TooltipPlacement;
21
+ openDelay: number;
22
+ closeDelay: number;
23
+ arrow: boolean;
24
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, any>;
25
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
26
+ declare const _default: typeof __VLS_export;
27
+ export default _default;
28
+ type __VLS_WithSlots<T, S> = T & {
29
+ new (): {
30
+ $slots: S;
31
+ };
32
+ };
@@ -0,0 +1,2 @@
1
+ export { default as MTooltip } from './Tooltip.vue';
2
+ export type { MTooltipProps, TooltipPlacement, TooltipSide, TooltipTrigger, } from './types';
@@ -0,0 +1,30 @@
1
+ export type TooltipSide = 'top' | 'bottom' | 'left' | 'right';
2
+ export type TooltipPlacement = TooltipSide | 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end' | 'left-start' | 'left-end' | 'right-start' | 'right-end';
3
+ export type TooltipTrigger = 'hover' | 'click' | 'focus';
4
+ export interface MTooltipProps {
5
+ /** 提示内容(也可用 #content 插槽) */
6
+ content?: string;
7
+ /** 弹出方向,空间不足时自动翻转 / 夹紧 */
8
+ placement?: TooltipPlacement;
9
+ trigger?: TooltipTrigger;
10
+ disabled?: boolean;
11
+ /** 触发延迟(ms,仅 hover 生效) */
12
+ openDelay?: number;
13
+ /** 关闭延迟(ms,仅 hover 生效) */
14
+ closeDelay?: number;
15
+ /** 显示箭头 */
16
+ arrow?: boolean;
17
+ /** 受控显示(v-model) */
18
+ modelValue?: boolean;
19
+ /** 挂载到 body(默认开启,避免被父级 overflow 裁剪) */
20
+ appendToBody?: boolean;
21
+ }
22
+ export declare const MTooltipPropsDefault: {
23
+ readonly placement: "top";
24
+ readonly trigger: "hover";
25
+ readonly disabled: false;
26
+ readonly openDelay: 0;
27
+ readonly closeDelay: 0;
28
+ readonly arrow: true;
29
+ readonly appendToBody: true;
30
+ };
@@ -0,0 +1,2 @@
1
+ export declare function lockBodyScroll(): void;
2
+ export declare function unlockBodyScroll(): void;
@@ -0,0 +1,2 @@
1
+ /** 节流:delay 毫秒内最多执行一次 */
2
+ export declare function throttle<T extends (...args: any[]) => void>(fn: T, delay: number): (this: unknown, ...args: Parameters<T>) => void;
package/package.json ADDED
@@ -0,0 +1,35 @@
1
+ {
2
+ "name": "miao-design",
3
+ "version": "1.0.0",
4
+ "description": "Miao Design - 基于 Vue 3 的轻量级组件库",
5
+ "type": "module",
6
+ "files": [
7
+ "dist"
8
+ ],
9
+ "main": "./dist/miao-design.umd.cjs",
10
+ "module": "./dist/miao-design.js",
11
+ "types": "./dist/index.d.ts",
12
+ "exports": {
13
+ ".": {
14
+ "types": "./dist/index.d.ts",
15
+ "import": "./dist/miao-design.js",
16
+ "require": "./dist/miao-design.umd.cjs"
17
+ },
18
+ "./style.css": "./dist/miao-design.css"
19
+ },
20
+ "sideEffects": [
21
+ "**/*.css"
22
+ ],
23
+ "peerDependencies": {
24
+ "vue": "^3.5.0"
25
+ },
26
+ "keywords": [
27
+ "vue",
28
+ "vue3",
29
+ "ui",
30
+ "component",
31
+ "components",
32
+ "miao-design"
33
+ ],
34
+ "license": "MIT"
35
+ }