beez-ui 0.5.0 → 0.5.2

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/CHANGELOG.md CHANGED
@@ -1,9 +1,17 @@
1
1
  # Cambios
2
2
 
3
- ## 0.5.0 - 2026-09-08
3
+ ## 0.5.2 - 2026-09-09
4
4
 
5
- - Actualiza el paquete a la versión 0.5.0.
5
+ - Actualiza el paquete a la versión 0.5.2.
6
6
 
7
+ ## 0.5.1 - 2026-09-08
8
+
9
+ - Actualiza el paquete a la versión 0.5.1.
10
+
11
+ ## 0.5.0 - 2026-09-08
12
+
13
+ - Actualiza el paquete a la versión 0.5.0.
14
+
7
15
  ## 0.4.2 - 2026-09-08
8
16
 
9
17
  - Actualiza el paquete a la versión 0.4.2.
package/README.md CHANGED
@@ -16,7 +16,13 @@ Agrupar los imports de componentes desde la raíz. El paquete publica JavaScript
16
16
 
17
17
  `beez-ui/styles.css` es CSS listo para el navegador: incluye reset, utilidades, tema claro/oscuro, radios y fuentes locales Geist, Poppins e IBM Plex Mono. No requiere Tailwind, plugins PostCSS ni declaraciones `@source` en el consumidor. Las clases se compilan en el build de la biblioteca y se publican en `dist/styles.css`; `styles.source.css` es la entrada de desarrollo y no se distribuye.
18
18
 
19
- Los consumidores pueden sobrescribir tokens mediante CSS normal. Poppins se reserva para títulos grandes mediante `--font-display`; las licencias se incluyen en `assets/fonts`. Si la aplicación usa Tailwind para sus propios estilos puede mantenerlo, pero ya no necesita escanear beez-ui.
19
+ Los consumidores pueden sobrescribir tokens mediante CSS normal. Poppins se reserva para títulos grandes mediante `--font-display`; las licencias se incluyen en `assets/fonts`. Si la aplicación usa Tailwind para sus propios estilos puede mantenerlo, pero ya no necesita escanear beez-ui.
20
+
21
+ `DropdownMenuContent` toma el ancho natural de sus opciones, con un mínimo de 12 rem y un máximo limitado por el espacio disponible. No hereda el ancho del botón disparador: los menús abiertos desde un icono deben mantener sus etiquetas legibles. Para un ancho específico, usar `className` y ajustar también el mínimo cuando se necesite un menú más pequeño.
22
+
23
+ Los componentes usan por defecto los espaciados compactos de Agenda: `Select` mide 2 rem (1.75 rem en tamaño pequeño), `TabsList` horizontal mide 2 rem y `PopoverContent` usa 0.625 rem de padding. Los menús y submenús tienen un mínimo de 12 rem, con filas compactas. `Dialog` y `AlertDialog` usan 1 rem de padding y un footer con borde superior y fondo diferenciado; `Textarea` distingue el estado deshabilitado mediante su fondo. Estos valores conservan los colores y fuentes del tema compartido. Son cambios de los defaults, sin una prop adicional para activarlos; los consumidores pueden personalizarlos mediante `className`.
24
+
25
+ Los `Sheet` superiores e inferiores limitan su altura al viewport dinámico (`100dvh`) y permiten desplazar el contenido para mantener accesibles las acciones de paneles largos.
20
26
 
21
27
  ## Providers de UI
22
28
 
@@ -122,11 +128,12 @@ El comando ejecuta el flujo completo:
122
128
  1. Actualiza `package.json` y agrega la entrada del changelog con fecha UTC, conservando el historial.
123
129
  2. Prepara la release: instalación congelada, tests sin React Compiler, build optimizado de JavaScript, tipos y CSS, lint, typechecks, tests unitarios y pruebas de navegador.
124
130
  3. Genera el tarball en `releases/<version>-<sha256>/beez-ui-<version>.tgz` y valida su contenido, exports e integridad.
125
- 4. Publica ese mismo artefacto en npm con acceso público y etiqueta `latest`.
131
+ 4. Crea un commit con el contenido validado de `package.json` y `CHANGELOG.md`, conservando otros archivos staged, y pushea ese commit a la rama upstream configurada.
132
+ 5. Publica ese mismo artefacto en npm con acceso público y etiqueta `latest`.
126
133
 
127
134
  La publicación usa el cliente oficial de npm para admitir su flujo interactivo de verificación en el navegador/2FA. Instalación, build y checks siguen usando pnpm 12. Ejecutar desde una terminal interactiva cuando la cuenta requiera autenticación adicional. El token se carga sólo al publicar, no se imprime y se referencia mediante `${NPM_TOKEN}` en `.npmrc`.
128
135
 
129
- El comando no crea commits ni tags ni modifica ramas Git. Si falla una validación, no publica. Los metadatos de la nueva versión quedan disponibles: corregir el error, ejecutar `pnpm release:prepare` y publicar el artefacto resultante. Si falla la publicación, comprobar primero si npm recibió la versión y reintentar sólo la publicación del mismo tarball. No ejecutar nuevamente `create-version` para reintentar la misma release.
136
+ El comando requiere una rama Git con upstream configurado. El commit se limita a los dos archivos de metadatos, incluidos sus cambios previos; revisar el código antes de ejecutar la release. No crea tags ni hace force push. Si cambian el checkout, el upstream o los metadatos durante las validaciones, se detiene. También comprueba que los hooks de Git no hayan agregado archivos ni alterado los metadatos validados antes de pushear. Si falla una validación, el commit o el push, no publica. Los metadatos de la nueva versión quedan disponibles: corregir el error, ejecutar `pnpm release:prepare`, commitear y pushear los metadatos y publicar el artefacto resultante. Si falla el push después del commit, resolver el problema y pushear ese commit antes de publicar el tarball preparado. Si falla la publicación, comprobar primero si npm recibió la versión y reintentar sólo la publicación del mismo tarball. No ejecutar nuevamente `create-version` para reintentar la misma release.
130
137
 
131
138
  Los pasos individuales siguen disponibles:
132
139
 
@@ -5,12 +5,37 @@ declare function AlertDialog({ ...props }: React.ComponentProps<typeof AlertDial
5
5
  declare function AlertDialogTrigger({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Trigger>): React.JSX.Element;
6
6
  declare function AlertDialogPortal({ ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Portal>): React.JSX.Element;
7
7
  declare function AlertDialogOverlay({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Overlay>): React.JSX.Element;
8
+ /**
9
+ * Renders a compact confirmation while preserving the shared theme and viewport bound.
10
+ * @param props - Primitive properties and optional consumer overrides.
11
+ * @returns The styled primitive with its original interaction contract.
12
+ */
8
13
  declare function AlertDialogContent({ className, size, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Content> & {
9
14
  size?: "default" | "sm";
10
15
  }): React.JSX.Element;
16
+ /**
17
+ * Aligns confirmation headings and media with compact spacing.
18
+ * @param props - Primitive properties and optional consumer overrides.
19
+ * @returns The styled primitive with its original interaction contract.
20
+ */
11
21
  declare function AlertDialogHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
22
+ /**
23
+ * Separates confirmation actions with an edge-to-edge muted footer.
24
+ * @param props - Primitive properties and optional consumer overrides.
25
+ * @returns The styled primitive with its original interaction contract.
26
+ */
12
27
  declare function AlertDialogFooter({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
28
+ /**
29
+ * Renders confirmation media at the compact default size.
30
+ * @param props - Primitive properties and optional consumer overrides.
31
+ * @returns The styled primitive with its original interaction contract.
32
+ */
13
33
  declare function AlertDialogMedia({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
34
+ /**
35
+ * Renders confirmation headings using the shared font and compact text size.
36
+ * @param props - Primitive properties and optional consumer overrides.
37
+ * @returns The styled primitive with its original interaction contract.
38
+ */
14
39
  declare function AlertDialogTitle({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Title>): React.JSX.Element;
15
40
  declare function AlertDialogDescription({ className, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Description>): React.JSX.Element;
16
41
  declare function AlertDialogAction({ className, variant, size, ...props }: React.ComponentProps<typeof AlertDialogPrimitive.Action> & Pick<React.ComponentProps<typeof Button>, "variant" | "size">): React.JSX.Element;
@@ -110,6 +110,11 @@ function AlertDialogOverlay(t0) {
110
110
  }
111
111
  return t2;
112
112
  }
113
+ /**
114
+ * Renders a compact confirmation while preserving the shared theme and viewport bound.
115
+ * @param props - Primitive properties and optional consumer overrides.
116
+ * @returns The styled primitive with its original interaction contract.
117
+ */
113
118
  function AlertDialogContent(t0) {
114
119
  const $ = _c(11);
115
120
  let className;
@@ -136,7 +141,7 @@ function AlertDialogContent(t0) {
136
141
  }
137
142
  let t3;
138
143
  if ($[5] !== className) {
139
- t3 = cn("group/alert-dialog-content fixed top-1/2 left-1/2 z-50 grid max-h-[calc(100svh-2rem)] overflow-y-auto overscroll-contain w-full -translate-x-1/2 -translate-y-1/2 gap-6 rounded-xl bg-popover p-6 text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-lg data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className);
144
+ t3 = cn("group/alert-dialog-content fixed top-1/2 left-1/2 z-50 grid max-h-[calc(100svh-2rem)] overflow-y-auto overscroll-contain w-full -translate-x-1/2 -translate-y-1/2 gap-4 rounded-xl bg-popover p-4 text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none data-[size=default]:max-w-xs data-[size=sm]:max-w-xs data-[size=default]:sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className);
140
145
  $[5] = className;
141
146
  $[6] = t3;
142
147
  } else {
@@ -159,6 +164,11 @@ function AlertDialogContent(t0) {
159
164
  }
160
165
  return t4;
161
166
  }
167
+ /**
168
+ * Aligns confirmation headings and media with compact spacing.
169
+ * @param props - Primitive properties and optional consumer overrides.
170
+ * @returns The styled primitive with its original interaction contract.
171
+ */
162
172
  function AlertDialogHeader(t0) {
163
173
  const $ = _c(8);
164
174
  let className;
@@ -174,7 +184,7 @@ function AlertDialogHeader(t0) {
174
184
  }
175
185
  let t1;
176
186
  if ($[3] !== className) {
177
- t1 = cn("grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-6 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]", className);
187
+ t1 = cn("grid grid-rows-[auto_1fr] place-items-center gap-1.5 text-center has-data-[slot=alert-dialog-media]:grid-rows-[auto_auto_1fr] has-data-[slot=alert-dialog-media]:gap-x-4 sm:group-data-[size=default]/alert-dialog-content:place-items-start sm:group-data-[size=default]/alert-dialog-content:text-left sm:group-data-[size=default]/alert-dialog-content:has-data-[slot=alert-dialog-media]:grid-rows-[auto_1fr]", className);
178
188
  $[3] = className;
179
189
  $[4] = t1;
180
190
  } else {
@@ -195,6 +205,11 @@ function AlertDialogHeader(t0) {
195
205
  }
196
206
  return t2;
197
207
  }
208
+ /**
209
+ * Separates confirmation actions with an edge-to-edge muted footer.
210
+ * @param props - Primitive properties and optional consumer overrides.
211
+ * @returns The styled primitive with its original interaction contract.
212
+ */
198
213
  function AlertDialogFooter(t0) {
199
214
  const $ = _c(8);
200
215
  let className;
@@ -210,7 +225,7 @@ function AlertDialogFooter(t0) {
210
225
  }
211
226
  let t1;
212
227
  if ($[3] !== className) {
213
- t1 = cn("flex flex-col-reverse gap-2 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end", className);
228
+ t1 = cn("-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t bg-muted/50 p-4 group-data-[size=sm]/alert-dialog-content:grid group-data-[size=sm]/alert-dialog-content:grid-cols-2 sm:flex-row sm:justify-end", className);
214
229
  $[3] = className;
215
230
  $[4] = t1;
216
231
  } else {
@@ -231,6 +246,11 @@ function AlertDialogFooter(t0) {
231
246
  }
232
247
  return t2;
233
248
  }
249
+ /**
250
+ * Renders confirmation media at the compact default size.
251
+ * @param props - Primitive properties and optional consumer overrides.
252
+ * @returns The styled primitive with its original interaction contract.
253
+ */
234
254
  function AlertDialogMedia(t0) {
235
255
  const $ = _c(8);
236
256
  let className;
@@ -246,7 +266,7 @@ function AlertDialogMedia(t0) {
246
266
  }
247
267
  let t1;
248
268
  if ($[3] !== className) {
249
- t1 = cn("mb-2 inline-flex size-16 items-center justify-center rounded-md bg-muted sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-8", className);
269
+ t1 = cn("mb-2 inline-flex size-10 items-center justify-center rounded-md bg-muted sm:group-data-[size=default]/alert-dialog-content:row-span-2 *:[svg:not([class*='size-'])]:size-6", className);
250
270
  $[3] = className;
251
271
  $[4] = t1;
252
272
  } else {
@@ -267,6 +287,11 @@ function AlertDialogMedia(t0) {
267
287
  }
268
288
  return t2;
269
289
  }
290
+ /**
291
+ * Renders confirmation headings using the shared font and compact text size.
292
+ * @param props - Primitive properties and optional consumer overrides.
293
+ * @returns The styled primitive with its original interaction contract.
294
+ */
270
295
  function AlertDialogTitle(t0) {
271
296
  const $ = _c(8);
272
297
  let className;
@@ -282,7 +307,7 @@ function AlertDialogTitle(t0) {
282
307
  }
283
308
  let t1;
284
309
  if ($[3] !== className) {
285
- t1 = cn("font-heading text-lg font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2", className);
310
+ t1 = cn("font-heading text-base font-medium sm:group-data-[size=default]/alert-dialog-content:group-has-data-[slot=alert-dialog-media]/alert-dialog-content:col-start-2", className);
286
311
  $[3] = className;
287
312
  $[4] = t1;
288
313
  } else {
@@ -5,13 +5,28 @@ declare function DialogTrigger({ ...props }: React.ComponentProps<typeof DialogP
5
5
  declare function DialogPortal({ ...props }: React.ComponentProps<typeof DialogPrimitive.Portal>): React.JSX.Element;
6
6
  declare function DialogClose({ ...props }: React.ComponentProps<typeof DialogPrimitive.Close>): React.JSX.Element;
7
7
  declare function DialogOverlay({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Overlay>): React.JSX.Element;
8
+ /**
9
+ * Renders compact dialog content with viewport-safe scrolling.
10
+ * @param props - Primitive properties and optional consumer overrides.
11
+ * @returns The styled primitive with its original interaction contract.
12
+ */
8
13
  declare function DialogContent({ className, children, showCloseButton, ...props }: React.ComponentProps<typeof DialogPrimitive.Content> & {
9
14
  showCloseButton?: boolean;
10
15
  }): React.JSX.Element;
11
16
  declare function DialogHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
17
+ /**
18
+ * Separates dialog actions with a bordered footer matching the content padding.
19
+ * @param props - Primitive properties and optional consumer overrides.
20
+ * @returns The styled primitive with its original interaction contract.
21
+ */
12
22
  declare function DialogFooter({ className, showCloseButton, children, ...props }: React.ComponentProps<"div"> & {
13
23
  showCloseButton?: boolean;
14
24
  }): React.JSX.Element;
25
+ /**
26
+ * Renders dialog headings with the shared font at the compact default size.
27
+ * @param props - Primitive properties and optional consumer overrides.
28
+ * @returns The styled primitive with its original interaction contract.
29
+ */
15
30
  declare function DialogTitle({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Title>): React.JSX.Element;
16
31
  declare function DialogDescription({ className, ...props }: React.ComponentProps<typeof DialogPrimitive.Description>): React.JSX.Element;
17
32
  export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, };
@@ -134,6 +134,11 @@ function DialogOverlay(t0) {
134
134
  }
135
135
  return t2;
136
136
  }
137
+ /**
138
+ * Renders compact dialog content with viewport-safe scrolling.
139
+ * @param props - Primitive properties and optional consumer overrides.
140
+ * @returns The styled primitive with its original interaction contract.
141
+ */
137
142
  function DialogContent(t0) {
138
143
  const $ = _c(15);
139
144
  let children;
@@ -163,7 +168,7 @@ function DialogContent(t0) {
163
168
  }
164
169
  let t3;
165
170
  if ($[6] !== className) {
166
- t3 = cn("fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] max-h-[calc(100svh-2rem)] -translate-x-1/2 -translate-y-1/2 gap-6 overflow-y-auto rounded-xl bg-popover p-6 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-md data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className);
171
+ t3 = cn("fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] max-h-[calc(100svh-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 overflow-y-auto rounded-xl bg-popover p-4 text-sm text-popover-foreground ring-1 ring-foreground/10 duration-100 outline-none sm:max-w-sm data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className);
167
172
  $[6] = className;
168
173
  $[7] = t3;
169
174
  } else {
@@ -176,7 +181,7 @@ function DialogContent(t0) {
176
181
  asChild: true,
177
182
  children: /* @__PURE__ */ _jsxs(Button, {
178
183
  variant: "ghost",
179
- className: "absolute top-4 right-4",
184
+ className: "absolute top-2 right-2",
180
185
  size: "icon-sm",
181
186
  children: [/* @__PURE__ */ _jsx(XIcon, {}), /* @__PURE__ */ _jsx("span", {
182
187
  className: "sr-only",
@@ -243,6 +248,11 @@ function DialogHeader(t0) {
243
248
  }
244
249
  return t2;
245
250
  }
251
+ /**
252
+ * Separates dialog actions with a bordered footer matching the content padding.
253
+ * @param props - Primitive properties and optional consumer overrides.
254
+ * @returns The styled primitive with its original interaction contract.
255
+ */
246
256
  function DialogFooter(t0) {
247
257
  const $ = _c(14);
248
258
  let children;
@@ -265,7 +275,7 @@ function DialogFooter(t0) {
265
275
  const showCloseButton = t1 === undefined ? false : t1;
266
276
  let t2;
267
277
  if ($[5] !== className) {
268
- t2 = cn("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end", className);
278
+ t2 = cn("-mx-4 -mb-4 flex flex-col-reverse gap-2 rounded-b-xl border-t bg-muted/50 p-4 sm:flex-row sm:justify-end", className);
269
279
  $[5] = className;
270
280
  $[6] = t2;
271
281
  } else {
@@ -303,6 +313,11 @@ function DialogFooter(t0) {
303
313
  }
304
314
  return t4;
305
315
  }
316
+ /**
317
+ * Renders dialog headings with the shared font at the compact default size.
318
+ * @param props - Primitive properties and optional consumer overrides.
319
+ * @returns The styled primitive with its original interaction contract.
320
+ */
306
321
  function DialogTitle(t0) {
307
322
  const $ = _c(8);
308
323
  let className;
@@ -318,7 +333,7 @@ function DialogTitle(t0) {
318
333
  }
319
334
  let t1;
320
335
  if ($[3] !== className) {
321
- t1 = cn("font-heading leading-none font-medium", className);
336
+ t1 = cn("font-heading text-base leading-none font-medium", className);
322
337
  $[3] = className;
323
338
  $[4] = t1;
324
339
  } else {
@@ -3,27 +3,58 @@ import { DropdownMenu as DropdownMenuPrimitive } from "radix-ui";
3
3
  declare function DropdownMenu({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Root>): React.JSX.Element;
4
4
  declare function DropdownMenuPortal({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Portal>): React.JSX.Element;
5
5
  declare function DropdownMenuTrigger({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Trigger>): React.JSX.Element;
6
+ /** Sizes action menus by their content instead of narrowing them to an icon trigger. */
6
7
  declare function DropdownMenuContent({ className, align, sideOffset, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Content>): React.JSX.Element;
7
8
  declare function DropdownMenuGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Group>): React.JSX.Element;
9
+ /**
10
+ * Renders an action with compact spacing and preserved disabled/destructive states.
11
+ * @param props - Primitive properties and optional consumer overrides.
12
+ * @returns The styled primitive with its original interaction contract.
13
+ */
8
14
  declare function DropdownMenuItem({ className, inset, variant, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Item> & {
9
15
  inset?: boolean;
10
16
  variant?: "default" | "destructive";
11
17
  }): React.JSX.Element;
18
+ /**
19
+ * Renders a compact selectable checkbox action.
20
+ * @param props - Primitive properties and optional consumer overrides.
21
+ * @returns The styled primitive with its original interaction contract.
22
+ */
12
23
  declare function DropdownMenuCheckboxItem({ className, children, checked, inset, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.CheckboxItem> & {
13
24
  inset?: boolean;
14
25
  }): React.JSX.Element;
15
26
  declare function DropdownMenuRadioGroup({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.RadioGroup>): React.JSX.Element;
27
+ /**
28
+ * Renders a compact mutually exclusive action.
29
+ * @param props - Primitive properties and optional consumer overrides.
30
+ * @returns The styled primitive with its original interaction contract.
31
+ */
16
32
  declare function DropdownMenuRadioItem({ className, children, inset, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.RadioItem> & {
17
33
  inset?: boolean;
18
34
  }): React.JSX.Element;
35
+ /**
36
+ * Renders a compact menu group label.
37
+ * @param props - Primitive properties and optional consumer overrides.
38
+ * @returns The styled primitive with its original interaction contract.
39
+ */
19
40
  declare function DropdownMenuLabel({ className, inset, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Label> & {
20
41
  inset?: boolean;
21
42
  }): React.JSX.Element;
22
43
  declare function DropdownMenuSeparator({ className, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Separator>): React.JSX.Element;
23
44
  declare function DropdownMenuShortcut({ className, ...props }: React.ComponentProps<"span">): React.JSX.Element;
24
45
  declare function DropdownMenuSub({ ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.Sub>): React.JSX.Element;
46
+ /**
47
+ * Renders a compact trigger for a nested menu.
48
+ * @param props - Primitive properties and optional consumer overrides.
49
+ * @returns The styled primitive with its original interaction contract.
50
+ */
25
51
  declare function DropdownMenuSubTrigger({ className, inset, children, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.SubTrigger> & {
26
52
  inset?: boolean;
27
53
  }): React.JSX.Element;
54
+ /**
55
+ * Preserves readable submenu width with the shared translucent theme.
56
+ * @param props - Primitive properties and optional consumer overrides.
57
+ * @returns The styled primitive with its original interaction contract.
58
+ */
28
59
  declare function DropdownMenuSubContent({ className, ...props }: React.ComponentProps<typeof DropdownMenuPrimitive.SubContent>): React.JSX.Element;
29
60
  export { DropdownMenu, DropdownMenuPortal, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuGroup, DropdownMenuLabel, DropdownMenuItem, DropdownMenuCheckboxItem, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubTrigger, DropdownMenuSubContent, };
@@ -74,6 +74,7 @@ function DropdownMenuTrigger(t0) {
74
74
  }
75
75
  return t1;
76
76
  }
77
+ /** Sizes action menus by their content instead of narrowing them to an icon trigger. */
77
78
  function DropdownMenuContent(t0) {
78
79
  const $ = _c(12);
79
80
  let className;
@@ -97,7 +98,7 @@ function DropdownMenuContent(t0) {
97
98
  const sideOffset = t2 === undefined ? 4 : t2;
98
99
  let t3;
99
100
  if ($[5] !== className) {
100
- t3 = cn("z-50 max-h-(--radix-dropdown-menu-content-available-height) w-(--radix-dropdown-menu-trigger-width) min-w-32 origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-md p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:overflow-hidden data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 animate-none! relative bg-popover/70 before:pointer-events-none before:absolute before:inset-0 before:-z-1 before:rounded-[inherit] before:backdrop-blur-2xl before:backdrop-saturate-150 **:data-[slot$=-item]:focus:bg-foreground/10 **:data-[slot$=-item]:data-highlighted:bg-foreground/10 **:data-[slot$=-separator]:bg-foreground/5 **:data-[slot$=-trigger]:focus:bg-foreground/10 **:data-[slot$=-trigger]:aria-expanded:bg-foreground/10! **:data-[variant=destructive]:focus:bg-destructive/10!", className);
101
+ t3 = cn("z-50 max-h-(--radix-dropdown-menu-content-available-height) min-w-48 max-w-(--radix-dropdown-menu-content-available-width) origin-(--radix-dropdown-menu-content-transform-origin) overflow-x-hidden overflow-y-auto rounded-lg p-1 text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:overflow-hidden data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 animate-none! relative bg-popover/70 before:pointer-events-none before:absolute before:inset-0 before:-z-1 before:rounded-[inherit] before:backdrop-blur-2xl before:backdrop-saturate-150 **:data-[slot$=-item]:focus:bg-foreground/10 **:data-[slot$=-item]:data-highlighted:bg-foreground/10 **:data-[slot$=-separator]:bg-foreground/5 **:data-[slot$=-trigger]:focus:bg-foreground/10 **:data-[slot$=-trigger]:aria-expanded:bg-foreground/10! **:data-[variant=destructive]:focus:bg-destructive/10!", className);
101
102
  $[5] = className;
102
103
  $[6] = t3;
103
104
  } else {
@@ -145,6 +146,11 @@ function DropdownMenuGroup(t0) {
145
146
  }
146
147
  return t1;
147
148
  }
149
+ /**
150
+ * Renders an action with compact spacing and preserved disabled/destructive states.
151
+ * @param props - Primitive properties and optional consumer overrides.
152
+ * @returns The styled primitive with its original interaction contract.
153
+ */
148
154
  function DropdownMenuItem(t0) {
149
155
  const $ = _c(12);
150
156
  let className;
@@ -167,7 +173,7 @@ function DropdownMenuItem(t0) {
167
173
  const variant = t1 === undefined ? "default" : t1;
168
174
  let t2;
169
175
  if ($[5] !== className) {
170
- t2 = cn("group/dropdown-menu-item relative flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-8 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive", className);
176
+ t2 = cn("group/dropdown-menu-item relative flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-[variant=destructive]:text-destructive data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 data-[variant=destructive]:*:[svg]:text-destructive", className);
171
177
  $[5] = className;
172
178
  $[6] = t2;
173
179
  } else {
@@ -192,6 +198,11 @@ function DropdownMenuItem(t0) {
192
198
  }
193
199
  return t3;
194
200
  }
201
+ /**
202
+ * Renders a compact selectable checkbox action.
203
+ * @param props - Primitive properties and optional consumer overrides.
204
+ * @returns The styled primitive with its original interaction contract.
205
+ */
195
206
  function DropdownMenuCheckboxItem(t0) {
196
207
  const $ = _c(15);
197
208
  let checked;
@@ -216,7 +227,7 @@ function DropdownMenuCheckboxItem(t0) {
216
227
  }
217
228
  let t1;
218
229
  if ($[6] !== className) {
219
- t1 = cn("relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-8 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className);
230
+ t1 = cn("relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className);
220
231
  $[6] = className;
221
232
  $[7] = t1;
222
233
  } else {
@@ -277,6 +288,11 @@ function DropdownMenuRadioGroup(t0) {
277
288
  }
278
289
  return t1;
279
290
  }
291
+ /**
292
+ * Renders a compact mutually exclusive action.
293
+ * @param props - Primitive properties and optional consumer overrides.
294
+ * @returns The styled primitive with its original interaction contract.
295
+ */
280
296
  function DropdownMenuRadioItem(t0) {
281
297
  const $ = _c(13);
282
298
  let children;
@@ -298,7 +314,7 @@ function DropdownMenuRadioItem(t0) {
298
314
  }
299
315
  let t1;
300
316
  if ($[5] !== className) {
301
- t1 = cn("relative flex cursor-default items-center gap-2 rounded-sm py-1.5 pr-8 pl-2 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-8 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className);
317
+ t1 = cn("relative flex cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground focus:**:text-accent-foreground data-inset:pl-7 data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className);
302
318
  $[5] = className;
303
319
  $[6] = t1;
304
320
  } else {
@@ -334,6 +350,11 @@ function DropdownMenuRadioItem(t0) {
334
350
  }
335
351
  return t3;
336
352
  }
353
+ /**
354
+ * Renders a compact menu group label.
355
+ * @param props - Primitive properties and optional consumer overrides.
356
+ * @returns The styled primitive with its original interaction contract.
357
+ */
337
358
  function DropdownMenuLabel(t0) {
338
359
  const $ = _c(10);
339
360
  let className;
@@ -352,7 +373,7 @@ function DropdownMenuLabel(t0) {
352
373
  }
353
374
  let t1;
354
375
  if ($[4] !== className) {
355
- t1 = cn("px-2 py-1.5 text-xs font-medium text-muted-foreground data-inset:pl-8", className);
376
+ t1 = cn("px-1.5 py-1 text-xs font-medium text-muted-foreground data-inset:pl-7", className);
356
377
  $[4] = className;
357
378
  $[5] = t1;
358
379
  } else {
@@ -470,6 +491,11 @@ function DropdownMenuSub(t0) {
470
491
  }
471
492
  return t1;
472
493
  }
494
+ /**
495
+ * Renders a compact trigger for a nested menu.
496
+ * @param props - Primitive properties and optional consumer overrides.
497
+ * @returns The styled primitive with its original interaction contract.
498
+ */
473
499
  function DropdownMenuSubTrigger(t0) {
474
500
  const $ = _c(13);
475
501
  let children;
@@ -491,7 +517,7 @@ function DropdownMenuSubTrigger(t0) {
491
517
  }
492
518
  let t1;
493
519
  if ($[5] !== className) {
494
- t1 = cn("flex cursor-default items-center gap-2 rounded-sm px-2 py-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-8 data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className);
520
+ t1 = cn("flex cursor-default items-center gap-1.5 rounded-md px-1.5 py-1 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-inset:pl-7 data-open:bg-accent data-open:text-accent-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className);
495
521
  $[5] = className;
496
522
  $[6] = t1;
497
523
  } else {
@@ -523,6 +549,11 @@ function DropdownMenuSubTrigger(t0) {
523
549
  }
524
550
  return t3;
525
551
  }
552
+ /**
553
+ * Preserves readable submenu width with the shared translucent theme.
554
+ * @param props - Primitive properties and optional consumer overrides.
555
+ * @returns The styled primitive with its original interaction contract.
556
+ */
526
557
  function DropdownMenuSubContent(t0) {
527
558
  const $ = _c(8);
528
559
  let className;
@@ -538,7 +569,7 @@ function DropdownMenuSubContent(t0) {
538
569
  }
539
570
  let t1;
540
571
  if ($[3] !== className) {
541
- t1 = cn("z-50 min-w-[96px] origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md p-1 text-popover-foreground shadow-lg ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 animate-none! relative bg-popover/70 before:pointer-events-none before:absolute before:inset-0 before:-z-1 before:rounded-[inherit] before:backdrop-blur-2xl before:backdrop-saturate-150 **:data-[slot$=-item]:focus:bg-foreground/10 **:data-[slot$=-item]:data-highlighted:bg-foreground/10 **:data-[slot$=-separator]:bg-foreground/5 **:data-[slot$=-trigger]:focus:bg-foreground/10 **:data-[slot$=-trigger]:aria-expanded:bg-foreground/10! **:data-[variant=destructive]:focus:bg-destructive/10!", className);
572
+ t1 = cn("z-50 min-w-48 origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-lg p-1 text-popover-foreground shadow-lg ring-1 ring-foreground/10 duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95 animate-none! relative bg-popover/70 before:pointer-events-none before:absolute before:inset-0 before:-z-1 before:rounded-[inherit] before:backdrop-blur-2xl before:backdrop-saturate-150 **:data-[slot$=-item]:focus:bg-foreground/10 **:data-[slot$=-item]:data-highlighted:bg-foreground/10 **:data-[slot$=-separator]:bg-foreground/5 **:data-[slot$=-trigger]:focus:bg-foreground/10 **:data-[slot$=-trigger]:aria-expanded:bg-foreground/10! **:data-[variant=destructive]:focus:bg-destructive/10!", className);
542
573
  $[3] = className;
543
574
  $[4] = t1;
544
575
  } else {
@@ -2,8 +2,18 @@ import * as React from "react";
2
2
  import { Popover as PopoverPrimitive } from "radix-ui";
3
3
  declare function Popover({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Root>): React.JSX.Element;
4
4
  declare function PopoverTrigger({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Trigger>): React.JSX.Element;
5
+ /**
6
+ * Renders floating details with compact padding and spacing.
7
+ * @param props - Primitive properties and optional consumer overrides.
8
+ * @returns The styled primitive with its original interaction contract.
9
+ */
5
10
  declare function PopoverContent({ className, align, sideOffset, ...props }: React.ComponentProps<typeof PopoverPrimitive.Content>): React.JSX.Element;
6
11
  declare function PopoverAnchor({ ...props }: React.ComponentProps<typeof PopoverPrimitive.Anchor>): React.JSX.Element;
12
+ /**
13
+ * Groups popover headings with compact spacing.
14
+ * @param props - Primitive properties and optional consumer overrides.
15
+ * @returns The styled primitive with its original interaction contract.
16
+ */
7
17
  declare function PopoverHeader({ className, ...props }: React.ComponentProps<"div">): React.JSX.Element;
8
18
  declare function PopoverTitle({ className, ...props }: React.ComponentProps<"h2">): React.JSX.Element;
9
19
  declare function PopoverDescription({ className, ...props }: React.ComponentProps<"p">): React.JSX.Element;
@@ -50,6 +50,11 @@ function PopoverTrigger(t0) {
50
50
  }
51
51
  return t1;
52
52
  }
53
+ /**
54
+ * Renders floating details with compact padding and spacing.
55
+ * @param props - Primitive properties and optional consumer overrides.
56
+ * @returns The styled primitive with its original interaction contract.
57
+ */
53
58
  function PopoverContent(t0) {
54
59
  const $ = _c(12);
55
60
  let className;
@@ -73,7 +78,7 @@ function PopoverContent(t0) {
73
78
  const sideOffset = t2 === undefined ? 4 : t2;
74
79
  let t3;
75
80
  if ($[5] !== className) {
76
- t3 = cn("z-50 flex w-72 origin-(--radix-popover-content-transform-origin) flex-col gap-4 rounded-md bg-popover p-4 text-sm text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className);
81
+ t3 = cn("z-50 flex w-72 origin-(--radix-popover-content-transform-origin) flex-col gap-2.5 rounded-lg bg-popover p-2.5 text-sm text-popover-foreground shadow-md ring-1 ring-foreground/10 outline-hidden duration-100 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className);
77
82
  $[5] = className;
78
83
  $[6] = t3;
79
84
  } else {
@@ -121,6 +126,11 @@ function PopoverAnchor(t0) {
121
126
  }
122
127
  return t1;
123
128
  }
129
+ /**
130
+ * Groups popover headings with compact spacing.
131
+ * @param props - Primitive properties and optional consumer overrides.
132
+ * @returns The styled primitive with its original interaction contract.
133
+ */
124
134
  function PopoverHeader(t0) {
125
135
  const $ = _c(8);
126
136
  let className;
@@ -136,7 +146,7 @@ function PopoverHeader(t0) {
136
146
  }
137
147
  let t1;
138
148
  if ($[3] !== className) {
139
- t1 = cn("flex flex-col gap-1 text-sm", className);
149
+ t1 = cn("flex flex-col gap-0.5 text-sm", className);
140
150
  $[3] = className;
141
151
  $[4] = t1;
142
152
  } else {
@@ -3,11 +3,31 @@ import { Select as SelectPrimitive } from "radix-ui";
3
3
  declare function Select({ ...props }: React.ComponentProps<typeof SelectPrimitive.Root>): React.JSX.Element;
4
4
  declare function SelectGroup({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Group>): React.JSX.Element;
5
5
  declare function SelectValue({ ...props }: React.ComponentProps<typeof SelectPrimitive.Value>): React.JSX.Element;
6
+ /**
7
+ * Renders compact default and small selection controls.
8
+ * @param props - Primitive properties and optional consumer overrides.
9
+ * @returns The styled primitive with its original interaction contract.
10
+ */
6
11
  declare function SelectTrigger({ className, size, children, ...props }: React.ComponentProps<typeof SelectPrimitive.Trigger> & {
7
12
  size?: "sm" | "default";
8
13
  }): React.JSX.Element;
14
+ /**
15
+ * Keeps selection options readable with a twelve-rem minimum width.
16
+ * @param props - Primitive properties and optional consumer overrides.
17
+ * @returns The styled primitive with its original interaction contract.
18
+ */
9
19
  declare function SelectContent({ className, children, position, align, ...props }: React.ComponentProps<typeof SelectPrimitive.Content>): React.JSX.Element;
20
+ /**
21
+ * Renders compact option group labels.
22
+ * @param props - Primitive properties and optional consumer overrides.
23
+ * @returns The styled primitive with its original interaction contract.
24
+ */
10
25
  declare function SelectLabel({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Label>): React.JSX.Element;
26
+ /**
27
+ * Renders compact options while retaining selection and disabled semantics.
28
+ * @param props - Primitive properties and optional consumer overrides.
29
+ * @returns The styled primitive with its original interaction contract.
30
+ */
11
31
  declare function SelectItem({ className, children, ...props }: React.ComponentProps<typeof SelectPrimitive.Item>): React.JSX.Element;
12
32
  declare function SelectSeparator({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.Separator>): React.JSX.Element;
13
33
  declare function SelectScrollUpButton({ className, ...props }: React.ComponentProps<typeof SelectPrimitive.ScrollUpButton>): React.JSX.Element;