vue-layerx 0.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.
@@ -0,0 +1,107 @@
1
+ import * as vue from 'vue';
2
+ import { VNode, Component, PropType } from 'vue';
3
+
4
+ type LayerProps = Record<string, unknown>;
5
+ type SlotRenderFn = (props?: Record<string, unknown>) => VNode | VNode[] | null;
6
+ /** [visibleProp, visibleEventHandlerProp] e.g. ['modelValue', 'onUpdate:modelValue'] */
7
+ type VisibleProtocol = [string, string];
8
+ /** merge / config fragment for content or layer node */
9
+ interface LayerNodeConfig {
10
+ component?: Component;
11
+ props?: LayerProps;
12
+ /** imperative slot overrides (defineLayer / show); declarative content uses LayerTemplate */
13
+ slots?: Record<string, SlotRenderFn>;
14
+ }
15
+ /** resolve / adapt output — ready for h() except visible protocol */
16
+ interface LayerNodeNormalized {
17
+ component: Component;
18
+ props: LayerProps;
19
+ slots: Record<string, SlotRenderFn>;
20
+ }
21
+ interface LayerNormalized {
22
+ content: LayerNodeNormalized;
23
+ layer: LayerNodeNormalized;
24
+ }
25
+ interface LayerDefaults {
26
+ visible?: VisibleProtocol;
27
+ content?: LayerNodeConfig;
28
+ layer?: LayerNodeConfig;
29
+ }
30
+ interface DefineLayerOptions {
31
+ /** shorthand for layer.props */
32
+ props?: LayerProps;
33
+ layer?: {
34
+ props?: LayerProps;
35
+ slots?: Record<string, SlotRenderFn>;
36
+ };
37
+ /** content events that auto-close the layer; owned by the dialog module author */
38
+ hideOn?: string[];
39
+ }
40
+ type LayerAdapt = (normalized: LayerNormalized) => LayerNormalized;
41
+
42
+ /** useX(Content, opts) & show(payload) — content node + layer + hideOn */
43
+ type LayerUsePayload = LayerNodeConfig & {
44
+ layer?: LayerNodeConfig;
45
+ hideOn?: string[];
46
+ };
47
+ type LayerUseOptions = LayerUsePayload;
48
+ type LayerShowPayload = LayerUsePayload;
49
+
50
+ interface LayerTemplateScope<T extends Record<string, unknown> = Record<string, unknown>> {
51
+ inLayer: boolean;
52
+ outsideLayer: boolean;
53
+ /** content / layer 侧 scoped slot 原样转发的 props;无参数时为 {} */
54
+ slotProps: T;
55
+ }
56
+ interface LayerInstance {
57
+ show: (payload?: LayerShowPayload) => void;
58
+ hide: () => void;
59
+ clone: (partial?: LayerUseOptions) => LayerInstance;
60
+ readonly visible: boolean;
61
+ }
62
+
63
+ declare function createLayer(LayerComponent: Component, defaults?: LayerDefaults, adapt?: LayerAdapt): (Content?: Component, useOptions?: LayerUsePayload) => LayerInstance;
64
+
65
+ declare function defineLayer(options?: DefineLayerOptions): void;
66
+
67
+ declare const LayerTemplate: vue.DefineComponent<vue.ExtractPropTypes<{
68
+ name: {
69
+ type: StringConstructor;
70
+ required: true;
71
+ };
72
+ visibleOutside: {
73
+ type: BooleanConstructor;
74
+ default: boolean;
75
+ };
76
+ }>, () => VNode<vue.RendererNode, vue.RendererElement, {
77
+ [key: string]: any;
78
+ }> | VNode<vue.RendererNode, vue.RendererElement, {
79
+ [key: string]: any;
80
+ }>[] | null, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
81
+ name: {
82
+ type: StringConstructor;
83
+ required: true;
84
+ };
85
+ visibleOutside: {
86
+ type: BooleanConstructor;
87
+ default: boolean;
88
+ };
89
+ }>> & Readonly<{}>, {
90
+ visibleOutside: boolean;
91
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
92
+
93
+ declare const LayerBind: vue.DefineComponent<vue.ExtractPropTypes<{
94
+ to: {
95
+ type: PropType<LayerInstance>;
96
+ required: true;
97
+ };
98
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
99
+ [key: string]: any;
100
+ }>[] | undefined, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
101
+ to: {
102
+ type: PropType<LayerInstance>;
103
+ required: true;
104
+ };
105
+ }>> & Readonly<{}>, {}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
106
+
107
+ export { type DefineLayerOptions, type LayerAdapt, LayerBind, type LayerDefaults, type LayerInstance, type LayerNodeConfig, type LayerShowPayload, LayerTemplate, type LayerTemplateScope, type LayerUseOptions, type LayerUsePayload, type SlotRenderFn, type VisibleProtocol, createLayer, defineLayer };
@@ -0,0 +1,107 @@
1
+ import * as vue from 'vue';
2
+ import { VNode, Component, PropType } from 'vue';
3
+
4
+ type LayerProps = Record<string, unknown>;
5
+ type SlotRenderFn = (props?: Record<string, unknown>) => VNode | VNode[] | null;
6
+ /** [visibleProp, visibleEventHandlerProp] e.g. ['modelValue', 'onUpdate:modelValue'] */
7
+ type VisibleProtocol = [string, string];
8
+ /** merge / config fragment for content or layer node */
9
+ interface LayerNodeConfig {
10
+ component?: Component;
11
+ props?: LayerProps;
12
+ /** imperative slot overrides (defineLayer / show); declarative content uses LayerTemplate */
13
+ slots?: Record<string, SlotRenderFn>;
14
+ }
15
+ /** resolve / adapt output — ready for h() except visible protocol */
16
+ interface LayerNodeNormalized {
17
+ component: Component;
18
+ props: LayerProps;
19
+ slots: Record<string, SlotRenderFn>;
20
+ }
21
+ interface LayerNormalized {
22
+ content: LayerNodeNormalized;
23
+ layer: LayerNodeNormalized;
24
+ }
25
+ interface LayerDefaults {
26
+ visible?: VisibleProtocol;
27
+ content?: LayerNodeConfig;
28
+ layer?: LayerNodeConfig;
29
+ }
30
+ interface DefineLayerOptions {
31
+ /** shorthand for layer.props */
32
+ props?: LayerProps;
33
+ layer?: {
34
+ props?: LayerProps;
35
+ slots?: Record<string, SlotRenderFn>;
36
+ };
37
+ /** content events that auto-close the layer; owned by the dialog module author */
38
+ hideOn?: string[];
39
+ }
40
+ type LayerAdapt = (normalized: LayerNormalized) => LayerNormalized;
41
+
42
+ /** useX(Content, opts) & show(payload) — content node + layer + hideOn */
43
+ type LayerUsePayload = LayerNodeConfig & {
44
+ layer?: LayerNodeConfig;
45
+ hideOn?: string[];
46
+ };
47
+ type LayerUseOptions = LayerUsePayload;
48
+ type LayerShowPayload = LayerUsePayload;
49
+
50
+ interface LayerTemplateScope<T extends Record<string, unknown> = Record<string, unknown>> {
51
+ inLayer: boolean;
52
+ outsideLayer: boolean;
53
+ /** content / layer 侧 scoped slot 原样转发的 props;无参数时为 {} */
54
+ slotProps: T;
55
+ }
56
+ interface LayerInstance {
57
+ show: (payload?: LayerShowPayload) => void;
58
+ hide: () => void;
59
+ clone: (partial?: LayerUseOptions) => LayerInstance;
60
+ readonly visible: boolean;
61
+ }
62
+
63
+ declare function createLayer(LayerComponent: Component, defaults?: LayerDefaults, adapt?: LayerAdapt): (Content?: Component, useOptions?: LayerUsePayload) => LayerInstance;
64
+
65
+ declare function defineLayer(options?: DefineLayerOptions): void;
66
+
67
+ declare const LayerTemplate: vue.DefineComponent<vue.ExtractPropTypes<{
68
+ name: {
69
+ type: StringConstructor;
70
+ required: true;
71
+ };
72
+ visibleOutside: {
73
+ type: BooleanConstructor;
74
+ default: boolean;
75
+ };
76
+ }>, () => VNode<vue.RendererNode, vue.RendererElement, {
77
+ [key: string]: any;
78
+ }> | VNode<vue.RendererNode, vue.RendererElement, {
79
+ [key: string]: any;
80
+ }>[] | null, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
81
+ name: {
82
+ type: StringConstructor;
83
+ required: true;
84
+ };
85
+ visibleOutside: {
86
+ type: BooleanConstructor;
87
+ default: boolean;
88
+ };
89
+ }>> & Readonly<{}>, {
90
+ visibleOutside: boolean;
91
+ }, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
92
+
93
+ declare const LayerBind: vue.DefineComponent<vue.ExtractPropTypes<{
94
+ to: {
95
+ type: PropType<LayerInstance>;
96
+ required: true;
97
+ };
98
+ }>, () => vue.VNode<vue.RendererNode, vue.RendererElement, {
99
+ [key: string]: any;
100
+ }>[] | undefined, {}, {}, {}, vue.ComponentOptionsMixin, vue.ComponentOptionsMixin, {}, string, vue.PublicProps, Readonly<vue.ExtractPropTypes<{
101
+ to: {
102
+ type: PropType<LayerInstance>;
103
+ required: true;
104
+ };
105
+ }>> & Readonly<{}>, {}, {}, {}, {}, string, vue.ComponentProvideOptions, true, {}, any>;
106
+
107
+ export { type DefineLayerOptions, type LayerAdapt, LayerBind, type LayerDefaults, type LayerInstance, type LayerNodeConfig, type LayerShowPayload, LayerTemplate, type LayerTemplateScope, type LayerUseOptions, type LayerUsePayload, type SlotRenderFn, type VisibleProtocol, createLayer, defineLayer };