import{j as F,k as a}from"./iframe-B4rglaWu.js";import{C as k,u as R,U as S}from"./Form-a1c8JcgO.js";import{F as B,E}from"./ErrorMessage-DFhVHOBn.js";import{I as U}from"./inputnumber.esm-DSsqL5bR.js";import"./preload-helper-PPVm8Dsz.js";import"./componentbase.esm-O764U3c0.js";import"./iconbase.esm-CeJUwaxq.js";import"./inputtext.esm-PyaMa37F.js";import"./keyfilter.esm-Bl_Obi_0.js";import"./tooltip.esm-C17X5ypA.js";import"./portal.esm-9O3HNf5A.js";import"./ripple.esm-Bd7Vm0vw.js";const I=b=>{const e=F.c(28);let n,r,t,s,i,d,o,u,m;e[0]!==b?({className:n,id:t,label:s,required:m,error:r,max:i,min:d,name:o,...u}=b,e[0]=b,e[1]=n,e[2]=r,e[3]=t,e[4]=s,e[5]=i,e[6]=d,e[7]=o,e[8]=u,e[9]=m):(n=e[1],r=e[2],t=e[3],s=e[4],i=e[5],d=e[6],o=e[7],u=e[8],m=e[9]);let l;e[10]!==r||e[11]!==t||e[12]!==s||e[13]!==i||e[14]!==d||e[15]!==o||e[16]!==u||e[17]!==m?(l=j=>{const{field:C}=j;return a.jsx(a.Fragment,{children:a.jsxs(B,{className:"w-full",children:[a.jsx(U,{...u,id:t,value:C.value,name:o,className:"w-full",invalid:!!r,max:i?Number(i):void 0,min:d?Number(d):void 0,onValueChange:Q=>C.onChange(Q.value)}),a.jsxs("label",{htmlFor:t,children:[s," ",m?"*":""]})]})})},e[10]=r,e[11]=t,e[12]=s,e[13]=i,e[14]=d,e[15]=o,e[16]=u,e[17]=m,e[18]=l):l=e[18];let c;e[19]!==o||e[20]!==l?(c=a.jsx(k,{name:o,render:l}),e[19]=o,e[20]=l,e[21]=c):c=e[21];let p;e[22]!==r?(p=a.jsx(E,{error:r}),e[22]=r,e[23]=p):p=e[23];let q;return e[24]!==n||e[25]!==c||e[26]!==p?(q=a.jsx(a.Fragment,{children:a.jsxs("div",{className:n,children:[c,p]})}),e[24]=n,e[25]=c,e[26]=p,e[27]=q):q=e[27],q};I.__docgenInfo={description:`Componente de entrada numérica controlado por react-hook-form.

Versão controlada do UiInputNumber que se integra automaticamente com o
FormProvider do react-hook-form. Utiliza o Controller para gerenciar
o estado do campo.

@remarks
Este componente deve ser usado dentro de um FormProvider do react-hook-form.
Para uso sem formulário, utilize o componente UiInputNumber.
Os valores de min e max são convertidos para Number quando fornecidos.

@example
\`\`\`tsx
// Dentro de um FormProvider
<UiInputNumberControlled
  id="quantidade"
  name="quantidade"
  label="Quantidade"
  min={0}
  max={100}
  required
  error={errors.quantidade?.message}
/>
\`\`\`

@see {@link https://primereact.org/inputnumber/ | PrimeReact InputNumber}
@see {@link https://react-hook-form.com/docs/usecontroller/controller | React Hook Form Controller}`,methods:[],displayName:"UiInputNumberControlled",props:{id:{required:!0,tsType:{name:"string"},description:"Identificador único do campo, usado para associar o label ao input"},label:{required:!0,tsType:{name:"string"},description:"Texto do label flutuante exibido acima do campo"},name:{required:!0,tsType:{name:"string"},description:"Nome do campo no formulário, usado pelo react-hook-form para registro"},className:{required:!1,tsType:{name:"string"},description:"Classes CSS adicionais para o container do componente"},required:{required:!1,tsType:{name:"boolean"},description:"Indica se o campo é obrigatório (adiciona asterisco ao label)"},error:{required:!1,tsType:{name:"string"},description:"Mensagem de erro a ser exibida abaixo do campo"}},composes:["InputNumberProps"]};const $={title:"Components/Form/UiInputNumberControlled",component:I,parameters:{layout:"centered"},tags:["autodocs"],decorators:[b=>{const e=R({defaultValues:{quantidade:null}});return a.jsx(S,{methods:e,onSubmit:n=>console.log(n),children:a.jsx("div",{style:{width:"300px"},children:a.jsx(b,{})})})}],argTypes:{error:{control:"text",description:"Mensagem de erro exibida abaixo do campo"},required:{control:"boolean",description:"Indica se o campo é obrigatório"},disabled:{control:"boolean",description:"Desabilita o campo"},showButtons:{control:"boolean",description:"Exibe botões de incremento/decremento"},mode:{control:"select",options:["decimal","currency"],description:"Modo de formatação do número"}}},g={args:{id:"quantidade",name:"quantidade",label:"Quantidade"}},x={args:{id:"quantidade-obrigatoria",name:"quantidade",label:"Quantidade",required:!0}},f={args:{id:"quantidade-erro",name:"quantidade",label:"Quantidade",error:"Informe uma quantidade válida",required:!0}},h={args:{id:"quantidade-minmax",name:"quantidade",label:"Quantidade (0-100)",min:0,max:100}},y={args:{id:"quantidade-botoes",name:"quantidade",label:"Quantidade",showButtons:!0,buttonLayout:"horizontal"}},v={args:{id:"valor",name:"quantidade",label:"Valor",mode:"currency",currency:"BRL",locale:"pt-BR"}},N={args:{id:"quantidade-desabilitada",name:"quantidade",label:"Quantidade",disabled:!0}};g.parameters={...g.parameters,docs:{...g.parameters?.docs,source:{originalSource:`{
  args: {
    id: 'quantidade',
    name: 'quantidade',
    label: 'Quantidade'
  }
}`,...g.parameters?.docs?.source}}};x.parameters={...x.parameters,docs:{...x.parameters?.docs,source:{originalSource:`{
  args: {
    id: 'quantidade-obrigatoria',
    name: 'quantidade',
    label: 'Quantidade',
    required: true
  }
}`,...x.parameters?.docs?.source}}};f.parameters={...f.parameters,docs:{...f.parameters?.docs,source:{originalSource:`{
  args: {
    id: 'quantidade-erro',
    name: 'quantidade',
    label: 'Quantidade',
    error: 'Informe uma quantidade válida',
    required: true
  }
}`,...f.parameters?.docs?.source}}};h.parameters={...h.parameters,docs:{...h.parameters?.docs,source:{originalSource:`{
  args: {
    id: 'quantidade-minmax',
    name: 'quantidade',
    label: 'Quantidade (0-100)',
    min: 0,
    max: 100
  }
}`,...h.parameters?.docs?.source}}};y.parameters={...y.parameters,docs:{...y.parameters?.docs,source:{originalSource:`{
  args: {
    id: 'quantidade-botoes',
    name: 'quantidade',
    label: 'Quantidade',
    showButtons: true,
    buttonLayout: 'horizontal'
  }
}`,...y.parameters?.docs?.source}}};v.parameters={...v.parameters,docs:{...v.parameters?.docs,source:{originalSource:`{
  args: {
    id: 'valor',
    name: 'quantidade',
    label: 'Valor',
    mode: 'currency',
    currency: 'BRL',
    locale: 'pt-BR'
  }
}`,...v.parameters?.docs?.source}}};N.parameters={...N.parameters,docs:{...N.parameters?.docs,source:{originalSource:`{
  args: {
    id: 'quantidade-desabilitada',
    name: 'quantidade',
    label: 'Quantidade',
    disabled: true
  }
}`,...N.parameters?.docs?.source}}};const A=["Default","Required","WithError","WithMinMax","WithButtons","Currency","Disabled"];export{v as Currency,g as Default,N as Disabled,x as Required,y as WithButtons,f as WithError,h as WithMinMax,A as __namedExportsOrder,$ as default};
