@mantine/dates 7.17.6 → 7.17.8

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 (184) hide show
  1. package/cjs/components/DateInput/DateInput.cjs +8 -0
  2. package/cjs/components/DateInput/DateInput.cjs.map +1 -1
  3. package/cjs/components/DatePicker/DatePicker.module.css.cjs +7 -0
  4. package/cjs/components/DatePicker/DatePicker.module.css.cjs.map +1 -0
  5. package/cjs/components/DateTimePicker/get-min-max-time/get-min-max-time.cjs +21 -0
  6. package/cjs/components/DateTimePicker/get-min-max-time/get-min-max-time.cjs.map +1 -0
  7. package/cjs/components/SpinInput/SpinInput.cjs +116 -0
  8. package/cjs/components/SpinInput/SpinInput.cjs.map +1 -0
  9. package/cjs/components/TimeGrid/TimeGrid.cjs +104 -0
  10. package/cjs/components/TimeGrid/TimeGrid.cjs.map +1 -0
  11. package/cjs/components/TimeGrid/TimeGrid.context.cjs +12 -0
  12. package/cjs/components/TimeGrid/TimeGrid.context.cjs.map +1 -0
  13. package/cjs/components/TimeGrid/TimeGrid.module.css.cjs +7 -0
  14. package/cjs/components/TimeGrid/TimeGrid.module.css.cjs.map +1 -0
  15. package/cjs/components/TimeGrid/TimeGridControl.cjs +37 -0
  16. package/cjs/components/TimeGrid/TimeGridControl.cjs.map +1 -0
  17. package/cjs/components/TimeGrid/compare-time.cjs +15 -0
  18. package/cjs/components/TimeGrid/compare-time.cjs.map +1 -0
  19. package/cjs/components/TimeInput/TimeInput.cjs +2 -1
  20. package/cjs/components/TimeInput/TimeInput.cjs.map +1 -1
  21. package/cjs/components/TimePicker/AmPmInput/AmPmInput.cjs +106 -0
  22. package/cjs/components/TimePicker/AmPmInput/AmPmInput.cjs.map +1 -0
  23. package/cjs/components/TimePicker/TimeControlsList/AmPmControlsList.cjs +16 -0
  24. package/cjs/components/TimePicker/TimeControlsList/AmPmControlsList.cjs.map +1 -0
  25. package/cjs/components/TimePicker/TimeControlsList/TimeControl.cjs +27 -0
  26. package/cjs/components/TimePicker/TimeControlsList/TimeControl.cjs.map +1 -0
  27. package/cjs/components/TimePicker/TimeControlsList/TimeControlsList.cjs +54 -0
  28. package/cjs/components/TimePicker/TimeControlsList/TimeControlsList.cjs.map +1 -0
  29. package/cjs/components/TimePicker/TimePicker.cjs +381 -0
  30. package/cjs/components/TimePicker/TimePicker.cjs.map +1 -0
  31. package/cjs/components/TimePicker/TimePicker.context.cjs +12 -0
  32. package/cjs/components/TimePicker/TimePicker.context.cjs.map +1 -0
  33. package/cjs/components/TimePicker/TimePicker.module.css.cjs +7 -0
  34. package/cjs/components/TimePicker/TimePicker.module.css.cjs.map +1 -0
  35. package/cjs/components/TimePicker/TimePresets/TimePresetControl.cjs +31 -0
  36. package/cjs/components/TimePicker/TimePresets/TimePresetControl.cjs.map +1 -0
  37. package/cjs/components/TimePicker/TimePresets/TimePresetGroup.cjs +39 -0
  38. package/cjs/components/TimePicker/TimePresets/TimePresetGroup.cjs.map +1 -0
  39. package/cjs/components/TimePicker/TimePresets/TimePresets.cjs +73 -0
  40. package/cjs/components/TimePicker/TimePresets/TimePresets.cjs.map +1 -0
  41. package/cjs/components/TimePicker/use-time-picker.cjs +172 -0
  42. package/cjs/components/TimePicker/use-time-picker.cjs.map +1 -0
  43. package/cjs/components/TimePicker/utils/clamp-time/clamp-time.cjs +15 -0
  44. package/cjs/components/TimePicker/utils/clamp-time/clamp-time.cjs.map +1 -0
  45. package/cjs/components/TimePicker/utils/get-parsed-time/get-parsed-time.cjs +38 -0
  46. package/cjs/components/TimePicker/utils/get-parsed-time/get-parsed-time.cjs.map +1 -0
  47. package/cjs/components/TimePicker/utils/get-time-range/get-time-range.cjs +18 -0
  48. package/cjs/components/TimePicker/utils/get-time-range/get-time-range.cjs.map +1 -0
  49. package/cjs/components/TimePicker/utils/get-time-string/get-time-string.cjs +51 -0
  50. package/cjs/components/TimePicker/utils/get-time-string/get-time-string.cjs.map +1 -0
  51. package/cjs/components/TimePicker/utils/is-same-time/is-same-time.cjs +16 -0
  52. package/cjs/components/TimePicker/utils/is-same-time/is-same-time.cjs.map +1 -0
  53. package/cjs/components/TimePicker/utils/pad-time/pad-time.cjs +9 -0
  54. package/cjs/components/TimePicker/utils/pad-time/pad-time.cjs.map +1 -0
  55. package/cjs/components/TimePicker/utils/split-time-string/split-time-string.cjs +10 -0
  56. package/cjs/components/TimePicker/utils/split-time-string/split-time-string.cjs.map +1 -0
  57. package/cjs/components/TimePicker/utils/time-to-seconds/time-to-seconds.cjs +24 -0
  58. package/cjs/components/TimePicker/utils/time-to-seconds/time-to-seconds.cjs.map +1 -0
  59. package/cjs/components/TimeValue/TimeValue.cjs +18 -0
  60. package/cjs/components/TimeValue/TimeValue.cjs.map +1 -0
  61. package/cjs/components/TimeValue/get-formatted-time/get-formatted-time.cjs +31 -0
  62. package/cjs/components/TimeValue/get-formatted-time/get-formatted-time.cjs.map +1 -0
  63. package/cjs/utils/clamp-date/clamp-date.cjs +25 -0
  64. package/cjs/utils/clamp-date/clamp-date.cjs.map +1 -0
  65. package/cjs/utils/get-default-clamped-date/get-default-clamped-date.cjs +29 -0
  66. package/cjs/utils/get-default-clamped-date/get-default-clamped-date.cjs.map +1 -0
  67. package/cjs/utils/get-formatted-date/get-formatted-date.cjs +41 -0
  68. package/cjs/utils/get-formatted-date/get-formatted-date.cjs.map +1 -0
  69. package/cjs/utils/handle-control-key-down/handle-control-key-down.cjs +158 -0
  70. package/cjs/utils/handle-control-key-down/handle-control-key-down.cjs.map +1 -0
  71. package/cjs/utils/to-date-string/to-date-string.cjs +19 -0
  72. package/cjs/utils/to-date-string/to-date-string.cjs.map +1 -0
  73. package/esm/components/DateInput/DateInput.mjs +8 -0
  74. package/esm/components/DateInput/DateInput.mjs.map +1 -1
  75. package/esm/components/DatePicker/DatePicker.module.css.mjs +5 -0
  76. package/esm/components/DatePicker/DatePicker.module.css.mjs.map +1 -0
  77. package/esm/components/DateTimePicker/get-min-max-time/get-min-max-time.mjs +14 -0
  78. package/esm/components/DateTimePicker/get-min-max-time/get-min-max-time.mjs.map +1 -0
  79. package/esm/components/SpinInput/SpinInput.mjs +114 -0
  80. package/esm/components/SpinInput/SpinInput.mjs.map +1 -0
  81. package/esm/components/TimeGrid/TimeGrid.context.mjs +9 -0
  82. package/esm/components/TimeGrid/TimeGrid.context.mjs.map +1 -0
  83. package/esm/components/TimeGrid/TimeGrid.mjs +102 -0
  84. package/esm/components/TimeGrid/TimeGrid.mjs.map +1 -0
  85. package/esm/components/TimeGrid/TimeGrid.module.css.mjs +5 -0
  86. package/esm/components/TimeGrid/TimeGrid.module.css.mjs.map +1 -0
  87. package/esm/components/TimeGrid/TimeGridControl.mjs +31 -0
  88. package/esm/components/TimeGrid/TimeGridControl.mjs.map +1 -0
  89. package/esm/components/TimeGrid/compare-time.mjs +12 -0
  90. package/esm/components/TimeGrid/compare-time.mjs.map +1 -0
  91. package/esm/components/TimeInput/TimeInput.mjs +2 -1
  92. package/esm/components/TimeInput/TimeInput.mjs.map +1 -1
  93. package/esm/components/TimePicker/AmPmInput/AmPmInput.mjs +104 -0
  94. package/esm/components/TimePicker/AmPmInput/AmPmInput.mjs.map +1 -0
  95. package/esm/components/TimePicker/TimeControlsList/AmPmControlsList.mjs +14 -0
  96. package/esm/components/TimePicker/TimeControlsList/AmPmControlsList.mjs.map +1 -0
  97. package/esm/components/TimePicker/TimeControlsList/TimeControl.mjs +25 -0
  98. package/esm/components/TimePicker/TimeControlsList/TimeControl.mjs.map +1 -0
  99. package/esm/components/TimePicker/TimeControlsList/TimeControlsList.mjs +52 -0
  100. package/esm/components/TimePicker/TimeControlsList/TimeControlsList.mjs.map +1 -0
  101. package/esm/components/TimePicker/TimePicker.context.mjs +9 -0
  102. package/esm/components/TimePicker/TimePicker.context.mjs.map +1 -0
  103. package/esm/components/TimePicker/TimePicker.mjs +379 -0
  104. package/esm/components/TimePicker/TimePicker.mjs.map +1 -0
  105. package/esm/components/TimePicker/TimePicker.module.css.mjs +5 -0
  106. package/esm/components/TimePicker/TimePicker.module.css.mjs.map +1 -0
  107. package/esm/components/TimePicker/TimePresets/TimePresetControl.mjs +29 -0
  108. package/esm/components/TimePicker/TimePresets/TimePresetControl.mjs.map +1 -0
  109. package/esm/components/TimePicker/TimePresets/TimePresetGroup.mjs +37 -0
  110. package/esm/components/TimePicker/TimePresets/TimePresetGroup.mjs.map +1 -0
  111. package/esm/components/TimePicker/TimePresets/TimePresets.mjs +71 -0
  112. package/esm/components/TimePicker/TimePresets/TimePresets.mjs.map +1 -0
  113. package/esm/components/TimePicker/use-time-picker.mjs +170 -0
  114. package/esm/components/TimePicker/use-time-picker.mjs.map +1 -0
  115. package/esm/components/TimePicker/utils/clamp-time/clamp-time.mjs +13 -0
  116. package/esm/components/TimePicker/utils/clamp-time/clamp-time.mjs.map +1 -0
  117. package/esm/components/TimePicker/utils/get-parsed-time/get-parsed-time.mjs +35 -0
  118. package/esm/components/TimePicker/utils/get-parsed-time/get-parsed-time.mjs.map +1 -0
  119. package/esm/components/TimePicker/utils/get-time-range/get-time-range.mjs +16 -0
  120. package/esm/components/TimePicker/utils/get-time-range/get-time-range.mjs.map +1 -0
  121. package/esm/components/TimePicker/utils/get-time-string/get-time-string.mjs +49 -0
  122. package/esm/components/TimePicker/utils/get-time-string/get-time-string.mjs.map +1 -0
  123. package/esm/components/TimePicker/utils/is-same-time/is-same-time.mjs +14 -0
  124. package/esm/components/TimePicker/utils/is-same-time/is-same-time.mjs.map +1 -0
  125. package/esm/components/TimePicker/utils/pad-time/pad-time.mjs +7 -0
  126. package/esm/components/TimePicker/utils/pad-time/pad-time.mjs.map +1 -0
  127. package/esm/components/TimePicker/utils/split-time-string/split-time-string.mjs +8 -0
  128. package/esm/components/TimePicker/utils/split-time-string/split-time-string.mjs.map +1 -0
  129. package/esm/components/TimePicker/utils/time-to-seconds/time-to-seconds.mjs +21 -0
  130. package/esm/components/TimePicker/utils/time-to-seconds/time-to-seconds.mjs.map +1 -0
  131. package/esm/components/TimeValue/TimeValue.mjs +16 -0
  132. package/esm/components/TimeValue/TimeValue.mjs.map +1 -0
  133. package/esm/components/TimeValue/get-formatted-time/get-formatted-time.mjs +29 -0
  134. package/esm/components/TimeValue/get-formatted-time/get-formatted-time.mjs.map +1 -0
  135. package/esm/utils/clamp-date/clamp-date.mjs +19 -0
  136. package/esm/utils/clamp-date/clamp-date.mjs.map +1 -0
  137. package/esm/utils/get-default-clamped-date/get-default-clamped-date.mjs +23 -0
  138. package/esm/utils/get-default-clamped-date/get-default-clamped-date.mjs.map +1 -0
  139. package/esm/utils/get-formatted-date/get-formatted-date.mjs +34 -0
  140. package/esm/utils/get-formatted-date/get-formatted-date.mjs.map +1 -0
  141. package/esm/utils/handle-control-key-down/handle-control-key-down.mjs +156 -0
  142. package/esm/utils/handle-control-key-down/handle-control-key-down.mjs.map +1 -0
  143. package/esm/utils/to-date-string/to-date-string.mjs +12 -0
  144. package/esm/utils/to-date-string/to-date-string.mjs.map +1 -0
  145. package/lib/components/Calendar/pick-calendar-levels-props/pick-calendar-levels-props.d.ts +1 -1
  146. package/lib/components/DateInputMask/DateInputMask.d.ts +63 -0
  147. package/lib/components/DateInputMask/use-date-input-mask.d.ts +1 -0
  148. package/lib/components/DateTimePicker/get-min-max-time/get-min-max-time.d.ts +12 -0
  149. package/lib/components/SpinInput/SpinInput.d.ts +12 -0
  150. package/lib/components/SpinInput/index.d.ts +1 -0
  151. package/lib/components/TimeGrid/TimeGrid.context.d.ts +10 -0
  152. package/lib/components/TimeGrid/TimeGrid.d.ts +52 -0
  153. package/lib/components/TimeGrid/TimeGridControl.d.ts +10 -0
  154. package/lib/components/TimeGrid/compare-time.d.ts +2 -0
  155. package/lib/components/TimeGrid/index.d.ts +3 -0
  156. package/lib/components/TimePicker/AmPmInput/AmPmInput.d.ts +14 -0
  157. package/lib/components/TimePicker/TimeControlsList/AmPmControlsList.d.ts +13 -0
  158. package/lib/components/TimePicker/TimeControlsList/TimeControl.d.ts +10 -0
  159. package/lib/components/TimePicker/TimeControlsList/TimeControlsList.d.ts +12 -0
  160. package/lib/components/TimePicker/TimePicker.context.d.ts +12 -0
  161. package/lib/components/TimePicker/TimePicker.d.ts +98 -0
  162. package/lib/components/TimePicker/TimePicker.types.d.ts +22 -0
  163. package/lib/components/TimePicker/TimePresets/TimePresetControl.d.ts +14 -0
  164. package/lib/components/TimePicker/TimePresets/TimePresetGroup.d.ts +14 -0
  165. package/lib/components/TimePicker/TimePresets/TimePresets.d.ts +14 -0
  166. package/lib/components/TimePicker/index.d.ts +4 -0
  167. package/lib/components/TimePicker/use-time-picker.d.ts +40 -0
  168. package/lib/components/TimePicker/utils/clamp-time/clamp-time.d.ts +6 -0
  169. package/lib/components/TimePicker/utils/get-parsed-time/get-parsed-time.d.ts +35 -0
  170. package/lib/components/TimePicker/utils/get-time-range/get-time-range.d.ts +7 -0
  171. package/lib/components/TimePicker/utils/get-time-string/get-time-string.d.ts +15 -0
  172. package/lib/components/TimePicker/utils/is-same-time/is-same-time.d.ts +7 -0
  173. package/lib/components/TimePicker/utils/pad-time/pad-time.d.ts +1 -0
  174. package/lib/components/TimePicker/utils/split-time-string/split-time-string.d.ts +5 -0
  175. package/lib/components/TimePicker/utils/time-to-seconds/time-to-seconds.d.ts +7 -0
  176. package/lib/components/TimeValue/TimeValue.d.ts +15 -0
  177. package/lib/components/TimeValue/get-formatted-time/get-formatted-time.d.ts +8 -0
  178. package/lib/components/TimeValue/index.d.ts +2 -0
  179. package/lib/utils/clamp-date/clamp-date.d.ts +2 -0
  180. package/lib/utils/get-default-clamped-date/get-default-clamped-date.d.ts +7 -0
  181. package/lib/utils/get-formatted-date/get-formatted-date.d.ts +15 -0
  182. package/lib/utils/handle-control-key-down/handle-control-key-down.d.ts +11 -0
  183. package/lib/utils/to-date-string/to-date-string.d.ts +4 -0
  184. package/package.json +3 -3
@@ -0,0 +1,98 @@
1
+ import { __BaseInputProps, __InputStylesNames, BoxProps, CloseButtonProps, DataAttributes, ElementProps, Factory, InputVariant, PopoverProps, ScrollAreaProps, StylesApiProps } from '@mantine/core';
2
+ import { TimePickerAmPmLabels, TimePickerFormat, TimePickerPasteSplit, TimePickerPresets } from './TimePicker.types';
3
+ export type TimePickerStylesNames = 'fieldsRoot' | 'fieldsGroup' | 'field' | 'controlsList' | 'controlsListGroup' | 'control' | 'dropdown' | 'presetsRoot' | 'presetsGroup' | 'presetsGroupLabel' | 'presetControl' | 'scrollarea' | __InputStylesNames;
4
+ export type TimePickerCssVariables = {
5
+ dropdown: '--control-font-size';
6
+ };
7
+ export interface TimePickerProps extends BoxProps, __BaseInputProps, StylesApiProps<TimePickerFactory>, ElementProps<'div', 'onChange' | 'defaultValue'> {
8
+ /** Controlled component value */
9
+ value?: string;
10
+ /** Uncontrolled component default value */
11
+ defaultValue?: string;
12
+ /** Called when the value changes */
13
+ onChange?: (value: string) => void;
14
+ /** Determines whether the clear button should be displayed, `false` by default */
15
+ clearable?: boolean;
16
+ /** `name` prop passed down to the hidden input */
17
+ name?: string;
18
+ /** `form` prop passed down to the hidden input */
19
+ form?: string;
20
+ /** Min possible time value in `hh:mm:ss` format */
21
+ min?: string;
22
+ /** Max possible time value in `hh:mm:ss` format */
23
+ max?: string;
24
+ /** Time format, `'24h'` by default */
25
+ format?: TimePickerFormat;
26
+ /** Number by which hours are incremented/decremented, `1` by default */
27
+ hoursStep?: number;
28
+ /** Number by which minutes are incremented/decremented, `1` by default */
29
+ minutesStep?: number;
30
+ /** Number by which seconds are incremented/decremented, `1` by default */
31
+ secondsStep?: number;
32
+ /** Determines whether the seconds input should be displayed, `false` by default */
33
+ withSeconds?: boolean;
34
+ /** `aria-label` of hours input */
35
+ hoursInputLabel?: string;
36
+ /** `aria-label` of minutes input */
37
+ minutesInputLabel?: string;
38
+ /** `aria-label` of seconds input */
39
+ secondsInputLabel?: string;
40
+ /** `aria-label` of am/pm input */
41
+ amPmInputLabel?: string;
42
+ /** Labels used for am/pm values, `{ am: 'AM', pm: 'PM' }` by default */
43
+ amPmLabels?: TimePickerAmPmLabels;
44
+ /** Determines whether the dropdown with time controls list should be visible when the input has focus, `false` by default */
45
+ withDropdown?: boolean;
46
+ /** Props passed down to `Popover` component */
47
+ popoverProps?: PopoverProps;
48
+ /** Called once when one of the inputs is focused, not called when focused is shifted between hours, minutes, seconds and am/pm inputs */
49
+ onFocus?: (event: React.FocusEvent<HTMLInputElement>) => void;
50
+ /** Called once when the focus is no longer on any of the inputs */
51
+ onBlur?: (event: React.FocusEvent<HTMLDivElement>) => void;
52
+ /** Props passed down to clear button */
53
+ clearButtonProps?: CloseButtonProps & ElementProps<'button'> & DataAttributes;
54
+ /** Props passed down to hours input */
55
+ hoursInputProps?: React.ComponentPropsWithoutRef<'input'> & DataAttributes;
56
+ /** Props passed down to minutes input */
57
+ minutesInputProps?: React.ComponentPropsWithoutRef<'input'> & DataAttributes;
58
+ /** Props passed down to seconds input */
59
+ secondsInputProps?: React.ComponentPropsWithoutRef<'input'> & DataAttributes;
60
+ /** Props passed down to am/pm select */
61
+ amPmSelectProps?: React.ComponentPropsWithoutRef<'select'> & DataAttributes;
62
+ /** If set, the value cannot be updated */
63
+ readOnly?: boolean;
64
+ /** If set, the component becomes disabled */
65
+ disabled?: boolean;
66
+ /** Props passed down to the hidden input */
67
+ hiddenInputProps?: React.ComponentPropsWithoutRef<'input'> & DataAttributes;
68
+ /** A function to transform paste values, by default time in 24h format can be parsed on paste for example `23:34:22` */
69
+ pasteSplit?: TimePickerPasteSplit;
70
+ /** A ref object to get node reference of the hours input */
71
+ hoursRef?: React.Ref<HTMLInputElement>;
72
+ /** A ref object to get node reference of the minutes input */
73
+ minutesRef?: React.Ref<HTMLInputElement>;
74
+ /** A ref object to get node reference of the seconds input */
75
+ secondsRef?: React.Ref<HTMLInputElement>;
76
+ /** A ref object to get node reference of the am/pm select */
77
+ amPmRef?: React.Ref<HTMLSelectElement>;
78
+ /** Time presets to display in the dropdown */
79
+ presets?: TimePickerPresets;
80
+ /** Maximum height of the content displayed in the dropdown in px, `200` by default */
81
+ maxDropdownContentHeight?: number;
82
+ /** Props passed down to all underlying `ScrollArea` components */
83
+ scrollAreaProps?: ScrollAreaProps;
84
+ }
85
+ export type TimePickerFactory = Factory<{
86
+ props: TimePickerProps;
87
+ ref: HTMLDivElement;
88
+ stylesNames: TimePickerStylesNames;
89
+ vars: TimePickerCssVariables;
90
+ variant: InputVariant;
91
+ }>;
92
+ export declare const TimePicker: import("@mantine/core").MantineComponent<{
93
+ props: TimePickerProps;
94
+ ref: HTMLDivElement;
95
+ stylesNames: TimePickerStylesNames;
96
+ vars: TimePickerCssVariables;
97
+ variant: InputVariant;
98
+ }>;
@@ -0,0 +1,22 @@
1
+ export type TimePickerFormat = '12h' | '24h';
2
+ export interface TimePickerAmPmLabels {
3
+ am: string;
4
+ pm: string;
5
+ }
6
+ export interface TimePickerPasteSplitInput {
7
+ time: string;
8
+ format: TimePickerFormat;
9
+ amPmLabels: TimePickerAmPmLabels;
10
+ }
11
+ export interface TimePickerPasteSplitReturnType {
12
+ hours: number | null;
13
+ minutes: number | null;
14
+ seconds: number | null;
15
+ amPm: string | null;
16
+ }
17
+ export type TimePickerPasteSplit = (input: TimePickerPasteSplitInput) => TimePickerPasteSplitReturnType;
18
+ export interface TimePickerPresetGroup {
19
+ label: React.ReactNode;
20
+ values: string[];
21
+ }
22
+ export type TimePickerPresets = string[] | TimePickerPresetGroup[];
@@ -0,0 +1,14 @@
1
+ import { TimePickerAmPmLabels, TimePickerFormat } from '../TimePicker.types';
2
+ interface TimePresetControlProps {
3
+ value: string;
4
+ active: boolean;
5
+ onChange: (value: string) => void;
6
+ format: TimePickerFormat;
7
+ amPmLabels: TimePickerAmPmLabels;
8
+ withSeconds: boolean;
9
+ }
10
+ export declare function TimePresetControl({ value, active, onChange, format, amPmLabels, withSeconds, }: TimePresetControlProps): import("react/jsx-runtime").JSX.Element;
11
+ export declare namespace TimePresetControl {
12
+ var displayName: string;
13
+ }
14
+ export {};
@@ -0,0 +1,14 @@
1
+ import { TimePickerAmPmLabels, TimePickerFormat, TimePickerPresetGroup } from '../TimePicker.types';
2
+ interface TimePresetGroupProps {
3
+ value: string;
4
+ data: TimePickerPresetGroup;
5
+ onChange: (value: string) => void;
6
+ format: TimePickerFormat;
7
+ amPmLabels: TimePickerAmPmLabels;
8
+ withSeconds: boolean;
9
+ }
10
+ export declare function TimePresetGroup({ value, data, onChange, format, amPmLabels, withSeconds, }: TimePresetGroupProps): import("react/jsx-runtime").JSX.Element;
11
+ export declare namespace TimePresetGroup {
12
+ var displayName: string;
13
+ }
14
+ export {};
@@ -0,0 +1,14 @@
1
+ import { TimePickerAmPmLabels, TimePickerFormat, TimePickerPresets } from '../TimePicker.types';
2
+ interface TimePresetsProps {
3
+ presets: TimePickerPresets;
4
+ format: TimePickerFormat;
5
+ amPmLabels: TimePickerAmPmLabels;
6
+ value: string;
7
+ withSeconds: boolean;
8
+ onChange: (value: string) => void;
9
+ }
10
+ export declare function TimePresets({ presets, format, amPmLabels, withSeconds, value, onChange, }: TimePresetsProps): import("react/jsx-runtime").JSX.Element | null;
11
+ export declare namespace TimePresets {
12
+ var displayName: string;
13
+ }
14
+ export {};
@@ -0,0 +1,4 @@
1
+ export { TimePicker } from './TimePicker';
2
+ export { getTimeRange } from './utils/get-time-range/get-time-range';
3
+ export type { TimePickerCssVariables, TimePickerFactory, TimePickerProps, TimePickerStylesNames, } from './TimePicker';
4
+ export type { TimePickerAmPmLabels, TimePickerFormat, TimePickerPasteSplit, TimePickerPresets, } from './TimePicker.types';
@@ -0,0 +1,40 @@
1
+ import type { TimePickerAmPmLabels, TimePickerFormat, TimePickerPasteSplit } from './TimePicker.types';
2
+ interface UseTimePickerInput {
3
+ value: string | undefined;
4
+ defaultValue: string | undefined;
5
+ onChange: ((value: string) => void) | undefined;
6
+ format: TimePickerFormat;
7
+ amPmLabels: TimePickerAmPmLabels;
8
+ withSeconds: boolean | undefined;
9
+ min: string | undefined;
10
+ max: string | undefined;
11
+ readOnly: boolean | undefined;
12
+ disabled: boolean | undefined;
13
+ clearable: boolean | undefined;
14
+ pasteSplit: TimePickerPasteSplit | undefined;
15
+ }
16
+ export declare function useTimePicker({ value, defaultValue, onChange, format, amPmLabels, withSeconds, min, max, clearable, readOnly, disabled, pasteSplit, }: UseTimePickerInput): {
17
+ refs: {
18
+ hours: import("react").RefObject<HTMLInputElement | null>;
19
+ minutes: import("react").RefObject<HTMLInputElement | null>;
20
+ seconds: import("react").RefObject<HTMLInputElement | null>;
21
+ amPm: import("react").RefObject<HTMLSelectElement | null>;
22
+ };
23
+ values: {
24
+ hours: number | null;
25
+ minutes: number | null;
26
+ seconds: number | null;
27
+ amPm: string | null;
28
+ };
29
+ setHours: (value: number | null) => void;
30
+ setMinutes: (value: number | null) => void;
31
+ setSeconds: (value: number | null) => void;
32
+ setAmPm: (value: string | null) => void;
33
+ focus: (field: "hours" | "minutes" | "seconds" | "amPm") => void;
34
+ clear: () => void;
35
+ onPaste: (event: React.ClipboardEvent<any>) => void;
36
+ setTimeString: (timeString: string) => void;
37
+ isClearable: boolean | undefined;
38
+ hiddenInputValue: string;
39
+ };
40
+ export {};
@@ -0,0 +1,6 @@
1
+ export declare function clampTime(time: string, min: string, max: string): {
2
+ timeString: string;
3
+ hours: number;
4
+ minutes: number;
5
+ seconds: number;
6
+ };
@@ -0,0 +1,35 @@
1
+ import { TimePickerAmPmLabels, TimePickerFormat } from '../../TimePicker.types';
2
+ interface GetParsedTimeInput {
3
+ time: string;
4
+ format: TimePickerFormat;
5
+ amPmLabels: TimePickerAmPmLabels;
6
+ }
7
+ interface ConvertTimeTo12HourFormatInput {
8
+ hours: number | null;
9
+ minutes: number | null;
10
+ seconds: number | null;
11
+ amPmLabels: TimePickerAmPmLabels;
12
+ }
13
+ export declare function convertTimeTo12HourFormat({ hours, minutes, seconds, amPmLabels, }: ConvertTimeTo12HourFormatInput): {
14
+ hours: null;
15
+ minutes: null;
16
+ seconds: null;
17
+ amPm: null;
18
+ } | {
19
+ hours: number;
20
+ minutes: number | null;
21
+ seconds: number | null;
22
+ amPm: string;
23
+ };
24
+ export declare function getParsedTime({ time, format, amPmLabels }: GetParsedTimeInput): {
25
+ hours: number;
26
+ minutes: number | null;
27
+ seconds: number | null;
28
+ amPm: string;
29
+ } | {
30
+ amPm: null;
31
+ hours: number | null;
32
+ minutes: number | null;
33
+ seconds: number | null;
34
+ };
35
+ export {};
@@ -0,0 +1,7 @@
1
+ interface GetTimeRangeInput {
2
+ startTime: string;
3
+ endTime: string;
4
+ interval: string;
5
+ }
6
+ export declare function getTimeRange({ startTime, endTime, interval }: GetTimeRangeInput): string[];
7
+ export {};
@@ -0,0 +1,15 @@
1
+ import { TimePickerAmPmLabels, TimePickerFormat } from '../../TimePicker.types';
2
+ interface GetTimeStringInput {
3
+ hours: number | null;
4
+ minutes: number | null;
5
+ seconds: number | null;
6
+ format: TimePickerFormat;
7
+ withSeconds: boolean;
8
+ amPm: string | null;
9
+ amPmLabels: TimePickerAmPmLabels;
10
+ }
11
+ export declare function getTimeString({ hours, minutes, seconds, format, withSeconds, amPm, amPmLabels, }: GetTimeStringInput): {
12
+ valid: boolean;
13
+ value: string;
14
+ };
15
+ export {};
@@ -0,0 +1,7 @@
1
+ interface IsSameTimeInput {
2
+ time: string;
3
+ compare: string;
4
+ withSeconds: boolean;
5
+ }
6
+ export declare function isSameTime({ time, compare, withSeconds }: IsSameTimeInput): boolean;
7
+ export {};
@@ -0,0 +1 @@
1
+ export declare function padTime(value: number): string;
@@ -0,0 +1,5 @@
1
+ export declare function splitTimeString(timeString: string): {
2
+ hours: number | null;
3
+ minutes: number | null;
4
+ seconds: number | null;
5
+ };
@@ -0,0 +1,7 @@
1
+ export declare function timeToSeconds(timeStr: string): number;
2
+ export declare function secondsToTime(seconds: number): {
3
+ timeString: string;
4
+ hours: number;
5
+ minutes: number;
6
+ seconds: number;
7
+ };
@@ -0,0 +1,15 @@
1
+ import type { TimePickerAmPmLabels, TimePickerFormat } from '../TimePicker';
2
+ export interface TimeValueProps {
3
+ /** Time to format */
4
+ value: string | Date;
5
+ /** Time format, `'24h'` by default */
6
+ format?: TimePickerFormat;
7
+ /** AM/PM labels, `{ am: 'AM', pm: 'PM' }` by default */
8
+ amPmLabels?: TimePickerAmPmLabels;
9
+ /** Determines whether seconds should be displayed, `false` by default */
10
+ withSeconds?: boolean;
11
+ }
12
+ export declare function TimeValue({ value, format, amPmLabels, withSeconds, }: TimeValueProps): import("react/jsx-runtime").JSX.Element;
13
+ export declare namespace TimeValue {
14
+ var displayName: string;
15
+ }
@@ -0,0 +1,8 @@
1
+ import type { TimePickerAmPmLabels, TimePickerFormat } from '../../TimePicker';
2
+ export interface GetFormattedTimeInput {
3
+ value: string | Date;
4
+ format: TimePickerFormat;
5
+ amPmLabels: TimePickerAmPmLabels;
6
+ withSeconds: boolean;
7
+ }
8
+ export declare function getFormattedTime({ value, format, amPmLabels, withSeconds, }: GetFormattedTimeInput): string | null;
@@ -0,0 +1,2 @@
1
+ export { TimeValue } from './TimeValue';
2
+ export type { TimeValueProps } from './TimeValue';
@@ -0,0 +1,2 @@
1
+ import { DateStringValue } from '../../types';
2
+ export declare function clampDate(minDate: DateStringValue | Date | undefined, maxDate: DateStringValue | Date | undefined, date: DateStringValue | Date): DateStringValue;
@@ -0,0 +1,7 @@
1
+ import { DateStringValue } from '../../types';
2
+ interface GetDefaultClampedDate {
3
+ minDate: DateStringValue | Date | undefined;
4
+ maxDate: DateStringValue | Date | undefined;
5
+ }
6
+ export declare function getDefaultClampedDate({ minDate, maxDate, }: GetDefaultClampedDate): DateStringValue;
7
+ export {};
@@ -0,0 +1,15 @@
1
+ import { DatePickerType, DatePickerValue } from '../../types';
2
+ interface DateFormatterInput {
3
+ type: DatePickerType;
4
+ date: DatePickerValue<DatePickerType>;
5
+ locale: string;
6
+ format: string;
7
+ labelSeparator: string;
8
+ }
9
+ export type DateFormatter = (input: DateFormatterInput) => string;
10
+ export declare function defaultDateFormatter({ type, date, locale, format, labelSeparator, }: DateFormatterInput): string;
11
+ interface GetFormattedDateInput extends DateFormatterInput {
12
+ formatter?: DateFormatter;
13
+ }
14
+ export declare function getFormattedDate({ formatter, ...others }: GetFormattedDateInput): string;
15
+ export {};
@@ -0,0 +1,11 @@
1
+ import { RefObject } from 'react';
2
+ type ControlsRef = RefObject<HTMLButtonElement[][][]>;
3
+ interface HandleControlKeyDownInput {
4
+ controlsRef: ControlsRef;
5
+ levelIndex: number;
6
+ rowIndex: number;
7
+ cellIndex: number;
8
+ event: React.KeyboardEvent<HTMLButtonElement>;
9
+ }
10
+ export declare function handleControlKeyDown({ controlsRef, levelIndex, rowIndex, cellIndex, event, }: HandleControlKeyDownInput): void;
11
+ export {};
@@ -0,0 +1,4 @@
1
+ import { Dayjs } from 'dayjs';
2
+ import { DateStringValue } from '../../types';
3
+ export declare function toDateString(value: string | number | Date | Dayjs | undefined | null): DateStringValue | undefined | null;
4
+ export declare function toDateTimeString(value: string | number | Date | Dayjs | undefined | null): DateStringValue | undefined | null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mantine/dates",
3
- "version": "7.17.6",
3
+ "version": "7.17.8",
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": "7.17.6",
49
- "@mantine/hooks": "7.17.6",
48
+ "@mantine/core": "7.17.8",
49
+ "@mantine/hooks": "7.17.8",
50
50
  "dayjs": ">=1.0.0",
51
51
  "react": "^18.x || ^19.x",
52
52
  "react-dom": "^18.x || ^19.x"