morya-ui 0.3.0 → 0.3.1

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 (205) hide show
  1. package/CHANGELOG.md +32 -0
  2. package/dist/{Button-B5X_R4Md.js → Button-smoDleh0.js} +1 -1
  3. package/dist/Icon-od9Ob-Ay.js +393 -0
  4. package/dist/Loading-BSsRs6v9.js +420 -0
  5. package/dist/{Pagination-CVrH8Ypi.js → Pagination-DrXmzcEy.js} +1 -1
  6. package/dist/accordion/style.css +4 -0
  7. package/dist/auto-complete/index.js +1 -1
  8. package/dist/auto-complete/style.css +18 -6
  9. package/dist/avatar/index.js +1 -1
  10. package/dist/avatar/style.css +4 -0
  11. package/dist/badge/style.css +4 -0
  12. package/dist/block-ui/style.css +4 -0
  13. package/dist/breadcrumb/style.css +4 -0
  14. package/dist/button/index.js +1 -1
  15. package/dist/button/style.css +4 -0
  16. package/dist/card/style.css +4 -0
  17. package/dist/carousel/index.js +72 -64
  18. package/dist/carousel/style.css +31 -10
  19. package/dist/cascade-select/index.js +1 -1
  20. package/dist/cascade-select/style.css +18 -6
  21. package/dist/checkbox/style.css +4 -0
  22. package/dist/chip/index.js +1 -1
  23. package/dist/chip/style.css +4 -0
  24. package/dist/command-menu/index.js +2 -2
  25. package/dist/command-menu/style.css +4 -0
  26. package/dist/components/Carousel/Carousel.vue.d.ts.map +1 -1
  27. package/dist/components/Carousel/styles.css +27 -10
  28. package/dist/components/DataView/DataView.vue.d.ts +7 -7
  29. package/dist/components/DataView/DataView.vue.d.ts.map +1 -1
  30. package/dist/components/DataView/styles.css +0 -20
  31. package/dist/components/Dropdown/Dropdown.vue.d.ts +2 -2
  32. package/dist/components/Dropdown/Dropdown.vue.d.ts.map +1 -1
  33. package/dist/components/Dropdown/DropdownNodes.vue.d.ts +8 -9
  34. package/dist/components/Dropdown/DropdownNodes.vue.d.ts.map +1 -1
  35. package/dist/components/Dropdown/styles.css +24 -5
  36. package/dist/components/Icon/Icon.vue.d.ts.map +1 -1
  37. package/dist/components/Icon/icon-categories.d.ts.map +1 -1
  38. package/dist/components/Icon/icons-types.d.ts +4 -2
  39. package/dist/components/Icon/icons-types.d.ts.map +1 -1
  40. package/dist/components/Icon/icons.d.ts +250 -561
  41. package/dist/components/Icon/icons.d.ts.map +1 -1
  42. package/dist/components/Icon/index.d.ts +2 -2
  43. package/dist/components/Icon/index.d.ts.map +1 -1
  44. package/dist/components/Layout/styles.css +5 -2
  45. package/dist/components/Menu/styles.css +6 -0
  46. package/dist/components/Menubar/Menubar.vue.d.ts.map +1 -1
  47. package/dist/components/Menubar/styles.css +4 -0
  48. package/dist/components/Scrollbar/Scrollbar.vue.d.ts +1 -1
  49. package/dist/components/Select/Select.vue.d.ts +9 -5
  50. package/dist/components/Select/Select.vue.d.ts.map +1 -1
  51. package/dist/components/Select/styles.css +30 -1
  52. package/dist/components/Select/types.d.ts +11 -1
  53. package/dist/components/Select/types.d.ts.map +1 -1
  54. package/dist/components/Slider/styles.css +9 -0
  55. package/dist/components/SplitButton/styles.css +5 -0
  56. package/dist/components/Table/Table.vue.d.ts +26 -26
  57. package/dist/components/Table/Table.vue.d.ts.map +1 -1
  58. package/dist/components/Table/TableLoadingLine.vue.d.ts.map +1 -1
  59. package/dist/components/Table/styles.css +58 -38
  60. package/dist/components/TreeSelect/TreeSelect.vue.d.ts.map +1 -1
  61. package/dist/components/TreeSelect/styles.css +1 -1
  62. package/dist/config-provider/style.css +4 -0
  63. package/dist/confirm-dialog/index.js +2 -2
  64. package/dist/confirm-dialog/style.css +4 -0
  65. package/dist/confirm-popup/index.js +2 -2
  66. package/dist/confirm-popup/style.css +4 -0
  67. package/dist/context-menu/index.js +2 -2
  68. package/dist/context-menu/style.css +4 -0
  69. package/dist/data-view/index.js +47 -47
  70. package/dist/data-view/style.css +399 -106
  71. package/dist/data-view/style.js +1 -1
  72. package/dist/date-picker/index.js +1 -1
  73. package/dist/date-picker/style.css +4 -0
  74. package/dist/dialog/index.js +2 -2
  75. package/dist/dialog/style.css +4 -0
  76. package/dist/divider/style.css +4 -0
  77. package/dist/dock/index.js +2 -2
  78. package/dist/dock/style.css +4 -0
  79. package/dist/drawer/index.js +1 -1
  80. package/dist/drawer/style.css +4 -0
  81. package/dist/dropdown/index.js +110 -91
  82. package/dist/dropdown/style.css +28 -5
  83. package/dist/empty/index.js +1 -1
  84. package/dist/empty/style.css +4 -0
  85. package/dist/fieldset/index.js +1 -1
  86. package/dist/fieldset/style.css +4 -0
  87. package/dist/file-upload/index.js +1 -1
  88. package/dist/file-upload/style.css +4 -0
  89. package/dist/flex/style.css +4 -0
  90. package/dist/float-label/style.css +4 -0
  91. package/dist/fluid/style.css +4 -0
  92. package/dist/form/style.css +4 -0
  93. package/dist/gallery/index.js +1 -1
  94. package/dist/gallery/style.css +4 -0
  95. package/dist/grid/style.css +4 -0
  96. package/dist/icon/index.js +93 -39
  97. package/dist/icon/style.css +4 -0
  98. package/dist/icon-COrt_N8A.js +18 -0
  99. package/dist/icon-field/style.css +4 -0
  100. package/dist/index.js +2733 -2801
  101. package/dist/inplace/style.css +4 -0
  102. package/dist/input/index.js +1 -1
  103. package/dist/input/style.css +4 -0
  104. package/dist/input-color/style.css +4 -0
  105. package/dist/input-group/style.css +4 -0
  106. package/dist/input-number/index.js +1 -1
  107. package/dist/input-number/style.css +4 -0
  108. package/dist/input-otp/style.css +4 -0
  109. package/dist/input-password/index.js +1 -1
  110. package/dist/input-password/style.css +4 -0
  111. package/dist/input-tags/index.js +1 -1
  112. package/dist/input-tags/style.css +4 -0
  113. package/dist/knob/style.css +4 -0
  114. package/dist/label/style.css +4 -0
  115. package/dist/layout/index.js +1 -1
  116. package/dist/layout/style.css +9 -2
  117. package/dist/listbox/style.css +4 -0
  118. package/dist/loading/index.js +32 -446
  119. package/dist/loading/style.css +4 -0
  120. package/dist/mega-menu/index.js +2 -2
  121. package/dist/mega-menu/style.css +4 -0
  122. package/dist/menu/index.js +2 -2
  123. package/dist/menu/style.css +10 -0
  124. package/dist/menubar/index.js +6 -3
  125. package/dist/menubar/style.css +8 -0
  126. package/dist/message/index.js +1 -1
  127. package/dist/message/style.css +4 -0
  128. package/dist/meter-group/style.css +4 -0
  129. package/dist/order-list/index.js +1 -1
  130. package/dist/order-list/style.css +4 -0
  131. package/dist/page/index.js +1 -1
  132. package/dist/page/style.css +4 -0
  133. package/dist/pagination/index.js +1 -1
  134. package/dist/pagination/style.css +4 -0
  135. package/dist/panel/index.js +1 -1
  136. package/dist/panel/style.css +4 -0
  137. package/dist/pick-list/index.js +1 -1
  138. package/dist/pick-list/style.css +4 -0
  139. package/dist/popover/style.css +4 -0
  140. package/dist/progress-bar/style.css +4 -0
  141. package/dist/progress-spinner/index.js +105 -2
  142. package/dist/progress-spinner/style.css +4 -0
  143. package/dist/radio/style.css +4 -0
  144. package/dist/rating/index.js +1 -1
  145. package/dist/rating/style.css +4 -0
  146. package/dist/result/index.js +1 -1
  147. package/dist/result/style.css +4 -0
  148. package/dist/scroll-top/index.js +1 -1
  149. package/dist/scroll-top/style.css +4 -0
  150. package/dist/scrollbar/style.css +4 -0
  151. package/dist/select/index.js +284 -217
  152. package/dist/select/style.css +48 -7
  153. package/dist/select-button/style.css +4 -0
  154. package/dist/shared/menu/icon.d.ts.map +1 -1
  155. package/dist/shared/styles/select-overlay.css +14 -6
  156. package/dist/sidebar/index.js +2 -2
  157. package/dist/sidebar/style.css +4 -0
  158. package/dist/skeleton/style.css +4 -0
  159. package/dist/slider/style.css +13 -0
  160. package/dist/space/style.css +4 -0
  161. package/dist/speed-dial/index.js +2 -2
  162. package/dist/speed-dial/style.css +4 -0
  163. package/dist/split-button/index.js +1 -1
  164. package/dist/split-button/style.css +9 -0
  165. package/dist/splitter/style.css +4 -0
  166. package/dist/status/index.js +1 -1
  167. package/dist/status/style.css +4 -0
  168. package/dist/stepper/index.js +1 -1
  169. package/dist/stepper/style.css +4 -0
  170. package/dist/styles/base.css +4 -0
  171. package/dist/styles.css +1 -1
  172. package/dist/switch/style.css +4 -0
  173. package/dist/table/index.js +344 -338
  174. package/dist/table/style.css +457 -124
  175. package/dist/table/style.js +1 -1
  176. package/dist/tabs/index.js +1 -1
  177. package/dist/tabs/style.css +4 -0
  178. package/dist/tag/index.js +1 -1
  179. package/dist/tag/style.css +4 -0
  180. package/dist/terminal/style.css +4 -0
  181. package/dist/textarea/index.js +1 -1
  182. package/dist/textarea/style.css +4 -0
  183. package/dist/tiered-menu/index.js +1 -1
  184. package/dist/tiered-menu/style.css +4 -0
  185. package/dist/timeline/index.js +1 -1
  186. package/dist/timeline/style.css +4 -0
  187. package/dist/toast/index.js +1 -1
  188. package/dist/toast/style.css +4 -0
  189. package/dist/toggle-button/index.js +2 -2
  190. package/dist/toggle-button/style.css +4 -0
  191. package/dist/toolbar/style.css +4 -0
  192. package/dist/tooltip/style.css +4 -0
  193. package/dist/tree/index.js +1 -1
  194. package/dist/tree/style.css +4 -0
  195. package/dist/tree-select/index.js +2 -1
  196. package/dist/tree-select/style.css +19 -7
  197. package/dist/tree-table/index.js +1 -1
  198. package/dist/tree-table/style.css +4 -0
  199. package/dist/virtual-scroller/style.css +4 -0
  200. package/package.json +1 -1
  201. package/dist/Icon-lcN1rS87.js +0 -610
  202. package/dist/ProgressSpinner-BeWVF6Jv.js +0 -105
  203. package/dist/components/Icon/icons-tabler.d.ts +0 -77
  204. package/dist/components/Icon/icons-tabler.d.ts.map +0 -1
  205. package/dist/icon-DWXkh-RM.js +0 -27
@@ -1,49 +1,54 @@
1
1
  import { a as e } from "../useComponentAttrs-e-5QAjdw.js";
2
- import { t } from "../Icon-lcN1rS87.js";
2
+ import { t } from "../Icon-od9Ob-Ay.js";
3
3
  import { t as n } from "../useMotionTransition-Bxnnb_9u.js";
4
4
  import { n as r, t as i } from "../overlay-oR-5MDuE.js";
5
5
  import { t as a } from "../overlayPlacement-Cd20JTD_.js";
6
6
  import { t as o } from "../useFloatingViewportSync-DZdJ7W8n.js";
7
7
  import { t as s } from "../Scrollbar-DTeJ8P5b.js";
8
- import { t as c } from "../icon-DWXkh-RM.js";
8
+ import { t as c } from "../icon-COrt_N8A.js";
9
9
  import { t as l } from "../key-CaQYVkjh.js";
10
10
  import { t as u } from "../FlyoutSubmenu-BrUPmJa1.js";
11
11
  import { c as d } from "../config-CapALqt3.js";
12
12
  import { n as f } from "../locale-Bzm2nbEp.js";
13
13
  import "./style.js";
14
- import { Fragment as p, Teleport as m, Transition as h, computed as g, createBlock as ee, createCommentVNode as _, createElementBlock as v, createElementVNode as y, createSlots as b, createTextVNode as x, createVNode as S, defineComponent as C, mergeProps as w, nextTick as te, normalizeClass as T, normalizeStyle as E, onBeforeUnmount as ne, openBlock as D, ref as O, renderList as k, renderSlot as A, toDisplayString as j, unref as M, useAttrs as re, watch as ie, withCtx as N } from "vue";
14
+ import { Fragment as p, Teleport as m, Transition as h, computed as g, createBlock as ee, createCommentVNode as _, createElementBlock as v, createElementVNode as y, createSlots as b, createTextVNode as x, createVNode as S, defineComponent as C, mergeProps as w, nextTick as te, normalizeClass as T, normalizeStyle as E, onBeforeUnmount as D, openBlock as O, ref as k, renderList as A, renderSlot as j, toDisplayString as M, unref as N, useAttrs as ne, watch as re, withCtx as P } from "vue";
15
15
  //#region src/components/Dropdown/DropdownNodes.vue?vue&type=script&setup=true&lang.ts
16
- var P = {
16
+ var F = {
17
17
  key: 0,
18
18
  class: "m-dropdown__separator",
19
19
  role: "separator"
20
- }, F = {
20
+ }, I = {
21
21
  key: 1,
22
22
  class: "m-dropdown__group"
23
- }, I = { class: "m-dropdown__group-label" }, L = ["onMouseenter"], R = ["disabled"], z = {
23
+ }, L = { class: "m-dropdown__group-label" }, R = ["onMouseenter"], z = ["disabled"], B = {
24
24
  key: 0,
25
25
  class: "m-dropdown__icon",
26
26
  "aria-hidden": "true"
27
- }, B = {
27
+ }, V = {
28
28
  class: "m-dropdown__caret",
29
29
  "aria-hidden": "true"
30
- }, V = [
30
+ }, H = [
31
31
  "disabled",
32
32
  "onMouseenter",
33
33
  "onClick"
34
- ], H = {
34
+ ], U = {
35
35
  key: 0,
36
36
  class: "m-dropdown__icon",
37
37
  "aria-hidden": "true"
38
- }, U = /* @__PURE__ */ C({
38
+ }, W = /* @__PURE__ */ C({
39
39
  __name: "DropdownNodes",
40
40
  props: {
41
41
  items: {},
42
42
  highlightedValue: {}
43
43
  },
44
- emits: ["select", "highlight"],
44
+ emits: [
45
+ "select",
46
+ "highlight",
47
+ "submenuEnter",
48
+ "submenuLeave"
49
+ ],
45
50
  setup(e, { emit: n }) {
46
- let r = n, i = O(null), a = O(null), o;
51
+ let r = n, i = k(null), a = k(null), o;
47
52
  function d() {
48
53
  o && clearTimeout(o), o = void 0;
49
54
  }
@@ -61,35 +66,41 @@ var P = {
61
66
  function g(e, t) {
62
67
  return l(e, t, "dd");
63
68
  }
64
- function b(e) {
69
+ function C(e) {
65
70
  return c(e.icon);
66
71
  }
67
- function C(e, t, n) {
72
+ function w(e, t, n) {
68
73
  if (e.disabled || m(e) || h(e) || (d(), r("highlight", e.value), !e.items?.length)) return;
69
74
  i.value = g(e, t);
70
75
  let o = n.currentTarget;
71
76
  a.value = o?.querySelector(".m-dropdown__item--parent") ?? o;
72
77
  }
73
- function w() {
74
- f();
75
- }
76
78
  function te() {
77
- d();
79
+ f();
78
80
  }
79
81
  function E() {
80
- f();
82
+ d(), r("submenuEnter");
81
83
  }
82
- return (n, r) => (D(!0), v(p, null, k(e.items, (o, c) => (D(), v(p, { key: g(o, c) }, [m(o) ? (D(), v("div", P)) : h(o) ? (D(), v("div", F, [y("div", I, j(o.label), 1), o.items?.length ? (D(), ee(U, {
84
+ function D() {
85
+ f(), r("submenuLeave");
86
+ }
87
+ return (n, r) => (O(!0), v(p, null, A(e.items, (o, c) => (O(), v(p, { key: g(o, c) }, [m(o) ? (O(), v("div", F)) : h(o) ? (O(), v("div", I, [y("div", L, M(o.label), 1), o.items?.length ? (O(), ee(W, {
83
88
  key: 0,
84
89
  items: o.items,
85
90
  "highlighted-value": e.highlightedValue,
86
91
  onSelect: r[0] ||= (e) => n.$emit("select", e),
87
- onHighlight: r[1] ||= (e) => n.$emit("highlight", e)
88
- }, null, 8, ["items", "highlighted-value"])) : _("", !0)])) : o.items?.length ? (D(), v("div", {
92
+ onHighlight: r[1] ||= (e) => n.$emit("highlight", e),
93
+ onSubmenuEnter: E,
94
+ onSubmenuLeave: D
95
+ }, b({ _: 2 }, [n.$slots.item ? {
96
+ name: "item",
97
+ fn: P(({ item: e }) => [j(n.$slots, "item", { item: e })]),
98
+ key: "0"
99
+ } : void 0]), 1032, ["items", "highlighted-value"])) : _("", !0)])) : o.items?.length ? (O(), v("div", {
89
100
  key: 2,
90
101
  class: "m-dropdown__submenu-wrap",
91
- onMouseenter: (e) => C(o, c, e),
92
- onMouseleave: w
102
+ onMouseenter: (e) => w(o, c, e),
103
+ onMouseleave: te
93
104
  }, [y("button", {
94
105
  type: "button",
95
106
  class: T(["m-dropdown__item m-dropdown__item--parent", { "m-dropdown__item--highlighted": e.highlightedValue === o.value }]),
@@ -97,38 +108,44 @@ var P = {
97
108
  disabled: o.disabled,
98
109
  "aria-haspopup": !0
99
110
  }, [
100
- b(o) ? (D(), v("span", z, [S(t, {
101
- name: b(o),
111
+ C(o) ? (O(), v("span", B, [S(t, {
112
+ name: C(o),
102
113
  size: "sm"
103
114
  }, null, 8, ["name"])])) : _("", !0),
104
- A(n.$slots, "item", { item: o }, () => [x(j(o.label), 1)]),
105
- y("span", B, [S(t, {
115
+ j(n.$slots, "item", { item: o }, () => [x(M(o.label), 1)]),
116
+ y("span", V, [S(t, {
106
117
  name: "chevron-right",
107
118
  size: "sm"
108
119
  })])
109
- ], 10, R), S(u, {
120
+ ], 10, z), S(u, {
110
121
  open: i.value === g(o, c),
111
122
  anchor: i.value === g(o, c) ? a.value : null,
112
123
  "panel-class": "m-dropdown__submenu",
113
- onEnter: te,
114
- onLeave: E
124
+ onEnter: E,
125
+ onLeave: D
115
126
  }, {
116
- default: N(() => [S(s, {
127
+ default: P(() => [S(s, {
117
128
  class: "m-dropdown__submenu-scroll",
118
129
  "fit-content": "",
119
130
  "wrap-class": "m-dropdown__submenu-wrap-inner",
120
131
  "view-class": "m-dropdown__submenu-view"
121
132
  }, {
122
- default: N(() => [S(U, {
133
+ default: P(() => [S(W, {
123
134
  items: o.items,
124
135
  "highlighted-value": e.highlightedValue,
125
136
  onSelect: r[2] ||= (e) => n.$emit("select", e),
126
- onHighlight: r[3] ||= (e) => n.$emit("highlight", e)
127
- }, null, 8, ["items", "highlighted-value"])]),
137
+ onHighlight: r[3] ||= (e) => n.$emit("highlight", e),
138
+ onSubmenuEnter: E,
139
+ onSubmenuLeave: D
140
+ }, b({ _: 2 }, [n.$slots.item ? {
141
+ name: "item",
142
+ fn: P(({ item: e }) => [j(n.$slots, "item", { item: e })]),
143
+ key: "0"
144
+ } : void 0]), 1032, ["items", "highlighted-value"])]),
128
145
  _: 2
129
146
  }, 1024)]),
130
147
  _: 2
131
- }, 1032, ["open", "anchor"])], 40, L)) : (D(), v("button", {
148
+ }, 1032, ["open", "anchor"])], 40, R)) : (O(), v("button", {
132
149
  key: 3,
133
150
  type: "button",
134
151
  class: T(["m-dropdown__item", { "m-dropdown__item--highlighted": e.highlightedValue === o.value }]),
@@ -136,12 +153,12 @@ var P = {
136
153
  disabled: o.disabled,
137
154
  onMouseenter: (e) => !o.disabled && n.$emit("highlight", o.value),
138
155
  onClick: (e) => n.$emit("select", o)
139
- }, [b(o) ? (D(), v("span", H, [S(t, {
140
- name: b(o),
156
+ }, [C(o) ? (O(), v("span", U, [S(t, {
157
+ name: C(o),
141
158
  size: "sm"
142
- }, null, 8, ["name"])])) : _("", !0), A(n.$slots, "item", { item: o }, () => [x(j(o.label), 1)])], 42, V))], 64))), 128));
159
+ }, null, 8, ["name"])])) : _("", !0), j(n.$slots, "item", { item: o }, () => [x(M(o.label), 1)])], 42, H))], 64))), 128));
143
160
  }
144
- }), ae = ["aria-expanded"], W = /* @__PURE__ */ C({
161
+ }), ie = ["aria-expanded"], G = /* @__PURE__ */ C({
145
162
  inheritAttrs: !1,
146
163
  __name: "Dropdown",
147
164
  props: {
@@ -171,104 +188,104 @@ var P = {
171
188
  },
172
189
  emits: ["update:modelValue", "select"],
173
190
  setup(t, { emit: c }) {
174
- let l = t, u = c, p = re(), { rootAttrs: C } = e(p, () => l.pt), k = d(), { transitionName: P, transitionCss: F } = n({
191
+ let l = t, u = c, p = ne(), { rootAttrs: C } = e(p, () => l.pt), A = d(), { transitionName: F, transitionCss: I } = n({
175
192
  role: "popup",
176
193
  local: () => l.transition,
177
194
  componentName: "Dropdown",
178
195
  fallback: "scale-fade"
179
- }), I = f(), L = O(null), R = O(null), z = O(null), B = O({}), V = O(-1), H = g(() => l.items.filter((e) => !e.disabled && !e.separator && e.type !== "divider" && e.type !== "group" && !e.items?.length && e.value != null)), W = g(() => H.value[V.value]?.value), G, K, q = g(() => r(l, k.value.appendTo)), J = g(() => i(l, k.value.appendTo));
180
- function oe() {
181
- V.value = H.value.length ? 0 : -1;
196
+ }), L = f(), R = k(null), z = k(null), B = k(null), V = k({}), H = k(-1), U = g(() => l.items.filter((e) => !e.disabled && !e.separator && e.type !== "divider" && e.type !== "group" && !e.items?.length && e.value != null)), G = g(() => U.value[H.value]?.value), K, q, J = g(() => r(l, A.value.appendTo)), Y = g(() => i(l, A.value.appendTo));
197
+ function ae() {
198
+ H.value = U.value.length ? 0 : -1;
182
199
  }
183
- function Y() {
184
- if (!J.value || !R.value) return;
185
- let e = R.value.getBoundingClientRect();
186
- B.value = a(e, l.placement === "bottom-end" ? "bottom-end" : "bottom-start", { minWidth: `${e.width}px` });
200
+ function X() {
201
+ if (!Y.value || !z.value) return;
202
+ let e = z.value.getBoundingClientRect();
203
+ V.value = a(e, l.placement === "bottom-end" ? "bottom-end" : "bottom-start", { minWidth: `${e.width}px` });
187
204
  }
188
- function X(e) {
189
- u("update:modelValue", e), e && (oe(), te(() => {
190
- Y(), z.value?.focus({ preventScroll: !0 });
205
+ function Z(e) {
206
+ u("update:modelValue", e), e && (ae(), te(() => {
207
+ X(), B.value?.focus({ preventScroll: !0 });
191
208
  }));
192
209
  }
193
- function se() {
194
- X(!l.modelValue);
210
+ function oe() {
211
+ Z(!l.modelValue);
195
212
  }
196
- function ce() {
197
- l.modelValue && Y();
213
+ function se() {
214
+ l.modelValue && X();
198
215
  }
199
- function Z(e) {
200
- e.disabled || e.separator || e.type === "divider" || e.type === "group" || (e.command?.(), u("select", e), l.closeOnSelect && X(!1));
216
+ function ce(e) {
217
+ e.disabled || e.separator || e.type === "divider" || e.type === "group" || (e.command?.(), u("select", e), l.closeOnSelect && Z(!1));
201
218
  }
202
219
  function Q() {
203
- G && clearTimeout(G), K && clearTimeout(K), G = void 0, K = void 0;
220
+ K && clearTimeout(K), q && clearTimeout(q), K = void 0, q = void 0;
204
221
  }
205
222
  function le() {
206
- l.trigger === "hover" && (Q(), G = setTimeout(X, l.showDelay, !0));
223
+ l.trigger === "hover" && (Q(), K = setTimeout(Z, l.showDelay, !0));
207
224
  }
208
225
  function ue() {
209
- l.trigger === "hover" && (Q(), K = setTimeout(X, l.hideDelay, !1));
226
+ l.trigger === "hover" && (Q(), q = setTimeout(Z, l.hideDelay, !1));
210
227
  }
211
228
  function de() {
212
229
  l.trigger === "hover" && Q();
213
230
  }
214
231
  function fe() {
215
- l.trigger === "hover" && (Q(), K = setTimeout(X, l.hideDelay, !1));
232
+ l.trigger === "hover" && (Q(), q = setTimeout(Z, l.hideDelay, !1));
216
233
  }
217
234
  function pe(e) {
218
235
  if (l.modelValue) {
219
236
  if (e.key === "Escape") {
220
- e.preventDefault(), X(!1), R.value?.focus({ preventScroll: !0 });
237
+ e.preventDefault(), Z(!1), z.value?.focus({ preventScroll: !0 });
221
238
  return;
222
239
  }
223
240
  if (e.key === "ArrowDown" || e.key === "ArrowUp") {
224
241
  e.preventDefault();
225
- let t = e.key === "ArrowDown" ? 1 : -1, n = H.value.length;
226
- n && (V.value = (V.value + t + n) % n);
242
+ let t = e.key === "ArrowDown" ? 1 : -1, n = U.value.length;
243
+ n && (H.value = (H.value + t + n) % n);
227
244
  }
228
- if (e.key === "Home" && (e.preventDefault(), V.value = 0), e.key === "End" && (e.preventDefault(), V.value = H.value.length - 1), e.key === "Enter" || e.key === " ") {
229
- let t = H.value[V.value];
230
- V.value >= 0 && t && (e.preventDefault(), Z(t));
245
+ if (e.key === "Home" && (e.preventDefault(), H.value = 0), e.key === "End" && (e.preventDefault(), H.value = U.value.length - 1), e.key === "Enter" || e.key === " ") {
246
+ let t = U.value[H.value];
247
+ H.value >= 0 && t && (e.preventDefault(), ce(t));
231
248
  }
232
249
  }
233
250
  }
234
251
  function me(e) {
235
- (e.key === "ArrowDown" || e.key === "Enter" || e.key === " ") && (e.preventDefault(), l.modelValue || X(!0));
252
+ (e.key === "ArrowDown" || e.key === "Enter" || e.key === " ") && (e.preventDefault(), l.modelValue || Z(!0));
236
253
  }
237
254
  function $(e) {
238
- l.modelValue && L.value && !L.value.contains(e.target) && !z.value?.contains(e.target) && X(!1);
255
+ l.modelValue && R.value && !R.value.contains(e.target) && !B.value?.contains(e.target) && Z(!1);
239
256
  }
240
- return ie(() => l.modelValue, (e) => {
257
+ return re(() => l.modelValue, (e) => {
241
258
  e ? document.addEventListener("click", $) : document.removeEventListener("click", $);
242
- }, { immediate: !0 }), o(() => l.modelValue && J.value, ce), ne(() => {
259
+ }, { immediate: !0 }), o(() => l.modelValue && Y.value, se), D(() => {
243
260
  document.removeEventListener("click", $), Q();
244
- }), (e, n) => (D(), v("div", w({
261
+ }), (e, n) => (O(), v("div", w({
245
262
  ref_key: "root",
246
- ref: L
247
- }, M(C), { class: "m-dropdown" }), [y("span", {
263
+ ref: R
264
+ }, N(C), { class: "m-dropdown" }), [y("span", {
248
265
  ref_key: "trigger",
249
- ref: R,
266
+ ref: z,
250
267
  class: "m-dropdown__trigger",
251
268
  role: "button",
252
269
  tabindex: "0",
253
270
  "aria-expanded": t.modelValue,
254
271
  "aria-haspopup": "menu",
255
- onClick: n[0] ||= (e) => l.trigger === "click" && se(),
272
+ onClick: n[0] ||= (e) => l.trigger === "click" && oe(),
256
273
  onMouseenter: le,
257
274
  onMouseleave: ue,
258
275
  onKeydown: me
259
- }, [A(e.$slots, "trigger", {}, () => [x(j(M(I).openMenu), 1)])], 40, ae), (D(), ee(m, {
260
- to: q.value.to,
261
- disabled: q.value.disabled
276
+ }, [j(e.$slots, "trigger", {}, () => [x(M(N(L).openMenu), 1)])], 40, ie), (O(), ee(m, {
277
+ to: J.value.to,
278
+ disabled: J.value.disabled
262
279
  }, [S(h, {
263
- name: M(P),
264
- css: M(F)
280
+ name: N(F),
281
+ css: N(I)
265
282
  }, {
266
- default: N(() => [t.modelValue ? (D(), v("div", {
283
+ default: P(() => [t.modelValue ? (O(), v("div", {
267
284
  key: 0,
268
285
  ref_key: "menu",
269
- ref: z,
270
- class: T(["m-dropdown__menu", [`m-dropdown__menu--${t.placement}`, { "m-dropdown__menu--teleported": J.value }]]),
271
- style: E(J.value ? B.value : void 0),
286
+ ref: B,
287
+ class: T(["m-dropdown__menu", [`m-dropdown__menu--${t.placement}`, { "m-dropdown__menu--teleported": Y.value }]]),
288
+ style: E(Y.value ? V.value : void 0),
272
289
  role: "menu",
273
290
  tabindex: "-1",
274
291
  onKeydown: pe,
@@ -280,14 +297,16 @@ var P = {
280
297
  "wrap-class": "m-dropdown__scroll-wrap",
281
298
  "view-class": "m-dropdown__scroll-view"
282
299
  }, {
283
- default: N(() => [S(U, {
300
+ default: P(() => [S(W, {
284
301
  items: t.items,
285
- "highlighted-value": W.value,
286
- onSelect: Z,
287
- onHighlight: n[1] ||= (e) => V.value = H.value.findIndex((t) => t.value === e)
302
+ "highlighted-value": G.value,
303
+ onSelect: ce,
304
+ onHighlight: n[1] ||= (e) => H.value = U.value.findIndex((t) => t.value === e),
305
+ onSubmenuEnter: de,
306
+ onSubmenuLeave: fe
288
307
  }, b({ _: 2 }, [e.$slots.item ? {
289
308
  name: "item",
290
- fn: N(({ item: t }) => [A(e.$slots, "item", { item: t })]),
309
+ fn: P(({ item: t }) => [j(e.$slots, "item", { item: t })]),
291
310
  key: "0"
292
311
  } : void 0]), 1032, ["items", "highlighted-value"])]),
293
312
  _: 3
@@ -297,4 +316,4 @@ var P = {
297
316
  }
298
317
  });
299
318
  //#endregion
300
- export { W as MDropdown };
319
+ export { G as MDropdown };
@@ -529,9 +529,13 @@
529
529
  border-radius: var(--m-radius-md);
530
530
  box-shadow: var(--m-shadow-md);
531
531
  max-height: var(--m-dropdown-submenu-max-height);
532
+ max-width: calc(100vw - 2 * var(--m-space-4));
532
533
  min-width: 10rem;
533
534
  overflow: hidden;
534
535
  padding: var(--m-space-1);
536
+ /* Same as .m-dropdown__menu: size to content instead of being clamped
537
+ by the space left of the anchor in the viewport. */
538
+ width: max-content;
535
539
  }
536
540
 
537
541
  .m-dropdown__submenu--teleported {
@@ -1426,10 +1430,16 @@
1426
1430
  box-shadow: var(--m-shadow-md);
1427
1431
  display: grid;
1428
1432
  gap: var(--m-space-1);
1433
+ max-width: calc(100vw - 2 * var(--m-space-4));
1429
1434
  min-width: var(--m-dropdown-menu-min-width);
1435
+ overflow: hidden;
1430
1436
  padding: var(--m-space-1);
1431
1437
  position: absolute;
1432
1438
  top: calc(100% + var(--m-space-2));
1439
+ /* Grow with the content: the default shrink-to-fit width of an abs/fixed
1440
+ box is clamped by its containing block (the trigger width when not
1441
+ teleported), so long items would be clipped instead of widening the menu. */
1442
+ width: max-content;
1433
1443
  z-index: var(--m-z-popper);
1434
1444
  }
1435
1445
 
@@ -1467,9 +1477,10 @@
1467
1477
  cursor: pointer;
1468
1478
  display: flex;
1469
1479
  font-family: var(--m-font-sans);
1470
- font-size: var(--m-font-size-md);
1471
- min-height: var(--m-menu-item-height);
1472
- padding: var(--m-space-2) var(--m-space-3);
1480
+ font-size: var(--m-control-font-medium);
1481
+ gap: var(--m-space-2);
1482
+ min-height: var(--m-control-height-medium);
1483
+ padding: 0 var(--m-control-padding-x-medium);
1473
1484
  text-align: left;
1474
1485
  transition:
1475
1486
  background-color var(--m-motion-fast) var(--m-motion-ease),
@@ -1477,6 +1488,10 @@
1477
1488
  white-space: nowrap;
1478
1489
  }
1479
1490
 
1491
+ .m-dropdown__caret {
1492
+ margin-left: auto;
1493
+ }
1494
+
1480
1495
  .m-dropdown__item:hover:not(:disabled),
1481
1496
  .m-dropdown__item--highlighted:not(:disabled) {
1482
1497
  background: color-mix(in srgb, var(--m-color-primary) 10%, transparent);
@@ -1484,7 +1499,8 @@
1484
1499
  }
1485
1500
 
1486
1501
  .m-dropdown__item:focus-visible {
1487
- box-shadow: var(--m-focus-shadow);
1502
+ background: color-mix(in srgb, var(--m-color-primary) 10%, transparent);
1503
+ box-shadow: none;
1488
1504
  outline: none;
1489
1505
  }
1490
1506
 
@@ -1500,8 +1516,15 @@
1500
1516
  margin: var(--m-space-1) 0;
1501
1517
  }
1502
1518
 
1519
+ /* Groups nest items in a wrapper div, outside the scroll-view grid: restate
1520
+ the grid so grouped items keep the same gap rhythm and stretch full width. */
1521
+ .m-dropdown__group {
1522
+ display: grid;
1523
+ gap: var(--m-space-1);
1524
+ }
1525
+
1503
1526
  .m-dropdown__group-label {
1504
1527
  color: var(--m-color-text-muted);
1505
1528
  font-size: var(--m-font-size-xs);
1506
- padding: var(--m-space-2) var(--m-space-3) var(--m-space-1);
1529
+ padding: var(--m-space-2) var(--m-control-padding-x-medium) var(--m-space-1);
1507
1530
  }
@@ -1,5 +1,5 @@
1
1
  import { a as e } from "../useComponentAttrs-e-5QAjdw.js";
2
- import { t } from "../Icon-lcN1rS87.js";
2
+ import { t } from "../Icon-od9Ob-Ay.js";
3
3
  import { t as n } from "../useMId-BXFYayPP.js";
4
4
  import { n as r } from "../locale-Bzm2nbEp.js";
5
5
  import "./style.js";
@@ -529,9 +529,13 @@
529
529
  border-radius: var(--m-radius-md);
530
530
  box-shadow: var(--m-shadow-md);
531
531
  max-height: var(--m-dropdown-submenu-max-height);
532
+ max-width: calc(100vw - 2 * var(--m-space-4));
532
533
  min-width: 10rem;
533
534
  overflow: hidden;
534
535
  padding: var(--m-space-1);
536
+ /* Same as .m-dropdown__menu: size to content instead of being clamped
537
+ by the space left of the anchor in the viewport. */
538
+ width: max-content;
535
539
  }
536
540
 
537
541
  .m-dropdown__submenu--teleported {
@@ -1,6 +1,6 @@
1
1
  import { a as e } from "../useComponentAttrs-e-5QAjdw.js";
2
2
  import { t } from "../useControllable-elmWaz23.js";
3
- import { t as n } from "../Icon-lcN1rS87.js";
3
+ import { t as n } from "../Icon-od9Ob-Ay.js";
4
4
  import { t as r } from "../useMId-BXFYayPP.js";
5
5
  import "./style.js";
6
6
  import { Transition as i, createCommentVNode as a, createElementBlock as o, createElementVNode as s, createTextVNode as c, createVNode as l, defineComponent as u, mergeProps as d, openBlock as f, renderSlot as p, toDisplayString as m, unref as h, useAttrs as g, vShow as _, withCtx as v, withDirectives as y } from "vue";
@@ -529,9 +529,13 @@
529
529
  border-radius: var(--m-radius-md);
530
530
  box-shadow: var(--m-shadow-md);
531
531
  max-height: var(--m-dropdown-submenu-max-height);
532
+ max-width: calc(100vw - 2 * var(--m-space-4));
532
533
  min-width: 10rem;
533
534
  overflow: hidden;
534
535
  padding: var(--m-space-1);
536
+ /* Same as .m-dropdown__menu: size to content instead of being clamped
537
+ by the space left of the anchor in the viewport. */
538
+ width: max-content;
535
539
  }
536
540
 
537
541
  .m-dropdown__submenu--teleported {
@@ -1,5 +1,5 @@
1
1
  import { i as e } from "../useComponentAttrs-e-5QAjdw.js";
2
- import { t } from "../Icon-lcN1rS87.js";
2
+ import { t } from "../Icon-od9Ob-Ay.js";
3
3
  import { n } from "../locale-Bzm2nbEp.js";
4
4
  import "./style.js";
5
5
  import { Fragment as r, computed as i, createCommentVNode as a, createElementBlock as o, createElementVNode as s, createTextVNode as ee, createVNode as c, defineComponent as l, mergeProps as u, normalizeClass as d, normalizeStyle as f, onBeforeUnmount as p, openBlock as m, ref as h, renderList as g, renderSlot as _, toDisplayString as v, unref as y, useAttrs as te, watch as ne } from "vue";
@@ -529,9 +529,13 @@
529
529
  border-radius: var(--m-radius-md);
530
530
  box-shadow: var(--m-shadow-md);
531
531
  max-height: var(--m-dropdown-submenu-max-height);
532
+ max-width: calc(100vw - 2 * var(--m-space-4));
532
533
  min-width: 10rem;
533
534
  overflow: hidden;
534
535
  padding: var(--m-space-1);
536
+ /* Same as .m-dropdown__menu: size to content instead of being clamped
537
+ by the space left of the anchor in the viewport. */
538
+ width: max-content;
535
539
  }
536
540
 
537
541
  .m-dropdown__submenu--teleported {
@@ -529,9 +529,13 @@
529
529
  border-radius: var(--m-radius-md);
530
530
  box-shadow: var(--m-shadow-md);
531
531
  max-height: var(--m-dropdown-submenu-max-height);
532
+ max-width: calc(100vw - 2 * var(--m-space-4));
532
533
  min-width: 10rem;
533
534
  overflow: hidden;
534
535
  padding: var(--m-space-1);
536
+ /* Same as .m-dropdown__menu: size to content instead of being clamped
537
+ by the space left of the anchor in the viewport. */
538
+ width: max-content;
535
539
  }
536
540
 
537
541
  .m-dropdown__submenu--teleported {
@@ -529,9 +529,13 @@
529
529
  border-radius: var(--m-radius-md);
530
530
  box-shadow: var(--m-shadow-md);
531
531
  max-height: var(--m-dropdown-submenu-max-height);
532
+ max-width: calc(100vw - 2 * var(--m-space-4));
532
533
  min-width: 10rem;
533
534
  overflow: hidden;
534
535
  padding: var(--m-space-1);
536
+ /* Same as .m-dropdown__menu: size to content instead of being clamped
537
+ by the space left of the anchor in the viewport. */
538
+ width: max-content;
535
539
  }
536
540
 
537
541
  .m-dropdown__submenu--teleported {
@@ -529,9 +529,13 @@
529
529
  border-radius: var(--m-radius-md);
530
530
  box-shadow: var(--m-shadow-md);
531
531
  max-height: var(--m-dropdown-submenu-max-height);
532
+ max-width: calc(100vw - 2 * var(--m-space-4));
532
533
  min-width: 10rem;
533
534
  overflow: hidden;
534
535
  padding: var(--m-space-1);
536
+ /* Same as .m-dropdown__menu: size to content instead of being clamped
537
+ by the space left of the anchor in the viewport. */
538
+ width: max-content;
535
539
  }
536
540
 
537
541
  .m-dropdown__submenu--teleported {
@@ -529,9 +529,13 @@
529
529
  border-radius: var(--m-radius-md);
530
530
  box-shadow: var(--m-shadow-md);
531
531
  max-height: var(--m-dropdown-submenu-max-height);
532
+ max-width: calc(100vw - 2 * var(--m-space-4));
532
533
  min-width: 10rem;
533
534
  overflow: hidden;
534
535
  padding: var(--m-space-1);
536
+ /* Same as .m-dropdown__menu: size to content instead of being clamped
537
+ by the space left of the anchor in the viewport. */
538
+ width: max-content;
535
539
  }
536
540
 
537
541
  .m-dropdown__submenu--teleported {
@@ -1,5 +1,5 @@
1
1
  import { a as e } from "../useComponentAttrs-e-5QAjdw.js";
2
- import { t } from "../Icon-lcN1rS87.js";
2
+ import { t } from "../Icon-od9Ob-Ay.js";
3
3
  import { t as n } from "../useMenuKeyboard-BedmYE4W.js";
4
4
  import { t as r } from "../Scrollbar-DTeJ8P5b.js";
5
5
  import { n as i } from "../locale-Bzm2nbEp.js";
@@ -529,9 +529,13 @@
529
529
  border-radius: var(--m-radius-md);
530
530
  box-shadow: var(--m-shadow-md);
531
531
  max-height: var(--m-dropdown-submenu-max-height);
532
+ max-width: calc(100vw - 2 * var(--m-space-4));
532
533
  min-width: 10rem;
533
534
  overflow: hidden;
534
535
  padding: var(--m-space-1);
536
+ /* Same as .m-dropdown__menu: size to content instead of being clamped
537
+ by the space left of the anchor in the viewport. */
538
+ width: max-content;
535
539
  }
536
540
 
537
541
  .m-dropdown__submenu--teleported {
@@ -529,9 +529,13 @@
529
529
  border-radius: var(--m-radius-md);
530
530
  box-shadow: var(--m-shadow-md);
531
531
  max-height: var(--m-dropdown-submenu-max-height);
532
+ max-width: calc(100vw - 2 * var(--m-space-4));
532
533
  min-width: 10rem;
533
534
  overflow: hidden;
534
535
  padding: var(--m-space-1);
536
+ /* Same as .m-dropdown__menu: size to content instead of being clamped
537
+ by the space left of the anchor in the viewport. */
538
+ width: max-content;
535
539
  }
536
540
 
537
541
  .m-dropdown__submenu--teleported {