@topvisor/ui 0.0.5-0 → 0.0.8

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/README.md CHANGED
@@ -25,7 +25,9 @@
25
25
 
26
26
  ## Подключение стилей
27
27
 
28
+ Подключение базовых стилей и переменных палитры.
28
29
  Подключение базовых стилей, переменных палитры и основных компонентов.
30
+ Подключение базовых стилей и переменных палитры.
29
31
  Стили сложных компонентов рекомендуется грузить асинхронно.
30
32
 
31
33
  ```html
@@ -40,6 +42,12 @@ import 'topvisor-ui/light.css';
40
42
 
41
43
  Для смены темы необходимо подгрузить файл стилей необходимой темы и сразу отключить стили предыдущей темы.
42
44
 
45
+ Подключение стилей основных компонентов.
46
+
47
+ ```js
48
+ import '@topvisor-ui/l/style.css';
49
+ ```
50
+
43
51
  ## Подключение компонента
44
52
 
45
53
  Пример подключения компонента Button.
@@ -0,0 +1,12 @@
1
+ define(["exports"], function(exports) {
2
+ "use strict";
3
+ const _export_sfc = (sfc, props) => {
4
+ const target = sfc.__vccOpts || sfc;
5
+ for (const [key, val] of props) {
6
+ target[key] = val;
7
+ }
8
+ return target;
9
+ };
10
+ exports._export_sfc = _export_sfc;
11
+ });
12
+ //# sourceMappingURL=_plugin-vue_export-helper-cb5c78ba.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_plugin-vue_export-helper-cb5c78ba.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;"}
@@ -0,0 +1,11 @@
1
+ const _export_sfc = (sfc, props) => {
2
+ const target = sfc.__vccOpts || sfc;
3
+ for (const [key, val] of props) {
4
+ target[key] = val;
5
+ }
6
+ return target;
7
+ };
8
+ export {
9
+ _export_sfc as _
10
+ };
11
+ //# sourceMappingURL=_plugin-vue_export-helper-cc2b3d55.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"_plugin-vue_export-helper-cc2b3d55.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;"}
@@ -1,15 +1,104 @@
1
- define(["vue"], function(vue) {
1
+ define(["vue", "../_plugin-vue_export-helper-cb5c78ba"], function(vue, _pluginVue_exportHelper) {
2
2
  "use strict"; vue = vue ?? Vue;
3
+ var COLOR = /* @__PURE__ */ ((COLOR2) => {
4
+ COLOR2["Theme"] = "theme";
5
+ COLOR2["Blue"] = "blue";
6
+ COLOR2["Green"] = "green";
7
+ COLOR2["Orange"] = "orange";
8
+ COLOR2["Red"] = "red";
9
+ COLOR2["Pink"] = "pink";
10
+ return COLOR2;
11
+ })(COLOR || {});
12
+ var STYLING = /* @__PURE__ */ ((STYLING2) => {
13
+ STYLING2["Regular"] = "";
14
+ STYLING2["Outline"] = "outline";
15
+ STYLING2["Soft"] = "soft";
16
+ STYLING2["Transparent"] = "transparent";
17
+ return STYLING2;
18
+ })(STYLING || {});
19
+ var SIZE = /* @__PURE__ */ ((SIZE2) => {
20
+ SIZE2["S"] = "";
21
+ SIZE2["L"] = "l";
22
+ SIZE2["XL"] = "xl";
23
+ return SIZE2;
24
+ })(SIZE || {});
3
25
  const _sfc_main = /* @__PURE__ */ vue.defineComponent({
4
26
  __name: "button",
5
27
  props: {
6
- label: {}
28
+ color: { default: COLOR.Blue },
29
+ styling: { default: STYLING.Regular },
30
+ size: { default: SIZE.S },
31
+ name: {},
32
+ title: {},
33
+ icon: {},
34
+ icon2: {},
35
+ href: {},
36
+ disabled: { type: Boolean },
37
+ isSubmit: { type: Boolean },
38
+ isActive: { type: Boolean },
39
+ isProgress: { type: Boolean }
7
40
  },
8
41
  setup(__props) {
42
+ const props = __props;
43
+ const style = vue.useCssModule();
44
+ const tagName = vue.computed(() => props.href ? "a" : "button");
45
+ const type = vue.computed(() => props.isSubmit ? "submit" : void 0);
46
+ const classes = vue.computed(() => {
47
+ return {
48
+ ["g"]: true,
49
+ ["g-active"]: props.isActive,
50
+ ["g-disabled"]: props.disabled,
51
+ [style["top-button"]]: true,
52
+ [style["top-button-progress"]]: props.isProgress,
53
+ [style[`g-size_${props.size}`]]: !!props.size,
54
+ [style[`g-color_${props.color}`]]: true,
55
+ [style[`g-style_${props.styling}`]]: !!props.styling
56
+ };
57
+ });
9
58
  return (_ctx, _cache) => {
10
- return vue.toDisplayString(_ctx.label);
59
+ return vue.openBlock(), vue.createBlock(vue.resolveDynamicComponent(tagName.value), {
60
+ class: vue.normalizeClass(classes.value),
61
+ name: _ctx.name,
62
+ title: _ctx.title,
63
+ href: _ctx.href,
64
+ type: type.value,
65
+ "data-g-icon": _ctx.icon || void 0,
66
+ "data-g-icon2": _ctx.icon2 || void 0,
67
+ disabled: _ctx.disabled || void 0,
68
+ inProgress: _ctx.isProgress
69
+ }, {
70
+ default: vue.withCtx(() => [
71
+ vue.renderSlot(_ctx.$slots, "default", {}, () => [
72
+ vue.createTextVNode(vue.toDisplayString(!_ctx.icon ? "Button" : ""), 1)
73
+ ])
74
+ ]),
75
+ _: 3
76
+ }, 8, ["class", "name", "title", "href", "type", "data-g-icon", "data-g-icon2", "disabled", "inProgress"]);
11
77
  };
12
78
  }
13
79
  });
14
- return _sfc_main;
80
+ const progress = "top-progress";
81
+ const style0 = {
82
+ "top-button": "top-button",
83
+ "g-active": "g-active",
84
+ "top-button-progress": "top-button-progress",
85
+ progress,
86
+ "g-color_blue": "g-color_blue",
87
+ "g-color_green": "g-color_green",
88
+ "g-color_orange": "g-color_orange",
89
+ "g-color_red": "g-color_red",
90
+ "g-color_pink": "g-color_pink",
91
+ "g-color_theme": "g-color_theme",
92
+ "g-style_outline": "g-style_outline",
93
+ "g-style_soft": "g-style_soft",
94
+ "g-style_transparent": "g-style_transparent",
95
+ "g-size_l": "g-size_l",
96
+ "g-size_xl": "g-size_xl"
97
+ };
98
+ const cssModules = {
99
+ "$style": style0
100
+ };
101
+ const Button = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["__cssModules", cssModules]]);
102
+ return Button;
15
103
  });
104
+ //# sourceMappingURL=button.amd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.amd.js","sources":["../../../src/components/forms/button/button.ts","../../../src/components/forms/button/button.vue"],"sourcesContent":["import type { VNode } from 'vue';\r\n\r\n/**\r\n * Определение параметров\r\n */\r\nexport interface Props {\r\n\tcolor?: COLOR\r\n\tstyling?: STYLING // bug: name = style init with object type\r\n\tsize?: SIZE\r\n\r\n\tname?: string\r\n\ttitle?: string\r\n\ticon?: string\r\n\ticon2?: string\r\n\r\n\thref?: string // если установлена ссылка, isSubmit не может быть true\r\n\t// value?: string\r\n\r\n\tdisabled?: boolean\r\n\tisSubmit?: boolean\r\n\tisActive?: boolean\r\n\tisProgress?: boolean\r\n}\r\n\r\n/**\r\n * Определение слотов\r\n */\r\nexport interface Slots {\r\n\t/**\r\n\t * Cлот с проивзольным содержимым\r\n\t */\r\n\tdefault(): VNode[];\r\n}\r\n\r\n/**\r\n * Определение событий\r\n */\r\nexport interface Emits { }\r\n\r\n/**\r\n * Цвета\r\n */\r\nexport enum COLOR {\r\n\tTheme = 'theme',\r\n\tBlue = 'blue',\r\n\tGreen = 'green',\r\n\tOrange = 'orange',\r\n\tRed = 'red',\r\n\tPink = 'pink',\r\n}\r\n\r\n/**\r\n * Стили\r\n */\r\nexport enum STYLING {\r\n\tRegular = '',\r\n\tOutline = 'outline',\r\n\tSoft = 'soft',\r\n\tTransparent = 'transparent',\r\n}\r\n\r\n/**\r\n * Размеры\r\n */\r\nexport enum SIZE {\r\n\tS = '',\r\n\tL = 'l',\r\n\tXL = 'xl',\r\n}","<script setup lang=\"ts\">\r\nimport { computed, useCssModule } from 'vue';\r\nimport type { Props } from './button';\r\nimport { COLOR, STYLING, SIZE } from './button';\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n\tcolor: COLOR.Blue,\r\n\tstyling: STYLING.Regular,\r\n\tsize: SIZE.S,\r\n});\r\n\r\nconst style = useCssModule();\r\n\r\nconst tagName = computed(() => props.href ? 'a' : 'button');\r\n\r\nconst type = computed(() => props.isSubmit ? 'submit' : undefined);\r\n\r\nconst classes = computed(() => {\r\n\treturn {\r\n\t\t['g']: true,\r\n\t\t['g-active']: props.isActive,\r\n\t\t['g-disabled']: props.disabled,\r\n\t\t[style['top-button']]: true,\r\n\t\t[style['top-button-progress']]: props.isProgress,\r\n\t\t[style[`g-size_${props.size}`]]: !!props.size,\r\n\t\t[style[`g-color_${props.color}`]]: true,\r\n\t\t[style[`g-style_${props.styling}`]]: !!props.styling,\r\n\t};\r\n});\r\n</script>\r\n\r\n<template>\r\n\t<component\r\n\t\t:is=\"tagName\"\r\n\t\t:class=\"classes\"\r\n\t\t:name=\"name\"\r\n\t\t:title=\"title\"\r\n\t\t:href=\"href\"\r\n\t\t:type=\"type\"\r\n\t\t:data-g-icon=\"icon || undefined\"\r\n\t\t:data-g-icon2=\"icon2 || undefined\"\r\n\t\t:disabled=\"disabled || undefined\"\r\n\t\t:inProgress=\"isProgress\"\r\n\t>\r\n\t\t<slot>{{ !icon ? \"Button\" : \"\" }}</slot>\r\n\t</component>\r\n</template>\r\n\r\n<style module>\r\n@import \"./style/button.css\";\r\n@import \"./style/style-outline.css\";\r\n@import \"./style/style-soft.css\";\r\n@import \"./style/style-transparent.css\";\r\n\r\n.top-button {\r\n\t--top-button-color: var(--color-white);\r\n\t--top-button-background-color: transparent;\r\n\t--top-button-background-color-hover: var(--top-button-background-color);\r\n\t--top-button-background-color-active: var(--top-button-background-color-hover);\r\n\t--top-button-background-color-selected: var(--top-button-background-color-hover);\r\n\t--top-button-box-shadow: none;\r\n\t--top-button-box-shadow-hover: var(--g-shadow-darken-2);\r\n\t--top-button-box-shadow-active: var(--g-shadow-darken-3);\r\n\t--top-button-box-shadow-selected: var(--g-shadow-darken-3);\r\n\t--g-forms-border-width: 0px;\r\n\t--g-icon-width: calc(var(--g-icon-size) + var(--g-forms-padding));\r\n\t--g-icon2-width: calc(var(--g-icon2-size) + var(--g-forms-padding));\r\n}\r\n\r\n.top-button.g-size_l {\r\n\t--g-forms-padding: var(--g-forms-padding_l);\r\n\t--g-forms-base-height: var(--g-forms-base-height_l);\r\n}\r\n\r\n.top-button.g-size_xl {\r\n\t--g-forms-padding: var(--g-forms-padding_xl);\r\n\t--g-forms-base-height: var(--g-forms-base-height_xl);\r\n}\r\n\r\n.top-button-progress {}\r\n</style>"],"names":["COLOR","STYLING","SIZE","useCssModule","computed"],"mappings":";;AA0CY,MAAA,0BAAAA,WAAL;AACNA,WAAA,OAAQ,IAAA;AACRA,WAAA,MAAO,IAAA;AACPA,WAAA,OAAQ,IAAA;AACRA,WAAA,QAAS,IAAA;AACTA,WAAA,KAAM,IAAA;AACNA,WAAA,MAAO,IAAA;AANIA,WAAAA;AAAAA,EAAA,GAAA,SAAA,CAAA,CAAA;AAYA,MAAA,4BAAAC,aAAL;AACNA,aAAA,SAAU,IAAA;AACVA,aAAA,SAAU,IAAA;AACVA,aAAA,MAAO,IAAA;AACPA,aAAA,aAAc,IAAA;AAJHA,WAAAA;AAAAA,EAAA,GAAA,WAAA,CAAA,CAAA;AAUA,MAAA,yBAAAC,UAAL;AACNA,UAAA,GAAI,IAAA;AACJA,UAAA,GAAI,IAAA;AACJA,UAAA,IAAK,IAAA;AAHMA,WAAAA;AAAAA,EAAA,GAAA,QAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;ACrDZ,YAAM,QAAQC,IAAAA;AAEd,YAAM,UAAUC,IAAAA,SAAS,MAAM,MAAM,OAAO,MAAM,QAAQ;AAE1D,YAAM,OAAOA,IAAAA,SAAS,MAAM,MAAM,WAAW,WAAW,MAAS;AAE3D,YAAA,UAAUA,IAAAA,SAAS,MAAM;AACvB,eAAA;AAAA,UACN,CAAC,GAAG,GAAG;AAAA,UACP,CAAC,UAAU,GAAG,MAAM;AAAA,UACpB,CAAC,YAAY,GAAG,MAAM;AAAA,UACtB,CAAC,MAAM,YAAY,CAAC,GAAG;AAAA,UACvB,CAAC,MAAM,qBAAqB,CAAC,GAAG,MAAM;AAAA,UACtC,CAAC,MAAM,UAAU,MAAM,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM;AAAA,UACzC,CAAC,MAAM,WAAW,MAAM,KAAK,EAAE,CAAC,GAAG;AAAA,UACnC,CAAC,MAAM,WAAW,MAAM,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM;AAAA,QAAA;AAAA,MAC9C,CACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,15 +1,105 @@
1
- import { defineComponent, toDisplayString } from "vue";
1
+ import { defineComponent, useCssModule, computed, openBlock, createBlock, resolveDynamicComponent, normalizeClass, withCtx, renderSlot, createTextVNode, toDisplayString } from "vue";
2
+ import { _ as _export_sfc } from "../_plugin-vue_export-helper-cc2b3d55.js";
3
+ var COLOR = /* @__PURE__ */ ((COLOR2) => {
4
+ COLOR2["Theme"] = "theme";
5
+ COLOR2["Blue"] = "blue";
6
+ COLOR2["Green"] = "green";
7
+ COLOR2["Orange"] = "orange";
8
+ COLOR2["Red"] = "red";
9
+ COLOR2["Pink"] = "pink";
10
+ return COLOR2;
11
+ })(COLOR || {});
12
+ var STYLING = /* @__PURE__ */ ((STYLING2) => {
13
+ STYLING2["Regular"] = "";
14
+ STYLING2["Outline"] = "outline";
15
+ STYLING2["Soft"] = "soft";
16
+ STYLING2["Transparent"] = "transparent";
17
+ return STYLING2;
18
+ })(STYLING || {});
19
+ var SIZE = /* @__PURE__ */ ((SIZE2) => {
20
+ SIZE2["S"] = "";
21
+ SIZE2["L"] = "l";
22
+ SIZE2["XL"] = "xl";
23
+ return SIZE2;
24
+ })(SIZE || {});
2
25
  const _sfc_main = /* @__PURE__ */ defineComponent({
3
26
  __name: "button",
4
27
  props: {
5
- label: {}
28
+ color: { default: COLOR.Blue },
29
+ styling: { default: STYLING.Regular },
30
+ size: { default: SIZE.S },
31
+ name: {},
32
+ title: {},
33
+ icon: {},
34
+ icon2: {},
35
+ href: {},
36
+ disabled: { type: Boolean },
37
+ isSubmit: { type: Boolean },
38
+ isActive: { type: Boolean },
39
+ isProgress: { type: Boolean }
6
40
  },
7
41
  setup(__props) {
42
+ const props = __props;
43
+ const style = useCssModule();
44
+ const tagName = computed(() => props.href ? "a" : "button");
45
+ const type = computed(() => props.isSubmit ? "submit" : void 0);
46
+ const classes = computed(() => {
47
+ return {
48
+ ["g"]: true,
49
+ ["g-active"]: props.isActive,
50
+ ["g-disabled"]: props.disabled,
51
+ [style["top-button"]]: true,
52
+ [style["top-button-progress"]]: props.isProgress,
53
+ [style[`g-size_${props.size}`]]: !!props.size,
54
+ [style[`g-color_${props.color}`]]: true,
55
+ [style[`g-style_${props.styling}`]]: !!props.styling
56
+ };
57
+ });
8
58
  return (_ctx, _cache) => {
9
- return toDisplayString(_ctx.label);
59
+ return openBlock(), createBlock(resolveDynamicComponent(tagName.value), {
60
+ class: normalizeClass(classes.value),
61
+ name: _ctx.name,
62
+ title: _ctx.title,
63
+ href: _ctx.href,
64
+ type: type.value,
65
+ "data-g-icon": _ctx.icon || void 0,
66
+ "data-g-icon2": _ctx.icon2 || void 0,
67
+ disabled: _ctx.disabled || void 0,
68
+ inProgress: _ctx.isProgress
69
+ }, {
70
+ default: withCtx(() => [
71
+ renderSlot(_ctx.$slots, "default", {}, () => [
72
+ createTextVNode(toDisplayString(!_ctx.icon ? "Button" : ""), 1)
73
+ ])
74
+ ]),
75
+ _: 3
76
+ }, 8, ["class", "name", "title", "href", "type", "data-g-icon", "data-g-icon2", "disabled", "inProgress"]);
10
77
  };
11
78
  }
12
79
  });
80
+ const progress = "top-progress";
81
+ const style0 = {
82
+ "top-button": "top-button",
83
+ "g-active": "g-active",
84
+ "top-button-progress": "top-button-progress",
85
+ progress,
86
+ "g-color_blue": "g-color_blue",
87
+ "g-color_green": "g-color_green",
88
+ "g-color_orange": "g-color_orange",
89
+ "g-color_red": "g-color_red",
90
+ "g-color_pink": "g-color_pink",
91
+ "g-color_theme": "g-color_theme",
92
+ "g-style_outline": "g-style_outline",
93
+ "g-style_soft": "g-style_soft",
94
+ "g-style_transparent": "g-style_transparent",
95
+ "g-size_l": "g-size_l",
96
+ "g-size_xl": "g-size_xl"
97
+ };
98
+ const cssModules = {
99
+ "$style": style0
100
+ };
101
+ const Button = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules]]);
13
102
  export {
14
- _sfc_main as default
103
+ Button as default
15
104
  };
105
+ //# sourceMappingURL=button.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.js","sources":["../../../src/components/forms/button/button.ts","../../../src/components/forms/button/button.vue"],"sourcesContent":["import type { VNode } from 'vue';\r\n\r\n/**\r\n * Определение параметров\r\n */\r\nexport interface Props {\r\n\tcolor?: COLOR\r\n\tstyling?: STYLING // bug: name = style init with object type\r\n\tsize?: SIZE\r\n\r\n\tname?: string\r\n\ttitle?: string\r\n\ticon?: string\r\n\ticon2?: string\r\n\r\n\thref?: string // если установлена ссылка, isSubmit не может быть true\r\n\t// value?: string\r\n\r\n\tdisabled?: boolean\r\n\tisSubmit?: boolean\r\n\tisActive?: boolean\r\n\tisProgress?: boolean\r\n}\r\n\r\n/**\r\n * Определение слотов\r\n */\r\nexport interface Slots {\r\n\t/**\r\n\t * Cлот с проивзольным содержимым\r\n\t */\r\n\tdefault(): VNode[];\r\n}\r\n\r\n/**\r\n * Определение событий\r\n */\r\nexport interface Emits { }\r\n\r\n/**\r\n * Цвета\r\n */\r\nexport enum COLOR {\r\n\tTheme = 'theme',\r\n\tBlue = 'blue',\r\n\tGreen = 'green',\r\n\tOrange = 'orange',\r\n\tRed = 'red',\r\n\tPink = 'pink',\r\n}\r\n\r\n/**\r\n * Стили\r\n */\r\nexport enum STYLING {\r\n\tRegular = '',\r\n\tOutline = 'outline',\r\n\tSoft = 'soft',\r\n\tTransparent = 'transparent',\r\n}\r\n\r\n/**\r\n * Размеры\r\n */\r\nexport enum SIZE {\r\n\tS = '',\r\n\tL = 'l',\r\n\tXL = 'xl',\r\n}","<script setup lang=\"ts\">\r\nimport { computed, useCssModule } from 'vue';\r\nimport type { Props } from './button';\r\nimport { COLOR, STYLING, SIZE } from './button';\r\n\r\nconst props = withDefaults(defineProps<Props>(), {\r\n\tcolor: COLOR.Blue,\r\n\tstyling: STYLING.Regular,\r\n\tsize: SIZE.S,\r\n});\r\n\r\nconst style = useCssModule();\r\n\r\nconst tagName = computed(() => props.href ? 'a' : 'button');\r\n\r\nconst type = computed(() => props.isSubmit ? 'submit' : undefined);\r\n\r\nconst classes = computed(() => {\r\n\treturn {\r\n\t\t['g']: true,\r\n\t\t['g-active']: props.isActive,\r\n\t\t['g-disabled']: props.disabled,\r\n\t\t[style['top-button']]: true,\r\n\t\t[style['top-button-progress']]: props.isProgress,\r\n\t\t[style[`g-size_${props.size}`]]: !!props.size,\r\n\t\t[style[`g-color_${props.color}`]]: true,\r\n\t\t[style[`g-style_${props.styling}`]]: !!props.styling,\r\n\t};\r\n});\r\n</script>\r\n\r\n<template>\r\n\t<component\r\n\t\t:is=\"tagName\"\r\n\t\t:class=\"classes\"\r\n\t\t:name=\"name\"\r\n\t\t:title=\"title\"\r\n\t\t:href=\"href\"\r\n\t\t:type=\"type\"\r\n\t\t:data-g-icon=\"icon || undefined\"\r\n\t\t:data-g-icon2=\"icon2 || undefined\"\r\n\t\t:disabled=\"disabled || undefined\"\r\n\t\t:inProgress=\"isProgress\"\r\n\t>\r\n\t\t<slot>{{ !icon ? \"Button\" : \"\" }}</slot>\r\n\t</component>\r\n</template>\r\n\r\n<style module>\r\n@import \"./style/button.css\";\r\n@import \"./style/style-outline.css\";\r\n@import \"./style/style-soft.css\";\r\n@import \"./style/style-transparent.css\";\r\n\r\n.top-button {\r\n\t--top-button-color: var(--color-white);\r\n\t--top-button-background-color: transparent;\r\n\t--top-button-background-color-hover: var(--top-button-background-color);\r\n\t--top-button-background-color-active: var(--top-button-background-color-hover);\r\n\t--top-button-background-color-selected: var(--top-button-background-color-hover);\r\n\t--top-button-box-shadow: none;\r\n\t--top-button-box-shadow-hover: var(--g-shadow-darken-2);\r\n\t--top-button-box-shadow-active: var(--g-shadow-darken-3);\r\n\t--top-button-box-shadow-selected: var(--g-shadow-darken-3);\r\n\t--g-forms-border-width: 0px;\r\n\t--g-icon-width: calc(var(--g-icon-size) + var(--g-forms-padding));\r\n\t--g-icon2-width: calc(var(--g-icon2-size) + var(--g-forms-padding));\r\n}\r\n\r\n.top-button.g-size_l {\r\n\t--g-forms-padding: var(--g-forms-padding_l);\r\n\t--g-forms-base-height: var(--g-forms-base-height_l);\r\n}\r\n\r\n.top-button.g-size_xl {\r\n\t--g-forms-padding: var(--g-forms-padding_xl);\r\n\t--g-forms-base-height: var(--g-forms-base-height_xl);\r\n}\r\n\r\n.top-button-progress {}\r\n</style>"],"names":["COLOR","STYLING","SIZE"],"mappings":";;AA0CY,IAAA,0BAAAA,WAAL;AACNA,SAAA,OAAQ,IAAA;AACRA,SAAA,MAAO,IAAA;AACPA,SAAA,OAAQ,IAAA;AACRA,SAAA,QAAS,IAAA;AACTA,SAAA,KAAM,IAAA;AACNA,SAAA,MAAO,IAAA;AANIA,SAAAA;AAAA,GAAA,SAAA,CAAA,CAAA;AAYA,IAAA,4BAAAC,aAAL;AACNA,WAAA,SAAU,IAAA;AACVA,WAAA,SAAU,IAAA;AACVA,WAAA,MAAO,IAAA;AACPA,WAAA,aAAc,IAAA;AAJHA,SAAAA;AAAA,GAAA,WAAA,CAAA,CAAA;AAUA,IAAA,yBAAAC,UAAL;AACNA,QAAA,GAAI,IAAA;AACJA,QAAA,GAAI,IAAA;AACJA,QAAA,IAAK,IAAA;AAHMA,SAAAA;AAAA,GAAA,QAAA,CAAA,CAAA;;;;;;;;;;;;;;;;;;;ACrDZ,UAAM,QAAQ;AAEd,UAAM,UAAU,SAAS,MAAM,MAAM,OAAO,MAAM,QAAQ;AAE1D,UAAM,OAAO,SAAS,MAAM,MAAM,WAAW,WAAW,MAAS;AAE3D,UAAA,UAAU,SAAS,MAAM;AACvB,aAAA;AAAA,QACN,CAAC,GAAG,GAAG;AAAA,QACP,CAAC,UAAU,GAAG,MAAM;AAAA,QACpB,CAAC,YAAY,GAAG,MAAM;AAAA,QACtB,CAAC,MAAM,YAAY,CAAC,GAAG;AAAA,QACvB,CAAC,MAAM,qBAAqB,CAAC,GAAG,MAAM;AAAA,QACtC,CAAC,MAAM,UAAU,MAAM,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM;AAAA,QACzC,CAAC,MAAM,WAAW,MAAM,KAAK,EAAE,CAAC,GAAG;AAAA,QACnC,CAAC,MAAM,WAAW,MAAM,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,MAAM;AAAA,MAAA;AAAA,IAC9C,CACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,35 @@
1
+ define(["vue", "../_plugin-vue_export-helper-cb5c78ba"], function(vue, _pluginVue_exportHelper) {
2
+ "use strict"; vue = vue ?? Vue;
3
+ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
4
+ __name: "example",
5
+ props: {
6
+ text: { default: "Вы можете поменять этот текст в props.text" },
7
+ color: {},
8
+ isActive: { type: Boolean }
9
+ },
10
+ setup(__props) {
11
+ vue.useCssVars((_ctx) => ({
12
+ "811e7836": _ctx.color
13
+ }));
14
+ return (_ctx, _cache) => {
15
+ return vue.openBlock(), vue.createElementBlock("div", {
16
+ class: vue.normalizeClass({
17
+ [_ctx.$style.example]: true,
18
+ [_ctx.$style["g-active"]]: _ctx.isActive
19
+ })
20
+ }, vue.toDisplayString(_ctx.text), 3);
21
+ };
22
+ }
23
+ });
24
+ const example = "top-example";
25
+ const style0 = {
26
+ example,
27
+ "g-active": "g-active"
28
+ };
29
+ const cssModules = {
30
+ "$style": style0
31
+ };
32
+ const Example = /* @__PURE__ */ _pluginVue_exportHelper._export_sfc(_sfc_main, [["__cssModules", cssModules]]);
33
+ return Example;
34
+ });
35
+ //# sourceMappingURL=example.amd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"example.amd.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,36 @@
1
+ import { defineComponent, useCssVars, openBlock, createElementBlock, normalizeClass, toDisplayString } from "vue";
2
+ import { _ as _export_sfc } from "../_plugin-vue_export-helper-cc2b3d55.js";
3
+ const _sfc_main = /* @__PURE__ */ defineComponent({
4
+ __name: "example",
5
+ props: {
6
+ text: { default: "Вы можете поменять этот текст в props.text" },
7
+ color: {},
8
+ isActive: { type: Boolean }
9
+ },
10
+ setup(__props) {
11
+ useCssVars((_ctx) => ({
12
+ "811e7836": _ctx.color
13
+ }));
14
+ return (_ctx, _cache) => {
15
+ return openBlock(), createElementBlock("div", {
16
+ class: normalizeClass({
17
+ [_ctx.$style.example]: true,
18
+ [_ctx.$style["g-active"]]: _ctx.isActive
19
+ })
20
+ }, toDisplayString(_ctx.text), 3);
21
+ };
22
+ }
23
+ });
24
+ const example = "top-example";
25
+ const style0 = {
26
+ example,
27
+ "g-active": "g-active"
28
+ };
29
+ const cssModules = {
30
+ "$style": style0
31
+ };
32
+ const Example = /* @__PURE__ */ _export_sfc(_sfc_main, [["__cssModules", cssModules]]);
33
+ export {
34
+ Example as default
35
+ };
36
+ //# sourceMappingURL=example.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"example.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/c/style.css ADDED
@@ -0,0 +1,234 @@
1
+ .top-button {
2
+ cursor: pointer;
3
+ box-shadow: var(--top-button-box-shadow);
4
+ background-color: var(--top-button-background-color);
5
+ height: var(--g-forms-base-height);
6
+ padding: 0 var(--g-forms-padding);
7
+ color: var(--top-button-color);
8
+ line-height: 1;
9
+ white-space: nowrap;
10
+ display: inline-flex;
11
+ align-items: center;
12
+ justify-content: center;
13
+
14
+ transition: background-color 150ms, border-color 150ms, box-shadow 150ms;
15
+ }
16
+ .top-button:hover {
17
+ box-shadow: var(--top-button-box-shadow-hover);
18
+ background-color: var(--top-button-background-color-hover);
19
+ }
20
+ .top-button:active {
21
+ box-shadow: var(--top-button-box-shadow-active);
22
+ background-color: var(--top-button-background-color-active);
23
+ }
24
+ .top-button.g-active {
25
+ box-shadow: var(--top-button-box-shadow-selected);
26
+ background-color: var(--top-button-background-color-selected);
27
+ }
28
+ .top-button.top-button-progress {
29
+ cursor: help;
30
+ box-shadow: inset rgba(0, 0, 0, 0.5) 0 0 64px;
31
+ background-image:
32
+ linear-gradient(-45deg,
33
+ rgba(255, 255, 255, 0.2) 25%,
34
+ transparent 25%,
35
+ transparent 50%,
36
+ rgba(255, 255, 255, 0.2) 50%,
37
+ rgba(255, 255, 255, 0.2) 75%,
38
+ transparent 75%,
39
+ transparent);
40
+ background-size: 32px 32px;
41
+ animation: top-progress 1s linear infinite;
42
+ }
43
+ @keyframes top-progress {
44
+ 0% {
45
+ background-position-x: 0px;
46
+ }
47
+ 100% {
48
+ background-position-x: 32px;
49
+ }
50
+ }
51
+ a.top-button,
52
+ button.top-button {
53
+ min-width: 135px;
54
+ text-decoration: none;
55
+ }
56
+ a.top-button,
57
+ a.top-button:hover {
58
+ min-width: var(--g-forms-base-height);
59
+ text-decoration: none;
60
+ }
61
+ .top-button[data-g-icon]:not(:empty),
62
+ .top-button[data-g-icon2]:not(:empty) {
63
+ justify-content: flex-start;
64
+ text-align: left;
65
+ }
66
+ .top-button[data-g-icon] {
67
+ padding-left: 0;
68
+ }
69
+ .top-button[data-g-icon2] {
70
+ padding-right: var(--g_select_arrow-width);
71
+ }
72
+ .top-button[data-g-icon2]:after {
73
+ margin-left: auto;
74
+ }
75
+ .top-button:empty {
76
+ min-width: var(--g-forms-base-height);
77
+ }
78
+ .top-button[data-g-icon]:empty,
79
+ .top-button[data-g-icon2]:empty {
80
+ padding: 0;
81
+ }
82
+ .top-button.g-color_blue {
83
+ --top-button-background-color: var(--color-blue-500);
84
+ }
85
+ .top-button.g-color_green {
86
+ --top-button-background-color: var(--color-green-500);
87
+ }
88
+ .top-button.g-color_orange {
89
+ --top-button-background-color: var(--color-orange-500);
90
+ }
91
+ .top-button.g-color_red {
92
+ --top-button-background-color: var(--color-red-500);
93
+ }
94
+ .top-button.g-color_pink {
95
+ --top-button-background-color: var(--color-pink-500);
96
+ }
97
+ .top-button.g-color_theme {
98
+ --top-button-box-shadow-hover: none;
99
+ --top-button-box-shadow-active: none;
100
+ --top-button-box-shadow-selected: none;
101
+
102
+ --g-icon-color: var(--color-text-2);
103
+ --g-icon2-color: var(--color-text-2);
104
+
105
+ --top-button-color: var(--color-text-1);
106
+ --top-button-background-color: transparent;
107
+ --top-button-background-color-hover: var(--color-secondary-opacity);
108
+ --top-button-background-color-active: var(--color-secondary-2-opacity);
109
+ --top-button-background-color-selected: var(--color-secondary-2-opacity);
110
+ }
111
+ .top-button.g-color_theme.g-active {
112
+ --g-icon-color: var(--color-text-2);
113
+ }
114
+ .top-button.g-style_outline {
115
+ --top-button-box-shadow: none;
116
+ --top-button-box-shadow-hover: none;
117
+ --top-button-box-shadow-active: none;
118
+ --top-button-box-shadow-selected: none;
119
+
120
+ --g-forms-border-color: var(--g-style_outline-color);
121
+
122
+ --g-style_outline-color: var(--color-steel-400);
123
+
124
+ --top-button-color: var(--g-style_outline-color);
125
+ --top-button-background-color: var(--content-background-color);
126
+ --top-button-background-color-hover: var(--color-theme-100);
127
+ --top-button-background-color-active: var(--color-theme-150);
128
+ --top-button-background-color-selected: var(--color-theme-125);
129
+
130
+ --g-forms-border-width: 1px;
131
+ }
132
+ .top-button.g-style_outline.g-color_theme {
133
+ --top-button-color: var(--color-text);
134
+ }
135
+ .top-button.g-style_outline.g-color_blue {
136
+ --g-style_outline-color: var(--color-blue-500);
137
+ }
138
+ .top-button.g-style_outline.g-color_green {
139
+ --g-style_outline-color: var(--color-green-500);
140
+ }
141
+ .top-button.g-style_outline.g-color_orange {
142
+ --g-style_outline-color: var(--color-orange-500);
143
+ }
144
+ .top-button.g-style_outline.g-color_red {
145
+ --g-style_outline-color: var(--color-red-500);
146
+ }
147
+ .top-button.g-style_outline.g-color_pink {
148
+ --g-style_outline-color: var(--color-pink-500);
149
+ }
150
+ .top-button.g-style_soft {
151
+ --g-shadow-darken: none;
152
+ --g-shadow-darken-2: none;
153
+ --g-shadow-darken-3: none;
154
+
155
+ --top-button-color: var(--color-text);
156
+ --top-button-background-color: var(--color-secondary-opacity);
157
+ --top-button-background-color-hover: var(--color-secondary-2-opacity);
158
+ --top-button-background-color-active: var(--color-secondary-3-opacity);
159
+ --top-button-background-color-selected: var(--color-secondary-3-opacity);
160
+ }
161
+ .top-button.g-style_soft.g-color_blue {
162
+ --top-button-color: var(--color-blue-500);
163
+ }
164
+ .top-button.g-style_soft.g-color_orange {
165
+ --top-button-color: var(--color-orange-500);
166
+ }
167
+ .top-button.g-style_soft.g-color_green {
168
+ --top-button-color: var(--color-green-500);
169
+ }
170
+ .top-button.g-style_soft.g-color_red {
171
+ --top-button-color: var(--color-red-500);
172
+ }
173
+ .top-button.g-style_soft.g-color_pink {
174
+ --top-button-color: var(--color-pink-500);
175
+ }
176
+ .top-button.g-style_transparent {
177
+ --g-shadow-darken: none;
178
+ --g-shadow-darken-2: none;
179
+ --g-shadow-darken-3: none;
180
+
181
+ --top-button-color: var(--color-text);
182
+ --top-button-background-color: transparent;
183
+ --top-button-background-color-hover: transparent;
184
+ --top-button-background-color-active: transparent;
185
+ --top-button-background-color-selected: var(--color-steel-200);
186
+ }
187
+ .top-button.g-style_transparent:hover {
188
+ opacity: 0.8;
189
+ }
190
+ .top-button.g-style_transparent.g-color_blue {
191
+ --top-button-color: var(--color-blue-450);
192
+ }
193
+ .top-button.g-style_transparent.g-color_green {
194
+ --top-button-color: var(--color-green-450);
195
+ }
196
+ .top-button.g-style_transparent.g-color_orange {
197
+ --top-button-color: var(--color-orange-450);
198
+ }
199
+ .top-button.g-style_transparent.g-color_red {
200
+ --top-button-color: var(--color-red-450);
201
+ }
202
+ .top-button.g-style_transparent.g-color_pink {
203
+ --top-button-color: var(--color-pink-450);
204
+ }
205
+ .top-button {
206
+ --top-button-color: var(--color-white);
207
+ --top-button-background-color: transparent;
208
+ --top-button-background-color-hover: var(--top-button-background-color);
209
+ --top-button-background-color-active: var(--top-button-background-color-hover);
210
+ --top-button-background-color-selected: var(--top-button-background-color-hover);
211
+ --top-button-box-shadow: none;
212
+ --top-button-box-shadow-hover: var(--g-shadow-darken-2);
213
+ --top-button-box-shadow-active: var(--g-shadow-darken-3);
214
+ --top-button-box-shadow-selected: var(--g-shadow-darken-3);
215
+ --g-forms-border-width: 0px;
216
+ --g-icon-width: calc(var(--g-icon-size) + var(--g-forms-padding));
217
+ --g-icon2-width: calc(var(--g-icon2-size) + var(--g-forms-padding));
218
+ }
219
+ .top-button.g-size_l {
220
+ --g-forms-padding: var(--g-forms-padding_l);
221
+ --g-forms-base-height: var(--g-forms-base-height_l);
222
+ }
223
+ .top-button.g-size_xl {
224
+ --g-forms-padding: var(--g-forms-padding_xl);
225
+ --g-forms-base-height: var(--g-forms-base-height_xl);
226
+ }
227
+ .top-button-progress {}
228
+
229
+ .top-example {
230
+ background: var(--811e7836);
231
+ }
232
+ .top-example.g-active {
233
+ background: green;
234
+ }