@xsolla/xui-icons 0.148.0 → 0.148.1

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 (2) hide show
  1. package/README.md +226 -0
  2. 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.0",
3
+ "version": "0.148.1",
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.0",
12
+ "@xsolla/xui-primitives-core": "0.148.1",
13
13
  "lucide-react": "^0.470.0"
14
14
  },
15
15
  "peerDependencies": {