import{j as D,k as t,r as S}from"./iframe-B4rglaWu.js";import{F,E as R}from"./ErrorMessage-DFhVHOBn.js";import{I as j}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 Q=n=>{const e=D.c(24);let o,a,r,s,i,m;e[0]!==n?({className:o,id:r,label:s,required:m,error:a,...i}=n,e[0]=n,e[1]=o,e[2]=a,e[3]=r,e[4]=s,e[5]=i,e[6]=m):(o=e[1],a=e[2],r=e[3],s=e[4],i=e[5],m=e[6]);const I=!!a;let d;e[7]!==r||e[8]!==i||e[9]!==I?(d=t.jsx(j,{id:r,...i,className:"w-full",invalid:I}),e[7]=r,e[8]=i,e[9]=I,e[10]=d):d=e[10];const N=m?"*":"";let l;e[11]!==r||e[12]!==s||e[13]!==N?(l=t.jsxs("label",{htmlFor:r,children:[s," ",N]}),e[11]=r,e[12]=s,e[13]=N,e[14]=l):l=e[14];let c;e[15]!==d||e[16]!==l?(c=t.jsxs(F,{className:"w-full",children:[d,l]}),e[15]=d,e[16]=l,e[17]=c):c=e[17];let u;e[18]!==a?(u=t.jsx(R,{error:a}),e[18]=a,e[19]=u):u=e[19];let p;return e[20]!==o||e[21]!==c||e[22]!==u?(p=t.jsx(t.Fragment,{children:t.jsxs("div",{className:o,children:[c,u]})}),e[20]=o,e[21]=c,e[22]=u,e[23]=p):p=e[23],p};Q.__docgenInfo={description:`Componente de entrada numérica com label flutuante e suporte a mensagens de erro.

Utiliza o InputNumber do PrimeReact com FloatLabel para criar um campo numérico
estilizado e consistente com o design system da aplicação.

@remarks
As propriedades onChange, min e max foram removidas da interface para
simplificar o uso do componente.

@example
\`\`\`tsx
<UiInputNumber
  id="quantidade"
  label="Quantidade"
  value={quantidade}
  onValueChange={(e) => setQuantidade(e.value)}
  required
  error={errors.quantidade?.message}
/>
\`\`\`

@see {@link https://primereact.org/inputnumber/ | PrimeReact InputNumber}`,methods:[],displayName:"UiInputNumber",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"},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:["Omit"]};const z={title:"Components/Form/UiInputNumber",component:Q,parameters:{layout:"centered"},tags:["autodocs"],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"}},render:n=>{const[e,o]=S.useState(n.value);return t.jsx(Q,{...n,value:e,onValueChange:a=>o(a.value)})}},b={args:{id:"quantidade",label:"Quantidade"}},g={args:{id:"quantidade-obrigatoria",label:"Quantidade",required:!0}},f={args:{id:"quantidade-erro",label:"Quantidade",error:"Informe uma quantidade válida",required:!0}},x={args:{id:"quantidade-botoes",label:"Quantidade",showButtons:!0,buttonLayout:"horizontal"}},q={args:{id:"valor",label:"Valor",mode:"currency",currency:"BRL",locale:"pt-BR"}},h={args:{id:"decimal",label:"Percentual",mode:"decimal",minFractionDigits:2,maxFractionDigits:2,suffix:"%"}},y={args:{id:"quantidade-desabilitada",label:"Quantidade",disabled:!0,value:10}},v={args:{id:"peso",label:"Peso",suffix:" kg"}};b.parameters={...b.parameters,docs:{...b.parameters?.docs,source:{originalSource:`{
  args: {
    id: 'quantidade',
    label: 'Quantidade'
  }
}`,...b.parameters?.docs?.source}}};g.parameters={...g.parameters,docs:{...g.parameters?.docs,source:{originalSource:`{
  args: {
    id: 'quantidade-obrigatoria',
    label: 'Quantidade',
    required: true
  }
}`,...g.parameters?.docs?.source}}};f.parameters={...f.parameters,docs:{...f.parameters?.docs,source:{originalSource:`{
  args: {
    id: 'quantidade-erro',
    label: 'Quantidade',
    error: 'Informe uma quantidade válida',
    required: true
  }
}`,...f.parameters?.docs?.source}}};x.parameters={...x.parameters,docs:{...x.parameters?.docs,source:{originalSource:`{
  args: {
    id: 'quantidade-botoes',
    label: 'Quantidade',
    showButtons: true,
    buttonLayout: 'horizontal'
  }
}`,...x.parameters?.docs?.source}}};q.parameters={...q.parameters,docs:{...q.parameters?.docs,source:{originalSource:`{
  args: {
    id: 'valor',
    label: 'Valor',
    mode: 'currency',
    currency: 'BRL',
    locale: 'pt-BR'
  }
}`,...q.parameters?.docs?.source}}};h.parameters={...h.parameters,docs:{...h.parameters?.docs,source:{originalSource:`{
  args: {
    id: 'decimal',
    label: 'Percentual',
    mode: 'decimal',
    minFractionDigits: 2,
    maxFractionDigits: 2,
    suffix: '%'
  }
}`,...h.parameters?.docs?.source}}};y.parameters={...y.parameters,docs:{...y.parameters?.docs,source:{originalSource:`{
  args: {
    id: 'quantidade-desabilitada',
    label: 'Quantidade',
    disabled: true,
    value: 10
  }
}`,...y.parameters?.docs?.source}}};v.parameters={...v.parameters,docs:{...v.parameters?.docs,source:{originalSource:`{
  args: {
    id: 'peso',
    label: 'Peso',
    suffix: ' kg'
  }
}`,...v.parameters?.docs?.source}}};const M=["Default","Required","WithError","WithButtons","Currency","Decimal","Disabled","WithPrefix"];export{q as Currency,h as Decimal,b as Default,y as Disabled,g as Required,x as WithButtons,f as WithError,v as WithPrefix,M as __namedExportsOrder,z as default};
