@luxfi/ui 7.0.0 → 7.2.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.
Files changed (70) hide show
  1. package/dist/alert.cjs +184 -335
  2. package/dist/alert.js +184 -335
  3. package/dist/badge.cjs +162 -321
  4. package/dist/badge.d.cts +3 -7
  5. package/dist/badge.d.ts +3 -7
  6. package/dist/badge.js +162 -320
  7. package/dist/bank.d.cts +1 -1
  8. package/dist/bank.d.ts +1 -1
  9. package/dist/button.cjs +373 -484
  10. package/dist/button.d.cts +10 -7
  11. package/dist/button.d.ts +10 -7
  12. package/dist/button.js +373 -484
  13. package/dist/close-button.cjs +37 -18
  14. package/dist/close-button.d.cts +1 -1
  15. package/dist/close-button.d.ts +1 -1
  16. package/dist/close-button.js +37 -18
  17. package/dist/collapsible.cjs +125 -272
  18. package/dist/collapsible.js +125 -272
  19. package/dist/dialog.cjs +60 -44
  20. package/dist/dialog.d.cts +7 -8
  21. package/dist/dialog.d.ts +7 -8
  22. package/dist/dialog.js +60 -43
  23. package/dist/drawer.cjs +37 -13
  24. package/dist/drawer.js +37 -13
  25. package/dist/heading.cjs +3 -8
  26. package/dist/heading.js +3 -8
  27. package/dist/icon-button.cjs +213 -337
  28. package/dist/icon-button.d.cts +4 -4
  29. package/dist/icon-button.d.ts +4 -4
  30. package/dist/icon-button.js +213 -338
  31. package/dist/image.cjs +125 -272
  32. package/dist/image.js +125 -272
  33. package/dist/index.cjs +695 -858
  34. package/dist/index.d.cts +0 -3
  35. package/dist/index.d.ts +0 -3
  36. package/dist/index.js +695 -856
  37. package/dist/input.cjs +25 -36
  38. package/dist/input.js +25 -36
  39. package/dist/link.cjs +125 -272
  40. package/dist/link.js +125 -272
  41. package/dist/popover.cjs +55 -40
  42. package/dist/popover.js +55 -39
  43. package/dist/select.cjs +125 -272
  44. package/dist/select.js +125 -272
  45. package/dist/skeleton.cjs +125 -272
  46. package/dist/skeleton.js +125 -272
  47. package/dist/table.cjs +127 -274
  48. package/dist/table.js +127 -274
  49. package/dist/tag.cjs +199 -341
  50. package/dist/tag.js +199 -340
  51. package/dist/textarea.cjs +25 -36
  52. package/dist/textarea.js +25 -36
  53. package/dist/tooltip.cjs +22 -21
  54. package/dist/tooltip.d.cts +2 -3
  55. package/dist/tooltip.d.ts +2 -3
  56. package/dist/tooltip.js +22 -20
  57. package/package.json +9 -8
  58. package/src/alert.tsx +23 -51
  59. package/src/badge.tsx +20 -31
  60. package/src/button.tsx +304 -238
  61. package/src/close-button.tsx +48 -22
  62. package/src/dialog.tsx +37 -47
  63. package/src/heading.tsx +8 -19
  64. package/src/icon-button.tsx +129 -104
  65. package/src/input.tsx +27 -36
  66. package/src/popover.tsx +30 -44
  67. package/src/skeleton.tsx +96 -144
  68. package/src/tag.tsx +17 -35
  69. package/src/textarea.tsx +27 -36
  70. package/src/tooltip.tsx +54 -47
package/src/badge.tsx CHANGED
@@ -1,5 +1,3 @@
1
- import { cva } from 'class-variance-authority';
2
- import type { VariantProps } from 'class-variance-authority';
3
1
  import React from 'react';
4
2
 
5
3
  import { cn } from './utils';
@@ -23,26 +21,13 @@ type ColorPalette =
23
21
  'bright_yellow' | 'bright_teal' | 'bright_cyan' | 'bright_orange' |
24
22
  'bright_purple' | 'bright_pink';
25
23
 
26
- const badgeVariants = cva(
27
- 'inline-flex items-center rounded-sm gap-1 font-medium w-fit max-w-full whitespace-nowrap select-text',
28
- {
29
- variants: {
30
- variant: {
31
- subtle: '',
32
- solid: '',
33
- },
34
- size: {
35
- sm: 'text-xs p-1 h-[18px] min-h-[18px]',
36
- md: 'text-sm px-1 py-0.5 min-h-6',
37
- lg: 'text-sm px-2 py-1 min-h-7 font-semibold',
38
- },
39
- },
40
- defaultVariants: {
41
- variant: 'subtle',
42
- size: 'md',
43
- },
44
- },
45
- );
24
+ const BASE_CLASSES = 'inline-flex items-center rounded-sm gap-1 font-medium w-fit max-w-full whitespace-nowrap select-text';
25
+
26
+ const SIZE_CLASSES = {
27
+ sm: 'text-xs p-1 h-[18px] min-h-[18px]',
28
+ md: 'text-sm px-1 py-0.5 min-h-6',
29
+ lg: 'text-sm px-2 py-1 min-h-7 font-semibold',
30
+ } as const;
46
31
 
47
32
  const COLOR_PALETTE_CLASSES: Record<ColorPalette, string> = {
48
33
  gray: 'bg-badge-gray-bg text-badge-gray-fg',
@@ -70,13 +55,14 @@ const COLOR_PALETTE_CLASSES: Record<ColorPalette, string> = {
70
55
  };
71
56
 
72
57
  export interface BadgeProps
73
- extends Omit<React.HTMLAttributes<HTMLSpanElement>, 'color'>,
74
- VariantProps<typeof badgeVariants> {
58
+ extends Omit<React.HTMLAttributes<HTMLSpanElement>, 'color'> {
75
59
  readonly loading?: boolean;
76
60
  readonly startElement?: React.ReactNode;
77
61
  readonly endElement?: React.ReactNode;
78
62
  readonly truncated?: boolean;
79
63
  readonly colorPalette?: ColorPalette;
64
+ readonly variant?: 'subtle' | 'solid';
65
+ readonly size?: 'sm' | 'md' | 'lg';
80
66
  // Legacy Chakra style-prop shims
81
67
  readonly flexShrink?: number;
82
68
  readonly gap?: number | string;
@@ -84,6 +70,8 @@ export interface BadgeProps
84
70
  readonly mr?: number | string;
85
71
  }
86
72
 
73
+ const S = 4; // Chakra spacing scale
74
+
87
75
  export const Badge = React.forwardRef<HTMLDivElement, BadgeProps>(
88
76
  function Badge(props, ref) {
89
77
  const {
@@ -92,8 +80,8 @@ export const Badge = React.forwardRef<HTMLDivElement, BadgeProps>(
92
80
  children,
93
81
  truncated = false,
94
82
  endElement,
95
- variant,
96
- size,
83
+ variant: _variant,
84
+ size = 'md',
97
85
  colorPalette = 'gray',
98
86
  className,
99
87
  flexShrink: _flexShrink,
@@ -106,16 +94,16 @@ export const Badge = React.forwardRef<HTMLDivElement, BadgeProps>(
106
94
 
107
95
  const shimStyle: React.CSSProperties = { ...styleProp };
108
96
  if (_flexShrink !== undefined) shimStyle.flexShrink = _flexShrink;
109
- if (_gap !== undefined) shimStyle.gap = typeof _gap === 'number' ? `${ _gap * 4 }px` : _gap;
97
+ if (_gap !== undefined) shimStyle.gap = typeof _gap === 'number' ? `${ _gap * S }px` : _gap;
110
98
  if (_ml !== undefined) {
111
99
  if (typeof _ml === 'object') {
112
100
  const obj = _ml as Record<string, number>;
113
- shimStyle.marginLeft = `${ (obj.base ?? obj.lg ?? 0) * 4 }px`;
101
+ shimStyle.marginLeft = `${ (obj.base ?? obj.lg ?? 0) * S }px`;
114
102
  } else {
115
- shimStyle.marginLeft = typeof _ml === 'number' ? `${ _ml * 4 }px` : _ml;
103
+ shimStyle.marginLeft = typeof _ml === 'number' ? `${ _ml * S }px` : _ml;
116
104
  }
117
105
  }
118
- if (_mr !== undefined) shimStyle.marginRight = typeof _mr === 'number' ? `${ _mr * 4 }px` : _mr;
106
+ if (_mr !== undefined) shimStyle.marginRight = typeof _mr === 'number' ? `${ _mr * S }px` : _mr;
119
107
  const badgeStyle = Object.keys(shimStyle).length > 0 ? shimStyle : undefined;
120
108
 
121
109
  const child = children ? (
@@ -132,7 +120,8 @@ export const Badge = React.forwardRef<HTMLDivElement, BadgeProps>(
132
120
  <span
133
121
  ref={ ref as React.Ref<HTMLSpanElement> }
134
122
  className={ cn(
135
- badgeVariants({ variant, size }),
123
+ BASE_CLASSES,
124
+ SIZE_CLASSES[size],
136
125
  COLOR_PALETTE_CLASSES[colorPalette],
137
126
  className,
138
127
  ) }