morya-ui 0.2.2 → 0.2.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 (39) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/Card-BQfmv5Iw.js +62 -0
  3. package/dist/card/index.js +2 -62
  4. package/dist/components/Layout/Layout.vue.d.ts +1 -0
  5. package/dist/components/Layout/Layout.vue.d.ts.map +1 -1
  6. package/dist/components/Layout/styles.css +4 -0
  7. package/dist/components/Layout/types.d.ts +2 -0
  8. package/dist/components/Layout/types.d.ts.map +1 -1
  9. package/dist/components/Page/PageContent.vue.d.ts +19 -0
  10. package/dist/components/Page/PageContent.vue.d.ts.map +1 -0
  11. package/dist/components/Page/PageFilters.vue.d.ts +16 -0
  12. package/dist/components/Page/PageFilters.vue.d.ts.map +1 -0
  13. package/dist/components/Page/PageHeader.vue.d.ts +22 -0
  14. package/dist/components/Page/PageHeader.vue.d.ts.map +1 -0
  15. package/dist/components/Page/PagePlaceholder.vue.d.ts +20 -0
  16. package/dist/components/Page/PagePlaceholder.vue.d.ts.map +1 -0
  17. package/dist/components/Page/PageSection.vue.d.ts +19 -0
  18. package/dist/components/Page/PageSection.vue.d.ts.map +1 -0
  19. package/dist/components/Page/PageStat.vue.d.ts +18 -0
  20. package/dist/components/Page/PageStat.vue.d.ts.map +1 -0
  21. package/dist/components/Page/PageToolbar.vue.d.ts +20 -0
  22. package/dist/components/Page/PageToolbar.vue.d.ts.map +1 -0
  23. package/dist/components/Page/index.d.ts +9 -0
  24. package/dist/components/Page/index.d.ts.map +1 -0
  25. package/dist/components/Page/styles.css +193 -0
  26. package/dist/components/Page/types.d.ts +54 -0
  27. package/dist/components/Page/types.d.ts.map +1 -0
  28. package/dist/index.d.ts +8 -0
  29. package/dist/index.d.ts.map +1 -1
  30. package/dist/index.js +495 -325
  31. package/dist/layout/index.js +6 -1
  32. package/dist/layout/style.css +4 -0
  33. package/dist/page/index.js +176 -0
  34. package/dist/page/style.css +1157 -0
  35. package/dist/page/style.js +5 -0
  36. package/dist/resolver-map.d.ts.map +1 -1
  37. package/dist/resolver.js +7 -0
  38. package/dist/styles.css +1 -1
  39. package/package.json +8 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,16 @@
1
1
  # morya-ui
2
2
 
3
+ ## 0.2.3
4
+
5
+ ### 新功能
6
+
7
+ - add page composition tooling for AI agents
8
+ - add MPage composition components for admin layouts
9
+
10
+ ### 修复
11
+
12
+ - register Page styles in global stylesheet
13
+
3
14
  ## 0.2.2
4
15
 
5
16
  ### 新功能
@@ -0,0 +1,62 @@
1
+ import { r as e } from "./useComponentAttrs-BTYEe61P.js";
2
+ import { i as t } from "./types-DGuu4Eg4.js";
3
+ import { computed as n, createBlock as r, createCommentVNode as i, createElementBlock as a, createElementVNode as o, createTextVNode as s, defineComponent as c, mergeProps as l, openBlock as u, renderSlot as d, resolveDynamicComponent as f, toDisplayString as p, unref as m, useAttrs as h, withCtx as g } from "vue";
4
+ //#region src/components/Card/Card.vue?vue&type=script&setup=true&lang.ts
5
+ var _ = ["aria-label"], v = {
6
+ key: 0,
7
+ class: "m-card__cover"
8
+ }, y = {
9
+ key: 1,
10
+ class: "m-card__header"
11
+ }, b = {
12
+ key: 1,
13
+ class: "m-card__subtitle"
14
+ }, x = { class: "m-card__body" }, S = {
15
+ key: 2,
16
+ class: "m-card__footer"
17
+ }, C = /* @__PURE__ */ c({
18
+ inheritAttrs: !1,
19
+ __name: "Card",
20
+ props: {
21
+ pt: {},
22
+ title: {},
23
+ subtitle: {},
24
+ ariaLabel: {},
25
+ headingLevel: { default: 2 },
26
+ size: {},
27
+ bordered: {
28
+ type: Boolean,
29
+ default: !0
30
+ },
31
+ hoverable: {
32
+ type: Boolean,
33
+ default: !1
34
+ }
35
+ },
36
+ setup(c) {
37
+ let C = c, w = h(), { rootAttrs: T } = e(w, () => C.pt), E = n(() => t(C.size)), D = n(() => `h${C.headingLevel}`), O = n(() => ["m-card", {
38
+ "m-card--bordered": C.bordered,
39
+ "m-card--borderless": !C.bordered,
40
+ "m-card--hoverable": C.hoverable,
41
+ "m-card--small": E.value === "small",
42
+ "m-card--large": E.value === "large"
43
+ }]);
44
+ return (e, t) => (u(), a("section", l(m(T), {
45
+ class: O.value,
46
+ "aria-label": c.ariaLabel ?? c.title
47
+ }), [
48
+ e.$slots.cover ? (u(), a("div", v, [d(e.$slots, "cover")])) : i("", !0),
49
+ e.$slots.header || c.title || c.subtitle ? (u(), a("div", y, [d(e.$slots, "header", {}, () => [c.title ? (u(), r(f(D.value), {
50
+ key: 0,
51
+ class: "m-card__title"
52
+ }, {
53
+ default: g(() => [s(p(c.title), 1)]),
54
+ _: 1
55
+ })) : i("", !0), c.subtitle ? (u(), a("p", b, p(c.subtitle), 1)) : i("", !0)])])) : i("", !0),
56
+ o("div", x, [d(e.$slots, "default")]),
57
+ e.$slots.footer ? (u(), a("footer", S, [d(e.$slots, "footer")])) : i("", !0)
58
+ ], 16, _));
59
+ }
60
+ });
61
+ //#endregion
62
+ export { C as t };
@@ -1,63 +1,3 @@
1
- import { r as e } from "../useComponentAttrs-BTYEe61P.js";
2
- import { i as t } from "../types-DGuu4Eg4.js";
1
+ import { t as e } from "../Card-BQfmv5Iw.js";
3
2
  import "./style.js";
4
- import { computed as n, createBlock as r, createCommentVNode as i, createElementBlock as a, createElementVNode as o, createTextVNode as s, defineComponent as c, mergeProps as l, openBlock as u, renderSlot as d, resolveDynamicComponent as f, toDisplayString as p, unref as m, useAttrs as h, withCtx as g } from "vue";
5
- //#region src/components/Card/Card.vue?vue&type=script&setup=true&lang.ts
6
- var _ = ["aria-label"], v = {
7
- key: 0,
8
- class: "m-card__cover"
9
- }, y = {
10
- key: 1,
11
- class: "m-card__header"
12
- }, b = {
13
- key: 1,
14
- class: "m-card__subtitle"
15
- }, x = { class: "m-card__body" }, S = {
16
- key: 2,
17
- class: "m-card__footer"
18
- }, C = /* @__PURE__ */ c({
19
- inheritAttrs: !1,
20
- __name: "Card",
21
- props: {
22
- pt: {},
23
- title: {},
24
- subtitle: {},
25
- ariaLabel: {},
26
- headingLevel: { default: 2 },
27
- size: {},
28
- bordered: {
29
- type: Boolean,
30
- default: !0
31
- },
32
- hoverable: {
33
- type: Boolean,
34
- default: !1
35
- }
36
- },
37
- setup(c) {
38
- let C = c, w = h(), { rootAttrs: T } = e(w, () => C.pt), E = n(() => t(C.size)), D = n(() => `h${C.headingLevel}`), O = n(() => ["m-card", {
39
- "m-card--bordered": C.bordered,
40
- "m-card--borderless": !C.bordered,
41
- "m-card--hoverable": C.hoverable,
42
- "m-card--small": E.value === "small",
43
- "m-card--large": E.value === "large"
44
- }]);
45
- return (e, t) => (u(), a("section", l(m(T), {
46
- class: O.value,
47
- "aria-label": c.ariaLabel ?? c.title
48
- }), [
49
- e.$slots.cover ? (u(), a("div", v, [d(e.$slots, "cover")])) : i("", !0),
50
- e.$slots.header || c.title || c.subtitle ? (u(), a("div", y, [d(e.$slots, "header", {}, () => [c.title ? (u(), r(f(D.value), {
51
- key: 0,
52
- class: "m-card__title"
53
- }, {
54
- default: g(() => [s(p(c.title), 1)]),
55
- _: 1
56
- })) : i("", !0), c.subtitle ? (u(), a("p", b, p(c.subtitle), 1)) : i("", !0)])])) : i("", !0),
57
- o("div", x, [d(e.$slots, "default")]),
58
- e.$slots.footer ? (u(), a("footer", S, [d(e.$slots, "footer")])) : i("", !0)
59
- ], 16, _));
60
- }
61
- });
62
- //#endregion
63
- export { C as MCard };
3
+ export { e as MCard };
@@ -13,6 +13,7 @@ declare const __VLS_base: DefineComponent<LayoutProps, LayoutExpose, {}, {}, {},
13
13
  embedded: boolean;
14
14
  hasSider: boolean;
15
15
  siderPlacement: LayoutSiderPlacement;
16
+ fillViewport: boolean;
16
17
  }, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
17
18
  declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
18
19
  declare const _default: typeof __VLS_export;
@@ -1 +1 @@
1
- {"version":3,"file":"Layout.vue.d.ts","sourceRoot":"","sources":["../../../src/components/Layout/Layout.vue"],"names":[],"mappings":";AAyFA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAmHzD,QAAA,IAAI,OAAO,IAAW,CAAE;AACxB,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,CAAC;AAO/C,QAAA,MAAM,UAAU;;;;;;;;;6EAKd,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"}
1
+ {"version":3,"file":"Layout.vue.d.ts","sourceRoot":"","sources":["../../../src/components/Layout/Layout.vue"],"names":[],"mappings":";AA2FA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAsHzD,QAAA,IAAI,OAAO,IAAW,CAAE;AACxB,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,CAAC;AAO/C,QAAA,MAAM,UAAU;;;;;;;;;;6EAKd,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"}
@@ -27,6 +27,10 @@
27
27
  );
28
28
  }
29
29
 
30
+ .m-layout--fill-viewport {
31
+ min-height: 100vh;
32
+ }
33
+
30
34
  .m-layout--absolute-positioned {
31
35
  inset: 0;
32
36
  position: absolute;
@@ -23,6 +23,8 @@ export interface LayoutProps {
23
23
  contentClass?: string;
24
24
  /** Extra style on the scroll / content wrapper. */
25
25
  contentStyle?: string | CSSProperties;
26
+ /** Stretch the layout to at least the viewport height. */
27
+ fillViewport?: boolean;
26
28
  }
27
29
  export interface LayoutHeaderProps {
28
30
  pt?: RootPassThrough;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Layout/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Layout/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import { PageContentProps, PageContentDensity, PageContentWidth } from './types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ declare var __VLS_1: {};
4
+ type __VLS_Slots = {} & {
5
+ default?: (props: typeof __VLS_1) => any;
6
+ };
7
+ declare const __VLS_base: DefineComponent<PageContentProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<PageContentProps> & Readonly<{}>, {
8
+ density: PageContentDensity;
9
+ width: PageContentWidth;
10
+ }, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
11
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
12
+ declare const _default: typeof __VLS_export;
13
+ export default _default;
14
+ type __VLS_WithSlots<T, S> = T & {
15
+ new (): {
16
+ $slots: S;
17
+ };
18
+ };
19
+ //# sourceMappingURL=PageContent.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageContent.vue.d.ts","sourceRoot":"","sources":["../../../src/components/Page/PageContent.vue"],"names":[],"mappings":";AAiCA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAmD/C,QAAA,IAAI,OAAO,IAAW,CAAE;AACxB,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,CAAC;AAK/C,QAAA,MAAM,UAAU;;;6EAGd,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,16 @@
1
+ import { PageFiltersProps } from './types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ declare var __VLS_1: {};
4
+ type __VLS_Slots = {} & {
5
+ default?: (props: typeof __VLS_1) => any;
6
+ };
7
+ declare const __VLS_base: DefineComponent<PageFiltersProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<PageFiltersProps> & Readonly<{}>, {}, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
8
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
9
+ declare const _default: typeof __VLS_export;
10
+ export default _default;
11
+ type __VLS_WithSlots<T, S> = T & {
12
+ new (): {
13
+ $slots: S;
14
+ };
15
+ };
16
+ //# sourceMappingURL=PageFilters.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageFilters.vue.d.ts","sourceRoot":"","sources":["../../../src/components/Page/PageFilters.vue"],"names":[],"mappings":";AAyBA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAoC/C,QAAA,IAAI,OAAO,IAAW,CAAE;AACxB,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,CAAC;AAK/C,QAAA,MAAM,UAAU,4SAEd,CAAC;AACH,QAAA,MAAM,YAAY,EAAS,eAAe,CAAC,OAAO,UAAU,EAAE,WAAW,CAAC,CAAC;wBACtD,OAAO,YAAY;AAAxC,wBAAyC;AACzC,KAAK,eAAe,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IAChC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KACV,CAAA;CACD,CAAC"}
@@ -0,0 +1,22 @@
1
+ import { PageHeaderProps } from './types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ declare var __VLS_7: {}, __VLS_9: {}, __VLS_11: {};
4
+ type __VLS_Slots = {} & {
5
+ title?: (props: typeof __VLS_7) => any;
6
+ } & {
7
+ description?: (props: typeof __VLS_9) => any;
8
+ } & {
9
+ actions?: (props: typeof __VLS_11) => any;
10
+ };
11
+ declare const __VLS_base: DefineComponent<PageHeaderProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<PageHeaderProps> & Readonly<{}>, {
12
+ headingLevel: 1 | 2 | 3 | 4 | 5 | 6;
13
+ }, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
14
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
15
+ declare const _default: typeof __VLS_export;
16
+ export default _default;
17
+ type __VLS_WithSlots<T, S> = T & {
18
+ new (): {
19
+ $slots: S;
20
+ };
21
+ };
22
+ //# sourceMappingURL=PageHeader.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageHeader.vue.d.ts","sourceRoot":"","sources":["../../../src/components/Page/PageHeader.vue"],"names":[],"mappings":";AAuCA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,SAAS,CAAA;AAwF9C,QAAA,IAAI,OAAO,IAAU,EAAE,OAAO,IAAU,EAAE,QAAQ,IAAY,CAAE;AAChE,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAC1C;IAAE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAChD;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,QAAQ,KAAK,GAAG,CAAA;CAAE,CAAC;AAKhD,QAAA,MAAM,UAAU;;6EAGd,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,20 @@
1
+ import { PagePlaceholderProps } from './types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ declare var __VLS_1: {};
4
+ type __VLS_Slots = {} & {
5
+ default?: (props: typeof __VLS_1) => any;
6
+ };
7
+ declare const __VLS_base: DefineComponent<PagePlaceholderProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<PagePlaceholderProps> & Readonly<{}>, {
8
+ ariaLabel: string;
9
+ minHeight: number | string;
10
+ description: string;
11
+ }, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
12
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
13
+ declare const _default: typeof __VLS_export;
14
+ export default _default;
15
+ type __VLS_WithSlots<T, S> = T & {
16
+ new (): {
17
+ $slots: S;
18
+ };
19
+ };
20
+ //# sourceMappingURL=PagePlaceholder.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PagePlaceholder.vue.d.ts","sourceRoot":"","sources":["../../../src/components/Page/PagePlaceholder.vue"],"names":[],"mappings":";AAqCA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAA;AAqDnD,QAAA,IAAI,OAAO,IAAW,CAAE;AACxB,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,CAAC;AAK/C,QAAA,MAAM,UAAU;;;;6EAGd,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,19 @@
1
+ import { PageSectionProps, PageSectionVariant } from './types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ declare var __VLS_7: {};
4
+ type __VLS_Slots = {} & {
5
+ default?: (props: typeof __VLS_7) => any;
6
+ };
7
+ declare const __VLS_base: DefineComponent<PageSectionProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<PageSectionProps> & Readonly<{}>, {
8
+ variant: PageSectionVariant;
9
+ headingLevel: 2 | 3 | 4 | 5 | 6;
10
+ }, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
11
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
12
+ declare const _default: typeof __VLS_export;
13
+ export default _default;
14
+ type __VLS_WithSlots<T, S> = T & {
15
+ new (): {
16
+ $slots: S;
17
+ };
18
+ };
19
+ //# sourceMappingURL=PageSection.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageSection.vue.d.ts","sourceRoot":"","sources":["../../../src/components/Page/PageSection.vue"],"names":[],"mappings":";AAqCA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAqE/C,QAAA,IAAI,OAAO,IAAW,CAAE;AACxB,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,CAAC;AAK/C,QAAA,MAAM,UAAU;;;6EAGd,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,18 @@
1
+ import { PageStatProps, PageStatTrendSeverity } from './types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ declare var __VLS_8: {};
4
+ type __VLS_Slots = {} & {
5
+ default?: (props: typeof __VLS_8) => any;
6
+ };
7
+ declare const __VLS_base: DefineComponent<PageStatProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<PageStatProps> & Readonly<{}>, {
8
+ trendSeverity: PageStatTrendSeverity;
9
+ }, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
10
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
11
+ declare const _default: typeof __VLS_export;
12
+ export default _default;
13
+ type __VLS_WithSlots<T, S> = T & {
14
+ new (): {
15
+ $slots: S;
16
+ };
17
+ };
18
+ //# sourceMappingURL=PageStat.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageStat.vue.d.ts","sourceRoot":"","sources":["../../../src/components/Page/PageStat.vue"],"names":[],"mappings":";AA8CA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AAsG5C,QAAA,IAAI,OAAO,IAAW,CAAE;AACxB,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,CAAC;AAK/C,QAAA,MAAM,UAAU;;6EAGd,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,20 @@
1
+ import { PageToolbarProps } from './types';
2
+ import { DefineComponent, ComponentOptionsMixin, PublicProps, ComponentProvideOptions } from 'vue';
3
+ declare var __VLS_7: {}, __VLS_9: {};
4
+ type __VLS_Slots = {} & {
5
+ default?: (props: typeof __VLS_7) => any;
6
+ } & {
7
+ actions?: (props: typeof __VLS_9) => any;
8
+ };
9
+ declare const __VLS_base: DefineComponent<PageToolbarProps, {}, {}, {}, {}, ComponentOptionsMixin, ComponentOptionsMixin, {}, string, PublicProps, Readonly<PageToolbarProps> & Readonly<{}>, {
10
+ headingLevel: 1 | 2 | 3 | 4 | 5 | 6;
11
+ }, {}, {}, {}, string, ComponentProvideOptions, false, {}, any>;
12
+ declare const __VLS_export: __VLS_WithSlots<typeof __VLS_base, __VLS_Slots>;
13
+ declare const _default: typeof __VLS_export;
14
+ export default _default;
15
+ type __VLS_WithSlots<T, S> = T & {
16
+ new (): {
17
+ $slots: S;
18
+ };
19
+ };
20
+ //# sourceMappingURL=PageToolbar.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PageToolbar.vue.d.ts","sourceRoot":"","sources":["../../../src/components/Page/PageToolbar.vue"],"names":[],"mappings":";AAiCA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAwE/C,QAAA,IAAI,OAAO,IAAU,EAAE,OAAO,IAAW,CAAE;AAC3C,KAAK,WAAW,GAAG,EAAE,GACnB;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,GAC5C;IAAE,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,OAAO,KAAK,GAAG,CAAA;CAAE,CAAC;AAK/C,QAAA,MAAM,UAAU;;6EAGd,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,9 @@
1
+ export { default as MPageContent } from './PageContent.vue';
2
+ export { default as MPageFilters } from './PageFilters.vue';
3
+ export { default as MPageHeader } from './PageHeader.vue';
4
+ export { default as MPagePlaceholder } from './PagePlaceholder.vue';
5
+ export { default as MPageSection } from './PageSection.vue';
6
+ export { default as MPageStat } from './PageStat.vue';
7
+ export { default as MPageToolbar } from './PageToolbar.vue';
8
+ export type { PageContentDensity, PageContentProps, PageContentWidth, PageFiltersProps, PageHeaderProps, PagePlaceholderProps, PageSectionProps, PageSectionVariant, PageStatProps, PageStatTrendSeverity, PageToolbarProps, } from './types';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Page/index.ts"],"names":[],"mappings":"AAAA,OAAO,SAAS,CAAA;AAChB,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,OAAO,IAAI,WAAW,EAAE,MAAM,kBAAkB,CAAA;AACzD,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,uBAAuB,CAAA;AACnE,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,gBAAgB,CAAA;AACrD,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC3D,YAAY,EACV,kBAAkB,EAClB,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,kBAAkB,EAClB,aAAa,EACb,qBAAqB,EACrB,gBAAgB,GACjB,MAAM,SAAS,CAAA"}
@@ -0,0 +1,193 @@
1
+ .m-page-content {
2
+ box-sizing: border-box;
3
+ display: flex;
4
+ flex-direction: column;
5
+ gap: var(--m-page-content-gap, var(--m-space-4));
6
+ padding: var(--m-page-content-padding, var(--m-space-6));
7
+ width: 100%;
8
+ }
9
+
10
+ .m-page-content--compact {
11
+ --m-page-content-padding: var(--m-space-4);
12
+ }
13
+
14
+ .m-page-content--spacious {
15
+ --m-page-content-gap: var(--m-space-6);
16
+ }
17
+
18
+ .m-page-content--narrow {
19
+ max-width: 42rem;
20
+ }
21
+
22
+ .m-page-filters {
23
+ background: color-mix(in srgb, var(--m-color-border) 25%, transparent);
24
+ border: var(--m-border-width) solid var(--m-color-border);
25
+ border-radius: var(--m-radius-md);
26
+ box-sizing: border-box;
27
+ padding: var(--m-space-4);
28
+ width: 100%;
29
+ }
30
+
31
+ .m-page-toolbar {
32
+ align-items: center;
33
+ box-sizing: border-box;
34
+ display: flex;
35
+ flex-wrap: wrap;
36
+ gap: var(--m-space-4);
37
+ justify-content: space-between;
38
+ width: 100%;
39
+ }
40
+
41
+ .m-page-toolbar__title {
42
+ color: var(--m-color-text);
43
+ font-size: var(--m-font-size-lg);
44
+ font-weight: 600;
45
+ margin: 0;
46
+ }
47
+
48
+ .m-page-toolbar__actions {
49
+ align-items: center;
50
+ display: flex;
51
+ flex-wrap: wrap;
52
+ gap: var(--m-space-3);
53
+ }
54
+
55
+ .m-page-header {
56
+ box-sizing: border-box;
57
+ display: flex;
58
+ flex-wrap: wrap;
59
+ gap: var(--m-space-4);
60
+ justify-content: space-between;
61
+ width: 100%;
62
+ }
63
+
64
+ .m-page-header__main {
65
+ display: grid;
66
+ gap: var(--m-space-2);
67
+ min-width: 0;
68
+ }
69
+
70
+ .m-page-header__title {
71
+ color: var(--m-color-text);
72
+ font-size: var(--m-font-size-lg);
73
+ font-weight: 600;
74
+ margin: 0;
75
+ }
76
+
77
+ .m-page-header__description {
78
+ color: var(--m-color-text-muted);
79
+ font-size: var(--m-font-size-md);
80
+ margin: 0;
81
+ }
82
+
83
+ .m-page-header__actions {
84
+ align-items: center;
85
+ display: flex;
86
+ flex-wrap: wrap;
87
+ gap: var(--m-space-3);
88
+ }
89
+
90
+ .m-page-section {
91
+ box-sizing: border-box;
92
+ width: 100%;
93
+ }
94
+
95
+ .m-page-section__title {
96
+ color: var(--m-color-text);
97
+ font-size: var(--m-font-size-md);
98
+ font-weight: 600;
99
+ margin: 0 0 var(--m-space-3);
100
+ }
101
+
102
+ .m-page-section--muted {
103
+ background: color-mix(in srgb, var(--m-color-border) 25%, transparent);
104
+ border: var(--m-border-width) solid var(--m-color-border);
105
+ border-radius: var(--m-radius-md);
106
+ padding: var(--m-space-4);
107
+ }
108
+
109
+ .m-page-section--form {
110
+ background: var(--m-color-surface);
111
+ border: var(--m-border-width) solid var(--m-color-border);
112
+ border-radius: var(--m-radius-md);
113
+ box-shadow: var(--m-shadow-sm);
114
+ padding: var(--m-space-6);
115
+ }
116
+
117
+ .m-page-section--actions {
118
+ border-top: var(--m-border-width) solid var(--m-color-border);
119
+ margin-top: var(--m-space-6);
120
+ padding-top: var(--m-space-4);
121
+ }
122
+
123
+ .m-page-stat {
124
+ box-shadow: var(--m-shadow-sm);
125
+ }
126
+
127
+ .m-page-stat__body {
128
+ align-items: center;
129
+ display: flex;
130
+ gap: var(--m-space-4);
131
+ justify-content: space-between;
132
+ }
133
+
134
+ .m-page-stat__label {
135
+ color: var(--m-color-text-muted);
136
+ font-size: var(--m-font-size-sm);
137
+ margin: 0;
138
+ }
139
+
140
+ .m-page-stat__value {
141
+ color: var(--m-color-text);
142
+ font-size: 1.5rem;
143
+ font-weight: 700;
144
+ line-height: 1.2;
145
+ margin: var(--m-space-1) 0;
146
+ }
147
+
148
+ .m-page-stat__trend {
149
+ font-size: var(--m-font-size-sm);
150
+ margin: 0;
151
+ }
152
+
153
+ .m-page-stat__trend--primary {
154
+ color: var(--m-color-primary);
155
+ }
156
+
157
+ .m-page-stat__trend--success {
158
+ color: var(--m-color-success);
159
+ }
160
+
161
+ .m-page-stat__trend--warn {
162
+ color: var(--m-color-warn);
163
+ }
164
+
165
+ .m-page-stat__trend--danger {
166
+ color: var(--m-color-danger);
167
+ }
168
+
169
+ .m-page-stat__trend--secondary {
170
+ color: var(--m-color-text-muted);
171
+ }
172
+
173
+ .m-page-stat__icon {
174
+ color: var(--m-color-primary);
175
+ flex-shrink: 0;
176
+ opacity: 0.85;
177
+ }
178
+
179
+ .m-page-placeholder {
180
+ align-items: center;
181
+ background: color-mix(in srgb, var(--m-color-border) 15%, transparent);
182
+ border: var(--m-border-width) dashed var(--m-color-border);
183
+ border-radius: var(--m-radius-md);
184
+ box-sizing: border-box;
185
+ color: var(--m-color-text-muted);
186
+ display: grid;
187
+ font-size: var(--m-font-size-sm);
188
+ justify-items: center;
189
+ min-height: var(--m-page-placeholder-min-height, 12rem);
190
+ padding: var(--m-space-4);
191
+ text-align: center;
192
+ width: 100%;
193
+ }
@@ -0,0 +1,54 @@
1
+ import { IconName } from '../Icon/icons';
2
+ import { RootPassThrough } from '../../shared/passThrough';
3
+ export type PageContentDensity = 'default' | 'compact' | 'spacious';
4
+ export type PageContentWidth = 'full' | 'narrow';
5
+ export type PageSectionVariant = 'default' | 'muted' | 'form' | 'actions';
6
+ export type PageStatTrendSeverity = 'primary' | 'success' | 'warn' | 'danger' | 'secondary';
7
+ export interface PageContentProps {
8
+ pt?: RootPassThrough;
9
+ /** Vertical spacing between direct children. */
10
+ density?: PageContentDensity;
11
+ /** `narrow` caps width for form-like pages (~42rem). */
12
+ width?: PageContentWidth;
13
+ }
14
+ export interface PageFiltersProps {
15
+ pt?: RootPassThrough;
16
+ /** Accessible name for the filter region. */
17
+ ariaLabel?: string;
18
+ }
19
+ export interface PageToolbarProps {
20
+ pt?: RootPassThrough;
21
+ /** Optional page title rendered as heading. */
22
+ title?: string;
23
+ headingLevel?: 1 | 2 | 3 | 4 | 5 | 6;
24
+ }
25
+ export interface PageHeaderProps {
26
+ pt?: RootPassThrough;
27
+ title?: string;
28
+ description?: string;
29
+ headingLevel?: 1 | 2 | 3 | 4 | 5 | 6;
30
+ }
31
+ export interface PageSectionProps {
32
+ pt?: RootPassThrough;
33
+ /** Visual treatment for grouped page content. */
34
+ variant?: PageSectionVariant;
35
+ title?: string;
36
+ headingLevel?: 2 | 3 | 4 | 5 | 6;
37
+ }
38
+ export interface PageStatProps {
39
+ pt?: RootPassThrough;
40
+ label?: string;
41
+ value?: string | number;
42
+ trend?: string;
43
+ trendSeverity?: PageStatTrendSeverity;
44
+ icon?: IconName;
45
+ }
46
+ export interface PagePlaceholderProps {
47
+ pt?: RootPassThrough;
48
+ /** Short description shown inside the placeholder. */
49
+ description?: string;
50
+ /** Accessible label for chart or media placeholders. */
51
+ ariaLabel?: string;
52
+ minHeight?: number | string;
53
+ }
54
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/components/Page/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAA;AAE/D,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAA;AACnE,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,QAAQ,CAAA;AAChD,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,OAAO,GAAG,MAAM,GAAG,SAAS,CAAA;AACzE,MAAM,MAAM,qBAAqB,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,WAAW,CAAA;AAE3F,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,eAAe,CAAA;IACpB,gDAAgD;IAChD,OAAO,CAAC,EAAE,kBAAkB,CAAA;IAC5B,wDAAwD;IACxD,KAAK,CAAC,EAAE,gBAAgB,CAAA;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,eAAe,CAAA;IACpB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAA;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,eAAe,CAAA;IACpB,+CAA+C;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;CACrC;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,eAAe,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;CACrC;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,eAAe,CAAA;IACpB,iDAAiD;IACjD,OAAO,CAAC,EAAE,kBAAkB,CAAA;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;CACjC;AAED,MAAM,WAAW,aAAa;IAC5B,EAAE,CAAC,EAAE,eAAe,CAAA;IACpB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;IACvB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,aAAa,CAAC,EAAE,qBAAqB,CAAA;IACrC,IAAI,CAAC,EAAE,QAAQ,CAAA;CAChB;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,CAAC,EAAE,eAAe,CAAA;IACpB,sDAAsD;IACtD,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,wDAAwD;IACxD,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAC5B"}
package/dist/index.d.ts CHANGED
@@ -126,6 +126,14 @@ export { default as MOrderList } from './components/OrderList/OrderList.vue';
126
126
  export type { OrderListEmits, OrderListProps, } from './components/OrderList/types';
127
127
  export { default as MPagination } from './components/Pagination/Pagination.vue';
128
128
  export type { PaginationEmits, PaginationInstance, PaginationProps, } from './components/Pagination/types';
129
+ export { default as MPageContent } from './components/Page/PageContent.vue';
130
+ export { default as MPageFilters } from './components/Page/PageFilters.vue';
131
+ export { default as MPageHeader } from './components/Page/PageHeader.vue';
132
+ export { default as MPagePlaceholder } from './components/Page/PagePlaceholder.vue';
133
+ export { default as MPageSection } from './components/Page/PageSection.vue';
134
+ export { default as MPageStat } from './components/Page/PageStat.vue';
135
+ export { default as MPageToolbar } from './components/Page/PageToolbar.vue';
136
+ export type { PageContentDensity, PageContentProps, PageContentWidth, PageFiltersProps, PageHeaderProps, PagePlaceholderProps, PageSectionProps, PageSectionVariant, PageStatProps, PageStatTrendSeverity, PageToolbarProps, } from './components/Page/types';
129
137
  export { default as MPanel } from './components/Panel/Panel.vue';
130
138
  export type { PanelEmits, PanelProps, PanelSize, } from './components/Panel/types';
131
139
  export { default as MPickList } from './components/PickList/PickList.vue';