@frontfriend/tailwind 4.0.1 → 4.0.4

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@frontfriend/tailwind",
3
- "version": "4.0.1",
3
+ "version": "4.0.4",
4
4
  "description": "Design token management for Tailwind CSS",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/types/index.d.ts",
@@ -330,6 +330,70 @@ const SHADCN_DEFAULTS = {
330
330
  root:
331
331
  'font-primary flex h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base md:text-sm shadow-xs transition-[color,box-shadow] outline-none text-foreground placeholder:text-muted-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:text-sm file:font-medium file:text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 aria-invalid:border-destructive disabled:cursor-not-allowed disabled:opacity-50',
332
332
  },
333
+ // Fidelity pass (#468 follow-up): align components whose neutralized treatment
334
+ // visibly diverged from shadcn new-york-v4 (size scale / padding / shape).
335
+ // Each value stays config-driven (token utilities only, no brand, no bare rounded).
336
+ textarea: {
337
+ root:
338
+ 'flex field-sizing-content min-h-16 w-full font-primary rounded-md border border-border bg-transparent px-3 py-2 text-base md:text-sm shadow-xs transition-[color,box-shadow] outline-none placeholder:text-muted-foreground text-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50',
339
+ },
340
+ label: {
341
+ root:
342
+ 'flex items-center gap-2 text-sm leading-none font-medium select-none font-primary group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50 peer-disabled:cursor-not-allowed peer-disabled:opacity-50',
343
+ },
344
+ checkbox: {
345
+ root:
346
+ 'peer size-4 shrink-0 rounded-[4px] border border-border bg-background shadow-xs transition-shadow outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:border-primary data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground',
347
+ icon: 'text-primary-foreground flex items-center justify-center',
348
+ },
349
+ switch: {
350
+ root:
351
+ 'peer inline-flex h-[1.15rem] w-8 shrink-0 cursor-pointer items-center rounded-full border border-transparent shadow-xs transition-all focus-visible:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input',
352
+ trigger:
353
+ 'pointer-events-none block size-4 rounded-full bg-background shadow ring-0 transition-transform data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0',
354
+ },
355
+ radiogroup: {
356
+ item:
357
+ 'aspect-square group size-4 shrink-0 bg-background text-primary border-border rounded-full border shadow-xs focus:outline-none focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50',
358
+ icon: 'size-2 rounded-full',
359
+ },
360
+ avatar: {
361
+ root: 'font-primary relative flex size-8 shrink-0 overflow-hidden rounded-full',
362
+ fallback:
363
+ 'bg-muted flex size-full items-center justify-center rounded-full text-sm text-muted-foreground',
364
+ },
365
+ card: {
366
+ root:
367
+ 'flex flex-col gap-6 rounded-xl font-primary border bg-card text-foreground border-border relative py-6 shadow-sm',
368
+ header: 'flex flex-col gap-1.5 px-6',
369
+ content: 'px-6',
370
+ footer: 'flex gap-4 items-center px-6',
371
+ },
372
+ tooltip: {
373
+ content:
374
+ 'z-30 w-fit overflow-hidden rounded-md font-normal font-primary bg-foreground px-3 py-1.5 text-xs text-balance text-background animate-in fade-in-0 zoom-in-95 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95 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',
375
+ },
376
+ tabs: {
377
+ list: {
378
+ root:
379
+ 'inline-flex h-9 w-fit gap-1 items-center justify-center rounded-lg p-[3px] font-primary bg-muted text-muted-foreground',
380
+ },
381
+ },
382
+ select: {
383
+ trigger:
384
+ 'flex w-full items-center justify-between gap-2 font-primary rounded-md px-3 py-2 border border-border bg-transparent text-sm text-muted-foreground shadow-xs transition-[color,box-shadow] outline-none focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 [&>span]:truncate h-9',
385
+ content: {
386
+ root:
387
+ 'font-primary p-1 max-h-96 min-w-32 relative bg-popover text-popover-foreground border-border gap-y-1 border rounded-md z-30 overflow-hidden data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 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 shadow-md',
388
+ },
389
+ separator: '-mx-1 my-1 h-px bg-border',
390
+ },
391
+ skeleton: {
392
+ root: 'animate-pulse rounded-md bg-accent',
393
+ },
394
+ progress: {
395
+ root: 'relative h-2 w-full overflow-hidden rounded-full bg-primary/20',
396
+ },
333
397
  };
334
398
 
335
399
  const DIRECT_CLASS_MAP = {