morya-ui 0.4.4 → 0.5.0

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 (344) hide show
  1. package/CHANGELOG.md +828 -775
  2. package/LICENSE +21 -21
  3. package/README.md +156 -156
  4. package/README.zh-CN.md +156 -156
  5. package/dist/{Button-Bjsth0ct.js → Button-fKkfCnYv.js} +1 -1
  6. package/dist/{Checkbox-Bo26OGHP.js → Checkbox-BXC2mLNd.js} +1 -1
  7. package/dist/DatePicker-DcVjiS5d.js +848 -0
  8. package/dist/{Empty-rMhOPi79.js → Empty-By1qe-ew.js} +1 -1
  9. package/dist/{FlyoutSubmenu-C0id6-Sb.js → FlyoutSubmenu-C1n-fr6i.js} +1 -1
  10. package/dist/{Input-CxSTVp9E.js → Input-D2bee2LU.js} +2 -2
  11. package/dist/InputNumber-DjbXtTzR.js +245 -0
  12. package/dist/{Loading-D_qRwfKv.js → Loading-DE9Iaiao.js} +3 -3
  13. package/dist/Pagination-DpNOb0CS.js +178 -0
  14. package/dist/{Popover-D1uZ1N9Z.js → Popover-Bnz7KNZq.js} +2 -2
  15. package/dist/{ProgressSpinner-hmR23xpi.js → ProgressSpinner-vBXGvQ92.js} +1 -1
  16. package/dist/{Radio-CZAyelC_.js → Radio-BbznzRbr.js} +1 -1
  17. package/dist/{Segmented-BpdO7arR.js → Segmented-CMP3nBAP.js} +1 -1
  18. package/dist/{Select-CySmusHs.js → Select-q4X2ff_M.js} +3 -3
  19. package/dist/{Textarea-DskjTCcz.js → Textarea-DsFOAtPd.js} +2 -2
  20. package/dist/{Tooltip-DSfkflHp.js → Tooltip-5zRVTTVs.js} +2 -2
  21. package/dist/accordion/style.css +1197 -1205
  22. package/dist/affix/style.css +1197 -1205
  23. package/dist/alert/index.js +2 -2
  24. package/dist/alert/style.css +1197 -1205
  25. package/dist/anchor/style.css +1197 -1205
  26. package/dist/auto-complete/index.js +3 -3
  27. package/dist/auto-complete/style.css +1741 -1749
  28. package/dist/avatar/style.css +1310 -1318
  29. package/dist/badge/style.css +1363 -1371
  30. package/dist/block-ui/index.js +1 -1
  31. package/dist/block-ui/style.css +1197 -1205
  32. package/dist/breadcrumb/index.js +1 -1
  33. package/dist/breadcrumb/style.css +1197 -1205
  34. package/dist/button/index.js +1 -1
  35. package/dist/button/style.css +1901 -1909
  36. package/dist/calendar/index.js +3 -3
  37. package/dist/calendar/style.css +2072 -1880
  38. package/dist/card/style.css +1197 -1205
  39. package/dist/carousel/index.js +2 -2
  40. package/dist/carousel/style.css +2200 -2208
  41. package/dist/cascade-select/index.js +3 -3
  42. package/dist/cascade-select/style.css +1901 -1909
  43. package/dist/checkbox/index.js +1 -1
  44. package/dist/checkbox/style.css +1197 -1205
  45. package/dist/chip/index.js +1 -1
  46. package/dist/chip/style.css +1341 -1349
  47. package/dist/color-picker/index.js +676 -0
  48. package/dist/{input-color → color-picker}/style.css +2613 -1289
  49. package/dist/color-picker/style.js +8 -0
  50. package/dist/command-menu/index.js +3 -3
  51. package/dist/command-menu/style.css +1430 -1438
  52. package/dist/components/AutoComplete/styles.css +209 -209
  53. package/dist/components/Avatar/styles.css +113 -113
  54. package/dist/components/Badge/styles.css +164 -164
  55. package/dist/components/Button/styles.css +698 -698
  56. package/dist/components/Carousel/styles.css +302 -302
  57. package/dist/components/CascadeSelect/styles.css +168 -168
  58. package/dist/components/Chip/styles.css +144 -144
  59. package/dist/components/ColorPicker/ColorPicker.vue.d.ts +41 -0
  60. package/dist/components/ColorPicker/ColorPicker.vue.d.ts.map +1 -0
  61. package/dist/components/ColorPicker/colorUtils.d.ts +23 -0
  62. package/dist/components/ColorPicker/colorUtils.d.ts.map +1 -0
  63. package/dist/components/ColorPicker/gradientUtils.d.ts +9 -0
  64. package/dist/components/ColorPicker/gradientUtils.d.ts.map +1 -0
  65. package/dist/components/ColorPicker/index.d.ts +3 -0
  66. package/dist/components/ColorPicker/index.d.ts.map +1 -0
  67. package/dist/components/ColorPicker/styles.css +405 -0
  68. package/dist/components/ColorPicker/types.d.ts +60 -0
  69. package/dist/components/ColorPicker/types.d.ts.map +1 -0
  70. package/dist/components/CommandMenu/styles.css +102 -102
  71. package/dist/components/ConfigProvider/styles.css +6 -6
  72. package/dist/components/ConfirmDialog/styles.css +24 -24
  73. package/dist/components/ConfirmPopup/styles.css +35 -35
  74. package/dist/components/ContextMenu/styles.css +138 -138
  75. package/dist/components/DatePicker/DatePicker.vue.d.ts +21 -0
  76. package/dist/components/DatePicker/DatePicker.vue.d.ts.map +1 -1
  77. package/dist/components/DatePicker/styles.css +653 -453
  78. package/dist/components/DatePicker/types.d.ts +20 -2
  79. package/dist/components/DatePicker/types.d.ts.map +1 -1
  80. package/dist/components/Dialog/styles.css +420 -420
  81. package/dist/components/Dock/styles.css +84 -84
  82. package/dist/components/Drawer/styles.css +346 -346
  83. package/dist/components/Dropdown/styles.css +135 -135
  84. package/dist/components/Empty/styles.css +146 -146
  85. package/dist/components/FileUpload/styles.css +359 -359
  86. package/dist/components/Form/Form.vue.d.ts.map +1 -1
  87. package/dist/components/Form/styles.css +125 -125
  88. package/dist/components/Gallery/styles.css +100 -100
  89. package/dist/components/Input/styles.css +392 -392
  90. package/dist/components/InputNumber/styles.css +280 -262
  91. package/dist/components/InputPassword/styles.css +189 -189
  92. package/dist/components/InputTags/styles.css +121 -121
  93. package/dist/components/Layout/styles.css +433 -433
  94. package/dist/components/List/styles.css +229 -229
  95. package/dist/components/Listbox/styles.css +130 -130
  96. package/dist/components/Loading/styles.css +378 -378
  97. package/dist/components/MegaMenu/styles.css +97 -97
  98. package/dist/components/Menu/styles.css +565 -565
  99. package/dist/components/Menubar/styles.css +144 -144
  100. package/dist/components/Message/styles.css +248 -248
  101. package/dist/components/MeterGroup/styles.css +49 -49
  102. package/dist/components/OrderList/OrderList.vue.d.ts +13 -7
  103. package/dist/components/OrderList/OrderList.vue.d.ts.map +1 -1
  104. package/dist/components/OrderList/styles.css +80 -7
  105. package/dist/components/OrderList/types.d.ts +20 -3
  106. package/dist/components/OrderList/types.d.ts.map +1 -1
  107. package/dist/components/Page/styles.css +430 -430
  108. package/dist/components/Pagination/Pagination.vue.d.ts.map +1 -1
  109. package/dist/components/Pagination/styles.css +97 -124
  110. package/dist/components/Popover/styles.css +92 -92
  111. package/dist/components/Result/styles.css +146 -146
  112. package/dist/components/Scrollbar/styles.css +131 -131
  113. package/dist/components/Select/styles.css +222 -222
  114. package/dist/components/SelectButton/styles.css +107 -107
  115. package/dist/components/Sidebar/styles.css +74 -74
  116. package/dist/components/Slider/styles.css +211 -211
  117. package/dist/components/SplitButton/styles.css +216 -216
  118. package/dist/components/Status/styles.css +190 -190
  119. package/dist/components/Stepper/styles.css +152 -152
  120. package/dist/components/Switch/styles.css +129 -129
  121. package/dist/components/Table/Table.vue.d.ts +37 -282
  122. package/dist/components/Table/Table.vue.d.ts.map +1 -1
  123. package/dist/components/Table/core/tree.d.ts +4 -0
  124. package/dist/components/Table/core/tree.d.ts.map +1 -1
  125. package/dist/components/Table/core/utils.d.ts +11 -3
  126. package/dist/components/Table/core/utils.d.ts.map +1 -1
  127. package/dist/components/Table/index.d.ts +1 -1
  128. package/dist/components/Table/index.d.ts.map +1 -1
  129. package/dist/components/Table/render/TableColumnSetting.vue.d.ts +25 -0
  130. package/dist/components/Table/render/TableColumnSetting.vue.d.ts.map +1 -0
  131. package/dist/components/Table/render/TableTbody.vue.d.ts +16 -0
  132. package/dist/components/Table/render/TableTbody.vue.d.ts.map +1 -1
  133. package/dist/components/Table/render/TableThead.vue.d.ts +8 -0
  134. package/dist/components/Table/render/TableThead.vue.d.ts.map +1 -1
  135. package/dist/components/Table/state/internal.d.ts +1 -1
  136. package/dist/components/Table/state/internal.d.ts.map +1 -1
  137. package/dist/components/Table/state/usePageItems.d.ts +1 -3
  138. package/dist/components/Table/state/usePageItems.d.ts.map +1 -1
  139. package/dist/components/Table/state/useVirtualRows.d.ts +20 -2
  140. package/dist/components/Table/state/useVirtualRows.d.ts.map +1 -1
  141. package/dist/components/Table/styles.css +95 -0
  142. package/dist/components/Table/types.d.ts +77 -12
  143. package/dist/components/Table/types.d.ts.map +1 -1
  144. package/dist/components/Tabs/styles.css +165 -165
  145. package/dist/components/Terminal/styles.css +75 -75
  146. package/dist/components/Textarea/styles.css +146 -146
  147. package/dist/components/TieredMenu/styles.css +125 -125
  148. package/dist/components/Timeline/styles.css +157 -157
  149. package/dist/components/TreeSelect/styles.css +172 -172
  150. package/dist/components/VirtualScroller/styles.css +27 -27
  151. package/dist/{config-BEpyhJi3.js → config-Cd20zAyW.js} +11 -1
  152. package/dist/config-provider/index.js +1 -1
  153. package/dist/config-provider/style.css +2293 -2301
  154. package/dist/confirm-dialog/index.js +4 -4
  155. package/dist/confirm-dialog/style.css +2339 -2347
  156. package/dist/confirm-popup/index.js +4 -4
  157. package/dist/confirm-popup/style.css +1930 -1938
  158. package/dist/context-menu/index.js +3 -3
  159. package/dist/context-menu/style.css +1466 -1474
  160. package/dist/data-view/index.js +3 -3
  161. package/dist/data-view/style.css +1672 -1707
  162. package/dist/date-picker/index.js +1 -1
  163. package/dist/date-picker/style.css +1982 -1658
  164. package/dist/date-picker/style.js +1 -0
  165. package/dist/descriptions/index.js +1 -1
  166. package/dist/descriptions/style.css +1197 -1205
  167. package/dist/dialog/index.js +4 -4
  168. package/dist/dialog/style.css +2315 -2323
  169. package/dist/divider/style.css +1197 -1205
  170. package/dist/dock/style.css +1281 -1289
  171. package/dist/drawer/index.js +3 -3
  172. package/dist/drawer/style.css +1543 -1551
  173. package/dist/dropdown/index.js +4 -4
  174. package/dist/dropdown/style.css +1463 -1471
  175. package/dist/empty/index.js +1 -1
  176. package/dist/empty/style.css +1343 -1351
  177. package/dist/fieldset/style.css +1197 -1205
  178. package/dist/file-upload/index.js +1 -1
  179. package/dist/file-upload/style.css +1556 -1564
  180. package/dist/flex/index.js +1 -1
  181. package/dist/flex/style.css +1197 -1205
  182. package/dist/float-label/style.css +1197 -1205
  183. package/dist/fluid/style.css +1197 -1205
  184. package/dist/form/index.js +1 -1
  185. package/dist/form/style.css +1324 -1332
  186. package/dist/gallery/index.js +1 -1
  187. package/dist/gallery/style.css +1428 -1436
  188. package/dist/grid/style.css +1197 -1205
  189. package/dist/icon/style.css +1197 -1205
  190. package/dist/icon-field/style.css +1589 -1597
  191. package/dist/image/index.js +1 -1
  192. package/dist/image/style.css +1197 -1205
  193. package/dist/index.d.ts +3 -3
  194. package/dist/index.d.ts.map +1 -1
  195. package/dist/index.js +4792 -3559
  196. package/dist/inplace/style.css +1197 -1205
  197. package/dist/input/index.js +1 -1
  198. package/dist/input/style.css +1714 -1722
  199. package/dist/input-group/style.css +1197 -1205
  200. package/dist/input-number/index.js +2 -245
  201. package/dist/input-number/style.css +1477 -1467
  202. package/dist/input-otp/index.js +2 -2
  203. package/dist/input-otp/style.css +1197 -1205
  204. package/dist/input-password/index.js +2 -2
  205. package/dist/input-password/style.css +1511 -1519
  206. package/dist/input-tags/index.js +2 -2
  207. package/dist/input-tags/style.css +1318 -1326
  208. package/dist/knob/style.css +1197 -1205
  209. package/dist/label/style.css +1197 -1205
  210. package/dist/layout/index.js +1 -1
  211. package/dist/layout/style.css +1761 -1769
  212. package/dist/list/index.js +4 -4
  213. package/dist/list/style.css +2052 -2087
  214. package/dist/listbox/index.js +2 -2
  215. package/dist/listbox/style.css +1489 -1497
  216. package/dist/loading/index.js +1 -1
  217. package/dist/loading/style.css +1577 -1585
  218. package/dist/locale/de-DE.d.ts.map +1 -1
  219. package/dist/locale/en-US.d.ts.map +1 -1
  220. package/dist/locale/es-ES.d.ts.map +1 -1
  221. package/dist/locale/fr-FR.d.ts.map +1 -1
  222. package/dist/locale/ja-JP.d.ts.map +1 -1
  223. package/dist/locale/ko-KR.d.ts.map +1 -1
  224. package/dist/locale/pt-BR.d.ts.map +1 -1
  225. package/dist/locale/ru-RU.d.ts.map +1 -1
  226. package/dist/locale/types.d.ts +18 -0
  227. package/dist/locale/types.d.ts.map +1 -1
  228. package/dist/locale/zh-CN.d.ts.map +1 -1
  229. package/dist/locale/zh-TW.d.ts.map +1 -1
  230. package/dist/{locale-CZddM-tH.js → locale-BcxMPufl.js} +1 -1
  231. package/dist/mega-menu/index.js +3 -3
  232. package/dist/mega-menu/style.css +1294 -1302
  233. package/dist/mentions/index.js +3 -3
  234. package/dist/mentions/style.css +1322 -1330
  235. package/dist/menu/index.js +4 -4
  236. package/dist/menu/style.css +2051 -2059
  237. package/dist/menubar/index.js +4 -4
  238. package/dist/menubar/style.css +1472 -1480
  239. package/dist/message/index.js +3 -3
  240. package/dist/message/style.css +1445 -1453
  241. package/dist/meter-group/style.css +1248 -1256
  242. package/dist/order-list/index.js +191 -101
  243. package/dist/order-list/style.css +1277 -1212
  244. package/dist/page/index.js +3 -3
  245. package/dist/page/style.css +2592 -2600
  246. package/dist/pagination/index.js +1 -1
  247. package/dist/pagination/style.css +1516 -1551
  248. package/dist/panel/index.js +1 -1
  249. package/dist/panel/style.css +1197 -1205
  250. package/dist/pick-list/index.js +1 -1
  251. package/dist/pick-list/style.css +1197 -1205
  252. package/dist/popover/index.js +1 -1
  253. package/dist/popover/style.css +1291 -1299
  254. package/dist/progress-bar/style.css +1197 -1205
  255. package/dist/progress-spinner/index.js +1 -1
  256. package/dist/progress-spinner/style.css +1197 -1205
  257. package/dist/qr-code/index.js +3 -3
  258. package/dist/qr-code/style.css +1895 -1903
  259. package/dist/radio/index.js +1 -1
  260. package/dist/radio/style.css +1197 -1205
  261. package/dist/rating/index.js +2 -2
  262. package/dist/rating/style.css +1197 -1205
  263. package/dist/resolver.js +1 -1
  264. package/dist/result/index.js +1 -1
  265. package/dist/result/style.css +1343 -1351
  266. package/dist/scroll-top/index.js +2 -2
  267. package/dist/scroll-top/style.css +1328 -1336
  268. package/dist/scrollbar/style.css +1330 -1338
  269. package/dist/segmented/index.js +1 -1
  270. package/dist/segmented/style.css +1197 -1205
  271. package/dist/select/index.js +1 -1
  272. package/dist/select/style.css +2107 -2115
  273. package/dist/select-button/index.js +1 -1
  274. package/dist/select-button/style.css +1306 -1314
  275. package/dist/shared/styles/control-affix-icon.css +110 -110
  276. package/dist/shared/styles/control-suffix.css +118 -118
  277. package/dist/shared/styles/select-overlay.css +177 -177
  278. package/dist/sidebar/index.js +1 -1
  279. package/dist/sidebar/style.css +1271 -1279
  280. package/dist/skeleton/style.css +1197 -1205
  281. package/dist/slider/index.js +2 -2
  282. package/dist/slider/style.css +1410 -1418
  283. package/dist/space/index.js +1 -1
  284. package/dist/space/style.css +1197 -1205
  285. package/dist/speed-dial/index.js +3 -3
  286. package/dist/speed-dial/style.css +1197 -1205
  287. package/dist/split-button/index.js +3 -3
  288. package/dist/split-button/style.css +2111 -2119
  289. package/dist/splitter/index.js +1 -1
  290. package/dist/splitter/style.css +1197 -1205
  291. package/dist/statistic/style.css +1197 -1205
  292. package/dist/status/index.js +1 -1
  293. package/dist/status/style.css +1387 -1395
  294. package/dist/stepper/style.css +1349 -1357
  295. package/dist/styles/base.css +795 -804
  296. package/dist/styles.css +1 -1
  297. package/dist/switch/index.js +1 -1
  298. package/dist/switch/style.css +1328 -1336
  299. package/dist/table/index.js +975 -714
  300. package/dist/table/style.css +1899 -1839
  301. package/dist/tabs/index.js +1 -1
  302. package/dist/tabs/style.css +1493 -1501
  303. package/dist/tag/index.js +2 -2
  304. package/dist/tag/style.css +1197 -1205
  305. package/dist/terminal/index.js +1 -1
  306. package/dist/terminal/style.css +1274 -1282
  307. package/dist/textarea/index.js +1 -1
  308. package/dist/textarea/style.css +1468 -1476
  309. package/dist/theme/styles.css +402 -401
  310. package/dist/tiered-menu/index.js +3 -3
  311. package/dist/tiered-menu/style.css +1453 -1461
  312. package/dist/time-picker/index.js +5 -1
  313. package/dist/time-picker/style.css +1852 -1660
  314. package/dist/timeline/style.css +1485 -1493
  315. package/dist/toast/index.js +3 -3
  316. package/dist/toast/style.css +1895 -1903
  317. package/dist/toggle-button/index.js +1 -1
  318. package/dist/toggle-button/style.css +1197 -1205
  319. package/dist/toolbar/style.css +1197 -1205
  320. package/dist/tooltip/index.js +1 -1
  321. package/dist/tooltip/style.css +1197 -1205
  322. package/dist/tour/index.js +3 -3
  323. package/dist/tour/style.css +1895 -1903
  324. package/dist/tree/index.js +2 -2
  325. package/dist/tree/style.css +1197 -1205
  326. package/dist/tree-select/index.js +4 -4
  327. package/dist/tree-select/style.css +1905 -1913
  328. package/dist/typography/index.js +2 -2
  329. package/dist/typography/style.css +1343 -1351
  330. package/dist/{useMotionTransition-DqL_SEML.js → useMotionTransition-DohkfWRB.js} +1 -1
  331. package/dist/virtual-scroller/style.css +1358 -1366
  332. package/dist/watermark/style.css +1197 -1205
  333. package/package.json +8 -8
  334. package/dist/DatePicker-CsMGzCqY.js +0 -630
  335. package/dist/Pagination-CnGOpp0m.js +0 -171
  336. package/dist/components/InputColor/InputColor.vue.d.ts +0 -24
  337. package/dist/components/InputColor/InputColor.vue.d.ts.map +0 -1
  338. package/dist/components/InputColor/index.d.ts +0 -3
  339. package/dist/components/InputColor/index.d.ts.map +0 -1
  340. package/dist/components/InputColor/styles.css +0 -139
  341. package/dist/components/InputColor/types.d.ts +0 -19
  342. package/dist/components/InputColor/types.d.ts.map +0 -1
  343. package/dist/input-color/index.js +0 -118
  344. package/dist/input-color/style.js +0 -3
@@ -1,453 +1,653 @@
1
- /* --- Form: DatePicker --- */
2
- .m-datepicker,
3
- .m-datepicker__panel {
4
- --m-datepicker-calendar-cell-size: var(--m-control-affix-size, 2rem);
5
- --m-datepicker-day-size: var(--m-datepicker-calendar-cell-size);
6
- --m-datepicker-grid-gap: 0.125rem;
7
- --m-datepicker-panel-min-width: calc(
8
- 7 * var(--m-datepicker-calendar-cell-size) + 6 *
9
- var(--m-datepicker-grid-gap) + 2 * var(--m-space-3)
10
- );
11
- --m-datepicker-shortcuts-width: 6rem;
12
- }
13
-
14
- .m-datepicker {
15
- display: inline-flex;
16
- flex-direction: column;
17
- gap: var(--m-space-2);
18
- position: relative;
19
- }
20
-
21
- .m-datepicker--fluid {
22
- display: flex;
23
- width: 100%;
24
- }
25
-
26
- .m-datepicker__label {
27
- color: var(--m-color-text);
28
- font-family: var(--m-font-sans);
29
- font-size: var(--m-font-size-md);
30
- font-weight: 500;
31
- }
32
-
33
- .m-datepicker__help {
34
- color: var(--m-color-text-muted);
35
- font-size: var(--m-font-size-xs);
36
- margin: 0;
37
- }
38
-
39
- .m-datepicker__help--invalid {
40
- color: var(--m-color-danger);
41
- }
42
-
43
- .m-datepicker__control {
44
- position: relative;
45
- }
46
-
47
- .m-datepicker__control:has(.m-datepicker__input) {
48
- align-items: center;
49
- background: var(--m-color-surface);
50
- border: var(--m-border-width) solid var(--m-color-border);
51
- border-radius: var(--m-radius-control);
52
- box-sizing: border-box;
53
- display: flex;
54
- max-width: 100%;
55
- min-height: var(--m-control-height-medium);
56
- transition:
57
- border-color var(--m-motion-fast) var(--m-motion-ease),
58
- box-shadow var(--m-motion-fast) var(--m-motion-ease);
59
- }
60
-
61
- .m-datepicker__control:has(.m-datepicker__input):hover:not(:focus-within) {
62
- border-color: var(--m-color-primary-hover);
63
- }
64
-
65
- .m-datepicker__control:has(.m-datepicker__input):focus-within,
66
- .m-datepicker--open .m-datepicker__control:has(.m-datepicker__input) {
67
- border-color: var(--m-color-primary);
68
- box-shadow: var(--m-focus-shadow);
69
- }
70
-
71
- .m-datepicker--invalid .m-datepicker__control:has(.m-datepicker__input) {
72
- border-color: var(--m-color-danger);
73
- }
74
-
75
- .m-datepicker--invalid .m-datepicker__control:has(.m-datepicker__input):focus-within,
76
- .m-datepicker--invalid.m-datepicker--open
77
- .m-datepicker__control:has(.m-datepicker__input) {
78
- border-color: var(--m-color-danger);
79
- box-shadow: var(--m-focus-shadow-danger);
80
- }
81
-
82
- .m-datepicker__input {
83
- background: transparent;
84
- border: 0;
85
- border-radius: 0;
86
- box-shadow: none;
87
- color: var(--m-color-text);
88
- cursor: pointer;
89
- flex: 1 1 auto;
90
- font-family: var(--m-font-sans);
91
- font-size: var(--m-control-font-medium);
92
- height: calc(var(--m-control-height-medium) - 2 * var(--m-border-width));
93
- line-height: calc(var(--m-control-height-medium) - 2 * var(--m-border-width));
94
- min-height: 0;
95
- min-width: 0;
96
- padding: 0 var(--m-control-padding-x-medium);
97
- width: 100%;
98
- }
99
-
100
- .m-datepicker--small .m-datepicker__control:has(.m-datepicker__input) {
101
- min-height: var(--m-control-height-small);
102
- }
103
-
104
- .m-datepicker--small .m-datepicker__input {
105
- font-size: var(--m-control-font-small);
106
- height: calc(var(--m-control-height-small) - 2 * var(--m-border-width));
107
- line-height: calc(var(--m-control-height-small) - 2 * var(--m-border-width));
108
- padding: 0 var(--m-control-padding-x-small);
109
- }
110
-
111
- .m-datepicker--large .m-datepicker__control:has(.m-datepicker__input) {
112
- min-height: var(--m-control-height-large);
113
- }
114
-
115
- .m-datepicker--large .m-datepicker__input {
116
- font-size: var(--m-control-font-large);
117
- height: calc(var(--m-control-height-large) - 2 * var(--m-border-width));
118
- line-height: calc(var(--m-control-height-large) - 2 * var(--m-border-width));
119
- padding: 0 var(--m-control-padding-x-large);
120
- }
121
-
122
- .m-datepicker__input:focus,
123
- .m-datepicker__input:focus-visible {
124
- box-shadow: none;
125
- outline: none;
126
- }
127
-
128
- .m-datepicker--disabled {
129
- background-color: var(--m-color-bg-disabled);
130
- color: var(--m-color-text-disabled);
131
- cursor: not-allowed;
132
- opacity: 1;
133
- pointer-events: none;
134
- }
135
-
136
- .m-datepicker__clear {
137
- align-items: center;
138
- align-self: center;
139
- background: transparent;
140
- border: 0;
141
- border-radius: var(--m-radius-sm);
142
- color: var(--m-color-text-muted);
143
- cursor: pointer;
144
- display: inline-flex;
145
- flex: 0 0 auto;
146
- font: inherit;
147
- height: var(--m-control-affix-size);
148
- justify-content: center;
149
- padding: 0;
150
- width: var(--m-control-affix-size);
151
- }
152
-
153
- .m-datepicker__clear:hover:not(:disabled) {
154
- color: var(--m-color-text);
155
- }
156
-
157
- .m-datepicker__clear:focus-visible {
158
- box-shadow: var(--m-focus-shadow);
159
- outline: none;
160
- }
161
-
162
- .m-datepicker__panel {
163
- background: var(--m-color-surface);
164
- border: var(--m-border-width) solid var(--m-color-border);
165
- border-radius: var(--m-radius-md);
166
- box-shadow: var(--m-shadow-md);
167
- margin-top: var(--m-space-1);
168
- min-width: max(100%, var(--m-datepicker-panel-min-width));
169
- padding: var(--m-space-3);
170
- position: absolute;
171
- top: 100%;
172
- width: max-content;
173
- z-index: var(--m-z-popper);
174
- }
175
-
176
- .m-datepicker__panel--teleported {
177
- margin-top: 0;
178
- min-width: var(--m-datepicker-panel-min-width);
179
- position: fixed;
180
- top: auto;
181
- z-index: var(--m-z-dropdown);
182
- }
183
-
184
- .m-datepicker__calendar {
185
- flex: 0 0 auto;
186
- }
187
-
188
- .m-datepicker__header {
189
- align-items: center;
190
- display: flex;
191
- justify-content: space-between;
192
- margin-bottom: var(--m-space-2);
193
- }
194
-
195
- .m-datepicker__month {
196
- font-weight: 500;
197
- }
198
-
199
- .m-datepicker__nav {
200
- align-items: center;
201
- background: transparent;
202
- border: 0;
203
- border-radius: var(--m-radius-sm);
204
- color: var(--m-color-text);
205
- cursor: pointer;
206
- display: inline-flex;
207
- font: inherit;
208
- justify-content: center;
209
- line-height: 1;
210
- padding: var(--m-space-1) var(--m-space-2);
211
- }
212
-
213
- .m-datepicker__nav:hover {
214
- background: color-mix(
215
- in srgb,
216
- var(--m-color-primary) 10%,
217
- var(--m-color-surface)
218
- );
219
- }
220
-
221
- .m-datepicker__nav:focus-visible {
222
- box-shadow: var(--m-focus-shadow);
223
- outline: none;
224
- }
225
-
226
- .m-datepicker__weekdays,
227
- .m-datepicker__grid {
228
- display: grid;
229
- gap: var(--m-datepicker-grid-gap);
230
- grid-template-columns: repeat(
231
- 7,
232
- var(--m-datepicker-calendar-cell-size, var(--m-control-affix-size, 2rem))
233
- );
234
- place-items: center;
235
- }
236
-
237
- .m-datepicker__weekdays {
238
- color: var(--m-color-text-muted);
239
- font-size: var(--m-font-size-xs);
240
- margin-bottom: var(--m-space-1);
241
- text-align: center;
242
- }
243
-
244
- .m-datepicker__day {
245
- background: transparent;
246
- border: 0;
247
- border-radius: var(--m-radius-sm);
248
- color: var(--m-color-text);
249
- cursor: pointer;
250
- font-family: var(--m-font-sans);
251
- height: var(--m-datepicker-day-size);
252
- transition: background-color var(--m-motion-fast) var(--m-motion-ease),
253
- color var(--m-motion-fast) var(--m-motion-ease);
254
- width: var(--m-datepicker-day-size);
255
- }
256
-
257
- .m-datepicker__day--other {
258
- color: var(--m-color-text-muted);
259
- opacity: var(--m-opacity-disabled);
260
- }
261
-
262
- .m-datepicker__day--selected {
263
- background: var(--m-color-primary);
264
- color: var(--m-color-on-emphasis);
265
- }
266
-
267
- .m-datepicker__day:hover:not(:disabled):not(.m-datepicker__day--selected) {
268
- background: color-mix(
269
- in srgb,
270
- var(--m-color-primary) 12%,
271
- var(--m-color-surface)
272
- );
273
- }
274
-
275
- .m-datepicker__day:disabled {
276
- color: var(--m-color-text-disabled);
277
- cursor: not-allowed;
278
- opacity: 1;
279
- }
280
-
281
- .m-datepicker__day:focus-visible {
282
- box-shadow: var(--m-focus-shadow);
283
- outline: none;
284
- }
285
-
286
- .m-datepicker__panel--with-shortcuts {
287
- display: flex;
288
- gap: var(--m-space-3);
289
- }
290
-
291
- .m-datepicker__shortcuts {
292
- display: grid;
293
- gap: var(--m-space-1);
294
- min-width: var(--m-datepicker-shortcuts-width);
295
- }
296
-
297
- .m-datepicker__shortcut {
298
- background: transparent;
299
- border: 0;
300
- border-radius: var(--m-radius-sm);
301
- color: var(--m-color-text);
302
- cursor: pointer;
303
- font-family: var(--m-font-sans);
304
- padding: var(--m-space-1) var(--m-space-2);
305
- text-align: left;
306
- transition: background-color var(--m-motion-fast) var(--m-motion-ease),
307
- color var(--m-motion-fast) var(--m-motion-ease);
308
- }
309
-
310
- .m-datepicker__shortcut:hover {
311
- background: color-mix(
312
- in srgb,
313
- var(--m-color-primary) 10%,
314
- var(--m-color-surface)
315
- );
316
- color: var(--m-color-primary);
317
- }
318
-
319
- .m-datepicker__shortcut:focus-visible {
320
- box-shadow: var(--m-focus-shadow);
321
- outline: none;
322
- }
323
-
324
- .m-datepicker__day--in-range {
325
- background: color-mix(
326
- in srgb,
327
- var(--m-color-primary) 16%,
328
- var(--m-color-surface)
329
- );
330
- border-radius: 0;
331
- }
332
-
333
- .m-datepicker__day--range-start {
334
- border-radius: var(--m-radius-sm) 0 0 var(--m-radius-sm);
335
- }
336
-
337
- .m-datepicker__day--range-end {
338
- border-radius: 0 var(--m-radius-sm) var(--m-radius-sm) 0;
339
- }
340
-
341
- .m-datepicker__body {
342
- display: flex;
343
- flex-direction: column;
344
- gap: var(--m-space-3);
345
- }
346
-
347
- .m-datepicker__panel--with-time .m-datepicker__body {
348
- flex-direction: row;
349
- align-items: stretch;
350
- }
351
-
352
- .m-datepicker__month-grid,
353
- .m-datepicker__year-grid {
354
- display: grid;
355
- gap: var(--m-datepicker-grid-gap);
356
- grid-template-columns: repeat(3, minmax(4.5rem, 1fr));
357
- place-items: stretch;
358
- }
359
-
360
- .m-datepicker__cell {
361
- background: transparent;
362
- border: 0;
363
- border-radius: var(--m-radius-sm);
364
- color: var(--m-color-text);
365
- cursor: pointer;
366
- font-family: var(--m-font-sans);
367
- min-height: var(--m-datepicker-day-size);
368
- padding: var(--m-space-2) var(--m-space-1);
369
- transition:
370
- background-color var(--m-motion-fast) var(--m-motion-ease),
371
- color var(--m-motion-fast) var(--m-motion-ease);
372
- }
373
-
374
- .m-datepicker__cell--selected {
375
- background: var(--m-color-primary);
376
- color: var(--m-color-on-emphasis);
377
- }
378
-
379
- .m-datepicker__cell:hover:not(.m-datepicker__cell--selected) {
380
- background: color-mix(
381
- in srgb,
382
- var(--m-color-primary) 12%,
383
- var(--m-color-surface)
384
- );
385
- }
386
-
387
- .m-datepicker__cell:focus-visible {
388
- box-shadow: var(--m-focus-shadow);
389
- outline: none;
390
- }
391
-
392
- .m-datepicker__time {
393
- display: flex;
394
- gap: var(--m-space-1);
395
- max-height: calc(
396
- 6 * var(--m-datepicker-day-size) + 5 * var(--m-datepicker-grid-gap) +
397
- 2.5rem
398
- );
399
- min-width: 0;
400
- }
401
-
402
- .m-datepicker__time-col {
403
- display: flex;
404
- flex-direction: column;
405
- gap: 0.125rem;
406
- max-height: 100%;
407
- min-width: 2.5rem;
408
- overflow-y: auto;
409
- overscroll-behavior: contain;
410
- }
411
-
412
- .m-datepicker__time-item {
413
- background: transparent;
414
- border: 0;
415
- border-radius: var(--m-radius-sm);
416
- color: var(--m-color-text);
417
- cursor: pointer;
418
- flex: 0 0 auto;
419
- font-family: var(--m-font-sans);
420
- font-variant-numeric: tabular-nums;
421
- height: var(--m-datepicker-day-size);
422
- line-height: var(--m-datepicker-day-size);
423
- padding: 0;
424
- text-align: center;
425
- width: 100%;
426
- }
427
-
428
- .m-datepicker__time-item--selected {
429
- background: var(--m-color-primary);
430
- color: var(--m-color-on-emphasis);
431
- }
432
-
433
- .m-datepicker__time-item:hover:not(.m-datepicker__time-item--selected) {
434
- background: color-mix(
435
- in srgb,
436
- var(--m-color-primary) 12%,
437
- var(--m-color-surface)
438
- );
439
- }
440
-
441
- .m-datepicker__time-item:focus-visible {
442
- box-shadow: var(--m-focus-shadow);
443
- outline: none;
444
- }
445
-
446
- /* Time-only panel: stack columns without calendar */
447
- .m-datepicker__panel--time-only .m-datepicker__body {
448
- flex-direction: row;
449
- }
450
-
451
- .m-datepicker__panel--time-only .m-datepicker__time {
452
- max-height: 14rem;
453
- }
1
+ /* --- Form: DatePicker ---
2
+ * Size-aware tokens follow Ant Design DatePicker sizing:
3
+ * - small : 24px input, 24px calendar cells, 14px font
4
+ * - medium : 32px input, 24px calendar cells, 14px font (default)
5
+ * - large : 40px input, 28px calendar cells, 16px font
6
+ * Override `--m-datepicker-*` tokens to customize per-size appearance.
7
+ */
8
+ .m-datepicker,
9
+ .m-datepicker__panel {
10
+ --m-datepicker-calendar-cell-size: 1.5rem;
11
+ --m-datepicker-day-size: var(--m-datepicker-calendar-cell-size);
12
+ --m-datepicker-grid-gap: 0.125rem;
13
+ --m-datepicker-control-height: var(--m-control-height-medium);
14
+ --m-datepicker-font-size: var(--m-control-font-medium);
15
+ --m-datepicker-padding-x: var(--m-control-padding-x-medium);
16
+ --m-datepicker-affix-size: var(--m-control-affix-size);
17
+ --m-datepicker-panel-min-width: calc(
18
+ 7 * var(--m-datepicker-calendar-cell-size) + 6 *
19
+ var(--m-datepicker-grid-gap) + 2 * var(--m-space-3)
20
+ );
21
+ --m-datepicker-shortcuts-width: 6rem;
22
+ }
23
+
24
+ /* Size variants: scale input height, font, padding, calendar cell, affix.
25
+ * Panel gets its own class (m-datepicker__panel--{size}) because it can be
26
+ * teleported outside the root element. */
27
+ .m-datepicker--small,
28
+ .m-datepicker__panel--small {
29
+ --m-datepicker-calendar-cell-size: 1.375rem;
30
+ --m-datepicker-control-height: var(--m-control-height-small);
31
+ --m-datepicker-font-size: var(--m-control-font-small);
32
+ --m-datepicker-padding-x: var(--m-control-padding-x-small);
33
+ --m-datepicker-affix-size: calc(
34
+ var(--m-control-height-small) - 2 * var(--m-border-width)
35
+ );
36
+ }
37
+
38
+ .m-datepicker--large,
39
+ .m-datepicker__panel--large {
40
+ /* antd large: slightly bigger calendar cells */
41
+ --m-datepicker-calendar-cell-size: 1.75rem;
42
+ --m-datepicker-control-height: var(--m-control-height-large);
43
+ --m-datepicker-font-size: var(--m-control-font-large);
44
+ --m-datepicker-padding-x: var(--m-control-padding-x-large);
45
+ --m-datepicker-affix-size: calc(
46
+ var(--m-control-height-large) - 2 * var(--m-border-width)
47
+ );
48
+ }
49
+
50
+ .m-datepicker {
51
+ display: inline-flex;
52
+ flex-direction: column;
53
+ gap: var(--m-space-2);
54
+ position: relative;
55
+ }
56
+
57
+ .m-datepicker--fluid {
58
+ display: flex;
59
+ width: 100%;
60
+ }
61
+
62
+ .m-datepicker__label {
63
+ color: var(--m-color-text);
64
+ font-family: var(--m-font-sans);
65
+ font-size: var(--m-font-size-md);
66
+ font-weight: 500;
67
+ }
68
+
69
+ .m-datepicker__help {
70
+ color: var(--m-color-text-muted);
71
+ font-size: var(--m-font-size-xs);
72
+ margin: 0;
73
+ }
74
+
75
+ .m-datepicker__help--invalid {
76
+ color: var(--m-color-danger);
77
+ }
78
+
79
+ .m-datepicker__control {
80
+ position: relative;
81
+ }
82
+
83
+ .m-datepicker__control:has(.m-datepicker__input) {
84
+ align-items: center;
85
+ background: var(--m-color-surface);
86
+ border: var(--m-border-width) solid var(--m-color-border);
87
+ border-radius: var(--m-radius-control);
88
+ box-sizing: border-box;
89
+ display: flex;
90
+ max-width: 100%;
91
+ min-height: var(--m-datepicker-control-height);
92
+ transition:
93
+ border-color var(--m-motion-fast) var(--m-motion-ease),
94
+ box-shadow var(--m-motion-fast) var(--m-motion-ease);
95
+ }
96
+
97
+ .m-datepicker__control:has(.m-datepicker__input):hover:not(:focus-within) {
98
+ border-color: var(--m-color-primary-hover);
99
+ }
100
+
101
+ .m-datepicker__control:has(.m-datepicker__input):focus-within,
102
+ .m-datepicker--open .m-datepicker__control:has(.m-datepicker__input) {
103
+ border-color: var(--m-color-primary);
104
+ box-shadow: var(--m-focus-shadow);
105
+ }
106
+
107
+ .m-datepicker--invalid .m-datepicker__control:has(.m-datepicker__input),
108
+ .m-datepicker--error .m-datepicker__control:has(.m-datepicker__input) {
109
+ border-color: var(--m-color-danger);
110
+ }
111
+
112
+ .m-datepicker--warning .m-datepicker__control:has(.m-datepicker__input) {
113
+ border-color: var(--m-color-warning);
114
+ }
115
+
116
+ .m-datepicker--invalid .m-datepicker__control:has(.m-datepicker__input):focus-within,
117
+ .m-datepicker--invalid.m-datepicker--open
118
+ .m-datepicker__control:has(.m-datepicker__input),
119
+ .m-datepicker--error .m-datepicker__control:has(.m-datepicker__input):focus-within,
120
+ .m-datepicker--error.m-datepicker--open
121
+ .m-datepicker__control:has(.m-datepicker__input) {
122
+ border-color: var(--m-color-danger);
123
+ box-shadow: var(--m-focus-shadow-danger);
124
+ }
125
+
126
+ .m-datepicker--warning .m-datepicker__control:has(.m-datepicker__input):focus-within,
127
+ .m-datepicker--warning.m-datepicker--open
128
+ .m-datepicker__control:has(.m-datepicker__input) {
129
+ border-color: var(--m-color-warning);
130
+ box-shadow: var(--m-focus-shadow-warning, 0 0 0 3px color-mix(in srgb, var(--m-color-warning) 20%, transparent));
131
+ }
132
+
133
+ .m-datepicker__input {
134
+ background: transparent;
135
+ border: 0;
136
+ border-radius: 0;
137
+ box-shadow: none;
138
+ color: var(--m-color-text);
139
+ cursor: pointer;
140
+ flex: 1 1 auto;
141
+ font-family: var(--m-font-sans);
142
+ font-size: var(--m-datepicker-font-size);
143
+ height: calc(var(--m-datepicker-control-height) - 2 * var(--m-border-width));
144
+ line-height: calc(var(--m-datepicker-control-height) - 2 * var(--m-border-width));
145
+ min-height: 0;
146
+ min-width: 0;
147
+ padding: 0 var(--m-datepicker-padding-x);
148
+ width: 100%;
149
+ }
150
+
151
+ .m-datepicker__input:focus,
152
+ .m-datepicker__input:focus-visible {
153
+ box-shadow: none;
154
+ outline: none;
155
+ }
156
+
157
+ .m-datepicker--disabled {
158
+ background-color: var(--m-color-bg-disabled);
159
+ color: var(--m-color-text-disabled);
160
+ cursor: not-allowed;
161
+ opacity: 1;
162
+ pointer-events: none;
163
+ }
164
+
165
+ .m-datepicker__clear {
166
+ align-items: center;
167
+ align-self: center;
168
+ background: transparent;
169
+ border: 0;
170
+ border-radius: var(--m-radius-sm);
171
+ color: var(--m-color-text-muted);
172
+ cursor: pointer;
173
+ display: inline-flex;
174
+ flex: 0 0 auto;
175
+ font: inherit;
176
+ height: var(--m-datepicker-affix-size);
177
+ justify-content: center;
178
+ padding: 0;
179
+ width: var(--m-datepicker-affix-size);
180
+ }
181
+
182
+ .m-datepicker__clear:hover:not(:disabled) {
183
+ color: var(--m-color-text);
184
+ }
185
+
186
+ .m-datepicker__clear:focus-visible {
187
+ box-shadow: var(--m-focus-shadow);
188
+ outline: none;
189
+ }
190
+
191
+ .m-datepicker__panel {
192
+ background: var(--m-color-surface);
193
+ border: var(--m-border-width) solid var(--m-color-border);
194
+ border-radius: var(--m-radius-md);
195
+ box-shadow: var(--m-shadow-md);
196
+ font-size: var(--m-datepicker-font-size);
197
+ margin-top: var(--m-space-1);
198
+ min-width: max(100%, var(--m-datepicker-panel-min-width));
199
+ padding: var(--m-space-3);
200
+ position: absolute;
201
+ top: 100%;
202
+ width: max-content;
203
+ z-index: var(--m-z-popper);
204
+ }
205
+
206
+ .m-datepicker__panel--teleported {
207
+ margin-top: 0;
208
+ min-width: var(--m-datepicker-panel-min-width);
209
+ position: fixed;
210
+ top: auto;
211
+ z-index: var(--m-z-dropdown);
212
+ }
213
+
214
+ .m-datepicker__calendar {
215
+ flex: 0 0 auto;
216
+ }
217
+
218
+ .m-datepicker__header {
219
+ align-items: center;
220
+ display: flex;
221
+ justify-content: space-between;
222
+ margin-bottom: var(--m-space-2);
223
+ }
224
+
225
+ .m-datepicker__month {
226
+ font-size: var(--m-datepicker-font-size);
227
+ font-weight: 500;
228
+ }
229
+
230
+ /* Header label as a clickable switch between days / months / years sub-panels. */
231
+ button.m-datepicker__month--switch {
232
+ background: transparent;
233
+ border: 0;
234
+ border-radius: var(--m-radius-sm);
235
+ color: var(--m-color-text);
236
+ cursor: pointer;
237
+ font-family: var(--m-font-sans);
238
+ font-size: inherit;
239
+ padding: var(--m-space-1) var(--m-space-2);
240
+ transition:
241
+ background-color var(--m-motion-fast) var(--m-motion-ease),
242
+ color var(--m-motion-fast) var(--m-motion-ease);
243
+ }
244
+
245
+ button.m-datepicker__month--switch:hover {
246
+ background: color-mix(
247
+ in srgb,
248
+ var(--m-color-primary) 10%,
249
+ var(--m-color-surface)
250
+ );
251
+ color: var(--m-color-primary);
252
+ }
253
+
254
+ button.m-datepicker__month--switch:focus-visible {
255
+ box-shadow: var(--m-focus-shadow);
256
+ outline: none;
257
+ }
258
+
259
+ .m-datepicker__nav {
260
+ align-items: center;
261
+ background: transparent;
262
+ border: 0;
263
+ border-radius: var(--m-radius-sm);
264
+ color: var(--m-color-text);
265
+ cursor: pointer;
266
+ display: inline-flex;
267
+ font: inherit;
268
+ justify-content: center;
269
+ line-height: 1;
270
+ padding: var(--m-space-1) var(--m-space-2);
271
+ }
272
+
273
+ .m-datepicker__nav:hover {
274
+ background: color-mix(
275
+ in srgb,
276
+ var(--m-color-primary) 10%,
277
+ var(--m-color-surface)
278
+ );
279
+ }
280
+
281
+ .m-datepicker__nav:focus-visible {
282
+ box-shadow: var(--m-focus-shadow);
283
+ outline: none;
284
+ }
285
+
286
+ .m-datepicker__weekdays,
287
+ .m-datepicker__grid {
288
+ display: grid;
289
+ gap: var(--m-datepicker-grid-gap);
290
+ /* Cells fill the available panel width (e.g. fluid trigger) while keeping
291
+ a minimum of the size-aware cell size. */
292
+ grid-template-columns: repeat(
293
+ 7,
294
+ minmax(var(--m-datepicker-calendar-cell-size), 1fr)
295
+ );
296
+ place-items: center;
297
+ }
298
+
299
+ .m-datepicker__weekdays {
300
+ color: var(--m-color-text-muted);
301
+ font-size: calc(var(--m-datepicker-font-size) - 2px);
302
+ margin-bottom: var(--m-space-1);
303
+ text-align: center;
304
+ }
305
+
306
+ .m-datepicker__weekdays > span {
307
+ /* Match the stretched day cells so headers align with columns. */
308
+ width: 100%;
309
+ }
310
+
311
+ .m-datepicker__day {
312
+ align-items: center;
313
+ background: transparent;
314
+ border: 0;
315
+ border-radius: var(--m-radius-sm);
316
+ color: var(--m-color-text);
317
+ cursor: pointer;
318
+ display: inline-flex;
319
+ font-family: var(--m-font-sans);
320
+ font-size: var(--m-datepicker-font-size);
321
+ height: var(--m-datepicker-day-size);
322
+ justify-content: center;
323
+ /* Reset UA button padding so the label centers in the cell. */
324
+ padding: 0;
325
+ transition: background-color var(--m-motion-fast) var(--m-motion-ease),
326
+ color var(--m-motion-fast) var(--m-motion-ease);
327
+ /* Stretch to the grid column so fluid panels fill the trigger width;
328
+ height stays size-aware so cells read as rows, not oversized squares. */
329
+ width: 100%;
330
+ }
331
+
332
+ .m-datepicker__day--other {
333
+ color: var(--m-color-text-muted);
334
+ opacity: var(--m-opacity-disabled);
335
+ }
336
+
337
+ .m-datepicker__day--selected {
338
+ background: var(--m-color-primary);
339
+ color: var(--m-color-on-emphasis);
340
+ }
341
+
342
+ /* Today's ring: 1px inner border in primary, suppressed once selected. */
343
+ .m-datepicker__day--today:not(.m-datepicker__day--selected) {
344
+ box-shadow: inset 0 0 0 1px var(--m-color-primary);
345
+ color: var(--m-color-primary);
346
+ font-weight: 500;
347
+ }
348
+
349
+ .m-datepicker__day:hover:not(:disabled):not(.m-datepicker__day--selected) {
350
+ background: color-mix(
351
+ in srgb,
352
+ var(--m-color-primary) 12%,
353
+ var(--m-color-surface)
354
+ );
355
+ }
356
+
357
+ .m-datepicker__day:disabled {
358
+ color: var(--m-color-text-disabled);
359
+ cursor: not-allowed;
360
+ opacity: 1;
361
+ }
362
+
363
+ .m-datepicker__day:focus-visible {
364
+ box-shadow: var(--m-focus-shadow);
365
+ outline: none;
366
+ }
367
+
368
+ .m-datepicker__panel--with-shortcuts {
369
+ display: flex;
370
+ gap: var(--m-space-3);
371
+ }
372
+
373
+ .m-datepicker__shortcuts {
374
+ display: grid;
375
+ gap: var(--m-space-1);
376
+ min-width: var(--m-datepicker-shortcuts-width);
377
+ }
378
+
379
+ /* Extra footer (slot): typical "Now / Today / Clear" actions. */
380
+ .m-datepicker__footer {
381
+ align-items: center;
382
+ border-top: var(--m-border-width) solid var(--m-color-border);
383
+ display: flex;
384
+ gap: var(--m-space-2);
385
+ justify-content: flex-end;
386
+ padding: var(--m-space-2) var(--m-space-3);
387
+ }
388
+
389
+ .m-datepicker__footer-btn {
390
+ background: transparent;
391
+ border: var(--m-border-width) solid var(--m-color-border);
392
+ border-radius: var(--m-radius-control);
393
+ color: var(--m-color-text);
394
+ cursor: pointer;
395
+ font-family: var(--m-font-sans);
396
+ font-size: var(--m-datepicker-font-size);
397
+ height: var(--m-control-height-sm, 1.75rem);
398
+ padding: 0 var(--m-space-3);
399
+ transition:
400
+ background-color var(--m-motion-fast) var(--m-motion-ease),
401
+ border-color var(--m-motion-fast) var(--m-motion-ease),
402
+ color var(--m-motion-fast) var(--m-motion-ease);
403
+ }
404
+
405
+ .m-datepicker__footer-btn:hover:not(:disabled) {
406
+ border-color: var(--m-color-primary-hover);
407
+ color: var(--m-color-primary);
408
+ }
409
+
410
+ .m-datepicker__footer-btn:focus-visible {
411
+ box-shadow: var(--m-focus-shadow);
412
+ outline: none;
413
+ }
414
+
415
+ .m-datepicker__footer-btn:disabled {
416
+ cursor: not-allowed;
417
+ opacity: 0.6;
418
+ }
419
+
420
+ .m-datepicker__footer-btn--primary {
421
+ background: var(--m-color-primary);
422
+ border-color: var(--m-color-primary);
423
+ color: var(--m-color-on-emphasis);
424
+ }
425
+
426
+ .m-datepicker__footer-btn--primary:hover:not(:disabled) {
427
+ background: var(--m-color-primary-hover);
428
+ border-color: var(--m-color-primary-hover);
429
+ color: var(--m-color-on-emphasis);
430
+ }
431
+
432
+ .m-datepicker__shortcut {
433
+ background: transparent;
434
+ border: 0;
435
+ border-radius: var(--m-radius-sm);
436
+ color: var(--m-color-text);
437
+ cursor: pointer;
438
+ font-family: var(--m-font-sans);
439
+ font-size: var(--m-datepicker-font-size);
440
+ padding: var(--m-space-1) var(--m-space-2);
441
+ text-align: left;
442
+ transition: background-color var(--m-motion-fast) var(--m-motion-ease),
443
+ color var(--m-motion-fast) var(--m-motion-ease);
444
+ }
445
+
446
+ .m-datepicker__shortcut:hover {
447
+ background: color-mix(
448
+ in srgb,
449
+ var(--m-color-primary) 10%,
450
+ var(--m-color-surface)
451
+ );
452
+ color: var(--m-color-primary);
453
+ }
454
+
455
+ .m-datepicker__shortcut:focus-visible {
456
+ box-shadow: var(--m-focus-shadow);
457
+ outline: none;
458
+ }
459
+
460
+ .m-datepicker__shortcut--active {
461
+ background: color-mix(
462
+ in srgb,
463
+ var(--m-color-primary) 12%,
464
+ var(--m-color-surface)
465
+ );
466
+ color: var(--m-color-primary);
467
+ font-weight: 500;
468
+ }
469
+
470
+ .m-datepicker__day--in-range {
471
+ background: color-mix(
472
+ in srgb,
473
+ var(--m-color-primary) 16%,
474
+ var(--m-color-surface)
475
+ );
476
+ border-radius: 0;
477
+ }
478
+
479
+ .m-datepicker__day--range-start {
480
+ border-radius: var(--m-radius-sm) 0 0 var(--m-radius-sm);
481
+ }
482
+
483
+ .m-datepicker__day--range-end {
484
+ border-radius: 0 var(--m-radius-sm) var(--m-radius-sm) 0;
485
+ }
486
+
487
+ .m-datepicker__body {
488
+ display: flex;
489
+ flex-direction: column;
490
+ gap: var(--m-space-3);
491
+ }
492
+
493
+ .m-datepicker__panel--with-time .m-datepicker__body {
494
+ flex-direction: row;
495
+ align-items: stretch;
496
+ }
497
+
498
+ .m-datepicker__month-grid,
499
+ .m-datepicker__year-grid {
500
+ display: grid;
501
+ gap: var(--m-datepicker-grid-gap);
502
+ grid-template-columns: repeat(3, minmax(4.5rem, 1fr));
503
+ place-items: stretch;
504
+ }
505
+
506
+ .m-datepicker__cell {
507
+ align-items: center;
508
+ background: transparent;
509
+ border: 0;
510
+ border-radius: var(--m-radius-sm);
511
+ color: var(--m-color-text);
512
+ cursor: pointer;
513
+ display: inline-flex;
514
+ font-family: var(--m-font-sans);
515
+ font-size: var(--m-datepicker-font-size);
516
+ justify-content: center;
517
+ min-height: var(--m-datepicker-day-size);
518
+ padding: var(--m-space-2) var(--m-space-1);
519
+ transition:
520
+ background-color var(--m-motion-fast) var(--m-motion-ease),
521
+ color var(--m-motion-fast) var(--m-motion-ease);
522
+ }
523
+
524
+ .m-datepicker__cell--selected {
525
+ background: var(--m-color-primary);
526
+ color: var(--m-color-on-emphasis);
527
+ }
528
+
529
+ .m-datepicker__cell--other {
530
+ color: var(--m-color-text-muted);
531
+ opacity: 0.6;
532
+ }
533
+
534
+ .m-datepicker__cell:hover:not(.m-datepicker__cell--selected) {
535
+ background: color-mix(
536
+ in srgb,
537
+ var(--m-color-primary) 12%,
538
+ var(--m-color-surface)
539
+ );
540
+ }
541
+
542
+ .m-datepicker__cell:focus-visible {
543
+ box-shadow: var(--m-focus-shadow);
544
+ outline: none;
545
+ }
546
+
547
+ .m-datepicker__time {
548
+ display: flex;
549
+ gap: var(--m-space-1);
550
+ /* Fixed height so nested MScrollbar can resolve height: 100%. Time lists are
551
+ always longer than this, so the container is effectively always full. */
552
+ height: calc(
553
+ 6 * var(--m-datepicker-day-size) + 5 * var(--m-datepicker-grid-gap) +
554
+ 2.5rem
555
+ );
556
+ min-width: 0;
557
+ }
558
+
559
+ /* Each time column: header label on top + scrollable list below. */
560
+ .m-datepicker__time-col {
561
+ display: flex;
562
+ flex-direction: column;
563
+ height: 100%;
564
+ min-width: 2.5rem;
565
+ }
566
+
567
+ .m-datepicker__time-header {
568
+ color: var(--m-color-text);
569
+ flex: 0 0 auto;
570
+ font-size: var(--m-datepicker-font-size);
571
+ line-height: 1;
572
+ padding: var(--m-space-1) 0 var(--m-space-2);
573
+ text-align: center;
574
+ }
575
+
576
+ /* Scrollable list region below the header. */
577
+ .m-datepicker__time-scroll {
578
+ flex: 1 1 auto;
579
+ min-height: 0;
580
+ }
581
+
582
+ .m-datepicker__time-scroll .m-datepicker__time-col-wrap {
583
+ height: 100%;
584
+ overscroll-behavior: contain;
585
+ }
586
+
587
+ .m-datepicker__time-scroll .m-datepicker__time-col-view {
588
+ display: flex;
589
+ flex-direction: column;
590
+ gap: 0.125rem;
591
+ min-width: 100%;
592
+ }
593
+
594
+ .m-datepicker__time-item {
595
+ align-items: center;
596
+ background: transparent;
597
+ border: 0;
598
+ border-radius: var(--m-radius-sm);
599
+ color: var(--m-color-text);
600
+ cursor: pointer;
601
+ display: inline-flex;
602
+ flex: 0 0 auto;
603
+ font-family: var(--m-font-sans);
604
+ font-size: var(--m-datepicker-font-size);
605
+ font-variant-numeric: tabular-nums;
606
+ height: var(--m-datepicker-day-size);
607
+ justify-content: center;
608
+ padding: 0;
609
+ text-align: center;
610
+ width: 100%;
611
+ }
612
+
613
+ .m-datepicker__time-item--selected {
614
+ background: var(--m-color-primary);
615
+ color: var(--m-color-on-emphasis);
616
+ }
617
+
618
+ .m-datepicker__time-item:hover:not(.m-datepicker__time-item--selected) {
619
+ background: color-mix(
620
+ in srgb,
621
+ var(--m-color-primary) 12%,
622
+ var(--m-color-surface)
623
+ );
624
+ }
625
+
626
+ .m-datepicker__time-item:focus-visible {
627
+ box-shadow: var(--m-focus-shadow);
628
+ outline: none;
629
+ }
630
+
631
+ /* Time-only panel: stack columns without calendar; use a compact width
632
+ derived from time columns instead of the wider 7-day calendar grid. */
633
+ .m-datepicker__panel--time-only {
634
+ --m-datepicker-panel-min-width: calc(
635
+ 3 * 4rem + 2 * var(--m-space-1) + 2 * var(--m-space-3)
636
+ );
637
+ }
638
+
639
+ .m-datepicker__panel--time-only .m-datepicker__body {
640
+ flex-direction: row;
641
+ width: 100%;
642
+ }
643
+
644
+ .m-datepicker__panel--time-only .m-datepicker__time {
645
+ flex: 1 1 auto;
646
+ height: 14rem;
647
+ width: 100%;
648
+ }
649
+
650
+ .m-datepicker__panel--time-only .m-datepicker__time-col {
651
+ flex: 1 1 0;
652
+ min-width: 0;
653
+ }