+
diff --git a/packages/rdx-ui/src/components/form/SelectField.tsx b/packages/rdx-ui/src/components/form/SelectField.tsx
index 82bada63..ec6d10b8 100644
--- a/packages/rdx-ui/src/components/form/SelectField.tsx
+++ b/packages/rdx-ui/src/components/form/SelectField.tsx
@@ -13,7 +13,7 @@ import {
} from "@repo/shadcn-ui/components";
import { cn } from "@repo/shadcn-ui/lib/utils";
-import { Control, FieldPath, FieldValues } from "react-hook-form";
+import { Control, FieldPath, FieldValues, useController, useFormState } from "react-hook-form";
import { useTranslation } from "../../locales/i18n.ts";
type SelectFieldProps
= {
@@ -42,6 +42,10 @@ export function SelectField({
className,
}: SelectFieldProps) {
const { t } = useTranslation();
+
+ const { isSubmitting, isValidating } = useFormState({ control, name });
+ const { field, fieldState } = useController({ control, name });
+
const isDisabled = disabled || readOnly;
return (
@@ -51,9 +55,19 @@ export function SelectField({
render={({ field }) => (
{label && (
-
-
{label}
- {required &&
{t("common.required")}}
+
+
+
+ {label}
+
+ {required && (
+ {t("common.required")}
+ )}
+
+ {/* Punto “unsaved” */}
+ {fieldState.isDirty && (
+
{t("common.modified")}
+ )}
)}
{option.icon && (
diff --git a/packages/shadcn-ui/src/components/label.tsx b/packages/shadcn-ui/src/components/label.tsx
index 83364d67..190213d8 100644
--- a/packages/shadcn-ui/src/components/label.tsx
+++ b/packages/shadcn-ui/src/components/label.tsx
@@ -1,24 +1,21 @@
-"use client"
+"use client";
-import * as React from "react"
-import * as LabelPrimitive from "@radix-ui/react-label"
+import * as LabelPrimitive from "@radix-ui/react-label";
+import * as React from "react";
-import { cn } from "@repo/shadcn-ui/lib/utils"
+import { cn } from "@repo/shadcn-ui/lib/utils";
-function Label({
- className,
- ...props
-}: React.ComponentProps) {
+function Label({ className, ...props }: React.ComponentProps) {
return (
- )
+ );
}
-export { Label }
+export { Label };
diff --git a/packages/shadcn-ui/src/styles/globals.css b/packages/shadcn-ui/src/styles/globals.css
index 281f5434..5a5d80e4 100644
--- a/packages/shadcn-ui/src/styles/globals.css
+++ b/packages/shadcn-ui/src/styles/globals.css
@@ -1,3 +1,6 @@
+/*@import url("https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&display=swap");*/
+@import url("https://fonts.googleapis.com/css2?family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900&family=PT+Mono&family=PT+Serif:ital,wght@0,400;0,700;1,400;1,700&display=swap");
+
@import "tailwindcss";
@import "tw-animate-css";
@@ -37,6 +40,10 @@
}
:root {
+ --font-sans: "Inter", ui-sans-serif, sans-serif, system-ui;
+ --font-serif: "PT Serif", ui-serif, serif;
+ --font-mono: "PT Mono", ui-monospace, monospace;
+
--background: oklch(1 0 0);
--foreground: oklch(13.636% 0.02685 282.25);
--card: oklch(1.0 0 0);
@@ -69,9 +76,6 @@
--sidebar-accent-foreground: oklch(0.2069 0.0098 285.5081);
--sidebar-border: oklch(0.9173 0.0067 286.2663);
--sidebar-ring: oklch(0.623 0.214 259.815);
- --font-sans: Roboto Flex, ui-sans-serif, sans-serif, system-ui;
- --font-serif: Adamina, ui-serif, serif;
- --font-mono: Roboto Mono, ui-monospace, monospace;
--radius: 0.5rem;
--shadow-2xs: 1px 1px 6px 0px hsl(0 0% 0% / 0.05);
--shadow-xs: 1px 1px 6px 0px hsl(0 0% 0% / 0.05);
@@ -118,9 +122,6 @@
--sidebar-accent-foreground: oklch(0.9851 0 0);
--sidebar-border: oklch(1.0 0 0);
--sidebar-ring: oklch(0.4915 0.2776 263.8724);
- --font-sans: Roboto Flex, ui-sans-serif, sans-serif, system-ui;
- --font-serif: Lora, serif;
- --font-mono: Roboto Mono, ui-monospace, monospace;
--radius: 0.4rem;
--shadow-2xs: 1px 1px 6px 0px hsl(0 0% 0% / 0.05);
--shadow-xs: 1px 1px 6px 0px hsl(0 0% 0% / 0.05);