nexaas-ui-components 1.0.96 → 1.0.97

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/dist/index.cjs CHANGED
@@ -576,13 +576,17 @@ var Input = ({
576
576
  const hasError = fieldValidationMessages.some((item) => item !== void 0);
577
577
  const [showPassword, setShowPassword] = React6__namespace.default.useState(false);
578
578
  const styles = {
579
- // Sem `focus-visible:rounded-*`: o anel de foco tem que seguir o mesmo raio do campo
580
- // (`rounded-lg`) reduzir pra 2px no foco deixava o anel quadrado sobre um campo arredondado.
581
- input: `text-p-md pl-2 peer text-paragraph bg-surface shadow-input border-[0.5px] rounded-lg outline-none block pb-[10px] h-[46px] w-full disabled:bg-[var(--input-bg-disabled)] disabled:border-[var(--input-border-disabled)] disabled:text-disabled disabled:cursor-not-allowed disabled:shadow-none focus-visible:ring-[1.5px] focus-visible:ring-blue-500 focus-visible:ring-offset-[2px] ${label ? "pt-[22px]" : "pt-[10px]"}
579
+ // Focus ring padrao: classe `input-focus-ring` (src/styles/index.css) desenha o anel de
580
+ // 1.5px sobre o proprio contorno do campo. Nao usar `ring-*`/`ring-offset-*` do Tailwind
581
+ // aqui: eles criam um anel por fora do input, fora do padrao do design system.
582
+ input: `text-p-md pl-2 peer text-paragraph bg-surface shadow-input border-[0.5px] rounded-lg outline-none block pb-[10px] h-[46px] w-full disabled:bg-[var(--input-bg-disabled)] disabled:border-[var(--input-border-disabled)] disabled:text-disabled disabled:cursor-not-allowed disabled:shadow-none input-focus-ring ${label ? "pt-[22px]" : "pt-[10px]"}
582
583
  ${!hasError ? "border-stroke" : ""}`,
583
584
  icon: `absolute bg-neutral-100 h-[44px] top-[1px] left-[1.5px] w-[38px] rounded-l-lg text-[20px] ${hasError ? "text-dangerous-500" : "text-label peer-focus:text-blue-500"} peer-focus:border-blue-500`,
584
585
  rightIcon: "absolute h-[44px] top-[1px] right-[1.5px] w-[38px] text-[22px]",
585
- label: "absolute text-label top-[0.80rem] z-10 origin-[0] transform -translate-y-3 scale-75 duration-300 text-sm peer-focus:text-blue-500 peer-focus:scale-75 peer-focus:-translate-y-3 peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0",
586
+ // `-translate-y-[10px]` (e nao `-translate-y-3`/12px): o label flutuante ficava colado
587
+ // demais no topo do campo. Os 2px a menos de deslocamento aproximam o espaco acima do
588
+ // label do espaco abaixo do conteudo (pb-[10px]). Mesmo valor nos demais inputs.
589
+ label: "absolute text-label top-[0.80rem] z-10 origin-[0] transform -translate-y-[10px] scale-75 duration-300 text-sm peer-focus:text-blue-500 peer-focus:scale-75 peer-focus:-translate-y-[10px] peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0",
586
590
  clear: "absolute top-[8.3px] cursor-pointer text-label text-[22px]",
587
591
  error: "border-dangerous-500 text-dangerous-500"
588
592
  };
@@ -828,7 +832,7 @@ var DatePickerInput = React6.forwardRef(
828
832
  ];
829
833
  const hasError = fieldValidationMessages.some((item) => item !== void 0);
830
834
  const styles = {
831
- input: `text-p-md text-paragraph bg-surface shadow-input border-[0.5px] rounded block pb-[10px] h-[46px] w-full disabled:bg-light-gray-100 disabled:shadow-none focus:border-[1.5px] focus:border-blue-500 ${hasError ? "border-dangerous-500 text-dangerous-500" : "border-stroke"}`,
835
+ input: `text-p-md text-paragraph bg-surface shadow-input border-[0.5px] rounded block pb-[10px] h-[46px] w-full disabled:bg-light-gray-100 disabled:shadow-none input-focus-ring ${hasError ? "border-dangerous-500 text-dangerous-500" : "border-stroke"}`,
832
836
  icon: `absolute bg-light-gray-100 h-[44px] w-[38px] top-[1px] left-[1px] rounded-l-lg rounded-r-none ${hasError ? "text-dangerous-700" : "text-label"}`,
833
837
  label: "absolute text-label text-sm",
834
838
  clear: "absolute top-[8px] right-[8px] cursor-pointer text-label text-[22px]"
@@ -954,7 +958,7 @@ var DatePickerInput = React6.forwardRef(
954
958
  "pointer-events-none ",
955
959
  styles.label,
956
960
  `
957
- ${field.value && field.value[0] !== null || invalidDate ? " scale-75 -translate-y-3 " : ""}
961
+ ${field.value && field.value[0] !== null || invalidDate ? " scale-75 -translate-y-[10px] " : ""}
958
962
  ${icon ? "left-[3rem]" : "left-2.5"}`
959
963
  ),
960
964
  style: { top: "13px" },
@@ -1728,7 +1732,9 @@ function InputSmall({
1728
1732
  // disabled fica no <input> interno, não neste wrapper — por isso o
1729
1733
  // estado desabilitado é resolvido via ternário em vez de `disabled:`
1730
1734
  // (pseudo-classe que nunca dispararia numa div).
1731
- wrapper: `border-[0.5px] border-stroke focus-within:border-[1.5px] focus-within:border-blue-500 group rounded-lg h-9 w-full text-paragraph flex items-center justify-between ${disabled ? "bg-neutral-100 shadow-none" : "bg-surface shadow-input"} ${className}`,
1735
+ // `input-focus-ring-within`: o foco cai no <input>, mas a borda esta neste wrapper o
1736
+ // anel de 1.5px e desenhado sobre o contorno, sem mudar a altura do campo (h-9).
1737
+ wrapper: `border-[0.5px] border-stroke input-focus-ring-within group rounded-lg h-9 w-full text-paragraph flex items-center justify-between ${disabled ? "bg-neutral-100 shadow-none" : "bg-surface shadow-input"} ${className}`,
1732
1738
  clear: "pr-[5px] cursor-pointer text-label text-[16px]"
1733
1739
  };
1734
1740
  const elem = inputRef == null ? void 0 : inputRef.current;
@@ -2591,10 +2597,10 @@ function InputMoney({
2591
2597
  const fieldValidationMessages = [error == null ? void 0 : error.message];
2592
2598
  const hasError = fieldValidationMessages.some((item) => item !== void 0);
2593
2599
  const styles = {
2594
- input: `text-p-md pl-2 peer text-paragraph bg-surface shadow-input border-[0.5px] rounded-lg outline-none block pb-[10px] h-[46px] w-full disabled:bg-neutral-100 disabled:shadow-none focus-visible:border ${label ? "pt-[22px]" : "pt-[10px]"} ${hasError ? "border-dangerous-500 text-dangerous-500" : "border-stroke focus-visible:border-blue-500"}`,
2600
+ input: `text-p-md pl-2 peer text-paragraph bg-surface shadow-input border-[0.5px] rounded-lg outline-none block pb-[10px] h-[46px] w-full disabled:bg-neutral-100 disabled:shadow-none input-focus-ring ${label ? "pt-[22px]" : "pt-[10px]"} ${hasError ? "border-dangerous-500 text-dangerous-500" : "border-stroke focus-visible:border-blue-500"}`,
2595
2601
  icon: `absolute bg-neutral-100 h-[44px] top-[1px] left-[1px] w-[38px] rounded-l-lg ${hasError ? "text-dangerous-500" : "text-label"}
2596
2602
  `,
2597
- label: "absolute text-label top-[0.80rem] z-10 origin-[0] transform -translate-y-3 scale-75 duration-300 text-sm peer-focus:text-blue-500 peer-focus:scale-75 peer-focus:-translate-y-3 peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0"};
2603
+ label: "absolute text-label top-[0.80rem] z-10 origin-[0] transform -translate-y-[10px] scale-75 duration-300 text-sm peer-focus:text-blue-500 peer-focus:scale-75 peer-focus:-translate-y-[10px] peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0"};
2598
2604
  return /* @__PURE__ */ jsxRuntime.jsx(
2599
2605
  reactHookForm.Controller,
2600
2606
  {
@@ -2713,10 +2719,10 @@ function InputNumber({
2713
2719
  const fieldValidationMessages = [error == null ? void 0 : error.message];
2714
2720
  const hasError = fieldValidationMessages.some((item) => item !== void 0);
2715
2721
  const styles = {
2716
- input: `text-p-md pl-3 peer text-paragraph bg-surface border-[0.5px] rounded-lg outline-none block pb-[10px] h-[44px] w-full disabled:bg-neutral-100 disabled:shadow-none focus-visible:border-[1.5px] ${label ? "pt-[22px]" : "pt-[10px]"} ${hasError ? "border-dangerous-500 text-dangerous-500 shadow-none" : "border-stroke focus-visible:border-blue-500 shadow-input"}`,
2722
+ input: `text-p-md pl-3 peer text-paragraph bg-surface border-[0.5px] rounded-lg outline-none block pb-[10px] h-[44px] w-full disabled:bg-neutral-100 disabled:shadow-none input-focus-ring ${label ? "pt-[22px]" : "pt-[10px]"} ${hasError ? "border-dangerous-500 text-dangerous-500 shadow-none" : "border-stroke focus-visible:border-blue-500 shadow-input"}`,
2717
2723
  icon: `absolute bg-neutral-100 h-[44px] top-[2px] left-[1.5px] w-[38px] rounded-l-lg ${hasError ? "text-dangerous-500" : "text-label"}
2718
2724
  `,
2719
- label: "absolute text-label top-[0.80rem] z-10 origin-[0] transform -translate-y-3 scale-75 duration-300 text-sm peer-focus:text-blue-500 peer-focus:scale-75 peer-focus:-translate-y-3 peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0",
2725
+ label: "absolute text-label top-[0.80rem] z-10 origin-[0] transform -translate-y-[10px] scale-75 duration-300 text-sm peer-focus:text-blue-500 peer-focus:scale-75 peer-focus:-translate-y-[10px] peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0",
2720
2726
  buttonsWrapper: "absolute top-[7px] right-[10px] cursor-pointer text-label flex flex-col gap-[2px]",
2721
2727
  button: `border-[0.5px] border-neutral-300 rounded shadow-[0px_1px_1px_rgba(56,61,77,0.1)] h-4 w-4 flex items-center justify-center ${disabled ? "bg-neutral-100" : "bg-surface"}`
2722
2728
  };
@@ -2926,10 +2932,10 @@ function InputPercentage({
2926
2932
  const fieldValidationMessages = [error == null ? void 0 : error.message];
2927
2933
  const hasError = fieldValidationMessages.some((item) => item !== void 0);
2928
2934
  const styles = {
2929
- input: `text-p-md pl-2 peer text-paragraph bg-surface shadow-input border-[0.5px] rounded-lg outline-none block pb-[10px] h-[46px] w-full disabled:bg-neutral-100 disabled:shadow-none focus-visible:border-[1.5px] ${label ? "pt-[22px]" : "pt-[10px]"} ${hasError ? "border-dangerous-500 text-dangerous-500" : "border-stroke focus-visible:border-blue-500"}`,
2935
+ input: `text-p-md pl-2 peer text-paragraph bg-surface shadow-input border-[0.5px] rounded-lg outline-none block pb-[10px] h-[46px] w-full disabled:bg-neutral-100 disabled:shadow-none input-focus-ring ${label ? "pt-[22px]" : "pt-[10px]"} ${hasError ? "border-dangerous-500 text-dangerous-500" : "border-stroke focus-visible:border-blue-500"}`,
2930
2936
  icon: `absolute bg-neutral-100 h-[44px] top-[1px] left-[1.5px] w-[38px] text-[22px] rounded-lg ${hasError ? "text-dangerous-500" : "text-label"}
2931
2937
  `,
2932
- label: "absolute text-label top-[0.80rem] z-10 origin-[0] transform -translate-y-3 scale-75 duration-300 text-sm peer-focus:text-blue-500 peer-focus:scale-75 peer-focus:-translate-y-3 peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0"};
2938
+ label: "absolute text-label top-[0.80rem] z-10 origin-[0] transform -translate-y-[10px] scale-75 duration-300 text-sm peer-focus:text-blue-500 peer-focus:scale-75 peer-focus:-translate-y-[10px] peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0"};
2933
2939
  const input = name ? document == null ? void 0 : document.getElementById(name) : null;
2934
2940
  return /* @__PURE__ */ jsxRuntime.jsx(
2935
2941
  reactHookForm.Controller,
@@ -3253,20 +3259,17 @@ var customStyles = {
3253
3259
  color: "var(--label)"
3254
3260
  }
3255
3261
  }),
3256
- dropdownIndicator: (provided, state) => {
3257
- var _a;
3258
- return {
3259
- ...provided,
3260
- color: state.isDisabled ? "var(--input-icon-disabled)" : "var(--paragraph)",
3261
- // translateY antes do rotate: transform e aplicado da esquerda pra direita, entao
3262
- // invertendo a ordem o deslocamento acontece no eixo ja girado e a seta desce 2px em vez
3263
- // de subir. -2px corrige o desalinhamento otico da seta com o texto do campo.
3264
- transform: ((_a = state == null ? void 0 : state.selectProps) == null ? void 0 : _a.menuIsOpen) ? "translateY(-2px) rotate(180deg)" : "translateY(-2px) rotate(0)",
3265
- ":hover": {
3266
- color: state.isDisabled ? "var(--input-icon-disabled)" : "var(--paragraph)"
3267
- }
3268
- };
3269
- },
3262
+ dropdownIndicator: (provided, state) => ({
3263
+ ...provided,
3264
+ color: state.isDisabled ? "var(--input-icon-disabled)" : "var(--paragraph)",
3265
+ // -2px corrige o desalinhamento otico da seta com o texto do campo. Sem rotate: o estado
3266
+ // aberto troca o glifo pra `uil-angle-up` (ver DropdownIndicatorCustom em Select.tsx), assim
3267
+ // a seta fica na mesma posicao nos dois estados.
3268
+ transform: "translateY(-2px)",
3269
+ ":hover": {
3270
+ color: state.isDisabled ? "var(--input-icon-disabled)" : "var(--paragraph)"
3271
+ }
3272
+ }),
3270
3273
  placeholder: (provided, state) => ({
3271
3274
  ...provided,
3272
3275
  color: state.isDisabled ? "var(--input-placeholder-disabled)" : "var(--label)"
@@ -3298,15 +3301,21 @@ var customStyles = {
3298
3301
  display: "flex"
3299
3302
  }),
3300
3303
  control: (provided, state) => {
3301
- const border = state.isDisabled ? "0.5px solid var(--input-border-disabled)" : state.selectProps.hasError ? "0.5px solid var(--dangerous-700)" : state.menuIsOpen ? "1.5px solid var(--blue-700)" : "0.5px solid var(--stroke)";
3304
+ const border = state.isDisabled ? "0.5px solid var(--input-border-disabled)" : state.selectProps.hasError ? "0.5px solid var(--dangerous-700)" : state.isFocused ? "0.5px solid var(--blue-500)" : "0.5px solid var(--stroke)";
3302
3305
  return {
3303
3306
  ...provided,
3304
3307
  cursor: "pointer",
3305
3308
  border,
3306
- boxShadow: state.isDisabled ? "none" : state.isFocused ? "0 0 0 2px var(--surface), 0 0 0 3.5px var(--blue-500)" : "0px 1px 1.5px 0px rgba(56,61,77,0.12)",
3309
+ // Focus ring padrao (card 96332): 1.5px na cor secondary desenhados SOBRE o contorno do
3310
+ // campo — a borda fica azul e o inset box-shadow completa a espessura. O spread do
3311
+ // box-shadow e o unico jeito de chegar em 1.5px de fato: o Chromium arredonda
3312
+ // border-width/outline-width pra px inteiro, entao 1.5px pinta 1px, igual ao default de
3313
+ // 0.5px. Nada disso entra no box model, entao a altura do control nao muda — e o anel
3314
+ // fica por dentro do campo, sem o anel "extra" por fora que o box-shadow duplo criava.
3315
+ boxShadow: state.isDisabled ? "none" : state.isFocused ? "inset 0 0 0 0.5px var(--blue-500), 0px 1px 1.5px 0px rgba(56,61,77,0.12)" : "0px 1px 1.5px 0px rgba(56,61,77,0.12)",
3307
3316
  outline: "none",
3308
- // Raio fixo: o anel de foco é desenhado por box-shadow, que segue o borderRadius do
3309
- // control — trocar pra 2px no foco deixava o anel quadrado sobre um campo arredondado.
3317
+ // Raio fixo: o anel de foco segue o borderRadius do control trocar pra 2px no foco
3318
+ // deixava o anel quadrado sobre um campo arredondado.
3310
3319
  borderRadius: "0.5rem",
3311
3320
  placeholder: " ",
3312
3321
  height: state.selectProps.smallField ? "30px" : "46px",
@@ -3525,10 +3534,15 @@ var SelectField = ({
3525
3534
  }
3526
3535
  };
3527
3536
  const DropdownIndicatorCustom = (props) => {
3537
+ var _a2;
3528
3538
  return /* @__PURE__ */ jsxRuntime.jsx(DropdownIndicator, { ...props, children: /* @__PURE__ */ jsxRuntime.jsx(
3529
3539
  "i",
3530
3540
  {
3531
- className: `uil uil-angle-down text-[20px] ${small ? "h-[20px] -mt-[7px]" : "h-full"}`
3541
+ className: clsx9__default.default(
3542
+ "uil text-[20px]",
3543
+ ((_a2 = props.selectProps) == null ? void 0 : _a2.menuIsOpen) ? "uil-angle-up" : "uil-angle-down",
3544
+ small ? "h-[20px] -mt-[7px]" : "h-full"
3545
+ )
3532
3546
  }
3533
3547
  ) });
3534
3548
  };
@@ -3628,7 +3642,7 @@ var SelectField = ({
3628
3642
  className: clsx9__default.default(
3629
3643
  "text-label text-sm left-2.5 cursor-pointer pointer-events-none absolute transition-all duration-200",
3630
3644
  {
3631
- "scale-75 -translate-y-3": field.value || inputValue,
3645
+ "scale-75 -translate-y-[10px]": field.value || inputValue,
3632
3646
  "ml-[35px]": hasIcon.hasIcon,
3633
3647
  "ml-[2px]": !hasIcon.hasIcon,
3634
3648
  "top-2.5": !(field.value || inputValue),
@@ -3721,15 +3735,21 @@ var customStyles2 = {
3721
3735
  color: state.isDisabled ? "var(--input-placeholder-disabled)" : "var(--label)"
3722
3736
  }),
3723
3737
  control: (provided, state) => {
3724
- const border = state.isDisabled ? "0.5px solid var(--input-border-disabled)" : state.selectProps.hasError ? "0.5px solid var(--dangerous-700)" : state.menuIsOpen ? "1.5px solid var(--blue-700)" : "0.5px solid var(--stroke)";
3738
+ const border = state.isDisabled ? "0.5px solid var(--input-border-disabled)" : state.selectProps.hasError ? "0.5px solid var(--dangerous-700)" : state.isFocused ? "0.5px solid var(--blue-500)" : "0.5px solid var(--stroke)";
3725
3739
  return {
3726
3740
  ...provided,
3727
3741
  cursor: "pointer",
3728
3742
  border,
3729
- boxShadow: state.isDisabled ? "none" : state.isFocused ? "0 0 0 2px var(--surface), 0 0 0 3.5px var(--blue-500)" : "0px 1px 1.5px 0px rgba(56,61,77,0.12)",
3743
+ // Focus ring padrao (card 96332): 1.5px na cor secondary desenhados SOBRE o contorno do
3744
+ // campo — a borda fica azul e o inset box-shadow completa a espessura. O spread do
3745
+ // box-shadow e o unico jeito de chegar em 1.5px de fato: o Chromium arredonda
3746
+ // border-width/outline-width pra px inteiro, entao 1.5px pinta 1px, igual ao default de
3747
+ // 0.5px. Nada disso entra no box model, entao a altura do control nao muda — e o anel
3748
+ // fica por dentro do campo, sem o anel "extra" por fora que o box-shadow duplo criava.
3749
+ boxShadow: state.isDisabled ? "none" : state.isFocused ? "inset 0 0 0 0.5px var(--blue-500), 0px 1px 1.5px 0px rgba(56,61,77,0.12)" : "0px 1px 1.5px 0px rgba(56,61,77,0.12)",
3730
3750
  outline: "none",
3731
- // Raio fixo: o anel de foco é desenhado por box-shadow, que segue o borderRadius do
3732
- // control — trocar pra 2px no foco deixava o anel quadrado sobre um campo arredondado.
3751
+ // Raio fixo: o anel de foco segue o borderRadius do control trocar pra 2px no foco
3752
+ // deixava o anel quadrado sobre um campo arredondado.
3733
3753
  borderRadius: "0.5rem",
3734
3754
  placeholder: " ",
3735
3755
  height: "46px",
@@ -4085,7 +4105,7 @@ var SelectFieldBip = React6.forwardRef(
4085
4105
  className: clsx9__default.default(
4086
4106
  "text-label text-sm left-2.5 cursor-pointer pointer-events-none",
4087
4107
  {
4088
- [" scale-75 -translate-y-3 "]: field.value,
4108
+ [" scale-75 -translate-y-[10px] "]: field.value,
4089
4109
  ["text-dangerous-700"]: hasError.hasError
4090
4110
  }
4091
4111
  ),
@@ -6164,12 +6184,18 @@ var customStyles3 = {
6164
6184
  display: "flex"
6165
6185
  }),
6166
6186
  control: (provided, state) => {
6167
- const border = state.isDisabled ? "0.5px solid var(--input-border-disabled)" : state.selectProps.hasError ? "0.5px solid var(--dangerous-500)" : state.menuIsOpen ? "1.5px solid var(--blue-500)" : "0.5px solid var(--stroke)";
6187
+ const border = state.isDisabled ? "0.5px solid var(--input-border-disabled)" : state.selectProps.hasError ? "0.5px solid var(--dangerous-500)" : state.isFocused ? "0.5px solid var(--blue-500)" : "0.5px solid var(--stroke)";
6168
6188
  return {
6169
6189
  ...provided,
6170
6190
  cursor: "pointer",
6171
6191
  border,
6172
- boxShadow: state.isDisabled ? "none" : "0px 1px 1.5px 0px rgba(56,61,77,0.12)",
6192
+ // Focus ring padrao (card 96332): 1.5px na cor secondary desenhados SOBRE o contorno do
6193
+ // campo — a borda fica azul e o inset box-shadow completa a espessura. O spread do
6194
+ // box-shadow e o unico jeito de chegar em 1.5px de fato: o Chromium arredonda
6195
+ // border-width/outline-width pra px inteiro, entao 1.5px pinta 1px, igual ao default de
6196
+ // 0.5px. Nada disso entra no box model, entao a altura do control nao muda — e o anel
6197
+ // fica por dentro do campo, sem o anel "extra" por fora que o box-shadow duplo criava.
6198
+ boxShadow: state.isDisabled ? "none" : state.isFocused ? "inset 0 0 0 0.5px var(--blue-500), 0px 1px 1.5px 0px rgba(56,61,77,0.12)" : "0px 1px 1.5px 0px rgba(56,61,77,0.12)",
6173
6199
  outline: "none",
6174
6200
  borderRadius: "0.5rem",
6175
6201
  paddingLeft: "0px",
@@ -6317,7 +6343,7 @@ var MultiSelect = ({
6317
6343
  "span",
6318
6344
  {
6319
6345
  className: clsx9__default.default("text-label text-sm left-2.5", {
6320
- [" scale-75 -translate-y-3 "]: field.value && field.value.length > 0,
6346
+ [" scale-75 -translate-y-[10px] "]: field.value && field.value.length > 0,
6321
6347
  ["text-dangerous-500"]: hasError.hasError
6322
6348
  }),
6323
6349
  children: [
@@ -6379,13 +6405,19 @@ var customStyles4 = {
6379
6405
  background: "var(--surface)"
6380
6406
  }),
6381
6407
  control: (provided, state) => {
6382
- const border = state.selectProps.hasError ? "0.5px solid var(--dangerous-500)" : state.isFocused ? "1.5px solid var(--blue-500)" : "0.5px solid var(--stroke)";
6408
+ const border = state.selectProps.hasError ? "0.5px solid var(--dangerous-500)" : state.isFocused ? "0.5px solid var(--blue-500)" : "0.5px solid var(--stroke)";
6383
6409
  return {
6384
6410
  ...provided,
6385
6411
  cursor: "pointer",
6386
6412
  paddingTop: state.selectProps.hasLabel ? "18px" : "0px",
6387
6413
  border: state.isDisabled ? "0.5px solid var(--input-border-disabled, var(--stroke))" : border,
6388
- boxShadow: state.isDisabled ? "none" : "0px 1px 1.5px 0px rgba(56,61,77,0.12)",
6414
+ // Focus ring padrao (card 96332): 1.5px na cor secondary desenhados SOBRE o contorno do
6415
+ // campo — a borda fica azul e o inset box-shadow completa a espessura. O spread do
6416
+ // box-shadow e o unico jeito de chegar em 1.5px de fato: o Chromium arredonda
6417
+ // border-width/outline-width pra px inteiro, entao 1.5px pinta 1px, igual ao default de
6418
+ // 0.5px. Nada disso entra no box model, entao a altura do control nao muda — e o anel
6419
+ // fica por dentro do campo, sem o anel "extra" por fora que o box-shadow duplo criava.
6420
+ boxShadow: state.isDisabled ? "none" : state.isFocused ? "inset 0 0 0 0.5px var(--blue-500), 0px 1px 1.5px 0px rgba(56,61,77,0.12)" : "0px 1px 1.5px 0px rgba(56,61,77,0.12)",
6389
6421
  outline: "none",
6390
6422
  borderRadius: "0.5rem",
6391
6423
  backgroundColor: "var(--surface)",
@@ -6502,7 +6534,7 @@ var InputTag = ({
6502
6534
  "span",
6503
6535
  {
6504
6536
  className: clsx9__default.default("text-label text-sm left-2.5", {
6505
- [" scale-75 -translate-y-3 "]: field.value && field.value.length > 0,
6537
+ [" scale-75 -translate-y-[10px] "]: field.value && field.value.length > 0,
6506
6538
  ["text-dangerous-500"]: hasError.hasError
6507
6539
  }),
6508
6540
  children: [
@@ -6576,12 +6608,18 @@ var customStyles5 = {
6576
6608
  display: "flex"
6577
6609
  }),
6578
6610
  control: (provided, state) => {
6579
- const border = state.isDisabled ? "0.5px solid var(--input-border-disabled)" : state.selectProps.hasError ? "0.5px solid var(--dangerous-500)" : state.menuIsOpen ? "1.5px solid var(--blue-500)" : "0.5px solid var(--stroke)";
6611
+ const border = state.isDisabled ? "0.5px solid var(--input-border-disabled)" : state.selectProps.hasError ? "0.5px solid var(--dangerous-500)" : state.isFocused ? "0.5px solid var(--blue-500)" : "0.5px solid var(--stroke)";
6580
6612
  return {
6581
6613
  ...provided,
6582
6614
  cursor: "pointer",
6583
6615
  border,
6584
- boxShadow: state.isDisabled ? "none" : "0px 1px 1.5px 0px rgba(56,61,77,0.12)",
6616
+ // Focus ring padrao (card 96332): 1.5px na cor secondary desenhados SOBRE o contorno do
6617
+ // campo — a borda fica azul e o inset box-shadow completa a espessura. O spread do
6618
+ // box-shadow e o unico jeito de chegar em 1.5px de fato: o Chromium arredonda
6619
+ // border-width/outline-width pra px inteiro, entao 1.5px pinta 1px, igual ao default de
6620
+ // 0.5px. Nada disso entra no box model, entao a altura do control nao muda — e o anel
6621
+ // fica por dentro do campo, sem o anel "extra" por fora que o box-shadow duplo criava.
6622
+ boxShadow: state.isDisabled ? "none" : state.isFocused ? "inset 0 0 0 0.5px var(--blue-500), 0px 1px 1.5px 0px rgba(56,61,77,0.12)" : "0px 1px 1.5px 0px rgba(56,61,77,0.12)",
6585
6623
  outline: "none",
6586
6624
  borderRadius: "0.5rem",
6587
6625
  paddingLeft: "8px",
@@ -7318,8 +7356,8 @@ var TextArea = ({
7318
7356
  const fieldValidationMessages = [error == null ? void 0 : error.message];
7319
7357
  const hasError = fieldValidationMessages.some((item) => item !== void 0);
7320
7358
  const styles = {
7321
- input: `border-[0.5px] rounded-lg block pb-[10px] pt-[18px] w-full bg-surface disabled:bg-neutral-100 disabled:shadow-none focus-visible:ring-[1.5px] focus-visible:ring-blue-500 focus-visible:ring-offset-[2px] focus-visible:rounded-[2px] text-p-md peer shadow-input pl-2 outline-none ${hasError ? "border-dangerous-500 text-dangerous-500" : "border-stroke text-paragraph"}`,
7322
- label: `cursor-text absolute text-label top-[0.70rem] z-10 transform origin-[0] -translate-y-3 scale-75 duration-300 text-sm peer-focus:text-blue-500 peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0 peer-focus:scale-75 peer-focus:-translate-y-3 left-2.5`
7359
+ input: `border-[0.5px] rounded-lg block pb-[10px] pt-[18px] w-full bg-surface disabled:bg-neutral-100 disabled:shadow-none input-focus-ring text-p-md peer shadow-input pl-2 outline-none ${hasError ? "border-dangerous-500 text-dangerous-500" : "border-stroke text-paragraph"}`,
7360
+ label: `cursor-text absolute text-label top-[0.70rem] z-10 transform origin-[0] -translate-y-[10px] scale-75 duration-300 text-sm peer-focus:text-blue-500 peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0 peer-focus:scale-75 peer-focus:-translate-y-[10px] left-2.5`
7323
7361
  };
7324
7362
  return /* @__PURE__ */ jsxRuntime.jsxs("div", { children: [
7325
7363
  /* @__PURE__ */ jsxRuntime.jsxs("div", { className: "relative outline-none", children: [
@@ -7465,11 +7503,11 @@ function ControlledInput({
7465
7503
  const fieldValidationMessages = [error == null ? void 0 : error.message];
7466
7504
  const hasError = fieldValidationMessages.some((item) => item !== void 0);
7467
7505
  const styles = {
7468
- input: `text-p-md pl-2 peer text-paragraph bg-surface shadow-input border-[0.5px] rounded-lg outline-none block pb-[10px] h-[46px] w-full disabled:bg-neutral-100 disabled:shadow-none focus-visible:border-[1.5px] focus-visible:border-blue-500 ${label ? "pt-[22px]" : "pt-[10px]"}
7506
+ input: `text-p-md pl-2 peer text-paragraph bg-surface shadow-input border-[0.5px] rounded-lg outline-none block pb-[10px] h-[46px] w-full disabled:bg-neutral-100 disabled:shadow-none input-focus-ring ${label ? "pt-[22px]" : "pt-[10px]"}
7469
7507
  ${!hasError ? "border-stroke" : ""}`,
7470
7508
  icon: `absolute bg-neutral-100 h-[44px] top-[1px] left-[1.5px] w-[38px] rounded-l-lg text-[20px] ${hasError ? "text-dangerous-500" : "text-label"}`,
7471
7509
  rightIcon: "absolute h-[44px] top-[1px] right-[1.5px] w-[38px] text-[22px]",
7472
- label: "absolute text-label top-[0.80rem] z-10 origin-[0] transform -translate-y-3 scale-75 duration-300 text-sm peer-focus:text-blue-500 peer-focus:scale-75 peer-focus:-translate-y-3 peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0",
7510
+ label: "absolute text-label top-[0.80rem] z-10 origin-[0] transform -translate-y-[10px] scale-75 duration-300 text-sm peer-focus:text-blue-500 peer-focus:scale-75 peer-focus:-translate-y-[10px] peer-placeholder-shown:scale-100 peer-placeholder-shown:translate-y-0",
7473
7511
  clear: `absolute top-[7px] cursor-pointer text-label text-[22px] ${searchOnClick ? "right-[46px]" : "right-[8px]"}`,
7474
7512
  error: "border-dangerous-500 text-dangerous-500"
7475
7513
  };