message: fix: issue where number-input doesn't submit with decimals due to pattern mismatch
diff: import { useCounter, UseCounterProps } from "@chakra-ui/counter"
  import { useBoolean } from "@chakra-ui/hooks"
  import {
  + ariaAttr,
  callAllHandlers,
  - Dict,
  focus,
  + isBrowser,
  + maxSafeInteger,
  mergeRefs,
  - normalizeEventKey,
  - StringOrNumber,
  - ariaAttr,
  minSafeInteger,
  - maxSafeInteger,
  - isBrowser,
  + normalizeEventKey,
  PropGetter,
  + StringOrNumber,
  } from "@chakra-ui/utils"
  -import {
  - useCallback,
  - useRef,
  - InputHTMLAttributes,
  - ChangeEvent,
  - KeyboardEvent,
  -} from "react"
  +import { ChangeEvent, KeyboardEvent, useCallback, useRef } from "react"
  import { useSpinner } from "./use-spinner"
  import {
  isFloatingPointNumericCharacter,
  @@ -65,6 +58,21 @@ export interface UseNumberInputProps extends UseCounterProps {
  * The `id` to use for the number input field.
  */
  id?: string
  + /**
  + * The pattern used to check the <input> element's value against on form submission.
  + *
  + * @default
  + * "[0-9]*(.[0-9]+)?"
  + */
  + pattern?: React.InputHTMLAttributes<any>["pattern"]
  + /**
  + * Hints at the type of data that might be entered by the user. It also determines
  + * the type of keyboard shown to the user on mobile devices
  + *
  + * @default
  + * "decimal"
  + */
  + inputMode?: React.InputHTMLAttributes<any>["inputMode"]
  }
  /**
  @@ -90,6 +98,8 @@ export function useNumberInput(props: UseNumberInputProps = {}) {
  isDisabled,
  getAriaValueText,
  isInvalid,
  + pattern = "[0-9]*(.[0-9]+)?",
  + inputMode = "decimal",
  id,
  ...htmlProps
  } = props
  @@ -221,7 +231,8 @@ export function useNumberInput(props: UseNumberInputProps = {}) {
  * @see https://www.w3.org/TR/wai-aria-practices-1.1/#wai-aria-roles-states-and-properties-18
  * @see https://www.w3.org/TR/wai-aria-1.1/#aria-valuetext
  */
  - const ariaValueText = getAriaValueText?.(counter.value) ?? counter.value
  + const ariaValueText =
  + getAriaValueText?.(counter.value) ?? counter.value.toString()
  /**
  * Function that clamps the input's value on blur
  @@ -319,8 +330,6 @@ export function useNumberInput(props: UseNumberInputProps = {}) {
  [pointerDown, counter.isAtMin, keepWithinRange, spinDown, spinner.stop],
  )
  - type InputMode = InputHTMLAttributes<any>["inputMode"]
  -
  const getInputProps: PropGetter = useCallback(
  (props = {}, ref = null) => ({
  ...props,
  @@ -329,8 +338,8 @@ export function useNumberInput(props: UseNumberInputProps = {}) {
  value: counter.value,
  role: "spinbutton",
  type: "text",
  - inputMode: "numeric" as InputMode,
  - pattern: "[0-9]*",
  + inputMode,
  + pattern,
  "aria-valuemin": min,
  "aria-valuemax": max,
  "aria-disabled": isDisabled,
  @@ -349,6 +358,8 @@ export function useNumberInput(props: UseNumberInputProps = {}) {
  onBlur: callAllHandlers(props.onBlur, onBlur),
  }),
  [
  + inputMode,
  + pattern,
  ariaValueText,
  counter.isOutOfRange,
  counter.value,
  