morya-ui 0.3.5 → 0.3.7

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 (259) hide show
  1. package/CHANGELOG.md +573 -523
  2. package/LICENSE +21 -21
  3. package/README.md +150 -150
  4. package/README.zh-CN.md +150 -150
  5. package/dist/Input-DQiiKSm3.js +174 -0
  6. package/dist/accordion/style.css +1146 -1148
  7. package/dist/auto-complete/style.css +1688 -1690
  8. package/dist/avatar/style.css +1259 -1261
  9. package/dist/badge/style.css +1313 -1315
  10. package/dist/block-ui/style.css +1146 -1148
  11. package/dist/breadcrumb/style.css +1146 -1148
  12. package/dist/button/style.css +2136 -2138
  13. package/dist/card/style.css +1146 -1148
  14. package/dist/carousel/style.css +1247 -1249
  15. package/dist/cascade-select/style.css +1837 -1839
  16. package/dist/checkbox/style.css +1146 -1148
  17. package/dist/chip/style.css +1290 -1292
  18. package/dist/command-menu/style.css +1379 -1381
  19. package/dist/component-registry.d.ts.map +1 -1
  20. package/dist/components/AutoComplete/styles.css +209 -209
  21. package/dist/components/Avatar/styles.css +113 -113
  22. package/dist/components/Badge/styles.css +165 -165
  23. package/dist/components/Button/styles.css +962 -962
  24. package/dist/components/Carousel/styles.css +101 -101
  25. package/dist/components/CascadeSelect/styles.css +157 -157
  26. package/dist/components/Chip/styles.css +144 -144
  27. package/dist/components/CommandMenu/styles.css +102 -102
  28. package/dist/components/ConfigProvider/styles.css +6 -6
  29. package/dist/components/ConfirmDialog/styles.css +24 -24
  30. package/dist/components/ConfirmPopup/styles.css +35 -35
  31. package/dist/components/ContextMenu/styles.css +138 -138
  32. package/dist/components/DatePicker/styles.css +335 -335
  33. package/dist/components/Dialog/styles.css +421 -421
  34. package/dist/components/Dock/styles.css +84 -84
  35. package/dist/components/Drawer/Drawer.vue.d.ts +3 -1
  36. package/dist/components/Drawer/Drawer.vue.d.ts.map +1 -1
  37. package/dist/components/Drawer/styles.css +346 -334
  38. package/dist/components/Dropdown/styles.css +130 -130
  39. package/dist/components/Empty/styles.css +146 -146
  40. package/dist/components/FileUpload/styles.css +359 -359
  41. package/dist/components/Form/styles.css +114 -114
  42. package/dist/components/Gallery/styles.css +100 -100
  43. package/dist/components/Input/styles.css +356 -356
  44. package/dist/components/InputColor/styles.css +129 -129
  45. package/dist/components/InputNumber/styles.css +261 -261
  46. package/dist/components/InputPassword/styles.css +178 -178
  47. package/dist/components/InputTags/styles.css +112 -112
  48. package/dist/components/Layout/styles.css +433 -433
  49. package/dist/components/Loading/styles.css +378 -378
  50. package/dist/components/MegaMenu/styles.css +97 -97
  51. package/dist/components/Menu/styles.css +564 -564
  52. package/dist/components/Menubar/styles.css +144 -144
  53. package/dist/components/Message/styles.css +250 -250
  54. package/dist/components/MeterGroup/styles.css +49 -49
  55. package/dist/components/Page/styles.css +430 -430
  56. package/dist/components/Pagination/styles.css +105 -105
  57. package/dist/components/Popover/styles.css +92 -92
  58. package/dist/components/Result/styles.css +146 -146
  59. package/dist/components/Scrollbar/styles.css +131 -131
  60. package/dist/components/Select/styles.css +192 -192
  61. package/dist/components/SelectButton/styles.css +105 -105
  62. package/dist/components/Sidebar/styles.css +74 -74
  63. package/dist/components/Slider/styles.css +211 -211
  64. package/dist/components/SplitButton/styles.css +216 -216
  65. package/dist/components/Status/styles.css +191 -191
  66. package/dist/components/Stepper/styles.css +135 -135
  67. package/dist/components/Switch/styles.css +129 -129
  68. package/dist/components/Table/Table.vue.d.ts +188 -733
  69. package/dist/components/Table/Table.vue.d.ts.map +1 -1
  70. package/dist/components/Table/columns/keys.d.ts +13 -0
  71. package/dist/components/Table/columns/keys.d.ts.map +1 -0
  72. package/dist/components/Table/{hooks → columns}/useFixedColumn.d.ts +1 -1
  73. package/dist/components/Table/columns/useFixedColumn.d.ts.map +1 -0
  74. package/dist/components/Table/columns/useHeaders.d.ts +37 -0
  75. package/dist/components/Table/columns/useHeaders.d.ts.map +1 -0
  76. package/dist/components/Table/core/layout.d.ts +26 -0
  77. package/dist/components/Table/core/layout.d.ts.map +1 -0
  78. package/dist/components/Table/core/normalize.d.ts +30 -0
  79. package/dist/components/Table/core/normalize.d.ts.map +1 -0
  80. package/dist/components/Table/{tableQuery.d.ts → core/tableQuery.d.ts} +3 -2
  81. package/dist/components/Table/core/tableQuery.d.ts.map +1 -0
  82. package/dist/components/Table/core/tree.d.ts +31 -0
  83. package/dist/components/Table/core/tree.d.ts.map +1 -0
  84. package/dist/components/Table/core/treeSelection.d.ts +35 -0
  85. package/dist/components/Table/core/treeSelection.d.ts.map +1 -0
  86. package/dist/components/Table/core/utils.d.ts +15 -0
  87. package/dist/components/Table/core/utils.d.ts.map +1 -0
  88. package/dist/components/Table/hooks/index.d.ts +14 -10
  89. package/dist/components/Table/hooks/index.d.ts.map +1 -1
  90. package/dist/components/Table/index.d.ts +1 -1
  91. package/dist/components/Table/index.d.ts.map +1 -1
  92. package/dist/components/Table/render/TableDefaultCell.vue.d.ts +11 -0
  93. package/dist/components/Table/render/TableDefaultCell.vue.d.ts.map +1 -0
  94. package/dist/components/Table/render/TableHeaderFilter.vue.d.ts +20 -0
  95. package/dist/components/Table/render/TableHeaderFilter.vue.d.ts.map +1 -0
  96. package/dist/components/Table/render/TableLoadingLine.vue.d.ts.map +1 -0
  97. package/dist/components/Table/render/TableTbody.vue.d.ts +154 -0
  98. package/dist/components/Table/render/TableTbody.vue.d.ts.map +1 -0
  99. package/dist/components/Table/render/TableThead.vue.d.ts +76 -0
  100. package/dist/components/Table/render/TableThead.vue.d.ts.map +1 -0
  101. package/dist/components/Table/{hooks → state}/internal.d.ts +8 -2
  102. package/dist/components/Table/state/internal.d.ts.map +1 -0
  103. package/dist/components/Table/state/useClickRow.d.ts +7 -0
  104. package/dist/components/Table/state/useClickRow.d.ts.map +1 -0
  105. package/dist/components/Table/state/useColumnResize.d.ts +11 -0
  106. package/dist/components/Table/state/useColumnResize.d.ts.map +1 -0
  107. package/dist/components/Table/state/useExpandableRow.d.ts +25 -0
  108. package/dist/components/Table/state/useExpandableRow.d.ts.map +1 -0
  109. package/dist/components/Table/state/usePageItems.d.ts +15 -0
  110. package/dist/components/Table/state/usePageItems.d.ts.map +1 -0
  111. package/dist/components/Table/{hooks → state}/usePagination.d.ts.map +1 -1
  112. package/dist/components/Table/{hooks → state}/useRows.d.ts +2 -2
  113. package/dist/components/Table/{hooks → state}/useRows.d.ts.map +1 -1
  114. package/dist/components/Table/state/useServerOptions.d.ts.map +1 -0
  115. package/dist/components/Table/{hooks → state}/useTotalItems.d.ts +2 -2
  116. package/dist/components/Table/{hooks → state}/useTotalItems.d.ts.map +1 -1
  117. package/dist/components/Table/state/useTreeRows.d.ts +21 -0
  118. package/dist/components/Table/state/useTreeRows.d.ts.map +1 -0
  119. package/dist/components/Table/state/useVirtualRows.d.ts +23 -0
  120. package/dist/components/Table/state/useVirtualRows.d.ts.map +1 -0
  121. package/dist/components/Table/styles.css +182 -6
  122. package/dist/components/Table/types.d.ts +108 -25
  123. package/dist/components/Table/types.d.ts.map +1 -1
  124. package/dist/components/Tabs/styles.css +131 -131
  125. package/dist/components/Terminal/styles.css +74 -74
  126. package/dist/components/Textarea/styles.css +126 -126
  127. package/dist/components/TieredMenu/styles.css +125 -125
  128. package/dist/components/Timeline/styles.css +159 -159
  129. package/dist/components/Tree/Tree.vue.d.ts +2 -2
  130. package/dist/components/TreeSelect/TreeSelect.vue.d.ts +1 -1
  131. package/dist/components/TreeSelect/styles.css +161 -161
  132. package/dist/components/VirtualScroller/styles.css +27 -27
  133. package/dist/config-provider/style.css +2470 -2472
  134. package/dist/confirm-dialog/style.css +2553 -2555
  135. package/dist/confirm-popup/style.css +2143 -2145
  136. package/dist/context-menu/style.css +1415 -1417
  137. package/dist/data-view/style.css +1629 -1631
  138. package/dist/date-picker/style.css +1481 -1483
  139. package/dist/dialog/style.css +2529 -2531
  140. package/dist/divider/style.css +1146 -1148
  141. package/dist/dock/style.css +1230 -1232
  142. package/dist/drawer/index.js +57 -50
  143. package/dist/drawer/style.css +1492 -1482
  144. package/dist/dropdown/style.css +1407 -1409
  145. package/dist/empty/style.css +1292 -1294
  146. package/dist/fieldset/style.css +1146 -1148
  147. package/dist/file-upload/style.css +1505 -1507
  148. package/dist/flex/style.css +1146 -1148
  149. package/dist/float-label/style.css +1146 -1148
  150. package/dist/fluid/style.css +1146 -1148
  151. package/dist/form/style.css +1262 -1264
  152. package/dist/gallery/style.css +1377 -1379
  153. package/dist/grid/style.css +1146 -1148
  154. package/dist/icon/style.css +1146 -1148
  155. package/dist/icon-field/style.css +1502 -1504
  156. package/dist/index.d.ts +1 -3
  157. package/dist/index.d.ts.map +1 -1
  158. package/dist/index.js +4899 -3591
  159. package/dist/inplace/style.css +1146 -1148
  160. package/dist/input/index.js +2 -174
  161. package/dist/input/style.css +1502 -1504
  162. package/dist/input-color/style.css +1277 -1279
  163. package/dist/input-group/style.css +1146 -1148
  164. package/dist/input-number/style.css +1407 -1409
  165. package/dist/input-otp/style.css +1146 -1148
  166. package/dist/input-password/style.css +1324 -1326
  167. package/dist/input-tags/style.css +1258 -1260
  168. package/dist/knob/style.css +1146 -1148
  169. package/dist/label/style.css +1146 -1148
  170. package/dist/layout/style.css +1710 -1712
  171. package/dist/listbox/style.css +1304 -1306
  172. package/dist/loading/style.css +1526 -1528
  173. package/dist/mega-menu/style.css +1243 -1245
  174. package/dist/menu/style.css +1999 -2001
  175. package/dist/menubar/style.css +1421 -1423
  176. package/dist/message/style.css +1396 -1398
  177. package/dist/meter-group/style.css +1197 -1199
  178. package/dist/order-list/style.css +1146 -1148
  179. package/dist/page/style.css +2802 -2804
  180. package/dist/pagination/style.css +1443 -1445
  181. package/dist/panel/style.css +1146 -1148
  182. package/dist/pick-list/style.css +1146 -1148
  183. package/dist/popover/style.css +1240 -1242
  184. package/dist/progress-bar/style.css +1146 -1148
  185. package/dist/progress-spinner/style.css +1146 -1148
  186. package/dist/radio/style.css +1146 -1148
  187. package/dist/rating/style.css +1146 -1148
  188. package/dist/resolver-map.d.ts.map +1 -1
  189. package/dist/resolver.js +0 -1
  190. package/dist/result/style.css +1292 -1294
  191. package/dist/scroll-top/style.css +1277 -1279
  192. package/dist/scrollbar/style.css +1279 -1281
  193. package/dist/select/style.css +1899 -1901
  194. package/dist/select-button/style.css +1253 -1255
  195. package/dist/shared/styles/control-affix-icon.css +110 -110
  196. package/dist/shared/styles/control-suffix.css +118 -118
  197. package/dist/shared/styles/select-overlay.css +175 -175
  198. package/dist/sidebar/style.css +1220 -1222
  199. package/dist/skeleton/style.css +1146 -1148
  200. package/dist/slider/style.css +1359 -1361
  201. package/dist/space/style.css +1146 -1148
  202. package/dist/speed-dial/style.css +1146 -1148
  203. package/dist/split-button/style.css +2324 -2326
  204. package/dist/splitter/style.css +1146 -1148
  205. package/dist/status/style.css +1337 -1339
  206. package/dist/stepper/style.css +1281 -1283
  207. package/dist/styles/base.css +788 -790
  208. package/dist/styles.css +1 -1
  209. package/dist/switch/style.css +1277 -1279
  210. package/dist/table/index.js +2027 -601
  211. package/dist/table/style.css +1940 -1917
  212. package/dist/table/style.js +0 -4
  213. package/dist/tabs/style.css +1408 -1410
  214. package/dist/tag/style.css +1146 -1148
  215. package/dist/terminal/style.css +1222 -1224
  216. package/dist/textarea/style.css +1272 -1274
  217. package/dist/theme/styles.css +358 -358
  218. package/dist/tiered-menu/style.css +1402 -1404
  219. package/dist/timeline/style.css +1436 -1438
  220. package/dist/toast/style.css +1146 -1148
  221. package/dist/toggle-button/style.css +1146 -1148
  222. package/dist/toolbar/style.css +1146 -1148
  223. package/dist/tooltip/style.css +1146 -1148
  224. package/dist/tree/style.css +1146 -1148
  225. package/dist/tree-select/style.css +1841 -1843
  226. package/dist/virtual-scroller/style.css +1307 -1309
  227. package/package.json +1 -8
  228. package/dist/components/Table/TableLoadingLine.vue.d.ts.map +0 -1
  229. package/dist/components/Table/hooks/internal.d.ts.map +0 -1
  230. package/dist/components/Table/hooks/useClickRow.d.ts +0 -7
  231. package/dist/components/Table/hooks/useClickRow.d.ts.map +0 -1
  232. package/dist/components/Table/hooks/useExpandableRow.d.ts +0 -9
  233. package/dist/components/Table/hooks/useExpandableRow.d.ts.map +0 -1
  234. package/dist/components/Table/hooks/useFixedColumn.d.ts.map +0 -1
  235. package/dist/components/Table/hooks/useHeaders.d.ts +0 -14
  236. package/dist/components/Table/hooks/useHeaders.d.ts.map +0 -1
  237. package/dist/components/Table/hooks/usePageItems.d.ts +0 -17
  238. package/dist/components/Table/hooks/usePageItems.d.ts.map +0 -1
  239. package/dist/components/Table/hooks/useServerOptions.d.ts.map +0 -1
  240. package/dist/components/Table/normalize.d.ts +0 -9
  241. package/dist/components/Table/normalize.d.ts.map +0 -1
  242. package/dist/components/Table/tableQuery.d.ts.map +0 -1
  243. package/dist/components/Table/utils.d.ts +0 -10
  244. package/dist/components/Table/utils.d.ts.map +0 -1
  245. package/dist/components/TreeTable/TreeTable.vue.d.ts +0 -24
  246. package/dist/components/TreeTable/TreeTable.vue.d.ts.map +0 -1
  247. package/dist/components/TreeTable/TreeTableRow.vue.d.ts +0 -17
  248. package/dist/components/TreeTable/TreeTableRow.vue.d.ts.map +0 -1
  249. package/dist/components/TreeTable/index.d.ts +0 -3
  250. package/dist/components/TreeTable/index.d.ts.map +0 -1
  251. package/dist/components/TreeTable/styles.css +0 -97
  252. package/dist/components/TreeTable/types.d.ts +0 -25
  253. package/dist/components/TreeTable/types.d.ts.map +0 -1
  254. package/dist/tree-table/index.js +0 -128
  255. package/dist/tree-table/style.css +0 -1296
  256. package/dist/tree-table/style.js +0 -4
  257. /package/dist/components/Table/{TableLoadingLine.vue.d.ts → render/TableLoadingLine.vue.d.ts} +0 -0
  258. /package/dist/components/Table/{hooks → state}/usePagination.d.ts +0 -0
  259. /package/dist/components/Table/{hooks → state}/useServerOptions.d.ts +0 -0
@@ -1,216 +1,216 @@
1
- /* —— Primitive: SplitButton —— */
2
- .m-splitbutton {
3
- --m-button-padding-x-medium: calc(
4
- var(--m-control-padding-x-medium) + var(--m-space-1)
5
- );
6
- --m-splitbutton-icon-size: 1rem;
7
- display: inline-flex;
8
- position: relative;
9
- vertical-align: middle;
10
- }
11
-
12
- .m-splitbutton__main,
13
- .m-splitbutton__trigger {
14
- align-items: center;
15
- background: var(--m-color-primary);
16
- border: var(--m-border-width) solid var(--m-color-primary);
17
- color: var(--m-color-on-emphasis);
18
- cursor: pointer;
19
- display: inline-flex;
20
- font: inherit;
21
- font-family: var(--m-font-sans);
22
- font-size: var(--m-control-font-medium);
23
- font-weight: 600;
24
- gap: var(--m-space-2);
25
- min-height: var(--m-control-height-medium);
26
- padding: 0 var(--m-button-padding-x-medium);
27
- transition:
28
- background-color var(--m-motion-fast) var(--m-motion-ease),
29
- border-color var(--m-motion-fast) var(--m-motion-ease),
30
- color var(--m-motion-fast) var(--m-motion-ease),
31
- box-shadow var(--m-motion-fast) var(--m-motion-ease);
32
- }
33
-
34
- .m-splitbutton__main {
35
- border-bottom-left-radius: var(--m-radius-control);
36
- border-top-left-radius: var(--m-radius-control);
37
- }
38
-
39
- .m-splitbutton__trigger {
40
- border-bottom-right-radius: var(--m-radius-control);
41
- border-left: var(--m-border-width) solid
42
- color-mix(
43
- in srgb,
44
- var(--m-color-on-emphasis) 35%,
45
- var(--m-color-primary)
46
- );
47
- border-top-right-radius: var(--m-radius-control);
48
- padding: 0 var(--m-control-padding-x-medium);
49
- }
50
-
51
- .m-splitbutton__main:hover:not(:disabled),
52
- .m-splitbutton__trigger:hover:not(:disabled) {
53
- background: var(--m-color-primary-hover);
54
- border-color: var(--m-color-primary-hover);
55
- }
56
-
57
- .m-splitbutton--outlined .m-splitbutton__main:hover:not(:disabled),
58
- .m-splitbutton--outlined .m-splitbutton__trigger:hover:not(:disabled) {
59
- background: color-mix(
60
- in srgb,
61
- var(--m-color-primary) 10%,
62
- transparent
63
- );
64
- border-color: var(--m-color-primary);
65
- }
66
-
67
- .m-splitbutton--secondary .m-splitbutton__main:hover:not(:disabled),
68
- .m-splitbutton--secondary .m-splitbutton__trigger:hover:not(:disabled) {
69
- background: color-mix(
70
- in srgb,
71
- var(--m-color-text-muted) 24%,
72
- var(--m-color-surface)
73
- );
74
- border-color: var(--m-color-border);
75
- }
76
-
77
- .m-splitbutton--danger .m-splitbutton__main:hover:not(:disabled),
78
- .m-splitbutton--danger .m-splitbutton__trigger:hover:not(:disabled) {
79
- background: color-mix(in srgb, var(--m-color-danger) 85%, black);
80
- border-color: color-mix(in srgb, var(--m-color-danger) 85%, black);
81
- }
82
-
83
- .m-splitbutton__main:focus-visible,
84
- .m-splitbutton__trigger:focus-visible {
85
- box-shadow: var(--m-focus-shadow);
86
- outline: none;
87
- }
88
-
89
- .m-splitbutton--outlined .m-splitbutton__main,
90
- .m-splitbutton--outlined .m-splitbutton__trigger {
91
- background: transparent;
92
- color: var(--m-color-primary);
93
- }
94
-
95
- .m-splitbutton--outlined .m-splitbutton__trigger {
96
- border-left-color: var(--m-color-primary);
97
- }
98
-
99
- .m-splitbutton--secondary .m-splitbutton__main,
100
- .m-splitbutton--secondary .m-splitbutton__trigger {
101
- background: color-mix(
102
- in srgb,
103
- var(--m-color-text-muted) 16%,
104
- var(--m-color-surface)
105
- );
106
- border-color: var(--m-color-border);
107
- color: var(--m-color-text);
108
- }
109
-
110
- .m-splitbutton--danger .m-splitbutton__main,
111
- .m-splitbutton--danger .m-splitbutton__trigger {
112
- background: var(--m-color-danger);
113
- border-color: var(--m-color-danger);
114
- }
115
-
116
- .m-splitbutton--small .m-splitbutton__main,
117
- .m-splitbutton--small .m-splitbutton__trigger {
118
- --m-splitbutton-icon-size: 0.875rem;
119
- min-height: var(--m-control-height-small);
120
- font-size: var(--m-control-font-small);
121
- }
122
-
123
- .m-splitbutton--large .m-splitbutton__main,
124
- .m-splitbutton--large .m-splitbutton__trigger {
125
- --m-splitbutton-icon-size: 1.125rem;
126
- min-height: var(--m-control-height-large);
127
- font-size: var(--m-control-font-large);
128
- }
129
-
130
- .m-splitbutton__icon {
131
- align-items: center;
132
- display: inline-flex;
133
- flex-shrink: 0;
134
- height: var(--m-splitbutton-icon-size);
135
- justify-content: center;
136
- line-height: 0;
137
- width: var(--m-splitbutton-icon-size);
138
- }
139
-
140
- .m-splitbutton__icon :is(.m-icon, svg) {
141
- display: block;
142
- height: 100%;
143
- width: 100%;
144
- }
145
-
146
- .m-splitbutton__trigger :is(.m-icon, svg) {
147
- display: block;
148
- height: var(--m-splitbutton-icon-size);
149
- width: var(--m-splitbutton-icon-size);
150
- }
151
-
152
- .m-splitbutton--disabled {
153
- cursor: not-allowed;
154
- opacity: var(--m-opacity-disabled);
155
- pointer-events: none;
156
- }
157
-
158
- .m-splitbutton__item:focus-visible {
159
- box-shadow: var(--m-focus-shadow);
160
- outline: none;
161
- }
162
-
163
- .m-splitbutton__menu {
164
- background: var(--m-color-surface);
165
- border: var(--m-border-width) solid var(--m-color-border);
166
- border-radius: var(--m-radius-md);
167
- box-shadow: var(--m-shadow-md);
168
- list-style: none;
169
- margin: var(--m-space-1) 0 0;
170
- max-width: calc(100vw - 2 * var(--m-space-4));
171
- min-width: 100%;
172
- padding: var(--m-space-1);
173
- position: absolute;
174
- right: 0;
175
- top: 100%;
176
- transform-origin: top right;
177
- /* Grow with the content: shrink-to-fit would clamp to the button width
178
- (the containing block) when not teleported. Teleported mode overrides
179
- min-width with the inline button width. */
180
- width: max-content;
181
- z-index: var(--m-z-popper);
182
- }
183
-
184
- .m-splitbutton__menu--teleported {
185
- margin: 0;
186
- position: fixed;
187
- right: auto;
188
- top: auto;
189
- z-index: var(--m-z-dropdown);
190
- }
191
-
192
- .m-splitbutton__item {
193
- background: transparent;
194
- border: 0;
195
- border-radius: var(--m-radius-sm);
196
- color: var(--m-color-text);
197
- cursor: pointer;
198
- display: block;
199
- font: inherit;
200
- padding: var(--m-space-2) var(--m-space-3);
201
- text-align: start;
202
- width: 100%;
203
- }
204
-
205
- .m-splitbutton__item:hover:not(:disabled) {
206
- background: color-mix(
207
- in srgb,
208
- var(--m-color-primary) 10%,
209
- var(--m-color-surface)
210
- );
211
- }
212
-
213
- .m-splitbutton__item:disabled {
214
- cursor: not-allowed;
215
- opacity: var(--m-opacity-disabled);
216
- }
1
+ /* —— Primitive: SplitButton —— */
2
+ .m-splitbutton {
3
+ --m-button-padding-x-medium: calc(
4
+ var(--m-control-padding-x-medium) + var(--m-space-1)
5
+ );
6
+ --m-splitbutton-icon-size: 1rem;
7
+ display: inline-flex;
8
+ position: relative;
9
+ vertical-align: middle;
10
+ }
11
+
12
+ .m-splitbutton__main,
13
+ .m-splitbutton__trigger {
14
+ align-items: center;
15
+ background: var(--m-color-primary);
16
+ border: var(--m-border-width) solid var(--m-color-primary);
17
+ color: var(--m-color-on-emphasis);
18
+ cursor: pointer;
19
+ display: inline-flex;
20
+ font: inherit;
21
+ font-family: var(--m-font-sans);
22
+ font-size: var(--m-control-font-medium);
23
+ font-weight: 600;
24
+ gap: var(--m-space-2);
25
+ min-height: var(--m-control-height-medium);
26
+ padding: 0 var(--m-button-padding-x-medium);
27
+ transition:
28
+ background-color var(--m-motion-fast) var(--m-motion-ease),
29
+ border-color var(--m-motion-fast) var(--m-motion-ease),
30
+ color var(--m-motion-fast) var(--m-motion-ease),
31
+ box-shadow var(--m-motion-fast) var(--m-motion-ease);
32
+ }
33
+
34
+ .m-splitbutton__main {
35
+ border-bottom-left-radius: var(--m-radius-control);
36
+ border-top-left-radius: var(--m-radius-control);
37
+ }
38
+
39
+ .m-splitbutton__trigger {
40
+ border-bottom-right-radius: var(--m-radius-control);
41
+ border-left: var(--m-border-width) solid
42
+ color-mix(
43
+ in srgb,
44
+ var(--m-color-on-emphasis) 35%,
45
+ var(--m-color-primary)
46
+ );
47
+ border-top-right-radius: var(--m-radius-control);
48
+ padding: 0 var(--m-control-padding-x-medium);
49
+ }
50
+
51
+ .m-splitbutton__main:hover:not(:disabled),
52
+ .m-splitbutton__trigger:hover:not(:disabled) {
53
+ background: var(--m-color-primary-hover);
54
+ border-color: var(--m-color-primary-hover);
55
+ }
56
+
57
+ .m-splitbutton--outlined .m-splitbutton__main:hover:not(:disabled),
58
+ .m-splitbutton--outlined .m-splitbutton__trigger:hover:not(:disabled) {
59
+ background: color-mix(
60
+ in srgb,
61
+ var(--m-color-primary) 10%,
62
+ transparent
63
+ );
64
+ border-color: var(--m-color-primary);
65
+ }
66
+
67
+ .m-splitbutton--secondary .m-splitbutton__main:hover:not(:disabled),
68
+ .m-splitbutton--secondary .m-splitbutton__trigger:hover:not(:disabled) {
69
+ background: color-mix(
70
+ in srgb,
71
+ var(--m-color-text-muted) 24%,
72
+ var(--m-color-surface)
73
+ );
74
+ border-color: var(--m-color-border);
75
+ }
76
+
77
+ .m-splitbutton--danger .m-splitbutton__main:hover:not(:disabled),
78
+ .m-splitbutton--danger .m-splitbutton__trigger:hover:not(:disabled) {
79
+ background: color-mix(in srgb, var(--m-color-danger) 85%, black);
80
+ border-color: color-mix(in srgb, var(--m-color-danger) 85%, black);
81
+ }
82
+
83
+ .m-splitbutton__main:focus-visible,
84
+ .m-splitbutton__trigger:focus-visible {
85
+ box-shadow: var(--m-focus-shadow);
86
+ outline: none;
87
+ }
88
+
89
+ .m-splitbutton--outlined .m-splitbutton__main,
90
+ .m-splitbutton--outlined .m-splitbutton__trigger {
91
+ background: transparent;
92
+ color: var(--m-color-primary);
93
+ }
94
+
95
+ .m-splitbutton--outlined .m-splitbutton__trigger {
96
+ border-left-color: var(--m-color-primary);
97
+ }
98
+
99
+ .m-splitbutton--secondary .m-splitbutton__main,
100
+ .m-splitbutton--secondary .m-splitbutton__trigger {
101
+ background: color-mix(
102
+ in srgb,
103
+ var(--m-color-text-muted) 16%,
104
+ var(--m-color-surface)
105
+ );
106
+ border-color: var(--m-color-border);
107
+ color: var(--m-color-text);
108
+ }
109
+
110
+ .m-splitbutton--danger .m-splitbutton__main,
111
+ .m-splitbutton--danger .m-splitbutton__trigger {
112
+ background: var(--m-color-danger);
113
+ border-color: var(--m-color-danger);
114
+ }
115
+
116
+ .m-splitbutton--small .m-splitbutton__main,
117
+ .m-splitbutton--small .m-splitbutton__trigger {
118
+ --m-splitbutton-icon-size: 0.875rem;
119
+ min-height: var(--m-control-height-small);
120
+ font-size: var(--m-control-font-small);
121
+ }
122
+
123
+ .m-splitbutton--large .m-splitbutton__main,
124
+ .m-splitbutton--large .m-splitbutton__trigger {
125
+ --m-splitbutton-icon-size: 1.125rem;
126
+ min-height: var(--m-control-height-large);
127
+ font-size: var(--m-control-font-large);
128
+ }
129
+
130
+ .m-splitbutton__icon {
131
+ align-items: center;
132
+ display: inline-flex;
133
+ flex-shrink: 0;
134
+ height: var(--m-splitbutton-icon-size);
135
+ justify-content: center;
136
+ line-height: 0;
137
+ width: var(--m-splitbutton-icon-size);
138
+ }
139
+
140
+ .m-splitbutton__icon :is(.m-icon, svg) {
141
+ display: block;
142
+ height: 100%;
143
+ width: 100%;
144
+ }
145
+
146
+ .m-splitbutton__trigger :is(.m-icon, svg) {
147
+ display: block;
148
+ height: var(--m-splitbutton-icon-size);
149
+ width: var(--m-splitbutton-icon-size);
150
+ }
151
+
152
+ .m-splitbutton--disabled {
153
+ cursor: not-allowed;
154
+ opacity: var(--m-opacity-disabled);
155
+ pointer-events: none;
156
+ }
157
+
158
+ .m-splitbutton__item:focus-visible {
159
+ box-shadow: var(--m-focus-shadow);
160
+ outline: none;
161
+ }
162
+
163
+ .m-splitbutton__menu {
164
+ background: var(--m-color-surface);
165
+ border: var(--m-border-width) solid var(--m-color-border);
166
+ border-radius: var(--m-radius-md);
167
+ box-shadow: var(--m-shadow-md);
168
+ list-style: none;
169
+ margin: var(--m-space-1) 0 0;
170
+ max-width: calc(100vw - 2 * var(--m-space-4));
171
+ min-width: 100%;
172
+ padding: var(--m-space-1);
173
+ position: absolute;
174
+ right: 0;
175
+ top: 100%;
176
+ transform-origin: top right;
177
+ /* Grow with the content: shrink-to-fit would clamp to the button width
178
+ (the containing block) when not teleported. Teleported mode overrides
179
+ min-width with the inline button width. */
180
+ width: max-content;
181
+ z-index: var(--m-z-popper);
182
+ }
183
+
184
+ .m-splitbutton__menu--teleported {
185
+ margin: 0;
186
+ position: fixed;
187
+ right: auto;
188
+ top: auto;
189
+ z-index: var(--m-z-dropdown);
190
+ }
191
+
192
+ .m-splitbutton__item {
193
+ background: transparent;
194
+ border: 0;
195
+ border-radius: var(--m-radius-sm);
196
+ color: var(--m-color-text);
197
+ cursor: pointer;
198
+ display: block;
199
+ font: inherit;
200
+ padding: var(--m-space-2) var(--m-space-3);
201
+ text-align: start;
202
+ width: 100%;
203
+ }
204
+
205
+ .m-splitbutton__item:hover:not(:disabled) {
206
+ background: color-mix(
207
+ in srgb,
208
+ var(--m-color-primary) 10%,
209
+ var(--m-color-surface)
210
+ );
211
+ }
212
+
213
+ .m-splitbutton__item:disabled {
214
+ cursor: not-allowed;
215
+ opacity: var(--m-opacity-disabled);
216
+ }