@xsolla/xui-icons 0.148.0 → 0.148.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/README.md +226 -0
- package/package.json +2 -2
package/README.md
ADDED
|
@@ -0,0 +1,226 @@
|
|
|
1
|
+
# Icons
|
|
2
|
+
|
|
3
|
+
A cross-platform React icon component library based on Lucide icons. Provides theme-aware icons that automatically adapt to the current theme colors.
|
|
4
|
+
|
|
5
|
+
## Installation
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install @xsolla/xui-icons
|
|
9
|
+
# or
|
|
10
|
+
yarn add @xsolla/xui-icons
|
|
11
|
+
```
|
|
12
|
+
|
|
13
|
+
## Demo
|
|
14
|
+
|
|
15
|
+
### Basic Usage
|
|
16
|
+
|
|
17
|
+
Icons are exported as named components. Import and use them directly:
|
|
18
|
+
|
|
19
|
+
```tsx
|
|
20
|
+
import * as React from 'react';
|
|
21
|
+
import { Home, Settings, User, Search } from '@xsolla/xui-icons';
|
|
22
|
+
|
|
23
|
+
export default function BasicIcons() {
|
|
24
|
+
return (
|
|
25
|
+
<div style={{ display: 'flex', gap: 16 }}>
|
|
26
|
+
<Home />
|
|
27
|
+
<Settings />
|
|
28
|
+
<User />
|
|
29
|
+
<Search />
|
|
30
|
+
</div>
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
### Icon Sizes
|
|
36
|
+
|
|
37
|
+
```tsx
|
|
38
|
+
import * as React from 'react';
|
|
39
|
+
import { Bell } from '@xsolla/xui-icons';
|
|
40
|
+
|
|
41
|
+
export default function IconSizes() {
|
|
42
|
+
return (
|
|
43
|
+
<div style={{ display: 'flex', gap: 16, alignItems: 'center' }}>
|
|
44
|
+
<Bell size={12} />
|
|
45
|
+
<Bell size={16} />
|
|
46
|
+
<Bell size={20} />
|
|
47
|
+
<Bell size={24} />
|
|
48
|
+
<Bell size={32} />
|
|
49
|
+
</div>
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
### Custom Colors
|
|
55
|
+
|
|
56
|
+
```tsx
|
|
57
|
+
import * as React from 'react';
|
|
58
|
+
import { Check, AlertCircle, X } from '@xsolla/xui-icons';
|
|
59
|
+
|
|
60
|
+
export default function ColoredIcons() {
|
|
61
|
+
return (
|
|
62
|
+
<div style={{ display: 'flex', gap: 16 }}>
|
|
63
|
+
<Check color="#2ecc71" />
|
|
64
|
+
<AlertCircle color="#f39c12" />
|
|
65
|
+
<X color="#e74c3c" />
|
|
66
|
+
</div>
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
## Anatomy
|
|
72
|
+
|
|
73
|
+
Import icons as named exports and use them as components:
|
|
74
|
+
|
|
75
|
+
```jsx
|
|
76
|
+
import { Home, Settings, Check } from '@xsolla/xui-icons';
|
|
77
|
+
|
|
78
|
+
<Home
|
|
79
|
+
size={24} // Size in pixels (default: 24)
|
|
80
|
+
color="#color" // Custom color (uses theme default if not specified)
|
|
81
|
+
/>
|
|
82
|
+
```
|
|
83
|
+
|
|
84
|
+
## Examples
|
|
85
|
+
|
|
86
|
+
### Navigation Icons
|
|
87
|
+
|
|
88
|
+
```tsx
|
|
89
|
+
import * as React from 'react';
|
|
90
|
+
import { ArrowLeft, ArrowRight, Menu, X } from '@xsolla/xui-icons';
|
|
91
|
+
|
|
92
|
+
export default function NavigationIcons() {
|
|
93
|
+
return (
|
|
94
|
+
<div style={{ display: 'flex', gap: 16 }}>
|
|
95
|
+
<ArrowLeft />
|
|
96
|
+
<ArrowRight />
|
|
97
|
+
<Menu />
|
|
98
|
+
<X />
|
|
99
|
+
</div>
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### Action Icons
|
|
105
|
+
|
|
106
|
+
```tsx
|
|
107
|
+
import * as React from 'react';
|
|
108
|
+
import { Check, X, Minus, Copy } from '@xsolla/xui-icons';
|
|
109
|
+
|
|
110
|
+
export default function ActionIcons() {
|
|
111
|
+
return (
|
|
112
|
+
<div style={{ display: 'flex', gap: 16 }}>
|
|
113
|
+
<Check />
|
|
114
|
+
<X />
|
|
115
|
+
<Minus />
|
|
116
|
+
<Copy />
|
|
117
|
+
</div>
|
|
118
|
+
);
|
|
119
|
+
}
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
### Status Icons
|
|
123
|
+
|
|
124
|
+
```tsx
|
|
125
|
+
import * as React from 'react';
|
|
126
|
+
import { Check, AlertCircle } from '@xsolla/xui-icons';
|
|
127
|
+
|
|
128
|
+
export default function StatusIcons() {
|
|
129
|
+
return (
|
|
130
|
+
<div style={{ display: 'flex', gap: 16 }}>
|
|
131
|
+
<Check color="#2ecc71" />
|
|
132
|
+
<AlertCircle color="#f39c12" />
|
|
133
|
+
</div>
|
|
134
|
+
);
|
|
135
|
+
}
|
|
136
|
+
```
|
|
137
|
+
|
|
138
|
+
### With Button
|
|
139
|
+
|
|
140
|
+
```tsx
|
|
141
|
+
import * as React from 'react';
|
|
142
|
+
import { ArrowRight, ArrowLeft } from '@xsolla/xui-icons';
|
|
143
|
+
import { Button } from '@xsolla/xui-button';
|
|
144
|
+
|
|
145
|
+
export default function IconWithButton() {
|
|
146
|
+
return (
|
|
147
|
+
<div style={{ display: 'flex', gap: 16 }}>
|
|
148
|
+
<Button iconLeft={<ArrowLeft />}>Back</Button>
|
|
149
|
+
<Button iconRight={<ArrowRight />}>Continue</Button>
|
|
150
|
+
</div>
|
|
151
|
+
);
|
|
152
|
+
}
|
|
153
|
+
```
|
|
154
|
+
|
|
155
|
+
## API Reference
|
|
156
|
+
|
|
157
|
+
### Icon Components
|
|
158
|
+
|
|
159
|
+
Each icon is exported as a named component with the following props:
|
|
160
|
+
|
|
161
|
+
**Icon Props:**
|
|
162
|
+
|
|
163
|
+
| Prop | Type | Default | Description |
|
|
164
|
+
| :--- | :--- | :------ | :---------- |
|
|
165
|
+
| size | `number` | `24` | Icon size in pixels. |
|
|
166
|
+
| color | `string` | Theme default | Icon color. |
|
|
167
|
+
|
|
168
|
+
## Available Icons
|
|
169
|
+
|
|
170
|
+
The `@xsolla/xui-icons` package exports a curated set of commonly used icons:
|
|
171
|
+
|
|
172
|
+
- `Check` - Checkmark icon
|
|
173
|
+
- `X` - Close/remove icon
|
|
174
|
+
- `Copy` - Copy to clipboard icon
|
|
175
|
+
- `Eye` - Visibility on icon
|
|
176
|
+
- `EyeOff` - Visibility off icon
|
|
177
|
+
- `ArrowLeft` - Left arrow icon
|
|
178
|
+
- `ArrowRight` - Right arrow icon
|
|
179
|
+
- `Settings` - Settings/gear icon
|
|
180
|
+
- `Minus` - Minus/subtract icon
|
|
181
|
+
- `AlertCircle` - Alert/warning circle icon
|
|
182
|
+
- `CreditCard` - Credit card icon
|
|
183
|
+
- `Menu` - Hamburger menu icon
|
|
184
|
+
- `Bell` - Notification bell icon
|
|
185
|
+
- `User` - User profile icon
|
|
186
|
+
- `Search` - Search/magnifying glass icon
|
|
187
|
+
- `Home` - Home icon
|
|
188
|
+
- `ShoppingCart` - Shopping cart icon
|
|
189
|
+
- `Upload` - Upload icon
|
|
190
|
+
- `File` - File icon
|
|
191
|
+
|
|
192
|
+
### Extended Icon Sets
|
|
193
|
+
|
|
194
|
+
For additional icons, use the specialized icon packages:
|
|
195
|
+
|
|
196
|
+
- **`@xsolla/xui-icons-base`** - Comprehensive icon library with 400+ icons organized by category (controls, communication, files, finance, etc.)
|
|
197
|
+
- **`@xsolla/xui-icons-brand`** - Brand and company logos (160+ brands)
|
|
198
|
+
- **`@xsolla/xui-icons-flag`** - Country flag icons
|
|
199
|
+
- **`@xsolla/xui-icons-payment`** - Payment method icons
|
|
200
|
+
- **`@xsolla/xui-icons-currency`** - Currency icons
|
|
201
|
+
- **`@xsolla/xui-icons-product`** - Product-specific icons
|
|
202
|
+
|
|
203
|
+
### Using icons-base
|
|
204
|
+
|
|
205
|
+
```tsx
|
|
206
|
+
import { ChevronDown, ChevronUp, Calendar, Clock } from '@xsolla/xui-icons-base';
|
|
207
|
+
|
|
208
|
+
// Use like any other icon
|
|
209
|
+
<ChevronDown size={16} />
|
|
210
|
+
<Calendar color="#333" />
|
|
211
|
+
```
|
|
212
|
+
|
|
213
|
+
## Theming
|
|
214
|
+
|
|
215
|
+
Icons use the design system theme for default color:
|
|
216
|
+
|
|
217
|
+
```typescript
|
|
218
|
+
// Default color from theme
|
|
219
|
+
theme.colors.content.primary // Default icon color
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
## Accessibility
|
|
223
|
+
|
|
224
|
+
- Icons are decorative by default (`aria-hidden="true"`)
|
|
225
|
+
- When using icons alone without text, provide an `aria-label` on the parent element
|
|
226
|
+
- For icon buttons, use the `IconButton` component which requires `aria-label`
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@xsolla/xui-icons",
|
|
3
|
-
"version": "0.148.
|
|
3
|
+
"version": "0.148.2",
|
|
4
4
|
"main": "./web/index.js",
|
|
5
5
|
"types": "./web/index.d.ts",
|
|
6
6
|
"scripts": {
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
"build:native": "PLATFORM=native tsup"
|
|
10
10
|
},
|
|
11
11
|
"dependencies": {
|
|
12
|
-
"@xsolla/xui-primitives-core": "0.148.
|
|
12
|
+
"@xsolla/xui-primitives-core": "0.148.2",
|
|
13
13
|
"lucide-react": "^0.470.0"
|
|
14
14
|
},
|
|
15
15
|
"peerDependencies": {
|