@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.
- package/dist/alert.cjs +184 -335
- package/dist/alert.js +184 -335
- package/dist/badge.cjs +162 -321
- package/dist/badge.d.cts +3 -7
- package/dist/badge.d.ts +3 -7
- package/dist/badge.js +162 -320
- package/dist/bank.d.cts +1 -1
- package/dist/bank.d.ts +1 -1
- package/dist/button.cjs +373 -484
- package/dist/button.d.cts +10 -7
- package/dist/button.d.ts +10 -7
- package/dist/button.js +373 -484
- package/dist/close-button.cjs +37 -18
- package/dist/close-button.d.cts +1 -1
- package/dist/close-button.d.ts +1 -1
- package/dist/close-button.js +37 -18
- package/dist/collapsible.cjs +125 -272
- package/dist/collapsible.js +125 -272
- package/dist/dialog.cjs +60 -44
- package/dist/dialog.d.cts +7 -8
- package/dist/dialog.d.ts +7 -8
- package/dist/dialog.js +60 -43
- package/dist/drawer.cjs +37 -13
- package/dist/drawer.js +37 -13
- package/dist/heading.cjs +3 -8
- package/dist/heading.js +3 -8
- package/dist/icon-button.cjs +213 -337
- package/dist/icon-button.d.cts +4 -4
- package/dist/icon-button.d.ts +4 -4
- package/dist/icon-button.js +213 -338
- package/dist/image.cjs +125 -272
- package/dist/image.js +125 -272
- package/dist/index.cjs +695 -858
- package/dist/index.d.cts +0 -3
- package/dist/index.d.ts +0 -3
- package/dist/index.js +695 -856
- package/dist/input.cjs +25 -36
- package/dist/input.js +25 -36
- package/dist/link.cjs +125 -272
- package/dist/link.js +125 -272
- package/dist/popover.cjs +55 -40
- package/dist/popover.js +55 -39
- package/dist/select.cjs +125 -272
- package/dist/select.js +125 -272
- package/dist/skeleton.cjs +125 -272
- package/dist/skeleton.js +125 -272
- package/dist/table.cjs +127 -274
- package/dist/table.js +127 -274
- package/dist/tag.cjs +199 -341
- package/dist/tag.js +199 -340
- package/dist/textarea.cjs +25 -36
- package/dist/textarea.js +25 -36
- package/dist/tooltip.cjs +22 -21
- package/dist/tooltip.d.cts +2 -3
- package/dist/tooltip.d.ts +2 -3
- package/dist/tooltip.js +22 -20
- package/package.json +9 -8
- package/src/alert.tsx +23 -51
- package/src/badge.tsx +20 -31
- package/src/button.tsx +304 -238
- package/src/close-button.tsx +48 -22
- package/src/dialog.tsx +37 -47
- package/src/heading.tsx +8 -19
- package/src/icon-button.tsx +129 -104
- package/src/input.tsx +27 -36
- package/src/popover.tsx +30 -44
- package/src/skeleton.tsx +96 -144
- package/src/tag.tsx +17 -35
- package/src/textarea.tsx +27 -36
- 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
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
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 *
|
|
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) *
|
|
101
|
+
shimStyle.marginLeft = `${ (obj.base ?? obj.lg ?? 0) * S }px`;
|
|
114
102
|
} else {
|
|
115
|
-
shimStyle.marginLeft = typeof _ml === 'number' ? `${ _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 *
|
|
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
|
-
|
|
123
|
+
BASE_CLASSES,
|
|
124
|
+
SIZE_CLASSES[size],
|
|
136
125
|
COLOR_PALETTE_CLASSES[colorPalette],
|
|
137
126
|
className,
|
|
138
127
|
) }
|