@robosophy/ui-vue 0.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,71 @@
1
+ # @robosophy/ui-vue
2
+
3
+ Vue 3 component library for shared Robosophy UI.
4
+
5
+ ## Install
6
+
7
+ ```sh
8
+ npm install @robosophy/ui-vue @robosophy/tokens vue
9
+ ```
10
+
11
+ Import tokens once in the consuming app:
12
+
13
+ ```ts
14
+ import "@robosophy/tokens/tokens.css";
15
+ ```
16
+
17
+ Components carry their own local styles through their component entrypoint. This package does not expose a global `styles.css`.
18
+
19
+ ## Usage
20
+
21
+ ```vue
22
+ <script setup lang="ts">
23
+ import { RsCard } from "@robosophy/ui-vue";
24
+ </script>
25
+
26
+ <template>
27
+ <RsCard title="Reusable card" subtitle="Shared layout">
28
+ Content from the consuming project.
29
+ </RsCard>
30
+ </template>
31
+ ```
32
+
33
+ Optional plugin registration:
34
+
35
+ ```ts
36
+ import { createApp } from "vue";
37
+ import RobosophyUiVue from "@robosophy/ui-vue";
38
+ import "@robosophy/tokens/tokens.css";
39
+
40
+ createApp(App).use(RobosophyUiVue).mount("#app");
41
+ ```
42
+
43
+ ## Component Structure
44
+
45
+ Every public component must be self-contained:
46
+
47
+ ```txt
48
+ src/components/RsCard/
49
+ RsCard.vue
50
+ RsCard.css
51
+ RsCard.types.ts
52
+ RsCard.test.ts
53
+ RsCard.stories.ts
54
+ index.ts
55
+ ```
56
+
57
+ Rules:
58
+
59
+ - use `@robosophy/tokens` variables for visual decisions;
60
+ - keep styles local to the component folder;
61
+ - add tests and Storybook stories with every exported component;
62
+ - use props for stable API and slots for flexible project content;
63
+ - use PrimeVue only when it provides behavior that belongs inside the component.
64
+
65
+ ## Scripts
66
+
67
+ ```sh
68
+ npm run build -w @robosophy/ui-vue
69
+ npm run test -w @robosophy/ui-vue
70
+ npm run build:storybook -w @robosophy/ui-vue
71
+ ```
package/ai-context.md ADDED
@@ -0,0 +1,26 @@
1
+ # @robosophy/ui-vue AI Context
2
+
3
+ Use this package for shared Vue 3 UI components.
4
+
5
+ ## Component Rules
6
+
7
+ - Every exported component lives in `src/components/<ComponentName>/`.
8
+ - Every component folder must include the Vue component, local CSS, public types, tests, Storybook stories, and an `index.ts`.
9
+ - Import component CSS from the component `index.ts`; do not add a global package stylesheet export.
10
+ - Use `@robosophy/tokens` CSS variables for colors, typography, strokes, and component surfaces.
11
+ - Use PrimeVue only when it provides real behavior for that component.
12
+ - Keep props focused on stable component API. Use slots for flexible content.
13
+ - Export every public component and public type from `src/index.ts`.
14
+
15
+ ## Required Files
16
+
17
+ - `<ComponentName>.vue`
18
+ - `<ComponentName>.css`
19
+ - `<ComponentName>.types.ts`
20
+ - `<ComponentName>.test.ts`
21
+ - `<ComponentName>.stories.ts`
22
+ - `index.ts`
23
+
24
+ ## Validation
25
+
26
+ Run the package build, component tests, and Storybook build before publishing component changes.
@@ -0,0 +1,14 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RsCard.types.d.ts","sourceRoot":"","sources":["../../../src/components/RsCard/RsCard.types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,KAAK,CAAC;AAErC,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEnF,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAExD,MAAM,MAAM,QAAQ,GAAG,MAAM,GAAG,SAAS,CAAC;AAE1C,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,EAAE,CAAC,EAAE,QAAQ,CAAC;IACd,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC"}
@@ -0,0 +1,32 @@
1
+ import type { RsCardProps } from "./RsCard.types";
2
+ declare var __VLS_11: {}, __VLS_13: {}, __VLS_15: {}, __VLS_17: {}, __VLS_19: {};
3
+ type __VLS_Slots = {} & {
4
+ media?: (props: typeof __VLS_11) => any;
5
+ } & {
6
+ header?: (props: typeof __VLS_13) => any;
7
+ } & {
8
+ actions?: (props: typeof __VLS_15) => any;
9
+ } & {
10
+ default?: (props: typeof __VLS_17) => any;
11
+ } & {
12
+ footer?: (props: typeof __VLS_19) => any;
13
+ };
14
+ declare const __VLS_base: import("vue").DefineComponent<RsCardProps, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
15
+ click: (event: MouseEvent) => any;
16
+ }, string, import("vue").PublicProps, Readonly<RsCardProps> & Readonly<{
17
+ onClick?: ((event: MouseEvent) => any) | undefined;
18
+ }>, {
19
+ variant: import("./RsCard.types").RsCardVariant;
20
+ padding: import("./RsCard.types").RsCardPadding;
21
+ interactive: boolean;
22
+ as: import("./RsCard.types").RsCardAs;
23
+ }, {}, {}, {}, string, import("vue").ComponentProvideOptions, false, {}, any>;
24
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
25
+ declare const _default: typeof __VLS_export;
26
+ export default _default;
27
+ type __VLS_WithSlots<T, S> = T & {
28
+ new (): {
29
+ $slots: S;
30
+ };
31
+ };
32
+ //# sourceMappingURL=RsCard.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RsCard.vue.d.ts","sourceRoot":"","sources":["../../../src/components/RsCard/RsCard.vue"],"names":[],"mappings":"AA2FA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAuKlD,QAAA,IAAI,QAAQ,IAAW,EAAE,QAAQ,IAAW,EAAE,QAAQ,IAAW,EAAE,QAAQ,IAAW,EAAE,QAAQ,IAAY,CAAE;AAC9G,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC3C;IAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC5C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC7C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,GAC7C;IAAE,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAK/C,QAAA,MAAM,UAAU;;;;;;;;;6EAId,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AAWzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
@@ -0,0 +1,4 @@
1
+ import "./RsCard.css";
2
+ export { default } from "./RsCard.vue";
3
+ export type { RsCardAs, RsCardPadding, RsCardProps, RsCardVariant } from "./RsCard.types";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/RsCard/index.ts"],"names":[],"mappings":"AAAA,OAAO,cAAc,CAAC;AAEtB,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/index.css ADDED
@@ -0,0 +1 @@
1
+ .rs-card{--rs-card-background: var(--rs-color-surface-primary, #ffffff);--rs-card-border: var(--rs-color-stroke-default, #d1d1d1);--rs-card-border-accent: transparent;--rs-card-color: var(--rs-color-text-primary, #000000);--rs-card-muted-color: var(--rs-color-text-secondary, #909090);--rs-card-focus: var(--rs-color-stroke-focused, #48a0d4);--rs-card-padding: 16px;background:var(--rs-card-background);border:1px solid var(--rs-card-border);border-left-color:var(--rs-card-border-accent);border-radius:8px;color:var(--rs-card-color);display:flex;flex-direction:column;font-family:var(--rs-font-family, "Inter", sans-serif);gap:16px;padding:var(--rs-card-padding)}.rs-card--brand{--rs-card-background: var(--rs-color-blue-100, #e6f6fb);--rs-card-border-accent: var(--rs-color-blue-500, #48a0d4)}.rs-card--success{--rs-card-background: var(--rs-color-green-100, #edf7e6);--rs-card-border-accent: var(--rs-color-green-500, #4eae01)}.rs-card--warning{--rs-card-background: var(--rs-color-yellow-100, #fff4e6);--rs-card-border-accent: var(--rs-color-yellow-500, #ff9001)}.rs-card--danger{--rs-card-background: var(--rs-color-red-100, #fff0f1);--rs-card-border-accent: var(--rs-color-red-500, #d80115)}.rs-card--padding-none{--rs-card-padding: 0}.rs-card--padding-sm{--rs-card-padding: 12px}.rs-card--padding-md{--rs-card-padding: 16px}.rs-card--padding-lg{--rs-card-padding: 24px}.rs-card--interactive{cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease,transform .15s ease}.rs-card--interactive:hover{border-color:var(--rs-card-focus);box-shadow:0 8px 24px #00000014;transform:translateY(-1px)}.rs-card--interactive:focus-visible{outline:2px solid var(--rs-card-focus);outline-offset:2px}.rs-card__media{margin:calc(var(--rs-card-padding) * -1);margin-bottom:0;overflow:hidden}.rs-card__header{align-items:flex-start;display:flex;gap:16px;justify-content:space-between}.rs-card__heading{display:grid;gap:4px}.rs-card__title,.rs-card__subtitle{margin:0}.rs-card__title{font-size:1rem;font-weight:500;line-height:1.4}.rs-card__subtitle{color:var(--rs-card-muted-color);font-size:.875rem;line-height:1.4}.rs-card__actions{align-items:center;display:inline-flex;flex:0 0 auto;gap:8px}.rs-card__body,.rs-card__footer{font-size:.9375rem;line-height:1.5}
@@ -0,0 +1,8 @@
1
+ // AUTO-GENERATED FILE. DO NOT EDIT MANUALLY.
2
+ export { default as RobosophyUiVue } from "./plugin";
3
+ export { default } from "./plugin";
4
+ export * from "./plugin";
5
+ import RsCard from "./components/RsCard";
6
+ export { RsCard };
7
+ export * from "./components/RsCard";
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,UAAU,CAAC;AACrD,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,cAAc,UAAU,CAAC;AAEzB,OAAO,MAAM,MAAM,qBAAqB,CAAC;AAEzC,OAAO,EAAE,MAAM,EAAE,CAAC;AAClB,cAAc,qBAAqB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,101 @@
1
+ // AUTO-GENERATED FILE. DO NOT EDIT MANUALLY.
2
+ import "./index.css";
3
+ import { defineComponent as b, computed as n, openBlock as a, createBlock as h, resolveDynamicComponent as y, normalizeClass as $, withCtx as C, createElementBlock as s, renderSlot as l, createCommentVNode as o, toDisplayString as d } from "vue";
4
+ const _ = {
5
+ key: 0,
6
+ class: "rs-card__media"
7
+ }, g = {
8
+ key: 1,
9
+ class: "rs-card__header"
10
+ }, R = {
11
+ key: 0,
12
+ class: "rs-card__heading"
13
+ }, B = {
14
+ key: 0,
15
+ class: "rs-card__title"
16
+ }, w = {
17
+ key: 1,
18
+ class: "rs-card__subtitle"
19
+ }, D = {
20
+ key: 0,
21
+ class: "rs-card__actions"
22
+ }, E = {
23
+ key: 2,
24
+ class: "rs-card__body"
25
+ }, p = {
26
+ key: 3,
27
+ class: "rs-card__footer"
28
+ }, K = /* @__PURE__ */ b({
29
+ name: "RsCard",
30
+ __name: "RsCard",
31
+ props: {
32
+ title: {},
33
+ subtitle: {},
34
+ variant: { default: "default" },
35
+ padding: { default: "md" },
36
+ interactive: { type: Boolean, default: !1 },
37
+ as: { default: "article" },
38
+ ariaLabel: {}
39
+ },
40
+ emits: ["click"],
41
+ setup(t, { emit: r }) {
42
+ const i = t, c = r, u = n(() => [
43
+ "rs-card",
44
+ `rs-card--${i.variant}`,
45
+ `rs-card--padding-${i.padding}`,
46
+ {
47
+ "rs-card--interactive": i.interactive
48
+ }
49
+ ]), m = n(() => i.interactive ? "button" : void 0), f = n(() => i.interactive ? 0 : void 0);
50
+ function k(e) {
51
+ i.interactive && c("click", e);
52
+ }
53
+ function v(e) {
54
+ !i.interactive || e.key !== "Enter" && e.key !== " " || (e.preventDefault(), c("click", new MouseEvent("click")));
55
+ }
56
+ return (e, S) => (a(), h(y(t.as), {
57
+ "aria-label": t.ariaLabel,
58
+ class: $(u.value),
59
+ role: m.value,
60
+ tabindex: f.value,
61
+ onClick: k,
62
+ onKeydown: v
63
+ }, {
64
+ default: C(() => [
65
+ e.$slots.media ? (a(), s("div", _, [
66
+ l(e.$slots, "media")
67
+ ])) : o("", !0),
68
+ e.$slots.header || t.title || t.subtitle || e.$slots.actions ? (a(), s("header", g, [
69
+ l(e.$slots, "header", {}, () => [
70
+ t.title || t.subtitle ? (a(), s("div", R, [
71
+ t.title ? (a(), s("h3", B, d(t.title), 1)) : o("", !0),
72
+ t.subtitle ? (a(), s("p", w, d(t.subtitle), 1)) : o("", !0)
73
+ ])) : o("", !0)
74
+ ]),
75
+ e.$slots.actions ? (a(), s("div", D, [
76
+ l(e.$slots, "actions")
77
+ ])) : o("", !0)
78
+ ])) : o("", !0),
79
+ e.$slots.default ? (a(), s("div", E, [
80
+ l(e.$slots, "default")
81
+ ])) : o("", !0),
82
+ e.$slots.footer ? (a(), s("footer", p, [
83
+ l(e.$slots, "footer")
84
+ ])) : o("", !0)
85
+ ]),
86
+ _: 3
87
+ }, 40, ["aria-label", "class", "role", "tabindex"]));
88
+ }
89
+ }), L = [K], z = {
90
+ install(t) {
91
+ for (const r of L)
92
+ t.component(r.name ?? "", r);
93
+ }
94
+ };
95
+ export {
96
+ z as RobosophyUiVue,
97
+ K as RsCard,
98
+ L as components,
99
+ z as default
100
+ };
101
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/components/RsCard/RsCard.vue","../src/plugin.ts"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from \"vue\";\n\nimport type { RsCardProps } from \"./RsCard.types\";\n\ndefineOptions({\n name: \"RsCard\",\n});\n\nconst props = withDefaults(defineProps<RsCardProps>(), {\n as: \"article\",\n interactive: false,\n padding: \"md\",\n variant: \"default\",\n});\n\nconst emit = defineEmits<{\n click: [event: MouseEvent];\n}>();\n\nconst rootClass = computed(() => [\n \"rs-card\",\n `rs-card--${props.variant}`,\n `rs-card--padding-${props.padding}`,\n {\n \"rs-card--interactive\": props.interactive,\n },\n]);\n\nconst rootRole = computed(() => (props.interactive ? \"button\" : undefined));\nconst rootTabindex = computed(() => (props.interactive ? 0 : undefined));\n\nfunction emitInteractiveClick(event: MouseEvent) {\n if (props.interactive) {\n emit(\"click\", event);\n }\n}\n\nfunction emitKeyboardClick(event: KeyboardEvent) {\n if (!props.interactive || (event.key !== \"Enter\" && event.key !== \" \")) {\n return;\n }\n\n event.preventDefault();\n emit(\"click\", new MouseEvent(\"click\"));\n}\n</script>\n\n<template>\n <component\n :is=\"as\"\n :aria-label=\"ariaLabel\"\n :class=\"rootClass\"\n :role=\"rootRole\"\n :tabindex=\"rootTabindex\"\n @click=\"emitInteractiveClick\"\n @keydown=\"emitKeyboardClick\"\n >\n <div v-if=\"$slots.media\" class=\"rs-card__media\">\n <slot name=\"media\" />\n </div>\n\n <header v-if=\"$slots.header || title || subtitle || $slots.actions\" class=\"rs-card__header\">\n <slot name=\"header\">\n <div v-if=\"title || subtitle\" class=\"rs-card__heading\">\n <h3 v-if=\"title\" class=\"rs-card__title\">{{ title }}</h3>\n <p v-if=\"subtitle\" class=\"rs-card__subtitle\">{{ subtitle }}</p>\n </div>\n </slot>\n\n <div v-if=\"$slots.actions\" class=\"rs-card__actions\">\n <slot name=\"actions\" />\n </div>\n </header>\n\n <div v-if=\"$slots.default\" class=\"rs-card__body\">\n <slot />\n </div>\n\n <footer v-if=\"$slots.footer\" class=\"rs-card__footer\">\n <slot name=\"footer\" />\n </footer>\n </component>\n</template>\n\n<style src=\"./RsCard.css\"></style>\n","import type { App, Plugin } from \"vue\";\n\nimport RsCard from \"./components/RsCard\";\n\nexport const components = [RsCard] as const;\n\nexport const RobosophyUiVue: Plugin = {\n install(app: App) {\n for (const component of components) {\n app.component(component.name ?? \"\", component);\n }\n },\n};\n\nexport default RobosophyUiVue;\n"],"names":["props","__props","emit","__emit","rootClass","computed","rootRole","rootTabindex","emitInteractiveClick","event","emitKeyboardClick","_openBlock","_createBlock","_resolveDynamicComponent","$slots","_createElementBlock","_hoisted_1","_renderSlot","_ctx","_hoisted_2","_hoisted_3","_hoisted_4","_toDisplayString","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","components","RsCard","RobosophyUiVue","app","component"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,UAAMA,IAAQC,GAORC,IAAOC,GAIPC,IAAYC,EAAS,MAAM;AAAA,MAC/B;AAAA,MACA,YAAYL,EAAM,OAAO;AAAA,MACzB,oBAAoBA,EAAM,OAAO;AAAA,MACjC;AAAA,QACE,wBAAwBA,EAAM;AAAA,MAAA;AAAA,IAChC,CACD,GAEKM,IAAWD,EAAS,MAAOL,EAAM,cAAc,WAAW,MAAU,GACpEO,IAAeF,EAAS,MAAOL,EAAM,cAAc,IAAI,MAAU;AAEvE,aAASQ,EAAqBC,GAAmB;AAC/C,MAAIT,EAAM,eACRE,EAAK,SAASO,CAAK;AAAA,IAEvB;AAEA,aAASC,EAAkBD,GAAsB;AAC/C,MAAI,CAACT,EAAM,eAAgBS,EAAM,QAAQ,WAAWA,EAAM,QAAQ,QAIlEA,EAAM,eAAA,GACNP,EAAK,SAAS,IAAI,WAAW,OAAO,CAAC;AAAA,IACvC;sBAIES,KAAAC,EAiCYC,EAhCLZ,EAAA,EAAE,GAAA;AAAA,MACN,cAAYA,EAAA;AAAA,MACZ,SAAOG,EAAA,KAAS;AAAA,MAChB,MAAME,EAAA;AAAA,MACN,UAAUC,EAAA;AAAA,MACV,SAAOC;AAAA,MACP,WAASE;AAAA,IAAA;iBAEV,MAEM;AAAA,QAFKI,EAAAA,OAAO,SAAlBH,KAAAI,EAEM,OAFNC,GAEM;AAAA,UADJC,EAAqBC,EAAA,QAAA,OAAA;AAAA,QAAA;QAGTJ,EAAAA,OAAO,UAAUb,EAAA,SAASA,EAAA,YAAYa,EAAAA,OAAO,WAA3DH,EAAA,GAAAI,EAWS,UAXTI,GAWS;AAAA,UAVPF,EAKOC,wBALP,MAKO;AAAA,YAJMjB,EAAA,SAASA,EAAA,YAApBU,KAAAI,EAGM,OAHNK,GAGM;AAAA,cAFMnB,EAAA,cAAVc,EAAwD,MAAxDM,GAAwDC,EAAbrB,EAAA,KAAK,GAAA,CAAA;cACvCA,EAAA,iBAATc,EAA+D,KAA/DQ,GAA+DD,EAAfrB,EAAA,QAAQ,GAAA,CAAA;;;UAIjDa,EAAAA,OAAO,WAAlBH,KAAAI,EAEM,OAFNS,GAEM;AAAA,YADJP,EAAuBC,EAAA,QAAA,SAAA;AAAA,UAAA;;QAIhBJ,EAAAA,OAAO,WAAlBH,KAAAI,EAEM,OAFNU,GAEM;AAAA,UADJR,EAAQC,EAAA,QAAA,SAAA;AAAA,QAAA;QAGIJ,EAAAA,OAAO,UAArBH,KAAAI,EAES,UAFTW,GAES;AAAA,UADPT,EAAsBC,EAAA,QAAA,QAAA;AAAA,QAAA;;;;;IC5EfS,IAAa,CAACC,CAAM,GAEpBC,IAAyB;AAAA,EACpC,QAAQC,GAAU;AAChB,eAAWC,KAAaJ;AACtB,MAAAG,EAAI,UAAUC,EAAU,QAAQ,IAAIA,CAAS;AAAA,EAEjD;AACF;"}
@@ -0,0 +1,54 @@
1
+ import type { Plugin } from "vue";
2
+ export declare const components: readonly [{
3
+ new (...args: any[]): import("vue").CreateComponentPublicInstanceWithMixins<Readonly<import(".").RsCardProps> & Readonly<{
4
+ onClick?: ((event: MouseEvent) => any) | undefined;
5
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
6
+ click: (event: MouseEvent) => any;
7
+ }, import("vue").PublicProps, {
8
+ variant: import(".").RsCardVariant;
9
+ padding: import(".").RsCardPadding;
10
+ interactive: boolean;
11
+ as: import(".").RsCardAs;
12
+ }, false, {}, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, {}, any, import("vue").ComponentProvideOptions, {
13
+ P: {};
14
+ B: {};
15
+ D: {};
16
+ C: {};
17
+ M: {};
18
+ Defaults: {};
19
+ }, Readonly<import(".").RsCardProps> & Readonly<{
20
+ onClick?: ((event: MouseEvent) => any) | undefined;
21
+ }>, {}, {}, {}, {}, {
22
+ variant: import(".").RsCardVariant;
23
+ padding: import(".").RsCardPadding;
24
+ interactive: boolean;
25
+ as: import(".").RsCardAs;
26
+ }>;
27
+ __isFragment?: never;
28
+ __isTeleport?: never;
29
+ __isSuspense?: never;
30
+ } & import("vue").ComponentOptionsBase<Readonly<import(".").RsCardProps> & Readonly<{
31
+ onClick?: ((event: MouseEvent) => any) | undefined;
32
+ }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
33
+ click: (event: MouseEvent) => any;
34
+ }, string, {
35
+ variant: import(".").RsCardVariant;
36
+ padding: import(".").RsCardPadding;
37
+ interactive: boolean;
38
+ as: import(".").RsCardAs;
39
+ }, {}, string, {}, import("vue").GlobalComponents, import("vue").GlobalDirectives, string, import("vue").ComponentProvideOptions> & import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps & (new () => {
40
+ $slots: {
41
+ media?: (props: {}) => any;
42
+ } & {
43
+ header?: (props: {}) => any;
44
+ } & {
45
+ actions?: (props: {}) => any;
46
+ } & {
47
+ default?: (props: {}) => any;
48
+ } & {
49
+ footer?: (props: {}) => any;
50
+ };
51
+ })];
52
+ export declare const RobosophyUiVue: Plugin;
53
+ export default RobosophyUiVue;
54
+ //# sourceMappingURL=plugin.d.ts.map
@@ -0,0 +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"}
package/package.json ADDED
@@ -0,0 +1,54 @@
1
+ {
2
+ "name": "@robosophy/ui-vue",
3
+ "version": "0.0.0",
4
+ "private": false,
5
+ "license": "UNLICENSED",
6
+ "type": "module",
7
+ "main": "./dist/index.js",
8
+ "types": "./dist/index.d.ts",
9
+ "exports": {
10
+ ".": {
11
+ "types": "./dist/index.d.ts",
12
+ "default": "./dist/index.js"
13
+ },
14
+ "./ai-context.md": "./ai-context.md"
15
+ },
16
+ "files": [
17
+ "ai-context.md",
18
+ "dist",
19
+ "README.md",
20
+ "package.json"
21
+ ],
22
+ "sideEffects": [
23
+ "**/*.css"
24
+ ],
25
+ "scripts": {
26
+ "build": "vite build && node scripts/add-style-import.mjs && vue-tsc --emitDeclarationOnly && node ../../scripts/add-generated-notice.mjs dist/index.js dist/index.d.ts",
27
+ "storybook": "storybook dev -p 6006",
28
+ "build:storybook": "storybook build",
29
+ "test": "vitest run"
30
+ },
31
+ "peerDependencies": {
32
+ "@robosophy/tokens": "*",
33
+ "primevue": ">=4",
34
+ "vue": ">=3.4"
35
+ },
36
+ "peerDependenciesMeta": {
37
+ "primevue": {
38
+ "optional": true
39
+ }
40
+ },
41
+ "devDependencies": {
42
+ "@robosophy/tokens": "0.0.2",
43
+ "@storybook/addon-docs": "^9.1.0",
44
+ "@storybook/vue3-vite": "^9.1.0",
45
+ "@vitejs/plugin-vue": "^6.0.0",
46
+ "@vue/test-utils": "^2.4.6",
47
+ "happy-dom": "^20.0.0",
48
+ "typescript": "^5.9.3",
49
+ "vite": "^7.2.0",
50
+ "vitest": "^4.0.0",
51
+ "vue": "^3.5.0",
52
+ "vue-tsc": "^3.1.0"
53
+ }
54
+ }