@eveshipfit/ui-ingame 1.0.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/style.css ADDED
@@ -0,0 +1,313 @@
1
+ .kwi1cG_dialog {
2
+ background: var(--esf-surface);
3
+ border: 1px solid var(--esf-border);
4
+ border-radius: var(--esf-radius);
5
+ color: var(--esf-text);
6
+ font-family: var(--esf-font);
7
+ font-size: var(--esf-font-size);
8
+ max-width: min(640px, 90vw);
9
+ padding: 0;
10
+ }
11
+
12
+ .kwi1cG_dialog::backdrop {
13
+ background: #0009;
14
+ }
15
+
16
+ .kwi1cG_header {
17
+ background: var(--esf-surface-raised);
18
+ border-bottom: 1px solid var(--esf-border);
19
+ align-items: center;
20
+ padding: 6px 10px;
21
+ display: flex;
22
+ }
23
+
24
+ .kwi1cG_title {
25
+ flex: 1;
26
+ margin: 0;
27
+ font-size: 1em;
28
+ font-weight: 600;
29
+ }
30
+
31
+ .kwi1cG_close {
32
+ color: var(--esf-text-muted);
33
+ cursor: pointer;
34
+ background: none;
35
+ border: none;
36
+ font-size: 1.4em;
37
+ line-height: 1;
38
+ }
39
+
40
+ .kwi1cG_close:hover {
41
+ color: var(--esf-text);
42
+ }
43
+
44
+ .kwi1cG_content {
45
+ padding: 10px;
46
+ }
47
+ .a4KCwW_icon {
48
+ height: var(--size);
49
+ isolation: isolate;
50
+ width: var(--size);
51
+ flex: none;
52
+ display: inline-block;
53
+ position: relative;
54
+ }
55
+
56
+ .a4KCwW_icon > img {
57
+ width: 100%;
58
+ position: absolute;
59
+ top: 0;
60
+ left: 0;
61
+ }
62
+
63
+ .a4KCwW_icon > img[data-additive] {
64
+ mix-blend-mode: plus-lighter;
65
+ }
66
+
67
+ .a4KCwW_icon > .a4KCwW_marker {
68
+ width: 25%;
69
+ }
70
+ .ZoSRha_tree, .ZoSRha_group {
71
+ margin: 0;
72
+ padding: 0;
73
+ list-style: none;
74
+ }
75
+
76
+ .ZoSRha_group {
77
+ padding-left: 16px;
78
+ }
79
+
80
+ .ZoSRha_row {
81
+ color: inherit;
82
+ cursor: pointer;
83
+ font: inherit;
84
+ text-align: left;
85
+ user-select: none;
86
+ background: none;
87
+ border: none;
88
+ align-items: center;
89
+ gap: 6px;
90
+ width: 100%;
91
+ min-height: 24px;
92
+ padding: 2px 6px;
93
+ display: flex;
94
+ }
95
+
96
+ .ZoSRha_row:hover, .ZoSRha_row:focus-visible {
97
+ background: var(--esf-hover);
98
+ outline: none;
99
+ }
100
+
101
+ .ZoSRha_chevron {
102
+ color: var(--esf-text-muted);
103
+ flex: none;
104
+ }
105
+
106
+ [aria-expanded="true"] > .ZoSRha_chevron {
107
+ transform: rotate(90deg);
108
+ }
109
+
110
+ .ZoSRha_label {
111
+ text-overflow: ellipsis;
112
+ white-space: nowrap;
113
+ flex: 1;
114
+ overflow: hidden;
115
+ }
116
+ .CUz0fa_icon {
117
+ flex: none;
118
+ }
119
+ .LIeaFq_wheel {
120
+ --wheel-unit: calc(100cqw / 464);
121
+ --wheel-texture-size: calc(519 * var(--wheel-unit));
122
+ aspect-ratio: 1;
123
+ isolation: isolate;
124
+ width: var(--esf-wheel-size);
125
+ position: relative;
126
+ container-type: inline-size;
127
+ }
128
+
129
+ .LIeaFq_rings, .LIeaFq_edges, .LIeaFq_scales {
130
+ background: var(--texture) center / 100% 100%;
131
+ height: var(--wheel-texture-size);
132
+ left: calc(50% - var(--wheel-texture-size) / 2);
133
+ pointer-events: none;
134
+ top: calc(50% - var(--wheel-texture-size) / 2);
135
+ width: var(--wheel-texture-size);
136
+ position: absolute;
137
+ }
138
+
139
+ .LIeaFq_edges {
140
+ background-blend-mode: multiply;
141
+ filter: grayscale() brightness(3.5);
142
+ mask: var(--texture) center / 100% 100%;
143
+ mix-blend-mode: plus-lighter;
144
+ background-color: red;
145
+ }
146
+
147
+ .LIeaFq_scales {
148
+ opacity: .6;
149
+ }
150
+ .oAgQCG_marker {
151
+ height: calc(16 * var(--wheel-unit));
152
+ pointer-events: none;
153
+ width: calc(16 * var(--wheel-unit));
154
+ position: absolute;
155
+ transform: translate(-50%, -50%);
156
+ }
157
+ .T6VD6G_slot {
158
+ --colour: var(--esf-state-online);
159
+ --reach: calc((var(--slot-centre) + var(--slot-size) / 2) * var(--wheel-unit));
160
+ clip-path: polygon(14.9% 1%, 85.1% 1%, 79.7% 85.9%, 20.3% 85.9%);
161
+ height: calc(var(--slot-size) * var(--wheel-unit));
162
+ left: calc(50% - var(--slot-size) / 2 * var(--wheel-unit));
163
+ top: calc(50% - var(--reach));
164
+ transform: rotate(var(--angle));
165
+ transform-origin: 50% var(--reach);
166
+ user-select: none;
167
+ width: calc(var(--slot-size) * var(--wheel-unit));
168
+ position: absolute;
169
+ }
170
+
171
+ .T6VD6G_fill, .T6VD6G_frame {
172
+ background: var(--colour);
173
+ mask: var(--texture) center / 100% 100%;
174
+ position: absolute;
175
+ inset: 0;
176
+ }
177
+
178
+ .T6VD6G_fill {
179
+ opacity: .15;
180
+ }
181
+
182
+ .T6VD6G_ammo {
183
+ --length: calc(8.6 * var(--wheel-unit));
184
+ --thickness: calc(3.6 * var(--wheel-unit));
185
+ --out: calc(214.5 * var(--wheel-unit) + var(--thickness) / 2);
186
+ border: calc(.7 * var(--wheel-unit)) solid var(--esf-text-muted);
187
+ border-radius: calc(var(--thickness) / 2);
188
+ box-sizing: border-box;
189
+ height: var(--thickness);
190
+ left: calc(50% - var(--length) / 2);
191
+ opacity: .6;
192
+ top: calc(var(--reach) - var(--out));
193
+ transform: rotate(var(--offset));
194
+ transform-origin: 50% var(--out);
195
+ width: var(--length);
196
+ position: absolute;
197
+ }
198
+
199
+ .T6VD6G_ammo[data-loaded] {
200
+ background: var(--esf-text);
201
+ border-color: var(--esf-text);
202
+ opacity: 1;
203
+ }
204
+
205
+ .T6VD6G_icon, .T6VD6G_empty {
206
+ left: 50%;
207
+ top: calc((var(--slot-size) / 2 - var(--slot-icon-centre) + var(--slot-centre)) * var(--wheel-unit));
208
+ position: absolute;
209
+ translate: -50% -50%;
210
+ }
211
+
212
+ .T6VD6G_icon {
213
+ height: calc(32 * var(--wheel-unit));
214
+ transform: rotate(calc(-1 * var(--angle)));
215
+ width: calc(32 * var(--wheel-unit));
216
+ }
217
+
218
+ .T6VD6G_icon > span {
219
+ width: 100%;
220
+ height: 100%;
221
+ display: block;
222
+ }
223
+
224
+ .T6VD6G_empty {
225
+ height: calc(16 * var(--wheel-unit));
226
+ width: calc(16 * var(--wheel-unit));
227
+ }
228
+
229
+ .T6VD6G_empty > img {
230
+ width: 100%;
231
+ height: 100%;
232
+ display: block;
233
+ }
234
+
235
+ .T6VD6G_slot[data-state="empty"] > .T6VD6G_frame {
236
+ opacity: .75;
237
+ }
238
+
239
+ .T6VD6G_slot[data-state="active"] {
240
+ --colour: var(--esf-state-active);
241
+ }
242
+
243
+ .T6VD6G_slot[data-state="overload"] {
244
+ --colour: var(--esf-state-overload);
245
+ }
246
+
247
+ .T6VD6G_slot[data-state="offline"] {
248
+ opacity: .3;
249
+ }
250
+
251
+ .T6VD6G_slot[data-state="unavailable"] {
252
+ opacity: .1;
253
+ }
254
+
255
+ .T6VD6G_slot[data-preview] > .T6VD6G_icon {
256
+ filter: sepia() hue-rotate(190deg) saturate(200%);
257
+ }
258
+ ._-v7zG_dots {
259
+ pointer-events: none;
260
+ position: absolute;
261
+ inset: 0;
262
+ }
263
+
264
+ ._-v7zG_icon, ._-v7zG_dot {
265
+ height: calc(13 * var(--wheel-unit));
266
+ pointer-events: none;
267
+ width: calc(13 * var(--wheel-unit));
268
+ position: absolute;
269
+ transform: translate(-50%, -50%);
270
+ }
271
+
272
+ ._-v7zG_icon > img {
273
+ width: 100%;
274
+ height: 100%;
275
+ display: block;
276
+ }
277
+ .pLDZ2W_gauge {
278
+ --colour: var(--esf-cpu);
279
+ background: var(--colour);
280
+ height: var(--wheel-texture-size);
281
+ left: calc(50% - var(--wheel-texture-size) / 2);
282
+ mask: var(--texture) 100% 100% / 50% 50% no-repeat,
283
+ var(--used);
284
+ pointer-events: none;
285
+ top: calc(50% - var(--wheel-texture-size) / 2);
286
+ transform: var(--turn);
287
+ width: var(--wheel-texture-size);
288
+ position: absolute;
289
+ mask-composite: intersect;
290
+ }
291
+
292
+ .pLDZ2W_gauge[data-resource="powergrid"] {
293
+ --colour: var(--esf-powergrid);
294
+ }
295
+
296
+ .pLDZ2W_gauge[data-resource="calibration"] {
297
+ --colour: var(--esf-calibration);
298
+ }
299
+
300
+ .pLDZ2W_gauge[data-over] {
301
+ --colour: var(--esf-state-overload);
302
+ }
303
+ .zDAPCG_hull {
304
+ opacity: .8;
305
+ pointer-events: none;
306
+ z-index: -1;
307
+ border-radius: 50%;
308
+ width: 94%;
309
+ height: 94%;
310
+ position: absolute;
311
+ top: 3%;
312
+ left: 3%;
313
+ }
package/dist/theme.css ADDED
@@ -0,0 +1,23 @@
1
+ /* Every colour and size the components use; override any of these to restyle. */
2
+ :root {
3
+ --esf-font: system-ui, -apple-system, "Segoe UI", sans-serif;
4
+ --esf-font-size: 13px;
5
+
6
+ --esf-bg: #0b0d0f;
7
+ --esf-surface: #16191c;
8
+ --esf-surface-raised: #1f2327;
9
+ --esf-hover: #2c3237;
10
+ --esf-border: #3a3f44;
11
+ --esf-text: #d8dde2;
12
+ --esf-text-muted: #8a9096;
13
+
14
+ --esf-state-online: #999999;
15
+ --esf-state-active: #8ae04a;
16
+ --esf-state-overload: #fd2d2d;
17
+ --esf-cpu: #2a504f;
18
+ --esf-powergrid: #541208;
19
+ --esf-calibration: #3d4547;
20
+
21
+ --esf-wheel-size: 480px;
22
+ --esf-radius: 4px;
23
+ }
package/package.json ADDED
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "@eveshipfit/ui-ingame",
3
+ "version": "1.0.0",
4
+ "description": "EVE Online ship fitting UI that looks like the in-game one",
5
+ "license": "MIT",
6
+ "author": "EVEShipFit Team <info@eveship.fit>",
7
+ "repository": {
8
+ "type": "git",
9
+ "url": "git+https://github.com/EVEShipFit/eveship.fit.git",
10
+ "directory": "packages/ui-ingame"
11
+ },
12
+ "files": [
13
+ "dist"
14
+ ],
15
+ "type": "module",
16
+ "sideEffects": [
17
+ "**/*.css"
18
+ ],
19
+ "exports": {
20
+ ".": {
21
+ "types": "./dist/index.d.mts",
22
+ "default": "./dist/index.mjs"
23
+ },
24
+ "./theme.css": "./dist/theme.css"
25
+ },
26
+ "publishConfig": {
27
+ "access": "public"
28
+ },
29
+ "dependencies": {
30
+ "@eveshipfit/react-hooks": "1.1.0"
31
+ },
32
+ "devDependencies": {
33
+ "@babel/core": "^7.29.0",
34
+ "@eveshipfit/images": "^1.3542233.1",
35
+ "@rolldown/plugin-babel": "^0.2.4",
36
+ "@storybook/react-vite": "^10.6.0",
37
+ "@tsdown/css": "^0.23.0",
38
+ "@types/react": "^19.3.0",
39
+ "@types/react-dom": "^19.3.0",
40
+ "babel-plugin-react-compiler": "^1.0.0",
41
+ "react": "^19.3.0",
42
+ "react-dom": "^19.3.0",
43
+ "storybook": "^10.6.0",
44
+ "tsdown": "^0.23.0",
45
+ "vite": "^8.3.0"
46
+ },
47
+ "peerDependencies": {
48
+ "@eveshipfit/images": "^1.3542233.1",
49
+ "react": "^19.0.0",
50
+ "react-dom": "^19.0.0"
51
+ },
52
+ "scripts": {
53
+ "build": "tsdown"
54
+ }
55
+ }