jky-component-lib 0.0.65 → 0.0.67
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/dist/es/components.d.ts +1 -0
- package/dist/es/components.js +4 -1
- package/dist/es/index.js +15 -0
- package/dist/es/package.json.js +1 -1
- package/dist/es/page-header/PageHeader.vue.js +2 -2
- package/dist/es/page-header/PopoverMenu.vue.js +2 -2
- package/dist/es/style.css +146 -0
- package/dist/es/styles.css +1 -1
- package/dist/es/tabs/TabContent.vue.d.ts +16 -0
- package/dist/es/tabs/TabContent.vue.js +65 -0
- package/dist/es/tabs/TabContent.vue3.js +5 -0
- package/dist/es/tabs/Tabs.vue.d.ts +46 -0
- package/dist/es/tabs/Tabs.vue.js +275 -0
- package/dist/es/tabs/Tabs.vue3.js +5 -0
- package/dist/es/tabs/index.d.ts +9 -0
- package/dist/es/tabs/index.js +8 -0
- package/dist/es/tabs/routeListener.d.ts +19 -0
- package/dist/es/tabs/routeListener.js +26 -0
- package/dist/es/tabs/style.css +29 -0
- package/dist/es/tabs/useTabs.d.ts +27 -0
- package/dist/es/tabs/useTabs.js +59 -0
- package/dist/es/tabs/useTabsStore.d.ts +53 -0
- package/dist/es/tabs/useTabsStore.js +208 -0
- package/dist/lib/components.d.ts +1 -0
- package/dist/lib/components.js +4 -1
- package/dist/lib/index.js +15 -0
- package/dist/lib/package.json.js +1 -1
- package/dist/lib/page-header/PageHeader.vue.js +3 -3
- package/dist/lib/page-header/PopoverMenu.vue.js +2 -2
- package/dist/lib/style.css +146 -0
- package/dist/lib/styles.css +1 -1
- package/dist/lib/tabs/TabContent.vue.d.ts +16 -0
- package/dist/lib/tabs/TabContent.vue.js +65 -0
- package/dist/lib/tabs/TabContent.vue3.js +5 -0
- package/dist/lib/tabs/Tabs.vue.d.ts +46 -0
- package/dist/lib/tabs/Tabs.vue.js +275 -0
- package/dist/lib/tabs/Tabs.vue3.js +5 -0
- package/dist/lib/tabs/index.d.ts +9 -0
- package/dist/lib/tabs/index.js +8 -0
- package/dist/lib/tabs/routeListener.d.ts +19 -0
- package/dist/lib/tabs/routeListener.js +26 -0
- package/dist/lib/tabs/style.css +29 -0
- package/dist/lib/tabs/useTabs.d.ts +27 -0
- package/dist/lib/tabs/useTabs.js +59 -0
- package/dist/lib/tabs/useTabsStore.d.ts +53 -0
- package/dist/lib/tabs/useTabsStore.js +208 -0
- package/package.json +10 -2
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
|
|
3
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
4
|
+
var __propIsEnum = Object.prototype.propertyIsEnumerable;
|
|
5
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
6
|
+
var __spreadValues = (a, b) => {
|
|
7
|
+
for (var prop in b || (b = {}))
|
|
8
|
+
if (__hasOwnProp.call(b, prop))
|
|
9
|
+
__defNormalProp(a, prop, b[prop]);
|
|
10
|
+
if (__getOwnPropSymbols)
|
|
11
|
+
for (var prop of __getOwnPropSymbols(b)) {
|
|
12
|
+
if (__propIsEnum.call(b, prop))
|
|
13
|
+
__defNormalProp(a, prop, b[prop]);
|
|
14
|
+
}
|
|
15
|
+
return a;
|
|
16
|
+
};
|
|
17
|
+
import { defineStore } from "pinia";
|
|
18
|
+
import { ref, shallowRef, computed, inject } from "vue";
|
|
19
|
+
const PERSIST_KEY_SYMBOL = Symbol("jky-tabs-persist-key");
|
|
20
|
+
const DEFAULT_PERSIST_KEY = "jky-tabs-state";
|
|
21
|
+
function getPersistConfig(persist, persistKey) {
|
|
22
|
+
const injectedPersistKey = inject(PERSIST_KEY_SYMBOL, void 0);
|
|
23
|
+
const finalPersistKey = injectedPersistKey || persistKey || DEFAULT_PERSIST_KEY;
|
|
24
|
+
return {
|
|
25
|
+
enabled: persist !== void 0 ? persist : false,
|
|
26
|
+
key: finalPersistKey
|
|
27
|
+
};
|
|
28
|
+
}
|
|
29
|
+
function loadFromStorage(key) {
|
|
30
|
+
try {
|
|
31
|
+
const stored = localStorage.getItem(key);
|
|
32
|
+
if (stored) {
|
|
33
|
+
return JSON.parse(stored);
|
|
34
|
+
}
|
|
35
|
+
} catch (error) {
|
|
36
|
+
console.warn("Failed to load tabs from storage:", error);
|
|
37
|
+
}
|
|
38
|
+
return null;
|
|
39
|
+
}
|
|
40
|
+
function saveToStorage(key, data) {
|
|
41
|
+
try {
|
|
42
|
+
localStorage.setItem(key, JSON.stringify(data));
|
|
43
|
+
} catch (error) {
|
|
44
|
+
console.warn("Failed to save tabs to storage:", error);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
function createTabsStore(persist, persistKey) {
|
|
48
|
+
const persistConfig = getPersistConfig(persist, persistKey);
|
|
49
|
+
const initialData = persistConfig.enabled ? loadFromStorage(persistConfig.key) : null;
|
|
50
|
+
const store = defineStore("jky-tabs", () => {
|
|
51
|
+
const tabList = ref((initialData == null ? void 0 : initialData.tabList) || []);
|
|
52
|
+
const activeTab = ref((initialData == null ? void 0 : initialData.activeTab) || "");
|
|
53
|
+
const cacheTabs = shallowRef((initialData == null ? void 0 : initialData.cacheTabs) || []);
|
|
54
|
+
const closedTabs = shallowRef((initialData == null ? void 0 : initialData.closedTabs) || []);
|
|
55
|
+
const cacheSet = computed(() => new Set(cacheTabs.value));
|
|
56
|
+
const closedSet = computed(() => new Set(closedTabs.value));
|
|
57
|
+
function persistState() {
|
|
58
|
+
if (!persistConfig.enabled)
|
|
59
|
+
return;
|
|
60
|
+
saveToStorage(persistConfig.key, {
|
|
61
|
+
tabList: tabList.value,
|
|
62
|
+
activeTab: activeTab.value,
|
|
63
|
+
cacheTabs: cacheTabs.value,
|
|
64
|
+
closedTabs: closedTabs.value
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
function addTab(tab) {
|
|
68
|
+
const index = tabList.value.findIndex((t) => t.name === tab.name);
|
|
69
|
+
if (index !== -1) {
|
|
70
|
+
tabList.value[index] = __spreadValues(__spreadValues({}, tabList.value[index]), tab);
|
|
71
|
+
} else {
|
|
72
|
+
tabList.value.push(tab);
|
|
73
|
+
}
|
|
74
|
+
persistState();
|
|
75
|
+
}
|
|
76
|
+
function updateTab(name, tab) {
|
|
77
|
+
const index = tabList.value.findIndex((t) => t.name === name);
|
|
78
|
+
if (index !== -1) {
|
|
79
|
+
tabList.value[index] = __spreadValues(__spreadValues({}, tabList.value[index]), tab);
|
|
80
|
+
persistState();
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
function removeTab(name) {
|
|
84
|
+
const index = tabList.value.findIndex((t) => t.name === name);
|
|
85
|
+
if (index !== -1) {
|
|
86
|
+
tabList.value.splice(index, 1);
|
|
87
|
+
removeCache(name);
|
|
88
|
+
if (activeTab.value === name && tabList.value.length > 0) {
|
|
89
|
+
const nextTab = tabList.value[index] || tabList.value[index - 1];
|
|
90
|
+
if (nextTab) {
|
|
91
|
+
activeTab.value = nextTab.name;
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
persistState();
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
function setActiveTab(name) {
|
|
98
|
+
activeTab.value = name;
|
|
99
|
+
persistState();
|
|
100
|
+
}
|
|
101
|
+
function addCache(name) {
|
|
102
|
+
if (!cacheSet.value.has(name)) {
|
|
103
|
+
cacheTabs.value = [...cacheTabs.value, name];
|
|
104
|
+
persistState();
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
function removeCache(name) {
|
|
108
|
+
cacheTabs.value = cacheTabs.value.filter((t) => t !== name);
|
|
109
|
+
persistState();
|
|
110
|
+
}
|
|
111
|
+
function bulkRemove(names) {
|
|
112
|
+
tabList.value = tabList.value.filter((tab) => !names.includes(tab.name));
|
|
113
|
+
names.forEach((name) => removeCache(name));
|
|
114
|
+
persistState();
|
|
115
|
+
}
|
|
116
|
+
function closeLeft(name) {
|
|
117
|
+
const index = tabList.value.findIndex((t) => t.name === name);
|
|
118
|
+
if (index > 0) {
|
|
119
|
+
const leftTabs = tabList.value.slice(0, index);
|
|
120
|
+
const removableTabs = leftTabs.filter((tab) => !tab.affix);
|
|
121
|
+
bulkRemove(removableTabs.map((tab) => tab.name));
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
function closeRight(name) {
|
|
125
|
+
const index = tabList.value.findIndex((t) => t.name === name);
|
|
126
|
+
if (index >= 0 && index < tabList.value.length - 1) {
|
|
127
|
+
const rightTabs = tabList.value.slice(index + 1);
|
|
128
|
+
const removableTabs = rightTabs.filter((tab) => !tab.affix);
|
|
129
|
+
bulkRemove(removableTabs.map((tab) => tab.name));
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
function closeOther(name) {
|
|
133
|
+
const removableTabs = tabList.value.filter(
|
|
134
|
+
(tab) => tab.name !== name && !tab.affix
|
|
135
|
+
);
|
|
136
|
+
bulkRemove(removableTabs.map((tab) => tab.name));
|
|
137
|
+
}
|
|
138
|
+
function closeAll() {
|
|
139
|
+
const removableTabs = tabList.value.filter((tab) => !tab.affix);
|
|
140
|
+
bulkRemove(removableTabs.map((tab) => tab.name));
|
|
141
|
+
}
|
|
142
|
+
function refresh(name) {
|
|
143
|
+
removeCache(name);
|
|
144
|
+
setTimeout(() => {
|
|
145
|
+
addCache(name);
|
|
146
|
+
}, 0);
|
|
147
|
+
}
|
|
148
|
+
function getTabList() {
|
|
149
|
+
return [...tabList.value];
|
|
150
|
+
}
|
|
151
|
+
function getCacheTabs() {
|
|
152
|
+
return [...cacheTabs.value];
|
|
153
|
+
}
|
|
154
|
+
function isClosed(name) {
|
|
155
|
+
return closedSet.value.has(name);
|
|
156
|
+
}
|
|
157
|
+
function isCached(name) {
|
|
158
|
+
return cacheSet.value.has(name);
|
|
159
|
+
}
|
|
160
|
+
function reset() {
|
|
161
|
+
tabList.value = [];
|
|
162
|
+
activeTab.value = "";
|
|
163
|
+
cacheTabs.value = [];
|
|
164
|
+
closedTabs.value = [];
|
|
165
|
+
persistState();
|
|
166
|
+
}
|
|
167
|
+
return {
|
|
168
|
+
tabList,
|
|
169
|
+
activeTab,
|
|
170
|
+
cacheTabs,
|
|
171
|
+
closedTabs,
|
|
172
|
+
addTab,
|
|
173
|
+
updateTab,
|
|
174
|
+
removeTab,
|
|
175
|
+
setActiveTab,
|
|
176
|
+
addCache,
|
|
177
|
+
removeCache,
|
|
178
|
+
bulkRemove,
|
|
179
|
+
closeLeft,
|
|
180
|
+
closeRight,
|
|
181
|
+
closeOther,
|
|
182
|
+
closeAll,
|
|
183
|
+
refresh,
|
|
184
|
+
getTabList,
|
|
185
|
+
getCacheTabs,
|
|
186
|
+
isClosed,
|
|
187
|
+
isCached,
|
|
188
|
+
reset
|
|
189
|
+
};
|
|
190
|
+
});
|
|
191
|
+
return store();
|
|
192
|
+
}
|
|
193
|
+
const storeInstances = /* @__PURE__ */ new Map();
|
|
194
|
+
function useTabsStore(persist, persistKey) {
|
|
195
|
+
const key = persistKey || DEFAULT_PERSIST_KEY;
|
|
196
|
+
if (!storeInstances.has(key)) {
|
|
197
|
+
storeInstances.set(key, () => createTabsStore(persist, persistKey));
|
|
198
|
+
}
|
|
199
|
+
return storeInstances.get(key)();
|
|
200
|
+
}
|
|
201
|
+
function resetTabsStore() {
|
|
202
|
+
storeInstances.clear();
|
|
203
|
+
}
|
|
204
|
+
export {
|
|
205
|
+
createTabsStore,
|
|
206
|
+
resetTabsStore,
|
|
207
|
+
useTabsStore
|
|
208
|
+
};
|
package/dist/lib/components.d.ts
CHANGED
package/dist/lib/components.js
CHANGED
|
@@ -11,6 +11,7 @@ const index$7 = require("./page-layout/index.js");
|
|
|
11
11
|
const index$8 = require("./page-table/index.js");
|
|
12
12
|
const index$9 = require("./rich-editor/index.js");
|
|
13
13
|
const index$a = require("./say-hello/index.js");
|
|
14
|
+
const index$b = require("./tabs/index.js");
|
|
14
15
|
const components = [
|
|
15
16
|
index$a.JkySayHello,
|
|
16
17
|
index$1.JkyButton,
|
|
@@ -22,7 +23,8 @@ const components = [
|
|
|
22
23
|
index.JkyAddInput,
|
|
23
24
|
index$9.JkyRichEditor,
|
|
24
25
|
index$8.JkyPageTable,
|
|
25
|
-
index$7.JkyPageLayout
|
|
26
|
+
index$7.JkyPageLayout,
|
|
27
|
+
index$b.JkyTabs
|
|
26
28
|
];
|
|
27
29
|
exports.JkyAddInput = index.JkyAddInput;
|
|
28
30
|
exports.JkyButton = index$1.JkyButton;
|
|
@@ -35,4 +37,5 @@ exports.JkyPageLayout = index$7.JkyPageLayout;
|
|
|
35
37
|
exports.JkyPageTable = index$8.JkyPageTable;
|
|
36
38
|
exports.JkyRichEditor = index$9.JkyRichEditor;
|
|
37
39
|
exports.JkySayHello = index$a.JkySayHello;
|
|
40
|
+
exports.JkyTabs = index$b.JkyTabs;
|
|
38
41
|
exports.components = components;
|
package/dist/lib/index.js
CHANGED
|
@@ -4,6 +4,8 @@ const components = require("./components.js");
|
|
|
4
4
|
const installer$1 = require("./utils/installer.js");
|
|
5
5
|
;/* empty css */
|
|
6
6
|
const resolver = require("./resolver.js");
|
|
7
|
+
const TabContent_vue_vue_type_script_setup_true_lang = require("./tabs/TabContent.vue.js");
|
|
8
|
+
;/* empty css */
|
|
7
9
|
const index = require("./add-input/index.js");
|
|
8
10
|
const index$1 = require("./button/index.js");
|
|
9
11
|
const index$2 = require("./button-nav/index.js");
|
|
@@ -15,11 +17,16 @@ const index$7 = require("./page-layout/index.js");
|
|
|
15
17
|
const index$8 = require("./page-table/index.js");
|
|
16
18
|
const index$9 = require("./rich-editor/index.js");
|
|
17
19
|
const index$a = require("./say-hello/index.js");
|
|
20
|
+
const index$b = require("./tabs/index.js");
|
|
21
|
+
const routeListener = require("./tabs/routeListener.js");
|
|
22
|
+
const useTabsStore = require("./tabs/useTabsStore.js");
|
|
23
|
+
const useTabs = require("./tabs/useTabs.js");
|
|
18
24
|
const installer = installer$1.createInstaller(components.components);
|
|
19
25
|
const install = installer.install;
|
|
20
26
|
const version = installer.version;
|
|
21
27
|
exports.components = components.components;
|
|
22
28
|
exports.JkyComponentLibResolver = resolver.JkyComponentLibResolver;
|
|
29
|
+
exports.JkyTabContent = TabContent_vue_vue_type_script_setup_true_lang.default;
|
|
23
30
|
exports.JkyAddInput = index.JkyAddInput;
|
|
24
31
|
exports.JkyButton = index$1.JkyButton;
|
|
25
32
|
exports.JkyButtonNav = index$2.JkyButtonNav;
|
|
@@ -31,6 +38,14 @@ exports.JkyPageLayout = index$7.JkyPageLayout;
|
|
|
31
38
|
exports.JkyPageTable = index$8.JkyPageTable;
|
|
32
39
|
exports.JkyRichEditor = index$9.JkyRichEditor;
|
|
33
40
|
exports.JkySayHello = index$a.JkySayHello;
|
|
41
|
+
exports.JkyTabs = index$b.JkyTabs;
|
|
42
|
+
exports.clearRouteListeners = routeListener.clearRouteListeners;
|
|
43
|
+
exports.emitRouteChange = routeListener.emitRouteChange;
|
|
44
|
+
exports.onRouteChange = routeListener.onRouteChange;
|
|
45
|
+
exports.createTabsStore = useTabsStore.createTabsStore;
|
|
46
|
+
exports.resetTabsStore = useTabsStore.resetTabsStore;
|
|
47
|
+
exports.useTabsStore = useTabsStore.useTabsStore;
|
|
48
|
+
exports.useTabs = useTabs.useTabs;
|
|
34
49
|
exports.default = installer;
|
|
35
50
|
exports.install = install;
|
|
36
51
|
exports.version = version;
|
package/dist/lib/package.json.js
CHANGED
|
@@ -76,13 +76,13 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
|
|
|
76
76
|
function handleCommand(command) {
|
|
77
77
|
emit("command", command);
|
|
78
78
|
}
|
|
79
|
-
const heightValue = computed(() => {
|
|
79
|
+
const heightValue = vue.computed(() => {
|
|
80
80
|
if (typeof props.height === "number") {
|
|
81
81
|
return `${props.height}px`;
|
|
82
82
|
}
|
|
83
83
|
return props.height;
|
|
84
84
|
});
|
|
85
|
-
const backgroundStyle = computed(() => {
|
|
85
|
+
const backgroundStyle = vue.computed(() => {
|
|
86
86
|
const style = {};
|
|
87
87
|
if (props.backgroundImage) {
|
|
88
88
|
style.backgroundImage = `url(${props.backgroundImage})`;
|
|
@@ -98,7 +98,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent(__spreadProps(__spreadValu
|
|
|
98
98
|
var _a, _b, _c, _d;
|
|
99
99
|
return vue.openBlock(), vue.createElementBlock("header", {
|
|
100
100
|
class: "jky-page-header",
|
|
101
|
-
style: vue.normalizeStyle([
|
|
101
|
+
style: vue.normalizeStyle([backgroundStyle.value, { height: heightValue.value }])
|
|
102
102
|
}, [
|
|
103
103
|
vue.createElementVNode("div", _hoisted_1, [
|
|
104
104
|
__props.showPopover && ((_b = (_a = __props.popover) == null ? void 0 : _a.menus) == null ? void 0 : _b.length) ? (vue.openBlock(), vue.createBlock(PopoverMenu_vue_vue_type_script_setup_true_lang.default, vue.normalizeProps(vue.mergeProps({ key: 0 }, __props.popover)), null, 16)) : vue.createCommentVNode("", true),
|
|
@@ -29,7 +29,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
29
29
|
},
|
|
30
30
|
setup(__props) {
|
|
31
31
|
const props = __props;
|
|
32
|
-
const popoverIndex = ref("");
|
|
32
|
+
const popoverIndex = vue.ref("");
|
|
33
33
|
function onPopoverButtonClick(item) {
|
|
34
34
|
var _a;
|
|
35
35
|
if (props.highlightCurrent) {
|
|
@@ -61,7 +61,7 @@ const _sfc_main = /* @__PURE__ */ vue.defineComponent({
|
|
|
61
61
|
key: item.value,
|
|
62
62
|
disabled: item.disabled,
|
|
63
63
|
class: vue.normalizeClass(["w-fit! h-fit! ml-0!", [__props.elButtonClass, item.elButtonClass]]),
|
|
64
|
-
type:
|
|
64
|
+
type: popoverIndex.value === item.value ? "primary" : __props.elButtonType || "default",
|
|
65
65
|
onClick: ($event) => onPopoverButtonClick(item)
|
|
66
66
|
}, {
|
|
67
67
|
default: vue.withCtx(() => [
|
package/dist/lib/style.css
CHANGED
|
@@ -61,13 +61,21 @@
|
|
|
61
61
|
"Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";
|
|
62
62
|
--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono",
|
|
63
63
|
"Courier New", monospace;
|
|
64
|
+
--color-red-100: oklch(93.6% .032 17.717);
|
|
64
65
|
--color-red-500: oklch(63.7% .237 25.331);
|
|
66
|
+
--color-red-700: oklch(50.5% .213 27.518);
|
|
67
|
+
--color-red-800: oklch(44.4% .177 26.899);
|
|
68
|
+
--color-orange-100: oklch(95.4% .038 75.164);
|
|
65
69
|
--color-orange-600: oklch(64.6% .222 41.116);
|
|
70
|
+
--color-orange-800: oklch(47% .157 37.304);
|
|
66
71
|
--color-amber-100: oklch(96.2% .059 95.617);
|
|
67
72
|
--color-yellow-50: oklch(98.7% .026 102.212);
|
|
73
|
+
--color-yellow-100: oklch(97.3% .071 103.193);
|
|
74
|
+
--color-yellow-500: oklch(79.5% .184 86.047);
|
|
68
75
|
--color-yellow-600: oklch(68.1% .162 75.834);
|
|
69
76
|
--color-yellow-800: oklch(47.6% .114 61.907);
|
|
70
77
|
--color-green-50: oklch(98.2% .018 155.826);
|
|
78
|
+
--color-green-100: oklch(96.2% .044 156.743);
|
|
71
79
|
--color-green-500: oklch(72.3% .219 149.579);
|
|
72
80
|
--color-green-600: oklch(62.7% .194 149.214);
|
|
73
81
|
--color-green-800: oklch(44.8% .119 151.328);
|
|
@@ -83,12 +91,14 @@
|
|
|
83
91
|
--color-purple-500: oklch(62.7% .265 303.9);
|
|
84
92
|
--color-purple-600: oklch(55.8% .288 302.321);
|
|
85
93
|
--color-purple-800: oklch(43.8% .218 303.724);
|
|
94
|
+
--color-gray-50: oklch(98.5% .002 247.839);
|
|
86
95
|
--color-gray-100: oklch(96.7% .003 264.542);
|
|
87
96
|
--color-gray-300: oklch(87.2% .01 258.338);
|
|
88
97
|
--color-gray-400: oklch(70.7% .022 261.325);
|
|
89
98
|
--color-gray-500: oklch(55.1% .027 264.364);
|
|
90
99
|
--color-gray-600: oklch(44.6% .03 256.802);
|
|
91
100
|
--color-gray-700: oklch(37.3% .034 259.733);
|
|
101
|
+
--color-gray-800: oklch(27.8% .033 256.848);
|
|
92
102
|
--color-white: #fff;
|
|
93
103
|
--spacing: .25rem;
|
|
94
104
|
--text-xs: .75rem;
|
|
@@ -499,6 +509,10 @@
|
|
|
499
509
|
margin-top: calc(var(--spacing) * 4);
|
|
500
510
|
}
|
|
501
511
|
|
|
512
|
+
.mt-6 {
|
|
513
|
+
margin-top: calc(var(--spacing) * 6);
|
|
514
|
+
}
|
|
515
|
+
|
|
502
516
|
.mt-8 {
|
|
503
517
|
margin-top: calc(var(--spacing) * 8);
|
|
504
518
|
}
|
|
@@ -507,6 +521,14 @@
|
|
|
507
521
|
margin-right: calc(var(--spacing) * 2);
|
|
508
522
|
}
|
|
509
523
|
|
|
524
|
+
.mb-0 {
|
|
525
|
+
margin-bottom: calc(var(--spacing) * 0);
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
.mb-1 {
|
|
529
|
+
margin-bottom: calc(var(--spacing) * 1);
|
|
530
|
+
}
|
|
531
|
+
|
|
510
532
|
.mb-2 {
|
|
511
533
|
margin-bottom: calc(var(--spacing) * 2);
|
|
512
534
|
}
|
|
@@ -519,6 +541,10 @@
|
|
|
519
541
|
margin-bottom: calc(var(--spacing) * 4);
|
|
520
542
|
}
|
|
521
543
|
|
|
544
|
+
.mb-6 {
|
|
545
|
+
margin-bottom: calc(var(--spacing) * 6);
|
|
546
|
+
}
|
|
547
|
+
|
|
522
548
|
.mb-8 {
|
|
523
549
|
margin-bottom: calc(var(--spacing) * 8);
|
|
524
550
|
}
|
|
@@ -1067,6 +1093,10 @@
|
|
|
1067
1093
|
mask-repeat: no-repeat;
|
|
1068
1094
|
}
|
|
1069
1095
|
|
|
1096
|
+
.block {
|
|
1097
|
+
display: block;
|
|
1098
|
+
}
|
|
1099
|
+
|
|
1070
1100
|
.contents {
|
|
1071
1101
|
display: contents;
|
|
1072
1102
|
}
|
|
@@ -1208,6 +1238,10 @@
|
|
|
1208
1238
|
list-style-type: disc;
|
|
1209
1239
|
}
|
|
1210
1240
|
|
|
1241
|
+
.grid-cols-1 {
|
|
1242
|
+
grid-template-columns: repeat(1, minmax(0, 1fr));
|
|
1243
|
+
}
|
|
1244
|
+
|
|
1211
1245
|
.grid-cols-3 {
|
|
1212
1246
|
grid-template-columns: repeat(3, minmax(0, 1fr));
|
|
1213
1247
|
}
|
|
@@ -1244,6 +1278,10 @@
|
|
|
1244
1278
|
justify-content: flex-end;
|
|
1245
1279
|
}
|
|
1246
1280
|
|
|
1281
|
+
.gap-1 {
|
|
1282
|
+
gap: calc(var(--spacing) * 1);
|
|
1283
|
+
}
|
|
1284
|
+
|
|
1247
1285
|
.gap-2 {
|
|
1248
1286
|
gap: calc(var(--spacing) * 2);
|
|
1249
1287
|
}
|
|
@@ -1252,6 +1290,24 @@
|
|
|
1252
1290
|
gap: calc(var(--spacing) * 4);
|
|
1253
1291
|
}
|
|
1254
1292
|
|
|
1293
|
+
:where(.space-y-1 > :not(:last-child)) {
|
|
1294
|
+
--tw-space-y-reverse: 0;
|
|
1295
|
+
margin-block-start: calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));
|
|
1296
|
+
margin-block-end: calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)));
|
|
1297
|
+
}
|
|
1298
|
+
|
|
1299
|
+
:where(.space-y-2 > :not(:last-child)) {
|
|
1300
|
+
--tw-space-y-reverse: 0;
|
|
1301
|
+
margin-block-start: calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));
|
|
1302
|
+
margin-block-end: calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)));
|
|
1303
|
+
}
|
|
1304
|
+
|
|
1305
|
+
:where(.space-y-3 > :not(:last-child)) {
|
|
1306
|
+
--tw-space-y-reverse: 0;
|
|
1307
|
+
margin-block-start: calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));
|
|
1308
|
+
margin-block-end: calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)));
|
|
1309
|
+
}
|
|
1310
|
+
|
|
1255
1311
|
:where(.space-y-4 > :not(:last-child)) {
|
|
1256
1312
|
--tw-space-y-reverse: 0;
|
|
1257
1313
|
margin-block-start: calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));
|
|
@@ -1327,6 +1383,14 @@
|
|
|
1327
1383
|
border-color: var(--color-gray-300);
|
|
1328
1384
|
}
|
|
1329
1385
|
|
|
1386
|
+
.border-green-500 {
|
|
1387
|
+
border-color: var(--color-green-500);
|
|
1388
|
+
}
|
|
1389
|
+
|
|
1390
|
+
.border-yellow-500 {
|
|
1391
|
+
border-color: var(--color-yellow-500);
|
|
1392
|
+
}
|
|
1393
|
+
|
|
1330
1394
|
.border-l-\(--el-color-primary\) {
|
|
1331
1395
|
border-left-color: var(--el-color-primary);
|
|
1332
1396
|
}
|
|
@@ -1397,6 +1461,10 @@
|
|
|
1397
1461
|
background-color: var(--color-blue-500);
|
|
1398
1462
|
}
|
|
1399
1463
|
|
|
1464
|
+
.bg-gray-50 {
|
|
1465
|
+
background-color: var(--color-gray-50);
|
|
1466
|
+
}
|
|
1467
|
+
|
|
1400
1468
|
.bg-gray-100 {
|
|
1401
1469
|
background-color: var(--color-gray-100);
|
|
1402
1470
|
}
|
|
@@ -1413,6 +1481,14 @@
|
|
|
1413
1481
|
background-color: var(--color-green-50);
|
|
1414
1482
|
}
|
|
1415
1483
|
|
|
1484
|
+
.bg-green-100 {
|
|
1485
|
+
background-color: var(--color-green-100);
|
|
1486
|
+
}
|
|
1487
|
+
|
|
1488
|
+
.bg-green-500 {
|
|
1489
|
+
background-color: var(--color-green-500);
|
|
1490
|
+
}
|
|
1491
|
+
|
|
1416
1492
|
.bg-green-500\! {
|
|
1417
1493
|
background-color: var(--color-green-500) !important;
|
|
1418
1494
|
}
|
|
@@ -1421,14 +1497,26 @@
|
|
|
1421
1497
|
background-color: var(--color-indigo-50);
|
|
1422
1498
|
}
|
|
1423
1499
|
|
|
1500
|
+
.bg-orange-100 {
|
|
1501
|
+
background-color: var(--color-orange-100);
|
|
1502
|
+
}
|
|
1503
|
+
|
|
1424
1504
|
.bg-purple-50 {
|
|
1425
1505
|
background-color: var(--color-purple-50);
|
|
1426
1506
|
}
|
|
1427
1507
|
|
|
1508
|
+
.bg-purple-500 {
|
|
1509
|
+
background-color: var(--color-purple-500);
|
|
1510
|
+
}
|
|
1511
|
+
|
|
1428
1512
|
.bg-purple-500\! {
|
|
1429
1513
|
background-color: var(--color-purple-500) !important;
|
|
1430
1514
|
}
|
|
1431
1515
|
|
|
1516
|
+
.bg-red-100 {
|
|
1517
|
+
background-color: var(--color-red-100);
|
|
1518
|
+
}
|
|
1519
|
+
|
|
1432
1520
|
.bg-red-500\! {
|
|
1433
1521
|
background-color: var(--color-red-500) !important;
|
|
1434
1522
|
}
|
|
@@ -1445,6 +1533,10 @@
|
|
|
1445
1533
|
background-color: var(--color-yellow-50);
|
|
1446
1534
|
}
|
|
1447
1535
|
|
|
1536
|
+
.bg-yellow-100 {
|
|
1537
|
+
background-color: var(--color-yellow-100);
|
|
1538
|
+
}
|
|
1539
|
+
|
|
1448
1540
|
.bg-linear-to-r {
|
|
1449
1541
|
--tw-gradient-position: to right;
|
|
1450
1542
|
}
|
|
@@ -1477,6 +1569,10 @@
|
|
|
1477
1569
|
padding: calc(var(--spacing) * 2);
|
|
1478
1570
|
}
|
|
1479
1571
|
|
|
1572
|
+
.p-3 {
|
|
1573
|
+
padding: calc(var(--spacing) * 3);
|
|
1574
|
+
}
|
|
1575
|
+
|
|
1480
1576
|
.p-4 {
|
|
1481
1577
|
padding: calc(var(--spacing) * 4);
|
|
1482
1578
|
}
|
|
@@ -1509,6 +1605,10 @@
|
|
|
1509
1605
|
padding-block: calc(var(--spacing) * 2);
|
|
1510
1606
|
}
|
|
1511
1607
|
|
|
1608
|
+
.py-8 {
|
|
1609
|
+
padding-block: calc(var(--spacing) * 8);
|
|
1610
|
+
}
|
|
1611
|
+
|
|
1512
1612
|
.pr-0 {
|
|
1513
1613
|
padding-right: calc(var(--spacing) * 0);
|
|
1514
1614
|
}
|
|
@@ -1634,6 +1734,10 @@
|
|
|
1634
1734
|
color: var(--color-gray-700);
|
|
1635
1735
|
}
|
|
1636
1736
|
|
|
1737
|
+
.text-gray-800 {
|
|
1738
|
+
color: var(--color-gray-800);
|
|
1739
|
+
}
|
|
1740
|
+
|
|
1637
1741
|
.text-green-600 {
|
|
1638
1742
|
color: var(--color-green-600);
|
|
1639
1743
|
}
|
|
@@ -1654,6 +1758,10 @@
|
|
|
1654
1758
|
color: var(--color-orange-600);
|
|
1655
1759
|
}
|
|
1656
1760
|
|
|
1761
|
+
.text-orange-800 {
|
|
1762
|
+
color: var(--color-orange-800);
|
|
1763
|
+
}
|
|
1764
|
+
|
|
1657
1765
|
.text-purple-600 {
|
|
1658
1766
|
color: var(--color-purple-600);
|
|
1659
1767
|
}
|
|
@@ -1666,6 +1774,10 @@
|
|
|
1666
1774
|
color: var(--color-red-500);
|
|
1667
1775
|
}
|
|
1668
1776
|
|
|
1777
|
+
.text-red-800 {
|
|
1778
|
+
color: var(--color-red-800);
|
|
1779
|
+
}
|
|
1780
|
+
|
|
1669
1781
|
.text-white {
|
|
1670
1782
|
color: var(--color-white);
|
|
1671
1783
|
}
|
|
@@ -1690,6 +1802,10 @@
|
|
|
1690
1802
|
font-style: italic;
|
|
1691
1803
|
}
|
|
1692
1804
|
|
|
1805
|
+
.line-through {
|
|
1806
|
+
text-decoration-line: line-through;
|
|
1807
|
+
}
|
|
1808
|
+
|
|
1693
1809
|
.underline {
|
|
1694
1810
|
text-decoration-line: underline;
|
|
1695
1811
|
}
|
|
@@ -1719,7 +1835,33 @@
|
|
|
1719
1835
|
transition-duration: var(--tw-duration, var(--default-transition-duration));
|
|
1720
1836
|
}
|
|
1721
1837
|
|
|
1838
|
+
.transition-colors {
|
|
1839
|
+
transition-property: color, background-color, border-color, outline-color, text-decoration-color, fill, stroke, --tw-gradient-from, --tw-gradient-via, --tw-gradient-to;
|
|
1840
|
+
transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
|
|
1841
|
+
transition-duration: var(--tw-duration, var(--default-transition-duration));
|
|
1842
|
+
}
|
|
1843
|
+
|
|
1722
1844
|
@media (hover: hover) {
|
|
1845
|
+
.hover\:bg-blue-600:hover {
|
|
1846
|
+
background-color: var(--color-blue-600);
|
|
1847
|
+
}
|
|
1848
|
+
|
|
1849
|
+
.hover\:bg-gray-50:hover {
|
|
1850
|
+
background-color: var(--color-gray-50);
|
|
1851
|
+
}
|
|
1852
|
+
|
|
1853
|
+
.hover\:bg-green-600:hover {
|
|
1854
|
+
background-color: var(--color-green-600);
|
|
1855
|
+
}
|
|
1856
|
+
|
|
1857
|
+
.hover\:bg-purple-600:hover {
|
|
1858
|
+
background-color: var(--color-purple-600);
|
|
1859
|
+
}
|
|
1860
|
+
|
|
1861
|
+
.hover\:text-red-700:hover {
|
|
1862
|
+
color: var(--color-red-700);
|
|
1863
|
+
}
|
|
1864
|
+
|
|
1723
1865
|
.hover\:opacity-70:hover {
|
|
1724
1866
|
opacity: .7;
|
|
1725
1867
|
}
|
|
@@ -1762,6 +1904,10 @@
|
|
|
1762
1904
|
.md\:hidden {
|
|
1763
1905
|
display: none;
|
|
1764
1906
|
}
|
|
1907
|
+
|
|
1908
|
+
.md\:grid-cols-2 {
|
|
1909
|
+
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
1910
|
+
}
|
|
1765
1911
|
}
|
|
1766
1912
|
|
|
1767
1913
|
@media (min-width: 64rem) {
|