@jasperdai/uikit-base-component-vue2 0.3.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.
package/README.md ADDED
@@ -0,0 +1,34 @@
1
+ # vue2-uikit-provider
2
+
3
+ ## 1 Usage
4
+
5
+ ### 1.1 Use UIKitProvider Components
6
+
7
+ ```vue
8
+ <script lang="ts" setup>
9
+ import { UIKitProvider } from '@tencentcloud/uikit-base-component-vue2';
10
+ </script>
11
+
12
+ <template>
13
+ <UIKitProvider theme="light">
14
+
15
+ </UIKitProvider>
16
+ </template>
17
+ ```
18
+
19
+ ### 1.2 Use Hook useUIKit
20
+
21
+ ```vue
22
+ <template>
23
+ <div>{{ theme }}</div>
24
+ <button @click="setTheme('dark')">set theme to dark</button>
25
+ <button @click="setTheme('light')">set theme to light</button>
26
+ </template>
27
+
28
+ <script lang="ts" setup>
29
+ import { useUIKit } from '@tencentcloud/uikit-base-component-vue2';
30
+
31
+ const { theme, setTheme } = useUIKit();
32
+ </script>
33
+
34
+ ```
@@ -0,0 +1,49 @@
1
+ import './styles/index.css';import { useTheme as r } from "./providers/UIKitProvider/contexts/ThemeProvider/useThemeProvider.js";
2
+ function s(e, t, o, d, f, i, l, u) {
3
+ var n = typeof e == "function" ? e.options : e;
4
+ return t && (n.render = t, n.staticRenderFns = o, n._compiled = !0), i && (n._scopeId = "data-v-" + i), {
5
+ exports: e,
6
+ options: n
7
+ };
8
+ }
9
+ const a = {
10
+ name: "ThemeProvider",
11
+ props: {
12
+ theme: {
13
+ type: [String, Object],
14
+ required: !0,
15
+ validator: function(e) {
16
+ return typeof e == "string" || e instanceof Object;
17
+ }
18
+ }
19
+ },
20
+ data() {
21
+ const { setTheme: e } = r();
22
+ return {
23
+ setTheme: e
24
+ };
25
+ },
26
+ mounted() {
27
+ if (console.log(this.theme, "jasper2"), typeof this.theme == "object") {
28
+ const { themeStyle: e, primaryColor: t } = this.theme;
29
+ this.setTheme({ themeStyle: e, primaryColor: t });
30
+ } else
31
+ this.setTheme(this.theme);
32
+ }
33
+ };
34
+ var m = function() {
35
+ var t = this, o = t._self._c;
36
+ return o("div", { staticClass: "uikit-theme-context" }, [t._t("default")], 2);
37
+ }, c = [], h = /* @__PURE__ */ s(
38
+ a,
39
+ m,
40
+ c,
41
+ !1,
42
+ null,
43
+ "89cdd6e7"
44
+ );
45
+ const p = h.exports;
46
+ export {
47
+ p as T,
48
+ s as n
49
+ };
@@ -0,0 +1,3 @@
1
+ import { useUIKit, UIKitProvider } from './providers/UIKitProvider/index';
2
+
3
+ export { UIKitProvider, useUIKit, };
package/dist/index.js ADDED
@@ -0,0 +1,6 @@
1
+ import { default as o } from "./providers/UIKitProvider/contexts/UIKitProvider/UIKitProvider.js";
2
+ import { useUIKit as f } from "./providers/UIKitProvider/contexts/UIKitProvider/useUIKitProvider.js";
3
+ export {
4
+ o as UIKitProvider,
5
+ f as useUIKit
6
+ };
@@ -0,0 +1,5 @@
1
+ import "./useThemeProvider.js";
2
+ import { T as a } from "../../../../ThemeProvider-DcrhE6dp.js";
3
+ export {
4
+ a as default
5
+ };
@@ -0,0 +1,9 @@
1
+ export declare class ThemeColorGenerator {
2
+ private static readonly COLOR_TYPES;
3
+ private static readonly DEFAULT_COLOR;
4
+ private static getCurrentPrimaryColor;
5
+ private static replaceColorVariable;
6
+ private static updateCSSVariables;
7
+ static applyThemeColor(): void;
8
+ static watchThemeColor(): void;
9
+ }
@@ -0,0 +1,60 @@
1
+ var n = Object.defineProperty;
2
+ var m = (r, t, e) => t in r ? n(r, t, { enumerable: !0, configurable: !0, writable: !0, value: e }) : r[t] = e;
3
+ var a = (r, t, e) => m(r, typeof t != "symbol" ? t + "" : t, e);
4
+ const h = {
5
+ "--text-color-link": "var(--uikit-color-theme-6)",
6
+ "--text-color-link-hover": "var(--uikit-color-theme-5)",
7
+ "--text-color-link-disabled": "var(--uikit-color-theme-2)",
8
+ "--bg-color-bubble-own": "var(--uikit-color-theme-7)",
9
+ "--list-color-focused": "var(--uikit-color-theme-2)",
10
+ "--button-color-primary-default": "var(--uikit-color-theme-6)",
11
+ "--button-color-primary-hover": "var(--uikit-color-theme-5)",
12
+ "--button-color-primary-active": "var(--uikit-color-theme-7)",
13
+ "--button-color-primary-disabled": "var(--uikit-color-theme-2)",
14
+ "--checkbox-color-selected": "var(--uikit-color-theme-5)",
15
+ "--toast-color-default": "var(--uikit-color-theme-2)",
16
+ "--switch-color-on": "var(--uikit-color-theme-5)",
17
+ "--slider-color-filled": "var(--uikit-color-theme-5)"
18
+ }, i = class i {
19
+ static getCurrentPrimaryColor() {
20
+ const t = document.documentElement;
21
+ return getComputedStyle(t).getPropertyValue("--primary-color").trim().toLowerCase();
22
+ }
23
+ static replaceColorVariable(t, e) {
24
+ const o = new RegExp(`var\\(--uikit-color-(${i.COLOR_TYPES.join("|")})-(\\d+)\\)`);
25
+ return t.replace(o, (s, l, c) => `var(--uikit-color-${e}-${c})`);
26
+ }
27
+ static updateCSSVariables(t, e) {
28
+ const o = document.documentElement;
29
+ Object.entries(t).forEach(([s, l]) => {
30
+ if (l.includes("var(--uikit-color-")) {
31
+ const c = this.replaceColorVariable(l, e);
32
+ o.style.setProperty(s, c);
33
+ }
34
+ });
35
+ }
36
+ static applyThemeColor() {
37
+ const t = this.getCurrentPrimaryColor();
38
+ if (!this.COLOR_TYPES.includes(t)) {
39
+ console.warn(`Unsupported color type: ${t}, using default color: ${this.DEFAULT_COLOR}`);
40
+ return;
41
+ }
42
+ const e = h;
43
+ this.updateCSSVariables(e, t);
44
+ }
45
+ static watchThemeColor() {
46
+ new MutationObserver((e) => {
47
+ e.forEach((o) => {
48
+ o.type === "attributes" && o.attributeName === "style" && this.applyThemeColor();
49
+ });
50
+ }).observe(document.documentElement, {
51
+ attributes: !0,
52
+ attributeFilter: ["style"]
53
+ });
54
+ }
55
+ };
56
+ a(i, "COLOR_TYPES", ["theme", "green", "red", "orange"]), a(i, "DEFAULT_COLOR", "theme");
57
+ let u = i;
58
+ export {
59
+ u as ThemeColorGenerator
60
+ };
@@ -0,0 +1,6 @@
1
+ export declare function useTheme(): {
2
+ theme: {
3
+ value: string;
4
+ };
5
+ setTheme: (newTheme: any) => void;
6
+ };
@@ -0,0 +1,17 @@
1
+ import r from "vue";
2
+ import { ThemeColorGenerator as l } from "./colorGenerator.js";
3
+ const o = r.observable({
4
+ value: ""
5
+ });
6
+ function p() {
7
+ function t(e) {
8
+ o.value = typeof e == "object" ? e.themeStyle : e, document.documentElement.setAttribute("tui-theme-mode", `${o.value}`), typeof e == "object" && e.primaryColor && (document.documentElement.style.setProperty("--primary-color", e.primaryColor), l.applyThemeColor()), console.log(o.value, "jasper1");
9
+ }
10
+ return {
11
+ theme: o,
12
+ setTheme: t
13
+ };
14
+ }
15
+ export {
16
+ p as useTheme
17
+ };
@@ -0,0 +1,26 @@
1
+ import { n as t, T as n } from "../../../../ThemeProvider-DcrhE6dp.js";
2
+ const o = {
3
+ components: {
4
+ ThemeProvider: n
5
+ },
6
+ props: {
7
+ theme: {
8
+ type: String | Object
9
+ }
10
+ }
11
+ };
12
+ var s = function() {
13
+ var e = this, r = e._self._c;
14
+ return r("ThemeProvider", { attrs: { theme: e.theme } }, [e._t("default")], 2);
15
+ }, _ = [], a = /* @__PURE__ */ t(
16
+ o,
17
+ s,
18
+ _,
19
+ !1,
20
+ null,
21
+ null
22
+ );
23
+ const i = a.exports;
24
+ export {
25
+ i as default
26
+ };
@@ -0,0 +1,6 @@
1
+ export declare function useUIKit(): {
2
+ theme: {
3
+ value: string;
4
+ };
5
+ setTheme: (newTheme: any) => void;
6
+ };
@@ -0,0 +1,7 @@
1
+ import { useTheme as e } from "../ThemeProvider/useThemeProvider.js";
2
+ function n() {
3
+ return e();
4
+ }
5
+ export {
6
+ n as useUIKit
7
+ };
@@ -0,0 +1,4 @@
1
+ import { default as UIKitProvider } from './contexts/UIKitProvider/UIKitProvider.vue';
2
+ import { useUIKit } from './contexts/UIKitProvider/useUIKitProvider';
3
+
4
+ export { UIKitProvider, useUIKit, };
@@ -0,0 +1,6 @@
1
+ import { default as o } from "./contexts/UIKitProvider/UIKitProvider.js";
2
+ import { useUIKit as f } from "./contexts/UIKitProvider/useUIKitProvider.js";
3
+ export {
4
+ o as UIKitProvider,
5
+ f as useUIKit
6
+ };
@@ -0,0 +1 @@
1
+ :root[tui-theme-mode=dark],.tui-theme-dark{--uikit-color-theme-1: #1C2333;--uikit-color-theme-2: #243047;--uikit-color-theme-3: #2F4875;--uikit-color-theme-4: #305BA6;--uikit-color-theme-5: #2B6AD6;--uikit-color-theme-6: #4086FF;--uikit-color-theme-7: #5C9DFF;--uikit-color-theme-8: #78B0FF;--uikit-color-theme-9: #9CC7FF;--uikit-color-theme-10: #C2DEFF;--uikit-color-black-1: rgba(0, 0, 0, 100%);--uikit-color-black-2: rgba(0, 0, 0, 90%);--uikit-color-black-3: rgba(0, 0, 0, 72%);--uikit-color-black-4: rgba(0, 0, 0, 55%);--uikit-color-black-5: rgba(0, 0, 0, 40%);--uikit-color-black-6: rgba(0, 0, 0, 25%);--uikit-color-black-7: rgba(0, 0, 0, 12%);--uikit-color-black-8: rgba(0, 0, 0, 6%);--uikit-color-white-1: rgba(255, 255, 255, 100%);--uikit-color-white-2: rgba(255, 255, 255, 93%);--uikit-color-white-3: rgba(255, 255, 255, 75%);--uikit-color-white-4: rgba(255, 255, 255, 55%);--uikit-color-white-5: rgba(255, 255, 255, 42%);--uikit-color-white-6: rgba(255, 255, 255, 30%);--uikit-color-white-7: rgba(255, 255, 255, 14%);--uikit-color-gray-1: #131417;--uikit-color-gray-2: #1F2024;--uikit-color-gray-3: #2B2C30;--uikit-color-gray-4: #3A3C42;--uikit-color-gray-5: #48494F;--uikit-color-gray-6: #54565C;--uikit-color-gray-7: #676A70;--uikit-color-green-1: #1A2620;--uikit-color-green-2: #22352C;--uikit-color-green-3: #2F4F3F;--uikit-color-green-4: #377355;--uikit-color-green-5: #368F65;--uikit-color-green-6: #38A673;--uikit-color-green-7: #62B58B;--uikit-color-green-8: #8BC7A9;--uikit-color-green-9: #A9D4BD;--uikit-color-green-10: #C8E5D5;--uikit-color-red-1: #2B1C1F;--uikit-color-red-2: #422324;--uikit-color-red-3: #613234;--uikit-color-red-4: #8A4242;--uikit-color-red-5: #C2544E;--uikit-color-red-6: #E6594C;--uikit-color-red-7: #E57A6E;--uikit-color-red-8: #F3A599;--uikit-color-red-9: #FACBC3;--uikit-color-red-10: #FAE4DE;--uikit-color-orange-1: #211A19;--uikit-color-orange-2: #35231A;--uikit-color-orange-3: #462E1F;--uikit-color-orange-4: #653C21;--uikit-color-orange-5: #96562A;--uikit-color-orange-6: #E37F32;--uikit-color-orange-7: #E39552;--uikit-color-orange-8: #EEAD72;--uikit-color-orange-9: #F7CFA4;--uikit-color-orange-10: #F9E9D1;--uikit-color-transparent: rgba(255, 255, 255, 0%);--text-color-primary: var(--uikit-color-white-2);--text-color-secondary: var(--uikit-color-white-4);--text-color-tertiary: var(--uikit-color-white-6);--text-color-disabled: var(--uikit-color-white-7);--text-color-button: var(--uikit-color-white-1);--text-color-button-disabled: var(--uikit-color-white-5);--text-color-link: var(--uikit-color-theme-6);--text-color-link-hover: var(--uikit-color-theme-5);--text-color-link-disabled: var(--uikit-color-theme-2);--text-color-link-active: var(--uikit-color-theme-7);--text-color-anti-primary: var(--uikit-color-black-2);--text-color-anti-secondary: var(--uikit-color-black-4);--text-color-warning: var(--uikit-color-orange-6);--text-color-success: var(--uikit-color-green-6);--text-color-error: var(--uikit-color-red-6);--bg-color-topbar: var(--uikit-color-gray-1);--bg-color-operate: var(--uikit-color-gray-2);--bg-color-dialog: var(--uikit-color-gray-2);--bg-color-dialog-module: var(--uikit-color-gray-3);--bg-color-entrycard: var(--uikit-color-gray-3);--bg-color-function: var(--uikit-color-gray-4);--bg-color-bottombar: var(--uikit-color-gray-3);--bg-color-input: var(--uikit-color-gray-3);--bg-color-bubble-reciprocal: var(--uikit-color-gray-3);--bg-color-bubble-own: var(--uikit-color-theme-7);--bg-color-default: var(--uikit-color-gray-1);--bg-color-tag-mask: var(--uikit-color-black-4);--bg-color-element-mask: var(--uikit-color-black-6);--bg-color-mask: var(--uikit-color-black-4);--bg-color-mask-disappeared: var(--uikit-color-black-8);--bg-color-mask-begin: var(--uikit-color-black-2);--stroke-color-primary: var(--uikit-color-gray-4);--stroke-color-secondary: var(--uikit-color-gray-3);--stroke-color-module: var(--uikit-color-gray-5);--shadow-color: var(--uikit-color-black-8);--list-color-default: var(--uikit-color-gray-2);--list-color-hover: var(--uikit-color-gray-3);--list-color-focused: var(--uikit-color-theme-2);--button-color-primary-default: var(--uikit-color-theme-6);--button-color-primary-hover: var(--uikit-color-theme-5);--button-color-primary-active: var(--uikit-color-theme-7);--button-color-primary-disabled: var(--uikit-color-theme-2);--button-color-secondary-default: var(--uikit-color-gray-4);--button-color-secondary-hover: var(--uikit-color-gray-3);--button-color-secondary-active: var(--uikit-color-gray-5);--button-color-secondary-disabled: var(--uikit-color-gray-3);--button-color-accept: var(--uikit-color-green-6);--button-color-hangup: var(--uikit-color-red-6);--button-color-on: var(--uikit-color-white-1);--button-color-off: var(--uikit-color-black-5);--dropdown-color-default: var(--uikit-color-gray-3);--dropdown-color-hover: var(--uikit-color-gray-4);--dropdown-color-active: var(--uikit-color-gray-2);--scroll-bar-color-default: var(--uikit-color-white-7);--scroll-bar-color-hover: var(--uikit-color-white-6);--floating-color-default: var(--uikit-color-gray-3);--floating-color-operate: var(--uikit-color-gray-4);--checkbox-color-selected: var(--uikit-color-theme-5);--toast-color-warning: var(--uikit-color-orange-2);--toast-color-success: var(--uikit-color-green-2);--toast-color-error: var(--uikit-color-red-2);--toast-color-default: var(--uikit-color-theme-2);--switch-color-off: var(--uikit-color-gray-4);--switch-color-on: var(--uikit-color-theme-5);--switch-color-button: var(--uikit-color-white-1);--slider-color-filled: var(--uikit-color-theme-5);--slider-color-empty: var(--uikit-color-gray-5);--slider-color-button: var(--uikit-color-white-1);--tab-color-selected: var(--uikit-color-gray-5);--tab-color-unselected: var(--uikit-color-gray-4);--tab-color-option: var(--uikit-color-gray-4)}:root[tui-theme-mode=light],.tui-theme-light{--uikit-color-theme-1: #EBF3FF;--uikit-color-theme-2: #CCE2FF;--uikit-color-theme-3: #ADCFFF;--uikit-color-theme-4: #7AAFFF;--uikit-color-theme-5: #4588F5;--uikit-color-theme-6: #1C66E5;--uikit-color-theme-7: #0D49BF;--uikit-color-theme-8: #033099;--uikit-color-theme-9: #001F73;--uikit-color-theme-10: #00124D;--uikit-color-black-1: rgba(0, 0, 0, 100%);--uikit-color-black-2: rgba(0, 0, 0, 90%);--uikit-color-black-3: rgba(0, 0, 0, 72%);--uikit-color-black-4: rgba(0, 0, 0, 55%);--uikit-color-black-5: rgba(0, 0, 0, 40%);--uikit-color-black-6: rgba(0, 0, 0, 25%);--uikit-color-black-7: rgba(0, 0, 0, 12%);--uikit-color-black-8: rgba(0, 0, 0, 6%);--uikit-color-white-1: rgba(255, 255, 255, 100%);--uikit-color-white-2: rgba(255, 255, 255, 93%);--uikit-color-white-3: rgba(255, 255, 255, 75%);--uikit-color-white-4: rgba(255, 255, 255, 55%);--uikit-color-white-5: rgba(255, 255, 255, 42%);--uikit-color-white-6: rgba(255, 255, 255, 30%);--uikit-color-white-7: rgba(255, 255, 255, 14%);--uikit-color-gray-1: #F9FAFC;--uikit-color-gray-2: #F0F2F7;--uikit-color-gray-3: #E6E9F0;--uikit-color-gray-4: #D1D4DE;--uikit-color-gray-5: #C0C3CC;--uikit-color-gray-6: #B3B6BE;--uikit-color-gray-7: #A5A9B0;--uikit-color-green-1: #DCFAE9;--uikit-color-green-2: #B6F0D1;--uikit-color-green-3: #84E3B5;--uikit-color-green-4: #5AD69E;--uikit-color-green-5: #3CC98C;--uikit-color-green-6: #0ABF77;--uikit-color-green-7: #09A768;--uikit-color-green-8: #078F59;--uikit-color-green-9: #067049;--uikit-color-green-10: #044D37;--uikit-color-red-1: #FFE7E6;--uikit-color-red-2: #FCC9C7;--uikit-color-red-3: #FAAEAC;--uikit-color-red-4: #F58989;--uikit-color-red-5: #E86666;--uikit-color-red-6: #E54545;--uikit-color-red-7: #C93439;--uikit-color-red-8: #AD2934;--uikit-color-red-9: #8F222D;--uikit-color-red-10: #6B1A27;--uikit-color-orange-1: #FFEEDB;--uikit-color-orange-2: #FFD6B2;--uikit-color-orange-3: #FFBE85;--uikit-color-orange-4: #FFA455;--uikit-color-orange-5: #FF8B2B;--uikit-color-orange-6: #FF7200;--uikit-color-orange-7: #E05D00;--uikit-color-orange-8: #BF4900;--uikit-color-orange-9: #8F370B;--uikit-color-orange-10: #662200;--uikit-color-transparent: rgba(255, 255, 255, 0%);--text-color-primary: var(--uikit-color-black-2);--text-color-secondary: var(--uikit-color-black-4);--text-color-tertiary: var(--uikit-color-black-5);--text-color-disabled: var(--uikit-color-black-6);--text-color-button: var(--uikit-color-white-1);--text-color-button-disabled: var(--uikit-color-white-1);--text-color-link: var(--uikit-color-theme-6);--text-color-link-hover: var(--uikit-color-theme-5);--text-color-link-disabled: var(--uikit-color-theme-2);--text-color-link-active: var(--uikit-color-theme-7);--text-color-anti-primary: var(--uikit-color-black-2);--text-color-anti-secondary: var(--uikit-color-black-4);--text-color-warning: var(--uikit-color-orange-6);--text-color-success: var(--uikit-color-green-6);--text-color-error: var(--uikit-color-red-6);--bg-color-topbar: var(--uikit-color-gray-1);--bg-color-operate: var(--uikit-color-white-1);--bg-color-dialog: var(--uikit-color-white-1);--bg-color-dialog-module: var(--uikit-color-gray-2);--bg-color-entrycard: var(--uikit-color-gray-2);--bg-color-function: var(--uikit-color-gray-2);--bg-color-bottombar: var(--uikit-color-white-1);--bg-color-input: var(--uikit-color-gray-2);--bg-color-bubble-reciprocal: var(--uikit-color-gray-2);--bg-color-bubble-own: var(--uikit-color-theme-2);--bg-color-default: var(--uikit-color-gray-2);--bg-color-tag-mask: var(--uikit-color-white-4);--bg-color-element-mask: var(--uikit-color-black-6);--bg-color-mask: var(--uikit-color-black-4);--bg-color-mask-disappeared: var(--uikit-color-white-7);--bg-color-mask-begin: var(--uikit-color-white-1);--stroke-color-primary: var(--uikit-color-gray-3);--stroke-color-secondary: var(--uikit-color-gray-2);--stroke-color-module: var(--uikit-color-gray-3);--shadow-color: var(--uikit-color-black-8);--list-color-default: var(--uikit-color-white-1);--list-color-hover: var(--uikit-color-gray-1);--list-color-focused: var(--uikit-color-theme-1);--button-color-primary-default: var(--uikit-color-theme-6);--button-color-primary-hover: var(--uikit-color-theme-5);--button-color-primary-active: var(--uikit-color-theme-7);--button-color-primary-disabled: var(--uikit-color-theme-2);--button-color-secondary-default: var(--uikit-color-gray-2);--button-color-secondary-hover: var(--uikit-color-gray-1);--button-color-secondary-active: var(--uikit-color-gray-3);--button-color-secondary-disabled: var(--uikit-color-gray-1);--button-color-accept: var(--uikit-color-green-6);--button-color-hangup: var(--uikit-color-red-6);--button-color-on: var(--uikit-color-white-1);--button-color-off: var(--uikit-color-black-5);--dropdown-color-default: var(--uikit-color-white-1);--dropdown-color-hover: var(--uikit-color-gray-1);--dropdown-color-active: var(--uikit-color-theme-2);--scroll-bar-color-default: var(--uikit-color-black-7);--scroll-bar-color-hover: var(--uikit-color-black-6);--floating-color-default: var(--uikit-color-white-1);--floating-color-operate: var(--uikit-color-gray-2);--checkbox-color-selected: var(--uikit-color-theme-6);--toast-color-warning: var(--uikit-color-orange-1);--toast-color-success: var(--uikit-color-green-1);--toast-color-error: var(--uikit-color-red-1);--toast-color-default: var(--uikit-color-theme-1);--switch-color-off: var(--uikit-color-gray-4);--switch-color-on: var(--uikit-color-theme-6);--switch-color-button: var(--uikit-color-white-1);--slider-color-filled: var(--uikit-color-theme-6);--slider-color-empty: var(--uikit-color-gray-3);--slider-color-button: var(--uikit-color-white-1);--tab-color-selected: var(--uikit-color-theme-2);--tab-color-unselected: var(--uikit-color-gray-2);--tab-color-option: var(--uikit-color-gray-3)}.uikit-theme-context[data-v-89cdd6e7]{width:100%;height:100%}
@@ -0,0 +1,168 @@
1
+ :root[tui-theme-mode="dark"],
2
+ .tui-theme-dark {
3
+ --uikit-color-theme-1: #1C2333;
4
+ --uikit-color-theme-2: #243047;
5
+ --uikit-color-theme-3: #2F4875;
6
+ --uikit-color-theme-4: #305BA6;
7
+ --uikit-color-theme-5: #2B6AD6;
8
+ --uikit-color-theme-6: #4086FF;
9
+ --uikit-color-theme-7: #5C9DFF;
10
+ --uikit-color-theme-8: #78B0FF;
11
+ --uikit-color-theme-9: #9CC7FF;
12
+ --uikit-color-theme-10: #C2DEFF;
13
+
14
+ --uikit-color-black-1: rgba(0, 0, 0, 100%);
15
+ --uikit-color-black-2: rgba(0, 0, 0, 90%);
16
+ --uikit-color-black-3: rgba(0, 0, 0, 72%);
17
+ --uikit-color-black-4: rgba(0, 0, 0, 55%);
18
+ --uikit-color-black-5: rgba(0, 0, 0, 40%);
19
+ --uikit-color-black-6: rgba(0, 0, 0, 25%);
20
+ --uikit-color-black-7: rgba(0, 0, 0, 12%);
21
+ --uikit-color-black-8: rgba(0, 0, 0, 6%);
22
+ --uikit-color-white-1: rgba(255, 255, 255, 100%);
23
+ --uikit-color-white-2: rgba(255, 255, 255, 93%);
24
+ --uikit-color-white-3: rgba(255, 255, 255, 75%);
25
+ --uikit-color-white-4: rgba(255, 255, 255, 55%);
26
+ --uikit-color-white-5: rgba(255, 255, 255, 42%);
27
+ --uikit-color-white-6: rgba(255, 255, 255, 30%);
28
+ --uikit-color-white-7: rgba(255, 255, 255, 14%);
29
+ --uikit-color-gray-1: #131417;
30
+ --uikit-color-gray-2: #1F2024;
31
+ --uikit-color-gray-3: #2B2C30;
32
+ --uikit-color-gray-4: #3A3C42;
33
+ --uikit-color-gray-5: #48494F;
34
+ --uikit-color-gray-6: #54565C;
35
+ --uikit-color-gray-7: #676A70;
36
+ --uikit-color-green-1: #1A2620;
37
+ --uikit-color-green-2: #22352C;
38
+ --uikit-color-green-3: #2F4F3F;
39
+ --uikit-color-green-4: #377355;
40
+ --uikit-color-green-5: #368F65;
41
+ --uikit-color-green-6: #38A673;
42
+ --uikit-color-green-7: #62B58B;
43
+ --uikit-color-green-8: #8BC7A9;
44
+ --uikit-color-green-9: #A9D4BD;
45
+ --uikit-color-green-10: #C8E5D5;
46
+ --uikit-color-red-1: #2B1C1F;
47
+ --uikit-color-red-2: #422324;
48
+ --uikit-color-red-3: #613234;
49
+ --uikit-color-red-4: #8A4242;
50
+ --uikit-color-red-5: #C2544E;
51
+ --uikit-color-red-6: #E6594C;
52
+ --uikit-color-red-7: #E57A6E;
53
+ --uikit-color-red-8: #F3A599;
54
+ --uikit-color-red-9: #FACBC3;
55
+ --uikit-color-red-10: #FAE4DE;
56
+ --uikit-color-orange-1: #211A19;
57
+ --uikit-color-orange-2: #35231A;
58
+ --uikit-color-orange-3: #462E1F;
59
+ --uikit-color-orange-4: #653C21;
60
+ --uikit-color-orange-5: #96562A;
61
+ --uikit-color-orange-6: #E37F32;
62
+ --uikit-color-orange-7: #E39552;
63
+ --uikit-color-orange-8: #EEAD72;
64
+ --uikit-color-orange-9: #F7CFA4;
65
+ --uikit-color-orange-10: #F9E9D1;
66
+ --uikit-color-transparent: rgba(255, 255, 255, 0%);
67
+
68
+ // text
69
+ --text-color-primary: var(--uikit-color-white-2);
70
+ --text-color-secondary: var(--uikit-color-white-4);
71
+ --text-color-tertiary: var(--uikit-color-white-6);
72
+ --text-color-disabled: var(--uikit-color-white-7);
73
+ --text-color-button: var(--uikit-color-white-1);
74
+ --text-color-button-disabled: var(--uikit-color-white-5);
75
+ --text-color-link: var(--uikit-color-theme-6);
76
+ --text-color-link-hover: var(--uikit-color-theme-5);
77
+ --text-color-link-disabled: var(--uikit-color-theme-2);
78
+ --text-color-link-active: var(--uikit-color-theme-7);
79
+ --text-color-anti-primary: var(--uikit-color-black-2);
80
+ --text-color-anti-secondary: var(--uikit-color-black-4);
81
+ --text-color-warning: var(--uikit-color-orange-6);
82
+ --text-color-success: var(--uikit-color-green-6);
83
+ --text-color-error: var(--uikit-color-red-6);
84
+
85
+ // background
86
+ --bg-color-topbar: var(--uikit-color-gray-1);
87
+ --bg-color-operate: var(--uikit-color-gray-2);
88
+ --bg-color-dialog: var(--uikit-color-gray-2);
89
+ --bg-color-dialog-module: var(--uikit-color-gray-3);
90
+ --bg-color-entrycard: var(--uikit-color-gray-3);
91
+ --bg-color-function: var(--uikit-color-gray-4);
92
+ --bg-color-bottombar: var(--uikit-color-gray-3);
93
+ --bg-color-input: var(--uikit-color-gray-3);
94
+ --bg-color-bubble-reciprocal: var(--uikit-color-gray-3);
95
+ --bg-color-bubble-own: var(--uikit-color-theme-7);
96
+ --bg-color-default: var(--uikit-color-gray-1);
97
+ --bg-color-tag-mask: var(--uikit-color-black-4);
98
+ --bg-color-element-mask: var(--uikit-color-black-6);
99
+ --bg-color-mask: var(--uikit-color-black-4);
100
+ --bg-color-mask-disappeared: var(--uikit-color-black-8);
101
+ --bg-color-mask-begin: var(--uikit-color-black-2);
102
+
103
+ // border
104
+ --stroke-color-primary: var(--uikit-color-gray-4);
105
+ --stroke-color-secondary: var(--uikit-color-gray-3);
106
+ --stroke-color-module: var(--uikit-color-gray-5);
107
+
108
+ // shadow
109
+ --shadow-color: var(--uikit-color-black-8);
110
+
111
+ // status
112
+ --list-color-default: var(--uikit-color-gray-2);
113
+ --list-color-hover: var(--uikit-color-gray-3);
114
+ --list-color-focused: var(--uikit-color-theme-2);
115
+
116
+ // button
117
+ --button-color-primary-default: var(--uikit-color-theme-6);
118
+ --button-color-primary-hover: var(--uikit-color-theme-5);
119
+ --button-color-primary-active: var(--uikit-color-theme-7);
120
+ --button-color-primary-disabled: var(--uikit-color-theme-2);
121
+ --button-color-secondary-default: var(--uikit-color-gray-4);
122
+ --button-color-secondary-hover: var(--uikit-color-gray-3);
123
+ --button-color-secondary-active: var(--uikit-color-gray-5);
124
+ --button-color-secondary-disabled: var(--uikit-color-gray-3);
125
+ --button-color-accept: var(--uikit-color-green-6);
126
+ --button-color-hangup: var(--uikit-color-red-6);
127
+ --button-color-on: var(--uikit-color-white-1);
128
+ --button-color-off: var(--uikit-color-black-5);
129
+
130
+ // dropdown
131
+ --dropdown-color-default: var(--uikit-color-gray-3);
132
+ --dropdown-color-hover: var(--uikit-color-gray-4);
133
+ --dropdown-color-active: var(--uikit-color-gray-2);
134
+
135
+ // scroll-bar
136
+ --scroll-bar-color-default: var(--uikit-color-white-7);
137
+ --scroll-bar-color-hover: var(--uikit-color-white-6);
138
+
139
+ // floating
140
+ --floating-color-default: var(--uikit-color-gray-3);
141
+ --floating-color-operate: var(--uikit-color-gray-4);
142
+
143
+ // checkbox
144
+ --checkbox-color-selected: var(--uikit-color-theme-5);
145
+
146
+ // toast
147
+ --toast-color-warning: var(--uikit-color-orange-2);
148
+ --toast-color-success: var(--uikit-color-green-2);
149
+ --toast-color-error: var(--uikit-color-red-2);
150
+ --toast-color-default: var(--uikit-color-theme-2);
151
+
152
+ // switch
153
+ --switch-color-off: var(--uikit-color-gray-4);
154
+ --switch-color-on: var(--uikit-color-theme-5);
155
+ --switch-color-button: var(--uikit-color-white-1);
156
+
157
+ // slider
158
+ --slider-color-filled: var(--uikit-color-theme-5);
159
+ --slider-color-empty: var(--uikit-color-gray-5);
160
+ --slider-color-button: var(--uikit-color-white-1);
161
+
162
+ // tab
163
+ --tab-color-selected: var(--uikit-color-gray-5);
164
+ --tab-color-unselected: var(--uikit-color-gray-4);
165
+ --tab-color-option: var(--uikit-color-gray-4);
166
+
167
+ // todo-tag
168
+ }
@@ -0,0 +1,168 @@
1
+ :root[tui-theme-mode="light"],
2
+ .tui-theme-light {
3
+ --uikit-color-theme-1: #EBF3FF;
4
+ --uikit-color-theme-2: #CCE2FF;
5
+ --uikit-color-theme-3: #ADCFFF;
6
+ --uikit-color-theme-4: #7AAFFF;
7
+ --uikit-color-theme-5: #4588F5;
8
+ --uikit-color-theme-6: #1C66E5;
9
+ --uikit-color-theme-7: #0D49BF;
10
+ --uikit-color-theme-8: #033099;
11
+ --uikit-color-theme-9: #001F73;
12
+ --uikit-color-theme-10: #00124D;
13
+
14
+ --uikit-color-black-1: rgba(0, 0, 0, 100%);
15
+ --uikit-color-black-2: rgba(0, 0, 0, 90%);
16
+ --uikit-color-black-3: rgba(0, 0, 0, 72%);
17
+ --uikit-color-black-4: rgba(0, 0, 0, 55%);
18
+ --uikit-color-black-5: rgba(0, 0, 0, 40%);
19
+ --uikit-color-black-6: rgba(0, 0, 0, 25%);
20
+ --uikit-color-black-7: rgba(0, 0, 0, 12%);
21
+ --uikit-color-black-8: rgba(0, 0, 0, 6%);
22
+ --uikit-color-white-1: rgba(255, 255, 255, 100%);
23
+ --uikit-color-white-2: rgba(255, 255, 255, 93%);
24
+ --uikit-color-white-3: rgba(255, 255, 255, 75%);
25
+ --uikit-color-white-4: rgba(255, 255, 255, 55%);
26
+ --uikit-color-white-5: rgba(255, 255, 255, 42%);
27
+ --uikit-color-white-6: rgba(255, 255, 255, 30%);
28
+ --uikit-color-white-7: rgba(255, 255, 255, 14%);
29
+ --uikit-color-gray-1: #F9FAFC;
30
+ --uikit-color-gray-2: #F0F2F7;
31
+ --uikit-color-gray-3: #E6E9F0;
32
+ --uikit-color-gray-4: #D1D4DE;
33
+ --uikit-color-gray-5: #C0C3CC;
34
+ --uikit-color-gray-6: #B3B6BE;
35
+ --uikit-color-gray-7: #A5A9B0;
36
+ --uikit-color-green-1: #DCFAE9;
37
+ --uikit-color-green-2: #B6F0D1;
38
+ --uikit-color-green-3: #84E3B5;
39
+ --uikit-color-green-4: #5AD69E;
40
+ --uikit-color-green-5: #3CC98C;
41
+ --uikit-color-green-6: #0ABF77;
42
+ --uikit-color-green-7: #09A768;
43
+ --uikit-color-green-8: #078F59;
44
+ --uikit-color-green-9: #067049;
45
+ --uikit-color-green-10: #044D37;
46
+ --uikit-color-red-1: #FFE7E6;
47
+ --uikit-color-red-2: #FCC9C7;
48
+ --uikit-color-red-3: #FAAEAC;
49
+ --uikit-color-red-4: #F58989;
50
+ --uikit-color-red-5: #E86666;
51
+ --uikit-color-red-6: #E54545;
52
+ --uikit-color-red-7: #C93439;
53
+ --uikit-color-red-8: #AD2934;
54
+ --uikit-color-red-9: #8F222D;
55
+ --uikit-color-red-10: #6B1A27;
56
+ --uikit-color-orange-1: #FFEEDB;
57
+ --uikit-color-orange-2: #FFD6B2;
58
+ --uikit-color-orange-3: #FFBE85;
59
+ --uikit-color-orange-4: #FFA455;
60
+ --uikit-color-orange-5: #FF8B2B;
61
+ --uikit-color-orange-6: #FF7200;
62
+ --uikit-color-orange-7: #E05D00;
63
+ --uikit-color-orange-8: #BF4900;
64
+ --uikit-color-orange-9: #8F370B;
65
+ --uikit-color-orange-10: #662200;
66
+ --uikit-color-transparent: rgba(255, 255, 255, 0%);
67
+
68
+ // text
69
+ --text-color-primary: var(--uikit-color-black-2);
70
+ --text-color-secondary: var(--uikit-color-black-4);
71
+ --text-color-tertiary: var(--uikit-color-black-5);
72
+ --text-color-disabled: var(--uikit-color-black-6);
73
+ --text-color-button: var(--uikit-color-white-1);
74
+ --text-color-button-disabled: var(--uikit-color-white-1);
75
+ --text-color-link: var(--uikit-color-theme-6);
76
+ --text-color-link-hover: var(--uikit-color-theme-5);
77
+ --text-color-link-disabled: var(--uikit-color-theme-2);
78
+ --text-color-link-active: var(--uikit-color-theme-7);
79
+ --text-color-anti-primary: var(--uikit-color-black-2);
80
+ --text-color-anti-secondary: var(--uikit-color-black-4);
81
+ --text-color-warning: var(--uikit-color-orange-6);
82
+ --text-color-success: var(--uikit-color-green-6);
83
+ --text-color-error: var(--uikit-color-red-6);
84
+
85
+ // background
86
+ --bg-color-topbar: var(--uikit-color-gray-1);
87
+ --bg-color-operate: var(--uikit-color-white-1);
88
+ --bg-color-dialog: var(--uikit-color-white-1);
89
+ --bg-color-dialog-module: var(--uikit-color-gray-2);
90
+ --bg-color-entrycard: var(--uikit-color-gray-2);
91
+ --bg-color-function: var(--uikit-color-gray-2);
92
+ --bg-color-bottombar: var(--uikit-color-white-1);
93
+ --bg-color-input: var(--uikit-color-gray-2);
94
+ --bg-color-bubble-reciprocal: var(--uikit-color-gray-2);
95
+ --bg-color-bubble-own: var(--uikit-color-theme-2);
96
+ --bg-color-default: var(--uikit-color-gray-2);
97
+ --bg-color-tag-mask: var(--uikit-color-white-4);
98
+ --bg-color-element-mask: var(--uikit-color-black-6);
99
+ --bg-color-mask: var(--uikit-color-black-4);
100
+ --bg-color-mask-disappeared: var(--uikit-color-white-7);
101
+ --bg-color-mask-begin: var(--uikit-color-white-1);
102
+
103
+ // border
104
+ --stroke-color-primary: var(--uikit-color-gray-3);
105
+ --stroke-color-secondary: var(--uikit-color-gray-2);
106
+ --stroke-color-module: var(--uikit-color-gray-3);
107
+
108
+ // shadow
109
+ --shadow-color: var(--uikit-color-black-8);
110
+
111
+ // status
112
+ --list-color-default: var(--uikit-color-white-1);
113
+ --list-color-hover: var(--uikit-color-gray-1);
114
+ --list-color-focused: var(--uikit-color-theme-1);
115
+
116
+ // button
117
+ --button-color-primary-default: var(--uikit-color-theme-6);
118
+ --button-color-primary-hover: var(--uikit-color-theme-5);
119
+ --button-color-primary-active: var(--uikit-color-theme-7);
120
+ --button-color-primary-disabled: var(--uikit-color-theme-2);
121
+ --button-color-secondary-default: var(--uikit-color-gray-2);
122
+ --button-color-secondary-hover: var(--uikit-color-gray-1);
123
+ --button-color-secondary-active: var(--uikit-color-gray-3);
124
+ --button-color-secondary-disabled: var(--uikit-color-gray-1);
125
+ --button-color-accept: var(--uikit-color-green-6);
126
+ --button-color-hangup: var(--uikit-color-red-6);
127
+ --button-color-on: var(--uikit-color-white-1);
128
+ --button-color-off: var(--uikit-color-black-5);
129
+
130
+ // dropdown
131
+ --dropdown-color-default: var(--uikit-color-white-1);
132
+ --dropdown-color-hover: var(--uikit-color-gray-1);
133
+ --dropdown-color-active: var(--uikit-color-theme-2);
134
+
135
+ // scroll-bar
136
+ --scroll-bar-color-default: var(--uikit-color-black-7);
137
+ --scroll-bar-color-hover: var(--uikit-color-black-6);
138
+
139
+ // floating
140
+ --floating-color-default: var(--uikit-color-white-1);
141
+ --floating-color-operate: var(--uikit-color-gray-2);
142
+
143
+ // checkbox
144
+ --checkbox-color-selected: var(--uikit-color-theme-6);
145
+
146
+ // toast
147
+ --toast-color-warning: var(--uikit-color-orange-1);
148
+ --toast-color-success: var(--uikit-color-green-1);
149
+ --toast-color-error: var(--uikit-color-red-1);
150
+ --toast-color-default: var(--uikit-color-theme-1);
151
+
152
+ // switch
153
+ --switch-color-off: var(--uikit-color-gray-4);
154
+ --switch-color-on: var(--uikit-color-theme-6);
155
+ --switch-color-button: var(--uikit-color-white-1);
156
+
157
+ // slider
158
+ --slider-color-filled: var(--uikit-color-theme-6);
159
+ --slider-color-empty: var(--uikit-color-gray-3);
160
+ --slider-color-button: var(--uikit-color-white-1);
161
+
162
+ // tab
163
+ --tab-color-selected: var(--uikit-color-theme-2);
164
+ --tab-color-unselected: var(--uikit-color-gray-2);
165
+ --tab-color-option: var(--uikit-color-gray-3);
166
+
167
+ // todo-tag
168
+ }
@@ -0,0 +1,3 @@
1
+
2
+ @import './themes/dark';
3
+ @import './themes/light';
@@ -0,0 +1 @@
1
+
package/package.json ADDED
@@ -0,0 +1,26 @@
1
+ {
2
+ "name": "@jasperdai/uikit-base-component-vue2",
3
+ "version": "0.3.0",
4
+ "type": "module",
5
+ "main": "./dist/index.js",
6
+ "scripts": {
7
+ "dev": "vite build --watch",
8
+ "build": "vite build",
9
+ "publish": "npm publish --access public"
10
+ },
11
+ "peerDependencies": {
12
+ "vue": "^2.7.16"
13
+ },
14
+ "devDependencies": {
15
+ "@originjs/vite-plugin-commonjs": "^1.0.3",
16
+ "sass": "^1.72.0",
17
+ "typescript": "^5.5.4",
18
+ "vite": "^5.2.0",
19
+ "vite-plugin-dts": "^3.7.3",
20
+ "vue-tsc": "^2.0.6",
21
+ "@vitejs/plugin-vue2": "^2.3.1",
22
+ "glob": "^11.0.0",
23
+ "vite-plugin-lib-inject-css": "^2.1.1",
24
+ "vite-plugin-static-copy": "^2.2.0"
25
+ }
26
+ }
package/tsconfig.json ADDED
@@ -0,0 +1,30 @@
1
+ {
2
+ "compilerOptions": {
3
+ "target": "ES2020",
4
+ "useDefineForClassFields": true,
5
+ "module": "ESNext",
6
+ "lib": ["ES2020", "DOM", "DOM.Iterable"],
7
+ "skipLibCheck": true,
8
+
9
+ /* Bundler mode */
10
+ "moduleResolution": "bundler",
11
+ "allowImportingTsExtensions": true,
12
+ "resolveJsonModule": true,
13
+ "isolatedModules": true,
14
+ "noEmit": true,
15
+ "jsx": "preserve",
16
+
17
+ /* Linting */
18
+ "strict": true,
19
+ "noUnusedLocals": true,
20
+ "noUnusedParameters": true,
21
+ "noFallthroughCasesInSwitch": true
22
+ },
23
+ "include": [
24
+ "src/**/*.ts",
25
+ "src/**/*.tsx",
26
+ "src/**/*.vue",
27
+ "vue-shims.d.ts"
28
+ ],
29
+ "references": [{ "path": "./tsconfig.node.json" }]
30
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "compilerOptions": {
3
+ "composite": true,
4
+ "skipLibCheck": true,
5
+ "module": "ESNext",
6
+ "moduleResolution": "bundler",
7
+ "allowSyntheticDefaultImports": true,
8
+ "strict": true
9
+ },
10
+ "include": ["vite.config.ts"]
11
+ }
package/vite.config.ts ADDED
@@ -0,0 +1,68 @@
1
+ import { extname, relative, resolve } from 'path';
2
+ import { fileURLToPath } from 'node:url';
3
+ import { glob } from 'glob';
4
+ import { defineConfig } from 'vite';
5
+ import dts from 'vite-plugin-dts';
6
+ import vue2 from '@vitejs/plugin-vue2';
7
+ import { libInjectCss } from 'vite-plugin-lib-inject-css';
8
+ import { viteStaticCopy } from 'vite-plugin-static-copy';
9
+ import { peerDependencies } from './package.json';
10
+
11
+ export default defineConfig({
12
+ resolve: {
13
+ alias: {
14
+ '@': resolve(__dirname, '/src'),
15
+ },
16
+ },
17
+ build: {
18
+ lib: {
19
+ entry: resolve(__dirname, 'src/index.ts'),
20
+ formats: ['es'],
21
+ },
22
+ rollupOptions: {
23
+ external: [
24
+ ...Object.keys(peerDependencies),
25
+ ],
26
+ input: getInputEntries(),
27
+ output: {
28
+ assetFileNames: 'styles/index[extname]',
29
+ entryFileNames: '[name].js',
30
+ },
31
+ },
32
+ },
33
+ plugins: [
34
+ vue2(),
35
+ libInjectCss(),
36
+ dts({
37
+ include: ['src/**/*.ts', 'src/**/*.vue'],
38
+ }),
39
+ viteStaticCopy({
40
+ targets: [
41
+ {
42
+ src: './src/providers/UIKitProvider/styles',
43
+ dest: 'styles',
44
+ },
45
+ ],
46
+ }),
47
+ ],
48
+ css: {
49
+ preprocessorOptions: {
50
+ scss: {
51
+ api: 'modern-compiler',
52
+ },
53
+ },
54
+ },
55
+ });
56
+
57
+ function getInputEntries() {
58
+ const inputEntries = Object.fromEntries(
59
+ glob.sync('src/**/*.{ts,vue}', {}).map(file => [
60
+ relative(
61
+ 'src',
62
+ file.slice(0, file.length - extname(file).length),
63
+ ),
64
+ fileURLToPath(new URL(file, import.meta.url)),
65
+ ]),
66
+ );
67
+ return inputEntries;
68
+ }
package/vue-shims.d.ts ADDED
@@ -0,0 +1,4 @@
1
+ declare module "*.vue" {
2
+ import Vue from 'vue'
3
+ export default Vue
4
+ }