@adamosuiteservices/ui 1.5.6 → 1.6.6

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/themes.css CHANGED
@@ -1 +1 @@
1
- [data-theme=default]{--background: oklch(1 0 0);--foreground: oklch(.145 0 0);--card: oklch(1 0 0);--card-foreground: oklch(.145 0 0);--popover: oklch(1 0 0);--popover-foreground: oklch(.145 0 0);--primary: var(--default);--primary-foreground: oklch(.985 0 0);--secondary: var(--default-100);--secondary-foreground: var(--default-700);--muted: oklch(.97 0 0);--muted-foreground: oklch(.556 0 0);--accent: oklch(.97 0 0);--accent-foreground: oklch(.205 0 0);--destructive: var(--error-500);--destructive-foreground: oklch(1 0 0);--border: oklch(.922 0 0);--input: oklch(.922 0 0);--ring: var(--default-500);--chart-1: var(--default-500);--chart-2: var(--default-400);--chart-3: var(--default-300);--chart-4: var(--default-200);--chart-5: var(--default-100);--sidebar: oklch(.985 0 0);--sidebar-foreground: oklch(.145 0 0);--sidebar-primary: var(--default-500);--sidebar-primary-foreground: oklch(.985 0 0);--sidebar-accent: oklch(.97 0 0);--sidebar-accent-foreground: oklch(.205 0 0);--sidebar-border: oklch(.922 0 0);--sidebar-ring: var(--default-500);--primary-25: var(--default-25);--primary-50: var(--default-50);--primary-100: var(--default-100);--primary-200: var(--default-200);--primary-300: var(--default-300);--primary-400: var(--default-400);--primary-500: var(--default-500);--primary-600: var(--default-600);--primary-700: var(--default-700);--primary-800: var(--default-800);--primary-900: var(--default-900)}[data-theme=default].dark{--background: oklch(.145 0 0);--foreground: oklch(.985 0 0);--card: oklch(.205 0 0);--card-foreground: oklch(.985 0 0);--popover: oklch(.205 0 0);--popover-foreground: oklch(.985 0 0);--primary: var(--default);--primary-foreground: oklch(.205 0 0);--secondary: var(--default-100);--secondary-foreground: var(--default-700);--muted: oklch(.269 0 0);--muted-foreground: oklch(.708 0 0);--accent: oklch(.269 0 0);--accent-foreground: oklch(.985 0 0);--destructive: var(--error-500);--destructive-foreground: oklch(1 0 0);--border: oklch(1 0 0 / 10%);--input: oklch(1 0 0 / 15%);--ring: var(--default-500);--chart-1: var(--default-500);--chart-2: var(--default-400);--chart-3: var(--default-300);--chart-4: var(--default-200);--chart-5: var(--default-100);--sidebar: oklch(.205 0 0);--sidebar-foreground: oklch(.985 0 0);--sidebar-primary: var(--default-500);--sidebar-primary-foreground: oklch(.985 0 0);--sidebar-accent: oklch(.269 0 0);--sidebar-accent-foreground: oklch(.985 0 0);--sidebar-border: oklch(1 0 0 / 10%);--sidebar-ring: var(--default-500)}[data-theme=sign]{--background: oklch(1 0 0);--foreground: oklch(.145 0 0);--card: oklch(1 0 0);--card-foreground: oklch(.145 0 0);--popover: oklch(1 0 0);--popover-foreground: oklch(.145 0 0);--primary: var(--sign);--primary-foreground: oklch(.985 0 0);--secondary: var(--sign-100);--secondary-foreground: var(--sign-700);--muted: oklch(.97 0 0);--muted-foreground: oklch(.556 0 0);--accent: oklch(.97 0 0);--accent-foreground: oklch(.205 0 0);--destructive: var(--error-500);--destructive-foreground: oklch(1 0 0);--border: oklch(.922 0 0);--input: oklch(.922 0 0);--ring: var(--sign-500);--chart-1: var(--sign-500);--chart-2: var(--sign-400);--chart-3: var(--sign-300);--chart-4: var(--sign-200);--chart-5: var(--sign-100);--sidebar: oklch(.985 0 0);--sidebar-foreground: oklch(.145 0 0);--sidebar-primary: var(--sign-500);--sidebar-primary-foreground: oklch(.985 0 0);--sidebar-accent: oklch(.97 0 0);--sidebar-accent-foreground: oklch(.205 0 0);--sidebar-border: oklch(.922 0 0);--sidebar-ring: var(--sign-500);--primary-25: var(--sign-25);--primary-50: var(--sign-50);--primary-100: var(--sign-100);--primary-200: var(--sign-200);--primary-300: var(--sign-300);--primary-400: var(--sign-400);--primary-500: var(--sign-500);--primary-600: var(--sign-600);--primary-700: var(--sign-700);--primary-800: var(--sign-800);--primary-900: var(--sign-900)}[data-theme=sign].dark{--background: oklch(.145 0 0);--foreground: oklch(.985 0 0);--card: oklch(.205 0 0);--card-foreground: oklch(.985 0 0);--popover: oklch(.205 0 0);--popover-foreground: oklch(.985 0 0);--primary: var(--sign);--primary-foreground: oklch(.205 0 0);--secondary: var(--sign-100);--secondary-foreground: var(--sign-700);--muted: oklch(.269 0 0);--muted-foreground: oklch(.708 0 0);--accent: oklch(.269 0 0);--accent-foreground: oklch(.985 0 0);--destructive: var(--error-500);--destructive-foreground: oklch(1 0 0);--border: oklch(1 0 0 / 10%);--input: oklch(1 0 0 / 15%);--ring: var(--sign-500);--chart-1: var(--sign-500);--chart-2: var(--sign-400);--chart-3: var(--sign-300);--chart-4: var(--sign-200);--chart-5: var(--sign-100);--sidebar: oklch(.205 0 0);--sidebar-foreground: oklch(.985 0 0);--sidebar-primary: var(--sign-500);--sidebar-primary-foreground: oklch(.985 0 0);--sidebar-accent: oklch(.269 0 0);--sidebar-accent-foreground: oklch(.985 0 0);--sidebar-border: oklch(1 0 0 / 10%);--sidebar-ring: var(--sign-500)}[data-theme=id]{--background: oklch(1 0 0);--foreground: oklch(.145 0 0);--card: oklch(1 0 0);--card-foreground: oklch(.145 0 0);--popover: oklch(1 0 0);--popover-foreground: oklch(.145 0 0);--primary: var(--id);--primary-foreground: oklch(.985 0 0);--secondary: var(--id-100);--secondary-foreground: var(--id-700);--muted: oklch(.97 0 0);--muted-foreground: oklch(.556 0 0);--accent: oklch(.97 0 0);--accent-foreground: oklch(.205 0 0);--destructive: var(--error-500);--destructive-foreground: oklch(1 0 0);--border: oklch(.922 0 0);--input: oklch(.922 0 0);--ring: var(--id-500);--chart-1: var(--id-500);--chart-2: var(--id-400);--chart-3: var(--id-300);--chart-4: var(--id-200);--chart-5: var(--id-100);--sidebar: oklch(.985 0 0);--sidebar-foreground: oklch(.145 0 0);--sidebar-primary: var(--id-500);--sidebar-primary-foreground: oklch(.985 0 0);--sidebar-accent: oklch(.97 0 0);--sidebar-accent-foreground: oklch(.205 0 0);--sidebar-border: oklch(.922 0 0);--sidebar-ring: var(--id-500);--primary-25: var(--id-25);--primary-50: var(--id-50);--primary-100: var(--id-100);--primary-200: var(--id-200);--primary-300: var(--id-300);--primary-400: var(--id-400);--primary-500: var(--id-500);--primary-600: var(--id-600);--primary-700: var(--id-700);--primary-800: var(--id-800);--primary-900: var(--id-900)}[data-theme=id].dark{--background: oklch(.145 0 0);--foreground: oklch(.985 0 0);--card: oklch(.205 0 0);--card-foreground: oklch(.985 0 0);--popover: oklch(.205 0 0);--popover-foreground: oklch(.985 0 0);--primary: var(--id);--primary-foreground: oklch(.205 0 0);--secondary: var(--id-100);--secondary-foreground: var(--id-700);--muted: oklch(.269 0 0);--muted-foreground: oklch(.708 0 0);--accent: oklch(.269 0 0);--accent-foreground: oklch(.985 0 0);--destructive: var(--error-500);--destructive-foreground: oklch(1 0 0);--border: oklch(1 0 0 / 10%);--input: oklch(1 0 0 / 15%);--ring: var(--id-500);--chart-1: var(--id-500);--chart-2: var(--id-400);--chart-3: var(--id-300);--chart-4: var(--id-200);--chart-5: var(--id-100);--sidebar: oklch(.205 0 0);--sidebar-foreground: oklch(.985 0 0);--sidebar-primary: var(--id-500);--sidebar-primary-foreground: oklch(.985 0 0);--sidebar-accent: oklch(.269 0 0);--sidebar-accent-foreground: oklch(.985 0 0);--sidebar-border: oklch(1 0 0 / 10%);--sidebar-ring: var(--id-500)}[data-theme=pay]{--background: oklch(1 0 0);--foreground: oklch(.145 0 0);--card: oklch(1 0 0);--card-foreground: oklch(.145 0 0);--popover: oklch(1 0 0);--popover-foreground: oklch(.145 0 0);--primary: var(--pay);--primary-foreground: oklch(.985 0 0);--secondary: var(--pay-100);--secondary-foreground: var(--pay-700);--muted: oklch(.97 0 0);--muted-foreground: oklch(.556 0 0);--accent: oklch(.97 0 0);--accent-foreground: oklch(.205 0 0);--destructive: var(--error-500);--destructive-foreground: oklch(1 0 0);--border: oklch(.922 0 0);--input: oklch(.922 0 0);--ring: var(--pay-500);--chart-1: var(--pay-500);--chart-2: var(--pay-400);--chart-3: var(--pay-300);--chart-4: var(--pay-200);--chart-5: var(--pay-100);--sidebar: oklch(.985 0 0);--sidebar-foreground: oklch(.145 0 0);--sidebar-primary: var(--pay-500);--sidebar-primary-foreground: oklch(.985 0 0);--sidebar-accent: oklch(.97 0 0);--sidebar-accent-foreground: oklch(.205 0 0);--sidebar-border: oklch(.922 0 0);--sidebar-ring: var(--pay-500);--primary-25: var(--pay-25);--primary-50: var(--pay-50);--primary-100: var(--pay-100);--primary-200: var(--pay-200);--primary-300: var(--pay-300);--primary-400: var(--pay-400);--primary-500: var(--pay-500);--primary-600: var(--pay-600);--primary-700: var(--pay-700);--primary-800: var(--pay-800);--primary-900: var(--pay-900)}[data-theme=pay].dark{--background: oklch(.145 0 0);--foreground: oklch(.985 0 0);--card: oklch(.205 0 0);--card-foreground: oklch(.985 0 0);--popover: oklch(.205 0 0);--popover-foreground: oklch(.985 0 0);--primary: var(--pay);--primary-foreground: oklch(.205 0 0);--secondary: var(--pay-100);--secondary-foreground: var(--pay-700);--muted: oklch(.269 0 0);--muted-foreground: oklch(.708 0 0);--accent: oklch(.269 0 0);--accent-foreground: oklch(.985 0 0);--destructive: var(--error-500);--destructive-foreground: oklch(1 0 0);--border: oklch(1 0 0 / 10%);--input: oklch(1 0 0 / 15%);--ring: var(--pay-500);--chart-1: var(--pay-500);--chart-2: var(--pay-400);--chart-3: var(--pay-300);--chart-4: var(--pay-200);--chart-5: var(--pay-100);--sidebar: oklch(.205 0 0);--sidebar-foreground: oklch(.985 0 0);--sidebar-primary: var(--pay-500);--sidebar-primary-foreground: oklch(.985 0 0);--sidebar-accent: oklch(.269 0 0);--sidebar-accent-foreground: oklch(.985 0 0);--sidebar-border: oklch(1 0 0 / 10%);--sidebar-ring: var(--pay-500)}[data-theme=risk]{--background: oklch(1 0 0);--foreground: oklch(.145 0 0);--card: oklch(1 0 0);--card-foreground: oklch(.145 0 0);--popover: oklch(1 0 0);--popover-foreground: oklch(.145 0 0);--primary: var(--risk);--primary-foreground: oklch(.985 0 0);--secondary: var(--risk-100);--secondary-foreground: var(--risk-700);--muted: oklch(.97 0 0);--muted-foreground: oklch(.556 0 0);--accent: oklch(.97 0 0);--accent-foreground: oklch(.205 0 0);--destructive: var(--error-500);--destructive-foreground: oklch(1 0 0);--border: oklch(.922 0 0);--input: oklch(.922 0 0);--ring: var(--risk-500);--chart-1: var(--risk-500);--chart-2: var(--risk-400);--chart-3: var(--risk-300);--chart-4: var(--risk-200);--chart-5: var(--risk-100);--sidebar: oklch(.985 0 0);--sidebar-foreground: oklch(.145 0 0);--sidebar-primary: var(--risk-500);--sidebar-primary-foreground: oklch(.985 0 0);--sidebar-accent: oklch(.97 0 0);--sidebar-accent-foreground: oklch(.205 0 0);--sidebar-border: oklch(.922 0 0);--sidebar-ring: var(--risk-500);--primary-25: var(--risk-25);--primary-50: var(--risk-50);--primary-100: var(--risk-100);--primary-200: var(--risk-200);--primary-300: var(--risk-300);--primary-400: var(--risk-400);--primary-500: var(--risk-500);--primary-600: var(--risk-600);--primary-700: var(--risk-700);--primary-800: var(--risk-800);--primary-900: var(--risk-900)}[data-theme=risk].dark{--background: oklch(.145 0 0);--foreground: oklch(.985 0 0);--card: oklch(.205 0 0);--card-foreground: oklch(.985 0 0);--popover: oklch(.205 0 0);--popover-foreground: oklch(.985 0 0);--primary: var(--risk);--primary-foreground: oklch(.205 0 0);--secondary: var(--risk-100);--secondary-foreground: var(--risk-700);--muted: oklch(.269 0 0);--muted-foreground: oklch(.708 0 0);--accent: oklch(.269 0 0);--accent-foreground: oklch(.985 0 0);--destructive: var(--error-500);--destructive-foreground: oklch(1 0 0);--border: oklch(1 0 0 / 10%);--input: oklch(1 0 0 / 15%);--ring: var(--risk-500);--chart-1: var(--risk-500);--chart-2: var(--risk-400);--chart-3: var(--risk-300);--chart-4: var(--risk-200);--chart-5: var(--risk-100);--sidebar: oklch(.205 0 0);--sidebar-foreground: oklch(.985 0 0);--sidebar-primary: var(--risk-500);--sidebar-primary-foreground: oklch(.985 0 0);--sidebar-accent: oklch(.269 0 0);--sidebar-accent-foreground: oklch(.985 0 0);--sidebar-border: oklch(1 0 0 / 10%);--sidebar-ring: var(--risk-500)}
1
+ [data-theme=default]{--background: oklch(1 0 0);--foreground: oklch(.145 0 0);--card: oklch(1 0 0);--card-foreground: oklch(.145 0 0);--popover: oklch(1 0 0);--popover-foreground: oklch(.145 0 0);--primary: var(--default);--primary-foreground: oklch(.985 0 0);--secondary: var(--default-100);--secondary-foreground: var(--default-700);--muted: oklch(.97 0 0);--muted-foreground: oklch(.556 0 0);--accent: oklch(.97 0 0);--accent-foreground: oklch(.205 0 0);--destructive: var(--error);--destructive-foreground: oklch(1 0 0);--border: oklch(.922 0 0);--input: oklch(.922 0 0);--ring: var(--default-500);--chart-1: var(--default-500);--chart-2: var(--default-400);--chart-3: var(--default-300);--chart-4: var(--default-200);--chart-5: var(--default-100);--sidebar: oklch(.985 0 0);--sidebar-foreground: oklch(.145 0 0);--sidebar-primary: var(--default);--sidebar-primary-foreground: oklch(.985 0 0);--sidebar-accent: oklch(.97 0 0);--sidebar-accent-foreground: oklch(.205 0 0);--sidebar-border: oklch(.922 0 0);--sidebar-ring: var(--default-500);--primary-25: var(--default-25);--primary-50: var(--default-50);--primary-100: var(--default-100);--primary-200: var(--default-200);--primary-300: var(--default-300);--primary-400: var(--default-400);--primary-500: var(--default-500);--primary-600: var(--default-600);--primary-700: var(--default-700);--primary-800: var(--default-800);--primary-900: var(--default-900)}[data-theme=default].dark{--background: oklch(.145 0 0);--foreground: oklch(.985 0 0);--card: oklch(.205 0 0);--card-foreground: oklch(.985 0 0);--popover: oklch(.205 0 0);--popover-foreground: oklch(.985 0 0);--primary: var(--default);--primary-foreground: oklch(.205 0 0);--secondary: var(--default-100);--secondary-foreground: var(--default-700);--muted: oklch(.269 0 0);--muted-foreground: oklch(.708 0 0);--accent: oklch(.269 0 0);--accent-foreground: oklch(.985 0 0);--destructive: var(--error);--destructive-foreground: oklch(1 0 0);--border: oklch(1 0 0 / 10%);--input: oklch(1 0 0 / 15%);--ring: var(--default-500);--chart-1: var(--default-500);--chart-2: var(--default-400);--chart-3: var(--default-300);--chart-4: var(--default-200);--chart-5: var(--default-100);--sidebar: oklch(.205 0 0);--sidebar-foreground: oklch(.985 0 0);--sidebar-primary: var(--default);--sidebar-primary-foreground: oklch(.985 0 0);--sidebar-accent: oklch(.269 0 0);--sidebar-accent-foreground: oklch(.985 0 0);--sidebar-border: oklch(1 0 0 / 10%);--sidebar-ring: var(--default-500)}[data-theme=sign]{--background: oklch(1 0 0);--foreground: oklch(.145 0 0);--card: oklch(1 0 0);--card-foreground: oklch(.145 0 0);--popover: oklch(1 0 0);--popover-foreground: oklch(.145 0 0);--primary: var(--sign);--primary-foreground: oklch(.985 0 0);--secondary: var(--sign-100);--secondary-foreground: var(--sign-700);--muted: oklch(.97 0 0);--muted-foreground: oklch(.556 0 0);--accent: oklch(.97 0 0);--accent-foreground: oklch(.205 0 0);--destructive: var(--error);--destructive-foreground: oklch(1 0 0);--border: oklch(.922 0 0);--input: oklch(.922 0 0);--ring: var(--sign-500);--chart-1: var(--sign-500);--chart-2: var(--sign-400);--chart-3: var(--sign-300);--chart-4: var(--sign-200);--chart-5: var(--sign-100);--sidebar: oklch(.985 0 0);--sidebar-foreground: oklch(.145 0 0);--sidebar-primary: var(--sign);--sidebar-primary-foreground: oklch(.985 0 0);--sidebar-accent: oklch(.97 0 0);--sidebar-accent-foreground: oklch(.205 0 0);--sidebar-border: oklch(.922 0 0);--sidebar-ring: var(--sign-500);--primary-25: var(--sign-25);--primary-50: var(--sign-50);--primary-100: var(--sign-100);--primary-200: var(--sign-200);--primary-300: var(--sign-300);--primary-400: var(--sign-400);--primary-500: var(--sign-500);--primary-600: var(--sign-600);--primary-700: var(--sign-700);--primary-800: var(--sign-800);--primary-900: var(--sign-900)}[data-theme=sign].dark{--background: oklch(.145 0 0);--foreground: oklch(.985 0 0);--card: oklch(.205 0 0);--card-foreground: oklch(.985 0 0);--popover: oklch(.205 0 0);--popover-foreground: oklch(.985 0 0);--primary: var(--sign);--primary-foreground: oklch(.205 0 0);--secondary: var(--sign-100);--secondary-foreground: var(--sign-700);--muted: oklch(.269 0 0);--muted-foreground: oklch(.708 0 0);--accent: oklch(.269 0 0);--accent-foreground: oklch(.985 0 0);--destructive: var(--error);--destructive-foreground: oklch(1 0 0);--border: oklch(1 0 0 / 10%);--input: oklch(1 0 0 / 15%);--ring: var(--sign-500);--chart-1: var(--sign-500);--chart-2: var(--sign-400);--chart-3: var(--sign-300);--chart-4: var(--sign-200);--chart-5: var(--sign-100);--sidebar: oklch(.205 0 0);--sidebar-foreground: oklch(.985 0 0);--sidebar-primary: var(--sign);--sidebar-primary-foreground: oklch(.985 0 0);--sidebar-accent: oklch(.269 0 0);--sidebar-accent-foreground: oklch(.985 0 0);--sidebar-border: oklch(1 0 0 / 10%);--sidebar-ring: var(--sign-500)}[data-theme=id]{--background: oklch(1 0 0);--foreground: oklch(.145 0 0);--card: oklch(1 0 0);--card-foreground: oklch(.145 0 0);--popover: oklch(1 0 0);--popover-foreground: oklch(.145 0 0);--primary: var(--id);--primary-foreground: oklch(.985 0 0);--secondary: var(--id-100);--secondary-foreground: var(--id-700);--muted: oklch(.97 0 0);--muted-foreground: oklch(.556 0 0);--accent: oklch(.97 0 0);--accent-foreground: oklch(.205 0 0);--destructive: var(--error);--destructive-foreground: oklch(1 0 0);--border: oklch(.922 0 0);--input: oklch(.922 0 0);--ring: var(--id-500);--chart-1: var(--id-500);--chart-2: var(--id-400);--chart-3: var(--id-300);--chart-4: var(--id-200);--chart-5: var(--id-100);--sidebar: oklch(.985 0 0);--sidebar-foreground: oklch(.145 0 0);--sidebar-primary: var(--id);--sidebar-primary-foreground: oklch(.985 0 0);--sidebar-accent: oklch(.97 0 0);--sidebar-accent-foreground: oklch(.205 0 0);--sidebar-border: oklch(.922 0 0);--sidebar-ring: var(--id-500);--primary-25: var(--id-25);--primary-50: var(--id-50);--primary-100: var(--id-100);--primary-200: var(--id-200);--primary-300: var(--id-300);--primary-400: var(--id-400);--primary-500: var(--id-500);--primary-600: var(--id-600);--primary-700: var(--id-700);--primary-800: var(--id-800);--primary-900: var(--id-900)}[data-theme=id].dark{--background: oklch(.145 0 0);--foreground: oklch(.985 0 0);--card: oklch(.205 0 0);--card-foreground: oklch(.985 0 0);--popover: oklch(.205 0 0);--popover-foreground: oklch(.985 0 0);--primary: var(--id);--primary-foreground: oklch(.205 0 0);--secondary: var(--id-100);--secondary-foreground: var(--id-700);--muted: oklch(.269 0 0);--muted-foreground: oklch(.708 0 0);--accent: oklch(.269 0 0);--accent-foreground: oklch(.985 0 0);--destructive: var(--error);--destructive-foreground: oklch(1 0 0);--border: oklch(1 0 0 / 10%);--input: oklch(1 0 0 / 15%);--ring: var(--id-500);--chart-1: var(--id-500);--chart-2: var(--id-400);--chart-3: var(--id-300);--chart-4: var(--id-200);--chart-5: var(--id-100);--sidebar: oklch(.205 0 0);--sidebar-foreground: oklch(.985 0 0);--sidebar-primary: var(--id);--sidebar-primary-foreground: oklch(.985 0 0);--sidebar-accent: oklch(.269 0 0);--sidebar-accent-foreground: oklch(.985 0 0);--sidebar-border: oklch(1 0 0 / 10%);--sidebar-ring: var(--id-500)}[data-theme=pay]{--background: oklch(1 0 0);--foreground: oklch(.145 0 0);--card: oklch(1 0 0);--card-foreground: oklch(.145 0 0);--popover: oklch(1 0 0);--popover-foreground: oklch(.145 0 0);--primary: var(--pay);--primary-foreground: oklch(.985 0 0);--secondary: var(--pay-100);--secondary-foreground: var(--pay-700);--muted: oklch(.97 0 0);--muted-foreground: oklch(.556 0 0);--accent: oklch(.97 0 0);--accent-foreground: oklch(.205 0 0);--destructive: var(--error);--destructive-foreground: oklch(1 0 0);--border: oklch(.922 0 0);--input: oklch(.922 0 0);--ring: var(--pay-500);--chart-1: var(--pay-500);--chart-2: var(--pay-400);--chart-3: var(--pay-300);--chart-4: var(--pay-200);--chart-5: var(--pay-100);--sidebar: oklch(.985 0 0);--sidebar-foreground: oklch(.145 0 0);--sidebar-primary: var(--pay);--sidebar-primary-foreground: oklch(.985 0 0);--sidebar-accent: oklch(.97 0 0);--sidebar-accent-foreground: oklch(.205 0 0);--sidebar-border: oklch(.922 0 0);--sidebar-ring: var(--pay-500);--primary-25: var(--pay-25);--primary-50: var(--pay-50);--primary-100: var(--pay-100);--primary-200: var(--pay-200);--primary-300: var(--pay-300);--primary-400: var(--pay-400);--primary-500: var(--pay-500);--primary-600: var(--pay-600);--primary-700: var(--pay-700);--primary-800: var(--pay-800);--primary-900: var(--pay-900)}[data-theme=pay].dark{--background: oklch(.145 0 0);--foreground: oklch(.985 0 0);--card: oklch(.205 0 0);--card-foreground: oklch(.985 0 0);--popover: oklch(.205 0 0);--popover-foreground: oklch(.985 0 0);--primary: var(--pay);--primary-foreground: oklch(.205 0 0);--secondary: var(--pay-100);--secondary-foreground: var(--pay-700);--muted: oklch(.269 0 0);--muted-foreground: oklch(.708 0 0);--accent: oklch(.269 0 0);--accent-foreground: oklch(.985 0 0);--destructive: var(--error);--destructive-foreground: oklch(1 0 0);--border: oklch(1 0 0 / 10%);--input: oklch(1 0 0 / 15%);--ring: var(--pay-500);--chart-1: var(--pay-500);--chart-2: var(--pay-400);--chart-3: var(--pay-300);--chart-4: var(--pay-200);--chart-5: var(--pay-100);--sidebar: oklch(.205 0 0);--sidebar-foreground: oklch(.985 0 0);--sidebar-primary: var(--pay);--sidebar-primary-foreground: oklch(.985 0 0);--sidebar-accent: oklch(.269 0 0);--sidebar-accent-foreground: oklch(.985 0 0);--sidebar-border: oklch(1 0 0 / 10%);--sidebar-ring: var(--pay-500)}[data-theme=risk]{--background: oklch(1 0 0);--foreground: oklch(.145 0 0);--card: oklch(1 0 0);--card-foreground: oklch(.145 0 0);--popover: oklch(1 0 0);--popover-foreground: oklch(.145 0 0);--primary: var(--risk);--primary-foreground: oklch(.985 0 0);--secondary: var(--risk-100);--secondary-foreground: var(--risk-700);--muted: oklch(.97 0 0);--muted-foreground: oklch(.556 0 0);--accent: oklch(.97 0 0);--accent-foreground: oklch(.205 0 0);--destructive: var(--error);--destructive-foreground: oklch(1 0 0);--border: oklch(.922 0 0);--input: oklch(.922 0 0);--ring: var(--risk-500);--chart-1: var(--risk-500);--chart-2: var(--risk-400);--chart-3: var(--risk-300);--chart-4: var(--risk-200);--chart-5: var(--risk-100);--sidebar: oklch(.985 0 0);--sidebar-foreground: oklch(.145 0 0);--sidebar-primary: var(--risk);--sidebar-primary-foreground: oklch(.985 0 0);--sidebar-accent: oklch(.97 0 0);--sidebar-accent-foreground: oklch(.205 0 0);--sidebar-border: oklch(.922 0 0);--sidebar-ring: var(--risk-500);--primary-25: var(--risk-25);--primary-50: var(--risk-50);--primary-100: var(--risk-100);--primary-200: var(--risk-200);--primary-300: var(--risk-300);--primary-400: var(--risk-400);--primary-500: var(--risk-500);--primary-600: var(--risk-600);--primary-700: var(--risk-700);--primary-800: var(--risk-800);--primary-900: var(--risk-900)}[data-theme=risk].dark{--background: oklch(.145 0 0);--foreground: oklch(.985 0 0);--card: oklch(.205 0 0);--card-foreground: oklch(.985 0 0);--popover: oklch(.205 0 0);--popover-foreground: oklch(.985 0 0);--primary: var(--risk);--primary-foreground: oklch(.205 0 0);--secondary: var(--risk-100);--secondary-foreground: var(--risk-700);--muted: oklch(.269 0 0);--muted-foreground: oklch(.708 0 0);--accent: oklch(.269 0 0);--accent-foreground: oklch(.985 0 0);--destructive: var(--error);--destructive-foreground: oklch(1 0 0);--border: oklch(1 0 0 / 10%);--input: oklch(1 0 0 / 15%);--ring: var(--risk-500);--chart-1: var(--risk-500);--chart-2: var(--risk-400);--chart-3: var(--risk-300);--chart-4: var(--risk-200);--chart-5: var(--risk-100);--sidebar: oklch(.205 0 0);--sidebar-foreground: oklch(.985 0 0);--sidebar-primary: var(--risk);--sidebar-primary-foreground: oklch(.985 0 0);--sidebar-accent: oklch(.269 0 0);--sidebar-accent-foreground: oklch(.985 0 0);--sidebar-border: oklch(1 0 0 / 10%);--sidebar-ring: var(--risk-500)}
@@ -1,6 +1,6 @@
1
1
  # Combobox
2
2
 
3
- Componente de selección avanzado que combina Popover + Command para búsqueda y selección. Soporta selección simple/múltiple, búsqueda filtrable, opciones deshabilitadas, y feedback visual con checkbox o check.
3
+ Componente de selección avanzado que combina Popover + Command para búsqueda y selección. Soporta selección simple/múltiple, búsqueda filtrable, opciones deshabilitadas, feedback visual con checkbox o check, placeholder persistente, iconos personalizados, y renderizado completamente personalizable mediante render props.
4
4
 
5
5
  ## Importación
6
6
 
@@ -25,16 +25,20 @@ import { Combobox } from "@adamosuiteservices/ui/combobox";
25
25
 
26
26
  ## Props Principales
27
27
 
28
- | Prop | Tipo | Default | Descripción |
29
- | ------------------ | ------------------------------------- | ------------ | ---------------------------------------------------------- |
30
- | `options` | `ComboboxOption[]` | **required** | Array de opciones `{ value, label, disabled? }` |
31
- | `value` | `string \| string[]` | - | Valor controlado (string para single, array para multiple) |
32
- | `onValueChange` | `(value: string \| string[]) => void` | - | Callback al cambiar selección |
33
- | `searchable` | `boolean` | `false` | Habilita input de búsqueda |
34
- | `multiple` | `boolean` | `false` | Permite selección múltiple |
35
- | `selectedFeedback` | `"checkbox" \| "check"` | `"checkbox"` | Tipo de indicador visual |
36
- | `labels` | `ComboboxLabels` | - | Textos personalizables (ver tabla abajo) |
37
- | `classNames` | `ComboboxClassNames` | - | Clases CSS por sección (ver tabla abajo) |
28
+ | Prop | Tipo | Default | Descripción |
29
+ | ----------------------- | --------------------------------------- | ------------ | ----------------------------------------------------------- |
30
+ | `options` | `ComboboxOption[]` | **required** | Array de opciones `{ value, label, disabled? }` |
31
+ | `value` | `string \| string[]` | - | Valor controlado (string para single, array para multiple) |
32
+ | `onValueChange` | `(value: string \| string[]) => void` | - | Callback al cambiar selección |
33
+ | `searchable` | `boolean` | `false` | Habilita input de búsqueda |
34
+ | `multiple` | `boolean` | `false` | Permite selección múltiple |
35
+ | `selectedFeedback` | `"checkbox" \| "check"` | `"checkbox"` | Tipo de indicador visual |
36
+ | `icon` | `ComponentType<{ className?: string }>` | - | Componente de icono opcional para mostrar en el trigger |
37
+ | `showIcon` | `boolean` | `false` | Muestra el icono en el trigger |
38
+ | `alwaysShowPlaceholder` | `boolean` | `false` | Mantiene el placeholder visible junto al valor seleccionado |
39
+ | `labels` | `ComboboxLabels` | - | Textos personalizables (ver tabla abajo) |
40
+ | `classNames` | `ComboboxClassNames` | - | Clases CSS por sección (ver tabla abajo) |
41
+ | `renders` | `ComboboxRenderProps` | - | Funciones de renderizado personalizadas (ver tabla abajo) |
38
42
 
39
43
  ### ComboboxLabels
40
44
 
@@ -60,6 +64,22 @@ import { Combobox } from "@adamosuiteservices/ui/combobox";
60
64
  | `checkbox` | Checkbox de selección (si `selectedFeedback="checkbox"`) |
61
65
  | `check` | Icono de check (si `selectedFeedback="check"`) |
62
66
 
67
+ ### ComboboxRenderProps
68
+
69
+ Funciones de renderizado personalizadas para control total sobre la UI. Todas son opcionales y reciben props relevantes.
70
+
71
+ | Prop | Parámetros | Descripción |
72
+ | ------------------ | --------------------------------------------------------------------- | --------------------------------------- |
73
+ | `trigger` | `{ open, value, displayText, placeholder, hasValue, icon, showIcon }` | Renderiza el botón trigger completo |
74
+ | `triggerIcon` | `{ open }` | Renderiza el icono del dropdown |
75
+ | `placeholder` | `{ text, hasValue }` | Renderiza el texto del placeholder |
76
+ | `displayValue` | `{ text, value }` | Renderiza el valor seleccionado |
77
+ | `option` | `{ option, isSelected, selectedFeedback }` | Renderiza una opción completa |
78
+ | `optionLabel` | `{ option }` | Renderiza solo la etiqueta de la opción |
79
+ | `selectedFeedback` | `{ option, isSelected, type }` | Renderiza el indicador de selección |
80
+ | `empty` | `{ text }` | Renderiza el estado vacío |
81
+ | `searchInput` | `{ placeholder }` | Renderiza el input de búsqueda |
82
+
63
83
  ## Patrones de Uso
64
84
 
65
85
  ### Básico (Sin Búsqueda)
@@ -77,6 +97,55 @@ const frameworks = [
77
97
  />;
78
98
  ```
79
99
 
100
+ ### Con Icono
101
+
102
+ ```tsx
103
+ import { CalendarIcon } from "lucide-react";
104
+
105
+ <Combobox
106
+ searchable
107
+ showIcon
108
+ icon={CalendarIcon}
109
+ options={frameworks}
110
+ labels={{ placeholder: "Select framework..." }}
111
+ />;
112
+ ```
113
+
114
+ ### Placeholder Persistente
115
+
116
+ Útil para usar el placeholder como etiqueta que permanece visible.
117
+
118
+ ```tsx
119
+ <Combobox
120
+ searchable
121
+ alwaysShowPlaceholder
122
+ options={frameworks}
123
+ value={value}
124
+ onValueChange={setValue}
125
+ labels={{ placeholder: "Framework" }}
126
+ />
127
+ ```
128
+
129
+ **Comportamiento**:
130
+
131
+ - Sin valor: Muestra solo "Framework"
132
+ - Con valor: Muestra "Framework: Next.js" (placeholder + valor separados)
133
+
134
+ ### Icono + Placeholder Persistente
135
+
136
+ ```tsx
137
+ <Combobox
138
+ searchable
139
+ showIcon
140
+ alwaysShowPlaceholder
141
+ icon={CalendarIcon}
142
+ options={frameworks}
143
+ value={value}
144
+ onValueChange={setValue}
145
+ labels={{ placeholder: "Framework" }}
146
+ />
147
+ ```
148
+
80
149
  ### Con Búsqueda
81
150
 
82
151
  ```tsx
@@ -249,6 +318,200 @@ const [values, setValues] = useState<string[]>([]);
249
318
  </div>;
250
319
  ```
251
320
 
321
+ ## Renderizado Personalizado
322
+
323
+ El prop `renders` permite personalizar completamente la UI usando el patrón render prop. Todas las funciones son opcionales.
324
+
325
+ ### Custom Option Label
326
+
327
+ ```tsx
328
+ <Combobox
329
+ searchable
330
+ options={frameworks}
331
+ value={value}
332
+ onValueChange={setValue}
333
+ renders={{
334
+ optionLabel: ({ option }) => (
335
+ <div className="flex items-center gap-2">
336
+ <span className="font-semibold text-blue-600">🚀</span>
337
+ <span>{option.label}</span>
338
+ </div>
339
+ ),
340
+ }}
341
+ />
342
+ ```
343
+
344
+ ### Custom Display Value
345
+
346
+ ```tsx
347
+ <Combobox
348
+ searchable
349
+ options={frameworks}
350
+ value={value}
351
+ onValueChange={setValue}
352
+ renders={{
353
+ displayValue: ({ text }) => (
354
+ <span className="font-semibold text-blue-600">{text}</span>
355
+ ),
356
+ }}
357
+ />
358
+ ```
359
+
360
+ ### Custom Trigger Completo
361
+
362
+ ```tsx
363
+ <Combobox
364
+ searchable
365
+ options={frameworks}
366
+ value={value}
367
+ onValueChange={setValue}
368
+ renders={{
369
+ trigger: ({ open, displayText, placeholder, hasValue }) => (
370
+ <button
371
+ type="button"
372
+ className="flex items-center justify-between w-full px-4 py-2 text-sm bg-linear-to-r from-purple-500 to-pink-500 text-white rounded-lg shadow-md hover:shadow-lg transition-all"
373
+ >
374
+ <span>{hasValue ? displayText : placeholder}</span>
375
+ <span className={`transition-transform ${open ? "rotate-180" : ""}`}>
376
+
377
+ </span>
378
+ </button>
379
+ ),
380
+ }}
381
+ />
382
+ ```
383
+
384
+ ### Custom Empty State
385
+
386
+ ```tsx
387
+ <Combobox
388
+ searchable
389
+ options={[]}
390
+ renders={{
391
+ empty: ({ text }) => (
392
+ <div className="py-8 text-center">
393
+ <div className="text-4xl mb-2">🔍</div>
394
+ <p className="text-sm font-medium text-muted-foreground">{text}</p>
395
+ <p className="text-xs text-muted-foreground mt-1">
396
+ Try adjusting your search criteria
397
+ </p>
398
+ </div>
399
+ ),
400
+ }}
401
+ />
402
+ ```
403
+
404
+ ### Custom Selected Feedback
405
+
406
+ ```tsx
407
+ <Combobox
408
+ searchable
409
+ multiple
410
+ options={frameworks}
411
+ value={values}
412
+ onValueChange={setValues}
413
+ renders={{
414
+ selectedFeedback: ({ isSelected }) => (
415
+ <span className="text-lg">{isSelected ? "✅" : "⬜"}</span>
416
+ ),
417
+ }}
418
+ />
419
+ ```
420
+
421
+ ### Custom Placeholder
422
+
423
+ ```tsx
424
+ <Combobox
425
+ searchable
426
+ alwaysShowPlaceholder
427
+ options={frameworks}
428
+ value={value}
429
+ onValueChange={setValue}
430
+ renders={{
431
+ placeholder: ({ text, hasValue }) => (
432
+ <span className={hasValue ? "opacity-50 italic" : ""}>{text}</span>
433
+ ),
434
+ }}
435
+ />
436
+ ```
437
+
438
+ ### Custom Trigger Icon
439
+
440
+ ```tsx
441
+ <Combobox
442
+ searchable
443
+ options={frameworks}
444
+ value={value}
445
+ onValueChange={setValue}
446
+ renders={{
447
+ triggerIcon: ({ open }) => (
448
+ <span className={`transition-transform ${open ? "rotate-90" : ""}`}>
449
+
450
+ </span>
451
+ ),
452
+ }}
453
+ />
454
+ ```
455
+
456
+ ### Custom Search Input
457
+
458
+ ```tsx
459
+ <Combobox
460
+ searchable
461
+ options={frameworks}
462
+ value={value}
463
+ onValueChange={setValue}
464
+ renders={{
465
+ searchInput: ({ placeholder }) => (
466
+ <div className="flex items-center px-3 py-2 border-b">
467
+ <span className="mr-2">🔍</span>
468
+ <input
469
+ type="text"
470
+ placeholder={placeholder}
471
+ className="flex-1 outline-none text-sm"
472
+ />
473
+ </div>
474
+ ),
475
+ }}
476
+ />
477
+ ```
478
+
479
+ ### Combinando Múltiples Renders
480
+
481
+ ```tsx
482
+ <Combobox
483
+ searchable
484
+ multiple
485
+ options={frameworks}
486
+ value={values}
487
+ onValueChange={setValues}
488
+ labels={{
489
+ placeholder: "Select frameworks...",
490
+ searchPlaceholder: "Search...",
491
+ }}
492
+ renders={{
493
+ optionLabel: ({ option }) => (
494
+ <div className="flex items-center gap-2">
495
+ <span>🚀</span>
496
+ <span className="font-medium">{option.label}</span>
497
+ </div>
498
+ ),
499
+ displayValue: ({ text }) => (
500
+ <span className="font-semibold text-purple-600">{text}</span>
501
+ ),
502
+ selectedFeedback: ({ isSelected }) => (
503
+ <span className="text-lg">{isSelected ? "✅" : "⬜"}</span>
504
+ ),
505
+ empty: ({ text }) => (
506
+ <div className="py-6 text-center">
507
+ <div className="text-3xl mb-2">😕</div>
508
+ <p className="text-sm text-gray-500">{text}</p>
509
+ </div>
510
+ ),
511
+ }}
512
+ />
513
+ ```
514
+
252
515
  ## Modos de Operación
253
516
 
254
517
  ### Single Selection
@@ -273,7 +536,10 @@ const [values, setValues] = useState<string[]>([]);
273
536
  **Tags/Categories**: Selección múltiple de categorías
274
537
  **Settings filters**: Filtros multi-selección en dashboards
275
538
  **User assignment**: Asignar múltiples usuarios a tarea
276
- **Language selector**: Selección de idioma con búsqueda
539
+ **Language selector**: Selección de idioma con búsqueda
540
+ **Status selector con icono**: Usar `icon` + `alwaysShowPlaceholder` para selectores etiquetados
541
+ **Rich options**: Usar `renders.optionLabel` para mostrar avatares, badges, etc.
542
+ **Custom UI**: Usar `renders.trigger` para triggers completamente personalizados
277
543
 
278
544
  ## Estados Internos
279
545
 
@@ -281,8 +547,11 @@ const [values, setValues] = useState<string[]>([]);
281
547
 
282
548
  - **Sin selección**: Muestra `labels.placeholder`
283
549
  - **Single selection**: Muestra `label` de la opción seleccionada
550
+ - **Single selection + alwaysShowPlaceholder**: Muestra `placeholder: label` separados
284
551
  - **Multiple (1 item)**: Muestra `label` del único item seleccionado
552
+ - **Multiple (1 item) + alwaysShowPlaceholder**: Muestra `placeholder: label` separados
285
553
  - **Multiple (>1 items)**: Muestra resultado de `labels.multipleSelected(count)`
554
+ - **Multiple (>1 items) + alwaysShowPlaceholder**: Muestra `placeholder: X items selected` separados
286
555
 
287
556
  ### Popover State
288
557
 
@@ -308,8 +577,12 @@ const [values, setValues] = useState<string[]>([]);
308
577
  - `"checkbox"`: Muestra Checkbox a la izquierda de cada opción
309
578
  - `"check"`: Muestra CheckIcon a la derecha (agrega `pr-8` automáticamente)
310
579
  - **Popover alignment**: `align="start"` por defecto para alinear con trigger
311
- - **ChevronDownIcon**: Se muestra en trigger con `opacity-50`
580
+ - **ChevronDownIcon**: Se muestra en trigger con `opacity-50` (puede sobrescribirse con `renders.triggerIcon`)
312
581
  - **No animation**: Selección instantánea, sin delays
582
+ - **alwaysShowPlaceholder**: Renderiza placeholder y valor como elementos separados con gap
583
+ - **icon**: Se muestra con `opacity-50` por defecto, solo visible si `showIcon={true}`
584
+ - **Render props**: Tienen prioridad sobre renderizado por defecto, permiten personalización completa
585
+ - **Composición de renders**: Puedes combinar múltiples render props para personalización granular
313
586
 
314
587
  ## Troubleshooting
315
588
 
@@ -319,10 +592,14 @@ const [values, setValues] = useState<string[]>([]);
319
592
  **Labels incorrectas en multiple**: Usa función `multipleSelected` para pluralización
320
593
  **Tipo de value incorrecto**: Single usa `string`, Multiple usa `string[]`
321
594
  **Checkboxes no aparecen**: Solo aparecen cuando `selectedFeedback="checkbox"` (default)
322
- **Check icon no visible**: Solo aparece cuando `selectedFeedback="check"`
595
+ **Check icon no visible**: Solo aparece cuando `selectedFeedback="check"`
596
+ **Icon no se muestra**: Asegúrate de pasar tanto `icon` como `showIcon={true}`
597
+ **Placeholder desaparece al seleccionar**: Si quieres mantenerlo visible, usa `alwaysShowPlaceholder={true}`
598
+ **Render prop no funciona**: Verifica que el render prop retorne un `ReactNode` válido
599
+ **Custom trigger pierde funcionalidad**: Cuando usas `renders.trigger`, debes manejar el click manualmente o envolver en `PopoverTrigger`
323
600
 
324
601
  ## Referencias
325
602
 
326
- - **Radix UI Popover**: https://www.radix-ui.com/primitives/docs/components/popover
603
+ - **Radix UI Popover**: <https://www.radix-ui.com/primitives/docs/components/popover>
327
604
  - **Command Component**: Ver documentación de Command
328
- - **ARIA Combobox**: https://www.w3.org/WAI/ARIA/apg/patterns/combobox/
605
+ - **ARIA Combobox**: <https://www.w3.org/WAI/ARIA/apg/patterns/combobox/>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adamosuiteservices/ui",
3
- "version": "1.5.6",
3
+ "version": "1.6.6",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",