@jasperdai/uikit-base-component-uni 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.
Files changed (33) hide show
  1. package/README.md +34 -0
  2. package/dist/UIKitProvider.vue_vue_type_script_setup_true_lang-DrvJZLfH.js +22 -0
  3. package/dist/index.d.ts +3 -0
  4. package/dist/index.js +6 -0
  5. package/dist/providers/UIKitProvider/contexts/ThemeProvider/ThemeProvider.js +24 -0
  6. package/dist/providers/UIKitProvider/contexts/ThemeProvider/ThemeProvider.vue.d.ts +39 -0
  7. package/dist/providers/UIKitProvider/contexts/ThemeProvider/useThemeProvider.d.ts +5 -0
  8. package/dist/providers/UIKitProvider/contexts/ThemeProvider/useThemeProvider.js +18 -0
  9. package/dist/providers/UIKitProvider/contexts/UIKitProvider/UIKitProvider.js +4 -0
  10. package/dist/providers/UIKitProvider/contexts/UIKitProvider/UIKitProvider.vue.d.ts +38 -0
  11. package/dist/providers/UIKitProvider/contexts/UIKitProvider/useUIKitProvider.d.ts +5 -0
  12. package/dist/providers/UIKitProvider/contexts/UIKitProvider/useUIKitProvider.js +9 -0
  13. package/dist/providers/UIKitProvider/index.d.ts +4 -0
  14. package/dist/providers/UIKitProvider/index.js +6 -0
  15. package/dist/styles/index.css +1 -0
  16. package/dist/styles/styles/themes/dark.scss +167 -0
  17. package/dist/styles/styles/themes/light.scss +167 -0
  18. package/dist/styles/styles/variables.scss +3 -0
  19. package/dist/vite-env.d.js +1 -0
  20. package/package.json +29 -0
  21. package/src/index.ts +6 -0
  22. package/src/providers/UIKitProvider/contexts/ThemeProvider/ThemeProvider.vue +27 -0
  23. package/src/providers/UIKitProvider/contexts/ThemeProvider/useThemeProvider.ts +21 -0
  24. package/src/providers/UIKitProvider/contexts/UIKitProvider/UIKitProvider.vue +16 -0
  25. package/src/providers/UIKitProvider/contexts/UIKitProvider/useUIKitProvider.ts +9 -0
  26. package/src/providers/UIKitProvider/index.ts +7 -0
  27. package/src/providers/UIKitProvider/styles/themes/dark.scss +167 -0
  28. package/src/providers/UIKitProvider/styles/themes/light.scss +167 -0
  29. package/src/providers/UIKitProvider/styles/variables.scss +3 -0
  30. package/src/vite-env.d.ts +1 -0
  31. package/tsconfig.json +25 -0
  32. package/tsconfig.node.json +11 -0
  33. package/vite.config.ts +66 -0
package/README.md ADDED
@@ -0,0 +1,34 @@
1
+ # uni-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-uni';
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-uni';
30
+
31
+ const { theme, setTheme } = useUIKit();
32
+ </script>
33
+
34
+ ```
@@ -0,0 +1,22 @@
1
+ import { defineComponent as r, createBlock as m, openBlock as n, withCtx as p, renderSlot as i } from "vue";
2
+ import s from "./providers/UIKitProvider/contexts/ThemeProvider/ThemeProvider.js";
3
+ const l = /* @__PURE__ */ r({
4
+ __name: "UIKitProvider",
5
+ props: {
6
+ theme: { default: "light" }
7
+ },
8
+ setup(e) {
9
+ const t = e;
10
+ return (o, a) => (n(), m(s, {
11
+ theme: t.theme
12
+ }, {
13
+ default: p(() => [
14
+ i(o.$slots, "default")
15
+ ]),
16
+ _: 3
17
+ }, 8, ["theme"]));
18
+ }
19
+ });
20
+ export {
21
+ l as _
22
+ };
@@ -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 { _ as e } from "./UIKitProvider.vue_vue_type_script_setup_true_lang-DrvJZLfH.js";
2
+ import { useUIKit as t } from "./providers/UIKitProvider/contexts/UIKitProvider/useUIKitProvider.js";
3
+ export {
4
+ e as uikitProvider,
5
+ t as useUIKit
6
+ };
@@ -0,0 +1,24 @@
1
+ import { defineComponent as n, createElementBlock as c, openBlock as a, normalizeClass as m, unref as i, renderSlot as l } from "vue";
2
+ import { useTheme as p } from "./useThemeProvider.js";
3
+ const u = /* @__PURE__ */ n({
4
+ __name: "ThemeProvider",
5
+ props: {
6
+ theme: { default: "light" }
7
+ },
8
+ setup(e) {
9
+ const o = e, { setTheme: t, uikitThemeClass: r } = p();
10
+ return t(o.theme), (s, f) => (a(), c("div", {
11
+ class: m(["uikit-theme-context", i(r)])
12
+ }, [
13
+ l(s.$slots, "default", {}, void 0, !0)
14
+ ], 2));
15
+ }
16
+ }), d = (e, o) => {
17
+ const t = e.__vccOpts || e;
18
+ for (const [r, s] of o)
19
+ t[r] = s;
20
+ return t;
21
+ }, v = /* @__PURE__ */ d(u, [["__scopeId", "data-v-760f1a5e"]]);
22
+ export {
23
+ v as default
24
+ };
@@ -0,0 +1,39 @@
1
+
2
+ declare function __VLS_template(): {
3
+ default?(_: {}): any;
4
+ };
5
+ declare const __VLS_component: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
6
+ theme?: string;
7
+ }>, {
8
+ theme: string;
9
+ }>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
10
+ theme?: string;
11
+ }>, {
12
+ theme: string;
13
+ }>>> & Readonly<{}>, {
14
+ theme: string;
15
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
16
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
17
+ export default _default;
18
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
19
+ type __VLS_TypePropsToRuntimeProps<T> = {
20
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
21
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
22
+ } : {
23
+ type: import('vue').PropType<T[K]>;
24
+ required: true;
25
+ };
26
+ };
27
+ type __VLS_WithDefaults<P, D> = {
28
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
29
+ default: D[K];
30
+ }> : P[K];
31
+ };
32
+ type __VLS_Prettify<T> = {
33
+ [K in keyof T]: T[K];
34
+ } & {};
35
+ type __VLS_WithTemplateSlots<T, S> = T & {
36
+ new (): {
37
+ $slots: S;
38
+ };
39
+ };
@@ -0,0 +1,5 @@
1
+ export declare function useTheme(): {
2
+ theme: import('vue').Ref<string, string>;
3
+ setTheme: (newTheme: string) => void;
4
+ uikitThemeClass: import('vue').ComputedRef<string>;
5
+ };
@@ -0,0 +1,18 @@
1
+ import { ref as s, computed as u } from "vue";
2
+ const t = s(""), o = ["light", "dark"], i = u(() => `tui-theme-${t.value}`);
3
+ function m() {
4
+ function r(e) {
5
+ if (o.includes(e))
6
+ t.value = e;
7
+ else
8
+ throw new Error(`Theme "${e}" is not supported. Supported themes: [${o.join(", ")}]`);
9
+ }
10
+ return {
11
+ theme: t,
12
+ setTheme: r,
13
+ uikitThemeClass: i
14
+ };
15
+ }
16
+ export {
17
+ m as useTheme
18
+ };
@@ -0,0 +1,4 @@
1
+ import { _ as f } from "../../../../UIKitProvider.vue_vue_type_script_setup_true_lang-DrvJZLfH.js";
2
+ export {
3
+ f as default
4
+ };
@@ -0,0 +1,38 @@
1
+ declare function __VLS_template(): {
2
+ default?(_: {}): any;
3
+ };
4
+ declare const __VLS_component: import('vue').DefineComponent<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
5
+ theme?: string;
6
+ }>, {
7
+ theme: string;
8
+ }>>, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<import('vue').ExtractPropTypes<__VLS_WithDefaults<__VLS_TypePropsToRuntimeProps<{
9
+ theme?: string;
10
+ }>, {
11
+ theme: string;
12
+ }>>> & Readonly<{}>, {
13
+ theme: string;
14
+ }, {}, {}, {}, string, import('vue').ComponentProvideOptions, true, {}, any>;
15
+ declare const _default: __VLS_WithTemplateSlots<typeof __VLS_component, ReturnType<typeof __VLS_template>>;
16
+ export default _default;
17
+ type __VLS_NonUndefinedable<T> = T extends undefined ? never : T;
18
+ type __VLS_TypePropsToRuntimeProps<T> = {
19
+ [K in keyof T]-?: {} extends Pick<T, K> ? {
20
+ type: import('vue').PropType<__VLS_NonUndefinedable<T[K]>>;
21
+ } : {
22
+ type: import('vue').PropType<T[K]>;
23
+ required: true;
24
+ };
25
+ };
26
+ type __VLS_WithDefaults<P, D> = {
27
+ [K in keyof Pick<P, keyof P>]: K extends keyof D ? __VLS_Prettify<P[K] & {
28
+ default: D[K];
29
+ }> : P[K];
30
+ };
31
+ type __VLS_Prettify<T> = {
32
+ [K in keyof T]: T[K];
33
+ } & {};
34
+ type __VLS_WithTemplateSlots<T, S> = T & {
35
+ new (): {
36
+ $slots: S;
37
+ };
38
+ };
@@ -0,0 +1,5 @@
1
+ export declare function useUIKit(): {
2
+ theme: import('vue').Ref<string, string>;
3
+ setTheme: (newTheme: string) => void;
4
+ uikitThemeClass: import('vue').ComputedRef<string>;
5
+ };
@@ -0,0 +1,9 @@
1
+ import { useTheme as e } from "../ThemeProvider/useThemeProvider.js";
2
+ function n() {
3
+ return {
4
+ ...e()
5
+ };
6
+ }
7
+ export {
8
+ n as useUIKit
9
+ };
@@ -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 { _ as e } from "../../UIKitProvider.vue_vue_type_script_setup_true_lang-DrvJZLfH.js";
2
+ import { useUIKit as t } from "./contexts/UIKitProvider/useUIKitProvider.js";
3
+ export {
4
+ e as uikitProvider,
5
+ t as useUIKit
6
+ };
@@ -0,0 +1 @@
1
+ .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-active: var(--uikit-color-theme-7);--text-color-link-disabled: var(--uikit-color-theme-2);--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)}.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-active: var(--uikit-color-theme-7);--text-color-link-disabled: var(--uikit-color-theme-2);--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-760f1a5e]{width:100%;height:100%}
@@ -0,0 +1,167 @@
1
+ .tui-theme-dark {
2
+ --uikit-color-theme-1: #1C2333;
3
+ --uikit-color-theme-2: #243047;
4
+ --uikit-color-theme-3: #2F4875;
5
+ --uikit-color-theme-4: #305BA6;
6
+ --uikit-color-theme-5: #2B6AD6;
7
+ --uikit-color-theme-6: #4086FF;
8
+ --uikit-color-theme-7: #5C9DFF;
9
+ --uikit-color-theme-8: #78B0FF;
10
+ --uikit-color-theme-9: #9CC7FF;
11
+ --uikit-color-theme-10: #C2DEFF;
12
+
13
+ --uikit-color-black-1: rgba(0, 0, 0, 100%);
14
+ --uikit-color-black-2: rgba(0, 0, 0, 90%);
15
+ --uikit-color-black-3: rgba(0, 0, 0, 72%);
16
+ --uikit-color-black-4: rgba(0, 0, 0, 55%);
17
+ --uikit-color-black-5: rgba(0, 0, 0, 40%);
18
+ --uikit-color-black-6: rgba(0, 0, 0, 25%);
19
+ --uikit-color-black-7: rgba(0, 0, 0, 12%);
20
+ --uikit-color-black-8: rgba(0, 0, 0, 6%);
21
+ --uikit-color-white-1: rgba(255, 255, 255, 100%);
22
+ --uikit-color-white-2: rgba(255, 255, 255, 93%);
23
+ --uikit-color-white-3: rgba(255, 255, 255, 75%);
24
+ --uikit-color-white-4: rgba(255, 255, 255, 55%);
25
+ --uikit-color-white-5: rgba(255, 255, 255, 42%);
26
+ --uikit-color-white-6: rgba(255, 255, 255, 30%);
27
+ --uikit-color-white-7: rgba(255, 255, 255, 14%);
28
+ --uikit-color-gray-1: #131417;
29
+ --uikit-color-gray-2: #1F2024;
30
+ --uikit-color-gray-3: #2B2C30;
31
+ --uikit-color-gray-4: #3A3C42;
32
+ --uikit-color-gray-5: #48494F;
33
+ --uikit-color-gray-6: #54565C;
34
+ --uikit-color-gray-7: #676A70;
35
+ --uikit-color-green-1: #1A2620;
36
+ --uikit-color-green-2: #22352C;
37
+ --uikit-color-green-3: #2F4F3F;
38
+ --uikit-color-green-4: #377355;
39
+ --uikit-color-green-5: #368F65;
40
+ --uikit-color-green-6: #38A673;
41
+ --uikit-color-green-7: #62B58B;
42
+ --uikit-color-green-8: #8BC7A9;
43
+ --uikit-color-green-9: #A9D4BD;
44
+ --uikit-color-green-10: #C8E5D5;
45
+ --uikit-color-red-1: #2B1C1F;
46
+ --uikit-color-red-2: #422324;
47
+ --uikit-color-red-3: #613234;
48
+ --uikit-color-red-4: #8A4242;
49
+ --uikit-color-red-5: #C2544E;
50
+ --uikit-color-red-6: #E6594C;
51
+ --uikit-color-red-7: #E57A6E;
52
+ --uikit-color-red-8: #F3A599;
53
+ --uikit-color-red-9: #FACBC3;
54
+ --uikit-color-red-10: #FAE4DE;
55
+ --uikit-color-orange-1: #211A19;
56
+ --uikit-color-orange-2: #35231A;
57
+ --uikit-color-orange-3: #462E1F;
58
+ --uikit-color-orange-4: #653C21;
59
+ --uikit-color-orange-5: #96562A;
60
+ --uikit-color-orange-6: #E37F32;
61
+ --uikit-color-orange-7: #E39552;
62
+ --uikit-color-orange-8: #EEAD72;
63
+ --uikit-color-orange-9: #F7CFA4;
64
+ --uikit-color-orange-10: #F9E9D1;
65
+ --uikit-color-transparent: rgba(255, 255, 255, 0%);
66
+
67
+ // text
68
+ --text-color-primary: var(--uikit-color-white-2);
69
+ --text-color-secondary: var(--uikit-color-white-4);
70
+ --text-color-tertiary: var(--uikit-color-white-6);
71
+ --text-color-disabled: var(--uikit-color-white-7);
72
+ --text-color-button: var(--uikit-color-white-1);
73
+ --text-color-button-disabled: var(--uikit-color-white-5);
74
+ --text-color-link: var(--uikit-color-theme-6);
75
+ --text-color-link-hover: var(--uikit-color-theme-5);
76
+ --text-color-link-active: var(--uikit-color-theme-7);
77
+ --text-color-link-disabled: var(--uikit-color-theme-2);
78
+ --text-color-anti-primary: var(--uikit-color-black-2);
79
+ --text-color-anti-secondary: var(--uikit-color-black-4);
80
+ --text-color-warning: var(--uikit-color-orange-6);
81
+ --text-color-success: var(--uikit-color-green-6);
82
+ --text-color-error: var(--uikit-color-red-6);
83
+
84
+ // background
85
+ --bg-color-topbar: var(--uikit-color-gray-1);
86
+ --bg-color-operate: var(--uikit-color-gray-2);
87
+ --bg-color-dialog: var(--uikit-color-gray-2);
88
+ --bg-color-dialog-module: var(--uikit-color-gray-3);
89
+ --bg-color-entrycard: var(--uikit-color-gray-3);
90
+ --bg-color-function: var(--uikit-color-gray-4);
91
+ --bg-color-bottombar: var(--uikit-color-gray-3);
92
+ --bg-color-input: var(--uikit-color-gray-3);
93
+ --bg-color-bubble-reciprocal: var(--uikit-color-gray-3);
94
+ --bg-color-bubble-own: var(--uikit-color-theme-7);
95
+ --bg-color-default: var(--uikit-color-gray-1);
96
+ --bg-color-tag-mask: var(--uikit-color-black-4);
97
+ --bg-color-element-mask: var(--uikit-color-black-6);
98
+ --bg-color-mask: var(--uikit-color-black-4);
99
+ --bg-color-mask-disappeared: var(--uikit-color-black-8);
100
+ --bg-color-mask-begin: var(--uikit-color-black-2);
101
+
102
+ // border
103
+ --stroke-color-primary: var(--uikit-color-gray-4);
104
+ --stroke-color-secondary: var(--uikit-color-gray-3);
105
+ --stroke-color-module: var(--uikit-color-gray-5);
106
+
107
+ // shadow
108
+ --shadow-color: var(--uikit-color-black-8);
109
+
110
+ // status
111
+ --list-color-default: var(--uikit-color-gray-2);
112
+ --list-color-hover: var(--uikit-color-gray-3);
113
+ --list-color-focused: var(--uikit-color-theme-2);
114
+
115
+ // button
116
+ --button-color-primary-default: var(--uikit-color-theme-6);
117
+ --button-color-primary-hover: var(--uikit-color-theme-5);
118
+ --button-color-primary-active: var(--uikit-color-theme-7);
119
+ --button-color-primary-disabled: var(--uikit-color-theme-2);
120
+ --button-color-secondary-default: var(--uikit-color-gray-4);
121
+ --button-color-secondary-hover: var(--uikit-color-gray-3);
122
+ --button-color-secondary-active: var(--uikit-color-gray-5);
123
+ --button-color-secondary-disabled: var(--uikit-color-gray-3);
124
+ --button-color-accept: var(--uikit-color-green-6);
125
+ --button-color-hangup: var(--uikit-color-red-6);
126
+ --button-color-on: var(--uikit-color-white-1);
127
+ --button-color-off: var(--uikit-color-black-5);
128
+
129
+ // dropdown
130
+ --dropdown-color-default: var(--uikit-color-gray-3);
131
+ --dropdown-color-hover: var(--uikit-color-gray-4);
132
+ --dropdown-color-active: var(--uikit-color-gray-2);
133
+
134
+ // scroll-bar
135
+ --scroll-bar-color-default: var(--uikit-color-white-7);
136
+ --scroll-bar-color-hover: var(--uikit-color-white-6);
137
+
138
+ // floating
139
+ --floating-color-default: var(--uikit-color-gray-3);
140
+ --floating-color-operate: var(--uikit-color-gray-4);
141
+
142
+ // checkbox
143
+ --checkbox-color-selected: var(--uikit-color-theme-5);
144
+
145
+ // toast
146
+ --toast-color-warning: var(--uikit-color-orange-2);
147
+ --toast-color-success: var(--uikit-color-green-2);
148
+ --toast-color-error: var(--uikit-color-red-2);
149
+ --toast-color-default: var(--uikit-color-theme-2);
150
+
151
+ // switch
152
+ --switch-color-off: var(--uikit-color-gray-4);
153
+ --switch-color-on: var(--uikit-color-theme-5);
154
+ --switch-color-button: var(--uikit-color-white-1);
155
+
156
+ // slider
157
+ --slider-color-filled: var(--uikit-color-theme-5);
158
+ --slider-color-empty: var(--uikit-color-gray-5);
159
+ --slider-color-button: var(--uikit-color-white-1);
160
+
161
+ // tab
162
+ --tab-color-selected: var(--uikit-color-gray-5);
163
+ --tab-color-unselected: var(--uikit-color-gray-4);
164
+ --tab-color-option: var(--uikit-color-gray-4);
165
+
166
+ // todo-tag
167
+ }
@@ -0,0 +1,167 @@
1
+ .tui-theme-light {
2
+ --uikit-color-theme-1: #EBF3FF;
3
+ --uikit-color-theme-2: #CCE2FF;
4
+ --uikit-color-theme-3: #ADCFFF;
5
+ --uikit-color-theme-4: #7AAFFF;
6
+ --uikit-color-theme-5: #4588F5;
7
+ --uikit-color-theme-6: #1C66E5;
8
+ --uikit-color-theme-7: #0D49BF;
9
+ --uikit-color-theme-8: #033099;
10
+ --uikit-color-theme-9: #001F73;
11
+ --uikit-color-theme-10: #00124D;
12
+
13
+ --uikit-color-black-1: rgba(0, 0, 0, 100%);
14
+ --uikit-color-black-2: rgba(0, 0, 0, 90%);
15
+ --uikit-color-black-3: rgba(0, 0, 0, 72%);
16
+ --uikit-color-black-4: rgba(0, 0, 0, 55%);
17
+ --uikit-color-black-5: rgba(0, 0, 0, 40%);
18
+ --uikit-color-black-6: rgba(0, 0, 0, 25%);
19
+ --uikit-color-black-7: rgba(0, 0, 0, 12%);
20
+ --uikit-color-black-8: rgba(0, 0, 0, 6%);
21
+ --uikit-color-white-1: rgba(255, 255, 255, 100%);
22
+ --uikit-color-white-2: rgba(255, 255, 255, 93%);
23
+ --uikit-color-white-3: rgba(255, 255, 255, 75%);
24
+ --uikit-color-white-4: rgba(255, 255, 255, 55%);
25
+ --uikit-color-white-5: rgba(255, 255, 255, 42%);
26
+ --uikit-color-white-6: rgba(255, 255, 255, 30%);
27
+ --uikit-color-white-7: rgba(255, 255, 255, 14%);
28
+ --uikit-color-gray-1: #F9FAFC;
29
+ --uikit-color-gray-2: #F0F2F7;
30
+ --uikit-color-gray-3: #E6E9F0;
31
+ --uikit-color-gray-4: #D1D4DE;
32
+ --uikit-color-gray-5: #C0C3CC;
33
+ --uikit-color-gray-6: #B3B6BE;
34
+ --uikit-color-gray-7: #A5A9B0;
35
+ --uikit-color-green-1: #DCFAE9;
36
+ --uikit-color-green-2: #B6F0D1;
37
+ --uikit-color-green-3: #84E3B5;
38
+ --uikit-color-green-4: #5AD69E;
39
+ --uikit-color-green-5: #3CC98C;
40
+ --uikit-color-green-6: #0ABF77;
41
+ --uikit-color-green-7: #09A768;
42
+ --uikit-color-green-8: #078F59;
43
+ --uikit-color-green-9: #067049;
44
+ --uikit-color-green-10: #044D37;
45
+ --uikit-color-red-1: #FFE7E6;
46
+ --uikit-color-red-2: #FCC9C7;
47
+ --uikit-color-red-3: #FAAEAC;
48
+ --uikit-color-red-4: #F58989;
49
+ --uikit-color-red-5: #E86666;
50
+ --uikit-color-red-6: #E54545;
51
+ --uikit-color-red-7: #C93439;
52
+ --uikit-color-red-8: #AD2934;
53
+ --uikit-color-red-9: #8F222D;
54
+ --uikit-color-red-10: #6B1A27;
55
+ --uikit-color-orange-1: #FFEEDB;
56
+ --uikit-color-orange-2: #FFD6B2;
57
+ --uikit-color-orange-3: #FFBE85;
58
+ --uikit-color-orange-4: #FFA455;
59
+ --uikit-color-orange-5: #FF8B2B;
60
+ --uikit-color-orange-6: #FF7200;
61
+ --uikit-color-orange-7: #E05D00;
62
+ --uikit-color-orange-8: #BF4900;
63
+ --uikit-color-orange-9: #8F370B;
64
+ --uikit-color-orange-10: #662200;
65
+ --uikit-color-transparent: rgba(255, 255, 255, 0%);
66
+
67
+ // text
68
+ --text-color-primary: var(--uikit-color-black-2);
69
+ --text-color-secondary: var(--uikit-color-black-4);
70
+ --text-color-tertiary: var(--uikit-color-black-5);
71
+ --text-color-disabled: var(--uikit-color-black-6);
72
+ --text-color-button: var(--uikit-color-white-1);
73
+ --text-color-button-disabled: var(--uikit-color-white-1);
74
+ --text-color-link: var(--uikit-color-theme-6);
75
+ --text-color-link-hover: var(--uikit-color-theme-5);
76
+ --text-color-link-active: var(--uikit-color-theme-7);
77
+ --text-color-link-disabled: var(--uikit-color-theme-2);
78
+ --text-color-anti-primary: var(--uikit-color-black-2);
79
+ --text-color-anti-secondary: var(--uikit-color-black-4);
80
+ --text-color-warning: var(--uikit-color-orange-6);
81
+ --text-color-success: var(--uikit-color-green-6);
82
+ --text-color-error: var(--uikit-color-red-6);
83
+
84
+ // background
85
+ --bg-color-topbar: var(--uikit-color-gray-1);
86
+ --bg-color-operate: var(--uikit-color-white-1);
87
+ --bg-color-dialog: var(--uikit-color-white-1);
88
+ --bg-color-dialog-module: var(--uikit-color-gray-2);
89
+ --bg-color-entrycard: var(--uikit-color-gray-2);
90
+ --bg-color-function: var(--uikit-color-gray-2);
91
+ --bg-color-bottombar: var(--uikit-color-white-1);
92
+ --bg-color-input: var(--uikit-color-gray-2);
93
+ --bg-color-bubble-reciprocal: var(--uikit-color-gray-2);
94
+ --bg-color-bubble-own: var(--uikit-color-theme-2);
95
+ --bg-color-default: var(--uikit-color-gray-2);
96
+ --bg-color-tag-mask: var(--uikit-color-white-4);
97
+ --bg-color-element-mask: var(--uikit-color-black-6);
98
+ --bg-color-mask: var(--uikit-color-black-4);
99
+ --bg-color-mask-disappeared: var(--uikit-color-white-7);
100
+ --bg-color-mask-begin: var(--uikit-color-white-1);
101
+
102
+ // border
103
+ --stroke-color-primary: var(--uikit-color-gray-3);
104
+ --stroke-color-secondary: var(--uikit-color-gray-2);
105
+ --stroke-color-module: var(--uikit-color-gray-3);
106
+
107
+ // shadow
108
+ --shadow-color: var(--uikit-color-black-8);
109
+
110
+ // status
111
+ --list-color-default: var(--uikit-color-white-1);
112
+ --list-color-hover: var(--uikit-color-gray-1);
113
+ --list-color-focused: var(--uikit-color-theme-1);
114
+
115
+ // button
116
+ --button-color-primary-default: var(--uikit-color-theme-6);
117
+ --button-color-primary-hover: var(--uikit-color-theme-5);
118
+ --button-color-primary-active: var(--uikit-color-theme-7);
119
+ --button-color-primary-disabled: var(--uikit-color-theme-2);
120
+ --button-color-secondary-default: var(--uikit-color-gray-2);
121
+ --button-color-secondary-hover: var(--uikit-color-gray-1);
122
+ --button-color-secondary-active: var(--uikit-color-gray-3);
123
+ --button-color-secondary-disabled: var(--uikit-color-gray-1);
124
+ --button-color-accept: var(--uikit-color-green-6);
125
+ --button-color-hangup: var(--uikit-color-red-6);
126
+ --button-color-on: var(--uikit-color-white-1);
127
+ --button-color-off: var(--uikit-color-black-5);
128
+
129
+ // dropdown
130
+ --dropdown-color-default: var(--uikit-color-white-1);
131
+ --dropdown-color-hover: var(--uikit-color-gray-1);
132
+ --dropdown-color-active: var(--uikit-color-theme-2);
133
+
134
+ // scroll-bar
135
+ --scroll-bar-color-default: var(--uikit-color-black-7);
136
+ --scroll-bar-color-hover: var(--uikit-color-black-6);
137
+
138
+ // floating
139
+ --floating-color-default: var(--uikit-color-white-1);
140
+ --floating-color-operate: var(--uikit-color-gray-2);
141
+
142
+ // checkbox
143
+ --checkbox-color-selected: var(--uikit-color-theme-6);
144
+
145
+ // toast
146
+ --toast-color-warning: var(--uikit-color-orange-1);
147
+ --toast-color-success: var(--uikit-color-green-1);
148
+ --toast-color-error: var(--uikit-color-red-1);
149
+ --toast-color-default: var(--uikit-color-theme-1);
150
+
151
+ // switch
152
+ --switch-color-off: var(--uikit-color-gray-4);
153
+ --switch-color-on: var(--uikit-color-theme-6);
154
+ --switch-color-button: var(--uikit-color-white-1);
155
+
156
+ // slider
157
+ --slider-color-filled: var(--uikit-color-theme-6);
158
+ --slider-color-empty: var(--uikit-color-gray-3);
159
+ --slider-color-button: var(--uikit-color-white-1);
160
+
161
+ // tab
162
+ --tab-color-selected: var(--uikit-color-theme-2);
163
+ --tab-color-unselected: var(--uikit-color-gray-2);
164
+ --tab-color-option: var(--uikit-color-gray-3);
165
+
166
+ // todo-tag
167
+ }
@@ -0,0 +1,3 @@
1
+
2
+ @import './themes/dark';
3
+ @import './themes/light';
@@ -0,0 +1 @@
1
+
package/package.json ADDED
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "@jasperdai/uikit-base-component-uni",
3
+ "version": "0.7.0",
4
+ "type": "module",
5
+ "main": "./src/index.ts",
6
+ "scripts": {
7
+ "dev": "vite build --watch",
8
+ "build": "vite build",
9
+ "build-storybook": "storybook build",
10
+ "publish": "npm publish --access public"
11
+ },
12
+ "peerDependencies": {
13
+ "vue": "^3.4.21"
14
+ },
15
+ "devDependencies": {
16
+ "@chromatic-com/storybook": "^3.2.2",
17
+ "@originjs/vite-plugin-commonjs": "^1.0.3",
18
+ "@vitejs/plugin-vue": "^5.0.4",
19
+ "sass": "^1.72.0",
20
+ "storybook": "^8.4.4",
21
+ "typescript": "^5.5.4",
22
+ "vite": "^5.2.0",
23
+ "vite-plugin-dts": "^3.7.3",
24
+ "vue-tsc": "^2.0.6",
25
+ "glob": "^11.0.0",
26
+ "vite-plugin-lib-inject-css": "^2.1.1",
27
+ "vite-plugin-static-copy": "^2.2.0"
28
+ }
29
+ }
package/src/index.ts ADDED
@@ -0,0 +1,6 @@
1
+ import { useUIKit, uikitProvider } from './providers/UIKitProvider/index';
2
+
3
+ export {
4
+ uikitProvider,
5
+ useUIKit,
6
+ };
@@ -0,0 +1,27 @@
1
+ <template>
2
+ <div :class="['uikit-theme-context', uikitThemeClass]">
3
+ <slot></slot>
4
+ </div>
5
+ </template>
6
+
7
+ <script setup lang="ts">
8
+ import { useTheme } from './useThemeProvider';
9
+ import '../../styles/variables.scss';
10
+
11
+ const props = withDefaults(defineProps<{
12
+ theme?: string;
13
+ }>(), {
14
+ theme: 'light',
15
+ });
16
+
17
+ const { setTheme, uikitThemeClass } = useTheme();
18
+
19
+ setTheme(props.theme);
20
+ </script>
21
+
22
+ <style lang="scss" scoped>
23
+ .uikit-theme-context {
24
+ width: 100%;
25
+ height: 100%;
26
+ }
27
+ </style>
@@ -0,0 +1,21 @@
1
+ import { ref, computed } from 'vue';
2
+
3
+ const theme = ref('');
4
+ const supportedThemes = ['light', 'dark'];
5
+ const uikitThemeClass = computed(() => `tui-theme-${theme.value}`);
6
+
7
+ export function useTheme() {
8
+ function setTheme(newTheme: string): void {
9
+ if (supportedThemes.includes(newTheme)) {
10
+ theme.value = newTheme;
11
+ } else {
12
+ throw new Error(`Theme "${newTheme}" is not supported. Supported themes: [${supportedThemes.join(', ')}]`);
13
+ }
14
+ }
15
+
16
+ return {
17
+ theme,
18
+ setTheme,
19
+ uikitThemeClass,
20
+ }
21
+ }
@@ -0,0 +1,16 @@
1
+ <template>
2
+ <ThemeProvider :theme="props.theme">
3
+ <slot></slot>
4
+ </ThemeProvider>
5
+ </template>
6
+
7
+ <script setup lang="ts">
8
+ import { withDefaults } from 'vue';
9
+ import ThemeProvider from '../ThemeProvider/ThemeProvider.vue';
10
+
11
+ const props = withDefaults(defineProps<{
12
+ theme?: string;
13
+ }>(), {
14
+ theme: 'light',
15
+ });
16
+ </script>
@@ -0,0 +1,9 @@
1
+ import { useTheme } from '../ThemeProvider/useThemeProvider';
2
+
3
+ export function useUIKit(){
4
+ const themeContext = useTheme();
5
+ return {
6
+ ...themeContext,
7
+ };
8
+ }
9
+
@@ -0,0 +1,7 @@
1
+ import uikitProvider from './contexts/UIKitProvider/UIKitProvider.vue';
2
+ import { useUIKit } from './contexts/UIKitProvider/useUIKitProvider';
3
+
4
+ export {
5
+ uikitProvider,
6
+ useUIKit,
7
+ };
@@ -0,0 +1,167 @@
1
+ .tui-theme-dark {
2
+ --uikit-color-theme-1: #1C2333;
3
+ --uikit-color-theme-2: #243047;
4
+ --uikit-color-theme-3: #2F4875;
5
+ --uikit-color-theme-4: #305BA6;
6
+ --uikit-color-theme-5: #2B6AD6;
7
+ --uikit-color-theme-6: #4086FF;
8
+ --uikit-color-theme-7: #5C9DFF;
9
+ --uikit-color-theme-8: #78B0FF;
10
+ --uikit-color-theme-9: #9CC7FF;
11
+ --uikit-color-theme-10: #C2DEFF;
12
+
13
+ --uikit-color-black-1: rgba(0, 0, 0, 100%);
14
+ --uikit-color-black-2: rgba(0, 0, 0, 90%);
15
+ --uikit-color-black-3: rgba(0, 0, 0, 72%);
16
+ --uikit-color-black-4: rgba(0, 0, 0, 55%);
17
+ --uikit-color-black-5: rgba(0, 0, 0, 40%);
18
+ --uikit-color-black-6: rgba(0, 0, 0, 25%);
19
+ --uikit-color-black-7: rgba(0, 0, 0, 12%);
20
+ --uikit-color-black-8: rgba(0, 0, 0, 6%);
21
+ --uikit-color-white-1: rgba(255, 255, 255, 100%);
22
+ --uikit-color-white-2: rgba(255, 255, 255, 93%);
23
+ --uikit-color-white-3: rgba(255, 255, 255, 75%);
24
+ --uikit-color-white-4: rgba(255, 255, 255, 55%);
25
+ --uikit-color-white-5: rgba(255, 255, 255, 42%);
26
+ --uikit-color-white-6: rgba(255, 255, 255, 30%);
27
+ --uikit-color-white-7: rgba(255, 255, 255, 14%);
28
+ --uikit-color-gray-1: #131417;
29
+ --uikit-color-gray-2: #1F2024;
30
+ --uikit-color-gray-3: #2B2C30;
31
+ --uikit-color-gray-4: #3A3C42;
32
+ --uikit-color-gray-5: #48494F;
33
+ --uikit-color-gray-6: #54565C;
34
+ --uikit-color-gray-7: #676A70;
35
+ --uikit-color-green-1: #1A2620;
36
+ --uikit-color-green-2: #22352C;
37
+ --uikit-color-green-3: #2F4F3F;
38
+ --uikit-color-green-4: #377355;
39
+ --uikit-color-green-5: #368F65;
40
+ --uikit-color-green-6: #38A673;
41
+ --uikit-color-green-7: #62B58B;
42
+ --uikit-color-green-8: #8BC7A9;
43
+ --uikit-color-green-9: #A9D4BD;
44
+ --uikit-color-green-10: #C8E5D5;
45
+ --uikit-color-red-1: #2B1C1F;
46
+ --uikit-color-red-2: #422324;
47
+ --uikit-color-red-3: #613234;
48
+ --uikit-color-red-4: #8A4242;
49
+ --uikit-color-red-5: #C2544E;
50
+ --uikit-color-red-6: #E6594C;
51
+ --uikit-color-red-7: #E57A6E;
52
+ --uikit-color-red-8: #F3A599;
53
+ --uikit-color-red-9: #FACBC3;
54
+ --uikit-color-red-10: #FAE4DE;
55
+ --uikit-color-orange-1: #211A19;
56
+ --uikit-color-orange-2: #35231A;
57
+ --uikit-color-orange-3: #462E1F;
58
+ --uikit-color-orange-4: #653C21;
59
+ --uikit-color-orange-5: #96562A;
60
+ --uikit-color-orange-6: #E37F32;
61
+ --uikit-color-orange-7: #E39552;
62
+ --uikit-color-orange-8: #EEAD72;
63
+ --uikit-color-orange-9: #F7CFA4;
64
+ --uikit-color-orange-10: #F9E9D1;
65
+ --uikit-color-transparent: rgba(255, 255, 255, 0%);
66
+
67
+ // text
68
+ --text-color-primary: var(--uikit-color-white-2);
69
+ --text-color-secondary: var(--uikit-color-white-4);
70
+ --text-color-tertiary: var(--uikit-color-white-6);
71
+ --text-color-disabled: var(--uikit-color-white-7);
72
+ --text-color-button: var(--uikit-color-white-1);
73
+ --text-color-button-disabled: var(--uikit-color-white-5);
74
+ --text-color-link: var(--uikit-color-theme-6);
75
+ --text-color-link-hover: var(--uikit-color-theme-5);
76
+ --text-color-link-active: var(--uikit-color-theme-7);
77
+ --text-color-link-disabled: var(--uikit-color-theme-2);
78
+ --text-color-anti-primary: var(--uikit-color-black-2);
79
+ --text-color-anti-secondary: var(--uikit-color-black-4);
80
+ --text-color-warning: var(--uikit-color-orange-6);
81
+ --text-color-success: var(--uikit-color-green-6);
82
+ --text-color-error: var(--uikit-color-red-6);
83
+
84
+ // background
85
+ --bg-color-topbar: var(--uikit-color-gray-1);
86
+ --bg-color-operate: var(--uikit-color-gray-2);
87
+ --bg-color-dialog: var(--uikit-color-gray-2);
88
+ --bg-color-dialog-module: var(--uikit-color-gray-3);
89
+ --bg-color-entrycard: var(--uikit-color-gray-3);
90
+ --bg-color-function: var(--uikit-color-gray-4);
91
+ --bg-color-bottombar: var(--uikit-color-gray-3);
92
+ --bg-color-input: var(--uikit-color-gray-3);
93
+ --bg-color-bubble-reciprocal: var(--uikit-color-gray-3);
94
+ --bg-color-bubble-own: var(--uikit-color-theme-7);
95
+ --bg-color-default: var(--uikit-color-gray-1);
96
+ --bg-color-tag-mask: var(--uikit-color-black-4);
97
+ --bg-color-element-mask: var(--uikit-color-black-6);
98
+ --bg-color-mask: var(--uikit-color-black-4);
99
+ --bg-color-mask-disappeared: var(--uikit-color-black-8);
100
+ --bg-color-mask-begin: var(--uikit-color-black-2);
101
+
102
+ // border
103
+ --stroke-color-primary: var(--uikit-color-gray-4);
104
+ --stroke-color-secondary: var(--uikit-color-gray-3);
105
+ --stroke-color-module: var(--uikit-color-gray-5);
106
+
107
+ // shadow
108
+ --shadow-color: var(--uikit-color-black-8);
109
+
110
+ // status
111
+ --list-color-default: var(--uikit-color-gray-2);
112
+ --list-color-hover: var(--uikit-color-gray-3);
113
+ --list-color-focused: var(--uikit-color-theme-2);
114
+
115
+ // button
116
+ --button-color-primary-default: var(--uikit-color-theme-6);
117
+ --button-color-primary-hover: var(--uikit-color-theme-5);
118
+ --button-color-primary-active: var(--uikit-color-theme-7);
119
+ --button-color-primary-disabled: var(--uikit-color-theme-2);
120
+ --button-color-secondary-default: var(--uikit-color-gray-4);
121
+ --button-color-secondary-hover: var(--uikit-color-gray-3);
122
+ --button-color-secondary-active: var(--uikit-color-gray-5);
123
+ --button-color-secondary-disabled: var(--uikit-color-gray-3);
124
+ --button-color-accept: var(--uikit-color-green-6);
125
+ --button-color-hangup: var(--uikit-color-red-6);
126
+ --button-color-on: var(--uikit-color-white-1);
127
+ --button-color-off: var(--uikit-color-black-5);
128
+
129
+ // dropdown
130
+ --dropdown-color-default: var(--uikit-color-gray-3);
131
+ --dropdown-color-hover: var(--uikit-color-gray-4);
132
+ --dropdown-color-active: var(--uikit-color-gray-2);
133
+
134
+ // scroll-bar
135
+ --scroll-bar-color-default: var(--uikit-color-white-7);
136
+ --scroll-bar-color-hover: var(--uikit-color-white-6);
137
+
138
+ // floating
139
+ --floating-color-default: var(--uikit-color-gray-3);
140
+ --floating-color-operate: var(--uikit-color-gray-4);
141
+
142
+ // checkbox
143
+ --checkbox-color-selected: var(--uikit-color-theme-5);
144
+
145
+ // toast
146
+ --toast-color-warning: var(--uikit-color-orange-2);
147
+ --toast-color-success: var(--uikit-color-green-2);
148
+ --toast-color-error: var(--uikit-color-red-2);
149
+ --toast-color-default: var(--uikit-color-theme-2);
150
+
151
+ // switch
152
+ --switch-color-off: var(--uikit-color-gray-4);
153
+ --switch-color-on: var(--uikit-color-theme-5);
154
+ --switch-color-button: var(--uikit-color-white-1);
155
+
156
+ // slider
157
+ --slider-color-filled: var(--uikit-color-theme-5);
158
+ --slider-color-empty: var(--uikit-color-gray-5);
159
+ --slider-color-button: var(--uikit-color-white-1);
160
+
161
+ // tab
162
+ --tab-color-selected: var(--uikit-color-gray-5);
163
+ --tab-color-unselected: var(--uikit-color-gray-4);
164
+ --tab-color-option: var(--uikit-color-gray-4);
165
+
166
+ // todo-tag
167
+ }
@@ -0,0 +1,167 @@
1
+ .tui-theme-light {
2
+ --uikit-color-theme-1: #EBF3FF;
3
+ --uikit-color-theme-2: #CCE2FF;
4
+ --uikit-color-theme-3: #ADCFFF;
5
+ --uikit-color-theme-4: #7AAFFF;
6
+ --uikit-color-theme-5: #4588F5;
7
+ --uikit-color-theme-6: #1C66E5;
8
+ --uikit-color-theme-7: #0D49BF;
9
+ --uikit-color-theme-8: #033099;
10
+ --uikit-color-theme-9: #001F73;
11
+ --uikit-color-theme-10: #00124D;
12
+
13
+ --uikit-color-black-1: rgba(0, 0, 0, 100%);
14
+ --uikit-color-black-2: rgba(0, 0, 0, 90%);
15
+ --uikit-color-black-3: rgba(0, 0, 0, 72%);
16
+ --uikit-color-black-4: rgba(0, 0, 0, 55%);
17
+ --uikit-color-black-5: rgba(0, 0, 0, 40%);
18
+ --uikit-color-black-6: rgba(0, 0, 0, 25%);
19
+ --uikit-color-black-7: rgba(0, 0, 0, 12%);
20
+ --uikit-color-black-8: rgba(0, 0, 0, 6%);
21
+ --uikit-color-white-1: rgba(255, 255, 255, 100%);
22
+ --uikit-color-white-2: rgba(255, 255, 255, 93%);
23
+ --uikit-color-white-3: rgba(255, 255, 255, 75%);
24
+ --uikit-color-white-4: rgba(255, 255, 255, 55%);
25
+ --uikit-color-white-5: rgba(255, 255, 255, 42%);
26
+ --uikit-color-white-6: rgba(255, 255, 255, 30%);
27
+ --uikit-color-white-7: rgba(255, 255, 255, 14%);
28
+ --uikit-color-gray-1: #F9FAFC;
29
+ --uikit-color-gray-2: #F0F2F7;
30
+ --uikit-color-gray-3: #E6E9F0;
31
+ --uikit-color-gray-4: #D1D4DE;
32
+ --uikit-color-gray-5: #C0C3CC;
33
+ --uikit-color-gray-6: #B3B6BE;
34
+ --uikit-color-gray-7: #A5A9B0;
35
+ --uikit-color-green-1: #DCFAE9;
36
+ --uikit-color-green-2: #B6F0D1;
37
+ --uikit-color-green-3: #84E3B5;
38
+ --uikit-color-green-4: #5AD69E;
39
+ --uikit-color-green-5: #3CC98C;
40
+ --uikit-color-green-6: #0ABF77;
41
+ --uikit-color-green-7: #09A768;
42
+ --uikit-color-green-8: #078F59;
43
+ --uikit-color-green-9: #067049;
44
+ --uikit-color-green-10: #044D37;
45
+ --uikit-color-red-1: #FFE7E6;
46
+ --uikit-color-red-2: #FCC9C7;
47
+ --uikit-color-red-3: #FAAEAC;
48
+ --uikit-color-red-4: #F58989;
49
+ --uikit-color-red-5: #E86666;
50
+ --uikit-color-red-6: #E54545;
51
+ --uikit-color-red-7: #C93439;
52
+ --uikit-color-red-8: #AD2934;
53
+ --uikit-color-red-9: #8F222D;
54
+ --uikit-color-red-10: #6B1A27;
55
+ --uikit-color-orange-1: #FFEEDB;
56
+ --uikit-color-orange-2: #FFD6B2;
57
+ --uikit-color-orange-3: #FFBE85;
58
+ --uikit-color-orange-4: #FFA455;
59
+ --uikit-color-orange-5: #FF8B2B;
60
+ --uikit-color-orange-6: #FF7200;
61
+ --uikit-color-orange-7: #E05D00;
62
+ --uikit-color-orange-8: #BF4900;
63
+ --uikit-color-orange-9: #8F370B;
64
+ --uikit-color-orange-10: #662200;
65
+ --uikit-color-transparent: rgba(255, 255, 255, 0%);
66
+
67
+ // text
68
+ --text-color-primary: var(--uikit-color-black-2);
69
+ --text-color-secondary: var(--uikit-color-black-4);
70
+ --text-color-tertiary: var(--uikit-color-black-5);
71
+ --text-color-disabled: var(--uikit-color-black-6);
72
+ --text-color-button: var(--uikit-color-white-1);
73
+ --text-color-button-disabled: var(--uikit-color-white-1);
74
+ --text-color-link: var(--uikit-color-theme-6);
75
+ --text-color-link-hover: var(--uikit-color-theme-5);
76
+ --text-color-link-active: var(--uikit-color-theme-7);
77
+ --text-color-link-disabled: var(--uikit-color-theme-2);
78
+ --text-color-anti-primary: var(--uikit-color-black-2);
79
+ --text-color-anti-secondary: var(--uikit-color-black-4);
80
+ --text-color-warning: var(--uikit-color-orange-6);
81
+ --text-color-success: var(--uikit-color-green-6);
82
+ --text-color-error: var(--uikit-color-red-6);
83
+
84
+ // background
85
+ --bg-color-topbar: var(--uikit-color-gray-1);
86
+ --bg-color-operate: var(--uikit-color-white-1);
87
+ --bg-color-dialog: var(--uikit-color-white-1);
88
+ --bg-color-dialog-module: var(--uikit-color-gray-2);
89
+ --bg-color-entrycard: var(--uikit-color-gray-2);
90
+ --bg-color-function: var(--uikit-color-gray-2);
91
+ --bg-color-bottombar: var(--uikit-color-white-1);
92
+ --bg-color-input: var(--uikit-color-gray-2);
93
+ --bg-color-bubble-reciprocal: var(--uikit-color-gray-2);
94
+ --bg-color-bubble-own: var(--uikit-color-theme-2);
95
+ --bg-color-default: var(--uikit-color-gray-2);
96
+ --bg-color-tag-mask: var(--uikit-color-white-4);
97
+ --bg-color-element-mask: var(--uikit-color-black-6);
98
+ --bg-color-mask: var(--uikit-color-black-4);
99
+ --bg-color-mask-disappeared: var(--uikit-color-white-7);
100
+ --bg-color-mask-begin: var(--uikit-color-white-1);
101
+
102
+ // border
103
+ --stroke-color-primary: var(--uikit-color-gray-3);
104
+ --stroke-color-secondary: var(--uikit-color-gray-2);
105
+ --stroke-color-module: var(--uikit-color-gray-3);
106
+
107
+ // shadow
108
+ --shadow-color: var(--uikit-color-black-8);
109
+
110
+ // status
111
+ --list-color-default: var(--uikit-color-white-1);
112
+ --list-color-hover: var(--uikit-color-gray-1);
113
+ --list-color-focused: var(--uikit-color-theme-1);
114
+
115
+ // button
116
+ --button-color-primary-default: var(--uikit-color-theme-6);
117
+ --button-color-primary-hover: var(--uikit-color-theme-5);
118
+ --button-color-primary-active: var(--uikit-color-theme-7);
119
+ --button-color-primary-disabled: var(--uikit-color-theme-2);
120
+ --button-color-secondary-default: var(--uikit-color-gray-2);
121
+ --button-color-secondary-hover: var(--uikit-color-gray-1);
122
+ --button-color-secondary-active: var(--uikit-color-gray-3);
123
+ --button-color-secondary-disabled: var(--uikit-color-gray-1);
124
+ --button-color-accept: var(--uikit-color-green-6);
125
+ --button-color-hangup: var(--uikit-color-red-6);
126
+ --button-color-on: var(--uikit-color-white-1);
127
+ --button-color-off: var(--uikit-color-black-5);
128
+
129
+ // dropdown
130
+ --dropdown-color-default: var(--uikit-color-white-1);
131
+ --dropdown-color-hover: var(--uikit-color-gray-1);
132
+ --dropdown-color-active: var(--uikit-color-theme-2);
133
+
134
+ // scroll-bar
135
+ --scroll-bar-color-default: var(--uikit-color-black-7);
136
+ --scroll-bar-color-hover: var(--uikit-color-black-6);
137
+
138
+ // floating
139
+ --floating-color-default: var(--uikit-color-white-1);
140
+ --floating-color-operate: var(--uikit-color-gray-2);
141
+
142
+ // checkbox
143
+ --checkbox-color-selected: var(--uikit-color-theme-6);
144
+
145
+ // toast
146
+ --toast-color-warning: var(--uikit-color-orange-1);
147
+ --toast-color-success: var(--uikit-color-green-1);
148
+ --toast-color-error: var(--uikit-color-red-1);
149
+ --toast-color-default: var(--uikit-color-theme-1);
150
+
151
+ // switch
152
+ --switch-color-off: var(--uikit-color-gray-4);
153
+ --switch-color-on: var(--uikit-color-theme-6);
154
+ --switch-color-button: var(--uikit-color-white-1);
155
+
156
+ // slider
157
+ --slider-color-filled: var(--uikit-color-theme-6);
158
+ --slider-color-empty: var(--uikit-color-gray-3);
159
+ --slider-color-button: var(--uikit-color-white-1);
160
+
161
+ // tab
162
+ --tab-color-selected: var(--uikit-color-theme-2);
163
+ --tab-color-unselected: var(--uikit-color-gray-2);
164
+ --tab-color-option: var(--uikit-color-gray-3);
165
+
166
+ // todo-tag
167
+ }
@@ -0,0 +1,3 @@
1
+
2
+ @import './themes/dark';
3
+ @import './themes/light';
@@ -0,0 +1 @@
1
+ // / <reference types="vite/client" />
package/tsconfig.json ADDED
@@ -0,0 +1,25 @@
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": ["src/**/*.ts", "src/**/*.tsx", "src/**/*.vue"],
24
+ "references": [{ "path": "./tsconfig.node.json" }]
25
+ }
@@ -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,66 @@
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 vue from '@vitejs/plugin-vue';
7
+ import { viteStaticCopy } from 'vite-plugin-static-copy';
8
+ import { peerDependencies } from './package.json';
9
+
10
+ export default defineConfig({
11
+ resolve: {
12
+ alias: {
13
+ '@': resolve(__dirname, '/src'),
14
+ },
15
+ },
16
+ build: {
17
+ lib: {
18
+ entry: resolve(__dirname, 'src/index.ts'),
19
+ formats: ['es'],
20
+ },
21
+ rollupOptions: {
22
+ external: [
23
+ ...Object.keys(peerDependencies),
24
+ ],
25
+ input: getInputEntries(),
26
+ output: {
27
+ assetFileNames: 'styles/index[extname]',
28
+ entryFileNames: '[name].js',
29
+ },
30
+ },
31
+ },
32
+ plugins: [
33
+ vue(),
34
+ dts({
35
+ include: ['src/**/*.ts', 'src/**/*.vue'],
36
+ }),
37
+ viteStaticCopy({
38
+ targets: [
39
+ {
40
+ src: './src/providers/UIKitProvider/styles',
41
+ dest: 'styles',
42
+ },
43
+ ],
44
+ }),
45
+ ],
46
+ css: {
47
+ preprocessorOptions: {
48
+ scss: {
49
+ api: 'modern-compiler',
50
+ },
51
+ },
52
+ },
53
+ });
54
+
55
+ function getInputEntries() {
56
+ const inputEntries = Object.fromEntries(
57
+ glob.sync('src/**/*.{ts,vue}', {}).map(file => [
58
+ relative(
59
+ 'src',
60
+ file.slice(0, file.length - extname(file).length),
61
+ ),
62
+ fileURLToPath(new URL(file, import.meta.url)),
63
+ ]),
64
+ );
65
+ return inputEntries;
66
+ }