cosey 0.6.34 → 0.7.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.
@@ -33,6 +33,7 @@ import { OnlyChild } from './only-child';
33
33
  import { OptionalWrapper } from './optional-wrapper';
34
34
  import { Panel } from './panel';
35
35
  import { RemoteSelect } from './remote-select';
36
+ import { Ribbon } from './ribbon';
36
37
  import { Row } from './row';
37
38
  import { ScrollView } from './scroll-view';
38
39
  import { SnugMenu, SnugMenuItem } from './snug-menu';
@@ -89,6 +90,7 @@ declare module 'vue' {
89
90
  CoOptionalWrapper: typeof OptionalWrapper;
90
91
  CoPanel: typeof Panel;
91
92
  CoRemoteSelect: typeof RemoteSelect;
93
+ CoRibbon: typeof Ribbon;
92
94
  CoRow: typeof Row;
93
95
  CoScrollView: typeof ScrollView;
94
96
  CoSnugMenu: typeof SnugMenu;
@@ -107,4 +109,4 @@ declare module 'vue' {
107
109
  CoVideoViewer: typeof VideoViewer;
108
110
  }
109
111
  }
110
- export { AudioCard, AudioViewer, Card, Close, Col, ConfigProvider, Container, ContextMenu, ContextMenuItem, ContextSubMenu, Copy, DndSort, DndSortItem, Editor, Field, FileCard, Form, FormDialog, FormDrawer, FormGroup, FormItem, FormList, FormQuery, Highlight, HorizontalTree, Icon, IconifyIcon, ImageCard, InputNumberRange, LongText, Mask, MediaCard, MediaCardGroup, MediaViewer, NumberFormat, OnlyChild, OptionalWrapper, Panel, RemoteSelect, Row, ScrollView, SnugMenu, SnugMenuItem, StackDialog, SvgIcon, SvgaCard, SvgaViewer, Table, TableAction, Toggle, Transition, TransitionGroup, Upload, VideoCard, VideoViewer, };
112
+ export { AudioCard, AudioViewer, Card, Close, Col, ConfigProvider, Container, ContextMenu, ContextMenuItem, ContextSubMenu, Copy, DndSort, DndSortItem, Editor, Field, FileCard, Form, FormDialog, FormDrawer, FormGroup, FormItem, FormList, FormQuery, Highlight, HorizontalTree, Icon, IconifyIcon, ImageCard, InputNumberRange, LongText, Mask, MediaCard, MediaCardGroup, MediaViewer, NumberFormat, OnlyChild, OptionalWrapper, Panel, RemoteSelect, Ribbon, Row, ScrollView, SnugMenu, SnugMenuItem, StackDialog, SvgIcon, SvgaCard, SvgaViewer, Table, TableAction, Toggle, Transition, TransitionGroup, Upload, VideoCard, VideoViewer, };
@@ -33,6 +33,7 @@ export { OnlyChild } from './only-child/index.js';
33
33
  export { OptionalWrapper } from './optional-wrapper/index.js';
34
34
  export { Panel } from './panel/index.js';
35
35
  export { RemoteSelect } from './remote-select/index.js';
36
+ export { Ribbon } from './ribbon/index.js';
36
37
  export { Row } from './row/index.js';
37
38
  export { ScrollView } from './scroll-view/index.js';
38
39
  export { SnugMenu, SnugMenuItem } from './snug-menu/index.js';
@@ -34,6 +34,7 @@ export * from './only-child';
34
34
  export * from './optional-wrapper';
35
35
  export * from './panel';
36
36
  export * from './remote-select';
37
+ export * from './ribbon';
37
38
  export * from './row';
38
39
  export * from './scroll-view';
39
40
  export * from './snug-menu';
@@ -33,6 +33,7 @@ export { OnlyChild } from './only-child/index.js';
33
33
  export { OptionalWrapper } from './optional-wrapper/index.js';
34
34
  export { Panel } from './panel/index.js';
35
35
  export { RemoteSelect } from './remote-select/index.js';
36
+ export { Ribbon } from './ribbon/index.js';
36
37
  export { Row } from './row/index.js';
37
38
  export { ScrollView } from './scroll-view/index.js';
38
39
  export { SnugMenu, SnugMenuItem } from './snug-menu/index.js';
@@ -90,6 +91,7 @@ export { mediaViewerBaseEmits, mediaViewerBaseProps, mediaViewerEmits, mediaView
90
91
  export { numberFormatProps, numberFormatSlots } from './number-format/number-format.api.js';
91
92
  export { panelProps, panelSlots } from './panel/panel.api.js';
92
93
  export { remoteSelectEmits, remoteSelectProps, remoteSelectSlots } from './remote-select/remote-select.api.js';
94
+ export { ribbonEmits, ribbonProps, ribbonSlots } from './ribbon/ribbon.api.js';
93
95
  export { defaultBreakpoints, defaultRowProps, generateAlgorithms, rowColumns, rowContextSymbol, rowSizes } from './row/row.js';
94
96
  export { snugMenuContextSymbol } from './snug-menu/snug-menu.js';
95
97
  export { createStackDialogInfo, stackDialogProps, useStackDialog, useStackDialogProvide } from './stack-dialog/stack-dialog.js';
@@ -0,0 +1,100 @@
1
+ export * from './ribbon.api';
2
+ declare const _Ribbon: {
3
+ new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import("vue").ExtractPropTypes<{
4
+ direction: {
5
+ type: import("vue").PropType<"top-right" | "top-left" | "bottom-right" | "bottom-left">;
6
+ default: string;
7
+ };
8
+ gap: {
9
+ type: NumberConstructor;
10
+ default: number;
11
+ };
12
+ size: {
13
+ type: NumberConstructor;
14
+ default: number;
15
+ };
16
+ breadth: {
17
+ type: NumberConstructor;
18
+ default: number;
19
+ };
20
+ background: {
21
+ type: StringConstructor;
22
+ };
23
+ color: {
24
+ type: StringConstructor;
25
+ };
26
+ }>> & Readonly<{}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, import("vue").PublicProps, {
27
+ direction: "top-left" | "top-right" | "bottom-left" | "bottom-right";
28
+ gap: number;
29
+ size: number;
30
+ breadth: number;
31
+ }, true, {}, import("vue").SlotsType<import("./ribbon.api").RibbonSlots>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
32
+ P: {};
33
+ B: {};
34
+ D: {};
35
+ C: {};
36
+ M: {};
37
+ Defaults: {};
38
+ }, Readonly<import("vue").ExtractPropTypes<{
39
+ direction: {
40
+ type: import("vue").PropType<"top-right" | "top-left" | "bottom-right" | "bottom-left">;
41
+ default: string;
42
+ };
43
+ gap: {
44
+ type: NumberConstructor;
45
+ default: number;
46
+ };
47
+ size: {
48
+ type: NumberConstructor;
49
+ default: number;
50
+ };
51
+ breadth: {
52
+ type: NumberConstructor;
53
+ default: number;
54
+ };
55
+ background: {
56
+ type: StringConstructor;
57
+ };
58
+ color: {
59
+ type: StringConstructor;
60
+ };
61
+ }>> & Readonly<{}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, {
62
+ direction: "top-left" | "top-right" | "bottom-left" | "bottom-right";
63
+ gap: number;
64
+ size: number;
65
+ breadth: number;
66
+ }>;
67
+ __isFragment?: never;
68
+ __isTeleport?: never;
69
+ __isSuspense?: never;
70
+ } & import("vue").ComponentOptionsBase<Readonly<import("vue").ExtractPropTypes<{
71
+ direction: {
72
+ type: import("vue").PropType<"top-right" | "top-left" | "bottom-right" | "bottom-left">;
73
+ default: string;
74
+ };
75
+ gap: {
76
+ type: NumberConstructor;
77
+ default: number;
78
+ };
79
+ size: {
80
+ type: NumberConstructor;
81
+ default: number;
82
+ };
83
+ breadth: {
84
+ type: NumberConstructor;
85
+ default: number;
86
+ };
87
+ background: {
88
+ type: StringConstructor;
89
+ };
90
+ color: {
91
+ type: StringConstructor;
92
+ };
93
+ }>> & Readonly<{}>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, {
94
+ direction: "top-left" | "top-right" | "bottom-left" | "bottom-right";
95
+ gap: number;
96
+ size: number;
97
+ breadth: number;
98
+ }, {}, string, import("vue").SlotsType<import("./ribbon.api").RibbonSlots>, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & import("vue").Plugin;
99
+ export { _Ribbon as Ribbon };
100
+ export default _Ribbon;
@@ -0,0 +1,8 @@
1
+ import { withInstall } from '../utils.js';
2
+ import stdin_default$1 from './ribbon.js';
3
+ export { ribbonEmits, ribbonProps, ribbonSlots } from './ribbon.api.js';
4
+
5
+ const _Ribbon = withInstall(stdin_default$1);
6
+ var stdin_default = _Ribbon;
7
+
8
+ export { _Ribbon as Ribbon, stdin_default as default };
@@ -0,0 +1,34 @@
1
+ import type { ExtractPropTypes, PropType, SlotsType } from 'vue';
2
+ export declare const ribbonProps: {
3
+ direction: {
4
+ type: PropType<"top-right" | "top-left" | "bottom-right" | "bottom-left">;
5
+ default: string;
6
+ };
7
+ gap: {
8
+ type: NumberConstructor;
9
+ default: number;
10
+ };
11
+ size: {
12
+ type: NumberConstructor;
13
+ default: number;
14
+ };
15
+ breadth: {
16
+ type: NumberConstructor;
17
+ default: number;
18
+ };
19
+ background: {
20
+ type: StringConstructor;
21
+ };
22
+ color: {
23
+ type: StringConstructor;
24
+ };
25
+ };
26
+ export type RibbonProps = ExtractPropTypes<typeof ribbonProps>;
27
+ export interface RibbonSlots {
28
+ default: {};
29
+ }
30
+ export declare const ribbonSlots: SlotsType<RibbonSlots>;
31
+ export declare const ribbonEmits: {};
32
+ export type RibbonEmits = typeof ribbonEmits;
33
+ export interface RibbonExpose {
34
+ }
@@ -0,0 +1,28 @@
1
+ const ribbonProps = {
2
+ direction: {
3
+ type: String,
4
+ default: "top-right"
5
+ },
6
+ gap: {
7
+ type: Number,
8
+ default: 0
9
+ },
10
+ size: {
11
+ type: Number,
12
+ default: 150
13
+ },
14
+ breadth: {
15
+ type: Number,
16
+ default: 0.5
17
+ },
18
+ background: {
19
+ type: String
20
+ },
21
+ color: {
22
+ type: String
23
+ }
24
+ };
25
+ const ribbonSlots = {};
26
+ const ribbonEmits = {};
27
+
28
+ export { ribbonEmits, ribbonProps, ribbonSlots };
@@ -0,0 +1,53 @@
1
+ declare const _default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
2
+ direction: {
3
+ type: import("vue").PropType<"top-right" | "top-left" | "bottom-right" | "bottom-left">;
4
+ default: string;
5
+ };
6
+ gap: {
7
+ type: NumberConstructor;
8
+ default: number;
9
+ };
10
+ size: {
11
+ type: NumberConstructor;
12
+ default: number;
13
+ };
14
+ breadth: {
15
+ type: NumberConstructor;
16
+ default: number;
17
+ };
18
+ background: {
19
+ type: StringConstructor;
20
+ };
21
+ color: {
22
+ type: StringConstructor;
23
+ };
24
+ }>, () => import("vue/jsx-runtime").JSX.Element, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
25
+ direction: {
26
+ type: import("vue").PropType<"top-right" | "top-left" | "bottom-right" | "bottom-left">;
27
+ default: string;
28
+ };
29
+ gap: {
30
+ type: NumberConstructor;
31
+ default: number;
32
+ };
33
+ size: {
34
+ type: NumberConstructor;
35
+ default: number;
36
+ };
37
+ breadth: {
38
+ type: NumberConstructor;
39
+ default: number;
40
+ };
41
+ background: {
42
+ type: StringConstructor;
43
+ };
44
+ color: {
45
+ type: StringConstructor;
46
+ };
47
+ }>> & Readonly<{}>, {
48
+ direction: "top-left" | "top-right" | "bottom-left" | "bottom-right";
49
+ gap: number;
50
+ size: number;
51
+ breadth: number;
52
+ }, import("vue").SlotsType<import("./ribbon.api").RibbonSlots>, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
53
+ export default _default;
@@ -0,0 +1,53 @@
1
+ import { defineComponent, computed, createVNode } from 'vue';
2
+ import { ribbonEmits, ribbonSlots, ribbonProps } from './ribbon.api.js';
3
+ import { useToken } from '../theme/util/useToken.js';
4
+ import stdin_default$1 from './ribbon.style.js';
5
+ import { useComponentConfig } from '../config-provider/config-provider.api.js';
6
+
7
+ var stdin_default = defineComponent({
8
+ name: "CoRibbon",
9
+ props: ribbonProps,
10
+ slots: ribbonSlots,
11
+ emits: ribbonEmits,
12
+ setup(props, {
13
+ slots
14
+ }) {
15
+ const {
16
+ prefixCls
17
+ } = useComponentConfig("ribbon", props);
18
+ const {
19
+ hashId
20
+ } = stdin_default$1(prefixCls);
21
+ const {
22
+ token
23
+ } = useToken();
24
+ const ribbon = computed(() => {
25
+ return {
26
+ width: props.size + "px",
27
+ height: props.size + "px",
28
+ "--gap": props.gap + "px",
29
+ "--bg": props.background || token.value.colorPrimary
30
+ };
31
+ });
32
+ const silkStyle = computed(() => {
33
+ const hypotenuse = Math.sqrt(Math.pow(props.size, 2) * 2);
34
+ const breadth = hypotenuse / 2 * props.breadth;
35
+ return {
36
+ width: hypotenuse + "px",
37
+ height: breadth + "px",
38
+ color: props.color
39
+ };
40
+ });
41
+ return () => {
42
+ return createVNode("div", {
43
+ "class": [hashId.value, prefixCls.value, `is-${props.direction}`],
44
+ "style": ribbon.value
45
+ }, [createVNode("div", {
46
+ "class": `${prefixCls.value}-silk`,
47
+ "style": silkStyle.value
48
+ }, [slots.default?.({})])]);
49
+ };
50
+ }
51
+ });
52
+
53
+ export { stdin_default as default };
@@ -0,0 +1,4 @@
1
+ declare const _default: (_prefixCls?: import("vue").ComputedRef<string> | string, themeManager?: import("../theme/theme-context").ThemeManager) => {
2
+ hashId: import("vue").Ref<string, string>;
3
+ };
4
+ export default _default;
@@ -0,0 +1,121 @@
1
+ import { getSimpleStyleHook } from '../theme/getSimpleStyleHook.js';
2
+
3
+ var stdin_default = getSimpleStyleHook("CoRibbon", (token) => {
4
+ const { componentCls } = token;
5
+ return {
6
+ [`${componentCls}`]: {
7
+ position: "absolute",
8
+ overflow: "hidden",
9
+ pointerEvents: "none",
10
+ [`${componentCls}-silk`]: {
11
+ position: "absolute",
12
+ display: "flex",
13
+ justifyContent: "center",
14
+ alignItems: "center",
15
+ fontSize: token.fontSize,
16
+ textAlign: "center",
17
+ color: token.colorWhite,
18
+ textShadow: "0 1px 1px rgba(0, 0, 0, 0.1)",
19
+ background: "var(--bg)",
20
+ pointerEvents: "auto"
21
+ },
22
+ "&::before,&::after": {
23
+ content: '""',
24
+ position: "absolute",
25
+ display: "block",
26
+ border: "calc(var(--gap) / 2) solid var(--bg)",
27
+ filter: "grayscale(70%) brightness(0.7)"
28
+ },
29
+ [`&.is-top-left`]: {
30
+ top: "calc(var(--gap) * -1)",
31
+ left: "calc(var(--gap) * -1)",
32
+ [`${componentCls}-silk`]: {
33
+ top: 0,
34
+ right: 0,
35
+ transformOrigin: "right bottom",
36
+ transform: "translateY(-100%) rotate(-45deg)"
37
+ },
38
+ "&::before,&::after": {
39
+ borderTopColor: "transparent",
40
+ borderLeftColor: "transparent"
41
+ },
42
+ "&::before": {
43
+ top: 0,
44
+ right: 0
45
+ },
46
+ "&::after": {
47
+ bottom: 0,
48
+ left: 0
49
+ }
50
+ },
51
+ [`&.is-top-right`]: {
52
+ top: "calc(var(--gap) * -1)",
53
+ right: "calc(var(--gap) * -1)",
54
+ [`${componentCls}-silk`]: {
55
+ top: 0,
56
+ left: 0,
57
+ transformOrigin: "left bottom",
58
+ transform: "translateY(-100%) rotate(45deg)"
59
+ },
60
+ "&::before,&::after": {
61
+ borderTopColor: "transparent",
62
+ borderRightColor: "transparent"
63
+ },
64
+ "&::before": {
65
+ top: 0,
66
+ left: 0
67
+ },
68
+ "&::after": {
69
+ bottom: 0,
70
+ right: 0
71
+ }
72
+ },
73
+ [`&.is-bottom-left`]: {
74
+ bottom: "calc(var(--gap) * -1)",
75
+ left: "calc(var(--gap) * -1)",
76
+ [`${componentCls}-silk`]: {
77
+ bottom: 0,
78
+ right: 0,
79
+ transformOrigin: "top right",
80
+ transform: "translateY(100%) rotate(45deg)"
81
+ },
82
+ "&::before,&::after": {
83
+ borderBottomColor: "transparent",
84
+ borderLeftColor: "transparent"
85
+ },
86
+ "&::before": {
87
+ bottom: 0,
88
+ right: 0
89
+ },
90
+ "&::after": {
91
+ top: 0,
92
+ left: 0
93
+ }
94
+ },
95
+ [`&.is-bottom-right`]: {
96
+ bottom: "calc(var(--gap) * -1)",
97
+ right: "calc(var(--gap) * -1)",
98
+ [`${componentCls}-silk`]: {
99
+ bottom: 0,
100
+ left: 0,
101
+ transformOrigin: "left top",
102
+ transform: "translateY(100%) rotate(-45deg)"
103
+ },
104
+ "&::before,&::after": {
105
+ borderBottomColor: "transparent",
106
+ borderRightColor: "transparent"
107
+ },
108
+ "&::before": {
109
+ bottom: 0,
110
+ left: 0
111
+ },
112
+ "&::after": {
113
+ top: 0,
114
+ right: 0
115
+ }
116
+ }
117
+ }
118
+ };
119
+ });
120
+
121
+ export { stdin_default as default };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cosey",
3
- "version": "0.6.34",
3
+ "version": "0.7.0",
4
4
  "description": "基于 Vue3 + vite 的后台管理系统框架",
5
5
  "type": "module",
6
6
  "main": "index.js",