@evinvest/uikit 0.23.0 → 0.24.0

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
@@ -388,6 +388,10 @@ landing (TS) sources — e.g. `Badge` keeps cabinet's `success` variant, and
388
388
  `Button` keeps landing's square icon shape at every size, as the separate `icon`
389
389
  boolean it always was in Rust (see [docs/spec/variants.md](../../docs/spec/variants.md)).
390
390
 
391
+ `size="touch"` is the 44 px pointer-target floor (WCAG 2.5.5) for touch-first
392
+ screens: `min-h-11` with `lg`'s padding, and a 44 × 44 square with `icon`. It is
393
+ a button step only — `Input` and `SelectTrigger` already clear it at `lg`.
394
+
391
395
  ## Limitations
392
396
 
393
397
  Reproducing everything dep-light means some behaviour is intentionally reduced,
@@ -12,14 +12,16 @@ const buttonSizeClasses = {
12
12
  "sm": "h-8 gap-1.5 px-3 has-[>svg]:px-2.5",
13
13
  "md": "h-9 px-4 py-[var(--control-py)] has-[>svg]:px-3",
14
14
  "lg": "h-10 px-6 has-[>svg]:px-4",
15
- "xl": "px-[var(--control-px)] py-[var(--control-py)] text-[length:var(--control-text)]"
15
+ "xl": "px-[var(--control-px)] py-[var(--control-py)] text-[length:var(--control-text)]",
16
+ "touch": "min-h-11 px-6 has-[>svg]:px-4"
16
17
  };
17
18
  const buttonIconSizeClasses = {
18
19
  "xs": "h-7 aspect-square px-0",
19
20
  "sm": "h-8 aspect-square px-0",
20
21
  "md": "h-9 aspect-square px-0",
21
22
  "lg": "h-10 aspect-square px-0",
22
- "xl": "aspect-square p-[var(--control-py)]"
23
+ "xl": "aspect-square p-[var(--control-py)]",
24
+ "touch": "size-11 px-0"
23
25
  };
24
26
  export {
25
27
  BUTTON_BASE,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../src/generated/button.ts"],"sourcesContent":["// AUTO-GENERATED by `nix run .#gen` — do not edit.\n\nexport const BUTTON_BASE = \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-[var(--control-radius)] text-sm font-medium transition-all cursor-pointer disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-accent-error/20 aria-invalid:border-accent-error\";\n\nexport const buttonVariantClasses = {\n \"primary\": \"bg-primary text-on-primary hover:bg-primary/90 focus-visible:ring-0 focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring\",\n \"secondary\": \"bg-secondary text-on-secondary hover:bg-secondary/80 focus-visible:ring-0 focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring\",\n \"outline\": \"border border-input bg-transparent shadow-xs hover:bg-hover hover:text-ink\",\n \"ghost\": \"hover:bg-hover hover:text-ink\",\n \"destructive\": \"bg-accent-error text-on-accent-error hover:bg-accent-error/90 focus-visible:ring-accent-error/20 focus-visible:ring-0 focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring\",\n \"link\": \"text-primary-ink underline-offset-4 hover:underline\",\n} as const;\nexport type ButtonVariant = keyof typeof buttonVariantClasses;\n\nexport const buttonSizeClasses = {\n \"xs\": \"h-7 gap-1 px-2 text-xs has-[>svg]:px-1.5\",\n \"sm\": \"h-8 gap-1.5 px-3 has-[>svg]:px-2.5\",\n \"md\": \"h-9 px-4 py-[var(--control-py)] has-[>svg]:px-3\",\n \"lg\": \"h-10 px-6 has-[>svg]:px-4\",\n \"xl\": \"px-[var(--control-px)] py-[var(--control-py)] text-[length:var(--control-text)]\",\n} as const;\nexport type ButtonSize = keyof typeof buttonSizeClasses;\n\nexport const buttonIconSizeClasses = {\n \"xs\": \"h-7 aspect-square px-0\",\n \"sm\": \"h-8 aspect-square px-0\",\n \"md\": \"h-9 aspect-square px-0\",\n \"lg\": \"h-10 aspect-square px-0\",\n \"xl\": \"aspect-square p-[var(--control-py)]\",\n} as const;\nexport type ButtonIconSize = keyof typeof buttonIconSizeClasses;\n"],"mappings":"AAEO,MAAM,cAAc;AAEpB,MAAM,uBAAuB;AAAA,EAClC,WAAW;AAAA,EACX,aAAa;AAAA,EACb,WAAW;AAAA,EACX,SAAS;AAAA,EACT,eAAe;AAAA,EACf,QAAQ;AACV;AAGO,MAAM,oBAAoB;AAAA,EAC/B,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AACR;AAGO,MAAM,wBAAwB;AAAA,EACnC,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AACR;","names":[]}
1
+ {"version":3,"sources":["../../src/generated/button.ts"],"sourcesContent":["// AUTO-GENERATED by `nix run .#gen` — do not edit.\n\nexport const BUTTON_BASE = \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-[var(--control-radius)] text-sm font-medium transition-all cursor-pointer disabled:pointer-events-none disabled:opacity-50 [&_svg]:pointer-events-none [&_svg:not([class*='size-'])]:size-4 shrink-0 [&_svg]:shrink-0 outline-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-accent-error/20 aria-invalid:border-accent-error\";\n\nexport const buttonVariantClasses = {\n \"primary\": \"bg-primary text-on-primary hover:bg-primary/90 focus-visible:ring-0 focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring\",\n \"secondary\": \"bg-secondary text-on-secondary hover:bg-secondary/80 focus-visible:ring-0 focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring\",\n \"outline\": \"border border-input bg-transparent shadow-xs hover:bg-hover hover:text-ink\",\n \"ghost\": \"hover:bg-hover hover:text-ink\",\n \"destructive\": \"bg-accent-error text-on-accent-error hover:bg-accent-error/90 focus-visible:ring-accent-error/20 focus-visible:ring-0 focus-visible:outline-solid focus-visible:outline-2 focus-visible:outline-offset-2 focus-visible:outline-ring\",\n \"link\": \"text-primary-ink underline-offset-4 hover:underline\",\n} as const;\nexport type ButtonVariant = keyof typeof buttonVariantClasses;\n\nexport const buttonSizeClasses = {\n \"xs\": \"h-7 gap-1 px-2 text-xs has-[>svg]:px-1.5\",\n \"sm\": \"h-8 gap-1.5 px-3 has-[>svg]:px-2.5\",\n \"md\": \"h-9 px-4 py-[var(--control-py)] has-[>svg]:px-3\",\n \"lg\": \"h-10 px-6 has-[>svg]:px-4\",\n \"xl\": \"px-[var(--control-px)] py-[var(--control-py)] text-[length:var(--control-text)]\",\n \"touch\": \"min-h-11 px-6 has-[>svg]:px-4\",\n} as const;\nexport type ButtonSize = keyof typeof buttonSizeClasses;\n\nexport const buttonIconSizeClasses = {\n \"xs\": \"h-7 aspect-square px-0\",\n \"sm\": \"h-8 aspect-square px-0\",\n \"md\": \"h-9 aspect-square px-0\",\n \"lg\": \"h-10 aspect-square px-0\",\n \"xl\": \"aspect-square p-[var(--control-py)]\",\n \"touch\": \"size-11 px-0\",\n} as const;\nexport type ButtonIconSize = keyof typeof buttonIconSizeClasses;\n"],"mappings":"AAEO,MAAM,cAAc;AAEpB,MAAM,uBAAuB;AAAA,EAClC,WAAW;AAAA,EACX,aAAa;AAAA,EACb,WAAW;AAAA,EACX,SAAS;AAAA,EACT,eAAe;AAAA,EACf,QAAQ;AACV;AAGO,MAAM,oBAAoB;AAAA,EAC/B,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,SAAS;AACX;AAGO,MAAM,wBAAwB;AAAA,EACnC,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,SAAS;AACX;","names":[]}
package/dist/index.d.ts CHANGED
@@ -287,6 +287,7 @@ declare const buttonSizeClasses: {
287
287
  readonly md: "h-9 px-4 py-[var(--control-py)] has-[>svg]:px-3";
288
288
  readonly lg: "h-10 px-6 has-[>svg]:px-4";
289
289
  readonly xl: "px-[var(--control-px)] py-[var(--control-py)] text-[length:var(--control-text)]";
290
+ readonly touch: "min-h-11 px-6 has-[>svg]:px-4";
290
291
  };
291
292
  type ButtonSize = keyof typeof buttonSizeClasses;
292
293
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@evinvest/uikit",
3
- "version": "0.23.0",
3
+ "version": "0.24.0",
4
4
  "description": "Dep-light React UI kit: shadcn-semantics components with zero @radix-ui / cva, mirroring the ev_lib::uikit Rust feature. Ships the shared design tokens.",
5
5
  "license": "BlueOak-1.0.0",
6
6
  "publishConfig": {