@mantine-vue/dates 2.0.1 → 2.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.
package/esm/index.mjs CHANGED
@@ -1698,9 +1698,13 @@ var SpinInput = defineComponent({
1698
1698
  };
1699
1699
  const handleKeydown = (event) => {
1700
1700
  if (props.readOnly) return;
1701
- if (event.key === "0" && props.value === 0) {
1702
- event.preventDefault();
1703
- props.onNextInput?.();
1701
+ if (event.key === "0" || event.key === "Num0") {
1702
+ const { selectionStart, selectionEnd, value: inputValue } = event.currentTarget;
1703
+ const isEntireValueSelected = inputValue.length > 0 && selectionStart === 0 && selectionEnd === inputValue.length;
1704
+ if (props.value === 0 && !isEntireValueSelected) {
1705
+ event.preventDefault();
1706
+ props.onNextInput?.();
1707
+ }
1704
1708
  }
1705
1709
  if (event.key === "Home") {
1706
1710
  event.preventDefault();
@@ -1853,6 +1857,7 @@ var TimePicker = defineComponent({
1853
1857
  default: "sm"
1854
1858
  },
1855
1859
  presets: Array,
1860
+ closeDropdownOnPresetSelect: Boolean,
1856
1861
  hoursRef: Object
1857
1862
  },
1858
1863
  setup(props, { attrs }) {
@@ -1939,6 +1944,10 @@ var TimePicker = defineComponent({
1939
1944
  };
1940
1945
  const isClearable = computed(() => props.clearable && !props.readOnly && !props.disabled && (hours.value !== null || minutes.value !== null || seconds.value !== null || amPm.value !== null));
1941
1946
  const opened = ref(false);
1947
+ const handlePresetSelect = (timeString) => {
1948
+ setValue(timeString);
1949
+ if (props.closeDropdownOnPresetSelect) opened.value = false;
1950
+ };
1942
1951
  return () => h(Popover, {
1943
1952
  opened: props.withDropdown && opened.value,
1944
1953
  position: "bottom-start",
@@ -2030,7 +2039,7 @@ var TimePicker = defineComponent({
2030
2039
  }, () => props.presets?.map((preset) => h(Button, {
2031
2040
  size: "xs",
2032
2041
  variant: "light",
2033
- onClick: () => setValue(preset.value)
2042
+ onClick: () => handlePresetSelect(preset.value)
2034
2043
  }, () => preset.label))) : h("div", { class: Dates_module_default.timePickerControlsListGroup }, [
2035
2044
  h(TimeControlsList, {
2036
2045
  min: props.format === "12h" ? 1 : 0,