@wellingtonhlc/shared-ui 0.1.5 → 0.1.15

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/README.md CHANGED
@@ -210,6 +210,16 @@ Tabela de historico:
210
210
 
211
211
  | Versao | Data | Tipo | Resumo | Validacao |
212
212
  |--------|------|------|--------|-----------|
213
+ | `0.1.15` | 2026-06-16 | Patch | Corrige a hierarquia de z-index de `Modal` e `ConfirmationDialog` para o overlay cobrir sidebar e flyouts. | `npm run build`; `npm run build-storybook`. |
214
+ | `0.1.14` | 2026-06-16 | Minor pre-v1 | Adiciona `icon` e `iconPosition` ao `TextField` e ajusta o offset lateral dos icones internos. | `npm run build`; `npm run build-storybook`. |
215
+ | `0.1.13` | 2026-06-16 | Minor pre-v1 | Refina o visual do `Pagination`, remove botoes circulares e adiciona `size="sm" | "md" | "lg"`. | `npm run build`; `npm run build-storybook`. |
216
+ | `0.1.12` | 2026-06-16 | Minor pre-v1 | Adiciona variantes explicitas ao `TextField` e corrige alinhamento de icones internos com `startAdornment` e `endAdornment`. | `npm run build`; `npm run build-storybook`. |
217
+ | `0.1.11` | 2026-06-16 | Patch | Reequilibra variantes de `Button`, separando `default` de `primary` e usando cores explicitas para estados de marca e semanticos. | `npm run build`; `npm run build-storybook`. |
218
+ | `0.1.10` | 2026-06-16 | Patch | Reequilibra `Badge` `default`, `primary` e `muted` com estilos distintos e cor de texto explicita para `primary`. | `npm run build`; `npm run build-storybook`. |
219
+ | `0.1.9` | 2026-06-16 | Patch | Garante estilos distintos para `Badge` `default`, `primary` e `muted`, e normaliza alias legado `active` para `success`. | `npm run build`; `npm run build-storybook`. |
220
+ | `0.1.8` | 2026-06-16 | Minor pre-v1 | Adiciona `Switch display="inline"` para linhas compactas com label integrado e alinhamento previsivel. | `npm run build`; `npm run build-storybook`; build do `EloDesk.CRM`. |
221
+ | `0.1.7` | 2026-06-16 | Minor pre-v1 | Adiciona props de customizacao dos botoes de aparencia em `ThemePreferencesSelector`. | `npm run build`; build do `EloDesk.CRM`. |
222
+ | `0.1.6` | 2026-06-16 | Patch | Forca o destaque da aparencia selecionada por CSS explicito em `[aria-pressed='true']`. | `npm run build`; `npm run build-storybook`; build do `EloDesk.CRM.Portal`. |
213
223
  | `0.1.5` | 2026-06-16 | Patch | Aplica o destaque da aparencia selecionada por estilo inline para evitar perda por ordem/geracao de CSS nos consumidores. | `npm run build`; `npm run build-storybook`; build do `EloDesk.CRM.Portal`. |
214
224
  | `0.1.4` | 2026-06-16 | Patch | Usa estado `data-selected` no `ThemePreferencesSelector` para manter o destaque da aparencia selecionada nos consumidores. | `npm run build`; `npm run build-storybook`. |
215
225
  | `0.1.3` | 2026-06-16 | Patch | Atualiza Storybook para `10.4.6`, documenta `ThemePreferencesSelector` e reforca o destaque visual da aparencia selecionada. | `npm run build`; `npm run build-storybook`. |
@@ -1 +1 @@
1
- {"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../src/components/Badge.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAIxD,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,MAAM,GACN,QAAQ,GACR,OAAO,CAAC;AAEZ,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE3C,MAAM,WAAW,UAAW,SAAQ,cAAc,CAAC,eAAe,CAAC;IACjE,OAAO,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;IAChC,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AA4BD,eAAO,MAAM,KAAK,wGAoBjB,CAAC"}
1
+ {"version":3,"file":"Badge.d.ts","sourceRoot":"","sources":["../../src/components/Badge.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAIxD,MAAM,MAAM,YAAY,GACpB,SAAS,GACT,SAAS,GACT,SAAS,GACT,SAAS,GACT,MAAM,GACN,QAAQ,GACR,OAAO,CAAC;AAEZ,MAAM,MAAM,SAAS,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAE3C,MAAM,WAAW,UAAW,SAAQ,cAAc,CAAC,eAAe,CAAC;IACjE,OAAO,CAAC,EAAE,YAAY,GAAG,MAAM,CAAC;IAChC,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AA+BD,eAAO,MAAM,KAAK,wGAoBjB,CAAC"}
@@ -2,7 +2,7 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { forwardRef } from 'react';
3
3
  import { cn } from '../utils/cn';
4
4
  const variantAlias = {
5
- active: 'default',
5
+ active: 'success',
6
6
  paid: 'success',
7
7
  pending: 'warning',
8
8
  sent: 'warning',
@@ -11,13 +11,13 @@ const variantAlias = {
11
11
  'status-danger': 'danger',
12
12
  };
13
13
  const variantClasses = {
14
- default: 'border-app-border bg-background text-foreground',
15
- primary: 'border-primary-light bg-primary-light text-primary',
14
+ default: 'border-[color-mix(in_srgb,var(--foreground-muted)_42%,var(--app-border))] bg-[color-mix(in_srgb,var(--foreground-muted)_14%,var(--surface))] text-foreground',
15
+ primary: 'border-[color-mix(in_srgb,var(--brand)_40%,transparent)] bg-[color-mix(in_srgb,var(--brand)_14%,var(--surface))] text-[var(--brand)]',
16
16
  success: 'border-[var(--status-success-border,#86efac)] bg-[var(--status-success-bg,rgba(220,252,231,0.8))] text-[var(--status-success-text,#15803d)]',
17
17
  warning: 'border-[var(--status-warning-border,#fcd34d)] bg-[var(--status-warning-bg,rgba(254,243,199,0.8))] text-[var(--status-warning-text,#92400e)]',
18
18
  info: 'border-[var(--status-info-border,#93c5fd)] bg-[var(--status-info-bg,rgba(219,234,254,0.8))] text-[var(--status-info-text,#1d4ed8)]',
19
19
  danger: 'border-[var(--status-danger-border,#fca5a5)] bg-[var(--status-danger-bg,rgba(254,202,202,0.8))] text-[var(--status-danger-text,#b91c1c)]',
20
- muted: 'border-app-border bg-[color-mix(in_srgb,var(--app-border)_60%,transparent)] text-foreground-muted',
20
+ muted: 'border-[color-mix(in_srgb,var(--foreground-muted)_24%,transparent)] bg-[color-mix(in_srgb,var(--foreground-muted)_8%,var(--surface))] text-foreground-muted',
21
21
  };
22
22
  const sizeClasses = {
23
23
  xs: 'px-2 py-0.5 text-xs',
@@ -1 +1 @@
1
- {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/components/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAI9D,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,SAAS,GACT,WAAW,GACX,OAAO,GACP,SAAS,GACT,SAAS,GACT,QAAQ,GACR,aAAa,GACb,SAAS,CAAC;AACd,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AAE5D,MAAM,WAAW,WAAY,SAAQ,oBAAoB,CAAC,iBAAiB,CAAC;IAC1E,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AA8BD,eAAO,MAAM,MAAM,2GAmDlB,CAAC"}
1
+ {"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../src/components/Button.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAc,KAAK,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAI9D,MAAM,MAAM,aAAa,GACrB,SAAS,GACT,SAAS,GACT,WAAW,GACX,OAAO,GACP,SAAS,GACT,SAAS,GACT,QAAQ,GACR,aAAa,GACb,SAAS,CAAC;AACd,MAAM,MAAM,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AAE5D,MAAM,WAAW,WAAY,SAAQ,oBAAoB,CAAC,iBAAiB,CAAC;IAC1E,OAAO,CAAC,EAAE,aAAa,CAAC;IACxB,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAuCD,eAAO,MAAM,MAAM,2GAmDlB,CAAC"}
@@ -2,15 +2,15 @@ import { jsx as _jsx } from "react/jsx-runtime";
2
2
  import { forwardRef } from 'react';
3
3
  import { cn } from '../utils/cn';
4
4
  const variantClasses = {
5
- default: 'border-transparent bg-brand text-primary-foreground hover:bg-brand-hover',
6
- primary: 'border-transparent bg-brand text-primary-foreground hover:bg-brand-hover',
7
- secondary: 'border-app-border bg-surface text-foreground hover:bg-[color-mix(in_srgb,var(--brand)_10%,transparent)] hover:text-brand',
8
- ghost: 'border-transparent bg-transparent text-foreground-muted hover:bg-[color-mix(in_srgb,var(--brand)_10%,transparent)] hover:text-brand',
9
- outline: 'border-app-border bg-surface text-foreground hover:bg-[color-mix(in_srgb,var(--brand)_10%,transparent)] hover:text-brand',
10
- success: 'border-transparent bg-green-600 text-white hover:bg-green-700',
11
- danger: 'border-transparent bg-red-700 text-white hover:bg-red-800',
12
- destructive: 'border-transparent bg-destructive text-white hover:bg-red-600',
13
- sidebar: 'border-transparent bg-transparent text-foreground-muted hover:bg-[color-mix(in_srgb,var(--brand)_10%,transparent)] hover:text-brand',
5
+ default: 'border-app-border bg-surface text-foreground hover:border-[color-mix(in_srgb,var(--foreground-muted)_42%,var(--app-border))] hover:bg-[color-mix(in_srgb,var(--foreground-muted)_10%,var(--surface))]',
6
+ primary: 'border-transparent bg-[var(--brand)] text-[var(--primary-foreground,#ffffff)] shadow-[0_10px_22px_-16px_color-mix(in_srgb,var(--brand)_70%,#000)] hover:bg-[var(--brand-hover,var(--brand))]',
7
+ secondary: 'border-[color-mix(in_srgb,var(--brand)_28%,var(--app-border))] bg-[color-mix(in_srgb,var(--brand)_10%,var(--surface))] text-[var(--brand)] hover:bg-[color-mix(in_srgb,var(--brand)_16%,var(--surface))]',
8
+ ghost: 'border-transparent bg-transparent text-foreground-muted hover:bg-[color-mix(in_srgb,var(--foreground-muted)_10%,transparent)] hover:text-foreground',
9
+ outline: 'border-app-border bg-transparent text-foreground hover:border-[color-mix(in_srgb,var(--brand)_46%,var(--app-border))] hover:bg-[color-mix(in_srgb,var(--brand)_8%,transparent)] hover:text-[var(--brand)]',
10
+ success: 'border-transparent bg-[var(--status-success-text,#15803d)] text-white hover:bg-[color-mix(in_srgb,var(--status-success-text,#15803d)_88%,#000)]',
11
+ danger: 'border-transparent bg-[var(--status-danger-text,#b91c1c)] text-white hover:bg-[color-mix(in_srgb,var(--status-danger-text,#b91c1c)_88%,#000)]',
12
+ destructive: 'border-transparent bg-[var(--destructive)] text-white hover:bg-[color-mix(in_srgb,var(--destructive)_88%,#000)]',
13
+ sidebar: 'border-transparent bg-transparent text-foreground-muted hover:bg-[color-mix(in_srgb,var(--brand)_10%,transparent)] hover:text-[var(--brand)]',
14
14
  };
15
15
  const sizeClasses = {
16
16
  xs: 'min-h-7 min-w-7 px-1.5 py-1 text-[0.625rem]',
@@ -135,7 +135,7 @@ function Root({ children, className, closeOnEscape = true, onOpenChange, open, o
135
135
  if (!open) {
136
136
  return null;
137
137
  }
138
- return createPortal(_jsx(ConfirmationDialogContext.Provider, { value: value, children: _jsx("div", { className: cn('fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4 backdrop-blur-[2px]', overlayClassName), role: "presentation", children: _jsxs("section", { "aria-describedby": descriptionId, "aria-labelledby": titleId, "aria-modal": "true", className: cn('border-app-border bg-background-secondary text-foreground relative grid gap-4 rounded-xl border p-6 shadow-2xl', className), role: "alertdialog", style: { width: 'min(29rem, calc(100vw - 2rem))' }, children: [_jsx("button", { "aria-label": "Fechar", className: cn('text-foreground-muted hover:bg-background hover:text-foreground absolute right-4 top-4 inline-flex size-7 cursor-pointer items-center justify-center rounded-md opacity-60 transition disabled:cursor-not-allowed disabled:opacity-30'), disabled: isBusy, onClick: close, type: "button", children: _jsx(XIcon, { className: "size-3.5" }) }), children] }) }) }), document.body);
138
+ return createPortal(_jsx(ConfirmationDialogContext.Provider, { value: value, children: _jsx("div", { className: cn('fixed inset-0 z-[100] flex items-center justify-center bg-black/50 p-4 backdrop-blur-[2px]', overlayClassName), role: "presentation", children: _jsxs("section", { "aria-describedby": descriptionId, "aria-labelledby": titleId, "aria-modal": "true", className: cn('border-app-border bg-background-secondary text-foreground relative grid gap-4 rounded-xl border p-6 shadow-2xl', className), role: "alertdialog", style: { width: 'min(29rem, calc(100vw - 2rem))' }, children: [_jsx("button", { "aria-label": "Fechar", className: cn('text-foreground-muted hover:bg-background hover:text-foreground absolute right-4 top-4 inline-flex size-7 cursor-pointer items-center justify-center rounded-md opacity-60 transition disabled:cursor-not-allowed disabled:opacity-30'), disabled: isBusy, onClick: close, type: "button", children: _jsx(XIcon, { className: "size-3.5" }) }), children] }) }) }), document.body);
139
139
  }
140
140
  function Icon({ className }) {
141
141
  const { variant } = useConfirmationDialog();
@@ -49,10 +49,10 @@ function createTrigger(trigger, options) {
49
49
  }
50
50
  function ModalRoot({ allowExternalFocus = false, centered = false, children, className, overlayClassName, offset, showCloseButton = true, size = 'lg', variant = 'default', ...props }) {
51
51
  const hasFooter = React.Children.toArray(children).some((child) => React.isValidElement(child) && child.type === ModalFooter);
52
- return (_jsx(DialogPrimitive.Root, { ...props, children: _jsxs(DialogPrimitive.Portal, { children: [_jsx(DialogPrimitive.Overlay, { className: cn('fixed inset-0 z-50 bg-black/50 backdrop-blur-[2px] data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0', overlayClassName) }), _jsxs(DialogPrimitive.Content, { onFocusOutside: allowExternalFocus ? (event) => event.preventDefault() : undefined, style: {
52
+ return (_jsx(DialogPrimitive.Root, { ...props, children: _jsxs(DialogPrimitive.Portal, { children: [_jsx(DialogPrimitive.Overlay, { className: cn('fixed inset-0 z-[100] bg-black/50 backdrop-blur-[2px] data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:animate-in data-[state=open]:fade-in-0', overlayClassName) }), _jsxs(DialogPrimitive.Content, { onFocusOutside: allowExternalFocus ? (event) => event.preventDefault() : undefined, style: {
53
53
  width: widthVariants[size],
54
54
  ...(!centered && offset ? { top: `${offset}px` } : {}),
55
- }, className: cn('fixed z-50 grid max-h-[95vh] gap-4', hasFooter ? 'grid-rows-[auto_minmax(0,1fr)_auto]' : 'grid-rows-[auto_minmax(0,1fr)]', 'rounded-xl duration-200', variant === 'default' && 'border-app-border bg-background-secondary text-foreground border p-6 shadow-lg', variant === 'elevated' && 'border-app-border bg-surface text-foreground border p-6 shadow-2xl', centered ? 'left-[50%] top-[50%] -translate-x-1/2 -translate-y-1/2' : 'left-[50%] top-[2.5%] -translate-x-1/2', sizeVariants[size], minHeightVariants[size], 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95', className), children: [children, showCloseButton ? (_jsxs(DialogPrimitive.Close, { className: cn('absolute right-4 top-4 inline-flex h-8 w-8 items-center justify-center rounded-md', 'text-foreground-muted hover:bg-background hover:text-foreground cursor-pointer transition-colors', 'focus:ring-brand/50 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none'), children: [_jsx(XIcon, { className: "size-4" }), _jsx("span", { className: "sr-only", children: "Fechar" })] })) : null] })] }) }));
55
+ }, className: cn('fixed z-[110] grid max-h-[95vh] gap-4', hasFooter ? 'grid-rows-[auto_minmax(0,1fr)_auto]' : 'grid-rows-[auto_minmax(0,1fr)]', 'rounded-xl duration-200', variant === 'default' && 'border-app-border bg-background-secondary text-foreground border p-6 shadow-lg', variant === 'elevated' && 'border-app-border bg-surface text-foreground border p-6 shadow-2xl', centered ? 'left-[50%] top-[50%] -translate-x-1/2 -translate-y-1/2' : 'left-[50%] top-[2.5%] -translate-x-1/2', sizeVariants[size], minHeightVariants[size], 'data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 data-[state=open]:animate-in data-[state=open]:fade-in-0 data-[state=open]:zoom-in-95', className), children: [children, showCloseButton ? (_jsxs(DialogPrimitive.Close, { className: cn('absolute right-4 top-4 inline-flex h-8 w-8 items-center justify-center rounded-md', 'text-foreground-muted hover:bg-background hover:text-foreground cursor-pointer transition-colors', 'focus:ring-brand/50 focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:pointer-events-none'), children: [_jsx(XIcon, { className: "size-4" }), _jsx("span", { className: "sr-only", children: "Fechar" })] })) : null] })] }) }));
56
56
  }
57
57
  function ModalHeader({ className, density = 'default', separated = false, ...props }) {
58
58
  return (_jsx("div", { "data-slot": "modal-header", className: cn('flex flex-col text-center sm:text-left', density === 'default' && 'gap-1', density === 'compact' && 'gap-0.5', separated && 'border-app-border border-b pb-3', className), ...props }));
@@ -1,3 +1,4 @@
1
+ export type PaginationSize = 'sm' | 'md' | 'lg';
1
2
  export interface PaginationProps {
2
3
  page: number;
3
4
  totalPages: number;
@@ -8,6 +9,7 @@ export interface PaginationProps {
8
9
  pageSizeOptions?: number[];
9
10
  label?: string;
10
11
  isLoading?: boolean;
12
+ size?: PaginationSize;
11
13
  }
12
- export declare function Pagination({ page, totalPages, totalItems, pageSize, onPageChange, onPageSizeChange, pageSizeOptions, label, isLoading, }: PaginationProps): import("react").JSX.Element;
14
+ export declare function Pagination({ page, totalPages, totalItems, pageSize, onPageChange, onPageSizeChange, pageSizeOptions, label, isLoading, size, }: PaginationProps): import("react").JSX.Element;
13
15
  //# sourceMappingURL=Pagination.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["../../src/components/Pagination.tsx"],"names":[],"mappings":"AAuCA,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,UAAU,EACV,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,eAA+B,EAC/B,KAA0B,EAC1B,SAAiB,GAClB,EAAE,eAAe,+BA6GjB"}
1
+ {"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["../../src/components/Pagination.tsx"],"names":[],"mappings":"AAMA,MAAM,MAAM,cAAc,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AA+ChD,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACzC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,cAAc,CAAC;CACvB;AAED,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,UAAU,EACV,UAAU,EACV,QAAQ,EACR,YAAY,EACZ,gBAAgB,EAChB,eAA+B,EAC/B,KAA0B,EAC1B,SAAiB,EACjB,IAAW,GACZ,EAAE,eAAe,+BA0GjB"}
@@ -1,21 +1,43 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { ChevronLeft, ChevronRight, ChevronsLeft, ChevronsRight } from 'lucide-react';
2
3
  import { cn } from '../utils/cn';
3
4
  import { Button } from './Button';
4
- function IconChevronsLeft() {
5
- return (_jsxs("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [_jsx("polyline", { points: "11 17 6 12 11 7" }), _jsx("polyline", { points: "18 17 13 12 18 7" })] }));
6
- }
7
- function IconChevronLeft() {
8
- return (_jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: _jsx("polyline", { points: "15 18 9 12 15 6" }) }));
9
- }
10
- function IconChevronRight() {
11
- return (_jsx("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: _jsx("polyline", { points: "9 18 15 12 9 6" }) }));
12
- }
13
- function IconChevronsRight() {
14
- return (_jsxs("svg", { width: "16", height: "16", viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round", "aria-hidden": "true", children: [_jsx("polyline", { points: "13 17 18 12 13 7" }), _jsx("polyline", { points: "6 17 11 12 6 7" })] }));
15
- }
16
- export function Pagination({ page, totalPages, totalItems, pageSize, onPageChange, onPageSizeChange, pageSizeOptions = [20, 50, 100], label = 'Itens por página', isLoading = false, }) {
5
+ const sizeClasses = {
6
+ sm: {
7
+ root: 'gap-2 md:gap-3',
8
+ count: 'text-xs md:min-w-[7rem] md:text-[0.8125rem]',
9
+ controls: 'gap-1',
10
+ iconButton: 'h-8 min-h-8 min-w-8 px-2 py-0 [&_svg]:size-3.5',
11
+ navButton: 'h-8 min-h-8 min-w-8 px-2 py-0 min-[901px]:min-w-[5.75rem] [&_svg]:size-3.5',
12
+ pageIndicator: 'h-8 px-2 text-xs md:min-w-[6.75rem] md:text-[0.8125rem]',
13
+ select: 'h-8 min-w-18 px-2.5 text-xs',
14
+ selectLabel: 'text-xs md:text-[0.8125rem]',
15
+ },
16
+ md: {
17
+ root: 'gap-2.5 md:gap-3',
18
+ count: 'text-[0.8125rem] md:min-w-[7.5rem]',
19
+ controls: 'gap-1.5',
20
+ iconButton: 'h-9 min-h-9 min-w-9 px-2.5 py-0 [&_svg]:size-4',
21
+ navButton: 'h-9 min-h-9 min-w-9 px-3 py-0 min-[901px]:min-w-[6.25rem] [&_svg]:size-4',
22
+ pageIndicator: 'h-9 px-3 text-[0.8125rem] md:min-w-[7.25rem]',
23
+ select: 'h-9 min-w-20 px-3 text-[0.8125rem]',
24
+ selectLabel: 'text-[0.8125rem]',
25
+ },
26
+ lg: {
27
+ root: 'gap-3 md:gap-4',
28
+ count: 'text-sm md:min-w-[8rem]',
29
+ controls: 'gap-2',
30
+ iconButton: 'h-10 min-h-10 min-w-10 px-3 py-0 [&_svg]:size-[1.125rem]',
31
+ navButton: 'h-10 min-h-10 min-w-10 px-3.5 py-0 min-[901px]:min-w-[6.75rem] [&_svg]:size-[1.125rem]',
32
+ pageIndicator: 'h-10 px-3.5 text-sm md:min-w-[7.75rem]',
33
+ select: 'h-10 min-w-22 px-3.5 text-sm',
34
+ selectLabel: 'text-sm',
35
+ },
36
+ };
37
+ export function Pagination({ page, totalPages, totalItems, pageSize, onPageChange, onPageSizeChange, pageSizeOptions = [20, 50, 100], label = 'Itens por pagina', isLoading = false, size = 'sm', }) {
17
38
  const isFirstPage = page <= 1;
18
39
  const isLastPage = page >= totalPages;
40
+ const resolvedSize = sizeClasses[size];
19
41
  function handleFirstPage() {
20
42
  onPageChange(1);
21
43
  }
@@ -31,7 +53,5 @@ export function Pagination({ page, totalPages, totalItems, pageSize, onPageChang
31
53
  function handleSizeChange(event) {
32
54
  onPageSizeChange(Number(event.target.value));
33
55
  }
34
- const iconButtonClass = 'size-8 min-h-8 min-w-8 p-0 [&_svg]:size-3.5';
35
- const navButtonClass = 'size-8 min-h-8 min-w-8 p-0 md:w-auto md:px-2 [&_svg]:size-3.5';
36
- return (_jsxs("div", { className: "flex w-full min-w-0 flex-wrap items-center justify-between gap-2 md:flex-nowrap md:gap-3", children: [_jsx("div", { className: "flex min-w-0 shrink-0 items-center justify-start whitespace-nowrap text-xs font-medium text-foreground-muted md:min-w-[7rem] md:text-[0.8125rem]", children: _jsx("span", { children: typeof totalItems === 'number' ? `${totalItems} registro(s)` : 'Nenhum resultado' }) }), _jsxs("div", { className: "order-3 flex min-w-0 flex-1 flex-nowrap items-center justify-center gap-1.5 md:order-none", children: [_jsx(Button, { variant: "outline", rounded: true, size: "sm", className: iconButtonClass, onClick: handleFirstPage, disabled: isFirstPage || isLoading, "aria-label": "Primeira p\u00E1gina", tooltip: "Primeira p\u00E1gina", children: _jsx(IconChevronsLeft, {}) }), _jsxs(Button, { variant: "outline", rounded: true, size: "sm", className: navButtonClass, onClick: handlePrevPage, disabled: isFirstPage || isLoading, "aria-label": "P\u00E1gina anterior", children: [_jsx(IconChevronLeft, {}), _jsx("span", { className: "hidden text-xs min-[901px]:inline", children: "Anterior" })] }), _jsxs("span", { className: "inline-flex min-w-0 items-center justify-center whitespace-nowrap rounded-[var(--radius)] px-2 py-1.5 text-xs font-semibold text-foreground md:min-w-[6.75rem] md:text-[0.8125rem]", children: ["P\u00E1gina ", page, " de ", totalPages] }), _jsxs(Button, { variant: "outline", rounded: true, size: "sm", className: navButtonClass, onClick: handleNextPage, disabled: isLastPage || isLoading, "aria-label": "Pr\u00F3xima p\u00E1gina", children: [_jsx("span", { className: "hidden text-xs min-[901px]:inline", children: "Pr\u00F3xima" }), _jsx(IconChevronRight, {})] }), _jsx(Button, { variant: "outline", rounded: true, size: "sm", className: iconButtonClass, onClick: handleLastPage, disabled: isLastPage || isLoading, "aria-label": "\u00DAltima p\u00E1gina", tooltip: "\u00DAltima p\u00E1gina", children: _jsx(IconChevronsRight, {}) })] }), _jsxs("div", { className: cn('flex min-w-0 shrink-0 items-center justify-end gap-1.5 md:min-w-[9rem]', pageSizeOptions.length <= 1 && 'invisible'), children: [_jsx("span", { className: "whitespace-nowrap text-xs text-foreground-muted md:text-[0.8125rem]", children: label }), _jsx("select", { className: "border-app-border bg-surface h-8 min-w-18 cursor-pointer rounded-[var(--radius)] border px-2.5 text-xs text-foreground transition-colors focus:border-brand focus:outline-none focus:ring-2 focus:ring-brand/20 disabled:cursor-not-allowed disabled:opacity-50", value: pageSize, onChange: handleSizeChange, disabled: isLoading, "aria-label": "Itens por p\u00E1gina", children: pageSizeOptions.map((size) => (_jsx("option", { value: size, children: size }, size))) })] })] }));
56
+ return (_jsxs("div", { className: cn('flex w-full min-w-0 flex-wrap items-center justify-between md:flex-nowrap', resolvedSize.root), children: [_jsx("div", { className: cn('flex min-w-0 shrink-0 items-center justify-start whitespace-nowrap font-medium text-foreground-muted', resolvedSize.count), children: _jsx("span", { children: typeof totalItems === 'number' ? `${totalItems} registro(s)` : 'Nenhum resultado' }) }), _jsxs("div", { className: cn('order-3 flex min-w-0 flex-1 flex-nowrap items-center justify-center md:order-none', resolvedSize.controls), children: [_jsx(Button, { variant: "outline", size: "xs", className: resolvedSize.iconButton, onClick: handleFirstPage, disabled: isFirstPage || isLoading, "aria-label": "Primeira pagina", tooltip: "Primeira pagina", children: _jsx(ChevronsLeft, { "aria-hidden": "true" }) }), _jsxs(Button, { variant: "outline", size: "xs", className: resolvedSize.navButton, onClick: handlePrevPage, disabled: isFirstPage || isLoading, "aria-label": "Pagina anterior", children: [_jsx(ChevronLeft, { "aria-hidden": "true" }), _jsx("span", { className: "hidden min-[901px]:inline", children: "Anterior" })] }), _jsxs("span", { className: cn('inline-flex min-w-0 items-center justify-center whitespace-nowrap rounded-[var(--radius)] font-semibold text-foreground', resolvedSize.pageIndicator), children: ["Pagina ", page, " de ", totalPages] }), _jsxs(Button, { variant: "outline", size: "xs", className: resolvedSize.navButton, onClick: handleNextPage, disabled: isLastPage || isLoading, "aria-label": "Proxima pagina", children: [_jsx("span", { className: "hidden min-[901px]:inline", children: "Proxima" }), _jsx(ChevronRight, { "aria-hidden": "true" })] }), _jsx(Button, { variant: "outline", size: "xs", className: resolvedSize.iconButton, onClick: handleLastPage, disabled: isLastPage || isLoading, "aria-label": "Ultima pagina", tooltip: "Ultima pagina", children: _jsx(ChevronsRight, { "aria-hidden": "true" }) })] }), _jsxs("div", { className: cn('flex min-w-0 shrink-0 items-center justify-end gap-1.5 md:min-w-[9rem]', pageSizeOptions.length <= 1 && 'invisible'), children: [_jsx("span", { className: cn('whitespace-nowrap text-foreground-muted', resolvedSize.selectLabel), children: label }), _jsx("select", { className: cn('border-app-border bg-surface cursor-pointer rounded-[var(--radius)] border text-foreground transition-colors focus:border-brand focus:outline-none focus:ring-2 focus:ring-brand/20 disabled:cursor-not-allowed disabled:opacity-50', resolvedSize.select), value: pageSize, onChange: handleSizeChange, disabled: isLoading, "aria-label": "Itens por pagina", children: pageSizeOptions.map((option) => (_jsx("option", { value: option, children: option }, option))) })] })] }));
37
57
  }
@@ -8,6 +8,7 @@ export interface SwitchProps<TFieldValues extends FieldValues = FieldValues> ext
8
8
  wrapperClassName?: string;
9
9
  labelClassName?: string;
10
10
  labelPosition?: 'top' | 'right' | 'bottom' | 'left';
11
+ display?: 'field' | 'inline';
11
12
  size?: 'xs' | 'sm' | 'md' | 'lg';
12
13
  control?: unknown;
13
14
  rules?: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"Switch.d.ts","sourceRoot":"","sources":["../../src/components/Switch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAGL,KAAK,WAAW,EAGjB,MAAM,iBAAiB,CAAC;AAKzB,MAAM,WAAW,WAAW,CAAC,YAAY,SAAS,WAAW,GAAG,WAAW,CACzE,SAAQ,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC;IACvE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpD,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AA0HD,wBAAgB,MAAM,CAAC,YAAY,SAAS,WAAW,GAAG,WAAW,EAAE,KAAK,EAAE,WAAW,CAAC,YAAY,CAAC,qBAMtG;yBANe,MAAM"}
1
+ {"version":3,"file":"Switch.d.ts","sourceRoot":"","sources":["../../src/components/Switch.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAGL,KAAK,WAAW,EAGjB,MAAM,iBAAiB,CAAC;AAKzB,MAAM,WAAW,WAAW,CAAC,YAAY,SAAS,WAAW,GAAG,WAAW,CACzE,SAAQ,IAAI,CAAC,KAAK,CAAC,oBAAoB,CAAC,iBAAiB,CAAC,EAAE,UAAU,CAAC;IACvE,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpD,OAAO,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC7B,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAyJD,wBAAgB,MAAM,CAAC,YAAY,SAAS,WAAW,GAAG,WAAW,EAAE,KAAK,EAAE,WAAW,CAAC,YAAY,CAAC,qBAMtG;yBANe,MAAM"}
@@ -1,4 +1,4 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useController, } from 'react-hook-form';
3
3
  import { cn } from '../utils/cn';
4
4
  import { FieldControl } from './FieldControl';
@@ -24,7 +24,7 @@ const switchSizeClasses = {
24
24
  offset: 20,
25
25
  },
26
26
  };
27
- function SwitchBase({ checked, className, errorMessage, id, inputChecked, inputDisabled, inputName, inputOnBlur, label, labelClassName = '', labelPosition = 'left', name, onChange, onCheckedChange, size = 'md', wrapperClassName, ...props }) {
27
+ function SwitchBase({ checked, className, errorMessage, id, inputChecked, inputDisabled, inputName, inputOnBlur, label, labelClassName = '', labelPosition = 'left', display = 'field', name, onChange, onCheckedChange, size = 'md', wrapperClassName, ...props }) {
28
28
  const resolvedChecked = inputChecked ?? checked;
29
29
  const resolvedName = inputName ?? name;
30
30
  const resolvedDisabled = inputDisabled ?? props.disabled;
@@ -36,7 +36,14 @@ function SwitchBase({ checked, className, errorMessage, id, inputChecked, inputD
36
36
  onCheckedChange?.(nextChecked);
37
37
  onChange?.(nextChecked);
38
38
  }
39
- return (_jsx(FieldControl, { label: label, id: componentId, labelClassName: cn('whitespace-nowrap leading-none', isHorizontal && 'self-center', labelClassName), labelPosition: labelPosition, wrapperClassName: wrapperClassName, errorMessage: errorMessage, size: size, disabled: resolvedDisabled, children: ({ controlId, describedBy, disabled }) => (_jsx("button", { type: "button", role: "switch", "aria-checked": !!resolvedChecked, "aria-label": label, "aria-describedby": describedBy, id: controlId, name: resolvedName, onClick: handleClick, onBlur: inputOnBlur, disabled: disabled, "data-checked": !!resolvedChecked, className: cn('app-switch focus:ring-brand/50 inline-flex shrink-0 flex-none self-center rounded-full transition-colors duration-200 focus:ring-2 focus:ring-offset-2 focus:outline-none', sizeClasses.root, disabled ? 'cursor-not-allowed opacity-60' : 'cursor-pointer', className), ...props, children: _jsx("span", { className: cn('app-switch__thumb block rounded-full shadow-sm transition-transform duration-200', sizeClasses.thumb), style: { transform: `translateX(${resolvedChecked ? sizeClasses.offset : 0}px)` } }) })) }));
39
+ const button = (controlId, describedBy, disabled = resolvedDisabled) => (_jsx("button", { type: "button", role: "switch", "aria-checked": !!resolvedChecked, "aria-label": label, "aria-describedby": describedBy, id: controlId, name: resolvedName, onClick: handleClick, onBlur: inputOnBlur, disabled: disabled, "data-checked": !!resolvedChecked, className: cn('app-switch focus:ring-brand/50 inline-flex shrink-0 flex-none self-center rounded-full transition-colors duration-200 focus:ring-2 focus:ring-offset-2 focus:outline-none', sizeClasses.root, disabled ? 'cursor-not-allowed opacity-60' : 'cursor-pointer', className), ...props, children: _jsx("span", { className: cn('app-switch__thumb block rounded-full shadow-sm transition-transform duration-200', sizeClasses.thumb), style: { transform: `translateX(${resolvedChecked ? sizeClasses.offset : 0}px)` } }) }));
40
+ if (display === 'inline') {
41
+ const labelElement = label ? (_jsx("span", { className: cn('min-w-0 flex-1 text-sm font-medium leading-snug text-foreground', labelClassName), children: label })) : null;
42
+ const isLabelAfter = labelPosition === 'right' || labelPosition === 'bottom';
43
+ const isVertical = labelPosition === 'top' || labelPosition === 'bottom';
44
+ return (_jsxs("div", { className: cn('flex gap-3', isVertical ? 'flex-col items-start' : 'items-center justify-between', resolvedDisabled && 'opacity-70', wrapperClassName), "data-disabled": resolvedDisabled || undefined, children: [!isLabelAfter && labelElement, button(componentId, undefined, resolvedDisabled), isLabelAfter && labelElement] }));
45
+ }
46
+ return (_jsx(FieldControl, { label: label, id: componentId, labelClassName: cn('whitespace-nowrap leading-none', isHorizontal && 'self-center', labelClassName), labelPosition: labelPosition, wrapperClassName: wrapperClassName, errorMessage: errorMessage, size: size, disabled: resolvedDisabled, children: ({ controlId, describedBy, disabled }) => (button(controlId, describedBy, disabled)) }));
40
47
  }
41
48
  function HookFormSwitch(props) {
42
49
  const { control, name, rules, ...rest } = props;
@@ -1,4 +1,7 @@
1
1
  import React from 'react';
2
+ import { type FormControlVariant } from './form-control-helpers';
3
+ export type TextFieldVariant = FormControlVariant;
4
+ export type TextFieldIconPosition = 'left' | 'right';
2
5
  export interface TextFieldProps extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'size'> {
3
6
  wrapperClassName?: string;
4
7
  labelClassName?: string;
@@ -10,8 +13,13 @@ export interface TextFieldProps extends Omit<React.InputHTMLAttributes<HTMLInput
10
13
  roundedFull?: boolean;
11
14
  size?: 'xs' | 'sm' | 'md' | 'lg';
12
15
  labelPosition?: 'top' | 'right' | 'bottom' | 'left';
16
+ variant?: TextFieldVariant;
17
+ icon?: React.ReactNode;
18
+ iconPosition?: TextFieldIconPosition;
13
19
  children?: React.ReactNode;
20
+ startAdornment?: React.ReactNode;
14
21
  endAdornment?: React.ReactNode;
22
+ adornmentClassName?: string;
15
23
  }
16
24
  export declare const TextField: React.ForwardRefExoticComponent<TextFieldProps & React.RefAttributes<HTMLInputElement>>;
17
25
  //# sourceMappingURL=TextField.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"TextField.d.ts","sourceRoot":"","sources":["../../src/components/TextField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC/F,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC,aAAa,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpD,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAChC;AAED,eAAO,MAAM,SAAS,yFAoGrB,CAAC"}
1
+ {"version":3,"file":"TextField.d.ts","sourceRoot":"","sources":["../../src/components/TextField.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,EAAkB,KAAK,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAGjF,MAAM,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;AAClD,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,OAAO,CAAC;AAErD,MAAM,WAAW,cAAe,SAAQ,IAAI,CAAC,KAAK,CAAC,mBAAmB,CAAC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC/F,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,IAAI,CAAC,EAAE,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;IACjC,aAAa,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IACpD,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,IAAI,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACvB,YAAY,CAAC,EAAE,qBAAqB,CAAC;IACrC,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,cAAc,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACjC,YAAY,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC/B,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,eAAO,MAAM,SAAS,yFA+KrB,CAAC"}
@@ -3,10 +3,13 @@ import React from 'react';
3
3
  import { cn } from '../utils/cn';
4
4
  import { controlClasses } from './form-control-helpers';
5
5
  import { FieldControl } from './FieldControl';
6
- export const TextField = React.forwardRef(({ label, errorMessage, error, id, className, wrapperClassName, labelClassName = '', labelPosition = 'top', children, endAdornment, roundedFull = false, size = 'sm', placeholder, disabled = false, helperText, ...props }, ref) => {
6
+ export const TextField = React.forwardRef(({ label, errorMessage, error, id, className, wrapperClassName, labelClassName = '', labelPosition = 'top', icon, iconPosition = 'right', children, startAdornment, endAdornment, adornmentClassName, roundedFull = false, size = 'sm', variant = 'default', placeholder, disabled = false, helperText, hasValidation = false, ...props }, ref) => {
7
7
  const componentId = id || props.name;
8
- const adornment = children ?? endAdornment;
9
- const hasChildren = !!adornment;
8
+ const positionedIcon = icon;
9
+ const resolvedStartAdornment = startAdornment ?? (iconPosition === 'left' ? positionedIcon : undefined);
10
+ const resolvedEndAdornment = endAdornment ?? children ?? (iconPosition === 'right' ? positionedIcon : undefined);
11
+ const hasStartAdornment = !!resolvedStartAdornment;
12
+ const hasEndAdornment = !!resolvedEndAdornment;
10
13
  const resolvedError = errorMessage ?? error;
11
14
  const sizeMap = {
12
15
  xs: 'h-7 text-xs',
@@ -28,16 +31,41 @@ export const TextField = React.forwardRef(({ label, errorMessage, error, id, cla
28
31
  md: 'pr-12',
29
32
  lg: 'pr-14',
30
33
  };
31
- return (_jsx(FieldControl, { label: label, id: componentId, labelClassName: labelClassName, labelPosition: labelPosition, wrapperClassName: wrapperClassName, errorMessage: resolvedError, hasValidation: !!helperText || props['aria-invalid'] === true, roundedFull: roundedFull, size: size, disabled: disabled, children: ({ controlId, describedBy, errorMessage: controlError, disabled: controlDisabled, label: controlLabel }) => {
34
+ const leftPaddingMap = {
35
+ xs: 'pl-8',
36
+ sm: 'pl-10',
37
+ md: 'pl-12',
38
+ lg: 'pl-14',
39
+ };
40
+ const startAdornmentOffsetMap = {
41
+ xs: 'left-2',
42
+ sm: 'left-2',
43
+ md: 'left-3',
44
+ lg: 'left-4',
45
+ };
46
+ const endAdornmentOffsetMap = {
47
+ xs: 'right-1.5',
48
+ sm: 'right-2',
49
+ md: 'right-3',
50
+ lg: 'right-4',
51
+ };
52
+ const adornmentSizeMap = {
53
+ xs: '[&>svg]:size-3.5',
54
+ sm: '[&>svg]:size-4',
55
+ md: '[&>svg]:size-[1.125rem]',
56
+ lg: '[&>svg]:size-5',
57
+ };
58
+ return (_jsx(FieldControl, { label: label, id: componentId, labelClassName: labelClassName, labelPosition: labelPosition, wrapperClassName: wrapperClassName, errorMessage: resolvedError, hasValidation: hasValidation || !!helperText || props['aria-invalid'] === true, roundedFull: roundedFull, size: size, disabled: disabled, children: ({ controlId, describedBy, errorMessage: controlError, disabled: controlDisabled, label: controlLabel }) => {
32
59
  const helperId = `${controlId}-helper`;
33
60
  const inputDescribedBy = cn(describedBy, helperText && !controlError && helperId);
34
- return (_jsxs("div", { className: cn('relative', hasChildren && 'min-h-[2.5rem]'), children: [_jsx("input", { ref: ref, ...props, id: controlId, disabled: controlDisabled, placeholder: placeholder ?? controlLabel, "aria-invalid": !!controlError, "aria-describedby": inputDescribedBy || undefined, className: controlClasses({
35
- errorMessage: controlError,
36
- disabled: controlDisabled,
37
- extra: cn(className, 'truncate', roundedFull
38
- ? cn('rounded-full', paddingClass[size ?? 'sm'], sizeClass, hasChildren && rightPaddingMap[size ?? 'sm'])
39
- : cn(paddingClass[size ?? 'sm'], sizeClass, hasChildren && rightPaddingMap[size ?? 'sm'])),
40
- }) }), hasChildren && _jsx("div", { className: "pointer-events-none absolute inset-y-0 right-3 flex items-center text-foreground-muted", children: adornment }), helperText && !controlError ? (_jsx("p", { id: helperId, className: "mt-1 text-xs font-medium text-foreground-muted", children: helperText })) : null] }));
61
+ return (_jsxs("div", { children: [_jsxs("div", { className: "relative", children: [_jsx("input", { ref: ref, ...props, id: controlId, disabled: controlDisabled, placeholder: placeholder ?? controlLabel, "aria-invalid": !!controlError, "aria-describedby": inputDescribedBy || undefined, className: controlClasses({
62
+ errorMessage: controlError,
63
+ disabled: controlDisabled,
64
+ variant,
65
+ extra: cn(className, 'truncate', roundedFull
66
+ ? cn('rounded-full', paddingClass[size ?? 'sm'], sizeClass, hasStartAdornment && leftPaddingMap[size ?? 'sm'], hasEndAdornment && rightPaddingMap[size ?? 'sm'])
67
+ : cn(paddingClass[size ?? 'sm'], sizeClass, hasStartAdornment && leftPaddingMap[size ?? 'sm'], hasEndAdornment && rightPaddingMap[size ?? 'sm'])),
68
+ }) }), hasStartAdornment && (_jsx("div", { className: cn('pointer-events-none absolute inset-y-0 flex items-center justify-center text-foreground-muted', startAdornmentOffsetMap[size ?? 'sm'], adornmentSizeMap[size ?? 'sm'], adornmentClassName), children: resolvedStartAdornment })), hasEndAdornment && (_jsx("div", { className: cn('pointer-events-none absolute inset-y-0 flex items-center justify-center text-foreground-muted', endAdornmentOffsetMap[size ?? 'sm'], adornmentSizeMap[size ?? 'sm'], adornmentClassName), children: resolvedEndAdornment }))] }), helperText && !controlError ? (_jsx("p", { id: helperId, className: "mt-1 text-xs font-medium text-foreground-muted", children: helperText })) : null] }));
41
69
  } }));
42
70
  });
43
71
  TextField.displayName = 'TextField';
@@ -1,3 +1,4 @@
1
+ import type { CSSProperties } from 'react';
1
2
  export type ThemeAppearance = 'system' | 'light' | 'dark';
2
3
  export type ThemeColorOption = {
3
4
  key: string;
@@ -18,7 +19,11 @@ export interface ThemePreferencesSelectorProps {
18
19
  locked?: boolean;
19
20
  showAppearanceSelector?: boolean;
20
21
  showColorSelector?: boolean;
22
+ appearanceButtonClassName?: string;
23
+ selectedAppearanceButtonClassName?: string;
24
+ appearanceButtonStyle?: CSSProperties;
25
+ selectedAppearanceButtonStyle?: CSSProperties;
21
26
  onLockedOptionClick?: (option: ThemeColorOption) => void;
22
27
  }
23
- export declare function ThemePreferencesSelector({ disabled, locked, onChange, onLockedOptionClick, options, showAppearanceSelector, showColorSelector, value, }: ThemePreferencesSelectorProps): import("react").JSX.Element;
28
+ export declare function ThemePreferencesSelector({ disabled, locked, onChange, onLockedOptionClick, options, appearanceButtonClassName, appearanceButtonStyle, selectedAppearanceButtonClassName, selectedAppearanceButtonStyle, showAppearanceSelector, showColorSelector, value, }: ThemePreferencesSelectorProps): import("react").JSX.Element;
24
29
  //# sourceMappingURL=ThemePreferencesSelector.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ThemePreferencesSelector.d.ts","sourceRoot":"","sources":["../../src/components/ThemePreferencesSelector.tsx"],"names":[],"mappings":"AAIA,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAE1D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,eAAe,CAAC;CAC7B,CAAC;AAEF,MAAM,WAAW,6BAA6B;IAC5C,KAAK,EAAE,qBAAqB,CAAC;IAC7B,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,QAAQ,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAC1D;AAeD,wBAAgB,wBAAwB,CAAC,EACvC,QAAgB,EAChB,MAAc,EACd,QAAQ,EACR,mBAAmB,EACnB,OAAO,EACP,sBAA6B,EAC7B,iBAAwB,EACxB,KAAK,GACN,EAAE,6BAA6B,+BAkF/B"}
1
+ {"version":3,"file":"ThemePreferencesSelector.d.ts","sourceRoot":"","sources":["../../src/components/ThemePreferencesSelector.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAG3C,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAE1D,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,eAAe,CAAC;CAC7B,CAAC;AAEF,MAAM,WAAW,6BAA6B;IAC5C,KAAK,EAAE,qBAAqB,CAAC;IAC7B,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,QAAQ,EAAE,CAAC,KAAK,EAAE,qBAAqB,KAAK,IAAI,CAAC;IACjD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,sBAAsB,CAAC,EAAE,OAAO,CAAC;IACjC,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,yBAAyB,CAAC,EAAE,MAAM,CAAC;IACnC,iCAAiC,CAAC,EAAE,MAAM,CAAC;IAC3C,qBAAqB,CAAC,EAAE,aAAa,CAAC;IACtC,6BAA6B,CAAC,EAAE,aAAa,CAAC;IAC9C,mBAAmB,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAC1D;AAQD,wBAAgB,wBAAwB,CAAC,EACvC,QAAgB,EAChB,MAAc,EACd,QAAQ,EACR,mBAAmB,EACnB,OAAO,EACP,yBAAyB,EACzB,qBAAqB,EACrB,iCAAiC,EACjC,6BAA6B,EAC7B,sBAA6B,EAC7B,iBAAwB,EACxB,KAAK,GACN,EAAE,6BAA6B,+BAsF/B"}
@@ -6,13 +6,7 @@ const appearanceOptions = [
6
6
  { value: 'light', label: 'Claro', Icon: Sun },
7
7
  { value: 'dark', label: 'Escuro', Icon: Moon },
8
8
  ];
9
- const selectedAppearanceStyle = {
10
- backgroundColor: 'var(--brand)',
11
- borderColor: 'var(--brand)',
12
- boxShadow: '0 0 0 3px color-mix(in srgb, var(--brand) 24%, transparent)',
13
- color: 'var(--primary-foreground, #fff)',
14
- };
15
- export function ThemePreferencesSelector({ disabled = false, locked = false, onChange, onLockedOptionClick, options, showAppearanceSelector = true, showColorSelector = true, value, }) {
9
+ export function ThemePreferencesSelector({ disabled = false, locked = false, onChange, onLockedOptionClick, options, appearanceButtonClassName, appearanceButtonStyle, selectedAppearanceButtonClassName, selectedAppearanceButtonStyle, showAppearanceSelector = true, showColorSelector = true, value, }) {
16
10
  function selectAppearance(appearance) {
17
11
  if (disabled || locked)
18
12
  return;
@@ -36,6 +30,8 @@ export function ThemePreferencesSelector({ disabled = false, locked = false, onC
36
30
  }) })] })) : null, showAppearanceSelector ? (_jsxs("section", { className: "grid gap-2", children: [_jsx("span", { className: "text-xs font-bold uppercase tracking-[0.16em] text-foreground-muted", children: "Aparencia" }), _jsx("div", { className: "flex flex-wrap items-center justify-start gap-2", children: appearanceOptions.map((option) => {
37
31
  const Icon = option.Icon;
38
32
  const isSelected = value.appearance === option.value;
39
- return (_jsxs("button", { type: "button", className: cn('border-app-border bg-surface inline-flex h-9 w-full max-w-[120px] cursor-pointer items-center justify-center gap-1.5 rounded-md border px-3 text-xs font-bold text-foreground-muted transition-[background-color,border-color,color,box-shadow] hover:border-[color-mix(in_srgb,var(--brand)_44%,var(--app-border))] hover:bg-[color-mix(in_srgb,var(--brand)_10%,var(--surface))] hover:text-brand focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/35 disabled:cursor-not-allowed disabled:opacity-60'), style: isSelected ? selectedAppearanceStyle : undefined, onClick: () => selectAppearance(option.value), disabled: disabled || locked, "aria-pressed": isSelected, "data-selected": isSelected, children: [_jsx(Icon, { "aria-hidden": "true", size: 14, strokeWidth: 2 }), option.label] }, option.value));
33
+ return (_jsxs("button", { type: "button", className: cn('border-app-border bg-surface inline-flex h-9 w-full max-w-[120px] cursor-pointer items-center justify-center gap-1.5 rounded-md border px-3 text-xs font-bold text-foreground-muted transition-[background-color,border-color,color,box-shadow] hover:border-[color-mix(in_srgb,var(--brand)_44%,var(--app-border))] hover:bg-[color-mix(in_srgb,var(--brand)_10%,var(--surface))] hover:text-brand focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-brand/35 disabled:cursor-not-allowed disabled:opacity-60', appearanceButtonClassName, isSelected &&
34
+ (selectedAppearanceButtonClassName ??
35
+ 'border-brand bg-brand text-primary-foreground shadow-[0_0_0_3px_color-mix(in_srgb,var(--brand)_24%,transparent)]')), style: isSelected ? { ...appearanceButtonStyle, ...selectedAppearanceButtonStyle } : appearanceButtonStyle, onClick: () => selectAppearance(option.value), disabled: disabled || locked, "aria-pressed": isSelected, "data-selected": isSelected, children: [_jsx(Icon, { "aria-hidden": "true", size: 14, strokeWidth: 2 }), option.label] }, option.value));
40
36
  }) })] })) : null] }));
41
37
  }
@@ -1,10 +1,11 @@
1
1
  export declare const fieldWrapper = "flex w-full flex-col space-y-1";
2
2
  export declare const labelBase = "mb-1 text-md font-medium";
3
+ export type FormControlVariant = 'default' | 'filled' | 'ghost' | 'neutral';
3
4
  interface ControlClassOptions {
4
5
  errorMessage?: string;
5
6
  extra?: string;
6
7
  disabled?: boolean;
7
- variant?: 'default' | 'neutral';
8
+ variant?: FormControlVariant;
8
9
  }
9
10
  export type FormControlSize = 'xs' | 'sm' | 'md' | 'lg';
10
11
  export interface FormControlRenderProps {
@@ -1 +1 @@
1
- {"version":3,"file":"form-control-helpers.d.ts","sourceRoot":"","sources":["../../src/components/form-control-helpers.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,mCAAmC,CAAC;AAE7D,eAAO,MAAM,SAAS,6BAA6B,CAAC;AAuBpD,UAAU,mBAAmB;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;CACjC;AAED,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAExD,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,eAAe,CAAC;CACvB;AAED,wBAAgB,cAAc,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;AAClG,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAAC"}
1
+ {"version":3,"file":"form-control-helpers.d.ts","sourceRoot":"","sources":["../../src/components/form-control-helpers.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,YAAY,mCAAmC,CAAC;AAE7D,eAAO,MAAM,SAAS,6BAA6B,CAAC;AAEpD,MAAM,MAAM,kBAAkB,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC;AAgC5E,UAAU,mBAAmB;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B;AAED,MAAM,MAAM,eAAe,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAExD,MAAM,WAAW,sBAAsB;IACrC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,eAAe,CAAC;CACvB;AAED,wBAAgB,cAAc,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,MAAM,CAAC;AAClG,wBAAgB,cAAc,CAAC,OAAO,CAAC,EAAE,mBAAmB,GAAG,MAAM,CAAC"}
@@ -1,18 +1,20 @@
1
1
  import { cn } from '../utils/cn';
2
2
  export const fieldWrapper = 'flex w-full flex-col space-y-1';
3
3
  export const labelBase = 'mb-1 text-md font-medium';
4
- const controlBaseNoFocus = cn('bg-surface border-app-border text-foreground placeholder:text-foreground-muted w-full rounded-md px-3 py-2 transition-colors duration-200', 'disabled:bg-input-bg disabled:border-app-border', 'disabled:cursor-not-allowed disabled:opacity-60', 'font-medium', 'border enabled:hover:border-brand');
5
- const controlBaseWithFocus = cn(controlBaseNoFocus, 'focus:outline-none focus:ring-2 focus:ring-inset focus:ring-brand/50 focus:bg-input-bg');
6
- const controlNeutral = cn('text-foreground placeholder:text-foreground-muted w-full rounded-md px-3 py-2 transition-colors duration-200 font-medium border', 'bg-transparent border-transparent', 'enabled:hover:bg-input-bg/60 enabled:hover:border-app-border/60', 'focus:outline-none focus:bg-input-bg focus:border-app-border focus:ring-1 focus:ring-inset focus:ring-brand/30', 'disabled:cursor-not-allowed disabled:opacity-60');
4
+ const controlShared = cn('text-foreground placeholder:text-foreground-muted w-full rounded-md px-3 py-2 font-medium border', 'transition-[background-color,border-color,box-shadow,color] duration-200', 'disabled:cursor-not-allowed disabled:opacity-60');
5
+ const controlDefault = cn(controlShared, 'bg-surface border-app-border', 'enabled:hover:border-brand', 'focus:outline-none focus:bg-surface focus:border-brand focus:ring-2 focus:ring-inset focus:ring-brand/35', 'disabled:bg-input-bg disabled:border-app-border');
6
+ const controlFilled = cn(controlShared, 'bg-input-bg border-app-border', 'enabled:hover:border-brand enabled:hover:bg-[color-mix(in_srgb,var(--input-bg)_75%,var(--surface))]', 'focus:outline-none focus:bg-surface focus:border-brand focus:ring-2 focus:ring-inset focus:ring-brand/35', 'disabled:bg-input-bg disabled:border-app-border');
7
+ const controlGhost = cn(controlShared, 'bg-transparent border-transparent', 'enabled:hover:bg-[color-mix(in_srgb,var(--foreground-muted)_8%,transparent)] enabled:hover:border-[color-mix(in_srgb,var(--foreground-muted)_24%,transparent)]', 'focus:outline-none focus:bg-surface focus:border-brand focus:ring-2 focus:ring-inset focus:ring-brand/25', 'disabled:bg-transparent disabled:border-transparent');
7
8
  export function controlClasses(errorMessageOrOptions, extra, disabled) {
8
9
  const options = typeof errorMessageOrOptions === 'object'
9
10
  ? errorMessageOrOptions
10
11
  : { errorMessage: errorMessageOrOptions, extra, disabled };
11
- const base = options.variant === 'neutral'
12
- ? controlNeutral
13
- : options.disabled
14
- ? controlBaseNoFocus
15
- : controlBaseWithFocus;
12
+ const variant = options.variant === 'neutral' ? 'ghost' : options.variant ?? 'default';
13
+ const base = variant === 'filled'
14
+ ? controlFilled
15
+ : variant === 'ghost'
16
+ ? controlGhost
17
+ : controlDefault;
16
18
  return cn(base, options.errorMessage &&
17
19
  'border-red-500 focus:border-red-500 focus:ring-inset focus:ring-red-200 dark:focus:border-red-400 dark:focus:ring-red-950', options.extra);
18
20
  }
package/dist/index.d.ts CHANGED
@@ -12,7 +12,7 @@ export { FieldSkeleton, type FieldSkeletonProps } from './components/FieldSkelet
12
12
  export { FieldValidationError } from './components/FieldValidationError';
13
13
  export { Modal, type ModalBodyProps, type ModalDensity, type ModalRootProps, type ModalSectionProps, type ModalSize, type ModalVariant } from './components/Modal';
14
14
  export { MultiSelectField, type MultiSelectFieldProps, type MultiSelectOption } from './components/MultiSelectField';
15
- export { TextField, type TextFieldProps } from './components/TextField';
15
+ export { TextField, type TextFieldIconPosition, type TextFieldProps, type TextFieldVariant } from './components/TextField';
16
16
  export { RadioGroup, type RadioGroupItemProps, type RadioGroupProps } from './components/RadioGroup';
17
17
  export { RenderCase, type RenderCaseChildProps, type RenderCaseRootProps } from './components/RenderCase';
18
18
  export { RenderIf, type RenderIfProps } from './components/RenderIf';
@@ -22,7 +22,7 @@ export { Switch, type SwitchProps } from './components/Switch';
22
22
  export { TextareaField, type TextareaFieldProps } from './components/TextareaField';
23
23
  export { DateField, type DateFieldProps } from './components/DateField';
24
24
  export { DecimalField, type DecimalFieldProps } from './components/DecimalField';
25
- export { Pagination, type PaginationProps } from './components/Pagination';
25
+ export { Pagination, type PaginationProps, type PaginationSize } from './components/Pagination';
26
26
  export { Page } from './components/Page';
27
27
  export { PageMessage, type PageMessageProps, type PageMessageVariant } from './components/PageMessage';
28
28
  export { PasswordInput, type PasswordInputProps } from './components/PasswordInput';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,YAAY,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,KAAK,mBAAmB,EAAE,KAAK,iBAAiB,EAAE,KAAK,oBAAoB,EAAE,KAAK,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC3J,OAAO,EACL,oBAAoB,EACpB,eAAe,EACf,wBAAwB,EACxB,KAAK,yBAAyB,EAC9B,KAAK,2BAA2B,EAChC,KAAK,oBAAoB,EACzB,KAAK,oBAAoB,EACzB,KAAK,qBAAqB,EAC1B,KAAK,6BAA6B,GACnC,MAAM,8BAA8B,CAAC;AACtC,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC/E,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,KAAK,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpG,OAAO,EAAE,kBAAkB,EAAE,KAAK,wBAAwB,EAAE,KAAK,uBAAuB,EAAE,KAAK,yBAAyB,EAAE,MAAM,iCAAiC,CAAC;AAClK,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACxF,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,KAAK,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACnG,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACjF,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mCAAmC,CAAC;AACzE,OAAO,EAAE,KAAK,EAAE,KAAK,cAAc,EAAE,KAAK,YAAY,EAAE,KAAK,cAAc,EAAE,KAAK,iBAAiB,EAAE,KAAK,SAAS,EAAE,KAAK,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACnK,OAAO,EAAE,gBAAgB,EAAE,KAAK,qBAAqB,EAAE,KAAK,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AACrH,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,UAAU,EAAE,KAAK,mBAAmB,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AACrG,OAAO,EAAE,UAAU,EAAE,KAAK,oBAAoB,EAAE,KAAK,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC1G,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAChG,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAC9E,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAAE,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxE,OAAO,EAAE,YAAY,EAAE,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACjF,OAAO,EAAE,UAAU,EAAE,KAAK,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,WAAW,EAAE,KAAK,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AACvG,OAAO,EAAE,aAAa,EAAE,KAAK,kBAAkB,EAAE,MAAM,4BAA4B,CAAC;AACpF,OAAO,EAAE,MAAM,EAAE,KAAK,iBAAiB,EAAE,KAAK,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAC3F,OAAO,EAAE,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,cAAc,EAAE,KAAK,mBAAmB,EAAE,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AAC/G,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACpF,OAAO,EACL,wBAAwB,EACxB,KAAK,eAAe,EACpB,KAAK,gBAAgB,EACrB,KAAK,6BAA6B,EAClC,KAAK,qBAAqB,GAC3B,MAAM,uCAAuC,CAAC;AAC/C,cAAc,+BAA+B,CAAC;AAC9C,OAAO,EACL,IAAI,EACJ,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAClB,KAAK,WAAW,EAChB,KAAK,oBAAoB,EACzB,KAAK,eAAe,EACpB,KAAK,SAAS,EACd,KAAK,gBAAgB,EACrB,KAAK,WAAW,GACjB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,KAAK,YAAY,EAAE,KAAK,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC9G,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/styles.css CHANGED
@@ -608,8 +608,6 @@ h2.react-datepicker__current-month {
608
608
  --color-amber-600: oklch(66.6% 0.179 58.318);
609
609
  --color-amber-700: oklch(55.5% 0.163 48.998);
610
610
  --color-amber-800: oklch(47.3% 0.137 46.201);
611
- --color-green-600: oklch(62.7% 0.194 149.214);
612
- --color-green-700: oklch(52.7% 0.154 150.069);
613
611
  --color-emerald-50: oklch(97.9% 0.021 166.113);
614
612
  --color-emerald-100: oklch(95% 0.052 163.051);
615
613
  --color-emerald-200: oklch(90.5% 0.093 164.15);
@@ -636,6 +634,7 @@ h2.react-datepicker__current-month {
636
634
  --container-xs: 20rem;
637
635
  --container-sm: 24rem;
638
636
  --container-md: 28rem;
637
+ --container-lg: 32rem;
639
638
  --text-xs: 0.75rem;
640
639
  --text-xs--line-height: calc(1 / 0.75);
641
640
  --text-sm: 0.875rem;
@@ -876,6 +875,12 @@ h2.react-datepicker__current-month {
876
875
  .top-full {
877
876
  top: 100%;
878
877
  }
878
+ .right-1\.5 {
879
+ right: calc(var(--spacing) * 1.5);
880
+ }
881
+ .right-2 {
882
+ right: calc(var(--spacing) * 2);
883
+ }
879
884
  .right-3 {
880
885
  right: calc(var(--spacing) * 3);
881
886
  }
@@ -894,9 +899,15 @@ h2.react-datepicker__current-month {
894
899
  .left-0 {
895
900
  left: calc(var(--spacing) * 0);
896
901
  }
902
+ .left-2 {
903
+ left: calc(var(--spacing) * 2);
904
+ }
897
905
  .left-3 {
898
906
  left: calc(var(--spacing) * 3);
899
907
  }
908
+ .left-4 {
909
+ left: calc(var(--spacing) * 4);
910
+ }
900
911
  .left-7 {
901
912
  left: calc(var(--spacing) * 7);
902
913
  }
@@ -921,6 +932,12 @@ h2.react-datepicker__current-month {
921
932
  .z-\[70\] {
922
933
  z-index: 70;
923
934
  }
935
+ .z-\[100\] {
936
+ z-index: 100;
937
+ }
938
+ .z-\[110\] {
939
+ z-index: 110;
940
+ }
924
941
  .order-3 {
925
942
  order: 3;
926
943
  }
@@ -1152,6 +1169,9 @@ h2.react-datepicker__current-month {
1152
1169
  .min-h-9 {
1153
1170
  min-height: calc(var(--spacing) * 9);
1154
1171
  }
1172
+ .min-h-10 {
1173
+ min-height: calc(var(--spacing) * 10);
1174
+ }
1155
1175
  .min-h-11 {
1156
1176
  min-height: calc(var(--spacing) * 11);
1157
1177
  }
@@ -1245,6 +1265,15 @@ h2.react-datepicker__current-month {
1245
1265
  .w-72 {
1246
1266
  width: calc(var(--spacing) * 72);
1247
1267
  }
1268
+ .w-80 {
1269
+ width: calc(var(--spacing) * 80);
1270
+ }
1271
+ .w-\[28rem\] {
1272
+ width: 28rem;
1273
+ }
1274
+ .w-\[42rem\] {
1275
+ width: 42rem;
1276
+ }
1248
1277
  .w-\[min\(10rem\,24vw\)\] {
1249
1278
  width: min(10rem, 24vw);
1250
1279
  }
@@ -1281,6 +1310,9 @@ h2.react-datepicker__current-month {
1281
1310
  .max-w-full {
1282
1311
  max-width: 100%;
1283
1312
  }
1313
+ .max-w-lg {
1314
+ max-width: var(--container-lg);
1315
+ }
1284
1316
  .max-w-md {
1285
1317
  max-width: var(--container-md);
1286
1318
  }
@@ -1320,6 +1352,9 @@ h2.react-datepicker__current-month {
1320
1352
  .min-w-20 {
1321
1353
  min-width: calc(var(--spacing) * 20);
1322
1354
  }
1355
+ .min-w-22 {
1356
+ min-width: calc(var(--spacing) * 22);
1357
+ }
1323
1358
  .min-w-24 {
1324
1359
  min-width: calc(var(--spacing) * 24);
1325
1360
  }
@@ -1329,6 +1364,9 @@ h2.react-datepicker__current-month {
1329
1364
  .min-w-\[18rem\] {
1330
1365
  min-width: 18rem;
1331
1366
  }
1367
+ .min-w-\[48rem\] {
1368
+ min-width: 48rem;
1369
+ }
1332
1370
  .flex-1 {
1333
1371
  flex: 1;
1334
1372
  }
@@ -1389,6 +1427,15 @@ h2.react-datepicker__current-month {
1389
1427
  .appearance-none {
1390
1428
  appearance: none;
1391
1429
  }
1430
+ .grid-cols-2 {
1431
+ grid-template-columns: repeat(2, minmax(0, 1fr));
1432
+ }
1433
+ .grid-cols-\[8rem_minmax\(0\,1fr\)\] {
1434
+ grid-template-columns: 8rem minmax(0,1fr);
1435
+ }
1436
+ .grid-cols-\[minmax\(0\,1fr\)_auto_auto_auto\] {
1437
+ grid-template-columns: minmax(0,1fr) auto auto auto;
1438
+ }
1392
1439
  .grid-rows-\[0fr\] {
1393
1440
  grid-template-rows: 0fr;
1394
1441
  }
@@ -1497,6 +1544,15 @@ h2.react-datepicker__current-month {
1497
1544
  margin-block-end: calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)));
1498
1545
  }
1499
1546
  }
1547
+ .divide-y {
1548
+ :where(& > :not(:last-child)) {
1549
+ --tw-divide-y-reverse: 0;
1550
+ border-bottom-style: var(--tw-border-style);
1551
+ border-top-style: var(--tw-border-style);
1552
+ border-top-width: calc(1px * var(--tw-divide-y-reverse));
1553
+ border-bottom-width: calc(1px * calc(1 - var(--tw-divide-y-reverse)));
1554
+ }
1555
+ }
1500
1556
  .self-center {
1501
1557
  align-self: center;
1502
1558
  }
@@ -1593,12 +1649,36 @@ h2.react-datepicker__current-month {
1593
1649
  --tw-border-style: dashed;
1594
1650
  border-style: dashed;
1595
1651
  }
1652
+ .border-\[color-mix\(in_srgb\,var\(--brand\)_28\%\,var\(--app-border\)\)\] {
1653
+ border-color: var(--brand);
1654
+ @supports (color: color-mix(in lab, red, red)) {
1655
+ border-color: color-mix(in srgb,var(--brand) 28%,var(--app-border));
1656
+ }
1657
+ }
1658
+ .border-\[color-mix\(in_srgb\,var\(--brand\)_40\%\,transparent\)\] {
1659
+ border-color: var(--brand);
1660
+ @supports (color: color-mix(in lab, red, red)) {
1661
+ border-color: color-mix(in srgb,var(--brand) 40%,transparent);
1662
+ }
1663
+ }
1596
1664
  .border-\[color-mix\(in_srgb\,var\(--brand\)_64\%\,\#fff\)\] {
1597
1665
  border-color: var(--brand);
1598
1666
  @supports (color: color-mix(in lab, red, red)) {
1599
1667
  border-color: color-mix(in srgb,var(--brand) 64%,#fff);
1600
1668
  }
1601
1669
  }
1670
+ .border-\[color-mix\(in_srgb\,var\(--foreground-muted\)_24\%\,transparent\)\] {
1671
+ border-color: var(--foreground-muted);
1672
+ @supports (color: color-mix(in lab, red, red)) {
1673
+ border-color: color-mix(in srgb,var(--foreground-muted) 24%,transparent);
1674
+ }
1675
+ }
1676
+ .border-\[color-mix\(in_srgb\,var\(--foreground-muted\)_42\%\,var\(--app-border\)\)\] {
1677
+ border-color: var(--foreground-muted);
1678
+ @supports (color: color-mix(in lab, red, red)) {
1679
+ border-color: color-mix(in srgb,var(--foreground-muted) 42%,var(--app-border));
1680
+ }
1681
+ }
1602
1682
  .border-\[var\(--status-danger-border\,\#fca5a5\)\] {
1603
1683
  border-color: var(--status-danger-border,#fca5a5);
1604
1684
  }
@@ -1635,10 +1715,16 @@ h2.react-datepicker__current-month {
1635
1715
  .\!bg-transparent {
1636
1716
  background-color: transparent !important;
1637
1717
  }
1638
- .bg-\[color-mix\(in_srgb\,var\(--app-border\)_60\%\,transparent\)\] {
1639
- background-color: var(--app-border);
1718
+ .bg-\[color-mix\(in_srgb\,var\(--brand\)_10\%\,var\(--surface\)\)\] {
1719
+ background-color: var(--brand);
1720
+ @supports (color: color-mix(in lab, red, red)) {
1721
+ background-color: color-mix(in srgb,var(--brand) 10%,var(--surface));
1722
+ }
1723
+ }
1724
+ .bg-\[color-mix\(in_srgb\,var\(--brand\)_14\%\,var\(--surface\)\)\] {
1725
+ background-color: var(--brand);
1640
1726
  @supports (color: color-mix(in lab, red, red)) {
1641
- background-color: color-mix(in srgb,var(--app-border) 60%,transparent);
1727
+ background-color: color-mix(in srgb,var(--brand) 14%,var(--surface));
1642
1728
  }
1643
1729
  }
1644
1730
  .bg-\[color-mix\(in_srgb\,var\(--destructive\)_12\%\,var\(--surface\)\)\] {
@@ -1647,18 +1733,42 @@ h2.react-datepicker__current-month {
1647
1733
  background-color: color-mix(in srgb,var(--destructive) 12%,var(--surface));
1648
1734
  }
1649
1735
  }
1736
+ .bg-\[color-mix\(in_srgb\,var\(--foreground-muted\)_8\%\,var\(--surface\)\)\] {
1737
+ background-color: var(--foreground-muted);
1738
+ @supports (color: color-mix(in lab, red, red)) {
1739
+ background-color: color-mix(in srgb,var(--foreground-muted) 8%,var(--surface));
1740
+ }
1741
+ }
1742
+ .bg-\[color-mix\(in_srgb\,var\(--foreground-muted\)_14\%\,var\(--surface\)\)\] {
1743
+ background-color: var(--foreground-muted);
1744
+ @supports (color: color-mix(in lab, red, red)) {
1745
+ background-color: color-mix(in srgb,var(--foreground-muted) 14%,var(--surface));
1746
+ }
1747
+ }
1650
1748
  .bg-\[rgb\(var\(--color-brand\)\/0\.08\)\] {
1651
1749
  background-color: rgb(var(--color-brand)/0.08);
1652
1750
  }
1751
+ .bg-\[var\(--brand\)\] {
1752
+ background-color: var(--brand);
1753
+ }
1754
+ .bg-\[var\(--destructive\)\] {
1755
+ background-color: var(--destructive);
1756
+ }
1653
1757
  .bg-\[var\(--status-danger-bg\,rgba\(254\,202\,202\,0\.8\)\)\] {
1654
1758
  background-color: var(--status-danger-bg,rgba(254,202,202,0.8));
1655
1759
  }
1760
+ .bg-\[var\(--status-danger-text\,\#b91c1c\)\] {
1761
+ background-color: var(--status-danger-text,#b91c1c);
1762
+ }
1656
1763
  .bg-\[var\(--status-info-bg\,rgba\(219\,234\,254\,0\.8\)\)\] {
1657
1764
  background-color: var(--status-info-bg,rgba(219,234,254,0.8));
1658
1765
  }
1659
1766
  .bg-\[var\(--status-success-bg\,rgba\(220\,252\,231\,0\.8\)\)\] {
1660
1767
  background-color: var(--status-success-bg,rgba(220,252,231,0.8));
1661
1768
  }
1769
+ .bg-\[var\(--status-success-text\,\#15803d\)\] {
1770
+ background-color: var(--status-success-text,#15803d);
1771
+ }
1662
1772
  .bg-\[var\(--status-warning-bg\,rgba\(254\,243\,199\,0\.8\)\)\] {
1663
1773
  background-color: var(--status-warning-bg,rgba(254,243,199,0.8));
1664
1774
  }
@@ -1680,15 +1790,9 @@ h2.react-datepicker__current-month {
1680
1790
  .bg-gray-300 {
1681
1791
  background-color: var(--color-gray-300);
1682
1792
  }
1683
- .bg-green-600 {
1684
- background-color: var(--color-green-600);
1685
- }
1686
1793
  .bg-red-50 {
1687
1794
  background-color: var(--color-red-50);
1688
1795
  }
1689
- .bg-red-700 {
1690
- background-color: var(--color-red-700);
1691
- }
1692
1796
  .bg-slate-900\/18 {
1693
1797
  background-color: color-mix(in srgb, oklch(20.8% 0.042 265.755) 18%, transparent);
1694
1798
  @supports (color: color-mix(in lab, red, red)) {
@@ -1762,6 +1866,9 @@ h2.react-datepicker__current-month {
1762
1866
  .px-3 {
1763
1867
  padding-inline: calc(var(--spacing) * 3);
1764
1868
  }
1869
+ .px-3\.5 {
1870
+ padding-inline: calc(var(--spacing) * 3.5);
1871
+ }
1765
1872
  .px-4 {
1766
1873
  padding-inline: calc(var(--spacing) * 4);
1767
1874
  }
@@ -1834,6 +1941,12 @@ h2.react-datepicker__current-month {
1834
1941
  .pb-4 {
1835
1942
  padding-bottom: calc(var(--spacing) * 4);
1836
1943
  }
1944
+ .pl-8 {
1945
+ padding-left: calc(var(--spacing) * 8);
1946
+ }
1947
+ .pl-10 {
1948
+ padding-left: calc(var(--spacing) * 10);
1949
+ }
1837
1950
  .pl-12 {
1838
1951
  padding-left: calc(var(--spacing) * 12);
1839
1952
  }
@@ -1861,6 +1974,9 @@ h2.react-datepicker__current-month {
1861
1974
  .align-middle {
1862
1975
  vertical-align: middle;
1863
1976
  }
1977
+ .font-mono {
1978
+ font-family: var(--font-mono);
1979
+ }
1864
1980
  .text-2xl {
1865
1981
  font-size: var(--text-2xl);
1866
1982
  line-height: var(--tw-leading, var(--text-2xl--line-height));
@@ -1990,6 +2106,12 @@ h2.react-datepicker__current-month {
1990
2106
  .whitespace-nowrap {
1991
2107
  white-space: nowrap;
1992
2108
  }
2109
+ .text-\[var\(--brand\)\] {
2110
+ color: var(--brand);
2111
+ }
2112
+ .text-\[var\(--primary-foreground\,\#ffffff\)\] {
2113
+ color: var(--primary-foreground,#ffffff);
2114
+ }
1993
2115
  .text-\[var\(--status-danger-text\,\#b91c1c\)\] {
1994
2116
  color: var(--status-danger-text,#b91c1c);
1995
2117
  }
@@ -2085,6 +2207,13 @@ h2.react-datepicker__current-month {
2085
2207
  }
2086
2208
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2087
2209
  }
2210
+ .shadow-\[0_0_0_3px_color-mix\(in_srgb\,var\(--brand\)_24\%\,transparent\)\] {
2211
+ --tw-shadow: 0 0 0 3px var(--tw-shadow-color, var(--brand));
2212
+ @supports (color: color-mix(in lab, red, red)) {
2213
+ --tw-shadow: 0 0 0 3px var(--tw-shadow-color, color-mix(in srgb,var(--brand) 24%,transparent));
2214
+ }
2215
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2216
+ }
2088
2217
  .shadow-\[0_2px_8px_-2px_color-mix\(in_srgb\,\#000_6\%\,transparent\)\] {
2089
2218
  --tw-shadow: 0 2px 8px -2px var(--tw-shadow-color, color-mix(in srgb,#000 6%,transparent));
2090
2219
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
@@ -2097,6 +2226,13 @@ h2.react-datepicker__current-month {
2097
2226
  --tw-shadow: 0 8px 24px -4px var(--tw-shadow-color, rgba(0,0,0,0.16)), 0 2px 8px -2px var(--tw-shadow-color, rgba(0,0,0,0.08));
2098
2227
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2099
2228
  }
2229
+ .shadow-\[0_10px_22px_-16px_color-mix\(in_srgb\,var\(--brand\)_70\%\,\#000\)\] {
2230
+ --tw-shadow: 0 10px 22px -16px var(--tw-shadow-color, var(--brand));
2231
+ @supports (color: color-mix(in lab, red, red)) {
2232
+ --tw-shadow: 0 10px 22px -16px var(--tw-shadow-color, color-mix(in srgb,var(--brand) 70%,#000));
2233
+ }
2234
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2235
+ }
2100
2236
  .shadow-\[0_12px_32px_rgba\(15\,23\,42\,0\.06\)\] {
2101
2237
  --tw-shadow: 0 12px 32px var(--tw-shadow-color, rgba(15,23,42,0.06));
2102
2238
  box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
@@ -2165,6 +2301,11 @@ h2.react-datepicker__current-month {
2165
2301
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
2166
2302
  transition-duration: var(--tw-duration, var(--default-transition-duration));
2167
2303
  }
2304
+ .transition-\[background-color\,border-color\,box-shadow\,color\] {
2305
+ transition-property: background-color,border-color,box-shadow,color;
2306
+ transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
2307
+ transition-duration: var(--tw-duration, var(--default-transition-duration));
2308
+ }
2168
2309
  .transition-\[background-color\,border-color\,color\,box-shadow\,transform\,opacity\] {
2169
2310
  transition-property: background-color,border-color,color,box-shadow,transform,opacity;
2170
2311
  transition-timing-function: var(--tw-ease, var(--default-transition-timing-function));
@@ -2294,6 +2435,16 @@ h2.react-datepicker__current-month {
2294
2435
  }
2295
2436
  }
2296
2437
  }
2438
+ .hover\:border-\[color-mix\(in_srgb\,var\(--brand\)_46\%\,var\(--app-border\)\)\] {
2439
+ &:hover {
2440
+ @media (hover: hover) {
2441
+ border-color: var(--brand);
2442
+ @supports (color: color-mix(in lab, red, red)) {
2443
+ border-color: color-mix(in srgb,var(--brand) 46%,var(--app-border));
2444
+ }
2445
+ }
2446
+ }
2447
+ }
2297
2448
  .hover\:border-\[color-mix\(in_srgb\,var\(--brand\)_52\%\,transparent\)\] {
2298
2449
  &:hover {
2299
2450
  @media (hover: hover) {
@@ -2304,6 +2455,16 @@ h2.react-datepicker__current-month {
2304
2455
  }
2305
2456
  }
2306
2457
  }
2458
+ .hover\:border-\[color-mix\(in_srgb\,var\(--foreground-muted\)_42\%\,var\(--app-border\)\)\] {
2459
+ &:hover {
2460
+ @media (hover: hover) {
2461
+ border-color: var(--foreground-muted);
2462
+ @supports (color: color-mix(in lab, red, red)) {
2463
+ border-color: color-mix(in srgb,var(--foreground-muted) 42%,var(--app-border));
2464
+ }
2465
+ }
2466
+ }
2467
+ }
2307
2468
  .hover\:border-transparent {
2308
2469
  &:hover {
2309
2470
  @media (hover: hover) {
@@ -2335,6 +2496,16 @@ h2.react-datepicker__current-month {
2335
2496
  }
2336
2497
  }
2337
2498
  }
2499
+ .hover\:bg-\[color-mix\(in_srgb\,var\(--brand\)_8\%\,transparent\)\] {
2500
+ &:hover {
2501
+ @media (hover: hover) {
2502
+ background-color: var(--brand);
2503
+ @supports (color: color-mix(in lab, red, red)) {
2504
+ background-color: color-mix(in srgb,var(--brand) 8%,transparent);
2505
+ }
2506
+ }
2507
+ }
2508
+ }
2338
2509
  .hover\:bg-\[color-mix\(in_srgb\,var\(--brand\)_10\%\,transparent\)\] {
2339
2510
  &:hover {
2340
2511
  @media (hover: hover) {
@@ -2355,6 +2526,16 @@ h2.react-datepicker__current-month {
2355
2526
  }
2356
2527
  }
2357
2528
  }
2529
+ .hover\:bg-\[color-mix\(in_srgb\,var\(--brand\)_16\%\,var\(--surface\)\)\] {
2530
+ &:hover {
2531
+ @media (hover: hover) {
2532
+ background-color: var(--brand);
2533
+ @supports (color: color-mix(in lab, red, red)) {
2534
+ background-color: color-mix(in srgb,var(--brand) 16%,var(--surface));
2535
+ }
2536
+ }
2537
+ }
2538
+ }
2358
2539
  .hover\:bg-\[color-mix\(in_srgb\,var\(--destructive\)_12\%\,transparent\)\] {
2359
2540
  &:hover {
2360
2541
  @media (hover: hover) {
@@ -2365,38 +2546,74 @@ h2.react-datepicker__current-month {
2365
2546
  }
2366
2547
  }
2367
2548
  }
2368
- .hover\:bg-\[rgb\(var\(--color-brand\)\/0\.11\)\] {
2549
+ .hover\:bg-\[color-mix\(in_srgb\,var\(--destructive\)_88\%\,\#000\)\] {
2369
2550
  &:hover {
2370
2551
  @media (hover: hover) {
2371
- background-color: rgb(var(--color-brand)/0.11);
2552
+ background-color: var(--destructive);
2553
+ @supports (color: color-mix(in lab, red, red)) {
2554
+ background-color: color-mix(in srgb,var(--destructive) 88%,#000);
2555
+ }
2372
2556
  }
2373
2557
  }
2374
2558
  }
2375
- .hover\:bg-\[rgb\(var\(--color-brand\)\/0\.12\)\] {
2559
+ .hover\:bg-\[color-mix\(in_srgb\,var\(--foreground-muted\)_10\%\,transparent\)\] {
2376
2560
  &:hover {
2377
2561
  @media (hover: hover) {
2378
- background-color: rgb(var(--color-brand)/0.12);
2562
+ background-color: var(--foreground-muted);
2563
+ @supports (color: color-mix(in lab, red, red)) {
2564
+ background-color: color-mix(in srgb,var(--foreground-muted) 10%,transparent);
2565
+ }
2566
+ }
2567
+ }
2568
+ }
2569
+ .hover\:bg-\[color-mix\(in_srgb\,var\(--foreground-muted\)_10\%\,var\(--surface\)\)\] {
2570
+ &:hover {
2571
+ @media (hover: hover) {
2572
+ background-color: var(--foreground-muted);
2573
+ @supports (color: color-mix(in lab, red, red)) {
2574
+ background-color: color-mix(in srgb,var(--foreground-muted) 10%,var(--surface));
2575
+ }
2379
2576
  }
2380
2577
  }
2381
2578
  }
2382
- .hover\:bg-green-700 {
2579
+ .hover\:bg-\[color-mix\(in_srgb\,var\(--status-danger-text\,\#b91c1c\)_88\%\,\#000\)\] {
2383
2580
  &:hover {
2384
2581
  @media (hover: hover) {
2385
- background-color: var(--color-green-700);
2582
+ background-color: var(--status-danger-text,#b91c1c);
2583
+ @supports (color: color-mix(in lab, red, red)) {
2584
+ background-color: color-mix(in srgb,var(--status-danger-text,#b91c1c) 88%,#000);
2585
+ }
2386
2586
  }
2387
2587
  }
2388
2588
  }
2389
- .hover\:bg-red-600 {
2589
+ .hover\:bg-\[color-mix\(in_srgb\,var\(--status-success-text\,\#15803d\)_88\%\,\#000\)\] {
2390
2590
  &:hover {
2391
2591
  @media (hover: hover) {
2392
- background-color: var(--color-red-600);
2592
+ background-color: var(--status-success-text,#15803d);
2593
+ @supports (color: color-mix(in lab, red, red)) {
2594
+ background-color: color-mix(in srgb,var(--status-success-text,#15803d) 88%,#000);
2595
+ }
2393
2596
  }
2394
2597
  }
2395
2598
  }
2396
- .hover\:bg-red-800 {
2599
+ .hover\:bg-\[rgb\(var\(--color-brand\)\/0\.11\)\] {
2397
2600
  &:hover {
2398
2601
  @media (hover: hover) {
2399
- background-color: var(--color-red-800);
2602
+ background-color: rgb(var(--color-brand)/0.11);
2603
+ }
2604
+ }
2605
+ }
2606
+ .hover\:bg-\[rgb\(var\(--color-brand\)\/0\.12\)\] {
2607
+ &:hover {
2608
+ @media (hover: hover) {
2609
+ background-color: rgb(var(--color-brand)/0.12);
2610
+ }
2611
+ }
2612
+ }
2613
+ .hover\:bg-\[var\(--brand-hover\,var\(--brand\)\)\] {
2614
+ &:hover {
2615
+ @media (hover: hover) {
2616
+ background-color: var(--brand-hover,var(--brand));
2400
2617
  }
2401
2618
  }
2402
2619
  }
@@ -2418,6 +2635,13 @@ h2.react-datepicker__current-month {
2418
2635
  }
2419
2636
  }
2420
2637
  }
2638
+ .hover\:text-\[var\(--brand\)\] {
2639
+ &:hover {
2640
+ @media (hover: hover) {
2641
+ color: var(--brand);
2642
+ }
2643
+ }
2644
+ }
2421
2645
  .hover\:text-amber-700 {
2422
2646
  &:hover {
2423
2647
  @media (hover: hover) {
@@ -2463,12 +2687,6 @@ h2.react-datepicker__current-month {
2463
2687
  border-color: var(--color-red-500);
2464
2688
  }
2465
2689
  }
2466
- .focus\:ring-1 {
2467
- &:focus {
2468
- --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
2469
- box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
2470
- }
2471
- }
2472
2690
  .focus\:ring-2 {
2473
2691
  &:focus {
2474
2692
  --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
@@ -2534,6 +2752,42 @@ h2.react-datepicker__current-month {
2534
2752
  translate: var(--tw-translate-x) var(--tw-translate-y);
2535
2753
  }
2536
2754
  }
2755
+ .enabled\:hover\:border-\[color-mix\(in_srgb\,var\(--foreground-muted\)_24\%\,transparent\)\] {
2756
+ &:enabled {
2757
+ &:hover {
2758
+ @media (hover: hover) {
2759
+ border-color: var(--foreground-muted);
2760
+ @supports (color: color-mix(in lab, red, red)) {
2761
+ border-color: color-mix(in srgb,var(--foreground-muted) 24%,transparent);
2762
+ }
2763
+ }
2764
+ }
2765
+ }
2766
+ }
2767
+ .enabled\:hover\:bg-\[color-mix\(in_srgb\,var\(--foreground-muted\)_8\%\,transparent\)\] {
2768
+ &:enabled {
2769
+ &:hover {
2770
+ @media (hover: hover) {
2771
+ background-color: var(--foreground-muted);
2772
+ @supports (color: color-mix(in lab, red, red)) {
2773
+ background-color: color-mix(in srgb,var(--foreground-muted) 8%,transparent);
2774
+ }
2775
+ }
2776
+ }
2777
+ }
2778
+ }
2779
+ .enabled\:hover\:bg-\[color-mix\(in_srgb\,var\(--input-bg\)_75\%\,var\(--surface\)\)\] {
2780
+ &:enabled {
2781
+ &:hover {
2782
+ @media (hover: hover) {
2783
+ background-color: var(--input-bg);
2784
+ @supports (color: color-mix(in lab, red, red)) {
2785
+ background-color: color-mix(in srgb,var(--input-bg) 75%,var(--surface));
2786
+ }
2787
+ }
2788
+ }
2789
+ }
2790
+ }
2537
2791
  .disabled\:pointer-events-none {
2538
2792
  &:disabled {
2539
2793
  pointer-events: none;
@@ -2550,6 +2804,16 @@ h2.react-datepicker__current-month {
2550
2804
  cursor: not-allowed;
2551
2805
  }
2552
2806
  }
2807
+ .disabled\:border-transparent {
2808
+ &:disabled {
2809
+ border-color: transparent;
2810
+ }
2811
+ }
2812
+ .disabled\:bg-transparent {
2813
+ &:disabled {
2814
+ background-color: transparent;
2815
+ }
2816
+ }
2553
2817
  .disabled\:opacity-30 {
2554
2818
  &:disabled {
2555
2819
  opacity: 30%;
@@ -2676,6 +2940,21 @@ h2.react-datepicker__current-month {
2676
2940
  display: inline;
2677
2941
  }
2678
2942
  }
2943
+ .min-\[901px\]\:min-w-\[5\.75rem\] {
2944
+ @media (width >= 901px) {
2945
+ min-width: 5.75rem;
2946
+ }
2947
+ }
2948
+ .min-\[901px\]\:min-w-\[6\.25rem\] {
2949
+ @media (width >= 901px) {
2950
+ min-width: 6.25rem;
2951
+ }
2952
+ }
2953
+ .min-\[901px\]\:min-w-\[6\.75rem\] {
2954
+ @media (width >= 901px) {
2955
+ min-width: 6.75rem;
2956
+ }
2957
+ }
2679
2958
  .sm\:flex-row {
2680
2959
  @media (width >= 40rem) {
2681
2960
  flex-direction: row;
@@ -2711,14 +2990,24 @@ h2.react-datepicker__current-month {
2711
2990
  width: calc(var(--spacing) * 20);
2712
2991
  }
2713
2992
  }
2714
- .md\:w-auto {
2993
+ .md\:min-w-\[6\.75rem\] {
2715
2994
  @media (width >= 48rem) {
2716
- width: auto;
2995
+ min-width: 6.75rem;
2717
2996
  }
2718
2997
  }
2719
- .md\:min-w-\[6\.75rem\] {
2998
+ .md\:min-w-\[7\.5rem\] {
2720
2999
  @media (width >= 48rem) {
2721
- min-width: 6.75rem;
3000
+ min-width: 7.5rem;
3001
+ }
3002
+ }
3003
+ .md\:min-w-\[7\.25rem\] {
3004
+ @media (width >= 48rem) {
3005
+ min-width: 7.25rem;
3006
+ }
3007
+ }
3008
+ .md\:min-w-\[7\.75rem\] {
3009
+ @media (width >= 48rem) {
3010
+ min-width: 7.75rem;
2722
3011
  }
2723
3012
  }
2724
3013
  .md\:min-w-\[7rem\] {
@@ -2726,6 +3015,11 @@ h2.react-datepicker__current-month {
2726
3015
  min-width: 7rem;
2727
3016
  }
2728
3017
  }
3018
+ .md\:min-w-\[8rem\] {
3019
+ @media (width >= 48rem) {
3020
+ min-width: 8rem;
3021
+ }
3022
+ }
2729
3023
  .md\:min-w-\[9rem\] {
2730
3024
  @media (width >= 48rem) {
2731
3025
  min-width: 9rem;
@@ -2752,9 +3046,9 @@ h2.react-datepicker__current-month {
2752
3046
  gap: calc(var(--spacing) * 3);
2753
3047
  }
2754
3048
  }
2755
- .md\:px-2 {
3049
+ .md\:gap-4 {
2756
3050
  @media (width >= 48rem) {
2757
- padding-inline: calc(var(--spacing) * 2);
3051
+ gap: calc(var(--spacing) * 4);
2758
3052
  }
2759
3053
  }
2760
3054
  .md\:text-\[0\.8125rem\] {
@@ -3074,6 +3368,12 @@ h2.react-datepicker__current-month {
3074
3368
  height: calc(var(--spacing) * 5);
3075
3369
  }
3076
3370
  }
3371
+ .\[\&_svg\]\:size-\[1\.125rem\] {
3372
+ & svg {
3373
+ width: 1.125rem;
3374
+ height: 1.125rem;
3375
+ }
3376
+ }
3077
3377
  .\[\&_td\]\:py-2 {
3078
3378
  & td {
3079
3379
  padding-block: calc(var(--spacing) * 2);
@@ -3130,12 +3430,30 @@ h2.react-datepicker__current-month {
3130
3430
  padding: calc(var(--spacing) * 0);
3131
3431
  }
3132
3432
  }
3433
+ .\[\&\>svg\]\:size-3\.5 {
3434
+ &>svg {
3435
+ width: calc(var(--spacing) * 3.5);
3436
+ height: calc(var(--spacing) * 3.5);
3437
+ }
3438
+ }
3133
3439
  .\[\&\>svg\]\:size-4 {
3134
3440
  &>svg {
3135
3441
  width: calc(var(--spacing) * 4);
3136
3442
  height: calc(var(--spacing) * 4);
3137
3443
  }
3138
3444
  }
3445
+ .\[\&\>svg\]\:size-5 {
3446
+ &>svg {
3447
+ width: calc(var(--spacing) * 5);
3448
+ height: calc(var(--spacing) * 5);
3449
+ }
3450
+ }
3451
+ .\[\&\>svg\]\:size-\[1\.125rem\] {
3452
+ &>svg {
3453
+ width: 1.125rem;
3454
+ height: 1.125rem;
3455
+ }
3456
+ }
3139
3457
  .\[\&\>svg\]\:size-full {
3140
3458
  &>svg {
3141
3459
  width: 100%;
@@ -3428,6 +3746,11 @@ h2.react-datepicker__current-month {
3428
3746
  inherits: false;
3429
3747
  initial-value: 0;
3430
3748
  }
3749
+ @property --tw-divide-y-reverse {
3750
+ syntax: "*";
3751
+ inherits: false;
3752
+ initial-value: 0;
3753
+ }
3431
3754
  @property --tw-border-style {
3432
3755
  syntax: "*";
3433
3756
  inherits: false;
@@ -3631,6 +3954,7 @@ h2.react-datepicker__current-month {
3631
3954
  --tw-skew-x: initial;
3632
3955
  --tw-skew-y: initial;
3633
3956
  --tw-space-y-reverse: 0;
3957
+ --tw-divide-y-reverse: 0;
3634
3958
  --tw-border-style: solid;
3635
3959
  --tw-leading: initial;
3636
3960
  --tw-font-weight: initial;
@@ -3676,4 +4000,4 @@ h2.react-datepicker__current-month {
3676
4000
  --tw-ease: initial;
3677
4001
  }
3678
4002
  }
3679
- }
4003
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wellingtonhlc/shared-ui",
3
- "version": "0.1.5",
3
+ "version": "0.1.15",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",