@mantine/dates 9.0.1 → 9.1.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 (49) hide show
  1. package/cjs/components/DateTimePicker/DateTimePicker.cjs +3 -2
  2. package/cjs/components/DateTimePicker/DateTimePicker.cjs.map +1 -1
  3. package/cjs/components/MonthPicker/MonthPicker.cjs +67 -7
  4. package/cjs/components/MonthPicker/MonthPicker.cjs.map +1 -1
  5. package/cjs/components/MonthPicker/MonthPicker.module.cjs +11 -0
  6. package/cjs/components/MonthPicker/MonthPicker.module.cjs.map +1 -0
  7. package/cjs/components/MonthPickerInput/MonthPickerInput.cjs +2 -1
  8. package/cjs/components/MonthPickerInput/MonthPickerInput.cjs.map +1 -1
  9. package/cjs/components/SpinInput/SpinInput.cjs +2 -2
  10. package/cjs/components/SpinInput/SpinInput.cjs.map +1 -1
  11. package/cjs/components/TimePicker/TimePicker.cjs +19 -8
  12. package/cjs/components/TimePicker/TimePicker.cjs.map +1 -1
  13. package/cjs/components/TimePicker/use-time-picker.cjs +3 -2
  14. package/cjs/components/TimePicker/use-time-picker.cjs.map +1 -1
  15. package/cjs/components/YearPicker/YearPicker.cjs +67 -7
  16. package/cjs/components/YearPicker/YearPicker.cjs.map +1 -1
  17. package/cjs/components/YearPicker/YearPicker.module.cjs +11 -0
  18. package/cjs/components/YearPicker/YearPicker.module.cjs.map +1 -0
  19. package/cjs/components/YearPickerInput/YearPickerInput.cjs +2 -1
  20. package/cjs/components/YearPickerInput/YearPickerInput.cjs.map +1 -1
  21. package/esm/components/DateTimePicker/DateTimePicker.mjs +3 -2
  22. package/esm/components/DateTimePicker/DateTimePicker.mjs.map +1 -1
  23. package/esm/components/MonthPicker/MonthPicker.mjs +69 -9
  24. package/esm/components/MonthPicker/MonthPicker.mjs.map +1 -1
  25. package/esm/components/MonthPicker/MonthPicker.module.mjs +11 -0
  26. package/esm/components/MonthPicker/MonthPicker.module.mjs.map +1 -0
  27. package/esm/components/MonthPickerInput/MonthPickerInput.mjs +2 -1
  28. package/esm/components/MonthPickerInput/MonthPickerInput.mjs.map +1 -1
  29. package/esm/components/SpinInput/SpinInput.mjs +2 -2
  30. package/esm/components/SpinInput/SpinInput.mjs.map +1 -1
  31. package/esm/components/TimePicker/TimePicker.mjs +19 -8
  32. package/esm/components/TimePicker/TimePicker.mjs.map +1 -1
  33. package/esm/components/TimePicker/use-time-picker.mjs +3 -2
  34. package/esm/components/TimePicker/use-time-picker.mjs.map +1 -1
  35. package/esm/components/YearPicker/YearPicker.mjs +69 -9
  36. package/esm/components/YearPicker/YearPicker.mjs.map +1 -1
  37. package/esm/components/YearPicker/YearPicker.module.mjs +11 -0
  38. package/esm/components/YearPicker/YearPicker.module.mjs.map +1 -0
  39. package/esm/components/YearPickerInput/YearPickerInput.mjs +2 -1
  40. package/esm/components/YearPickerInput/YearPickerInput.mjs.map +1 -1
  41. package/lib/components/MonthPicker/MonthPicker.d.ts +13 -1
  42. package/lib/components/SpinInput/SpinInput.d.ts +2 -1
  43. package/lib/components/TimePicker/TimePicker.d.ts +5 -1
  44. package/lib/components/TimePicker/TimePicker.types.d.ts +1 -0
  45. package/lib/components/TimePicker/use-time-picker.d.ts +3 -2
  46. package/lib/components/YearPicker/YearPicker.d.ts +13 -1
  47. package/package.json +5 -5
  48. package/styles.css +96 -0
  49. package/styles.layer.css +96 -0
@@ -3,8 +3,19 @@ import { DatePickerType, DateStringValue, PickerBaseProps } from '../../types';
3
3
  import { CalendarBaseProps } from '../Calendar';
4
4
  import { DecadeLevelBaseSettings } from '../DecadeLevel';
5
5
  import { DecadeLevelGroupStylesNames } from '../DecadeLevelGroup';
6
- export type YearPickerStylesNames = DecadeLevelGroupStylesNames;
6
+ export interface YearPickerPreset<Type extends DatePickerType> {
7
+ value: Type extends 'range' ? [DateStringValue | null, DateStringValue | null] : Type extends 'multiple' ? DateStringValue[] : DateStringValue | null;
8
+ label: React.ReactNode;
9
+ }
10
+ export type YearPickerCssVariables = {
11
+ yearPickerRoot: '--preset-font-size';
12
+ };
13
+ export type YearPickerStylesNames = DecadeLevelGroupStylesNames | 'presetsList' | 'presetButton' | 'yearPickerRoot';
7
14
  export interface YearPickerBaseProps<Type extends DatePickerType = 'default'> extends PickerBaseProps<Type>, DecadeLevelBaseSettings, Omit<CalendarBaseProps, 'onNextYear' | 'onPreviousYear' | 'onNextMonth' | 'onPreviousMonth' | 'hasNextLevel'> {
15
+ /** Predefined values to pick from */
16
+ presets?: YearPickerPreset<Type>[];
17
+ /** If defined, called with preset value, suppresses `onChange` call */
18
+ __onPresetSelect?: (preset: Type extends 'range' ? [DateStringValue | null, DateStringValue | null] : DateStringValue | null) => void;
8
19
  }
9
20
  export interface YearPickerProps<Type extends DatePickerType = 'default'> extends BoxProps, YearPickerBaseProps<Type>, StylesApiProps<YearPickerFactory>, ElementProps<'div', 'onChange' | 'value' | 'defaultValue'> {
10
21
  /** Called when year is selected */
@@ -14,6 +25,7 @@ export type YearPickerFactory = Factory<{
14
25
  props: YearPickerProps;
15
26
  ref: HTMLDivElement;
16
27
  stylesNames: YearPickerStylesNames;
28
+ vars: YearPickerCssVariables;
17
29
  }>;
18
30
  type YearPickerComponent = (<Type extends DatePickerType = 'default'>(props: YearPickerProps<Type> & {
19
31
  ref?: React.Ref<HTMLDivElement>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mantine/dates",
3
- "version": "9.0.1",
3
+ "version": "9.1.0",
4
4
  "description": "Calendars, date and time pickers based on Mantine components",
5
5
  "homepage": "https://mantine.dev/dates/getting-started/",
6
6
  "license": "MIT",
@@ -45,8 +45,8 @@
45
45
  "directory": "packages/@mantine/dates"
46
46
  },
47
47
  "peerDependencies": {
48
- "@mantine/core": "9.0.1",
49
- "@mantine/hooks": "9.0.1",
48
+ "@mantine/core": "9.1.0",
49
+ "@mantine/hooks": "9.1.0",
50
50
  "dayjs": ">=1.0.0",
51
51
  "react": "^19.2.0",
52
52
  "react-dom": "^19.2.0"
@@ -59,7 +59,7 @@
59
59
  "@mantine-tests/dates": "workspace:*",
60
60
  "@mantine/core": "workspace:*",
61
61
  "@mantine/hooks": "workspace:*",
62
- "react": "19.2.4",
63
- "react-dom": "19.2.4"
62
+ "react": "19.2.5",
63
+ "react-dom": "19.2.5"
64
64
  }
65
65
  }
package/styles.css CHANGED
@@ -638,6 +638,102 @@
638
638
  cursor: default;
639
639
  }
640
640
 
641
+ .m_d01e596f {
642
+ display: flex;
643
+ font-size: var(--preset-font-size);
644
+ }
645
+
646
+ .m_52a6b4b0 {
647
+ display: flex;
648
+ flex-direction: column;
649
+ border-inline-end: calc(0.0625rem * var(--mantine-scale)) solid;
650
+ padding-inline-end: 0.5em;
651
+ margin-inline-end: 0.5em;
652
+ }
653
+
654
+ :where([data-mantine-color-scheme='light']) .m_52a6b4b0 {
655
+ border-color: var(--mantine-color-gray-2);
656
+ }
657
+
658
+ :where([data-mantine-color-scheme='dark']) .m_52a6b4b0 {
659
+ border-color: var(--mantine-color-dark-5);
660
+ }
661
+
662
+ .m_b0d93233 {
663
+ padding: 0.52em 0.8em;
664
+ border-radius: var(--mantine-radius-default);
665
+ font-size: var(--preset-font-size);
666
+ white-space: nowrap;
667
+ }
668
+
669
+ @media (hover: hover) {
670
+ :where([data-mantine-color-scheme='light']) .m_b0d93233:hover {
671
+ background-color: var(--mantine-color-gray-0);
672
+ }
673
+
674
+ :where([data-mantine-color-scheme='dark']) .m_b0d93233:hover {
675
+ background-color: var(--mantine-color-dark-5);
676
+ }
677
+ }
678
+
679
+ @media (hover: none) {
680
+ :where([data-mantine-color-scheme='light']) .m_b0d93233:active {
681
+ background-color: var(--mantine-color-gray-0);
682
+ }
683
+
684
+ :where([data-mantine-color-scheme='dark']) .m_b0d93233:active {
685
+ background-color: var(--mantine-color-dark-5);
686
+ }
687
+ }
688
+
689
+ .m_53c9e871 {
690
+ display: flex;
691
+ font-size: var(--preset-font-size);
692
+ }
693
+
694
+ .m_cccb8ff3 {
695
+ display: flex;
696
+ flex-direction: column;
697
+ border-inline-end: calc(0.0625rem * var(--mantine-scale)) solid;
698
+ padding-inline-end: 0.5em;
699
+ margin-inline-end: 0.5em;
700
+ }
701
+
702
+ :where([data-mantine-color-scheme='light']) .m_cccb8ff3 {
703
+ border-color: var(--mantine-color-gray-2);
704
+ }
705
+
706
+ :where([data-mantine-color-scheme='dark']) .m_cccb8ff3 {
707
+ border-color: var(--mantine-color-dark-5);
708
+ }
709
+
710
+ .m_7b4fbf50 {
711
+ padding: 0.52em 0.8em;
712
+ border-radius: var(--mantine-radius-default);
713
+ font-size: var(--preset-font-size);
714
+ white-space: nowrap;
715
+ }
716
+
717
+ @media (hover: hover) {
718
+ :where([data-mantine-color-scheme='light']) .m_7b4fbf50:hover {
719
+ background-color: var(--mantine-color-gray-0);
720
+ }
721
+
722
+ :where([data-mantine-color-scheme='dark']) .m_7b4fbf50:hover {
723
+ background-color: var(--mantine-color-dark-5);
724
+ }
725
+ }
726
+
727
+ @media (hover: none) {
728
+ :where([data-mantine-color-scheme='light']) .m_7b4fbf50:active {
729
+ background-color: var(--mantine-color-gray-0);
730
+ }
731
+
732
+ :where([data-mantine-color-scheme='dark']) .m_7b4fbf50:active {
733
+ background-color: var(--mantine-color-dark-5);
734
+ }
735
+ }
736
+
641
737
  .m_765a40cf {
642
738
  display: flex;
643
739
  font-size: var(--preset-font-size);
package/styles.layer.css CHANGED
@@ -638,6 +638,102 @@
638
638
  cursor: default;
639
639
  }
640
640
 
641
+ .m_d01e596f {
642
+ display: flex;
643
+ font-size: var(--preset-font-size);
644
+ }
645
+
646
+ .m_52a6b4b0 {
647
+ display: flex;
648
+ flex-direction: column;
649
+ border-inline-end: calc(0.0625rem * var(--mantine-scale)) solid;
650
+ padding-inline-end: 0.5em;
651
+ margin-inline-end: 0.5em;
652
+ }
653
+
654
+ :where([data-mantine-color-scheme='light']) .m_52a6b4b0 {
655
+ border-color: var(--mantine-color-gray-2);
656
+ }
657
+
658
+ :where([data-mantine-color-scheme='dark']) .m_52a6b4b0 {
659
+ border-color: var(--mantine-color-dark-5);
660
+ }
661
+
662
+ .m_b0d93233 {
663
+ padding: 0.52em 0.8em;
664
+ border-radius: var(--mantine-radius-default);
665
+ font-size: var(--preset-font-size);
666
+ white-space: nowrap;
667
+ }
668
+
669
+ @media (hover: hover) {
670
+ :where([data-mantine-color-scheme='light']) .m_b0d93233:hover {
671
+ background-color: var(--mantine-color-gray-0);
672
+ }
673
+
674
+ :where([data-mantine-color-scheme='dark']) .m_b0d93233:hover {
675
+ background-color: var(--mantine-color-dark-5);
676
+ }
677
+ }
678
+
679
+ @media (hover: none) {
680
+ :where([data-mantine-color-scheme='light']) .m_b0d93233:active {
681
+ background-color: var(--mantine-color-gray-0);
682
+ }
683
+
684
+ :where([data-mantine-color-scheme='dark']) .m_b0d93233:active {
685
+ background-color: var(--mantine-color-dark-5);
686
+ }
687
+ }
688
+
689
+ .m_53c9e871 {
690
+ display: flex;
691
+ font-size: var(--preset-font-size);
692
+ }
693
+
694
+ .m_cccb8ff3 {
695
+ display: flex;
696
+ flex-direction: column;
697
+ border-inline-end: calc(0.0625rem * var(--mantine-scale)) solid;
698
+ padding-inline-end: 0.5em;
699
+ margin-inline-end: 0.5em;
700
+ }
701
+
702
+ :where([data-mantine-color-scheme='light']) .m_cccb8ff3 {
703
+ border-color: var(--mantine-color-gray-2);
704
+ }
705
+
706
+ :where([data-mantine-color-scheme='dark']) .m_cccb8ff3 {
707
+ border-color: var(--mantine-color-dark-5);
708
+ }
709
+
710
+ .m_7b4fbf50 {
711
+ padding: 0.52em 0.8em;
712
+ border-radius: var(--mantine-radius-default);
713
+ font-size: var(--preset-font-size);
714
+ white-space: nowrap;
715
+ }
716
+
717
+ @media (hover: hover) {
718
+ :where([data-mantine-color-scheme='light']) .m_7b4fbf50:hover {
719
+ background-color: var(--mantine-color-gray-0);
720
+ }
721
+
722
+ :where([data-mantine-color-scheme='dark']) .m_7b4fbf50:hover {
723
+ background-color: var(--mantine-color-dark-5);
724
+ }
725
+ }
726
+
727
+ @media (hover: none) {
728
+ :where([data-mantine-color-scheme='light']) .m_7b4fbf50:active {
729
+ background-color: var(--mantine-color-gray-0);
730
+ }
731
+
732
+ :where([data-mantine-color-scheme='dark']) .m_7b4fbf50:active {
733
+ background-color: var(--mantine-color-dark-5);
734
+ }
735
+ }
736
+
641
737
  .m_765a40cf {
642
738
  display: flex;
643
739
  font-size: var(--preset-font-size);