morya-ui 0.2.1 → 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 (49) hide show
  1. package/CHANGELOG.md +22 -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/Menu/MenuCollapsedTooltip.vue.d.ts +27 -0
  10. package/dist/components/Menu/MenuCollapsedTooltip.vue.d.ts.map +1 -0
  11. package/dist/components/Menu/MenuNodes.vue.d.ts.map +1 -1
  12. package/dist/components/Menu/styles.css +25 -3
  13. package/dist/components/Page/PageContent.vue.d.ts +19 -0
  14. package/dist/components/Page/PageContent.vue.d.ts.map +1 -0
  15. package/dist/components/Page/PageFilters.vue.d.ts +16 -0
  16. package/dist/components/Page/PageFilters.vue.d.ts.map +1 -0
  17. package/dist/components/Page/PageHeader.vue.d.ts +22 -0
  18. package/dist/components/Page/PageHeader.vue.d.ts.map +1 -0
  19. package/dist/components/Page/PagePlaceholder.vue.d.ts +20 -0
  20. package/dist/components/Page/PagePlaceholder.vue.d.ts.map +1 -0
  21. package/dist/components/Page/PageSection.vue.d.ts +19 -0
  22. package/dist/components/Page/PageSection.vue.d.ts.map +1 -0
  23. package/dist/components/Page/PageStat.vue.d.ts +18 -0
  24. package/dist/components/Page/PageStat.vue.d.ts.map +1 -0
  25. package/dist/components/Page/PageToolbar.vue.d.ts +20 -0
  26. package/dist/components/Page/PageToolbar.vue.d.ts.map +1 -0
  27. package/dist/components/Page/index.d.ts +9 -0
  28. package/dist/components/Page/index.d.ts.map +1 -0
  29. package/dist/components/Page/styles.css +193 -0
  30. package/dist/components/Page/types.d.ts +54 -0
  31. package/dist/components/Page/types.d.ts.map +1 -0
  32. package/dist/config-provider/index.js +6 -6
  33. package/dist/index.d.ts +8 -0
  34. package/dist/index.d.ts.map +1 -1
  35. package/dist/index.js +1041 -826
  36. package/dist/layout/index.js +6 -1
  37. package/dist/layout/style.css +4 -0
  38. package/dist/menu/index.js +231 -185
  39. package/dist/menu/style.css +77 -3
  40. package/dist/menu/style.js +1 -0
  41. package/dist/page/index.js +176 -0
  42. package/dist/page/style.css +1157 -0
  43. package/dist/page/style.js +5 -0
  44. package/dist/resolver-map.d.ts.map +1 -1
  45. package/dist/resolver.js +7 -0
  46. package/dist/styles.css +1 -1
  47. package/dist/table/index.js +4 -4
  48. package/dist/tree/index.js +1 -1
  49. package/package.json +8 -1
@@ -1012,10 +1012,64 @@
1012
1012
  transform: translate(var(--m-motion-distance), -50%);
1013
1013
  }
1014
1014
 
1015
+ .m-tooltip {
1016
+ display: inline-flex;
1017
+ position: relative;
1018
+ }
1019
+
1020
+ .m-tooltip__content {
1021
+ background: var(--m-color-text);
1022
+ border-radius: var(--m-radius-sm);
1023
+ color: var(--m-color-surface);
1024
+ font-family: var(--m-font-sans);
1025
+ font-size: var(--m-font-size-xs);
1026
+ left: 50%;
1027
+ line-height: 1.35;
1028
+ padding: var(--m-space-2) var(--m-space-3);
1029
+ pointer-events: none;
1030
+ position: absolute;
1031
+ transform: translateX(-50%);
1032
+ white-space: nowrap;
1033
+ z-index: var(--m-z-popper);
1034
+ }
1035
+
1036
+ .m-tooltip__content--top {
1037
+ bottom: calc(100% + var(--m-space-2));
1038
+ }
1039
+
1040
+ .m-tooltip__content--bottom {
1041
+ top: calc(100% + var(--m-space-2));
1042
+ }
1043
+
1044
+ .m-tooltip__content--left {
1045
+ left: auto;
1046
+ right: calc(100% + var(--m-space-2));
1047
+ top: 50%;
1048
+ transform: translateY(-50%);
1049
+ }
1050
+
1051
+ .m-tooltip__content--right {
1052
+ left: calc(100% + var(--m-space-2));
1053
+ top: 50%;
1054
+ transform: translateY(-50%);
1055
+ }
1056
+
1057
+ .m-tooltip__content--teleported {
1058
+ bottom: auto;
1059
+ left: auto;
1060
+ position: fixed;
1061
+ right: auto;
1062
+ top: auto;
1063
+ white-space: normal;
1064
+ z-index: var(--m-z-tooltip);
1065
+ }
1066
+
1015
1067
  /* —— Menu —— */
1016
1068
  .m-menu {
1017
1069
  --m-menu-indent: var(--m-space-3);
1018
1070
  --m-menu-root-indent: var(--m-space-4);
1071
+ --m-menu-submenu-gap: var(--m-space-2);
1072
+ --m-menu-submenu-inset: var(--m-space-2);
1019
1073
  --m-menu-item-radius: var(--m-radius-md);
1020
1074
  --m-menu-color: transparent;
1021
1075
  --m-menu-item-color-hover: color-mix(
@@ -1224,6 +1278,12 @@
1224
1278
  margin-top: 0.25rem;
1225
1279
  }
1226
1280
 
1281
+ .m-menu--collapsed .m-menu__item .m-tooltip,
1282
+ .m-menu--collapsed .m-menu__collapsed-popover .m-tooltip {
1283
+ display: flex;
1284
+ width: 100%;
1285
+ }
1286
+
1227
1287
  .m-menu--collapsed .m-menu__item-content {
1228
1288
  align-items: center;
1229
1289
  display: flex;
@@ -1382,9 +1442,14 @@
1382
1442
  height: 1rem;
1383
1443
  justify-content: center;
1384
1444
  margin-inline-start: 0.25rem;
1445
+ transition: transform var(--m-motion-fast) var(--m-motion-ease);
1385
1446
  width: 1rem;
1386
1447
  }
1387
1448
 
1449
+ .m-menu__arrow--expanded {
1450
+ transform: rotate(90deg);
1451
+ }
1452
+
1388
1453
  .m-menu__separator {
1389
1454
  background: var(--m-color-border);
1390
1455
  height: 1px;
@@ -1392,25 +1457,34 @@
1392
1457
  }
1393
1458
 
1394
1459
  .m-menu__submenu {
1460
+ display: grid;
1461
+ grid-template-rows: 1fr;
1462
+ }
1463
+
1464
+ .m-menu__submenu-inner {
1465
+ min-height: 0;
1395
1466
  overflow: hidden;
1467
+ padding-block-start: var(--m-menu-submenu-gap);
1468
+ padding-inline-start: var(--m-menu-submenu-inset);
1396
1469
  }
1397
1470
 
1398
1471
  .m-menu-expand-enter-active,
1399
1472
  .m-menu-expand-leave-active {
1473
+ overflow: hidden;
1400
1474
  transition:
1401
- max-height var(--m-motion-normal) var(--m-motion-ease),
1475
+ grid-template-rows var(--m-motion-normal) var(--m-motion-ease),
1402
1476
  opacity var(--m-motion-normal) var(--m-motion-ease);
1403
1477
  }
1404
1478
 
1405
1479
  .m-menu-expand-enter-from,
1406
1480
  .m-menu-expand-leave-to {
1407
- max-height: 0;
1481
+ grid-template-rows: 0fr;
1408
1482
  opacity: 0;
1409
1483
  }
1410
1484
 
1411
1485
  .m-menu-expand-enter-to,
1412
1486
  .m-menu-expand-leave-from {
1413
- max-height: 30rem;
1487
+ grid-template-rows: 1fr;
1414
1488
  opacity: 1;
1415
1489
  }
1416
1490
 
@@ -2,4 +2,5 @@ import '../theme/styles.css'
2
2
  import '../styles/base.css'
3
3
  import '../components/Icon/styles.css'
4
4
  import '../components/Popover/styles.css'
5
+ import '../components/Tooltip/styles.css'
5
6
  import '../components/Menu/styles.css'
@@ -0,0 +1,176 @@
1
+ import { r as e } from "../useComponentAttrs-BTYEe61P.js";
2
+ import { t } from "../Icon-DfpIfo2L.js";
3
+ import { t as n } from "../Card-BQfmv5Iw.js";
4
+ import { r } from "../responsive-DA5bxylA.js";
5
+ import "./style.js";
6
+ import { computed as i, createBlock as a, createCommentVNode as o, createElementBlock as s, createElementVNode as c, createTextVNode as l, defineComponent as u, mergeProps as d, normalizeClass as f, openBlock as p, renderSlot as m, resolveDynamicComponent as h, toDisplayString as g, unref as _, useAttrs as v, useSlots as y, withCtx as b } from "vue";
7
+ //#endregion
8
+ //#region src/components/Page/PageContent.vue
9
+ var x = /* @__PURE__ */ u({
10
+ name: "MPageContent",
11
+ inheritAttrs: !1,
12
+ __name: "PageContent",
13
+ props: {
14
+ pt: {},
15
+ density: { default: "default" },
16
+ width: { default: "full" }
17
+ },
18
+ setup(t) {
19
+ let n = t, r = v(), { rootAttrs: a } = e(r, () => n.pt), o = i(() => ["m-page-content", {
20
+ "m-page-content--compact": n.density === "compact",
21
+ "m-page-content--spacious": n.density === "spacious",
22
+ "m-page-content--narrow": n.width === "narrow"
23
+ }]);
24
+ return (e, t) => (p(), s("div", d(_(a), { class: o.value }), [m(e.$slots, "default")], 16));
25
+ }
26
+ }), S = ["aria-label"], C = /* @__PURE__ */ u({
27
+ name: "MPageFilters",
28
+ inheritAttrs: !1,
29
+ __name: "PageFilters",
30
+ props: {
31
+ pt: {},
32
+ ariaLabel: {}
33
+ },
34
+ setup(t) {
35
+ let n = t, r = v(), { rootAttrs: i } = e(r, () => n.pt);
36
+ return (e, n) => (p(), s("section", d(_(i), {
37
+ class: "m-page-filters",
38
+ "aria-label": t.ariaLabel
39
+ }), [m(e.$slots, "default")], 16, S));
40
+ }
41
+ }), w = { class: "m-page-header__main" }, T = {
42
+ key: 2,
43
+ class: "m-page-header__description"
44
+ }, E = {
45
+ key: 0,
46
+ class: "m-page-header__actions"
47
+ }, D = /* @__PURE__ */ u({
48
+ name: "MPageHeader",
49
+ inheritAttrs: !1,
50
+ __name: "PageHeader",
51
+ props: {
52
+ pt: {},
53
+ title: {},
54
+ description: {},
55
+ headingLevel: { default: 1 }
56
+ },
57
+ setup(t) {
58
+ let n = t, r = v(), { rootAttrs: u } = e(r, () => n.pt), f = y(), x = i(() => `h${n.headingLevel}`), S = i(() => !!f.actions);
59
+ return (e, n) => (p(), s("header", d(_(u), { class: "m-page-header" }), [c("div", w, [t.title ? (p(), a(h(x.value), {
60
+ key: 0,
61
+ class: "m-page-header__title"
62
+ }, {
63
+ default: b(() => [l(g(t.title), 1)]),
64
+ _: 1
65
+ })) : m(e.$slots, "title", {}, void 0, void 0, 1), t.description ? (p(), s("p", T, g(t.description), 1)) : _(f).description ? m(e.$slots, "description", {}, void 0, void 0, 3) : o("", !0)]), S.value ? (p(), s("div", E, [m(e.$slots, "actions")])) : o("", !0)], 16));
66
+ }
67
+ }), O = ["aria-label"], k = /* @__PURE__ */ u({
68
+ name: "MPagePlaceholder",
69
+ inheritAttrs: !1,
70
+ __name: "PagePlaceholder",
71
+ props: {
72
+ pt: {},
73
+ description: { default: "" },
74
+ ariaLabel: { default: "Placeholder" },
75
+ minHeight: { default: "12rem" }
76
+ },
77
+ setup(t) {
78
+ let n = t, a = v(), { rootAttrs: o } = e(a, () => n.pt), c = i(() => ({ "--m-page-placeholder-min-height": r(n.minHeight) }));
79
+ return (e, n) => (p(), s("div", d(_(o), {
80
+ class: "m-page-placeholder",
81
+ role: "img",
82
+ "aria-label": t.ariaLabel,
83
+ style: c.value
84
+ }), [m(e.$slots, "default", {}, () => [l(g(t.description), 1)])], 16, O));
85
+ }
86
+ }), A = /* @__PURE__ */ u({
87
+ name: "MPageSection",
88
+ inheritAttrs: !1,
89
+ __name: "PageSection",
90
+ props: {
91
+ pt: {},
92
+ variant: { default: "default" },
93
+ title: {},
94
+ headingLevel: { default: 2 }
95
+ },
96
+ setup(t) {
97
+ let n = t, r = v(), { rootAttrs: c } = e(r, () => n.pt), u = i(() => `h${n.headingLevel}`), f = i(() => ["m-page-section", {
98
+ "m-page-section--muted": n.variant === "muted",
99
+ "m-page-section--form": n.variant === "form",
100
+ "m-page-section--actions": n.variant === "actions"
101
+ }]);
102
+ return (e, n) => (p(), s("section", d(_(c), { class: f.value }), [t.title ? (p(), a(h(u.value), {
103
+ key: 0,
104
+ class: "m-page-section__title"
105
+ }, {
106
+ default: b(() => [l(g(t.title), 1)]),
107
+ _: 1
108
+ })) : o("", !0), m(e.$slots, "default")], 16));
109
+ }
110
+ }), j = { class: "m-page-stat__body" }, M = {
111
+ key: 0,
112
+ class: "m-page-stat__label"
113
+ }, N = {
114
+ key: 1,
115
+ class: "m-page-stat__value"
116
+ }, P = /* @__PURE__ */ u({
117
+ name: "MPageStat",
118
+ inheritAttrs: !1,
119
+ __name: "PageStat",
120
+ props: {
121
+ pt: {},
122
+ label: {},
123
+ value: {},
124
+ trend: {},
125
+ trendSeverity: { default: "primary" },
126
+ icon: {}
127
+ },
128
+ setup(r) {
129
+ let l = r, u = v(), { rootAttrs: h } = e(u, () => l.pt), y = i(() => ["m-page-stat__trend", `m-page-stat__trend--${l.trendSeverity}`]);
130
+ return (e, i) => (p(), a(n, d(_(h), {
131
+ class: "m-page-stat",
132
+ "aria-label": r.label
133
+ }), {
134
+ default: b(() => [c("div", j, [c("div", null, [
135
+ r.label ? (p(), s("p", M, g(r.label), 1)) : o("", !0),
136
+ r.value != null && r.value !== "" ? (p(), s("p", N, g(r.value), 1)) : o("", !0),
137
+ r.trend ? (p(), s("p", {
138
+ key: 2,
139
+ class: f(y.value)
140
+ }, g(r.trend), 3)) : o("", !0),
141
+ m(e.$slots, "default")
142
+ ]), r.icon ? (p(), a(t, {
143
+ key: 0,
144
+ name: r.icon,
145
+ size: "lg",
146
+ class: "m-page-stat__icon",
147
+ "aria-hidden": "true"
148
+ }, null, 8, ["name"])) : o("", !0)])]),
149
+ _: 3
150
+ }, 16, ["aria-label"]));
151
+ }
152
+ }), F = {
153
+ key: 2,
154
+ class: "m-page-toolbar__actions"
155
+ }, I = /* @__PURE__ */ u({
156
+ name: "MPageToolbar",
157
+ inheritAttrs: !1,
158
+ __name: "PageToolbar",
159
+ props: {
160
+ pt: {},
161
+ title: {},
162
+ headingLevel: { default: 1 }
163
+ },
164
+ setup(t) {
165
+ let n = t, r = v(), { rootAttrs: c } = e(r, () => n.pt), u = y(), f = i(() => `h${n.headingLevel}`), x = i(() => !!u.actions);
166
+ return (e, n) => (p(), s("header", d(_(c), { class: "m-page-toolbar" }), [t.title ? (p(), a(h(f.value), {
167
+ key: 0,
168
+ class: "m-page-toolbar__title"
169
+ }, {
170
+ default: b(() => [l(g(t.title), 1)]),
171
+ _: 1
172
+ })) : m(e.$slots, "default", {}, void 0, void 0, 1), x.value ? (p(), s("div", F, [m(e.$slots, "actions")])) : o("", !0)], 16));
173
+ }
174
+ });
175
+ //#endregion
176
+ export { x as MPageContent, C as MPageFilters, D as MPageHeader, k as MPagePlaceholder, A as MPageSection, P as MPageStat, I as MPageToolbar };