@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.
Files changed (40) hide show
  1. package/AGENTS.md +32 -0
  2. package/README.md +118 -3
  3. package/ai-context.md +20 -1
  4. package/components.md +318 -0
  5. package/dist/components/RsAccountSelector/RsAccountSelector.types.d.ts +38 -0
  6. package/dist/components/RsAccountSelector/RsAccountSelector.types.d.ts.map +1 -0
  7. package/dist/components/RsAccountSelector/RsAccountSelector.vue.d.ts +52 -0
  8. package/dist/components/RsAccountSelector/RsAccountSelector.vue.d.ts.map +1 -0
  9. package/dist/components/RsAccountSelector/index.d.ts +4 -0
  10. package/dist/components/RsAccountSelector/index.d.ts.map +1 -0
  11. package/dist/components/RsIcon/RsIcon.types.d.ts +20 -0
  12. package/dist/components/RsIcon/RsIcon.types.d.ts.map +1 -0
  13. package/dist/components/RsIcon/RsIcon.vue.d.ts +13 -0
  14. package/dist/components/RsIcon/RsIcon.vue.d.ts.map +1 -0
  15. package/dist/components/RsIcon/index.d.ts +6 -0
  16. package/dist/components/RsIcon/index.d.ts.map +1 -0
  17. package/dist/components/RsSidebar/RsSidebar.types.d.ts +32 -0
  18. package/dist/components/RsSidebar/RsSidebar.types.d.ts.map +1 -0
  19. package/dist/components/RsSidebar/RsSidebar.vue.d.ts +77 -0
  20. package/dist/components/RsSidebar/RsSidebar.vue.d.ts.map +1 -0
  21. package/dist/components/RsSidebar/index.d.ts +4 -0
  22. package/dist/components/RsSidebar/index.d.ts.map +1 -0
  23. package/dist/index.css +1 -1
  24. package/dist/index.d.ts +7 -3
  25. package/dist/index.d.ts.map +1 -1
  26. package/dist/index.js +4401 -83
  27. package/dist/index.js.map +1 -1
  28. package/dist/plugin.d.ts +184 -25
  29. package/dist/plugin.d.ts.map +1 -1
  30. package/dist/vite.d.ts +23 -0
  31. package/dist/vite.d.ts.map +1 -0
  32. package/dist/vite.js +260 -0
  33. package/dist/vite.js.map +1 -0
  34. package/package.json +26 -7
  35. package/dist/components/RsCard/RsCard.types.d.ts +0 -14
  36. package/dist/components/RsCard/RsCard.types.d.ts.map +0 -1
  37. package/dist/components/RsCard/RsCard.vue.d.ts +0 -32
  38. package/dist/components/RsCard/RsCard.vue.d.ts.map +0 -1
  39. package/dist/components/RsCard/index.d.ts +0 -4
  40. 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(".").RsCardProps> & Readonly<{
4
- onClick?: ((event: MouseEvent) => any) | undefined;
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
- click: (event: MouseEvent) => any;
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
- variant: import(".").RsCardVariant;
9
- padding: import(".").RsCardPadding;
10
- interactive: boolean;
11
- as: import(".").RsCardAs;
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(".").RsCardProps> & Readonly<{
20
- onClick?: ((event: MouseEvent) => any) | undefined;
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
- variant: import(".").RsCardVariant;
23
- padding: import(".").RsCardPadding;
24
- interactive: boolean;
25
- as: import(".").RsCardAs;
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(".").RsCardProps> & Readonly<{
31
- onClick?: ((event: MouseEvent) => any) | undefined;
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
- click: (event: MouseEvent) => any;
49
+ "select-account": (account: import(".").RsAccountSelectorAccount) => any;
50
+ action: (action: import(".").RsAccountSelectorAction) => any;
51
+ "footer-action": (action: import(".").RsAccountSelectorAction) => any;
34
52
  }, string, {
35
- variant: import(".").RsCardVariant;
36
- padding: import(".").RsCardPadding;
37
- interactive: boolean;
38
- as: import(".").RsCardAs;
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
- media?: (props: {}) => any;
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
- header?: (props: {}) => any;
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
- actions?: (props: {}) => any;
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
- default?: (props: {}) => any;
200
+ item?: (props: {
201
+ item: import(".").RsSidebarItem;
202
+ expanded: boolean;
203
+ }) => any;
48
204
  } & {
49
- footer?: (props: {}) => any;
205
+ footer?: (props: {
206
+ items: import(".").RsSidebarItem[];
207
+ expanded: boolean;
208
+ }) => any;
50
209
  };
51
210
  })];
52
211
  export declare const RobosophyUiVue: Plugin;
@@ -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;AAIvC,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAAoB,CAAC;AAE5C,eAAO,MAAM,cAAc,EAAE,MAM5B,CAAC;AAEF,eAAe,cAAc,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
@@ -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.1",
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
- "./ai-context.md": "./ai-context.md"
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