morya-ui 0.4.2 → 0.4.4

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 (357) hide show
  1. package/CHANGELOG.md +780 -755
  2. package/LICENSE +21 -21
  3. package/README.md +156 -150
  4. package/README.zh-CN.md +156 -150
  5. package/dist/{Button-BaYLh91a.js → Button-Bjsth0ct.js} +3 -3
  6. package/dist/{Card-B1CB9Trm.js → Card-Ct5vJmoV.js} +1 -1
  7. package/dist/{Checkbox-LxCFF19I.js → Checkbox-Bo26OGHP.js} +1 -1
  8. package/dist/{DatePicker-DGPNukEW.js → DatePicker-CsMGzCqY.js} +4 -4
  9. package/dist/{Empty-2_f_FgyK.js → Empty-rMhOPi79.js} +2 -2
  10. package/dist/{FlyoutSubmenu-Da6AcoM4.js → FlyoutSubmenu-C0id6-Sb.js} +1 -1
  11. package/dist/{Icon-od9Ob-Ay.js → Icon-CmHjx7W8.js} +1 -1
  12. package/dist/{Input-NspPDc2R.js → Input-CxSTVp9E.js} +3 -3
  13. package/dist/{Loading-BK4dQPCS.js → Loading-D_qRwfKv.js} +4 -4
  14. package/dist/{Pagination-tdrlaZ3u.js → Pagination-CnGOpp0m.js} +3 -3
  15. package/dist/{Popover-BumMfUpV.js → Popover-D1uZ1N9Z.js} +2 -2
  16. package/dist/{ProgressSpinner-BQ1tLioO.js → ProgressSpinner-hmR23xpi.js} +2 -2
  17. package/dist/{Radio-BCn2OVCF.js → Radio-CZAyelC_.js} +1 -1
  18. package/dist/{Segmented-ppmDmku5.js → Segmented-BpdO7arR.js} +2 -2
  19. package/dist/{Select-CN1tM76U.js → Select-CySmusHs.js} +4 -4
  20. package/dist/{Textarea-Ch1KCXEv.js → Textarea-DskjTCcz.js} +3 -3
  21. package/dist/{Tooltip-DKsXxU_B.js → Tooltip-DSfkflHp.js} +2 -2
  22. package/dist/accordion/style.css +1205 -1205
  23. package/dist/affix/style.css +1205 -1205
  24. package/dist/alert/index.js +15 -15
  25. package/dist/alert/style.css +1206 -1206
  26. package/dist/anchor/style.css +1205 -1205
  27. package/dist/auto-complete/index.js +4 -4
  28. package/dist/auto-complete/style.css +1749 -1749
  29. package/dist/avatar/index.js +1 -1
  30. package/dist/avatar/style.css +1318 -1318
  31. package/dist/badge/index.js +24 -24
  32. package/dist/badge/style.css +1371 -1372
  33. package/dist/block-ui/index.js +1 -1
  34. package/dist/block-ui/style.css +1205 -1205
  35. package/dist/breadcrumb/index.js +1 -1
  36. package/dist/breadcrumb/style.css +1205 -1205
  37. package/dist/button/index.js +1 -1
  38. package/dist/button/style.css +1909 -1909
  39. package/dist/calendar/index.js +3 -3
  40. package/dist/calendar/style.css +1880 -1880
  41. package/dist/card/index.js +1 -1
  42. package/dist/card/style.css +1205 -1205
  43. package/dist/carousel/index.js +2 -2
  44. package/dist/carousel/style.css +2208 -2208
  45. package/dist/cascade-select/index.js +4 -4
  46. package/dist/cascade-select/style.css +1909 -1909
  47. package/dist/checkbox/index.js +1 -1
  48. package/dist/checkbox/style.css +1205 -1205
  49. package/dist/chip/index.js +35 -35
  50. package/dist/chip/style.css +1349 -1349
  51. package/dist/command-menu/index.js +5 -5
  52. package/dist/command-menu/style.css +1438 -1438
  53. package/dist/components/Alert/Alert.vue.d.ts +2 -2
  54. package/dist/components/Alert/Alert.vue.d.ts.map +1 -1
  55. package/dist/components/Alert/index.d.ts +1 -1
  56. package/dist/components/Alert/index.d.ts.map +1 -1
  57. package/dist/components/Alert/styles.css +1 -1
  58. package/dist/components/Alert/types.d.ts +3 -3
  59. package/dist/components/Alert/types.d.ts.map +1 -1
  60. package/dist/components/AutoComplete/styles.css +209 -209
  61. package/dist/components/Avatar/styles.css +113 -113
  62. package/dist/components/Badge/Badge.vue.d.ts +2 -2
  63. package/dist/components/Badge/index.d.ts +1 -1
  64. package/dist/components/Badge/index.d.ts.map +1 -1
  65. package/dist/components/Badge/styles.css +164 -165
  66. package/dist/components/Badge/types.d.ts +3 -4
  67. package/dist/components/Badge/types.d.ts.map +1 -1
  68. package/dist/components/Button/styles.css +698 -698
  69. package/dist/components/Button/types.d.ts +1 -5
  70. package/dist/components/Button/types.d.ts.map +1 -1
  71. package/dist/components/Carousel/styles.css +302 -302
  72. package/dist/components/CascadeSelect/styles.css +168 -168
  73. package/dist/components/Chip/index.d.ts +1 -1
  74. package/dist/components/Chip/index.d.ts.map +1 -1
  75. package/dist/components/Chip/styles.css +144 -144
  76. package/dist/components/Chip/types.d.ts +3 -3
  77. package/dist/components/Chip/types.d.ts.map +1 -1
  78. package/dist/components/CommandMenu/styles.css +102 -102
  79. package/dist/components/ConfigProvider/styles.css +6 -6
  80. package/dist/components/ConfirmDialog/ConfirmDialog.vue.d.ts.map +1 -1
  81. package/dist/components/ConfirmDialog/styles.css +24 -24
  82. package/dist/components/ConfirmDialog/types.d.ts +1 -1
  83. package/dist/components/ConfirmDialog/types.d.ts.map +1 -1
  84. package/dist/components/ConfirmPopup/styles.css +35 -35
  85. package/dist/components/ContextMenu/styles.css +138 -138
  86. package/dist/components/DatePicker/styles.css +453 -453
  87. package/dist/components/Dialog/Dialog.vue.d.ts.map +1 -1
  88. package/dist/components/Dialog/styles.css +420 -421
  89. package/dist/components/Dialog/types.d.ts +1 -2
  90. package/dist/components/Dialog/types.d.ts.map +1 -1
  91. package/dist/components/Dock/styles.css +84 -84
  92. package/dist/components/Drawer/styles.css +346 -346
  93. package/dist/components/Dropdown/styles.css +135 -135
  94. package/dist/components/Empty/styles.css +146 -146
  95. package/dist/components/FileUpload/styles.css +359 -359
  96. package/dist/components/Form/Form.vue.d.ts.map +1 -1
  97. package/dist/components/Form/styles.css +125 -125
  98. package/dist/components/Gallery/styles.css +100 -100
  99. package/dist/components/Input/styles.css +392 -392
  100. package/dist/components/InputColor/styles.css +139 -139
  101. package/dist/components/InputNumber/styles.css +262 -262
  102. package/dist/components/InputPassword/styles.css +189 -189
  103. package/dist/components/InputTags/styles.css +121 -121
  104. package/dist/components/Layout/styles.css +433 -433
  105. package/dist/components/List/styles.css +229 -229
  106. package/dist/components/Listbox/styles.css +130 -130
  107. package/dist/components/Loading/styles.css +378 -378
  108. package/dist/components/MegaMenu/styles.css +97 -97
  109. package/dist/components/Menu/styles.css +565 -565
  110. package/dist/components/Menubar/styles.css +144 -144
  111. package/dist/components/Message/Message.vue.d.ts.map +1 -1
  112. package/dist/components/Message/index.d.ts +1 -1
  113. package/dist/components/Message/index.d.ts.map +1 -1
  114. package/dist/components/Message/message.d.ts +4 -0
  115. package/dist/components/Message/message.d.ts.map +1 -1
  116. package/dist/components/Message/styles.css +248 -252
  117. package/dist/components/Message/types.d.ts +4 -4
  118. package/dist/components/Message/types.d.ts.map +1 -1
  119. package/dist/components/MeterGroup/styles.css +49 -49
  120. package/dist/components/Page/PageFilters.vue.d.ts.map +1 -1
  121. package/dist/components/Page/PageStat.vue.d.ts +2 -2
  122. package/dist/components/Page/index.d.ts +1 -1
  123. package/dist/components/Page/index.d.ts.map +1 -1
  124. package/dist/components/Page/styles.css +430 -430
  125. package/dist/components/Page/types.d.ts +2 -2
  126. package/dist/components/Page/types.d.ts.map +1 -1
  127. package/dist/components/Pagination/styles.css +124 -124
  128. package/dist/components/Popover/styles.css +92 -92
  129. package/dist/components/ProgressBar/ProgressBar.vue.d.ts.map +1 -1
  130. package/dist/components/ProgressBar/styles.css +1 -1
  131. package/dist/components/ProgressBar/types.d.ts +2 -7
  132. package/dist/components/ProgressBar/types.d.ts.map +1 -1
  133. package/dist/components/Result/styles.css +146 -146
  134. package/dist/components/Scrollbar/styles.css +131 -131
  135. package/dist/components/Select/styles.css +222 -222
  136. package/dist/components/SelectButton/styles.css +107 -107
  137. package/dist/components/Sidebar/styles.css +74 -74
  138. package/dist/components/Slider/styles.css +211 -211
  139. package/dist/components/SplitButton/styles.css +216 -216
  140. package/dist/components/Status/Status.vue.d.ts +2 -2
  141. package/dist/components/Status/Status.vue.d.ts.map +1 -1
  142. package/dist/components/Status/index.d.ts +1 -1
  143. package/dist/components/Status/index.d.ts.map +1 -1
  144. package/dist/components/Status/styles.css +190 -191
  145. package/dist/components/Status/types.d.ts +4 -5
  146. package/dist/components/Status/types.d.ts.map +1 -1
  147. package/dist/components/Stepper/styles.css +152 -152
  148. package/dist/components/Switch/styles.css +129 -129
  149. package/dist/components/Tabs/styles.css +165 -165
  150. package/dist/components/Tag/Tag.vue.d.ts +2 -2
  151. package/dist/components/Tag/index.d.ts +1 -1
  152. package/dist/components/Tag/index.d.ts.map +1 -1
  153. package/dist/components/Tag/styles.css +0 -1
  154. package/dist/components/Tag/types.d.ts +4 -5
  155. package/dist/components/Tag/types.d.ts.map +1 -1
  156. package/dist/components/Terminal/styles.css +75 -75
  157. package/dist/components/Textarea/styles.css +146 -146
  158. package/dist/components/TieredMenu/styles.css +125 -125
  159. package/dist/components/Timeline/Timeline.vue.d.ts.map +1 -1
  160. package/dist/components/Timeline/index.d.ts +1 -1
  161. package/dist/components/Timeline/index.d.ts.map +1 -1
  162. package/dist/components/Timeline/styles.css +157 -159
  163. package/dist/components/Timeline/types.d.ts +3 -3
  164. package/dist/components/Timeline/types.d.ts.map +1 -1
  165. package/dist/components/Toast/Toast.vue.d.ts.map +1 -1
  166. package/dist/components/Toast/index.d.ts +1 -1
  167. package/dist/components/Toast/index.d.ts.map +1 -1
  168. package/dist/components/Toast/styles.css +1 -3
  169. package/dist/components/Toast/toast.d.ts +4 -0
  170. package/dist/components/Toast/toast.d.ts.map +1 -1
  171. package/dist/components/Toast/types.d.ts +5 -5
  172. package/dist/components/Toast/types.d.ts.map +1 -1
  173. package/dist/components/Toast/useNotification.d.ts +3 -2
  174. package/dist/components/Toast/useNotification.d.ts.map +1 -1
  175. package/dist/components/TreeSelect/styles.css +172 -172
  176. package/dist/components/VirtualScroller/styles.css +27 -27
  177. package/dist/{config-CB_TiIvg.js → config-BEpyhJi3.js} +1 -1
  178. package/dist/config-provider/index.js +1 -1
  179. package/dist/config-provider/style.css +2301 -2301
  180. package/dist/confirm-dialog/index.js +54 -57
  181. package/dist/confirm-dialog/style.css +2347 -2348
  182. package/dist/confirm-popup/index.js +5 -5
  183. package/dist/confirm-popup/style.css +1938 -1938
  184. package/dist/context-menu/index.js +5 -5
  185. package/dist/context-menu/style.css +1474 -1474
  186. package/dist/data-view/index.js +3 -3
  187. package/dist/data-view/style.css +1707 -1707
  188. package/dist/date-picker/index.js +1 -1
  189. package/dist/date-picker/style.css +1658 -1658
  190. package/dist/descriptions/index.js +1 -1
  191. package/dist/descriptions/style.css +1205 -1205
  192. package/dist/dialog/index.js +95 -98
  193. package/dist/dialog/style.css +2323 -2324
  194. package/dist/divider/style.css +1205 -1205
  195. package/dist/dock/index.js +2 -2
  196. package/dist/dock/style.css +1289 -1289
  197. package/dist/drawer/index.js +4 -4
  198. package/dist/drawer/style.css +1551 -1551
  199. package/dist/dropdown/index.js +6 -6
  200. package/dist/dropdown/style.css +1471 -1471
  201. package/dist/empty/index.js +1 -1
  202. package/dist/empty/style.css +1351 -1351
  203. package/dist/fieldset/index.js +1 -1
  204. package/dist/fieldset/style.css +1205 -1205
  205. package/dist/file-upload/index.js +2 -2
  206. package/dist/file-upload/style.css +1564 -1564
  207. package/dist/flex/index.js +1 -1
  208. package/dist/flex/style.css +1205 -1205
  209. package/dist/float-label/style.css +1205 -1205
  210. package/dist/fluid/style.css +1205 -1205
  211. package/dist/form/index.js +2 -2
  212. package/dist/form/style.css +1332 -1332
  213. package/dist/gallery/index.js +2 -2
  214. package/dist/gallery/style.css +1436 -1436
  215. package/dist/grid/style.css +1205 -1205
  216. package/dist/icon/index.js +1 -1
  217. package/dist/icon/style.css +1205 -1205
  218. package/dist/{icon-COrt_N8A.js → icon-H8prbteT.js} +1 -1
  219. package/dist/icon-field/style.css +1597 -1597
  220. package/dist/image/index.js +2 -2
  221. package/dist/image/style.css +1205 -1205
  222. package/dist/index.d.ts +11 -11
  223. package/dist/index.d.ts.map +1 -1
  224. package/dist/index.js +3013 -3025
  225. package/dist/inplace/style.css +1205 -1205
  226. package/dist/input/index.js +1 -1
  227. package/dist/input/style.css +1722 -1722
  228. package/dist/input-color/index.js +2 -2
  229. package/dist/input-color/style.css +1346 -1346
  230. package/dist/input-group/style.css +1205 -1205
  231. package/dist/input-number/index.js +3 -3
  232. package/dist/input-number/style.css +1467 -1467
  233. package/dist/input-otp/index.js +2 -2
  234. package/dist/input-otp/style.css +1205 -1205
  235. package/dist/input-password/index.js +4 -4
  236. package/dist/input-password/style.css +1519 -1519
  237. package/dist/input-tags/index.js +3 -3
  238. package/dist/input-tags/style.css +1326 -1326
  239. package/dist/knob/style.css +1205 -1205
  240. package/dist/label/style.css +1205 -1205
  241. package/dist/layout/index.js +2 -2
  242. package/dist/layout/style.css +1769 -1769
  243. package/dist/list/index.js +4 -4
  244. package/dist/list/style.css +2087 -2087
  245. package/dist/listbox/index.js +2 -2
  246. package/dist/listbox/style.css +1497 -1497
  247. package/dist/loading/index.js +1 -1
  248. package/dist/loading/style.css +1585 -1585
  249. package/dist/{locale-CR2PIaxt.js → locale-CZddM-tH.js} +1 -1
  250. package/dist/mega-menu/index.js +5 -5
  251. package/dist/mega-menu/style.css +1302 -1302
  252. package/dist/mentions/index.js +4 -4
  253. package/dist/mentions/style.css +1330 -1330
  254. package/dist/menu/index.js +6 -6
  255. package/dist/menu/style.css +2059 -2059
  256. package/dist/menubar/index.js +5 -5
  257. package/dist/menubar/style.css +1480 -1480
  258. package/dist/message/index.js +116 -117
  259. package/dist/message/style.css +1453 -1457
  260. package/dist/meter-group/style.css +1256 -1256
  261. package/dist/order-list/index.js +2 -2
  262. package/dist/order-list/style.css +1205 -1205
  263. package/dist/page/index.js +8 -7
  264. package/dist/page/style.css +2597 -2597
  265. package/dist/pagination/index.js +1 -1
  266. package/dist/pagination/style.css +1551 -1551
  267. package/dist/panel/index.js +3 -3
  268. package/dist/panel/style.css +1205 -1205
  269. package/dist/pick-list/index.js +2 -2
  270. package/dist/pick-list/style.css +1205 -1205
  271. package/dist/popover/index.js +1 -1
  272. package/dist/popover/style.css +1299 -1299
  273. package/dist/progress-bar/index.js +33 -34
  274. package/dist/progress-bar/style.css +1206 -1206
  275. package/dist/progress-spinner/index.js +1 -1
  276. package/dist/progress-spinner/style.css +1205 -1205
  277. package/dist/qr-code/index.js +4 -4
  278. package/dist/qr-code/style.css +1903 -1903
  279. package/dist/radio/index.js +1 -1
  280. package/dist/radio/style.css +1205 -1205
  281. package/dist/rating/index.js +3 -3
  282. package/dist/rating/style.css +1205 -1205
  283. package/dist/result/index.js +2 -2
  284. package/dist/result/style.css +1351 -1351
  285. package/dist/scroll-top/index.js +3 -3
  286. package/dist/scroll-top/style.css +1336 -1336
  287. package/dist/scrollbar/style.css +1338 -1338
  288. package/dist/segmented/index.js +1 -1
  289. package/dist/segmented/style.css +1205 -1205
  290. package/dist/select/index.js +1 -1
  291. package/dist/select/style.css +2115 -2115
  292. package/dist/select-button/index.js +1 -1
  293. package/dist/select-button/style.css +1314 -1314
  294. package/dist/shared/styles/control-affix-icon.css +110 -110
  295. package/dist/shared/styles/control-suffix.css +118 -118
  296. package/dist/shared/styles/select-overlay.css +177 -177
  297. package/dist/shared/types.d.ts +7 -20
  298. package/dist/shared/types.d.ts.map +1 -1
  299. package/dist/sidebar/index.js +3 -3
  300. package/dist/sidebar/style.css +1279 -1279
  301. package/dist/skeleton/style.css +1205 -1205
  302. package/dist/slider/index.js +2 -2
  303. package/dist/slider/style.css +1418 -1418
  304. package/dist/space/index.js +1 -1
  305. package/dist/space/style.css +1205 -1205
  306. package/dist/speed-dial/index.js +5 -5
  307. package/dist/speed-dial/style.css +1205 -1205
  308. package/dist/split-button/index.js +5 -5
  309. package/dist/split-button/style.css +2119 -2119
  310. package/dist/splitter/index.js +1 -1
  311. package/dist/splitter/style.css +1205 -1205
  312. package/dist/statistic/style.css +1205 -1205
  313. package/dist/status/index.js +30 -31
  314. package/dist/status/style.css +1395 -1396
  315. package/dist/stepper/index.js +1 -1
  316. package/dist/stepper/style.css +1357 -1357
  317. package/dist/styles/base.css +804 -804
  318. package/dist/styles.css +1 -1
  319. package/dist/switch/index.js +1 -1
  320. package/dist/switch/style.css +1336 -1336
  321. package/dist/table/index.js +11 -11
  322. package/dist/table/style.css +1840 -1840
  323. package/dist/tabs/index.js +2 -2
  324. package/dist/tabs/style.css +1501 -1501
  325. package/dist/tag/index.js +52 -52
  326. package/dist/tag/style.css +1205 -1206
  327. package/dist/terminal/index.js +1 -1
  328. package/dist/terminal/style.css +1282 -1282
  329. package/dist/textarea/index.js +1 -1
  330. package/dist/textarea/style.css +1476 -1476
  331. package/dist/theme/styles.css +401 -401
  332. package/dist/tiered-menu/index.js +4 -4
  333. package/dist/tiered-menu/style.css +1461 -1461
  334. package/dist/time-picker/index.js +1 -1
  335. package/dist/time-picker/style.css +1660 -1660
  336. package/dist/timeline/index.js +67 -72
  337. package/dist/timeline/style.css +1493 -1495
  338. package/dist/toast/index.js +135 -136
  339. package/dist/toast/style.css +1904 -1906
  340. package/dist/toggle-button/index.js +3 -3
  341. package/dist/toggle-button/style.css +1205 -1205
  342. package/dist/toolbar/style.css +1205 -1205
  343. package/dist/tooltip/index.js +1 -1
  344. package/dist/tooltip/style.css +1205 -1205
  345. package/dist/tour/index.js +4 -4
  346. package/dist/tour/style.css +1903 -1903
  347. package/dist/tree/index.js +3 -3
  348. package/dist/tree/style.css +1205 -1205
  349. package/dist/tree-select/index.js +5 -5
  350. package/dist/tree-select/style.css +1913 -1913
  351. package/dist/{types-DGuu4Eg4.js → types-DBQfGctj.js} +1 -4
  352. package/dist/typography/index.js +3 -3
  353. package/dist/typography/style.css +1351 -1351
  354. package/dist/{useMotionTransition-D8JOR3ih.js → useMotionTransition-DqL_SEML.js} +1 -1
  355. package/dist/virtual-scroller/style.css +1366 -1366
  356. package/dist/watermark/style.css +1205 -1205
  357. package/package.json +2 -1
@@ -1,565 +1,565 @@
1
- /* --- Menu --- */
2
- .m-menu {
3
- --m-menu-indent: var(--m-space-3);
4
- --m-menu-root-indent: var(--m-space-4);
5
- --m-menu-submenu-gap: var(--m-space-2);
6
- --m-menu-submenu-inset: var(--m-space-2);
7
- --m-menu-item-radius: var(--m-radius-md);
8
- --m-menu-color: transparent;
9
- --m-menu-item-color-hover: color-mix(
10
- in srgb,
11
- var(--m-color-text) 6%,
12
- var(--m-color-surface)
13
- );
14
- --m-menu-item-color-active: color-mix(
15
- in srgb,
16
- var(--m-color-primary) 10%,
17
- var(--m-color-surface)
18
- );
19
- --m-menu-item-text: var(--m-color-text);
20
- --m-menu-item-text-active: var(--m-color-primary);
21
- --m-menu-item-text-child-active: var(--m-color-primary);
22
- --m-menu-item-icon: var(--m-color-text);
23
- --m-menu-item-icon-active: var(--m-color-primary);
24
- --m-menu-arrow: var(--m-color-text-muted);
25
-
26
- background: var(--m-menu-color);
27
- border: var(--m-border-width) solid var(--m-color-border);
28
- border-radius: var(--m-radius-md);
29
- box-sizing: border-box;
30
- color: var(--m-menu-item-text);
31
- display: flex;
32
- flex-direction: column;
33
- font-size: var(--m-font-size-sm);
34
- min-width: 10rem;
35
- overflow: hidden;
36
- padding: 0 0 var(--m-space-1);
37
- user-select: none;
38
- }
39
-
40
- .m-menu--embedded {
41
- background: transparent;
42
- border: 0;
43
- border-radius: 0;
44
- min-width: 0;
45
- /* Keep a block inset so the first item does not sit on a brand rule or sider edge.
46
- Horizontal embed resets this below. */
47
- padding-block: var(--m-space-2);
48
- padding-inline: 0;
49
- width: 100%;
50
- }
51
-
52
- .m-menu--flyout {
53
- --m-menu-flyout-gap: var(--m-space-1);
54
- --m-menu-flyout-item-height: var(--m-menu-item-height);
55
- --m-menu-flyout-padding: var(--m-space-2);
56
- --m-menu-flyout-radius: var(--m-radius-md);
57
-
58
- background: var(--m-color-surface);
59
- border: var(--m-border-width) solid color-mix(in srgb, var(--m-color-border) 88%, transparent);
60
- border-radius: var(--m-menu-flyout-radius);
61
- box-shadow: var(--m-shadow-lg);
62
- box-sizing: border-box;
63
- min-width: 11.5rem;
64
- overflow: hidden;
65
- padding: var(--m-menu-flyout-padding);
66
- }
67
-
68
- .m-menu--popup {
69
- --m-menu-popup-max-height: min(18rem, 45vh);
70
- box-shadow: var(--m-shadow-md);
71
- display: flex;
72
- flex-direction: column;
73
- max-height: var(--m-menu-popup-max-height);
74
- max-width: calc(100vw - 2 * var(--m-space-4));
75
- overflow: hidden;
76
- padding: var(--m-space-1) 0 var(--m-space-2);
77
- position: absolute;
78
- /* Grow with the content: shrink-to-fit would clamp to the anchor width
79
- (the containing block) when not teleported. */
80
- width: max-content;
81
- z-index: var(--m-z-popper);
82
- }
83
-
84
- .m-menu--popup .m-menu__scroll {
85
- max-height: 100%;
86
- min-height: 0;
87
- }
88
-
89
- .m-menu-popup {
90
- display: inline-flex;
91
- position: relative;
92
- }
93
-
94
- .m-menu-popup__anchor {
95
- display: inline-flex;
96
- }
97
-
98
- .m-menu-popup .m-menu--popup:not(.m-menu--teleported) {
99
- left: 0;
100
- /* Keep the in-place popup at least as wide as its anchor. */
101
- min-width: 100%;
102
- top: calc(100% + var(--m-space-2));
103
- }
104
-
105
- .m-menu--teleported {
106
- position: fixed;
107
- z-index: var(--m-z-dropdown);
108
- }
109
-
110
- .m-menu--horizontal {
111
- --m-menu-horizontal-gap: var(--m-space-1);
112
- --m-menu-horizontal-height: var(--m-menu-item-height);
113
-
114
- align-items: stretch;
115
- flex-direction: row;
116
- flex-wrap: nowrap;
117
- gap: var(--m-menu-horizontal-gap);
118
- max-width: 100%;
119
- min-width: 0;
120
- overflow: visible;
121
- padding: var(--m-space-1) var(--m-space-2);
122
- width: auto;
123
- }
124
-
125
- .m-menu--horizontal.m-menu--embedded {
126
- padding: 0;
127
- }
128
-
129
- .m-menu--horizontal .m-menu__item,
130
- .m-menu--horizontal .m-menu__item--submenu {
131
- margin-top: 0;
132
- }
133
-
134
- .m-menu--horizontal .m-menu__item--horizontal {
135
- display: flex;
136
- align-items: stretch;
137
- }
138
-
139
- .m-menu--horizontal .m-popover,
140
- .m-menu--horizontal .m-menu__collapsed-popover {
141
- display: flex;
142
- align-items: stretch;
143
- height: 100%;
144
- }
145
-
146
- .m-menu--horizontal .m-popover__trigger {
147
- display: flex;
148
- align-items: stretch;
149
- height: 100%;
150
- }
151
-
152
- .m-menu--horizontal .m-menu__item-content {
153
- align-items: center;
154
- border-bottom: none;
155
- border-radius: var(--m-radius-control);
156
- font-weight: 500;
157
- height: var(--m-menu-horizontal-height);
158
- padding-inline: var(--m-space-3);
159
- white-space: nowrap;
160
- }
161
-
162
- .m-menu--horizontal .m-menu__item-content::before {
163
- border-radius: var(--m-radius-control);
164
- display: block;
165
- inset: 0;
166
- }
167
-
168
- .m-menu--horizontal .m-menu__item-content--selected::before,
169
- .m-menu--horizontal .m-menu__item-content--child-active::before {
170
- background: var(--m-menu-item-color-active) !important;
171
- }
172
-
173
- .m-menu--horizontal .m-menu__item-content--selected,
174
- .m-menu--horizontal .m-menu__item-content--child-active {
175
- border-bottom-color: transparent;
176
- }
177
-
178
- .m-menu--horizontal .m-menu__item-content--selected .m-menu__label,
179
- .m-menu--horizontal .m-menu__item-content--child-active .m-menu__label,
180
- .m-menu--horizontal .m-menu__item-content--selected .m-menu__arrow,
181
- .m-menu--horizontal .m-menu__item-content--child-active .m-menu__arrow {
182
- color: var(--m-menu-item-text-active);
183
- }
184
-
185
- .m-menu--horizontal .m-menu__arrow {
186
- margin-inline-start: var(--m-space-1);
187
- }
188
-
189
- .m-menu--horizontal .m-menu__submenu {
190
- display: none;
191
- }
192
-
193
- .m-menu--inverted {
194
- --m-menu-item-color-hover: color-mix(
195
- in srgb,
196
- var(--m-color-contrast-fg) 8%,
197
- transparent
198
- );
199
- --m-menu-item-color-active: var(--m-color-primary);
200
- --m-menu-item-text: color-mix(
201
- in srgb,
202
- var(--m-color-contrast-fg) 82%,
203
- transparent
204
- );
205
- --m-menu-item-text-active: var(--m-color-contrast-fg);
206
- --m-menu-item-text-child-active: var(--m-color-contrast-fg);
207
- --m-menu-item-icon: color-mix(
208
- in srgb,
209
- var(--m-color-contrast-fg) 82%,
210
- transparent
211
- );
212
- --m-menu-item-icon-active: var(--m-color-contrast-fg);
213
- --m-menu-arrow: color-mix(
214
- in srgb,
215
- var(--m-color-contrast-fg) 72%,
216
- transparent
217
- );
218
- }
219
-
220
- /* —�?Collapsed (icon rail) —�?*/
221
- .m-menu--collapsed {
222
- padding: var(--m-space-1) 0;
223
- }
224
-
225
- .m-menu--collapsed .m-menu__label,
226
- .m-menu--collapsed .m-menu__arrow {
227
- display: none;
228
- }
229
-
230
- .m-menu--collapsed .m-menu__item {
231
- margin-top: var(--m-space-1);
232
- }
233
-
234
- .m-menu--collapsed .m-menu__item .m-tooltip,
235
- .m-menu--collapsed .m-menu__collapsed-popover .m-tooltip {
236
- display: flex;
237
- width: 100%;
238
- }
239
-
240
- .m-menu--collapsed .m-menu__item-content {
241
- align-items: center;
242
- display: flex;
243
- grid-template-areas: none;
244
- grid-template-columns: unset;
245
- height: var(--m-menu-item-height);
246
- justify-content: center;
247
- padding-inline: 0 !important;
248
- width: 100%;
249
- }
250
-
251
- .m-menu--collapsed .m-menu__item-content::before {
252
- inset: 0 var(--m-space-2);
253
- }
254
-
255
- .m-menu--collapsed .m-menu__icon {
256
- height: 1.375rem;
257
- margin-inline: 0;
258
- width: 1.375rem;
259
- }
260
-
261
- .m-menu--collapsed .m-menu__icon .m-icon {
262
- height: 1.375rem;
263
- width: 1.375rem;
264
- }
265
-
266
- .m-menu--collapsed .m-menu__item-content--selected::before,
267
- .m-menu--collapsed .m-menu__item-content--child-active::before {
268
- background: var(--m-menu-item-color-active) !important;
269
- }
270
-
271
- .m-menu__item {
272
- margin-top: 0.375rem;
273
- position: relative;
274
- }
275
-
276
- .m-menu__item:first-child {
277
- margin-top: 0;
278
- }
279
-
280
- .m-menu__item-content {
281
- align-items: center;
282
- border-radius: var(--m-menu-item-radius);
283
- box-sizing: border-box;
284
- color: var(--m-menu-item-text);
285
- cursor: pointer;
286
- display: grid;
287
- grid-template-areas: "icon label arrow";
288
- grid-template-columns: auto minmax(0, 1fr) auto;
289
- height: var(--m-menu-item-height);
290
- line-height: 1.75;
291
- padding-inline-end: 0.75rem;
292
- position: relative;
293
- text-decoration: none;
294
- transition:
295
- color var(--m-motion-fast) var(--m-motion-ease),
296
- background-color var(--m-motion-fast) var(--m-motion-ease),
297
- padding-inline-start var(--m-motion-fast) var(--m-motion-ease);
298
- }
299
-
300
- /* RouterLink / <a> must not keep browser link chrome (blue + underline). */
301
- a.m-menu__item-content,
302
- a.m-menu__item-content:link,
303
- a.m-menu__item-content:visited,
304
- a.m-menu__item-content:hover,
305
- a.m-menu__item-content:active {
306
- color: var(--m-menu-item-text);
307
- text-decoration: none;
308
- }
309
-
310
- .m-menu__item-content--no-icon {
311
- grid-template-areas: "label arrow";
312
- grid-template-columns: minmax(0, 1fr) auto;
313
- }
314
-
315
- .m-menu__item-content::before {
316
- background: transparent;
317
- border-radius: var(--m-menu-item-radius);
318
- content: "";
319
- inset: 0 0.5rem;
320
- pointer-events: none;
321
- position: absolute;
322
- transition: background-color var(--m-motion-fast) var(--m-motion-ease);
323
- z-index: 0;
324
- }
325
-
326
- .m-menu__item-content > * {
327
- position: relative;
328
- z-index: 1;
329
- }
330
-
331
- .m-menu__item-content:hover:not(.m-menu__item-content--disabled)::before,
332
- .m-menu__item-content:focus-visible:not(.m-menu__item-content--disabled)::before,
333
- .m-menu__item-content--active:not(.m-menu__item-content--disabled)::before {
334
- background: var(--m-menu-item-color-hover);
335
- }
336
-
337
- .m-menu__item-content--selected::before {
338
- background: var(--m-menu-item-color-active) !important;
339
- }
340
-
341
- .m-menu__item-content--selected,
342
- a.m-menu__item-content--selected,
343
- a.m-menu__item-content--selected:link,
344
- a.m-menu__item-content--selected:visited {
345
- color: var(--m-menu-item-text-active);
346
- }
347
-
348
- .m-menu__item-content--selected .m-menu__label,
349
- .m-menu__item-content--selected .m-menu__icon,
350
- .m-menu__item-content--selected .m-menu__arrow {
351
- color: var(--m-menu-item-text-active);
352
- }
353
-
354
- .m-menu__item-content--child-active .m-menu__label,
355
- .m-menu__item-content--child-active .m-menu__icon,
356
- .m-menu__item-content--child-active .m-menu__arrow {
357
- color: var(--m-menu-item-text-child-active);
358
- }
359
-
360
- .m-menu--inverted .m-menu__item-content--selected::before {
361
- background: var(--m-menu-item-color-active) !important;
362
- }
363
-
364
- .m-menu__item-content--disabled {
365
- color: var(--m-color-text-disabled);
366
- cursor: not-allowed;
367
- opacity: 1;
368
- }
369
-
370
- .m-menu__item-content:focus-visible {
371
- outline: none;
372
- }
373
-
374
- .m-menu__item-content:focus-visible::before {
375
- box-shadow: var(--m-focus-shadow);
376
- }
377
-
378
- .m-menu__icon {
379
- align-items: center;
380
- color: var(--m-menu-item-icon);
381
- display: inline-flex;
382
- flex-shrink: 0;
383
- grid-area: icon;
384
- height: 1.25rem;
385
- justify-content: center;
386
- margin-inline-end: 0.5rem;
387
- width: 1.25rem;
388
- }
389
-
390
- .m-menu__icon .m-icon {
391
- height: 1.25rem;
392
- width: 1.25rem;
393
- }
394
-
395
- .m-menu__item-content--selected .m-menu__icon,
396
- .m-menu__item-content--child-active .m-menu__icon {
397
- color: var(--m-menu-item-icon-active);
398
- }
399
-
400
- .m-menu__label {
401
- color: inherit;
402
- grid-area: label;
403
- min-width: 0;
404
- overflow: hidden;
405
- text-overflow: ellipsis;
406
- white-space: nowrap;
407
- }
408
-
409
- .m-menu__arrow {
410
- align-items: center;
411
- color: var(--m-menu-arrow);
412
- display: inline-flex;
413
- flex-shrink: 0;
414
- grid-area: arrow;
415
- height: 1rem;
416
- justify-content: center;
417
- margin-inline-start: 0.25rem;
418
- transition: transform var(--m-motion-fast) var(--m-motion-ease);
419
- width: 1rem;
420
- }
421
-
422
- .m-menu__arrow--expanded {
423
- transform: rotate(90deg);
424
- }
425
-
426
- .m-menu__separator {
427
- background: var(--m-color-border);
428
- height: 1px;
429
- margin: 0.375rem 0.75rem;
430
- }
431
-
432
- .m-menu__submenu {
433
- contain: layout;
434
- display: grid;
435
- grid-template-rows: 1fr;
436
- }
437
-
438
- .m-menu__submenu-inner {
439
- min-height: 0;
440
- overflow: hidden;
441
- padding-block-start: var(--m-menu-submenu-gap);
442
- padding-inline-start: var(--m-menu-submenu-inset);
443
- }
444
-
445
- .m-menu-expand-enter-active,
446
- .m-menu-expand-leave-active {
447
- overflow: hidden;
448
- transition:
449
- grid-template-rows var(--m-motion-normal) var(--m-motion-ease),
450
- opacity var(--m-motion-normal) var(--m-motion-ease);
451
- }
452
-
453
- .m-menu-expand-enter-from,
454
- .m-menu-expand-leave-to {
455
- grid-template-rows: 0fr;
456
- opacity: 0;
457
- }
458
-
459
- .m-menu-expand-enter-to,
460
- .m-menu-expand-leave-from {
461
- grid-template-rows: 1fr;
462
- opacity: 1;
463
- }
464
-
465
- [data-m-motion="reduced"] .m-menu-expand-enter-active,
466
- [data-m-motion="reduced"] .m-menu-expand-leave-active,
467
- [data-m-motion="none"] .m-menu-expand-enter-active,
468
- [data-m-motion="none"] .m-menu-expand-leave-active {
469
- transition: none;
470
- }
471
-
472
- /* Popover flyout: strip outer chrome, menu card provides it */
473
- .m-popover__trigger {
474
- display: block;
475
- width: 100%;
476
- }
477
-
478
- .m-menu--collapsed .m-popover {
479
- display: block;
480
- width: 100%;
481
- }
482
-
483
- .m-popover__content:has(.m-menu--flyout) {
484
- background: transparent;
485
- border: 0;
486
- box-shadow: none;
487
- min-width: 0;
488
- overflow: visible;
489
- padding: 0;
490
- }
491
-
492
- .m-popover__content--right:has(.m-menu--flyout),
493
- .m-popover__content--right-start:has(.m-menu--flyout) {
494
- left: calc(100% + var(--m-space-2));
495
- }
496
-
497
- .m-popover__content--bottom-start:has(.m-menu--flyout) {
498
- left: 0;
499
- top: calc(100% + var(--m-space-1));
500
- }
501
-
502
- .m-popover__content--teleported:has(.m-menu--flyout) {
503
- padding: 0;
504
- }
505
-
506
- .m-popover__content--right-start:has(.m-menu--flyout).m-scale-fade-enter-from,
507
- .m-popover__content--right-start:has(.m-menu--flyout).m-scale-fade-leave-to {
508
- opacity: 0;
509
- transform: translateX(calc(var(--m-motion-distance) * -0.5)) scale(0.98);
510
- }
511
-
512
- .m-popover__content--bottom-start:has(.m-menu--flyout).m-scale-fade-enter-from,
513
- .m-popover__content--bottom-start:has(.m-menu--flyout).m-scale-fade-leave-to {
514
- opacity: 0;
515
- transform: translateY(calc(var(--m-motion-distance) * -0.35)) scale(0.98);
516
- }
517
-
518
- .m-menu--flyout .m-menu__item {
519
- margin-top: var(--m-menu-flyout-gap);
520
- }
521
-
522
- .m-menu--flyout .m-menu__item:first-child {
523
- margin-top: 0;
524
- }
525
-
526
- .m-menu--flyout .m-menu__item-content {
527
- height: var(--m-menu-flyout-item-height);
528
- padding-inline: var(--m-space-3);
529
- }
530
-
531
- .m-menu--flyout .m-menu__item-content::before {
532
- inset: 0 0.375rem;
533
- border-radius: calc(var(--m-menu-flyout-radius) - 0.125rem);
534
- }
535
-
536
- .m-menu--flyout .m-menu__icon {
537
- height: 1.125rem;
538
- margin-inline-end: 0.625rem;
539
- width: 1.125rem;
540
- }
541
-
542
- .m-menu--flyout .m-menu__icon .m-icon {
543
- height: 1.125rem;
544
- width: 1.125rem;
545
- }
546
-
547
- .m-menu--flyout .m-menu__label {
548
- font-size: var(--m-font-size-sm);
549
- font-weight: 500;
550
- line-height: 1.4;
551
- }
552
-
553
- .m-menu--flyout .m-menu__item-content--selected::before {
554
- background: var(--m-menu-item-color-active) !important;
555
- }
556
-
557
- .m-menu--flyout .m-menu__item-content--selected .m-menu__label,
558
- .m-menu--flyout .m-menu__item-content--selected .m-menu__icon {
559
- color: var(--m-menu-item-text-active);
560
- font-weight: 500;
561
- }
562
-
563
- .m-menu--flyout .m-menu__separator {
564
- margin: var(--m-menu-flyout-gap) 0.5rem;
565
- }
1
+ /* --- Menu --- */
2
+ .m-menu {
3
+ --m-menu-indent: var(--m-space-3);
4
+ --m-menu-root-indent: var(--m-space-4);
5
+ --m-menu-submenu-gap: var(--m-space-2);
6
+ --m-menu-submenu-inset: var(--m-space-2);
7
+ --m-menu-item-radius: var(--m-radius-md);
8
+ --m-menu-color: transparent;
9
+ --m-menu-item-color-hover: color-mix(
10
+ in srgb,
11
+ var(--m-color-text) 6%,
12
+ var(--m-color-surface)
13
+ );
14
+ --m-menu-item-color-active: color-mix(
15
+ in srgb,
16
+ var(--m-color-primary) 10%,
17
+ var(--m-color-surface)
18
+ );
19
+ --m-menu-item-text: var(--m-color-text);
20
+ --m-menu-item-text-active: var(--m-color-primary);
21
+ --m-menu-item-text-child-active: var(--m-color-primary);
22
+ --m-menu-item-icon: var(--m-color-text);
23
+ --m-menu-item-icon-active: var(--m-color-primary);
24
+ --m-menu-arrow: var(--m-color-text-muted);
25
+
26
+ background: var(--m-menu-color);
27
+ border: var(--m-border-width) solid var(--m-color-border);
28
+ border-radius: var(--m-radius-md);
29
+ box-sizing: border-box;
30
+ color: var(--m-menu-item-text);
31
+ display: flex;
32
+ flex-direction: column;
33
+ font-size: var(--m-font-size-sm);
34
+ min-width: 10rem;
35
+ overflow: hidden;
36
+ padding: 0 0 var(--m-space-1);
37
+ user-select: none;
38
+ }
39
+
40
+ .m-menu--embedded {
41
+ background: transparent;
42
+ border: 0;
43
+ border-radius: 0;
44
+ min-width: 0;
45
+ /* Keep a block inset so the first item does not sit on a brand rule or sider edge.
46
+ Horizontal embed resets this below. */
47
+ padding-block: var(--m-space-2);
48
+ padding-inline: 0;
49
+ width: 100%;
50
+ }
51
+
52
+ .m-menu--flyout {
53
+ --m-menu-flyout-gap: var(--m-space-1);
54
+ --m-menu-flyout-item-height: var(--m-menu-item-height);
55
+ --m-menu-flyout-padding: var(--m-space-2);
56
+ --m-menu-flyout-radius: var(--m-radius-md);
57
+
58
+ background: var(--m-color-surface);
59
+ border: var(--m-border-width) solid color-mix(in srgb, var(--m-color-border) 88%, transparent);
60
+ border-radius: var(--m-menu-flyout-radius);
61
+ box-shadow: var(--m-shadow-lg);
62
+ box-sizing: border-box;
63
+ min-width: 11.5rem;
64
+ overflow: hidden;
65
+ padding: var(--m-menu-flyout-padding);
66
+ }
67
+
68
+ .m-menu--popup {
69
+ --m-menu-popup-max-height: min(18rem, 45vh);
70
+ box-shadow: var(--m-shadow-md);
71
+ display: flex;
72
+ flex-direction: column;
73
+ max-height: var(--m-menu-popup-max-height);
74
+ max-width: calc(100vw - 2 * var(--m-space-4));
75
+ overflow: hidden;
76
+ padding: var(--m-space-1) 0 var(--m-space-2);
77
+ position: absolute;
78
+ /* Grow with the content: shrink-to-fit would clamp to the anchor width
79
+ (the containing block) when not teleported. */
80
+ width: max-content;
81
+ z-index: var(--m-z-popper);
82
+ }
83
+
84
+ .m-menu--popup .m-menu__scroll {
85
+ max-height: 100%;
86
+ min-height: 0;
87
+ }
88
+
89
+ .m-menu-popup {
90
+ display: inline-flex;
91
+ position: relative;
92
+ }
93
+
94
+ .m-menu-popup__anchor {
95
+ display: inline-flex;
96
+ }
97
+
98
+ .m-menu-popup .m-menu--popup:not(.m-menu--teleported) {
99
+ left: 0;
100
+ /* Keep the in-place popup at least as wide as its anchor. */
101
+ min-width: 100%;
102
+ top: calc(100% + var(--m-space-2));
103
+ }
104
+
105
+ .m-menu--teleported {
106
+ position: fixed;
107
+ z-index: var(--m-z-dropdown);
108
+ }
109
+
110
+ .m-menu--horizontal {
111
+ --m-menu-horizontal-gap: var(--m-space-1);
112
+ --m-menu-horizontal-height: var(--m-menu-item-height);
113
+
114
+ align-items: stretch;
115
+ flex-direction: row;
116
+ flex-wrap: nowrap;
117
+ gap: var(--m-menu-horizontal-gap);
118
+ max-width: 100%;
119
+ min-width: 0;
120
+ overflow: visible;
121
+ padding: var(--m-space-1) var(--m-space-2);
122
+ width: auto;
123
+ }
124
+
125
+ .m-menu--horizontal.m-menu--embedded {
126
+ padding: 0;
127
+ }
128
+
129
+ .m-menu--horizontal .m-menu__item,
130
+ .m-menu--horizontal .m-menu__item--submenu {
131
+ margin-top: 0;
132
+ }
133
+
134
+ .m-menu--horizontal .m-menu__item--horizontal {
135
+ display: flex;
136
+ align-items: stretch;
137
+ }
138
+
139
+ .m-menu--horizontal .m-popover,
140
+ .m-menu--horizontal .m-menu__collapsed-popover {
141
+ display: flex;
142
+ align-items: stretch;
143
+ height: 100%;
144
+ }
145
+
146
+ .m-menu--horizontal .m-popover__trigger {
147
+ display: flex;
148
+ align-items: stretch;
149
+ height: 100%;
150
+ }
151
+
152
+ .m-menu--horizontal .m-menu__item-content {
153
+ align-items: center;
154
+ border-bottom: none;
155
+ border-radius: var(--m-radius-control);
156
+ font-weight: 500;
157
+ height: var(--m-menu-horizontal-height);
158
+ padding-inline: var(--m-space-3);
159
+ white-space: nowrap;
160
+ }
161
+
162
+ .m-menu--horizontal .m-menu__item-content::before {
163
+ border-radius: var(--m-radius-control);
164
+ display: block;
165
+ inset: 0;
166
+ }
167
+
168
+ .m-menu--horizontal .m-menu__item-content--selected::before,
169
+ .m-menu--horizontal .m-menu__item-content--child-active::before {
170
+ background: var(--m-menu-item-color-active) !important;
171
+ }
172
+
173
+ .m-menu--horizontal .m-menu__item-content--selected,
174
+ .m-menu--horizontal .m-menu__item-content--child-active {
175
+ border-bottom-color: transparent;
176
+ }
177
+
178
+ .m-menu--horizontal .m-menu__item-content--selected .m-menu__label,
179
+ .m-menu--horizontal .m-menu__item-content--child-active .m-menu__label,
180
+ .m-menu--horizontal .m-menu__item-content--selected .m-menu__arrow,
181
+ .m-menu--horizontal .m-menu__item-content--child-active .m-menu__arrow {
182
+ color: var(--m-menu-item-text-active);
183
+ }
184
+
185
+ .m-menu--horizontal .m-menu__arrow {
186
+ margin-inline-start: var(--m-space-1);
187
+ }
188
+
189
+ .m-menu--horizontal .m-menu__submenu {
190
+ display: none;
191
+ }
192
+
193
+ .m-menu--inverted {
194
+ --m-menu-item-color-hover: color-mix(
195
+ in srgb,
196
+ var(--m-color-contrast-fg) 8%,
197
+ transparent
198
+ );
199
+ --m-menu-item-color-active: var(--m-color-primary);
200
+ --m-menu-item-text: color-mix(
201
+ in srgb,
202
+ var(--m-color-contrast-fg) 82%,
203
+ transparent
204
+ );
205
+ --m-menu-item-text-active: var(--m-color-contrast-fg);
206
+ --m-menu-item-text-child-active: var(--m-color-contrast-fg);
207
+ --m-menu-item-icon: color-mix(
208
+ in srgb,
209
+ var(--m-color-contrast-fg) 82%,
210
+ transparent
211
+ );
212
+ --m-menu-item-icon-active: var(--m-color-contrast-fg);
213
+ --m-menu-arrow: color-mix(
214
+ in srgb,
215
+ var(--m-color-contrast-fg) 72%,
216
+ transparent
217
+ );
218
+ }
219
+
220
+ /* —�?Collapsed (icon rail) —�?*/
221
+ .m-menu--collapsed {
222
+ padding: var(--m-space-1) 0;
223
+ }
224
+
225
+ .m-menu--collapsed .m-menu__label,
226
+ .m-menu--collapsed .m-menu__arrow {
227
+ display: none;
228
+ }
229
+
230
+ .m-menu--collapsed .m-menu__item {
231
+ margin-top: var(--m-space-1);
232
+ }
233
+
234
+ .m-menu--collapsed .m-menu__item .m-tooltip,
235
+ .m-menu--collapsed .m-menu__collapsed-popover .m-tooltip {
236
+ display: flex;
237
+ width: 100%;
238
+ }
239
+
240
+ .m-menu--collapsed .m-menu__item-content {
241
+ align-items: center;
242
+ display: flex;
243
+ grid-template-areas: none;
244
+ grid-template-columns: unset;
245
+ height: var(--m-menu-item-height);
246
+ justify-content: center;
247
+ padding-inline: 0 !important;
248
+ width: 100%;
249
+ }
250
+
251
+ .m-menu--collapsed .m-menu__item-content::before {
252
+ inset: 0 var(--m-space-2);
253
+ }
254
+
255
+ .m-menu--collapsed .m-menu__icon {
256
+ height: 1.375rem;
257
+ margin-inline: 0;
258
+ width: 1.375rem;
259
+ }
260
+
261
+ .m-menu--collapsed .m-menu__icon .m-icon {
262
+ height: 1.375rem;
263
+ width: 1.375rem;
264
+ }
265
+
266
+ .m-menu--collapsed .m-menu__item-content--selected::before,
267
+ .m-menu--collapsed .m-menu__item-content--child-active::before {
268
+ background: var(--m-menu-item-color-active) !important;
269
+ }
270
+
271
+ .m-menu__item {
272
+ margin-top: 0.375rem;
273
+ position: relative;
274
+ }
275
+
276
+ .m-menu__item:first-child {
277
+ margin-top: 0;
278
+ }
279
+
280
+ .m-menu__item-content {
281
+ align-items: center;
282
+ border-radius: var(--m-menu-item-radius);
283
+ box-sizing: border-box;
284
+ color: var(--m-menu-item-text);
285
+ cursor: pointer;
286
+ display: grid;
287
+ grid-template-areas: "icon label arrow";
288
+ grid-template-columns: auto minmax(0, 1fr) auto;
289
+ height: var(--m-menu-item-height);
290
+ line-height: 1.75;
291
+ padding-inline-end: 0.75rem;
292
+ position: relative;
293
+ text-decoration: none;
294
+ transition:
295
+ color var(--m-motion-fast) var(--m-motion-ease),
296
+ background-color var(--m-motion-fast) var(--m-motion-ease),
297
+ padding-inline-start var(--m-motion-fast) var(--m-motion-ease);
298
+ }
299
+
300
+ /* RouterLink / <a> must not keep browser link chrome (blue + underline). */
301
+ a.m-menu__item-content,
302
+ a.m-menu__item-content:link,
303
+ a.m-menu__item-content:visited,
304
+ a.m-menu__item-content:hover,
305
+ a.m-menu__item-content:active {
306
+ color: var(--m-menu-item-text);
307
+ text-decoration: none;
308
+ }
309
+
310
+ .m-menu__item-content--no-icon {
311
+ grid-template-areas: "label arrow";
312
+ grid-template-columns: minmax(0, 1fr) auto;
313
+ }
314
+
315
+ .m-menu__item-content::before {
316
+ background: transparent;
317
+ border-radius: var(--m-menu-item-radius);
318
+ content: "";
319
+ inset: 0 0.5rem;
320
+ pointer-events: none;
321
+ position: absolute;
322
+ transition: background-color var(--m-motion-fast) var(--m-motion-ease);
323
+ z-index: 0;
324
+ }
325
+
326
+ .m-menu__item-content > * {
327
+ position: relative;
328
+ z-index: 1;
329
+ }
330
+
331
+ .m-menu__item-content:hover:not(.m-menu__item-content--disabled)::before,
332
+ .m-menu__item-content:focus-visible:not(.m-menu__item-content--disabled)::before,
333
+ .m-menu__item-content--active:not(.m-menu__item-content--disabled)::before {
334
+ background: var(--m-menu-item-color-hover);
335
+ }
336
+
337
+ .m-menu__item-content--selected::before {
338
+ background: var(--m-menu-item-color-active) !important;
339
+ }
340
+
341
+ .m-menu__item-content--selected,
342
+ a.m-menu__item-content--selected,
343
+ a.m-menu__item-content--selected:link,
344
+ a.m-menu__item-content--selected:visited {
345
+ color: var(--m-menu-item-text-active);
346
+ }
347
+
348
+ .m-menu__item-content--selected .m-menu__label,
349
+ .m-menu__item-content--selected .m-menu__icon,
350
+ .m-menu__item-content--selected .m-menu__arrow {
351
+ color: var(--m-menu-item-text-active);
352
+ }
353
+
354
+ .m-menu__item-content--child-active .m-menu__label,
355
+ .m-menu__item-content--child-active .m-menu__icon,
356
+ .m-menu__item-content--child-active .m-menu__arrow {
357
+ color: var(--m-menu-item-text-child-active);
358
+ }
359
+
360
+ .m-menu--inverted .m-menu__item-content--selected::before {
361
+ background: var(--m-menu-item-color-active) !important;
362
+ }
363
+
364
+ .m-menu__item-content--disabled {
365
+ color: var(--m-color-text-disabled);
366
+ cursor: not-allowed;
367
+ opacity: 1;
368
+ }
369
+
370
+ .m-menu__item-content:focus-visible {
371
+ outline: none;
372
+ }
373
+
374
+ .m-menu__item-content:focus-visible::before {
375
+ box-shadow: var(--m-focus-shadow);
376
+ }
377
+
378
+ .m-menu__icon {
379
+ align-items: center;
380
+ color: var(--m-menu-item-icon);
381
+ display: inline-flex;
382
+ flex-shrink: 0;
383
+ grid-area: icon;
384
+ height: 1.25rem;
385
+ justify-content: center;
386
+ margin-inline-end: 0.5rem;
387
+ width: 1.25rem;
388
+ }
389
+
390
+ .m-menu__icon .m-icon {
391
+ height: 1.25rem;
392
+ width: 1.25rem;
393
+ }
394
+
395
+ .m-menu__item-content--selected .m-menu__icon,
396
+ .m-menu__item-content--child-active .m-menu__icon {
397
+ color: var(--m-menu-item-icon-active);
398
+ }
399
+
400
+ .m-menu__label {
401
+ color: inherit;
402
+ grid-area: label;
403
+ min-width: 0;
404
+ overflow: hidden;
405
+ text-overflow: ellipsis;
406
+ white-space: nowrap;
407
+ }
408
+
409
+ .m-menu__arrow {
410
+ align-items: center;
411
+ color: var(--m-menu-arrow);
412
+ display: inline-flex;
413
+ flex-shrink: 0;
414
+ grid-area: arrow;
415
+ height: 1rem;
416
+ justify-content: center;
417
+ margin-inline-start: 0.25rem;
418
+ transition: transform var(--m-motion-fast) var(--m-motion-ease);
419
+ width: 1rem;
420
+ }
421
+
422
+ .m-menu__arrow--expanded {
423
+ transform: rotate(90deg);
424
+ }
425
+
426
+ .m-menu__separator {
427
+ background: var(--m-color-border);
428
+ height: 1px;
429
+ margin: 0.375rem 0.75rem;
430
+ }
431
+
432
+ .m-menu__submenu {
433
+ contain: layout;
434
+ display: grid;
435
+ grid-template-rows: 1fr;
436
+ }
437
+
438
+ .m-menu__submenu-inner {
439
+ min-height: 0;
440
+ overflow: hidden;
441
+ padding-block-start: var(--m-menu-submenu-gap);
442
+ padding-inline-start: var(--m-menu-submenu-inset);
443
+ }
444
+
445
+ .m-menu-expand-enter-active,
446
+ .m-menu-expand-leave-active {
447
+ overflow: hidden;
448
+ transition:
449
+ grid-template-rows var(--m-motion-normal) var(--m-motion-ease),
450
+ opacity var(--m-motion-normal) var(--m-motion-ease);
451
+ }
452
+
453
+ .m-menu-expand-enter-from,
454
+ .m-menu-expand-leave-to {
455
+ grid-template-rows: 0fr;
456
+ opacity: 0;
457
+ }
458
+
459
+ .m-menu-expand-enter-to,
460
+ .m-menu-expand-leave-from {
461
+ grid-template-rows: 1fr;
462
+ opacity: 1;
463
+ }
464
+
465
+ [data-m-motion="reduced"] .m-menu-expand-enter-active,
466
+ [data-m-motion="reduced"] .m-menu-expand-leave-active,
467
+ [data-m-motion="none"] .m-menu-expand-enter-active,
468
+ [data-m-motion="none"] .m-menu-expand-leave-active {
469
+ transition: none;
470
+ }
471
+
472
+ /* Popover flyout: strip outer chrome, menu card provides it */
473
+ .m-popover__trigger {
474
+ display: block;
475
+ width: 100%;
476
+ }
477
+
478
+ .m-menu--collapsed .m-popover {
479
+ display: block;
480
+ width: 100%;
481
+ }
482
+
483
+ .m-popover__content:has(.m-menu--flyout) {
484
+ background: transparent;
485
+ border: 0;
486
+ box-shadow: none;
487
+ min-width: 0;
488
+ overflow: visible;
489
+ padding: 0;
490
+ }
491
+
492
+ .m-popover__content--right:has(.m-menu--flyout),
493
+ .m-popover__content--right-start:has(.m-menu--flyout) {
494
+ left: calc(100% + var(--m-space-2));
495
+ }
496
+
497
+ .m-popover__content--bottom-start:has(.m-menu--flyout) {
498
+ left: 0;
499
+ top: calc(100% + var(--m-space-1));
500
+ }
501
+
502
+ .m-popover__content--teleported:has(.m-menu--flyout) {
503
+ padding: 0;
504
+ }
505
+
506
+ .m-popover__content--right-start:has(.m-menu--flyout).m-scale-fade-enter-from,
507
+ .m-popover__content--right-start:has(.m-menu--flyout).m-scale-fade-leave-to {
508
+ opacity: 0;
509
+ transform: translateX(calc(var(--m-motion-distance) * -0.5)) scale(0.98);
510
+ }
511
+
512
+ .m-popover__content--bottom-start:has(.m-menu--flyout).m-scale-fade-enter-from,
513
+ .m-popover__content--bottom-start:has(.m-menu--flyout).m-scale-fade-leave-to {
514
+ opacity: 0;
515
+ transform: translateY(calc(var(--m-motion-distance) * -0.35)) scale(0.98);
516
+ }
517
+
518
+ .m-menu--flyout .m-menu__item {
519
+ margin-top: var(--m-menu-flyout-gap);
520
+ }
521
+
522
+ .m-menu--flyout .m-menu__item:first-child {
523
+ margin-top: 0;
524
+ }
525
+
526
+ .m-menu--flyout .m-menu__item-content {
527
+ height: var(--m-menu-flyout-item-height);
528
+ padding-inline: var(--m-space-3);
529
+ }
530
+
531
+ .m-menu--flyout .m-menu__item-content::before {
532
+ inset: 0 0.375rem;
533
+ border-radius: calc(var(--m-menu-flyout-radius) - 0.125rem);
534
+ }
535
+
536
+ .m-menu--flyout .m-menu__icon {
537
+ height: 1.125rem;
538
+ margin-inline-end: 0.625rem;
539
+ width: 1.125rem;
540
+ }
541
+
542
+ .m-menu--flyout .m-menu__icon .m-icon {
543
+ height: 1.125rem;
544
+ width: 1.125rem;
545
+ }
546
+
547
+ .m-menu--flyout .m-menu__label {
548
+ font-size: var(--m-font-size-sm);
549
+ font-weight: 500;
550
+ line-height: 1.4;
551
+ }
552
+
553
+ .m-menu--flyout .m-menu__item-content--selected::before {
554
+ background: var(--m-menu-item-color-active) !important;
555
+ }
556
+
557
+ .m-menu--flyout .m-menu__item-content--selected .m-menu__label,
558
+ .m-menu--flyout .m-menu__item-content--selected .m-menu__icon {
559
+ color: var(--m-menu-item-text-active);
560
+ font-weight: 500;
561
+ }
562
+
563
+ .m-menu--flyout .m-menu__separator {
564
+ margin: var(--m-menu-flyout-gap) 0.5rem;
565
+ }