{"version":3,"sources":["../src/components/SpinButton/useSpinButton.ts"],"sourcesContent":["'use client';\n\nimport type * as React from 'react';\nimport { useSpinButtonBase_unstable } from '@fluentui/react-spinbutton';\n\nimport type { SpinButtonProps, SpinButtonState } from './SpinButton.types';\nimport { stringifyDataAttribute } from '../../utils';\n\n/**\n * Returns the state for a SpinButton component, given its props and ref.\n * The returned state can be modified with hooks before being passed to `renderSpinButton`.\n */\nexport const useSpinButton = (props: SpinButtonProps, ref: React.Ref<HTMLInputElement>): SpinButtonState => {\n  const state: SpinButtonState = useSpinButtonBase_unstable(props, ref);\n\n  // Set data attributes for disabled, spin direction, and bound states to simplify styling.\n  // eslint-disable-next-line react-hooks/immutability\n  state.root['data-disabled'] = stringifyDataAttribute(state.input.disabled);\n  // eslint-disable-next-line react-hooks/immutability\n  state.root['data-spin-state'] = state.spinState !== 'rest' ? state.spinState : undefined;\n  // eslint-disable-next-line react-hooks/immutability\n  state.root['data-at-bound'] = state.atBound !== 'none' ? state.atBound : undefined;\n  // eslint-disable-next-line react-hooks/immutability\n  state.root['data-invalid'] = stringifyDataAttribute(\n    state.input['aria-invalid'] === true || state.input['aria-invalid'] === 'true',\n  );\n\n  return state;\n};\n"],"names":["useSpinButton","props","ref","state","useSpinButtonBase_unstable","root","stringifyDataAttribute","input","disabled","spinState","undefined","atBound"],"mappings":"AAAA;;;;;+BAYaA;;;eAAAA;;;iCAT8B;uBAGJ;AAMhC,MAAMA,gBAAgB,CAACC,OAAwBC;IACpD,MAAMC,QAAyBC,IAAAA,2CAA0B,EAACH,OAAOC;IAEjE,0FAA0F;IAC1F,oDAAoD;IACpDC,MAAME,IAAI,CAAC,gBAAgB,GAAGC,IAAAA,6BAAsB,EAACH,MAAMI,KAAK,CAACC,QAAQ;IACzE,oDAAoD;IACpDL,MAAME,IAAI,CAAC,kBAAkB,GAAGF,MAAMM,SAAS,KAAK,SAASN,MAAMM,SAAS,GAAGC;IAC/E,oDAAoD;IACpDP,MAAME,IAAI,CAAC,gBAAgB,GAAGF,MAAMQ,OAAO,KAAK,SAASR,MAAMQ,OAAO,GAAGD;IACzE,oDAAoD;IACpDP,MAAME,IAAI,CAAC,eAAe,GAAGC,IAAAA,6BAAsB,EACjDH,MAAMI,KAAK,CAAC,eAAe,KAAK,QAAQJ,MAAMI,KAAK,CAAC,eAAe,KAAK;IAG1E,OAAOJ;AACT"}