@robosophy/ui-vue 0.0.1 → 0.0.3
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/AGENTS.md +32 -0
- package/README.md +118 -3
- package/ai-context.md +20 -1
- package/components.md +318 -0
- package/dist/components/RsAccountSelector/RsAccountSelector.types.d.ts +38 -0
- package/dist/components/RsAccountSelector/RsAccountSelector.types.d.ts.map +1 -0
- package/dist/components/RsAccountSelector/RsAccountSelector.vue.d.ts +52 -0
- package/dist/components/RsAccountSelector/RsAccountSelector.vue.d.ts.map +1 -0
- package/dist/components/RsAccountSelector/index.d.ts +4 -0
- package/dist/components/RsAccountSelector/index.d.ts.map +1 -0
- package/dist/components/RsIcon/RsIcon.types.d.ts +20 -0
- package/dist/components/RsIcon/RsIcon.types.d.ts.map +1 -0
- package/dist/components/RsIcon/RsIcon.vue.d.ts +13 -0
- package/dist/components/RsIcon/RsIcon.vue.d.ts.map +1 -0
- package/dist/components/RsIcon/index.d.ts +6 -0
- package/dist/components/RsIcon/index.d.ts.map +1 -0
- package/dist/components/RsSidebar/RsSidebar.types.d.ts +32 -0
- package/dist/components/RsSidebar/RsSidebar.types.d.ts.map +1 -0
- package/dist/components/RsSidebar/RsSidebar.vue.d.ts +77 -0
- package/dist/components/RsSidebar/RsSidebar.vue.d.ts.map +1 -0
- package/dist/components/RsSidebar/index.d.ts +4 -0
- package/dist/components/RsSidebar/index.d.ts.map +1 -0
- package/dist/index.css +1 -1
- package/dist/index.d.ts +7 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4401 -83
- package/dist/index.js.map +1 -1
- package/dist/plugin.d.ts +184 -25
- package/dist/plugin.d.ts.map +1 -1
- package/dist/vite.d.ts +23 -0
- package/dist/vite.d.ts.map +1 -0
- package/dist/vite.js +260 -0
- package/dist/vite.js.map +1 -0
- package/package.json +26 -7
- package/dist/components/RsCard/RsCard.types.d.ts +0 -14
- package/dist/components/RsCard/RsCard.types.d.ts.map +0 -1
- package/dist/components/RsCard/RsCard.vue.d.ts +0 -32
- package/dist/components/RsCard/RsCard.vue.d.ts.map +0 -1
- package/dist/components/RsCard/index.d.ts +0 -4
- package/dist/components/RsCard/index.d.ts.map +0 -1
package/dist/plugin.d.ts
CHANGED
|
@@ -1,14 +1,22 @@
|
|
|
1
1
|
import type { Plugin } from "vue";
|
|
2
2
|
export declare const components: readonly [{
|
|
3
|
-
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import(".").
|
|
4
|
-
|
|
3
|
+
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import(".").RsAccountSelectorProps> & Readonly<{
|
|
4
|
+
"onSelect-account"?: ((account: import(".").RsAccountSelectorAccount) => any) | undefined;
|
|
5
|
+
onAction?: ((action: import(".").RsAccountSelectorAction) => any) | undefined;
|
|
6
|
+
"onFooter-action"?: ((action: import(".").RsAccountSelectorAction) => any) | undefined;
|
|
5
7
|
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
6
|
-
|
|
8
|
+
"select-account": (account: import(".").RsAccountSelectorAccount) => any;
|
|
9
|
+
action: (action: import(".").RsAccountSelectorAction) => any;
|
|
10
|
+
"footer-action": (action: import(".").RsAccountSelectorAction) => any;
|
|
7
11
|
}, import("vue").PublicProps, {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
+
accounts: import(".").RsAccountSelectorAccount[];
|
|
13
|
+
actions: import(".").RsAccountSelectorAction[];
|
|
14
|
+
footerActions: import(".").RsAccountSelectorAction[];
|
|
15
|
+
loading: boolean;
|
|
16
|
+
emptyText: string;
|
|
17
|
+
activeText: string;
|
|
18
|
+
selectText: string;
|
|
19
|
+
width: string;
|
|
12
20
|
}, false, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
|
|
13
21
|
P: {};
|
|
14
22
|
B: {};
|
|
@@ -16,37 +24,188 @@ export declare const components: readonly [{
|
|
|
16
24
|
C: {};
|
|
17
25
|
M: {};
|
|
18
26
|
Defaults: {};
|
|
19
|
-
}, Readonly<import(".").
|
|
20
|
-
|
|
27
|
+
}, Readonly<import(".").RsAccountSelectorProps> & Readonly<{
|
|
28
|
+
"onSelect-account"?: ((account: import(".").RsAccountSelectorAccount) => any) | undefined;
|
|
29
|
+
onAction?: ((action: import(".").RsAccountSelectorAction) => any) | undefined;
|
|
30
|
+
"onFooter-action"?: ((action: import(".").RsAccountSelectorAction) => any) | undefined;
|
|
21
31
|
}>, {}, {}, {}, {}, {
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
32
|
+
accounts: import(".").RsAccountSelectorAccount[];
|
|
33
|
+
actions: import(".").RsAccountSelectorAction[];
|
|
34
|
+
footerActions: import(".").RsAccountSelectorAction[];
|
|
35
|
+
loading: boolean;
|
|
36
|
+
emptyText: string;
|
|
37
|
+
activeText: string;
|
|
38
|
+
selectText: string;
|
|
39
|
+
width: string;
|
|
26
40
|
}>;
|
|
27
41
|
__isFragment?: never;
|
|
28
42
|
__isTeleport?: never;
|
|
29
43
|
__isSuspense?: never;
|
|
30
|
-
} & import("vue").ComponentOptionsBase<Readonly<import(".").
|
|
31
|
-
|
|
44
|
+
} & import("vue").ComponentOptionsBase<Readonly<import(".").RsAccountSelectorProps> & Readonly<{
|
|
45
|
+
"onSelect-account"?: ((account: import(".").RsAccountSelectorAccount) => any) | undefined;
|
|
46
|
+
onAction?: ((action: import(".").RsAccountSelectorAction) => any) | undefined;
|
|
47
|
+
"onFooter-action"?: ((action: import(".").RsAccountSelectorAction) => any) | undefined;
|
|
32
48
|
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
33
|
-
|
|
49
|
+
"select-account": (account: import(".").RsAccountSelectorAccount) => any;
|
|
50
|
+
action: (action: import(".").RsAccountSelectorAction) => any;
|
|
51
|
+
"footer-action": (action: import(".").RsAccountSelectorAction) => any;
|
|
34
52
|
}, string, {
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
53
|
+
accounts: import(".").RsAccountSelectorAccount[];
|
|
54
|
+
actions: import(".").RsAccountSelectorAction[];
|
|
55
|
+
footerActions: import(".").RsAccountSelectorAction[];
|
|
56
|
+
loading: boolean;
|
|
57
|
+
emptyText: string;
|
|
58
|
+
activeText: string;
|
|
59
|
+
selectText: string;
|
|
60
|
+
width: string;
|
|
39
61
|
}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
|
|
40
62
|
$slots: {
|
|
41
|
-
|
|
63
|
+
'user-avatar'?: (props: {
|
|
64
|
+
user: import(".").RsAccountSelectorUser;
|
|
65
|
+
}) => any;
|
|
66
|
+
} & {
|
|
67
|
+
actions?: (props: {
|
|
68
|
+
actions: import(".").RsAccountSelectorAction[];
|
|
69
|
+
}) => any;
|
|
70
|
+
} & {
|
|
71
|
+
empty?: (props: {}) => any;
|
|
72
|
+
} & {
|
|
73
|
+
'account-avatar'?: (props: {
|
|
74
|
+
account: import(".").RsAccountSelectorAccount;
|
|
75
|
+
}) => any;
|
|
42
76
|
} & {
|
|
43
|
-
|
|
77
|
+
'account-trailing'?: (props: {
|
|
78
|
+
account: import(".").RsAccountSelectorAccount;
|
|
79
|
+
}) => any;
|
|
80
|
+
} & {
|
|
81
|
+
footer?: (props: {
|
|
82
|
+
actions: import(".").RsAccountSelectorAction[];
|
|
83
|
+
}) => any;
|
|
84
|
+
};
|
|
85
|
+
}), import("vue").DefineComponent<import(".").RsIconProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import(".").RsIconProps> & Readonly<{}>, {
|
|
86
|
+
fill: boolean;
|
|
87
|
+
family: import(".").RsIconFamily;
|
|
88
|
+
size: import(".").RsIconSize;
|
|
89
|
+
color: import(".").RsIconColor;
|
|
90
|
+
weight: import(".").RsIconWeight;
|
|
91
|
+
grade: number;
|
|
92
|
+
interactive: boolean;
|
|
93
|
+
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>, {
|
|
94
|
+
new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import(".").RsSidebarProps> & Readonly<{
|
|
95
|
+
"onItem-click"?: ((item: import(".").RsSidebarItem) => any) | undefined;
|
|
96
|
+
"onClose-mobile"?: (() => any) | undefined;
|
|
97
|
+
"onExpanded-change"?: ((expanded: boolean) => any) | undefined;
|
|
98
|
+
"onModule-select"?: ((module: import(".").RsSidebarModule) => any) | undefined;
|
|
99
|
+
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
100
|
+
"item-click": (item: import(".").RsSidebarItem) => any;
|
|
101
|
+
"close-mobile": () => any;
|
|
102
|
+
"expanded-change": (expanded: boolean) => any;
|
|
103
|
+
"module-select": (module: import(".").RsSidebarModule) => any;
|
|
104
|
+
}, import("vue").PublicProps, {
|
|
105
|
+
ariaLabel: string;
|
|
106
|
+
title: string;
|
|
107
|
+
icon: string;
|
|
108
|
+
variant: import(".").RsSidebarVariant;
|
|
109
|
+
footerItems: import(".").RsSidebarItem[];
|
|
110
|
+
modules: import(".").RsSidebarModule[];
|
|
111
|
+
navigateOnModuleSelect: boolean;
|
|
112
|
+
expanded: boolean;
|
|
113
|
+
expandOnHover: boolean;
|
|
114
|
+
mobileOpen: boolean;
|
|
115
|
+
widthCollapsed: string;
|
|
116
|
+
widthExpanded: string;
|
|
117
|
+
}, false, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
|
|
118
|
+
P: {};
|
|
119
|
+
B: {};
|
|
120
|
+
D: {};
|
|
121
|
+
C: {};
|
|
122
|
+
M: {};
|
|
123
|
+
Defaults: {};
|
|
124
|
+
}, Readonly<import(".").RsSidebarProps> & Readonly<{
|
|
125
|
+
"onItem-click"?: ((item: import(".").RsSidebarItem) => any) | undefined;
|
|
126
|
+
"onClose-mobile"?: (() => any) | undefined;
|
|
127
|
+
"onExpanded-change"?: ((expanded: boolean) => any) | undefined;
|
|
128
|
+
"onModule-select"?: ((module: import(".").RsSidebarModule) => any) | undefined;
|
|
129
|
+
}>, {}, {}, {}, {}, {
|
|
130
|
+
ariaLabel: string;
|
|
131
|
+
title: string;
|
|
132
|
+
icon: string;
|
|
133
|
+
variant: import(".").RsSidebarVariant;
|
|
134
|
+
footerItems: import(".").RsSidebarItem[];
|
|
135
|
+
modules: import(".").RsSidebarModule[];
|
|
136
|
+
navigateOnModuleSelect: boolean;
|
|
137
|
+
expanded: boolean;
|
|
138
|
+
expandOnHover: boolean;
|
|
139
|
+
mobileOpen: boolean;
|
|
140
|
+
widthCollapsed: string;
|
|
141
|
+
widthExpanded: string;
|
|
142
|
+
}>;
|
|
143
|
+
__isFragment?: never;
|
|
144
|
+
__isTeleport?: never;
|
|
145
|
+
__isSuspense?: never;
|
|
146
|
+
} & import("vue").ComponentOptionsBase<Readonly<import(".").RsSidebarProps> & Readonly<{
|
|
147
|
+
"onItem-click"?: ((item: import(".").RsSidebarItem) => any) | undefined;
|
|
148
|
+
"onClose-mobile"?: (() => any) | undefined;
|
|
149
|
+
"onExpanded-change"?: ((expanded: boolean) => any) | undefined;
|
|
150
|
+
"onModule-select"?: ((module: import(".").RsSidebarModule) => any) | undefined;
|
|
151
|
+
}>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
|
|
152
|
+
"item-click": (item: import(".").RsSidebarItem) => any;
|
|
153
|
+
"close-mobile": () => any;
|
|
154
|
+
"expanded-change": (expanded: boolean) => any;
|
|
155
|
+
"module-select": (module: import(".").RsSidebarModule) => any;
|
|
156
|
+
}, string, {
|
|
157
|
+
ariaLabel: string;
|
|
158
|
+
title: string;
|
|
159
|
+
icon: string;
|
|
160
|
+
variant: import(".").RsSidebarVariant;
|
|
161
|
+
footerItems: import(".").RsSidebarItem[];
|
|
162
|
+
modules: import(".").RsSidebarModule[];
|
|
163
|
+
navigateOnModuleSelect: boolean;
|
|
164
|
+
expanded: boolean;
|
|
165
|
+
expandOnHover: boolean;
|
|
166
|
+
mobileOpen: boolean;
|
|
167
|
+
widthCollapsed: string;
|
|
168
|
+
widthExpanded: string;
|
|
169
|
+
}, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
|
|
170
|
+
$slots: {
|
|
171
|
+
header?: (props: {
|
|
172
|
+
expanded: boolean;
|
|
173
|
+
activeParent: {
|
|
174
|
+
id: string;
|
|
175
|
+
label: string;
|
|
176
|
+
icon?: string | undefined;
|
|
177
|
+
active?: boolean | undefined;
|
|
178
|
+
disabled?: boolean | undefined;
|
|
179
|
+
visible?: boolean | undefined;
|
|
180
|
+
children?: /*elided*/ any[] | undefined;
|
|
181
|
+
} | null;
|
|
182
|
+
closeMobile: () => void;
|
|
183
|
+
goBack: () => void;
|
|
184
|
+
}) => any;
|
|
44
185
|
} & {
|
|
45
|
-
|
|
186
|
+
'header-action'?: (props: {
|
|
187
|
+
activeParent: {
|
|
188
|
+
id: string;
|
|
189
|
+
label: string;
|
|
190
|
+
icon?: string | undefined;
|
|
191
|
+
active?: boolean | undefined;
|
|
192
|
+
disabled?: boolean | undefined;
|
|
193
|
+
visible?: boolean | undefined;
|
|
194
|
+
children?: /*elided*/ any[] | undefined;
|
|
195
|
+
} | null;
|
|
196
|
+
closeMobile: () => void;
|
|
197
|
+
goBack: () => void;
|
|
198
|
+
}) => any;
|
|
46
199
|
} & {
|
|
47
|
-
|
|
200
|
+
item?: (props: {
|
|
201
|
+
item: import(".").RsSidebarItem;
|
|
202
|
+
expanded: boolean;
|
|
203
|
+
}) => any;
|
|
48
204
|
} & {
|
|
49
|
-
footer?: (props: {
|
|
205
|
+
footer?: (props: {
|
|
206
|
+
items: import(".").RsSidebarItem[];
|
|
207
|
+
expanded: boolean;
|
|
208
|
+
}) => any;
|
|
50
209
|
};
|
|
51
210
|
})];
|
|
52
211
|
export declare const RobosophyUiVue: Plugin;
|
package/dist/plugin.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAO,MAAM,EAAE,MAAM,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAO,MAAM,EAAE,MAAM,KAAK,CAAC;AAMvC,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAkD,CAAC;AAE1E,eAAO,MAAM,cAAc,EAAE,MAM5B,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
package/dist/vite.d.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import type { Plugin, ResolvedConfig } from "vite";
|
|
2
|
+
import type { RsIconFamily } from "./components/RsIcon";
|
|
3
|
+
type IconInput = string | {
|
|
4
|
+
family?: RsIconFamily;
|
|
5
|
+
name: string;
|
|
6
|
+
};
|
|
7
|
+
export type RobosophyMaterialSymbolsOptions = {
|
|
8
|
+
include?: IconInput[];
|
|
9
|
+
roots?: string[];
|
|
10
|
+
scan?: boolean;
|
|
11
|
+
};
|
|
12
|
+
type IconUsageMap = Map<RsIconFamily, Set<string>>;
|
|
13
|
+
export declare function robosophyMaterialSymbols(options?: RobosophyMaterialSymbolsOptions): Plugin;
|
|
14
|
+
type GeneratedFontAsset = {
|
|
15
|
+
family: RsIconFamily;
|
|
16
|
+
fileName: string;
|
|
17
|
+
source: Buffer;
|
|
18
|
+
};
|
|
19
|
+
export declare function collectMaterialSymbolUsages(config: Pick<ResolvedConfig, "root">, options?: RobosophyMaterialSymbolsOptions): Promise<IconUsageMap>;
|
|
20
|
+
export declare function buildMaterialSymbolsCss(usages: IconUsageMap, fonts: Pick<GeneratedFontAsset, "family" | "fileName">[], devMode?: boolean): string;
|
|
21
|
+
export declare function formatDetectedMaterialSymbols(usages: IconUsageMap): string;
|
|
22
|
+
export {};
|
|
23
|
+
//# sourceMappingURL=vite.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vite.d.ts","sourceRoot":"","sources":["../src/vite.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAA4B,MAAM,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAE7E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AAExD,KAAK,SAAS,GAAG,MAAM,GAAG;IAAE,MAAM,CAAC,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC;AAElE,MAAM,MAAM,+BAA+B,GAAG;IAC5C,OAAO,CAAC,EAAE,SAAS,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB,CAAC;AAEF,KAAK,YAAY,GAAG,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC;AA+BnD,wBAAgB,wBAAwB,CACtC,OAAO,GAAE,+BAAoC,GAC5C,MAAM,CAoFR;AAED,KAAK,kBAAkB,GAAG;IACxB,MAAM,EAAE,YAAY,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AA0BF,wBAAsB,2BAA2B,CAC/C,MAAM,EAAE,IAAI,CAAC,cAAc,EAAE,MAAM,CAAC,EACpC,OAAO,GAAE,+BAAoC,yBAwB9C;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,YAAY,EACpB,KAAK,EAAE,IAAI,CAAC,kBAAkB,EAAE,QAAQ,GAAG,UAAU,CAAC,EAAE,EACxD,OAAO,UAAQ,UA+DhB;AA0ID,wBAAgB,6BAA6B,CAAC,MAAM,EAAE,YAAY,UAIjE"}
|
package/dist/vite.js
ADDED
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
import { createHash as S } from "node:crypto";
|
|
2
|
+
import { readFile as p, readdir as x } from "node:fs/promises";
|
|
3
|
+
import { join as b, extname as F, sep as j } from "node:path";
|
|
4
|
+
import { createRequire as M } from "node:module";
|
|
5
|
+
const m = ["outlined", "rounded", "sharp"], f = "outlined", N = /^[a-z0-9_]+$/, _ = /* @__PURE__ */ new Set([".js", ".jsx", ".mjs", ".ts", ".tsx", ".vue"]), P = /* @__PURE__ */ new Set([".git", "dist", "node_modules", "storybook-static"]), z = [
|
|
6
|
+
"arrow_drop_down",
|
|
7
|
+
"arrow_drop_up",
|
|
8
|
+
"arrow_left",
|
|
9
|
+
"chevron_right",
|
|
10
|
+
"close",
|
|
11
|
+
"login",
|
|
12
|
+
"nest_eco_leaf"
|
|
13
|
+
], d = {
|
|
14
|
+
outlined: "Material Symbols Outlined Variable",
|
|
15
|
+
rounded: "Material Symbols Rounded Variable",
|
|
16
|
+
sharp: "Material Symbols Sharp Variable"
|
|
17
|
+
}, I = {
|
|
18
|
+
outlined: "@fontsource-variable/material-symbols-outlined",
|
|
19
|
+
rounded: "@fontsource-variable/material-symbols-rounded",
|
|
20
|
+
sharp: "@fontsource-variable/material-symbols-sharp"
|
|
21
|
+
}, H = M(import.meta.url);
|
|
22
|
+
function G(t = {}) {
|
|
23
|
+
let s;
|
|
24
|
+
return {
|
|
25
|
+
name: "robosophy-material-symbols",
|
|
26
|
+
async configResolved(n) {
|
|
27
|
+
s = n;
|
|
28
|
+
},
|
|
29
|
+
async transformIndexHtml() {
|
|
30
|
+
return [
|
|
31
|
+
{
|
|
32
|
+
attrs: {
|
|
33
|
+
href: (await y(s, t)).cssHref,
|
|
34
|
+
rel: "stylesheet"
|
|
35
|
+
},
|
|
36
|
+
tag: "link",
|
|
37
|
+
injectTo: "head"
|
|
38
|
+
}
|
|
39
|
+
];
|
|
40
|
+
},
|
|
41
|
+
configureServer(n) {
|
|
42
|
+
n.middlewares.use(async (e, a, o) => {
|
|
43
|
+
if (!e.url?.startsWith("/@robosophy-material-symbols/")) {
|
|
44
|
+
o();
|
|
45
|
+
return;
|
|
46
|
+
}
|
|
47
|
+
try {
|
|
48
|
+
const r = await y(s, t), i = decodeURIComponent(
|
|
49
|
+
e.url.replace("/@robosophy-material-symbols/", "").split("?")[0] ?? ""
|
|
50
|
+
);
|
|
51
|
+
if (i === "rs-material-symbols.css") {
|
|
52
|
+
a.setHeader("Content-Type", "text/css; charset=utf-8"), a.end(r.css);
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
const c = r.fonts.find((l) => l.fileName === i);
|
|
56
|
+
if (c) {
|
|
57
|
+
a.setHeader("Content-Type", "font/woff2"), a.end(c.source);
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
o();
|
|
61
|
+
} catch (r) {
|
|
62
|
+
o(r);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
},
|
|
66
|
+
async generateBundle(n, e) {
|
|
67
|
+
const a = await y(s, t);
|
|
68
|
+
for (const o of a.fonts)
|
|
69
|
+
this.emitFile({
|
|
70
|
+
fileName: `assets/${o.fileName}`,
|
|
71
|
+
name: o.fileName,
|
|
72
|
+
source: o.source,
|
|
73
|
+
type: "asset"
|
|
74
|
+
});
|
|
75
|
+
this.emitFile({
|
|
76
|
+
fileName: "assets/rs-material-symbols.css",
|
|
77
|
+
name: "rs-material-symbols.css",
|
|
78
|
+
source: a.css,
|
|
79
|
+
type: "asset"
|
|
80
|
+
});
|
|
81
|
+
for (const o of Object.values(e))
|
|
82
|
+
if (o.type === "asset" && o.fileName.endsWith(".html")) {
|
|
83
|
+
const r = String(o.source), i = $(s.base, "assets/rs-material-symbols.css");
|
|
84
|
+
o.source = r.includes(i) ? r : r.replace("</head>", ` <link rel="stylesheet" href="${i}">
|
|
85
|
+
</head>`);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
};
|
|
89
|
+
}
|
|
90
|
+
async function y(t, s) {
|
|
91
|
+
const n = await R(t, s), e = await A(n), a = t.command === "serve";
|
|
92
|
+
return {
|
|
93
|
+
css: k(n, e, a),
|
|
94
|
+
cssHref: a ? "/@robosophy-material-symbols/rs-material-symbols.css" : $(t.base, "assets/rs-material-symbols.css"),
|
|
95
|
+
fonts: e
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
async function R(t, s = {}) {
|
|
99
|
+
const n = B();
|
|
100
|
+
for (const e of z)
|
|
101
|
+
u(n, { family: f, name: e });
|
|
102
|
+
for (const e of s.include ?? [])
|
|
103
|
+
u(n, typeof e == "string" ? { family: f, name: e } : e);
|
|
104
|
+
if (s.scan !== !1) {
|
|
105
|
+
const e = s.roots ?? [b(t.root, "src")];
|
|
106
|
+
for (const a of e)
|
|
107
|
+
for (const o of await g(a)) {
|
|
108
|
+
const r = await p(o, "utf8");
|
|
109
|
+
T(r, n);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
return n;
|
|
113
|
+
}
|
|
114
|
+
function k(t, s, n = !1) {
|
|
115
|
+
const e = [];
|
|
116
|
+
for (const o of s) {
|
|
117
|
+
const r = n ? `/@robosophy-material-symbols/${o.fileName}` : `./${o.fileName}`;
|
|
118
|
+
e.push(
|
|
119
|
+
"@font-face {",
|
|
120
|
+
` font-family: "${d[o.family]}";`,
|
|
121
|
+
" font-display: swap;",
|
|
122
|
+
" font-style: normal;",
|
|
123
|
+
" font-weight: 100 700;",
|
|
124
|
+
` src: url("${r}") format("woff2-variations");`,
|
|
125
|
+
"}"
|
|
126
|
+
);
|
|
127
|
+
}
|
|
128
|
+
e.push(
|
|
129
|
+
".rs-icon {",
|
|
130
|
+
" --rs-icon-color: currentColor;",
|
|
131
|
+
" --rs-icon-fill: 0;",
|
|
132
|
+
" --rs-icon-grade: 0;",
|
|
133
|
+
" --rs-icon-optical-size: 24;",
|
|
134
|
+
" --rs-icon-size: 24px;",
|
|
135
|
+
" --rs-icon-weight: 400;",
|
|
136
|
+
" align-items: center;",
|
|
137
|
+
" color: var(--rs-icon-color);",
|
|
138
|
+
" display: inline-flex;",
|
|
139
|
+
" flex: 0 0 auto;",
|
|
140
|
+
` font-family: "${d.outlined}";`,
|
|
141
|
+
" font-size: var(--rs-icon-size);",
|
|
142
|
+
" font-style: normal;",
|
|
143
|
+
' font-variation-settings: "FILL" var(--rs-icon-fill), "wght" var(--rs-icon-weight), "GRAD" var(--rs-icon-grade), "opsz" var(--rs-icon-optical-size);',
|
|
144
|
+
" font-weight: 400;",
|
|
145
|
+
" justify-content: center;",
|
|
146
|
+
" letter-spacing: normal;",
|
|
147
|
+
" line-height: 1;",
|
|
148
|
+
" text-transform: none;",
|
|
149
|
+
" user-select: none;",
|
|
150
|
+
" white-space: nowrap;",
|
|
151
|
+
" word-wrap: normal;",
|
|
152
|
+
"}",
|
|
153
|
+
`.rs-icon--rounded { font-family: "${d.rounded}"; }`,
|
|
154
|
+
`.rs-icon--sharp { font-family: "${d.sharp}"; }`,
|
|
155
|
+
".rs-icon--prime::before { content: var(--rs-icon-content); }"
|
|
156
|
+
);
|
|
157
|
+
const a = /* @__PURE__ */ new Set();
|
|
158
|
+
for (const o of m)
|
|
159
|
+
for (const r of t.get(o) ?? [])
|
|
160
|
+
a.add(r);
|
|
161
|
+
for (const o of [...a].sort())
|
|
162
|
+
e.push(`.rs-icon-${o} { --rs-icon-content: "${o}"; }`);
|
|
163
|
+
return `${e.join(`
|
|
164
|
+
`)}
|
|
165
|
+
`;
|
|
166
|
+
}
|
|
167
|
+
async function A(t) {
|
|
168
|
+
const s = (await import("subset-font")).default, n = [];
|
|
169
|
+
for (const e of m) {
|
|
170
|
+
const a = [...t.get(e) ?? []].sort();
|
|
171
|
+
if (a.length === 0)
|
|
172
|
+
continue;
|
|
173
|
+
const o = C(e), r = await p(o), i = await s(r, a.join(" "), {
|
|
174
|
+
targetFormat: "woff2"
|
|
175
|
+
}), c = S("sha256").update(i).digest("hex").slice(0, 8), l = `rs-material-symbols-${e}-${c}.woff2`;
|
|
176
|
+
n.push({
|
|
177
|
+
family: e,
|
|
178
|
+
fileName: l,
|
|
179
|
+
source: i
|
|
180
|
+
});
|
|
181
|
+
}
|
|
182
|
+
return n;
|
|
183
|
+
}
|
|
184
|
+
function C(t) {
|
|
185
|
+
return H.resolve(
|
|
186
|
+
`${I[t]}/files/material-symbols-${t}-latin-wght-normal.woff2`
|
|
187
|
+
);
|
|
188
|
+
}
|
|
189
|
+
function T(t, s) {
|
|
190
|
+
const n = /<RsIcon\b([^>]*)>/g;
|
|
191
|
+
let e;
|
|
192
|
+
for (; e = n.exec(t); ) {
|
|
193
|
+
const c = U(e[1] ?? ""), l = c.name ?? c[":name"], v = h(c.family ?? c[":family"]);
|
|
194
|
+
l && u(s, { family: v ?? f, name: w(l) });
|
|
195
|
+
}
|
|
196
|
+
const a = /\brsPrimeIcon\(\s*["']([a-z0-9_]+)["'](?:\s*,\s*\{([^)]*)\})?/g;
|
|
197
|
+
let o;
|
|
198
|
+
for (; o = a.exec(t); ) {
|
|
199
|
+
const c = h(o[2]?.match(/\bfamily\s*:\s*["'](\w+)["']/)?.[1]);
|
|
200
|
+
u(s, {
|
|
201
|
+
family: c ?? f,
|
|
202
|
+
name: o[1] ?? ""
|
|
203
|
+
});
|
|
204
|
+
}
|
|
205
|
+
const r = /\bicon\s*:\s*["']([a-z0-9_]+)["']/g;
|
|
206
|
+
let i;
|
|
207
|
+
for (; i = r.exec(t); )
|
|
208
|
+
u(s, {
|
|
209
|
+
family: f,
|
|
210
|
+
name: i[1] ?? ""
|
|
211
|
+
});
|
|
212
|
+
}
|
|
213
|
+
function U(t) {
|
|
214
|
+
const s = {}, n = /([:@\w-]+)\s*=\s*(?:"([^"]*)"|'([^']*)')/g;
|
|
215
|
+
let e;
|
|
216
|
+
for (; e = n.exec(t); )
|
|
217
|
+
s[e[1] ?? ""] = e[2] ?? e[3] ?? "";
|
|
218
|
+
return s;
|
|
219
|
+
}
|
|
220
|
+
function w(t) {
|
|
221
|
+
return t.replace(/^['"](.+)['"]$/, "$1");
|
|
222
|
+
}
|
|
223
|
+
function u(t, s) {
|
|
224
|
+
const n = s.family ?? f, e = s.name.trim();
|
|
225
|
+
!m.includes(n) || !N.test(e) || t.get(n)?.add(e);
|
|
226
|
+
}
|
|
227
|
+
function h(t) {
|
|
228
|
+
const s = t ? w(t) : "";
|
|
229
|
+
return m.includes(s) ? s : void 0;
|
|
230
|
+
}
|
|
231
|
+
function B() {
|
|
232
|
+
return new Map(m.map((t) => [t, /* @__PURE__ */ new Set()]));
|
|
233
|
+
}
|
|
234
|
+
async function g(t) {
|
|
235
|
+
try {
|
|
236
|
+
const s = await x(t, { withFileTypes: !0 });
|
|
237
|
+
return (await Promise.all(
|
|
238
|
+
s.map(async (e) => {
|
|
239
|
+
const a = b(t, e.name);
|
|
240
|
+
return e.isDirectory() ? P.has(e.name) ? [] : g(a) : _.has(F(e.name)) ? [a] : [];
|
|
241
|
+
})
|
|
242
|
+
)).flat();
|
|
243
|
+
} catch {
|
|
244
|
+
return [];
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
function $(t, s) {
|
|
248
|
+
return `${t.endsWith("/") ? t : `${t}/`}${s}`.replaceAll(`${j}`, "/");
|
|
249
|
+
}
|
|
250
|
+
function L(t) {
|
|
251
|
+
return m.map((s) => `${s}: ${[...t.get(s) ?? []].sort().join(", ")}`).join(`
|
|
252
|
+
`);
|
|
253
|
+
}
|
|
254
|
+
export {
|
|
255
|
+
k as buildMaterialSymbolsCss,
|
|
256
|
+
R as collectMaterialSymbolUsages,
|
|
257
|
+
L as formatDetectedMaterialSymbols,
|
|
258
|
+
G as robosophyMaterialSymbols
|
|
259
|
+
};
|
|
260
|
+
//# sourceMappingURL=vite.js.map
|
package/dist/vite.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vite.js","sources":["../src/vite.ts"],"sourcesContent":["import { createHash } from \"node:crypto\";\nimport { readdir, readFile } from \"node:fs/promises\";\nimport { extname, join, sep } from \"node:path\";\nimport { createRequire } from \"node:module\";\nimport type { IndexHtmlTransformResult, Plugin, ResolvedConfig } from \"vite\";\n\nimport type { RsIconFamily } from \"./components/RsIcon\";\n\ntype IconInput = string | { family?: RsIconFamily; name: string };\n\nexport type RobosophyMaterialSymbolsOptions = {\n include?: IconInput[];\n roots?: string[];\n scan?: boolean;\n};\n\ntype IconUsageMap = Map<RsIconFamily, Set<string>>;\n\nconst families = [\"outlined\", \"rounded\", \"sharp\"] as const satisfies readonly RsIconFamily[];\nconst defaultFamily: RsIconFamily = \"outlined\";\nconst iconNamePattern = /^[a-z0-9_]+$/;\nconst sourceExtensions = new Set([\".js\", \".jsx\", \".mjs\", \".ts\", \".tsx\", \".vue\"]);\nconst skippedDirs = new Set([\".git\", \"dist\", \"node_modules\", \"storybook-static\"]);\nconst internalIconNames = [\n \"arrow_drop_down\",\n \"arrow_drop_up\",\n \"arrow_left\",\n \"chevron_right\",\n \"close\",\n \"login\",\n \"nest_eco_leaf\",\n];\n\nconst familyFontNames: Record<RsIconFamily, string> = {\n outlined: \"Material Symbols Outlined Variable\",\n rounded: \"Material Symbols Rounded Variable\",\n sharp: \"Material Symbols Sharp Variable\",\n};\n\nconst familyPackages: Record<RsIconFamily, string> = {\n outlined: \"@fontsource-variable/material-symbols-outlined\",\n rounded: \"@fontsource-variable/material-symbols-rounded\",\n sharp: \"@fontsource-variable/material-symbols-sharp\",\n};\n\nconst require = createRequire(import.meta.url);\n\nexport function robosophyMaterialSymbols(\n options: RobosophyMaterialSymbolsOptions = {},\n): Plugin {\n let config: ResolvedConfig;\n return {\n name: \"robosophy-material-symbols\",\n async configResolved(resolvedConfig) {\n config = resolvedConfig;\n },\n async transformIndexHtml(): Promise<IndexHtmlTransformResult> {\n const assets = await ensureGeneratedAssets(config, options);\n\n return [\n {\n attrs: {\n href: assets.cssHref,\n rel: \"stylesheet\",\n },\n tag: \"link\",\n injectTo: \"head\",\n },\n ];\n },\n configureServer(server) {\n server.middlewares.use(async (request, response, next) => {\n if (!request.url?.startsWith(\"/@robosophy-material-symbols/\")) {\n next();\n return;\n }\n\n try {\n const assets = await ensureGeneratedAssets(config, options);\n const fileName = decodeURIComponent(\n request.url.replace(\"/@robosophy-material-symbols/\", \"\").split(\"?\")[0] ?? \"\",\n );\n\n if (fileName === \"rs-material-symbols.css\") {\n response.setHeader(\"Content-Type\", \"text/css; charset=utf-8\");\n response.end(assets.css);\n return;\n }\n\n const font = assets.fonts.find((asset) => asset.fileName === fileName);\n\n if (font) {\n response.setHeader(\"Content-Type\", \"font/woff2\");\n response.end(font.source);\n return;\n }\n\n next();\n } catch (error) {\n next(error);\n }\n });\n },\n async generateBundle(_outputOptions, bundle) {\n const assets = await ensureGeneratedAssets(config, options);\n\n for (const font of assets.fonts) {\n this.emitFile({\n fileName: `assets/${font.fileName}`,\n name: font.fileName,\n source: font.source,\n type: \"asset\",\n });\n }\n\n this.emitFile({\n fileName: \"assets/rs-material-symbols.css\",\n name: \"rs-material-symbols.css\",\n source: assets.css,\n type: \"asset\",\n });\n\n for (const asset of Object.values(bundle)) {\n if (asset.type === \"asset\" && asset.fileName.endsWith(\".html\")) {\n const html = String(asset.source);\n const href = withBase(config.base, \"assets/rs-material-symbols.css\");\n asset.source = html.includes(href)\n ? html\n : html.replace(\"</head>\", ` <link rel=\"stylesheet\" href=\"${href}\">\\n</head>`);\n }\n }\n },\n };\n}\n\ntype GeneratedFontAsset = {\n family: RsIconFamily;\n fileName: string;\n source: Buffer;\n};\n\ntype GeneratedMaterialSymbolsAssets = {\n css: string;\n cssHref: string;\n fonts: GeneratedFontAsset[];\n};\n\nasync function ensureGeneratedAssets(\n config: ResolvedConfig,\n options: RobosophyMaterialSymbolsOptions,\n) {\n const usages = await collectMaterialSymbolUsages(config, options);\n const fonts = await generateFontAssets(usages);\n const devMode = config.command === \"serve\";\n const css = buildMaterialSymbolsCss(usages, fonts, devMode);\n\n return {\n css,\n cssHref: devMode\n ? \"/@robosophy-material-symbols/rs-material-symbols.css\"\n : withBase(config.base, \"assets/rs-material-symbols.css\"),\n fonts,\n };\n}\n\nexport async function collectMaterialSymbolUsages(\n config: Pick<ResolvedConfig, \"root\">,\n options: RobosophyMaterialSymbolsOptions = {},\n) {\n const usages = createUsageMap();\n\n for (const name of internalIconNames) {\n addUsage(usages, { family: defaultFamily, name });\n }\n\n for (const icon of options.include ?? []) {\n addUsage(usages, typeof icon === \"string\" ? { family: defaultFamily, name: icon } : icon);\n }\n\n if (options.scan !== false) {\n const roots = options.roots ?? [join(config.root, \"src\")];\n\n for (const root of roots) {\n for (const filePath of await listSourceFiles(root)) {\n const source = await readFile(filePath, \"utf8\");\n collectFromSource(source, usages);\n }\n }\n }\n\n return usages;\n}\n\nexport function buildMaterialSymbolsCss(\n usages: IconUsageMap,\n fonts: Pick<GeneratedFontAsset, \"family\" | \"fileName\">[],\n devMode = false,\n) {\n const lines: string[] = [];\n\n for (const font of fonts) {\n const fontUrl = devMode\n ? `/@robosophy-material-symbols/${font.fileName}`\n : `./${font.fileName}`;\n\n lines.push(\n \"@font-face {\",\n ` font-family: \"${familyFontNames[font.family]}\";`,\n \" font-display: swap;\",\n \" font-style: normal;\",\n \" font-weight: 100 700;\",\n ` src: url(\"${fontUrl}\") format(\"woff2-variations\");`,\n \"}\",\n );\n }\n\n lines.push(\n \".rs-icon {\",\n \" --rs-icon-color: currentColor;\",\n \" --rs-icon-fill: 0;\",\n \" --rs-icon-grade: 0;\",\n \" --rs-icon-optical-size: 24;\",\n \" --rs-icon-size: 24px;\",\n \" --rs-icon-weight: 400;\",\n \" align-items: center;\",\n \" color: var(--rs-icon-color);\",\n \" display: inline-flex;\",\n \" flex: 0 0 auto;\",\n ` font-family: \"${familyFontNames.outlined}\";`,\n \" font-size: var(--rs-icon-size);\",\n \" font-style: normal;\",\n ' font-variation-settings: \"FILL\" var(--rs-icon-fill), \"wght\" var(--rs-icon-weight), \"GRAD\" var(--rs-icon-grade), \"opsz\" var(--rs-icon-optical-size);',\n \" font-weight: 400;\",\n \" justify-content: center;\",\n \" letter-spacing: normal;\",\n \" line-height: 1;\",\n \" text-transform: none;\",\n \" user-select: none;\",\n \" white-space: nowrap;\",\n \" word-wrap: normal;\",\n \"}\",\n `.rs-icon--rounded { font-family: \"${familyFontNames.rounded}\"; }`,\n `.rs-icon--sharp { font-family: \"${familyFontNames.sharp}\"; }`,\n \".rs-icon--prime::before { content: var(--rs-icon-content); }\",\n );\n\n const names = new Set<string>();\n\n for (const family of families) {\n for (const name of usages.get(family) ?? []) {\n names.add(name);\n }\n }\n\n for (const name of [...names].sort()) {\n lines.push(`.rs-icon-${name} { --rs-icon-content: \"${name}\"; }`);\n }\n\n return `${lines.join(\"\\n\")}\\n`;\n}\n\nasync function generateFontAssets(usages: IconUsageMap): Promise<GeneratedFontAsset[]> {\n const subsetFont = (await import(\"subset-font\")).default;\n const fonts: GeneratedFontAsset[] = [];\n\n for (const family of families) {\n const names = [...(usages.get(family) ?? [])].sort();\n\n if (names.length === 0) {\n continue;\n }\n\n const sourcePath = resolveFontPath(family);\n const source = await readFile(sourcePath);\n const subset = await subsetFont(source, names.join(\" \"), {\n targetFormat: \"woff2\",\n });\n const hash = createHash(\"sha256\").update(subset).digest(\"hex\").slice(0, 8);\n const fileName = `rs-material-symbols-${family}-${hash}.woff2`;\n\n fonts.push({\n family,\n fileName,\n source: subset,\n });\n }\n\n return fonts;\n}\n\nfunction resolveFontPath(family: RsIconFamily) {\n return require.resolve(\n `${familyPackages[family]}/files/material-symbols-${family}-latin-wght-normal.woff2`,\n );\n}\n\nfunction collectFromSource(source: string, usages: IconUsageMap) {\n const rsIconTagPattern = /<RsIcon\\b([^>]*)>/g;\n let tagMatch: RegExpExecArray | null;\n\n while ((tagMatch = rsIconTagPattern.exec(source))) {\n const attrs = parseStaticAttributes(tagMatch[1] ?? \"\");\n const name = attrs.name ?? attrs[\":name\"];\n const family = toFamily(attrs.family ?? attrs[\":family\"]);\n\n if (name) {\n addUsage(usages, { family: family ?? defaultFamily, name: unwrapStaticValue(name) });\n }\n }\n\n const primeHelperPattern =\n /\\brsPrimeIcon\\(\\s*[\"']([a-z0-9_]+)[\"'](?:\\s*,\\s*\\{([^)]*)\\})?/g;\n let helperMatch: RegExpExecArray | null;\n\n while ((helperMatch = primeHelperPattern.exec(source))) {\n const family = toFamily(helperMatch[2]?.match(/\\bfamily\\s*:\\s*[\"'](\\w+)[\"']/)?.[1]);\n addUsage(usages, {\n family: family ?? defaultFamily,\n name: helperMatch[1] ?? \"\",\n });\n }\n\n const objectIconPattern = /\\bicon\\s*:\\s*[\"']([a-z0-9_]+)[\"']/g;\n let objectMatch: RegExpExecArray | null;\n\n while ((objectMatch = objectIconPattern.exec(source))) {\n addUsage(usages, {\n family: defaultFamily,\n name: objectMatch[1] ?? \"\",\n });\n }\n}\n\nfunction parseStaticAttributes(source: string) {\n const attrs: Record<string, string> = {};\n const attrPattern = /([:@\\w-]+)\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)')/g;\n let match: RegExpExecArray | null;\n\n while ((match = attrPattern.exec(source))) {\n attrs[match[1] ?? \"\"] = match[2] ?? match[3] ?? \"\";\n }\n\n return attrs;\n}\n\nfunction unwrapStaticValue(value: string) {\n return value.replace(/^['\"](.+)['\"]$/, \"$1\");\n}\n\nfunction addUsage(usages: IconUsageMap, icon: { family?: RsIconFamily; name: string }) {\n const family = icon.family ?? defaultFamily;\n const name = icon.name.trim();\n\n if (!families.includes(family) || !iconNamePattern.test(name)) {\n return;\n }\n\n usages.get(family)?.add(name);\n}\n\nfunction toFamily(value?: string): RsIconFamily | undefined {\n const normalized = value ? unwrapStaticValue(value) : \"\";\n return families.includes(normalized as RsIconFamily)\n ? (normalized as RsIconFamily)\n : undefined;\n}\n\nfunction createUsageMap(): IconUsageMap {\n return new Map(families.map((family) => [family, new Set<string>()]));\n}\n\nasync function listSourceFiles(root: string): Promise<string[]> {\n try {\n const entries = await readdir(root, { withFileTypes: true });\n const files = await Promise.all(\n entries.map(async (entry) => {\n const path = join(root, entry.name);\n\n if (entry.isDirectory()) {\n return skippedDirs.has(entry.name) ? [] : listSourceFiles(path);\n }\n\n return sourceExtensions.has(extname(entry.name)) ? [path] : [];\n }),\n );\n\n return files.flat();\n } catch {\n return [];\n }\n}\n\nfunction withBase(base: string, path: string) {\n const cleanBase = base.endsWith(\"/\") ? base : `${base}/`;\n return `${cleanBase}${path}`.replaceAll(`${sep}`, \"/\");\n}\n\nexport function formatDetectedMaterialSymbols(usages: IconUsageMap) {\n return families\n .map((family) => `${family}: ${[...(usages.get(family) ?? [])].sort().join(\", \")}`)\n .join(\"\\n\");\n}\n"],"names":["families","defaultFamily","iconNamePattern","sourceExtensions","skippedDirs","internalIconNames","familyFontNames","familyPackages","require","createRequire","robosophyMaterialSymbols","options","config","resolvedConfig","ensureGeneratedAssets","server","request","response","next","assets","fileName","font","asset","error","_outputOptions","bundle","html","href","withBase","usages","collectMaterialSymbolUsages","fonts","generateFontAssets","devMode","buildMaterialSymbolsCss","createUsageMap","name","addUsage","icon","roots","join","root","filePath","listSourceFiles","source","readFile","collectFromSource","lines","fontUrl","names","family","subsetFont","sourcePath","resolveFontPath","subset","hash","createHash","rsIconTagPattern","tagMatch","attrs","parseStaticAttributes","toFamily","unwrapStaticValue","primeHelperPattern","helperMatch","objectIconPattern","objectMatch","attrPattern","match","value","normalized","entries","readdir","entry","path","extname","base","sep","formatDetectedMaterialSymbols"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,8 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@robosophy/ui-vue",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.3",
|
|
4
4
|
"private": false,
|
|
5
5
|
"license": "UNLICENSED",
|
|
6
|
+
"homepage": "https://robosophy.gitlab.io/robosophy-basf/robosophy-library/",
|
|
7
|
+
"repository": {
|
|
8
|
+
"type": "git",
|
|
9
|
+
"url": "git+ssh://git@gitlab.com/robosophy/robosophy-basf/robosophy-library.git"
|
|
10
|
+
},
|
|
11
|
+
"bugs": {
|
|
12
|
+
"url": "https://gitlab.com/robosophy/robosophy-basf/robosophy-library/-/issues"
|
|
13
|
+
},
|
|
6
14
|
"type": "module",
|
|
7
15
|
"main": "./dist/index.js",
|
|
8
16
|
"types": "./dist/index.d.ts",
|
|
@@ -11,10 +19,18 @@
|
|
|
11
19
|
"types": "./dist/index.d.ts",
|
|
12
20
|
"default": "./dist/index.js"
|
|
13
21
|
},
|
|
14
|
-
"./
|
|
22
|
+
"./vite": {
|
|
23
|
+
"types": "./dist/vite.d.ts",
|
|
24
|
+
"default": "./dist/vite.js"
|
|
25
|
+
},
|
|
26
|
+
"./AGENTS.md": "./AGENTS.md",
|
|
27
|
+
"./ai-context.md": "./ai-context.md",
|
|
28
|
+
"./components.md": "./components.md"
|
|
15
29
|
},
|
|
16
30
|
"files": [
|
|
31
|
+
"AGENTS.md",
|
|
17
32
|
"ai-context.md",
|
|
33
|
+
"components.md",
|
|
18
34
|
"dist",
|
|
19
35
|
"README.md",
|
|
20
36
|
"package.json"
|
|
@@ -33,11 +49,6 @@
|
|
|
33
49
|
"primevue": ">=4",
|
|
34
50
|
"vue": ">=3.4"
|
|
35
51
|
},
|
|
36
|
-
"peerDependenciesMeta": {
|
|
37
|
-
"primevue": {
|
|
38
|
-
"optional": true
|
|
39
|
-
}
|
|
40
|
-
},
|
|
41
52
|
"devDependencies": {
|
|
42
53
|
"@robosophy/tokens": "0.0.2",
|
|
43
54
|
"@storybook/addon-docs": "^9.1.0",
|
|
@@ -45,10 +56,18 @@
|
|
|
45
56
|
"@vitejs/plugin-vue": "^6.0.0",
|
|
46
57
|
"@vue/test-utils": "^2.4.6",
|
|
47
58
|
"happy-dom": "^20.0.0",
|
|
59
|
+
"primevue": "^4.5.5",
|
|
48
60
|
"typescript": "^5.9.3",
|
|
49
61
|
"vite": "^7.2.0",
|
|
50
62
|
"vitest": "^4.0.0",
|
|
51
63
|
"vue": "^3.5.0",
|
|
52
64
|
"vue-tsc": "^3.1.0"
|
|
65
|
+
},
|
|
66
|
+
"dependencies": {
|
|
67
|
+
"@fontsource-variable/material-symbols-outlined": "^5.2.45",
|
|
68
|
+
"@fontsource-variable/material-symbols-rounded": "^5.2.45",
|
|
69
|
+
"@fontsource-variable/material-symbols-sharp": "^5.2.45",
|
|
70
|
+
"@types/subset-font": "^2.3.0",
|
|
71
|
+
"subset-font": "^2.4.0"
|
|
53
72
|
}
|
|
54
73
|
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import type { Component } from "vue";
|
|
2
|
-
export type RsCardVariant = "default" | "brand" | "success" | "warning" | "danger";
|
|
3
|
-
export type RsCardPadding = "none" | "sm" | "md" | "lg";
|
|
4
|
-
export type RsCardAs = string | Component;
|
|
5
|
-
export type RsCardProps = {
|
|
6
|
-
title?: string;
|
|
7
|
-
subtitle?: string;
|
|
8
|
-
variant?: RsCardVariant;
|
|
9
|
-
padding?: RsCardPadding;
|
|
10
|
-
interactive?: boolean;
|
|
11
|
-
as?: RsCardAs;
|
|
12
|
-
ariaLabel?: string;
|
|
13
|
-
};
|
|
14
|
-
//# sourceMappingURL=RsCard.types.d.ts.map
|