vueless 0.0.596 → 0.0.598
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/composables/useUI.ts +55 -37
- package/constants.js +1 -0
- package/package.json +1 -1
- package/types.ts +3 -2
- package/ui.button/UButton.vue +7 -48
- package/ui.button/config.ts +28 -4
- package/ui.button/storybook/stories.ts +2 -0
- package/ui.button/types.ts +0 -3
- package/utils/node/dynamicProps.js +27 -27
- package/utils/node/helper.js +20 -16
- package/utils/node/loaderIcon.js +3 -4
- package/utils/node/tailwindSafelist.js +2 -3
- package/utils/node/vuelessConfig.js +3 -15
- package/web-types.json +1 -13
- package/assets/icons/vueless/add.svg +0 -1
- package/assets/icons/vueless/apps.svg +0 -1
- package/assets/icons/vueless/arrow_back.svg +0 -1
- package/assets/icons/vueless/attach_file.svg +0 -1
- package/assets/icons/vueless/calendar_month-fill.svg +0 -1
- package/assets/icons/vueless/check.svg +0 -1
- package/assets/icons/vueless/check_circle.svg +0 -1
- package/assets/icons/vueless/chevron_left.svg +0 -1
- package/assets/icons/vueless/chevron_right.svg +0 -1
- package/assets/icons/vueless/close.svg +0 -1
- package/assets/icons/vueless/close_small.svg +0 -1
- package/assets/icons/vueless/delete.svg +0 -1
- package/assets/icons/vueless/description.svg +0 -1
- package/assets/icons/vueless/drag_indicator.svg +0 -1
- package/assets/icons/vueless/edit.svg +0 -1
- package/assets/icons/vueless/edit_note.svg +0 -1
- package/assets/icons/vueless/emoji_food_beverage.svg +0 -1
- package/assets/icons/vueless/error.svg +0 -1
- package/assets/icons/vueless/expand_more.svg +0 -1
- package/assets/icons/vueless/first_page.svg +0 -1
- package/assets/icons/vueless/image.svg +0 -1
- package/assets/icons/vueless/keyboard_arrow_down.svg +0 -1
- package/assets/icons/vueless/keyboard_arrow_left.svg +0 -1
- package/assets/icons/vueless/keyboard_arrow_right.svg +0 -1
- package/assets/icons/vueless/label.svg +0 -1
- package/assets/icons/vueless/last_page.svg +0 -1
- package/assets/icons/vueless/remove.svg +0 -1
- package/assets/icons/vueless/search.svg +0 -1
- package/assets/icons/vueless/star-fill.svg +0 -1
- package/assets/icons/vueless/star.svg +0 -1
- package/assets/icons/vueless/title.svg +0 -1
- package/assets/icons/vueless/visibility-fill.svg +0 -1
- package/assets/icons/vueless/visibility_off-fill.svg +0 -1
- package/assets/icons/vueless/warning.svg +0 -1
package/composables/useUI.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { ref, watch, watchEffect, getCurrentInstance, toValue, useAttrs, computed } from "vue";
|
|
2
|
+
import { merge } from "lodash-es";
|
|
2
3
|
|
|
3
4
|
import { cx, cva, setColor, getColor, vuelessConfig, getMergedConfig } from "../utils/ui.ts";
|
|
4
5
|
import { isCSR } from "../utils/helper.ts";
|
|
@@ -14,6 +15,7 @@ import type { Ref, ComputedRef } from "vue";
|
|
|
14
15
|
import type {
|
|
15
16
|
CVA,
|
|
16
17
|
UseUI,
|
|
18
|
+
Defaults,
|
|
17
19
|
KeyAttrs,
|
|
18
20
|
KeysAttrs,
|
|
19
21
|
Strategies,
|
|
@@ -22,7 +24,7 @@ import type {
|
|
|
22
24
|
UnknownObject,
|
|
23
25
|
ComponentNames,
|
|
24
26
|
ComponentConfig,
|
|
25
|
-
|
|
27
|
+
NestedComponent,
|
|
26
28
|
VuelessComponentInstance,
|
|
27
29
|
} from "../types.ts";
|
|
28
30
|
|
|
@@ -44,7 +46,7 @@ export default function useUI<T>(
|
|
|
44
46
|
? (parent?.type.__name as ComponentNames)
|
|
45
47
|
: (type.__name as ComponentNames);
|
|
46
48
|
|
|
47
|
-
const globalConfig = vuelessConfig?.component?.[componentName] || {}
|
|
49
|
+
const globalConfig = (vuelessConfig?.component?.[componentName] || {}) as ComponentConfig<T>;
|
|
48
50
|
|
|
49
51
|
const vuelessStrategy = Object.values(STRATEGY_TYPE).includes(vuelessConfig.strategy || "")
|
|
50
52
|
? (vuelessConfig.strategy as Strategies)
|
|
@@ -107,31 +109,6 @@ export default function useUI<T>(
|
|
|
107
109
|
if (isSystemKey(key)) continue;
|
|
108
110
|
|
|
109
111
|
keysAttrs[`${key}Attrs`] = getAttrs(key, getClasses(key, mutatedProps));
|
|
110
|
-
|
|
111
|
-
const baseClasses = getBaseClasses(config.value[key]);
|
|
112
|
-
const extendsKeys = getExtendsKeys(baseClasses);
|
|
113
|
-
|
|
114
|
-
if (extendsKeys.length) {
|
|
115
|
-
const keyAttrs = keysAttrs[`${key}Attrs`];
|
|
116
|
-
|
|
117
|
-
keysAttrs[`${key}Attrs`] = computed(() => {
|
|
118
|
-
const extendsClasses = extendsKeys.map((key) => toValue(getClasses(key, mutatedProps)));
|
|
119
|
-
|
|
120
|
-
return {
|
|
121
|
-
...keyAttrs.value,
|
|
122
|
-
class: cx([
|
|
123
|
-
...extendsClasses,
|
|
124
|
-
keyAttrs.value.class?.replaceAll(EXTENDS_PATTERN_REG_EXP, ""),
|
|
125
|
-
]),
|
|
126
|
-
// TODO: Add ability to merge array of keys
|
|
127
|
-
config: getMergedConfig({
|
|
128
|
-
defaultConfig: config.value[extendsKeys[0]],
|
|
129
|
-
globalConfig: keyAttrs.value.config,
|
|
130
|
-
propsConfig: propsConfig[extendsKeys[0]],
|
|
131
|
-
}),
|
|
132
|
-
};
|
|
133
|
-
}) as ComputedRef<KeyAttrsWithConfig<T>>;
|
|
134
|
-
}
|
|
135
112
|
}
|
|
136
113
|
|
|
137
114
|
return keysAttrs;
|
|
@@ -168,24 +145,65 @@ export default function useUI<T>(
|
|
|
168
145
|
}
|
|
169
146
|
|
|
170
147
|
function updateVuelessAttrs() {
|
|
171
|
-
|
|
148
|
+
let configAttr: NestedComponent = {};
|
|
149
|
+
let extendsConfigAttr: NestedComponent = {};
|
|
150
|
+
let extendsClasses: string[] = [];
|
|
172
151
|
|
|
173
|
-
|
|
174
|
-
|
|
152
|
+
const baseClasses = getBaseClasses(config.value[configKey]);
|
|
153
|
+
const extendsKeys = getExtendsKeys(baseClasses);
|
|
175
154
|
|
|
176
|
-
if (typeof
|
|
177
|
-
configAttr =
|
|
178
|
-
|
|
155
|
+
if (typeof config.value[configKey] === "object") {
|
|
156
|
+
configAttr = config.value[configKey] as NestedComponent;
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
if (extendsKeys.length) {
|
|
160
|
+
extendsClasses = extendsKeys.map((key) => toValue(getClasses(key, mutatedProps)));
|
|
161
|
+
extendsConfigAttr = getExtendsConfig(extendsKeys);
|
|
179
162
|
}
|
|
180
163
|
|
|
181
164
|
vuelessAttrs.value = {
|
|
182
165
|
...commonAttrs,
|
|
183
|
-
class: toValue(classes),
|
|
184
|
-
config: configAttr,
|
|
185
|
-
...
|
|
166
|
+
class: cx([...extendsClasses, toValue(classes).replaceAll(EXTENDS_PATTERN_REG_EXP, "")]),
|
|
167
|
+
config: merge(configAttr, extendsConfigAttr),
|
|
168
|
+
...getDefaults({
|
|
169
|
+
...(configAttr.defaults || {}),
|
|
170
|
+
...(extendsConfigAttr.defaults || {}),
|
|
171
|
+
}),
|
|
186
172
|
};
|
|
187
173
|
}
|
|
188
174
|
|
|
175
|
+
/**
|
|
176
|
+
* Merge extends nested component configs.
|
|
177
|
+
* TODO: Add ability to merge multiple keys in one (now works for merging only 1 first key).
|
|
178
|
+
*/
|
|
179
|
+
function getExtendsConfig(extendsKeys: string[]) {
|
|
180
|
+
const [firstKey] = extendsKeys;
|
|
181
|
+
|
|
182
|
+
return getMergedConfig({
|
|
183
|
+
defaultConfig: config.value[firstKey],
|
|
184
|
+
globalConfig: globalConfig[firstKey],
|
|
185
|
+
propsConfig: propsConfig[firstKey],
|
|
186
|
+
}) as NestedComponent;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* Conditionally set props default value for nested components based on parent component prop value.
|
|
191
|
+
* For example, set icon size for the nested component based on the size of the parent component.
|
|
192
|
+
* Use an object where key = parent component prop value, value = nested component prop value.
|
|
193
|
+
* */
|
|
194
|
+
function getDefaults(defaultAttrs: NestedComponent["defaults"]) {
|
|
195
|
+
const defaults: Defaults = {};
|
|
196
|
+
|
|
197
|
+
for (const key in defaultAttrs) {
|
|
198
|
+
defaults[key] =
|
|
199
|
+
typeof defaultAttrs[key] === "object"
|
|
200
|
+
? defaultAttrs[key][String(props[key])]
|
|
201
|
+
: defaultAttrs[key];
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
return defaults;
|
|
205
|
+
}
|
|
206
|
+
|
|
189
207
|
return vuelessAttrs;
|
|
190
208
|
}
|
|
191
209
|
|
|
@@ -195,7 +213,7 @@ export default function useUI<T>(
|
|
|
195
213
|
/**
|
|
196
214
|
* Return base classes.
|
|
197
215
|
*/
|
|
198
|
-
function getBaseClasses(value: string | CVA) {
|
|
216
|
+
function getBaseClasses(value: string | CVA | undefined) {
|
|
199
217
|
return typeof value === "object" ? value.base || "" : value || "";
|
|
200
218
|
}
|
|
201
219
|
|
package/constants.js
CHANGED
|
@@ -217,6 +217,7 @@ export const VUELESS_LOCAL_DIR = `src`;
|
|
|
217
217
|
export const VUELESS_ICONS_DIR = `${VUELESS_DIR}/${ICONS_DIR}`;
|
|
218
218
|
export const VUELESS_ICONS_LOCAL_DIR = `src/${ICONS_DIR}`;
|
|
219
219
|
export const VUELESS_ICONS_CACHED_DIR = `${VUELESS_CACHE_DIR}/${ICONS_DIR}`;
|
|
220
|
+
export const VUELESS_CONFIGS_CACHED_DIR = `${VUELESS_CACHE_DIR}/configs`;
|
|
220
221
|
|
|
221
222
|
/* Other */
|
|
222
223
|
export const PX_IN_REM = 16;
|
package/package.json
CHANGED
package/types.ts
CHANGED
|
@@ -241,12 +241,13 @@ export type ComponentConfig<T> = Partial<{
|
|
|
241
241
|
NestedComponent;
|
|
242
242
|
|
|
243
243
|
export interface NestedComponent {
|
|
244
|
-
|
|
244
|
+
defaults?: Record<string, string | UnknownObject>;
|
|
245
|
+
[key: string]: Record<string, string | UnknownObject> | string | undefined;
|
|
245
246
|
}
|
|
246
247
|
|
|
247
248
|
export type Defaults = {
|
|
248
249
|
color?: string;
|
|
249
|
-
[key: string]: unknown;
|
|
250
|
+
[key: string]: unknown | UnknownObject;
|
|
250
251
|
};
|
|
251
252
|
|
|
252
253
|
export interface Transition {
|
package/ui.button/UButton.vue
CHANGED
|
@@ -11,7 +11,7 @@ import UIcon from "../ui.image-icon/UIcon.vue";
|
|
|
11
11
|
import defaultConfig from "./config.ts";
|
|
12
12
|
import { COMPONENT_NAME } from "./constants.ts";
|
|
13
13
|
|
|
14
|
-
import type { Props,
|
|
14
|
+
import type { Props, Config } from "./types.ts";
|
|
15
15
|
|
|
16
16
|
defineOptions({ inheritAttrs: false });
|
|
17
17
|
|
|
@@ -27,32 +27,6 @@ const buttonRef = ref<HTMLElement | null>(null);
|
|
|
27
27
|
const buttonStyle = ref({});
|
|
28
28
|
const buttonWidth = ref(0);
|
|
29
29
|
|
|
30
|
-
const loaderSize = computed(() => {
|
|
31
|
-
const sizes = {
|
|
32
|
-
"2xs": "sm",
|
|
33
|
-
xs: "sm",
|
|
34
|
-
sm: "md",
|
|
35
|
-
md: "md",
|
|
36
|
-
lg: "lg",
|
|
37
|
-
xl: "lg",
|
|
38
|
-
};
|
|
39
|
-
|
|
40
|
-
return sizes[props.size] as LoaderSize;
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
const iconSize = computed(() => {
|
|
44
|
-
const sizes = {
|
|
45
|
-
"2xs": "2xs",
|
|
46
|
-
xs: "xs",
|
|
47
|
-
sm: "sm",
|
|
48
|
-
md: "sm",
|
|
49
|
-
lg: "sm",
|
|
50
|
-
xl: "sm",
|
|
51
|
-
};
|
|
52
|
-
|
|
53
|
-
return sizes[props.size] as IconSize;
|
|
54
|
-
});
|
|
55
|
-
|
|
56
30
|
watch(
|
|
57
31
|
() => props.loading,
|
|
58
32
|
(newValue, oldValue) => {
|
|
@@ -111,7 +85,7 @@ const { buttonAttrs, loaderAttrs, leftIconAttrs, rightIconAttrs, centerIconAttrs
|
|
|
111
85
|
:data-test="dataTest"
|
|
112
86
|
>
|
|
113
87
|
<template v-if="loading">
|
|
114
|
-
<ULoader :loading="loading"
|
|
88
|
+
<ULoader :loading="loading" color="inherit" v-bind="loaderAttrs" />
|
|
115
89
|
</template>
|
|
116
90
|
|
|
117
91
|
<template v-else>
|
|
@@ -120,15 +94,8 @@ const { buttonAttrs, loaderAttrs, leftIconAttrs, rightIconAttrs, centerIconAttrs
|
|
|
120
94
|
@binding {string} icon-name
|
|
121
95
|
@binding {string} icon-size
|
|
122
96
|
-->
|
|
123
|
-
<slot name="left" :icon-name="leftIcon"
|
|
124
|
-
<UIcon
|
|
125
|
-
v-if="leftIcon"
|
|
126
|
-
internal
|
|
127
|
-
color="inherit"
|
|
128
|
-
:name="leftIcon"
|
|
129
|
-
:size="iconSize"
|
|
130
|
-
v-bind="leftIconAttrs"
|
|
131
|
-
/>
|
|
97
|
+
<slot name="left" :icon-name="leftIcon">
|
|
98
|
+
<UIcon v-if="leftIcon" internal color="inherit" :name="leftIcon" v-bind="leftIconAttrs" />
|
|
132
99
|
</slot>
|
|
133
100
|
|
|
134
101
|
<!--
|
|
@@ -137,15 +104,8 @@ const { buttonAttrs, loaderAttrs, leftIconAttrs, rightIconAttrs, centerIconAttrs
|
|
|
137
104
|
@binding {string} icon-name
|
|
138
105
|
@binding {string} icon-size
|
|
139
106
|
-->
|
|
140
|
-
<slot name="default" :label="label" :icon-name="icon"
|
|
141
|
-
<UIcon
|
|
142
|
-
v-if="icon"
|
|
143
|
-
internal
|
|
144
|
-
color="inherit"
|
|
145
|
-
:name="icon"
|
|
146
|
-
:size="iconSize"
|
|
147
|
-
v-bind="centerIconAttrs"
|
|
148
|
-
/>
|
|
107
|
+
<slot name="default" :label="label" :icon-name="icon">
|
|
108
|
+
<UIcon v-if="icon" internal color="inherit" :name="icon" v-bind="centerIconAttrs" />
|
|
149
109
|
<template v-else>
|
|
150
110
|
{{ label }}
|
|
151
111
|
</template>
|
|
@@ -156,13 +116,12 @@ const { buttonAttrs, loaderAttrs, leftIconAttrs, rightIconAttrs, centerIconAttrs
|
|
|
156
116
|
@binding {string} icon-name
|
|
157
117
|
@binding {string} icon-size
|
|
158
118
|
-->
|
|
159
|
-
<slot name="right" :icon-name="rightIcon"
|
|
119
|
+
<slot name="right" :icon-name="rightIcon">
|
|
160
120
|
<UIcon
|
|
161
121
|
v-if="rightIcon"
|
|
162
122
|
internal
|
|
163
123
|
color="inherit"
|
|
164
124
|
:name="rightIcon"
|
|
165
|
-
:size="iconSize"
|
|
166
125
|
v-bind="rightIconAttrs"
|
|
167
126
|
/>
|
|
168
127
|
</slot>
|
package/ui.button/config.ts
CHANGED
|
@@ -149,10 +149,34 @@ export default /*tw*/ {
|
|
|
149
149
|
{ square: true, size: "xl", class: "p-3.5" },
|
|
150
150
|
],
|
|
151
151
|
},
|
|
152
|
-
loader:
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
152
|
+
loader: {
|
|
153
|
+
base: "{ULoader}",
|
|
154
|
+
defaults: {
|
|
155
|
+
size: {
|
|
156
|
+
"2xs": "sm",
|
|
157
|
+
xs: "sm",
|
|
158
|
+
sm: "md",
|
|
159
|
+
md: "md",
|
|
160
|
+
lg: "lg",
|
|
161
|
+
xl: "lg",
|
|
162
|
+
},
|
|
163
|
+
},
|
|
164
|
+
},
|
|
165
|
+
leftIcon: "{UIcon} {>centerIcon}",
|
|
166
|
+
rightIcon: "{UIcon} {>centerIcon}",
|
|
167
|
+
centerIcon: {
|
|
168
|
+
base: "{UIcon}",
|
|
169
|
+
defaults: {
|
|
170
|
+
size: {
|
|
171
|
+
"2xs": "2xs",
|
|
172
|
+
xs: "xs",
|
|
173
|
+
sm: "sm",
|
|
174
|
+
md: "sm",
|
|
175
|
+
lg: "sm",
|
|
176
|
+
xl: "sm",
|
|
177
|
+
},
|
|
178
|
+
},
|
|
179
|
+
},
|
|
156
180
|
defaults: {
|
|
157
181
|
color: "brand",
|
|
158
182
|
variant: "primary",
|
|
@@ -172,10 +172,12 @@ export const IconProps: StoryFn<UButtonArgs> = (args) => ({
|
|
|
172
172
|
template: `
|
|
173
173
|
<URow no-mobile>
|
|
174
174
|
<UButton
|
|
175
|
+
v-bind="args"
|
|
175
176
|
left-icon="download"
|
|
176
177
|
label="Download"
|
|
177
178
|
/>
|
|
178
179
|
<UButton
|
|
180
|
+
v-bind="args"
|
|
179
181
|
right-icon="menu"
|
|
180
182
|
label="Menu"
|
|
181
183
|
/>
|
package/ui.button/types.ts
CHANGED
|
@@ -17,6 +17,32 @@ const PROPS_INTERFACE_REG_EXP = /export\s+interface\s+Props\s*{([^}]*)}/s;
|
|
|
17
17
|
const UNION_SYMBOLS_REG_EXP = /[?|:"|;]/g;
|
|
18
18
|
const WORD_IN_QUOTE_REG_EXP = /"([^"]+)"/g;
|
|
19
19
|
|
|
20
|
+
export async function setCustomPropTypes(isVuelessEnv) {
|
|
21
|
+
const srcDir = isVuelessEnv ? VUELESS_LOCAL_DIR : VUELESS_SRC;
|
|
22
|
+
|
|
23
|
+
for await (const [componentName, componentDir] of Object.entries(COMPONENTS)) {
|
|
24
|
+
const customProps =
|
|
25
|
+
componentName in vuelessConfig.component && vuelessConfig.component[componentName].props;
|
|
26
|
+
|
|
27
|
+
if (customProps) {
|
|
28
|
+
await cacheComponentTypes(path.join(srcDir, componentDir));
|
|
29
|
+
await modifyComponentTypes(
|
|
30
|
+
path.join(srcDir, componentDir),
|
|
31
|
+
vuelessConfig.component[componentName].props,
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export async function removeCustomPropTypes(isVuelessEnv) {
|
|
38
|
+
const srcDir = isVuelessEnv ? VUELESS_LOCAL_DIR : VUELESS_SRC;
|
|
39
|
+
|
|
40
|
+
for await (const componentDir of Object.values(COMPONENTS)) {
|
|
41
|
+
await restoreComponentTypes(path.join(srcDir, componentDir));
|
|
42
|
+
await clearComponentTypesCache(path.join(srcDir, componentDir));
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
|
|
20
46
|
async function cacheComponentTypes(filePath) {
|
|
21
47
|
const cacheDir = path.join(filePath, ".cache");
|
|
22
48
|
const sourceFile = path.join(filePath, "types.ts");
|
|
@@ -36,7 +62,7 @@ async function clearComponentTypesCache(filePath) {
|
|
|
36
62
|
await fs.rm(path.join(filePath, ".cache"), { force: true, recursive: true });
|
|
37
63
|
}
|
|
38
64
|
|
|
39
|
-
|
|
65
|
+
async function restoreComponentTypes(filePath) {
|
|
40
66
|
const cacheDir = path.join(filePath, ".cache");
|
|
41
67
|
const sourceFile = path.join(cacheDir, "types.ts");
|
|
42
68
|
const destFile = path.join(filePath, "types.ts");
|
|
@@ -162,29 +188,3 @@ async function modifyComponentTypes(filePath, props) {
|
|
|
162
188
|
console.error("Error updating file:", error.message);
|
|
163
189
|
}
|
|
164
190
|
}
|
|
165
|
-
|
|
166
|
-
export async function setCustomPropTypes(isVuelessEnv) {
|
|
167
|
-
const srcDir = isVuelessEnv ? VUELESS_LOCAL_DIR : VUELESS_SRC;
|
|
168
|
-
|
|
169
|
-
for await (const [componentName, componentDir] of Object.entries(COMPONENTS)) {
|
|
170
|
-
const customProps =
|
|
171
|
-
componentName in vuelessConfig.component && vuelessConfig.component[componentName].props;
|
|
172
|
-
|
|
173
|
-
if (customProps) {
|
|
174
|
-
await cacheComponentTypes(path.join(srcDir, componentDir));
|
|
175
|
-
await modifyComponentTypes(
|
|
176
|
-
path.join(srcDir, componentDir),
|
|
177
|
-
vuelessConfig.component[componentName].props,
|
|
178
|
-
);
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
export async function removeCustomPropTypes(isVuelessEnv) {
|
|
184
|
-
const srcDir = isVuelessEnv ? VUELESS_LOCAL_DIR : VUELESS_SRC;
|
|
185
|
-
|
|
186
|
-
for await (const componentDir of Object.values(COMPONENTS)) {
|
|
187
|
-
await restoreComponentTypes(path.join(srcDir, componentDir));
|
|
188
|
-
await clearComponentTypesCache(path.join(srcDir, componentDir));
|
|
189
|
-
}
|
|
190
|
-
}
|
package/utils/node/helper.js
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import path from "path";
|
|
2
|
-
import { statSync } from "fs";
|
|
2
|
+
import { statSync, existsSync } from "fs";
|
|
3
3
|
import { readdir } from "node:fs/promises";
|
|
4
|
+
import esbuild from "esbuild";
|
|
5
|
+
|
|
6
|
+
import { VUELESS_CONFIGS_CACHED_DIR } from "../../constants.js";
|
|
4
7
|
|
|
5
8
|
export async function getDirFiles(dirPath, ext, { recursive = true, exclude = [] } = {}) {
|
|
6
9
|
let fileNames = [];
|
|
@@ -68,23 +71,24 @@ export function getVueFiles() {
|
|
|
68
71
|
return [path.join(process.cwd(), "src")];
|
|
69
72
|
}
|
|
70
73
|
|
|
71
|
-
export function
|
|
72
|
-
const
|
|
73
|
-
const objectString = fileContents.substring(objectStartIndex).replace("};", "}");
|
|
74
|
+
export async function getComponentDefaultConfig(name, entryPath) {
|
|
75
|
+
const configOutPath = path.join(process.cwd(), `${VUELESS_CONFIGS_CACHED_DIR}/${name}.mjs`);
|
|
74
76
|
|
|
75
|
-
|
|
76
|
-
return (0, eval)("(" + objectString + ")"); // Converting into JS object
|
|
77
|
-
}
|
|
77
|
+
await buildTSFile(entryPath, configOutPath);
|
|
78
78
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
if (val !== null && typeof val === `object`) {
|
|
82
|
-
target[key] ??= new val.__proto__.constructor();
|
|
83
|
-
merge(val, target[key]);
|
|
84
|
-
} else {
|
|
85
|
-
target[key] = val;
|
|
86
|
-
}
|
|
79
|
+
if (existsSync(configOutPath)) {
|
|
80
|
+
return (await import(configOutPath)).default;
|
|
87
81
|
}
|
|
82
|
+
}
|
|
88
83
|
|
|
89
|
-
|
|
84
|
+
export async function buildTSFile(entryPath, configOutFile) {
|
|
85
|
+
await esbuild.build({
|
|
86
|
+
entryPoints: [entryPath],
|
|
87
|
+
outfile: configOutFile,
|
|
88
|
+
bundle: true,
|
|
89
|
+
platform: "node",
|
|
90
|
+
format: "esm",
|
|
91
|
+
target: "ESNext",
|
|
92
|
+
loader: { ".ts": "ts" },
|
|
93
|
+
});
|
|
90
94
|
}
|
package/utils/node/loaderIcon.js
CHANGED
|
@@ -9,9 +9,10 @@ import fs from "node:fs";
|
|
|
9
9
|
import path from "node:path";
|
|
10
10
|
import { createRequire } from "module";
|
|
11
11
|
import { rm, cp } from "node:fs/promises";
|
|
12
|
+
import { merge } from "lodash-es";
|
|
12
13
|
|
|
13
14
|
import { vuelessConfig } from "./vuelessConfig.js";
|
|
14
|
-
import { getDirFiles,
|
|
15
|
+
import { getDirFiles, getComponentDefaultConfig } from "./helper.js";
|
|
15
16
|
import {
|
|
16
17
|
COMPONENTS,
|
|
17
18
|
VUELESS_DIR,
|
|
@@ -306,10 +307,8 @@ function getDefaults() {
|
|
|
306
307
|
const defaultConfigPath = path.join(cwd, defaultIconsDir, COMPONENTS[U_ICON], "config.ts");
|
|
307
308
|
|
|
308
309
|
if (fs.existsSync(defaultConfigPath)) {
|
|
309
|
-
const defaultConfigFile = fs.readFileSync(defaultConfigPath).toString();
|
|
310
|
-
|
|
311
310
|
return merge(
|
|
312
|
-
|
|
311
|
+
getComponentDefaultConfig(U_ICON, defaultConfigPath)?.defaults,
|
|
313
312
|
vuelessConfig?.component?.[U_ICON]?.defaults,
|
|
314
313
|
);
|
|
315
314
|
}
|
|
@@ -8,7 +8,7 @@ import { defineConfig } from "cva";
|
|
|
8
8
|
|
|
9
9
|
import { vuelessConfig } from "./vuelessConfig.js";
|
|
10
10
|
import { createGetMergedConfig } from "./mergeConfigs.js";
|
|
11
|
-
import {
|
|
11
|
+
import { getComponentDefaultConfig, getDirFiles } from "./helper.js";
|
|
12
12
|
import {
|
|
13
13
|
COMPONENTS,
|
|
14
14
|
BRAND_COLORS,
|
|
@@ -173,9 +173,8 @@ async function getComponentSafelist(componentName, { colors, vuelessConfigFiles
|
|
|
173
173
|
|
|
174
174
|
if (defaultConfigPath) {
|
|
175
175
|
const configPath = path.join(process.cwd(), defaultConfigPath);
|
|
176
|
-
const defaultConfigContent = await readFile(configPath, { encoding: "utf-8" });
|
|
177
176
|
|
|
178
|
-
defaultConfig =
|
|
177
|
+
defaultConfig = getComponentDefaultConfig(componentName, configPath);
|
|
179
178
|
}
|
|
180
179
|
|
|
181
180
|
const isStrategyValid =
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import fs from "node:fs";
|
|
2
2
|
import path from "node:path";
|
|
3
|
-
import esbuild from "esbuild";
|
|
4
3
|
|
|
4
|
+
import { buildTSFile } from "./helper.js";
|
|
5
5
|
import { VUELESS_CACHE_DIR, VUELESS_CONFIG_FILE_NAME } from "../../constants.js";
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -24,22 +24,10 @@ export let vuelessConfig = {};
|
|
|
24
24
|
return;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
fs.existsSync(configPathJs) && (await
|
|
28
|
-
fs.existsSync(configPathTs) && (await
|
|
27
|
+
fs.existsSync(configPathJs) && (await buildTSFile(configPathJs, configOutPath));
|
|
28
|
+
fs.existsSync(configPathTs) && (await buildTSFile(configPathTs, configOutPath));
|
|
29
29
|
|
|
30
30
|
if (fs.existsSync(configOutPath)) {
|
|
31
31
|
vuelessConfig = (await import(configOutPath)).default;
|
|
32
32
|
}
|
|
33
33
|
})();
|
|
34
|
-
|
|
35
|
-
async function buildConfig(entryPath, configOutFile) {
|
|
36
|
-
await esbuild.build({
|
|
37
|
-
entryPoints: [entryPath],
|
|
38
|
-
outfile: configOutFile,
|
|
39
|
-
bundle: true,
|
|
40
|
-
platform: "node",
|
|
41
|
-
format: "esm",
|
|
42
|
-
target: "ESNext",
|
|
43
|
-
loader: { ".ts": "ts" },
|
|
44
|
-
});
|
|
45
|
-
}
|
package/web-types.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"framework": "vue",
|
|
3
3
|
"name": "vueless",
|
|
4
|
-
"version": "0.0.
|
|
4
|
+
"version": "0.0.598",
|
|
5
5
|
"contributions": {
|
|
6
6
|
"html": {
|
|
7
7
|
"description-markup": "markdown",
|
|
@@ -980,10 +980,6 @@
|
|
|
980
980
|
{
|
|
981
981
|
"type": "string",
|
|
982
982
|
"name": "icon-name"
|
|
983
|
-
},
|
|
984
|
-
{
|
|
985
|
-
"type": "string",
|
|
986
|
-
"name": "icon-size"
|
|
987
983
|
}
|
|
988
984
|
]
|
|
989
985
|
},
|
|
@@ -999,10 +995,6 @@
|
|
|
999
995
|
{
|
|
1000
996
|
"type": "string",
|
|
1001
997
|
"name": "icon-name"
|
|
1002
|
-
},
|
|
1003
|
-
{
|
|
1004
|
-
"type": "string",
|
|
1005
|
-
"name": "icon-size"
|
|
1006
998
|
}
|
|
1007
999
|
]
|
|
1008
1000
|
},
|
|
@@ -1014,10 +1006,6 @@
|
|
|
1014
1006
|
{
|
|
1015
1007
|
"type": "string",
|
|
1016
1008
|
"name": "icon-name"
|
|
1017
|
-
},
|
|
1018
|
-
{
|
|
1019
|
-
"type": "string",
|
|
1020
|
-
"name": "icon-size"
|
|
1021
1009
|
}
|
|
1022
1010
|
]
|
|
1023
1011
|
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="M445.93-445.93H194.02v-68.14h251.91v-252.15h68.14v252.15h252.15v68.14H514.07v251.91h-68.14v-251.91Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="M223.29-154.5q-29.12 0-48.95-19.84-19.84-19.83-19.84-48.95 0-29.12 19.84-48.91 19.83-19.8 48.95-19.8 29.12 0 48.91 19.8 19.8 19.79 19.8 48.91 0 29.12-19.8 48.95-19.79 19.84-48.91 19.84Zm256.8 0q-29.05 0-48.88-19.84-19.84-19.83-19.84-48.95 0-29.12 19.75-48.91 19.74-19.8 48.79-19.8t48.88 19.8q19.84 19.79 19.84 48.91 0 29.12-19.75 48.95-19.74 19.84-48.79 19.84Zm256.62 0q-29.12 0-48.91-19.84-19.8-19.83-19.8-48.95 0-29.12 19.8-48.91 19.79-19.8 48.91-19.8 29.12 0 48.95 19.8 19.84 19.79 19.84 48.91 0 29.12-19.84 48.95-19.83 19.84-48.95 19.84ZM223.29-411.37q-29.12 0-48.95-19.75-19.84-19.74-19.84-48.79t19.84-48.88q19.83-19.84 48.95-19.84 29.12 0 48.91 19.75 19.8 19.74 19.8 48.79t-19.8 48.88q-19.79 19.84-48.91 19.84Zm256.8 0q-29.05 0-48.88-19.75-19.84-19.74-19.84-48.79t19.75-48.88q19.74-19.84 48.79-19.84t48.88 19.75q19.84 19.74 19.84 48.79t-19.75 48.88q-19.74 19.84-48.79 19.84Zm256.62 0q-29.12 0-48.91-19.75-19.8-19.74-19.8-48.79t19.8-48.88q19.79-19.84 48.91-19.84 29.12 0 48.95 19.75 19.84 19.74 19.84 48.79t-19.84 48.88q-19.83 19.84-48.95 19.84ZM223.29-668q-29.12 0-48.95-19.8-19.84-19.79-19.84-48.91 0-29.12 19.84-48.95 19.83-19.84 48.95-19.84 29.12 0 48.91 19.84 19.8 19.83 19.8 48.95 0 29.12-19.8 48.91-19.79 19.8-48.91 19.8Zm256.8 0q-29.05 0-48.88-19.8-19.84-19.79-19.84-48.91 0-29.12 19.75-48.95 19.74-19.84 48.79-19.84t48.88 19.84q19.84 19.83 19.84 48.95 0 29.12-19.75 48.91-19.74 19.8-48.79 19.8Zm256.62 0q-29.12 0-48.91-19.8-19.8-19.79-19.8-48.91 0-29.12 19.8-48.95 19.79-19.84 48.91-19.84 29.12 0 48.95 19.84 19.84 19.83 19.84 48.95 0 29.12-19.84 48.91-19.83 19.8-48.95 19.8Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="m283.8-445.93 244.18 244.17L480-154.02 154.02-480 480-806.22l47.98 47.98L283.8-514.07h522.42v68.14H283.8Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="M737.33-324.39q0 105.46-74.69 177.91-74.69 72.46-180.26 72.46-105.58 0-180.35-72.46-74.77-72.45-74.77-177.85v-383.82q0-74.63 53.41-126.35 53.42-51.72 127.75-51.72 74.34 0 127.69 51.72 53.35 51.72 53.35 126.35v363.82q0 43.66-31.56 74.62-31.55 30.97-75.81 30.97-44.26 0-75.61-30.64t-31.35-74.95v-370h66.46v370q0 16.05 11.97 27.59t29.2 11.54q17.24 0 28.74-11.5 11.5-11.51 11.5-27.63v-363.58q.24-47.35-33.38-79.6-33.62-32.25-81.35-32.25-47.74 0-81.14 32.19-33.41 32.19-33.41 79.42v383.82q.24 77.83 55.57 130.96 55.33 53.13 133.62 53.13 77.86 0 133.03-53.16 55.17-53.17 54.93-130.93v-396.93h66.46v396.87Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="M480.03-398.57q-17.6 0-29.53-11.9-11.93-11.91-11.93-29.5 0-17.6 11.9-29.53 11.91-11.93 29.5-11.93 17.6 0 29.53 11.9 11.93 11.91 11.93 29.5 0 17.6-11.9 29.53-11.91 11.93-29.5 11.93Zm-160 0q-17.6 0-29.53-11.9-11.93-11.91-11.93-29.5 0-17.6 11.9-29.53 11.91-11.93 29.5-11.93 17.6 0 29.53 11.9 11.93 11.91 11.93 29.5 0 17.6-11.9 29.53-11.91 11.93-29.5 11.93Zm320 0q-17.27 0-29.37-11.9-12.09-11.91-12.09-29.5 0-17.6 12.07-29.53t29.45-11.93q17.39 0 29.37 11.9 11.97 11.91 11.97 29.5 0 17.6-11.9 29.53-11.91 11.93-29.5 11.93Zm-160 160q-17.6 0-29.53-12.07t-11.93-29.45q0-17.39 11.9-29.37 11.91-11.97 29.5-11.97 17.6 0 29.53 11.9 11.93 11.91 11.93 29.5 0 17.27-11.9 29.37-11.91 12.09-29.5 12.09Zm-160 0q-17.6 0-29.53-12.07t-11.93-29.45q0-17.39 11.9-29.37 11.91-11.97 29.5-11.97 17.6 0 29.53 11.9 11.93 11.91 11.93 29.5 0 17.27-11.9 29.37-11.91 12.09-29.5 12.09Zm320 0q-17.27 0-29.37-12.07-12.09-12.07-12.09-29.45 0-17.39 12.07-29.37 12.07-11.97 29.45-11.97 17.39 0 29.37 11.9 11.97 11.91 11.97 29.5 0 17.27-11.9 29.37-11.91 12.09-29.5 12.09ZM182.15-74.02q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-615.7q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34H245v-60h69.07v60h331.86v-60H715v60h62.85q27.7 0 48.03 20.34 20.34 20.33 20.34 48.03v615.7q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27h-595.7Zm0-68.13h595.7V-570h-595.7v427.85Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="M378-240.26 148.26-470l48.98-48.98L378-338.22l383.76-383.76L810.74-673 378-240.26Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="m420.52-294.41 285.63-285.63-50.78-50.03-234.85 234.85-117.85-117.85-49.78 50.03 167.63 168.63Zm59.51 220.39q-83.46 0-157.54-31.88-74.07-31.88-129.39-87.2-55.32-55.32-87.2-129.36-31.88-74.04-31.88-157.51 0-84.46 31.88-158.54 31.88-74.07 87.16-128.9 55.28-54.84 129.34-86.82 74.06-31.99 157.55-31.99 84.48 0 158.59 31.97 74.1 31.97 128.91 86.77 54.82 54.8 86.79 128.88 31.98 74.08 31.98 158.6 0 83.5-31.99 157.57-31.98 74.07-86.82 129.36-54.83 55.29-128.87 87.17-74.04 31.88-158.51 31.88Zm-.03-68.13q141.04 0 239.45-98.75 98.4-98.76 98.4-239.1 0-141.04-98.4-239.45-98.41-98.4-239.57-98.4-140.16 0-238.95 98.4-98.78 98.41-98.78 239.57 0 140.16 98.75 238.95 98.76 98.78 239.1 98.78ZM480-480Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="M561-234.26 314.26-481 561-727.74 609.74-679l-198 198 198 198L561-234.26Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="m524.26-481-198-198L375-727.74 621.74-481 375-234.26 326.26-283l198-198Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="M249-201.26 201.26-249l231-231-231-231L249-758.74l231 231 231-231L758.74-711l-231 231 231 231L711-201.26l-231-231-231 231Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="m305.02-257.28-47.74-47.74L432.02-480 257.28-653.98l47.74-47.74L480-526.98l173.98-174.74 47.74 47.74L526.98-480l174.74 174.98-47.74 47.74L480-432.02 305.02-257.28Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="M259.09-114.02q-28.45 0-48.41-19.89-19.96-19.89-19.96-48.24v-565.94h-45.07v-68.13h198.28v-34.3h271.9v34.3h198.52v68.13h-45.07v565.94q0 27.6-20.33 47.86-20.34 20.27-48.04 20.27H259.09Zm441.82-634.07H259.09v565.94h441.82v-565.94ZM363.89-266.24h64.07v-399h-64.07v399Zm168.15 0h64.31v-399h-64.31v399ZM259.09-748.09v565.94-565.94Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="M319-249.52h322v-62.63H319v62.63Zm0-170h322v-62.63H319v62.63Zm-96.85 345.5q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-675.7q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34h361.48l222.59 222.59v521.48q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27h-515.7Zm326.7-557.83v-186h-326.7v675.7h515.7v-489.7h-189Zm-326.7-186v186-186 675.7-675.7Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="M347.41-154.5q-30.1 0-51.51-21.43-21.4-21.44-21.4-51.54 0-30.1 21.43-51.31Q317.37-300 347.47-300q30.1 0 51.31 21.25Q420-257.51 420-227.41q0 30.1-21.25 51.51-21.24 21.4-51.34 21.4Zm265.34 0q-30.1 0-51.42-21.43Q540-197.37 540-227.47q0-30.1 21.39-51.31Q582.79-300 612.83-300q30.14 0 51.4 21.25 21.27 21.24 21.27 51.34 0 30.1-21.32 51.51-21.33 21.4-51.43 21.4ZM347.41-407.37q-30.1 0-51.51-21.39-21.4-21.4-21.4-51.44 0-30.23 21.43-51.33 21.44-21.1 51.54-21.1 30.1 0 51.31 21.19Q420-510.26 420-480.14q0 30.12-21.25 51.44-21.24 21.33-51.34 21.33Zm265.34 0q-30.1 0-51.42-21.39Q540-450.16 540-480.2q0-30.23 21.39-51.33 21.4-21.1 51.44-21.1 30.14 0 51.4 21.19 21.27 21.18 21.27 51.3 0 30.12-21.32 51.44-21.33 21.33-51.43 21.33ZM347.41-660q-30.1 0-51.51-21.39-21.4-21.4-21.4-51.44 0-30.14 21.43-51.4 21.44-21.27 51.54-21.27 30.1 0 51.31 21.32Q420-762.85 420-732.75t-21.25 51.42Q377.51-660 347.41-660Zm265.34 0q-30.1 0-51.42-21.39Q540-702.79 540-732.83q0-30.14 21.39-51.4 21.4-21.27 51.44-21.27 30.14 0 51.4 21.32 21.27 21.33 21.27 51.43t-21.32 51.42Q642.85-660 612.75-660Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="M181.91-182.15h44.24l459.81-458.81-43.76-44-460.29 459.05v43.76Zm-67.89 68.13V-253.5l574.52-573.76q8.24-8.48 19.81-13.22 11.56-4.74 24.11-4.74 11.47 0 22.95 4.74 11.48 4.74 21.2 12.98l51.89 51.17q9.24 9.72 13.48 21.32t4.24 23.31q0 11.72-4.74 23.7-4.74 11.98-12.98 20.46L253.74-114.02H114.02ZM775.17-732.7l-41.24-41.47 41.24 41.47ZM664.2-663.2l-22-21.76 43.76 44-21.76-22.24Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="M154.02-396.85v-68.13h310.76v68.13H154.02Zm0-170.5v-68.13h478.13v68.13H154.02Zm0-170.5v-68.37h478.13v68.37H154.02Zm365.02 583.83v-128.02L741-503q9.51-9.63 21.13-13.91 11.62-4.29 23.5-4.29 12.48 0 24.21 4.86T831.02-502l37 37q9.44 9.48 13.82 21.12 4.38 11.63 4.38 23.27 0 11.96-4.86 24.06-4.86 12.09-14.25 21.57L647.07-154.02H519.04Zm303.59-266.59-37-37 37 37Zm-240 203h38l120.28-121.23-18-19.02-19-18.03-121.28 120.22v38.06Zm140.28-140.28-19-18 37 37-18-19Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="M154.02-114.02v-68.13h652.2v68.13h-652.2ZM309.8-258.57q-65.17 0-110.48-44.93-45.3-44.93-45.3-109.85v-432.87h664.07q28.1 0 48.11 20.08 20.02 20.08 20.02 48.05v160q0 28.1-20.02 48.12-20.01 20.01-48.11 20.01h-92.66v136.61q0 64.92-45.47 109.85-45.48 44.93-110.55 44.93H309.8Zm.24-519.28H657.3 222.15h87.89Zm415.39 159.76h92.42v-160h-92.42v160ZM569.15-326.93q34.84 0 61.5-26.52 26.65-26.52 26.65-60.14v-364.26H399.15v37.31l71 58q1 1 9 18v150q0 9.6-7 16.8-7 7.2-18 7.2h-151q-11 0-18-7.2t-7-16.8v-150q0-4 9-18l72-58v-37.31h-137v364.26q0 33.62 26.98 60.14 26.97 26.52 60.91 26.52h259.11ZM355.57-777.85h40-40Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="M479.93-274.02q16.46 0 27.4-10.74 10.93-10.75 10.93-27.21t-10.86-27.52q-10.86-11.05-27.33-11.05-16.46 0-27.4 11.03-10.93 11.04-10.93 27.5 0 16.47 10.86 27.23 10.86 10.76 27.33 10.76Zm-31-158.74h68.14v-257.07h-68.14v257.07ZM480.3-74.02q-84.2 0-158.04-31.88-73.84-31.88-129.16-87.2-55.32-55.32-87.2-129.2-31.88-73.88-31.88-158.17 0-84.28 31.88-158.2 31.88-73.91 87.16-128.74 55.28-54.84 129.18-86.82 73.9-31.99 158.21-31.99 84.3 0 158.25 31.97 73.94 31.97 128.75 86.77 54.82 54.8 86.79 128.88 31.98 74.08 31.98 158.33 0 84.24-31.99 158.07-31.98 73.84-86.82 128.95-54.83 55.1-128.87 87.17Q564.5-74.02 480.3-74.02Zm.2-68.13q140.54 0 238.95-98.75 98.4-98.76 98.4-239.6 0-140.54-98.22-238.95-98.21-98.4-239.75-98.4-140.16 0-238.95 98.22-98.78 98.21-98.78 239.75 0 140.16 98.75 238.95 98.76 98.78 239.6 98.78ZM480-480Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="M480-339.5 234.26-585.24 283-633.98l197 198 197-197 48.74 48.74L480-339.5Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="M235.93-234.26v-491.48h68.14v491.48h-68.14Zm451.07-3L447.26-477 687-716.74 735.74-668l-191 191 191 191L687-237.26Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="M182.15-114.02q-27.6 0-47.86-20.27-20.27-20.26-20.27-47.86v-595.7q0-27.7 20.27-48.03 20.26-20.34 47.86-20.34h595.7q27.7 0 48.03 20.34 20.34 20.33 20.34 48.03v595.7q0 27.6-20.34 47.86-20.33 20.27-48.03 20.27h-595.7Zm0-68.13h595.7v-595.7h-595.7v595.7Zm50.74-92.7h495.22L578-476.59l-132 171-93-127-120.11 157.74Zm-50.74 92.7v-595.7 595.7Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="M480-338.26 234.26-584 283-632.74l197 197 197-197L725.74-584 480-338.26Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="M561-234.26 314.26-481 561-727.74 609.74-679l-198 198 198 198L561-234.26Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="m524.26-481-198-198L375-727.74 621.74-481 375-234.26 326.26-283l198-198Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="M846.22-480 674.83-237.89q-14.2 19.67-33.86 31.77-19.67 12.1-43.36 12.1H182.15q-28.1 0-48.12-20.01-20.01-20.02-20.01-48.12v-435.7q0-28.2 20.01-48.28 20.02-20.09 48.12-20.09h415.46q23.69 0 43.36 12.34 19.67 12.34 33.86 31.77L846.22-480Zm-85.29 0L608.56-697.85H182.15v435.7h426.46L760.93-480Zm-578.78 0v217.85-435.7V-480Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="M272-239.26 223.26-288l192-192-192-192L272-720.74 512.74-480 272-239.26Zm383.93 5v-491.48h68.14v491.48h-68.14Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="M194.02-445.93v-68.14h572.2v68.14h-572.2Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="M795.76-114.3 531.33-378.5q-29.76 25.26-69.6 39.41-39.84 14.16-85.16 14.16-109.84 0-185.96-76.2Q114.5-477.33 114.5-585t76.2-183.87q76.19-76.2 184.37-76.2 108.17 0 183.86 76.2 75.7 76.2 75.7 184.02 0 43.33-13.64 82.97t-40.92 74.4L845.5-164.04l-49.74 49.74ZM375.65-393.07q79.73 0 135.29-56.24Q566.5-505.55 566.5-585q0-79.45-55.6-135.69-55.59-56.24-135.25-56.24-80.49 0-136.76 56.24-56.26 56.24-56.26 135.69 0 79.45 56.23 135.69 56.23 56.24 136.79 56.24Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="m224.15-107.56 67.39-291.29L65.41-594.78l298.52-25.72L480-895.3l116.07 274.8 298.52 25.72-226.13 195.93 67.63 291.29L480-262.3 224.15-107.56Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="m326.37-249.79 153.64-91.89 153.64 92.9-41.28-173.94L727.5-540.33l-178.17-15.52L480-720.02l-69.33 163.41-178.17 15.28 135.22 117.38-41.35 174.16ZM224.15-107.56l67.39-291.29L65.41-594.78l298.43-25.67L480-895.3l116.16 274.85 298.43 25.67-226.13 195.93 67.63 291.29L480-262.3 224.15-107.56ZM480-474.52Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="M425.93-154.02v-544.07H194.02v-108.13h572.2v108.13H534.3v544.07H425.93Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="M480.12-330q70.88 0 120.38-49.62t49.5-120.5q0-70.88-49.62-120.38T479.88-670Q409-670 359.5-620.38T310-499.88q0 70.88 49.62 120.38t120.5 49.5Zm-.3-61.83q-45.15 0-76.57-31.6-31.42-31.6-31.42-76.75t31.6-76.57q31.6-31.42 76.75-31.42t76.57 31.6q31.42 31.6 31.42 76.75t-31.6 76.57q-31.6 31.42-76.75 31.42ZM480-194.5q-147.91 0-267.35-84.67Q93.22-363.85 34.5-500q58.72-136.15 178.15-220.83Q332.09-805.5 480-805.5q147.91 0 267.35 84.67Q866.78-636.15 925.5-500q-58.72 136.15-178.15 220.83Q627.91-194.5 480-194.5Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="M813.85-61.85 649.2-223.74q-35 14-79.24 21.62-44.24 7.62-89.96 7.62-147.2 0-267.75-82.46Q91.7-359.41 34.5-500q19.52-51.76 55.38-101.86t86.38-95.81L50.98-822.48l43.91-45.15 759.87 759.87-40.91 45.91ZM480-330q13.28 0 28.45-2.5 15.16-2.5 25.44-7.26L319.28-553.89q-4.52 11.28-6.9 25.56Q310-514.04 310-500q0 72 50 121t120 49Zm283.74 41.91L629.96-422.11q9.52-15.04 14.78-36.18T650-500q0-71-49.5-120.5T480-670q-20.8 0-41.09 4.76-20.28 4.76-36.8 15.04L287.57-765.5q35-16 90.21-28 55.22-12 107.22-12 143.96 0 264.01 82.34Q869.07-640.83 925.5-500q-25.76 64.48-67.12 118.08-41.36 53.59-94.64 93.83ZM578.07-474l-125.5-125.5q25.17-10.28 52.82-5.1 27.65 5.19 48.5 24.56 20.61 20.61 28.53 46 7.93 25.39-4.35 60.04Z"/></svg>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
<svg xmlns="http://www.w3.org/2000/svg" width="48" height="48" viewBox="0 -960 960 960"><path d="M34.74-116.89 480-886.22l445.26 769.33H34.74Zm113.8-65.74h662.92L480-754.98 148.54-182.63Zm335.64-54.85q12.96 0 21.87-9.08 8.91-9.09 8.91-22.05t-9.09-21.75q-9.08-8.79-22.05-8.79-12.96 0-21.87 8.96-8.91 8.97-8.91 21.93 0 12.96 9.09 21.87 9.08 8.91 22.05 8.91ZM454-348h60v-222.09h-60V-348Zm26-120.8Z"/></svg>
|