@dava96/osrs-icons 1.0.15 → 1.0.16
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 +79 -0
- package/dist/cjs/applyCursors.d.ts +63 -0
- package/dist/cjs/applyCursors.js +82 -0
- package/dist/cjs/applyCursors_test.d.ts +1 -0
- package/dist/cjs/applyCursors_test.js +41 -0
- package/dist/cjs/flip.d.ts +33 -0
- package/dist/cjs/flip.js +79 -0
- package/dist/cjs/flip_test.d.ts +1 -0
- package/dist/cjs/flip_test.js +39 -0
- package/dist/cjs/index.d.ts +4 -0
- package/dist/cjs/index.js +6 -0
- package/dist/cjs/packs.d.ts +168 -0
- package/dist/cjs/packs.js +182 -0
- package/dist/cjs/packs_test.d.ts +1 -0
- package/dist/cjs/packs_test.js +110 -0
- package/dist/esm/applyCursors.d.ts +63 -0
- package/dist/esm/applyCursors.js +79 -0
- package/dist/esm/applyCursors_test.d.ts +1 -0
- package/dist/esm/applyCursors_test.js +36 -0
- package/dist/esm/flip.d.ts +33 -0
- package/dist/esm/flip.js +76 -0
- package/dist/esm/flip_test.d.ts +1 -0
- package/dist/esm/flip_test.js +34 -0
- package/dist/esm/index.d.ts +4 -0
- package/dist/esm/index.js +4 -0
- package/dist/esm/packs.d.ts +168 -0
- package/dist/esm/packs.js +179 -0
- package/dist/esm/packs_test.d.ts +1 -0
- package/dist/esm/packs_test.js +105 -0
- package/package.json +2 -2
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import assert from 'node:assert';
|
|
2
|
+
import { applyCursors } from './applyCursors';
|
|
3
|
+
// ── applyCursors tests (Node.js — no DOM) ──────────────────────────
|
|
4
|
+
function testApplyCursorsIsExported() {
|
|
5
|
+
assert.strictEqual(typeof applyCursors, 'function');
|
|
6
|
+
console.log('✓ applyCursors: is a function export');
|
|
7
|
+
}
|
|
8
|
+
function testApplyCursorsReturnsCleanupInNode() {
|
|
9
|
+
const cleanup = applyCursors({ default: 'test-cursor' });
|
|
10
|
+
assert.strictEqual(typeof cleanup, 'function', 'should return a cleanup function');
|
|
11
|
+
cleanup();
|
|
12
|
+
console.log('✓ applyCursors: returns no-op cleanup function in Node.js');
|
|
13
|
+
}
|
|
14
|
+
function testCursorStateTypeIsExported() {
|
|
15
|
+
const validStates = [
|
|
16
|
+
'default', 'pointer', 'wait', 'text', 'move',
|
|
17
|
+
'crosshair', 'grab', 'grabbing', 'not-allowed', 'help',
|
|
18
|
+
];
|
|
19
|
+
assert.ok(validStates.length > 0, 'CursorState type should compile');
|
|
20
|
+
console.log('✓ CursorState: type is exported and usable');
|
|
21
|
+
}
|
|
22
|
+
function testCursorMappingTypeAcceptsPartialStates() {
|
|
23
|
+
const mapping = {
|
|
24
|
+
default: 'cursor-a',
|
|
25
|
+
pointer: 'cursor-b',
|
|
26
|
+
};
|
|
27
|
+
assert.strictEqual(Object.keys(mapping).length, 2);
|
|
28
|
+
console.log('✓ CursorMapping: accepts partial state mappings');
|
|
29
|
+
}
|
|
30
|
+
// ── Runner ─────────────────────────────────────────────────────────
|
|
31
|
+
console.log('\nRunning applyCursors tests...\n');
|
|
32
|
+
testApplyCursorsIsExported();
|
|
33
|
+
testApplyCursorsReturnsCleanupInNode();
|
|
34
|
+
testCursorStateTypeIsExported();
|
|
35
|
+
testCursorMappingTypeAcceptsPartialStates();
|
|
36
|
+
console.log('\nAll applyCursors tests passed!\n');
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Horizontally flips a CSS cursor icon so it points in the opposite direction.
|
|
3
|
+
*
|
|
4
|
+
* Many OSRS inventory icons face right, but cursor conventions typically
|
|
5
|
+
* expect left-facing images. This helper mirrors the embedded base64 PNG
|
|
6
|
+
* using the Canvas API and returns a new, ready-to-use CSS cursor string.
|
|
7
|
+
*
|
|
8
|
+
* Results are cached internally — flipping the same icon twice returns
|
|
9
|
+
* the cached value instantly.
|
|
10
|
+
*
|
|
11
|
+
* **Browser-only** — requires the Canvas API. In non-browser environments
|
|
12
|
+
* (Node.js, SSR) the original cursor string is returned unchanged.
|
|
13
|
+
*
|
|
14
|
+
* @param cursorValue - A CSS cursor string (e.g. `url('data:image/png;base64,...'), auto`).
|
|
15
|
+
* @returns A promise that resolves to a new cursor string with the image flipped.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```ts
|
|
19
|
+
* import { abyssalWhip, flipCursor } from '@dava96/osrs-icons';
|
|
20
|
+
*
|
|
21
|
+
* const leftFacingWhip = await flipCursor(abyssalWhip);
|
|
22
|
+
* document.body.style.cursor = leftFacingWhip;
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```ts
|
|
27
|
+
* import { dragonDaggerPack, flipCursor } from '@dava96/osrs-icons';
|
|
28
|
+
*
|
|
29
|
+
* // Flip an entire pack
|
|
30
|
+
* const flippedDagger = await flipCursor(dragonDaggerPack.base);
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export declare function flipCursor(cursorValue: string): Promise<string>;
|
package/dist/esm/flip.js
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Horizontally flips a CSS cursor icon so it points in the opposite direction.
|
|
3
|
+
*
|
|
4
|
+
* Many OSRS inventory icons face right, but cursor conventions typically
|
|
5
|
+
* expect left-facing images. This helper mirrors the embedded base64 PNG
|
|
6
|
+
* using the Canvas API and returns a new, ready-to-use CSS cursor string.
|
|
7
|
+
*
|
|
8
|
+
* Results are cached internally — flipping the same icon twice returns
|
|
9
|
+
* the cached value instantly.
|
|
10
|
+
*
|
|
11
|
+
* **Browser-only** — requires the Canvas API. In non-browser environments
|
|
12
|
+
* (Node.js, SSR) the original cursor string is returned unchanged.
|
|
13
|
+
*
|
|
14
|
+
* @param cursorValue - A CSS cursor string (e.g. `url('data:image/png;base64,...'), auto`).
|
|
15
|
+
* @returns A promise that resolves to a new cursor string with the image flipped.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* ```ts
|
|
19
|
+
* import { abyssalWhip, flipCursor } from '@dava96/osrs-icons';
|
|
20
|
+
*
|
|
21
|
+
* const leftFacingWhip = await flipCursor(abyssalWhip);
|
|
22
|
+
* document.body.style.cursor = leftFacingWhip;
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```ts
|
|
27
|
+
* import { dragonDaggerPack, flipCursor } from '@dava96/osrs-icons';
|
|
28
|
+
*
|
|
29
|
+
* // Flip an entire pack
|
|
30
|
+
* const flippedDagger = await flipCursor(dragonDaggerPack.base);
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
export async function flipCursor(cursorValue) {
|
|
34
|
+
if (flipCache.has(cursorValue)) {
|
|
35
|
+
return flipCache.get(cursorValue);
|
|
36
|
+
}
|
|
37
|
+
if (typeof document === 'undefined') {
|
|
38
|
+
return cursorValue;
|
|
39
|
+
}
|
|
40
|
+
const dataUrlMatch = cursorValue.match(/url\('(.*?)'\)/);
|
|
41
|
+
if (!dataUrlMatch) {
|
|
42
|
+
return cursorValue;
|
|
43
|
+
}
|
|
44
|
+
const originalDataUrl = dataUrlMatch[1];
|
|
45
|
+
const flippedDataUrl = await mirrorImage(originalDataUrl);
|
|
46
|
+
const flippedCursor = cursorValue.replace(originalDataUrl, flippedDataUrl);
|
|
47
|
+
flipCache.set(cursorValue, flippedCursor);
|
|
48
|
+
return flippedCursor;
|
|
49
|
+
}
|
|
50
|
+
/** Internal cache to avoid re-processing the same icon. */
|
|
51
|
+
const flipCache = new Map();
|
|
52
|
+
/**
|
|
53
|
+
* Loads a data URL into an off-screen canvas, mirrors it horizontally,
|
|
54
|
+
* and returns the flipped image as a new data URL.
|
|
55
|
+
*/
|
|
56
|
+
function mirrorImage(dataUrl) {
|
|
57
|
+
return new Promise((resolve, reject) => {
|
|
58
|
+
const img = new Image();
|
|
59
|
+
img.onload = () => {
|
|
60
|
+
const canvas = document.createElement('canvas');
|
|
61
|
+
canvas.width = img.width;
|
|
62
|
+
canvas.height = img.height;
|
|
63
|
+
const ctx = canvas.getContext('2d');
|
|
64
|
+
if (!ctx) {
|
|
65
|
+
resolve(dataUrl);
|
|
66
|
+
return;
|
|
67
|
+
}
|
|
68
|
+
ctx.translate(canvas.width, 0);
|
|
69
|
+
ctx.scale(-1, 1);
|
|
70
|
+
ctx.drawImage(img, 0, 0);
|
|
71
|
+
resolve(canvas.toDataURL('image/png'));
|
|
72
|
+
};
|
|
73
|
+
img.onerror = () => reject(new Error('Failed to load cursor image for flipping'));
|
|
74
|
+
img.src = dataUrl;
|
|
75
|
+
});
|
|
76
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import assert from 'node:assert';
|
|
2
|
+
import { flipCursor } from './flip';
|
|
3
|
+
// ── flipCursor tests (Node.js — no Canvas API) ────────────────────
|
|
4
|
+
function testFlipCursorIsExported() {
|
|
5
|
+
assert.strictEqual(typeof flipCursor, 'function');
|
|
6
|
+
console.log('✓ flipCursor: is a function export');
|
|
7
|
+
}
|
|
8
|
+
async function testFlipCursorFallsBackInNode() {
|
|
9
|
+
const input = "url('data:image/png;base64,abc123'), auto";
|
|
10
|
+
const result = await flipCursor(input);
|
|
11
|
+
assert.strictEqual(result, input, 'should return original in non-browser environment');
|
|
12
|
+
console.log('✓ flipCursor: returns original value in Node.js (no Canvas)');
|
|
13
|
+
}
|
|
14
|
+
async function testFlipCursorHandlesPlainString() {
|
|
15
|
+
const input = 'not-a-cursor-value';
|
|
16
|
+
const result = await flipCursor(input);
|
|
17
|
+
assert.strictEqual(result, input, 'should return as-is when no url() pattern');
|
|
18
|
+
console.log('✓ flipCursor: returns plain strings unchanged');
|
|
19
|
+
}
|
|
20
|
+
async function testFlipCursorReturnsSamePromiseType() {
|
|
21
|
+
const input = "url('data:image/png;base64,test'), auto";
|
|
22
|
+
const result = flipCursor(input);
|
|
23
|
+
assert.ok(result instanceof Promise, 'should return a Promise');
|
|
24
|
+
console.log('✓ flipCursor: returns a Promise');
|
|
25
|
+
}
|
|
26
|
+
// ── Runner ─────────────────────────────────────────────────────────
|
|
27
|
+
console.log('\nRunning flip tests...\n');
|
|
28
|
+
testFlipCursorIsExported();
|
|
29
|
+
(async () => {
|
|
30
|
+
await testFlipCursorFallsBackInNode();
|
|
31
|
+
await testFlipCursorHandlesPlainString();
|
|
32
|
+
await testFlipCursorReturnsSamePromiseType();
|
|
33
|
+
console.log('\nAll flip tests passed!\n');
|
|
34
|
+
})();
|
package/dist/esm/index.d.ts
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
export * from './generated/icons';
|
|
2
2
|
export * from './generated/meta';
|
|
3
|
+
export * from './packs';
|
|
4
|
+
export * from './flip';
|
|
5
|
+
export * from './applyCursors';
|
|
6
|
+
export { redHerring as errorCursor } from './generated/icons';
|
|
3
7
|
/**
|
|
4
8
|
* Extracts the raw `data:image/png;base64,...` URL from one or more
|
|
5
9
|
* CSS cursor values.
|
package/dist/esm/index.js
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
export * from './generated/icons';
|
|
2
2
|
export * from './generated/meta';
|
|
3
|
+
export * from './packs';
|
|
4
|
+
export * from './flip';
|
|
5
|
+
export * from './applyCursors';
|
|
6
|
+
export { redHerring as errorCursor } from './generated/icons';
|
|
3
7
|
export function toDataUrl(input) {
|
|
4
8
|
if (typeof input === 'string') {
|
|
5
9
|
return extractUrl(input);
|
|
@@ -0,0 +1,168 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A cursor pack groups related OSRS icons by their in-game state.
|
|
3
|
+
*
|
|
4
|
+
* Each key is a semantic label (e.g. `raw`, `cooked`, `burnt`) and
|
|
5
|
+
* each value is the corresponding CSS cursor string, ready to apply
|
|
6
|
+
* to any element's `cursor` property.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```ts
|
|
10
|
+
* import { sharkPack } from '@dava96/osrs-icons';
|
|
11
|
+
*
|
|
12
|
+
* // Use the raw shark as the cursor
|
|
13
|
+
* document.body.style.cursor = sharkPack.raw;
|
|
14
|
+
*
|
|
15
|
+
* // Swap to the cooked variant on click
|
|
16
|
+
* button.addEventListener('click', () => {
|
|
17
|
+
* document.body.style.cursor = sharkPack.cooked;
|
|
18
|
+
* });
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Shark cursor pack — raw, cooked, and burnt states.
|
|
23
|
+
*
|
|
24
|
+
* @example
|
|
25
|
+
* ```ts
|
|
26
|
+
* import { sharkPack } from '@dava96/osrs-icons';
|
|
27
|
+
* element.style.cursor = sharkPack.cooked;
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
export declare const sharkPack: {
|
|
31
|
+
readonly raw: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAeCAMAAADn2eWTAAAAzFBMVEVMaXF/dnZ9dHSJgH93b26QhoZ7cnIAAAGYjo15cXCViomHfn2BeHhhWlpsZGRuZmZjXFt1bWxqYmKLgoFnYGCWjIuFfHuaj4+EenqdkpKNg4OPhYWTiIhza2tlXl1waWlUTU2bkJCkmZihlZVWUFA/Ojqjl5ZdV1eflJRCPT20qaivoqI8Nzc1MDBMRkZFQEBIQ0Omm5qpnp2vpKSrn58VERGonJtYUlK/tra7sbG3rKy5rq2yqKcyLi4kIiIsKipOSUg5NDRRSkpbVVU/eB25AAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAbVJREFUeNp109l2mzAQBmALJAYhmU3sa4ztxE2afenedHn/d8oIhYJ7kv/K5hvmaMbyajUGAFbvBgqnfb8AbEKD7i/AmyVQZVa7251g9vB/DeSNLcMwXL/m6vJxwVCmbYDxMbEfJCf7n0s9dTiGRhGl3KHB+ubHUrNCEssissiEEIT6fz7OCkqjY1mFqFiKB4zW188wz6PRcTFZ5TUKh//1e1aFyEfFpExJHn6YFOoKkRuzmevVtqRXlzApczg1Wog6dZtKkHA/KWu4nsScufJy7J1ZN0bB8xoaabUIIaCaXPcuQjMUeCmLIr0IyjlgJ3eTYm95bTTNWdQHQd/3bQv6e5l7zJadVnDzktHAjzG+Kd+ULrNJoIeCvDw80iBOujCcjnlAtfxPWsvtk+J+nITrs0k/G8WXYTvkNvfx1bN/6/nyjQkn3u1QTwf9MenW82a/nteCJz2Ww1DWGcfGM55/v78QNIs63TlVkibd4ge9v3i4e8qVE6NuPEWiZHkXHu5uByiZ7Ee1SXukt8MWn3sZ1SOhwtEl2x7GPSjH6NENh3JjVsbkuMvj6w/utBTx1l9nHm31AmvNJCtEE0JRAAAAAElFTkSuQmCC'), auto";
|
|
32
|
+
readonly cooked: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAeCAMAAADn2eWTAAAA/FBMVEVMaXGVe2WTeWOkh2+PdWCsj3WXfGYAAAFrUjyQd2J1YVCDa1ixkXdzXk2AaVaihW6Mc16bgGqafmeFbVqoi3J9Z1W3lny5mH17ZVKyk3mJcV14Y1GegmughGyvj3aniXG1lXqrjXN5XUVxVj9nVUZlUkN0WEK+nYFuVD28m4BQPSxXQjBbRTRdSDWHb1t2W0NMPTJ8YEa7mn5hSjfCoIRkTTlUQC5nUDpwXEyCZEl/YkiFZUpANSpcTD1WRjpIOjBSQzdOQDU/MCRDNCbBn4JMOioYEQ2HZ0yKak45LiYqIho0KiJiUUJYSTxDNy5eTkBrV0jGo4YVERFINyhtd8KWAAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAcpJREFUeNp102dzozAQBmADEmvRMc10DLjG3Y6dfrmUu+R6+f//5QQMMb5x3k+MHrGjXUSrVQYAWu8GZmeT9zfAZrp7fnwAOLkFzunLeZ73+/0l/L8HRvvNVCgil7m9+dRgyNqeIZZRFNHo9pdfmjpgCSFI8zREWIYY8t1rUwO9wzN8Rw9ClVN5JH77cFCIC2QZRlfNyO2FjCbff31j4Apk2zShKUlmwHo/fzSUIimVJolinQgfa4WeSZFUxuHExVwH3d5ArZglqFJd7bm2ZKq8sKwVRwQVrZSHNiXHxXHIfK8UJClCZaMMz/MQR7Yt9bhAqJoCKcEaDaIhQCsl6yQyVf2u0sTBmkEzn889ugLu2ikO5hcKtjPGyFAsS1GUarsztjHHi/dQPg//IFHp+oJfH3NIlRF/FTp++h0T0eoK8kWtLzZWGSWnE4Hh1uaIYvnCxdt4Pl9jlbXyB6pPWxyytLB8mOz1JVaJNXmkul2bAaGFD3h5dbVSyWb3t6jsxh1k+Y0PulqlaTo6P3um6kgc73WbdyFNFwvI9tPJSV0MBnS9PdsVLVGFo0uWZcUyLV3p0Q2HbFSNbD8tZ3l8/aFdD2V26tc5tNb6B4niLWTURBJwAAAAAElFTkSuQmCC'), auto";
|
|
33
|
+
readonly burnt: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAeCAMAAADn2eWTAAAAb1BMVEVMaXE8NzdYUlJbVVVIQ0NOSUhUTU0AAAFMRkZhWlpRSko/OjpCPT1dV1dWUFBFQEA1MDBlXl1jXFsoJiY5NDQkIiIsKipqYmJnYGAyLi5za2sgHR1sZGRuZmZwaWkVEREaGBh5cXB7cnJ1bWx3b25PGaM2AAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAVtJREFUeNp1k+16gyAMhRWQIygg1lbbteu+7v8al8BUuqc9f0ReTkxCrKokANVLQTfq9QF424ZuAJ4egSDzkHTA/zMw0tt61/l4LzBGp0LoV3XD4aOksWlJisTPUJ/eSqqtbUjWWq0pg/58RJkxQTJZ7YXkBEszUYaGZL2UXF1hhk9Ok+UE4fqArVixQy1cir2FhpCcb4KWqJNeN5sZUraplpS0lzn2CSuUuVAuCkwptq1zXpBOqFWg7zjDsW0ODWeEojYGFvh9NJxYjQxHoai5rHzcjI5oz2Zax7siSHeD7VKYDkzHuPhEp2mlX0Tbnq6aqaMlWaetPZ8/RLuBzIiRl90OK3xfeCtMTA3VTnSHl8v7TSutao4sqa0FrPB+u86z8W0PnindhK6chet1XjAKG57SeYm077TikoiWE4olxtQH32T6MOGI41//berl4/jDrE3Rz36dvbTqF468FMgJpWphAAAAAElFTkSuQmCC'), auto";
|
|
34
|
+
};
|
|
35
|
+
/**
|
|
36
|
+
* Herring cursor pack — raw, cooked, burnt, and the infamous red herring.
|
|
37
|
+
*
|
|
38
|
+
* The `error` alias points to `redHerring` — a fun easter egg for
|
|
39
|
+
* error states. Also available as the top-level `errorCursor` export.
|
|
40
|
+
*
|
|
41
|
+
* @example
|
|
42
|
+
* ```ts
|
|
43
|
+
* import { herringPack } from '@dava96/osrs-icons';
|
|
44
|
+
* element.style.cursor = herringPack.error; // 🐟 Red herring!
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
export declare const herringPack: {
|
|
48
|
+
readonly raw: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAWCAMAAAALimf+AAABC1BMVEVMaXGJgH+Ng4OTiIiLgoHa1NSvpKQAAAHLxMO6r6/d2Njk4eHDu7qVionW0M+QhoaWjIuHfn3NxsWsoKDUzs7h3dzo5eWPhYXQysqBeHiFfHuEenp9dHTOx8akmZjFvLzPyMja1tahlZXTzc2xpaXg29u7sbFnYGCbkJBuZmZ7cnJlXl1dV1eaj49waWl3b26voqKrn5/Gvr6jl5bKw8KyqKeYjo1hWlq/trbe2trl4uLv7e329fWmm5pWUFDRy8tCPT1MRkZ1bWydkpJYUlLHv7+2q6psZGS+tLRRSkqflJRqYmK8srLIwcHc19epnp23rKy5rq3r5+fj4ODs6enz8fHn4+P8+/vw7u6NwyjkAAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAQdJREFUeNp90WVTw0AQBuAoGyGephpPjbpRheLu/v9/CZdOGeg15P24z+zN7i1BJAeIlACdwkClKJBZKUWZFIUCo6j/KeQ1althnVJRo+h9wOzo+Pqs2bhtl4okpgCHzUb1st7u7OULmkYyDMCvVesnqEwylEJLasvpPkWPg7VDBz2WlVq105tg4DjG0PSG7uR5ZMBqO0WtBQc9o7sT5477GW+FQW9kRBd8pcLH4fSNaSHix/ee3HfdXRTdw1aZjG2ZtXUujp0LN1v7uskKGTMss7nzq6WJtYbIRMtnZ4hlGftAiO1tnilPBeHB93EVrZf5++JjJopTgK3LoNLX4tN6TaA/10mSbwIeHHHZ7IVWAAAAAElFTkSuQmCC'), auto";
|
|
49
|
+
readonly cooked: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAWCAMAAAALimf+AAAAulBMVEVMaXFqV1SQd3NvW1emiYV/aWVxXVoAAAGWfHiIcGxnVVJiUU1sWFZkUlCsjol2YV1eTkybgHudgn1zYFyjhoGyk41KPTqZfnmkh4N9Z2OghYCqjYeuj4pWSEW1lZC5mZO+oJs8MjBANTJGOjlNPz2fg35URUJRQkBcTEmKcm6EbWl7ZWJhWlqCa2aPdXGVe3a7nJbDp6I5LiwwKCYsJCKFb2uTeXR4Y2BaSUaNdHC3l5Goi4XBpJ7GrKggq2psAAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAOdJREFUeNp90elygjAUhmEogY9VISAU0Grdd2s3bbX3f1s9ATuViLw/zzOZOUkUpT4oDUFrYLjGfYXarNp9hd2gcEhDWXHJd2xXVuD97fV5OIpnvme7RkUBAfF4Nu3NfcfxPBv4t3hcjGmqqq7W1r+sTXpx9I6+2MQwwjaVmiziyW67WAqGR5cPD6tUL1qYf+sVuNpYqb78sMrMpLItrO06yNhDWRJIV9mtM5abZUnAq0fpXN7tcN5pRcEnn0hHhT31o+ibeJJJDwhhL4MTY+yRklXYed+iGHDzMzQa7H+6eQ1d/U6d/AKDWRNouCnhLwAAAABJRU5ErkJggg=='), auto";
|
|
50
|
+
readonly burnt: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAWCAMAAAALimf+AAAAeFBMVEVMaXE5NDQ/OjpUTU1FQEBCPT1hWloAAAFYUlJIQ0M8NzdOSUhbVVVlXl1MRkYyLi4sKipqYmJsZGRwaWlza2tdV1djXFskIiIoJiY1MDB3b25RSkp1bWx5cXB9dHQgHR0aGBhWUFBnYGCBeHh7cnIVERF/dnaEenpIDAZ3AAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAMVJREFUeNqd0dkWgiAUhWEcYqNBjlBpg2XD+79hB7JVGnnRf3k+z5IFjPkDmwnJDCOeUSz+VsLfitCnGEo9Cly77rheb3KryUgBC5s8z7Jt4ALeZudbmqdpGtLqSp6idnDYBTde0B/jRJSFMlyKk2UE7vuEWlGteB3PYRsJGi+HhBidFkJzVZTRswkycF6UlRiScryqzmVV76Ssq0LxCTJYa/ZaN8RaTy4Q1i4HY7hrqtZuvVLKGODrZWh06O9n5aGP1/HJAzprDYzLyS2fAAAAAElFTkSuQmCC'), auto";
|
|
51
|
+
readonly error: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB0AAAAWCAMAAAALimf+AAAA2FBMVEVMaXGUQ0mtUFa/TUWDPEDCTkaWRUoAAAGoTVSbSE2FPUKLQEWAOj+yUlhzNTmOQkZ2Nzp9OT26SkOIP0ORQ0i9TEO4SkKjTFHpcmvqfHXnZ2C0VFq2VVttMjVwNDd6OTyrTlW2SUDqeXKgSlDrgnznXVTulpGySEDobGPrhX91bWzsiILZV07pdW7gWlHSVUzXVk3LUknsi4WvUVftkYy5Vlzvn5pjLDBmLjJqMDSZRkyeSU7rf3jnYVfsjojeWlDpb2biW1HcWE7QVErnZFvVVk3wp6PumZVGDfX+AAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAOtJREFUeNp90elygkAQRtEBlW8CBjCgoixREbe4xqhJ3LLn/d8ojYUVHZH7s09NVU81Y+mBZYRcBqNcuK64y9bcdUUlQ9FMUyR1m5WyqMDq+cX3A928VMAPAl03zftSqVjMU8C/6TSOp6qqWpZmK8Pvz1niIMmrlqZphmHYtsSd3lc0/phOYkYshi1RCrXmx/UOOJsMJeX1Jonzs20x3Q+2PadKhWHIG8JX3gd1p8WTGvL504hs05bl2qgejQVkeGvV2g+7+bxPLAvIQPb41HFd9zZO1D7Z73LheZ4LXFyGRp3lz8JLoZPrpMkfUhEW8s27VDAAAAAASUVORK5CYII='), auto";
|
|
52
|
+
};
|
|
53
|
+
/**
|
|
54
|
+
* Anglerfish cursor pack — raw, cooked, and burnt states.
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```ts
|
|
58
|
+
* import { anglerfishPack } from '@dava96/osrs-icons';
|
|
59
|
+
* element.style.cursor = anglerfishPack.raw;
|
|
60
|
+
* ```
|
|
61
|
+
*/
|
|
62
|
+
export declare const anglerfishPack: {
|
|
63
|
+
readonly raw: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAeCAMAAAB61OwbAAABp1BMVEVMaXFGTCpKUCxbVypOVC5IRiBRVzAAAAFDSChDQh0/PR1GZ1FgWyw5ORo9XEgockpejG1ReF1jXSxKblVUUCZAXko8WEVVfWIkZ0M8PyQma0YgVzpMSCIyTDo6VkIuQzVMcFdmYS4/QyZwazQNGBEwSDdCYkw3PCJMSiIqdU0wiVpXVCgyjFwqeVAoPC45nWcgXDx9eGM3m2Zzb1w/rnI3UkA1Tj0iNCgaKiAmOSouLhVIQyBdZDkwhVhhZzp4c2BahWdkYVBbh2okZEIYQipNc1oJJBhdiWwmb0koLBgqQDJQTCRVWzQgLiQ5Nxo/PB1XXTUsfFJIa1SCfGY0kmAug1Z9djltZzJSe2B7dmKDjYetubJ2f3o0j154gXxQdVwaUDQiYD81lWIugFRiXU1/emUYRi5KSDpGQzlbYTdWgGQdVDcaSjARMCBxbVqPiXENKhoJGhGFgWsmJiBDPx1jk3NllXRYg2VDZU52cTduon8uMhp6dDlqZDBsoH1zbjW5wr3KxK1WVEXMxrE/sHRsdEJmbj27tZa/uZy7s5WqpIdnY1Kup4qE/T3jAAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAddJREFUeNp9k2dbo1AQhYEAhwBBiYIgphtTTE+sa++6vbm6vffeu24v+qP3grgxPEnOt3vP+8zMnblDUbZAtRVwH0Abe7EQCSnR/4QHxYXLsBXev8dgI4HzF+0L6BJc3+fJt3eCormAT5Z93U0qwoATApCDwVZAlMT+gqADgPK+CzgVXX79/vOyqqokx2HwfGMlwXMbM68+vttKJOZ6CMDzLNtQLGKJ9bmZN59iVkc2ljhBbIaJyb46gamJe6p6ZTHaS8SxRAwtD4oHgGp5lZEk6e32jXyGIwkYWhDEQKDe353Vr8K0GdavT/r9XNoB4n19qLcfpvkhldLUdJrzE3EcFyBacbv3F9gV4nEzJXQRxwb0UHh8/KUbAb/+AL9pklSImxJxRTFJnnjs+KF94MdP4BtNO4g2IIriyF7XXQCdte+1WqctdoLXFCXQj4NzpFAsVirFSg/R1BFGU/Qh7xRyZy7lctlsFxErMPpwvxcwJs+ezGcyHbaEoeSa1z9dLeVXeo35ecMwwkpkzBuAlIKr1yzrQalkDYdCR0eb/W8s3F54aBWSkUih6f/Hzbsvnj6rPno8NtJ8PTB7B1gqL02PtvA3Z+1pPQdutQDKTmefoOWOos0G/wOfdD9Z7Ze6gAAAAABJRU5ErkJggg=='), auto";
|
|
64
|
+
readonly cooked: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAeCAMAAAB61OwbAAABNVBMVEVMaXE/MA1FNBFdUDVQQyxbTTRUQh0AAAE8LAA1KABQPxpOPBFINQlJORFURi4dFQAuIgBXSTBbSio0JgksIglGNxhpUBpgTSxXQxU5LA1cRhVKPBpjUSxRPQlMQCpURSZgSRhSPxVMPSIkHQlXRSBIPShmVC5wXDQmHQBXSChCMABMOQl9eGNzb1xbQwlkVTk/NSRcSSBIOiA8MBV4c2BkTRhkYVBuXT1DOSYsJBhQQCRxYD9hUjc5LhqCfGY/Mh1tWDJ9ZjlsVBp7dmJ3XB1zWB1zXjV2YTdqVjC5wr16YznKxK1iXU1KSDpGQzlxbVqPiXGFgWsmJiB/emVnVzpDNx2DjYdrWzytubJ2f3o3Lh14gXzMxrFWVEV/bEhgSAm7tZZ2ZEO/uZy7s5WqpIdnY1Kup4pa0IZ9AAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAbJJREFUeNp9k3l7mkAQh1nA/aEgiICAWAPxTDzT3L3TJj1z9r7PpN//I3RAUiOP+v63O+8zMzu7KwgxEJYCVAEsCUe2bTH1v5FR8fELYtj1PtZmDbz/FG+AFZHGy5l6kxVEMRXKrltemdMRikkKwK3VFgiqSrlfoZYIELLnAtRo+/Hh0bbneVTjDiRptpPaIy+svHz2tNMJqyRIUi430yzanYMwDJ+3S4rW7owobJpttzw1sPvhredFUZQneI4wdXctuCEM+vtmkXixriicCpi6LAeOM53v1f43eavls57GC7yZCPXVVUzHj9be5/Ge6G1sNHmhUOCcO4SSTu8S+Fuv11tjWW02eSwwi21uvksz4Ocf4LdORckpUjgILDri/Ye3r4Xvv4Cvuh4rsigGgdOYTD0VUBn+GA4rMdLuPVFkjoGb9yjgVkKVuDsySWDZW9B6PY1QiZxsMt/ICnlNo+lMkH3LysYfDErrSn4CE207m4BaQTdfSvB9v9GY975hdLvdkm1Zlj33/eP49LVhDIwz257/PbBzAhh9Y6uxIP5kJ76tC+DNAqGfTPYcC/8olvzgfzmYLKgAoRgsAAAAAElFTkSuQmCC'), auto";
|
|
65
|
+
readonly burnt: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAeCAMAAAB61OwbAAAA5FBMVEVMaXEgHR0sKiowMDU1MDAoJiY8NzcAAAEuLgA1NQAyLi5FQEAkIiImJgA0OTQ3PDc5NDQ0NDlOSUgVEREwNTAuLjIqKiwaGBgqLCo/Ojo6PzpARUBMRkZCPT03NzwmKCZIQ0NCQAA8OgBzb1x9eGMdHQAiIiRbVVVDSENUTU09Qj14c2BkYVAuMi4dIB0iJCK5wr3KxK1GTEaCfGZ7dmJKSDpGQzliXU0mJiBxbVqPiXGFgWt/emWtubKDjYd2f3p4gXxITkjMxrFMTAm7tZZIRgm/uZy7s5WqpIdnY1JWVEWup4ptg9gsAAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAYVJREFUeNp9k+eawiAQRUMkuYRAijG61rVv7733/v7vs0PM6ppPPf/CPUxgAMsywFoJ0AWwIm4z5Uh3ahRU3D3CIP/GUZk3cP9gBiCjyTiCoPC/yRc4nwpBUFmwIkRZCSAMwyWC61Lto1yAVdwX4NbLWxsbZd/3ydiD582vJNz2W1vHm5vNZqtLgkfMLRaN5lOr1d1uMIc3mn2Te40wmBno9fvtdrted4g4y0VYSf8Jg+FIRMShtO1MEEKk1eqsv1+jb7GjbenyUinuZLleW8Os/dB6pDX3O524RMRxXCXsvHufwI/QhKhTYgTpyPF4Pa+A1w/gXRi0dilNU4e2uH8wFV7egGcxgUdpmrJJ13MBpnl+2eD1PM55NcH/c7TgZhir5wnOpSyeAo8imseNJYQn7aQoODTLzhG2o4r5yUBJ6q9SylG2VKxYgJYCplgGebXaovuNGsEYFWEL7z8uzi+TZJBcMbb4eWD3DEiGyU5tSX66a07rBrhdIgyzzl5j6RvFihf8C5EGHf38oNssAAAAAElFTkSuQmCC'), auto";
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Dragon dagger cursor pack — base through poisoned++ variants.
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```ts
|
|
72
|
+
* import { dragonDaggerPack } from '@dava96/osrs-icons';
|
|
73
|
+
*
|
|
74
|
+
* // Start with the base dagger
|
|
75
|
+
* element.style.cursor = dragonDaggerPack.base;
|
|
76
|
+
*
|
|
77
|
+
* // Upgrade to poisoned++
|
|
78
|
+
* element.style.cursor = dragonDaggerPack.poisonedPlusPlus;
|
|
79
|
+
* ```
|
|
80
|
+
*/
|
|
81
|
+
export declare const dragonDaggerPack: {
|
|
82
|
+
readonly base: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAaCAMAAACw0Z1uAAAAdVBMVEVMaXGEGg1WEQlREQlRSkppFQlkFQkAAAFWOgmAGg18Gg1gEQlbEQlwGA1tFQ1WUFBwTA1MDQlYUlI8NzdMRkaHGg1IQ0N4GA10GA1UTU1bVVVFQEBlXl1CDQBhWlpIDQk5NDQoJiZza2tjXFtCPT1OSUhdV1cz9zMQAAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAIVJREFUeNpV0McSwyAMBFBiyhKMsePu9P7/nxhyACRub1arGSQEeRBMhhmaEj4w1g0hpFkpK70U4uaDIzzUzT4Tl8qshDKGO+RRH4r+a10SAKndlDRuMMuUe8Oo+jiR+Bhm1V/P2fY+q/aYutba7tSW0HakGkP6MS71elJ+vuxC742fk+oHRxUGbUCEKNMAAAAASUVORK5CYII='), auto";
|
|
83
|
+
readonly poisoned: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAaCAMAAACw0Z1uAAAAolBMVEVMaXFwTA1YUlI8NzeEGg2AGg1WUFAAAAFWOglRSkppFQlMRkaHGg18Gg1IQ0NREQlWEQlkFQlUTU0RlRUVsRoVqxoVpRhbVVVFQEBlXl1hWlpbEQlMDQk5NDQoJiZ4GA1tFQ1CDQBgEQkNdBFwGA0NcBF0GA0RjhVza2sYyyARixVjXFsYxR0NhBVCPT1OSUhdV1cYvx0RohgVuh0RmxgVtxo1dBhZAAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAIxJREFUeNpV0EcWgzAMBFADgbHpPT2k917uf7WwsS1p9580C40QZCCYWmY0lKhqxu+PELf3h/LcviyxOzRXwk1Vnwyxyou9b5mtt/5AE7Pp0kogDxMtAFmYxFpRiaKLTc6LlNtfaC68VLmTsbGcpyoY6qyU0hkFdikdEu2X9DEudTlSPp6soXvJ66T6A66HCIAqDAySAAAAAElFTkSuQmCC'), auto";
|
|
84
|
+
readonly poisonedPlus: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAaCAMAAACw0Z1uAAAAolBMVEVMaXFwTA1YUlI8NzeEGg2AGg1WUFAAAAFWOglRSkppFQlMRkaHGg18Gg1IQ0NREQlWEQlkFQlUTU0RlRUVsRoVqxoVpRhbVVVFQEBlXl1hWlpbEQlMDQk5NDQoJiZ4GA1tFQ1CDQBgEQkNdBFwGA0NcBF0GA0RjhVza2sYyyARixVjXFsYxR0NhBVCPT1OSUhdV1cYvx0RohgVuh0RmxgVtxo1dBhZAAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAIxJREFUeNpV0EcWgzAMBFADgbHpPT2k917uf7WwsS1p9580C40QZCCYWmY0lKhqxu+PELf3h/LcviyxOzRXwk1Vnwyxyou9b5mtt/5AE7Pp0kogDxMtAFmYxFpRiaKLTc6LlNtfaC68VLmTsbGcpyoY6qyU0hkFdikdEu2X9DEudTlSPp6soXvJ66T6A66HCIAqDAySAAAAAElFTkSuQmCC'), auto";
|
|
85
|
+
readonly poisonedPlusPlus: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAaCAMAAACw0Z1uAAAAolBMVEVMaXFwTA1YUlI8NzeEGg2AGg1WUFAAAAFWOglRSkppFQlMRkaHGg18Gg1IQ0NREQlWEQlkFQlUTU0RlRUVsRoVqxoVpRhbVVVFQEBlXl1hWlpbEQlMDQk5NDQoJiZ4GA1tFQ1CDQBgEQkNdBFwGA0NcBF0GA0RjhVza2sYyyARixVjXFsYxR0NhBVCPT1OSUhdV1cYvx0RohgVuh0RmxgVtxo1dBhZAAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAIxJREFUeNpV0EcWgzAMBFADgbHpPT2k917uf7WwsS1p9580C40QZCCYWmY0lKhqxu+PELf3h/LcviyxOzRXwk1Vnwyxyou9b5mtt/5AE7Pp0kogDxMtAFmYxFpRiaKLTc6LlNtfaC68VLmTsbGcpyoY6qyU0hkFdikdEu2X9DEudTlSPp6soXvJ66T6A66HCIAqDAySAAAAAElFTkSuQmCC'), auto";
|
|
86
|
+
};
|
|
87
|
+
/**
|
|
88
|
+
* Gold ore/bar cursor pack — represents the smelting progression.
|
|
89
|
+
*
|
|
90
|
+
* @example
|
|
91
|
+
* ```ts
|
|
92
|
+
* import { goldPack } from '@dava96/osrs-icons';
|
|
93
|
+
* element.style.cursor = isComplete ? goldPack.bar : goldPack.ore;
|
|
94
|
+
* ```
|
|
95
|
+
*/
|
|
96
|
+
export declare const goldPack: {
|
|
97
|
+
readonly ore: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAcCAMAAAA3HE0QAAAAvVBMVEVMaXFhTjd/ZkhxWz9uWD1bSTR8ZEYAAAF5YkV2YEPIoxiHbUyCaUnFoBhdTDVkUTlnVDrLpRhXRjDTrBp0XUJUQy5rVjy6lxU/NCTVrhpMPSrQqRjCnhifgRGxkBWujhWFa0o8MCJDNyZQQCzNqBiihBGRdhG9mhi3lRWLcRGYfBGVeRE3LB1IOiirixW/nBiAZw2lhhVwWw2OdBEyKBqHbg3ashqbfxFtWA1kUQl4Yg10Xg2Eaw18ZQ2oiRU+gGzEAAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAaRJREFUeNp9k+eSozAQhEFIagSIHIwB4xw3714O7/9YK4nlynVre35R9Dc9QZJlnQUA61ZgmjIY7DKIZcEELGyP3emAiwZMCODp26aqjxcBpQt83272TfYM63Mh6Hw8dTOvaWZAGlPnf0J3uH1okyTZYcEcl6f4N95oiE3l6cCSCeKLAcDdYnI/XaVmxJmUUtMrRnw/GJLeipSFUah2gJfnDyuk1FcAN993BQvt2A4V8KefbYaskM/9OTH6YpEyO6KRrYDffbV7MH8dN/DnAzuZKIMyjyMFvPbS8/a6GSqCoQWlL1UBlRAr4NTLJsta6D0RfzBY3k9VAREEpfr7t0q+1lnSVhjWYk5gVdhxTgihCpjtkrpuvMezPUPNGFFOCNeLRSWzei3xcnjdjlvUHbqEc54b23adrfHj5+m4HgE7igTnrgpla8dIMuDXoWu9EYjLnA8qCrukuji+dJUnR4BSI+tu7NIxJ4yuT+Tj7mOKfJAtrJQuzPlhn8izMcZ5GXUEd3H1eiPUAL9+8WErgBDnKoGI5i4JbjjENOfB/MbbwsUn9Q5Gix6anIsZKQAAAABJRU5ErkJggg=='), auto";
|
|
98
|
+
readonly bar: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAWCAMAAADkSAzAAAAAFVBMVEVMaXF0Xg3dtBpbSgnYsBoAAAGxkBW1pwQ1AAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAGlJREFUeNp90ksSwCAIBUH8kPsfOQIaH0icndUFGyGCWKI8fqTczdQv1nucRhu57cGEv+2ZVV5WTps4TApmOE1CUwQrNyuHSYjbiFtr270pbve2cLkzQHM0/WF0Z9GjOa/5nZj/3ZA6vl8xFgYYbQNsWgAAAABJRU5ErkJggg=='), auto";
|
|
99
|
+
};
|
|
100
|
+
/**
|
|
101
|
+
* Iron ore/bar cursor pack — represents the smelting progression.
|
|
102
|
+
*
|
|
103
|
+
* @example
|
|
104
|
+
* ```ts
|
|
105
|
+
* import { ironPack } from '@dava96/osrs-icons';
|
|
106
|
+
* element.style.cursor = ironPack.ore;
|
|
107
|
+
* ```
|
|
108
|
+
*/
|
|
109
|
+
export declare const ironPack: {
|
|
110
|
+
readonly ore: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAcCAMAAAA3HE0QAAAAclBMVEVMaXFDKB1bSTQ0IBh5YkV2YENuWD0AAAFILCBMLiJhTjd8ZEY/Jh1/ZkhxWz85IhqHbUyCaUldTDVkUTlnVDpXRjB0XUJUQy5rVjxQMCQ/NCQoGBEuHRVMPSqFa0o8MCJDNyZQQCw3LB1IOigiFQ0yKBoPjeROAAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAXJJREFUeNp9k9mWwiAQRAMGKmwhe6Imxm3+/xenAXU8jtpPOalL9QZZ9hQAsm+BpeeI2HsQx5ELZNiEwFsDLgQwbzxT/i1AusB+461SFtn/RAjnMXtbKMWAvpPlKxEqDAmUKrDyMjc9Hu3dDeFZQaFw5MJVIgE4r7vLcupji5bkQJ+4q6o6HfoZe960Dc0AV3+zQi8rAkz8Po+80Z1uCNhbmzpEYw7VwUV9XXuuW9lqAmbLmI1/y7yuDond7chgGro2TDGUwEIxUtSpBNKPlIAOdAmITYY5uSoZHC8LJRB1PdFfywq1VQWLJrcel9Oou8E5J5+ApzmDemylcc6EwSIBtJHHQhEqzJ0xZoi2AcCVAHUHdNsKY3IKstUd1BbYz57meQO6aTBJxagnGZLTStkfIGWUQzV6KuOG4cM4bgSGJGc4kS7i/sDiwl6uMrgshcnx8XqjCYD5fPGhCXCu/EiglUPu6i8OnRxMffjytvD2Sf0C/E0W93PlKLcAAAAASUVORK5CYII='), auto";
|
|
111
|
+
readonly bar: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAWCAMAAADkSAzAAAAAFVBMVEVMaXFjXFs1MDBlXl0AAAEoJiZRSkobUqUAAAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAGlJREFUeNp90kESwCAIBEFUzP+fHAGNCxLnZnXBRYggliiPHyl3M/WLlRKn0UZuezDhb3tmjZfV0yYOk4IZTpPQFMHqzephEuI24t77dm+K270tXO4M0BxNfxjdWfRozlt+J+Z/N6SO7xdp3QXrG2PKFgAAAABJRU5ErkJggg=='), auto";
|
|
112
|
+
};
|
|
113
|
+
/**
|
|
114
|
+
* Coins cursor pack — represents increasing wealth from 1gp to 10,000gp.
|
|
115
|
+
*
|
|
116
|
+
* In OSRS, the coin stack sprite changes based on the amount.
|
|
117
|
+
* Great for progress indicators, score displays, or loading states.
|
|
118
|
+
*
|
|
119
|
+
* @example
|
|
120
|
+
* ```ts
|
|
121
|
+
* import { coinsPack } from '@dava96/osrs-icons';
|
|
122
|
+
*
|
|
123
|
+
* // Map a 0–100 progress value to a coin stack
|
|
124
|
+
* const stages = coinsPack.stages;
|
|
125
|
+
* const index = Math.min(Math.floor(progress / 100 * stages.length), stages.length - 1);
|
|
126
|
+
* element.style.cursor = stages[index];
|
|
127
|
+
* ```
|
|
128
|
+
*/
|
|
129
|
+
export declare const coinsPack: {
|
|
130
|
+
readonly _1: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAwAAAAICAMAAAD6Ou7DAAAAOVBMVEVMaXFbSgmfgRGOdBH70EL70UhwWw0AAAGxkBX70k37zzW3lRWoiRXdtBr2yB3luhrswR3QqRj7zSbkOlBfAAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAAADhJREFUeNpjYAACdjCAsjjAAMiDstA5QB47F5TJxAbksLBycgoJ8HIzM4LUcbKy8PEL8sCNg5oMAHx9Anyrx+YNAAAAAElFTkSuQmCC'), auto";
|
|
131
|
+
readonly _2: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAKCAMAAACDi47UAAAARVBMVEVMaXHktAD+yADXqQD/0QD/0ABeSgAAAAG3kAD/0hfzwQD/zQDsugD/zwCkgQC9lQB0WwCSdACtiQCdfADDmgCzjgD1wgBsovB2AAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAFVJREFUeNpdj0kOwCAMA8Nq0n3//1MLNBKhvmWksRyiHNSQSj5TjaJCBOIPU3G+HsyClq0pCJ55HMy6R9UD9sFO7gC6clmErFhznVGPK8rj7n5w++EFukYET+thchsAAAAASUVORK5CYII='), auto";
|
|
132
|
+
readonly _3: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAALCAMAAAC53Ab8AAAAV1BMVEVMaXH/zwBeSgD+yAD/0hf/0ybktAAAAAG3kAD/0QDXqQD/0ADzwQD/zQB0WwDIngCqhgCaeQDwvgD/ygDsugCkgQC9lQCSdACtiQCdfADDmgCzjgD1wgCZ+KI0AAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAHlJREFUeNptkFkWgyAQBIclNKAx7prl/ufMQEAx2l/Uq3kNA9E5CDkANrAhkZHA/mSCyOWZzc5N6WxoAG6ce21ayU4kMzV5xrmh9x3XoHJa89y8yOyEUOYRb4d2lRr9ChTd+dVIK4ALlHk9JS5W5oKPf+NC/X0BEX0B4u0GeCgCBnYAAAAASUVORK5CYII='), auto";
|
|
133
|
+
readonly _4: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAANCAMAAABvheXhAAAAYFBMVEVMaXH2yB3QqRj70EL70k3701LdtBoAAAGxkBX70UhbSgn7zzylhhXCnhj7zSbswR1wWw3uwh2VeRHpvh34yh2Eaw3luhq0kxX7zzW3lRWfgRGoiRWOdBGYfBG9mhiujhUvxeaWAAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAIlJREFUeNp1kFcSwyAMREUxC9hJ7PSe+98yEgFMZuz9At6yKkSNAFoR4P0KZSKCmDB70sVnlk+J1ufQKbcZTr4IJUqYmfSl/vdjy1Ic0LG2OzdEZtdM7mMNCMeD3ktTJljLvtszFtb3XDg1ChuMOuvHXKmZAT8ROEC59ysuzC8Bk/4srwZ/CyH6AiYkB7WkpPmdAAAAAElFTkSuQmCC'), auto";
|
|
134
|
+
readonly _5: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAOCAMAAADpEZdPAAAAYFBMVEVMaXHdtBqfgRH70k3701JbSgnQqRgAAAGxkBX70EK3lRX2yB2OdBFwWw370UjluhrswR37zSarixXuwh2oiRX7zi6bfxFpVQmRdhGVeRF0Xg34yh2Hbg3xxB3pvh3CnhjfHVeAAAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAJBJREFUeNptUFkWwyAING6A2dp03+9/y6LGSNPMByAD80aUEgDIEdQaAIjc54iCTmXsCRSNVOIadR4oJZ0TusjVeWvbJnTW2v2uueEvh3TwrE15c+qZO82M7mEReIz+7JijwRhWCZ2rFhOiTTNQO/pjcarvIP+cx7LTcL38n0UBW3z56ek2OF6k92frmkVdvL+7OQiYUyofJwAAAABJRU5ErkJggg=='), auto";
|
|
135
|
+
readonly _25: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAATCAMAAABWWYYKAAAAXVBMVEVMaXFbSgn70k370Uj70EL2yB1wWw0AAAGxkBX701LQqRjdtBqOdBGVeRGfgRHswR23lRX7zSbluhqoiRWlhhXuwh2Hbg10Xg20kxW6lxXpvh37zCDIoxj7zzX4yh1F/w8cAAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAKtJREFUeNptkVcWhCAMRSkBjGAbnV72v8wJRZED+aB4ycuLYawIE4LVQV+7EDVMoMUyqmBA4JfHTbcY4vv1dHfeYh2oz9DQRERlh2WKBc3JfGEl09DV3toIcddB+EgQQtnZkfQy2Y17lrUkXHvKB1CXngzpok48Shm2jRox30RGvb9B/FGmLwdSCKowO54t7sMwQvoK6+H0/MdMehe7p/zm/ICcrs3RJoV8/wOJmwrmIGvH+wAAAABJRU5ErkJggg=='), auto";
|
|
136
|
+
readonly _100: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABsAAAAXCAMAAADNyMQcAAAAhFBMVEVMaXFwWw37zSb70k32yB3701Luwh0AAAGxkBX70EL7zzWfgRGOdBFbSgm3lRXQqRj7zCDdtBrxxB34yh370UiHbg1WRgmbfxGVeRHzxh3luhrswR3nvB3pvh2oiRX7zi6lhhV0Xg20kxW6lxXIoxi9mhiLcRHgthrLpRj7zzx4Yg1pVQmh/vD3AAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAAANtJREFUeNp1ktkCQzAQRRExiZ3SVkvpvv3//3XIQtB5iMjJ3LmZxLImASqseQAwFXM4kgU00AwaLLBN5jubypOs3MK6EcZ2htN/1YYTiTXeD5dSVxPL9TBSmjbX8ByBoZajFTf3uHvbj5q6UptWzZNJddE3EAmvjrGFH3i3Kc7uMj/g4msPulqUEDeLQ0qpc8y6qE8cT1ZwL2FQc+4eEjT0mTImpr7szReZr/ur9qToLX5gS4EXhGCFOIx0vr58IEVf4aT6ZtyP2gZosXcaLZ8LbuLo9ARrSCqM/z+0HhDka2pQNQAAAABJRU5ErkJggg=='), auto";
|
|
137
|
+
readonly _250: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB8AAAAWCAMAAAAPf7fDAAAAwFBMVEVMaXH7zSbxxB37zCD2yB3uwh3zxh0AAAGxkBXswR3iuRrluhrnvB34yh0dGADpvh3FoBiVeRHYsBrVrhrashrdtBqrixXIoxi3lRWLcRGbfxHTrBrCnhjLpRjQqRi6lxW9mhhwWw20kxV0Xg18ZQ3NqBilhhXgthpIOgltWA1pVQmoiRVgTQmujhW/nBiHbg2RdhH7zzz7zi6fgRGihBFCNQCAZw01KgBkUQkmIACYfBFbSgmEaw0uJgA8MAD7zzWLXbQwAAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAUZJREFUeNp1klWWwzAMRWO2w4xlZhrG7n9Xo6YnSdtp9Wdf+UlPlqZpmqhCuxtCViHq5LvcFvXhMkEYDRfyHxeC7S1mhB3XFrVUUwSu+NFSut9OL3gjAlf4QNW004tBnlGiu8srbkqJuBm0ZA6SlhqvvWs/fG+paeHaF8KKYex380XZgjhw02/FDR29YKacjtzOSoXa3pxwZUTBZP7mmIbuPss0H544RtiMiuTzHQH3E2/xQWkUdiM3zlYnzgi4H/eyL8SdsN3NVrbkUCHo5cNZOVFwD+1/W5QSysyp7/1KKNCOyxGBfwrP0gnMTCHg0Xj7c2pnsDv7V6yeqQSuF62RTZDuTl7PnBCCnGCzzEAJUcdP0qFgOEi9vqj+B0fJetcXjip1PXGzBNX6cGoRPYmzR3sEBni4eRo94KCjVDGo6t7PuF3TP1rgG9GlMDsaAAAAAElFTkSuQmCC'), auto";
|
|
138
|
+
readonly _1000: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAVCAMAAABmKa5TAAAAulBMVEVMaXHluhrYsBouJgDFoBgdGADuwh0AAAGxkBXpvh3VrhrswR3LpRiLcRHiuRqHbg2OdBGrixXashrnvB3zxh34yh2RdhGujhX2yB26lxXgthrQqRiEaw14Yg23lRXCnhjxxB2fgRGYfBHdtBrTrBptWA2AZw3NqBjIoxhwWw2VeRGoiRWlhhX7zCD7zSabfxFbSglCNQA1KgBWRgk8MABpVQl0Xg20kxV8ZQ2ihBG9mhhIOgn7zzVkUQk7597mAAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAAASxJREFUeNp1ktd2wjAQRC1jaZAb7p1O6DUhPfn/34pkGSeHwL6t7pnRNk27HZCh3Qt0ZeCWqKUU13aNBvwaK0HjCSubpT2FlSGYJIwEk0+BOVv41bn9R7ywLxYYrCi9k0gIX27nT2hNARa7djc0DecsMbFT70HiyCLTpKPwxpraByGCS8x8PBefIyKm0RPYioN8HbmlX4tIYfjJUeCY6zXmo1k3OYVmXj2K15DP8nFV91jjugLvyPWlIzEPy8F43mCn04xJJbJxshgc3lr1aFcM3yn2ykq06S5eJ/2mtD7N4uBjQpGJ5FtqLNHl+gXNrLGLzIFHYelDh8qcF8s0WV2GjoyVaUVx2QvCqeHXc1F4xO1t/3eXQDDcOM/4dx1qNbh7Ltjr/ur+HWl/ZT+/jxj+uQYGegAAAABJRU5ErkJggg=='), auto";
|
|
139
|
+
readonly _10000: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAB4AAAAdCAMAAACKeiw+AAAAwFBMVEVMaXEdGADnvB3swR3pvh3uwh3FoBgAAAGxkBXluhrYsBqVeRHxxB3ashrQqRifgRG3lRXzxh3LpRj2yB2ujhXIoxjiuRrgthpwWw3dtBrVrhr4yh2YfBGbfxGoiRWOdBGrixWRdhGLcREuJgC6lxVtWA3NqBh4Yg29mhg1KgCAZw10Xg20kxWihBFWRglpVQnTrBqEaw1CNQClhhWHbg2/nBj7zCB8ZQ08MAD7zSbCnhhMPQn7zi5kUQn7zzVgTQng0mzuAAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAapJREFUeNp1k2uXmjAQhjUkGSMEhOWygCJQL6irq9Vu99LL//9XnSRQpD07n+bMEzLvDG9Goz5AxeizgIkK6E/C/3QMfT6558B+kSBsMe2Pdtj/IaKixZafPS2H2HmL+bHFzHHD+h4DYS/Jt4URBJa1KW8DTJ1cruZGEBASFZfdEGO/VjAIwa/7D+hm1GqYGzIh5181Dsrbb+hmBIVpUDBxrl41difVI/QbAPYg+JGlQY0tIRbZbLFX2KGxuhAxCqdTvvzQWDbX2uDUXb4iRuG2JaPFT1UVCQ/tseqZnHl1Ul9PZ7aTbIqD0baZeXg7+EQG3npn8ANKup1ADX5eeaZ57IaXE1gKP5OssddfALE7W3zXk5FsZa93zEd8oNPIe0RMe4yl42HHnLTx9lRyg8Xmab5tsS6xmJe1ZXKwhrhbDu1wHEzsg5Lmi4zblrFHTjBXyjXGrUJOZVRu/Ze0mY8BByu3+gclUaiWDrjmVQU5joXucWRTKRcARbxcQ+fZHN1zGcPfoCkvNW6NRoPrFnq3k5QX9TP8+0I6t4N8v8e9qd6S9yN8/qIG5T9OGikrB+sX9AAAAABJRU5ErkJggg=='), auto";
|
|
140
|
+
/** Ordered array of all coin stages, from 1gp to 10,000gp. */
|
|
141
|
+
readonly stages: readonly string[];
|
|
142
|
+
};
|
|
143
|
+
/**
|
|
144
|
+
* Bucket cursor pack — represents a filling progression from empty to full.
|
|
145
|
+
*
|
|
146
|
+
* Perfect for loading indicators, progress bars, or upload states.
|
|
147
|
+
* The `stages` array orders them from empty → full for easy indexing.
|
|
148
|
+
*
|
|
149
|
+
* @example
|
|
150
|
+
* ```ts
|
|
151
|
+
* import { bucketPack } from '@dava96/osrs-icons';
|
|
152
|
+
*
|
|
153
|
+
* // Map a 0–100 progress value to a bucket fill state
|
|
154
|
+
* const stages = bucketPack.stages;
|
|
155
|
+
* const index = Math.min(Math.floor(progress / 100 * stages.length), stages.length - 1);
|
|
156
|
+
* element.style.cursor = stages[index];
|
|
157
|
+
* ```
|
|
158
|
+
*/
|
|
159
|
+
export declare const bucketPack: {
|
|
160
|
+
readonly empty: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAdCAMAAACdWLz3AAAA5FBMVEVMaXGLckCWe0WUeUNcRhWOdEKRdkMAAAFkTRhgSRiEenqbf0hXQxWghEpwVhpnYGCJgH+IcD+mh01OPBFSPxWjhUyDazxqYmJdV1duZmZ9ZjlzXjWPhYWegkmZfUaBeHiFfHuAaTplXl19dHSHfn1pUBp6Yzl3b25wXDSQhoZ7cnJza2s/MA1JORFsZGRjXFt1bWyFbT12YTdtWDJwaWmLgoGoik05LA00JgksIgmViomNg4N7Xh1sVBqaj49FNBFCPT1bVVVOSUhWUFBUTU2PbiR5cXCIaSKWjIt/dnaTiIirjE4aNStaAAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAVlJREFUeNpd0teWgjAQBmBIIEMEBAREBMGO2Hvd3sv7v8+GYFn97/KdzMxJEYQ8ACDcBl5eK7cKpgfNybVCgVWP/eb/FtDyn4bDx+nAGF0UBolBFWXZmo6d02aI+3FdYanHnqRRzpCs6jQzhT54HYkqHRBAur+jR4yNim1LEkOtQ3OkVGLoOJShrUhnbD6/jZys3KEX1CqVplTMyjWNI83KJ94y6Wfo2PYJx/60L2a46AXaaLjZbLe73eDDksVChsG8W20UeSxRlq0Vw17QrZZnliUyEAk5FPiJjEaZCyGY4NRscwyqfsgJI2SGEebY65ZF1G63TdMM9yomZ8SRWtPdUklHWOa4mDcsgji6ESY5+kF1JuOo5pbeVUTq/JZh4rXKItuqrz9Raq7yqwdjmXwfwvRn/5WGKjrivNEq5NH1M7KWKFKz4W7t/MoAmM0urX/XV38Hjjmu/wC2oyMiAJCBbAAAAABJRU5ErkJggg=='), auto";
|
|
161
|
+
readonly fifth: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAdCAMAAACdWLz3AAAA5FBMVEVMaXGLckCWe0WUeUNcRhWOdEKRdkMAAAFkTRhgSRiEenqbf0hXQxWghEpwVhpnYGCJgH+IcD+mh01OPBFSPxWjhUyDazxqYmJdV1duZmZ9ZjlzXjWPhYWegkmZfUaBeHiFfHuAaTplXl19dHSHfn1pUBp6Yzl3b25wXDSQhoZ7cnJza2s/MA1JORFsZGRjXFt1bWyFbT12YTdtWDJwaWmLgoGoik05LA00JgksIgmViomNg4N7Xh1sVBqaj49FNBFCPT1bVVVOSUhWUFBUTU2PbiR5cXCIaSKWjIt/dnaTiIirjE4aNStaAAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAVlJREFUeNpd0teWgjAQBmBIIEMEBAREBMGO2Hvd3sv7v8+GYFn97/KdzMxJEYQ8ACDcBl5eK7cKpgfNybVCgVWP/eb/FtDyn4bDx+nAGF0UBolBFWXZmo6d02aI+3FdYanHnqRRzpCs6jQzhT54HYkqHRBAur+jR4yNim1LEkOtQ3OkVGLoOJShrUhnbD6/jZys3KEX1CqVplTMyjWNI83KJ94y6Wfo2PYJx/60L2a46AXaaLjZbLe73eDDksVChsG8W20UeSxRlq0Vw17QrZZnliUyEAk5FPiJjEaZCyGY4NRscwyqfsgJI2SGEebY65ZF1G63TdMM9yomZ8SRWtPdUklHWOa4mDcsgji6ESY5+kF1JuOo5pbeVUTq/JZh4rXKItuqrz9Raq7yqwdjmXwfwvRn/5WGKjrivNEq5NH1M7KWKFKz4W7t/MoAmM0urX/XV38Hjjmu/wC2oyMiAJCBbAAAAABJRU5ErkJggg=='), auto";
|
|
162
|
+
readonly twoFifths: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAdCAMAAACdWLz3AAAA5FBMVEVMaXGLckCWe0WUeUNcRhWOdEKRdkMAAAFkTRhgSRiEenqbf0hXQxWghEpwVhpnYGCJgH+IcD+mh01OPBFSPxWjhUyDazxqYmJdV1duZmZ9ZjlzXjWPhYWegkmZfUaBeHiFfHuAaTplXl19dHSHfn1pUBp6Yzl3b25wXDSQhoZ7cnJza2s/MA1JORFsZGRjXFt1bWyFbT12YTdtWDJwaWmLgoGoik05LA00JgksIgmViomNg4N7Xh1sVBqaj49FNBFCPT1bVVVOSUhWUFBUTU2PbiR5cXCIaSKWjIt/dnaTiIirjE4aNStaAAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAVlJREFUeNpd0teWgjAQBmBIIEMEBAREBMGO2Hvd3sv7v8+GYFn97/KdzMxJEYQ8ACDcBl5eK7cKpgfNybVCgVWP/eb/FtDyn4bDx+nAGF0UBolBFWXZmo6d02aI+3FdYanHnqRRzpCs6jQzhT54HYkqHRBAur+jR4yNim1LEkOtQ3OkVGLoOJShrUhnbD6/jZys3KEX1CqVplTMyjWNI83KJ94y6Wfo2PYJx/60L2a46AXaaLjZbLe73eDDksVChsG8W20UeSxRlq0Vw17QrZZnliUyEAk5FPiJjEaZCyGY4NRscwyqfsgJI2SGEebY65ZF1G63TdMM9yomZ8SRWtPdUklHWOa4mDcsgji6ESY5+kF1JuOo5pbeVUTq/JZh4rXKItuqrz9Raq7yqwdjmXwfwvRn/5WGKjrivNEq5NH1M7KWKFKz4W7t/MoAmM0urX/XV38Hjjmu/wC2oyMiAJCBbAAAAABJRU5ErkJggg=='), auto";
|
|
163
|
+
readonly threeFifths: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAdCAMAAACdWLz3AAAA6lBMVEVMaXFJORGWe0Wbf0iEenqDazx6YzkJOmQAAAFcRhVSPxWghEqAaTpwVhp9ZjlzXjV9dHR1bWyUeUOmh012YTdOPBFnYGBwXDRgSRijhUyFbT1qYmJdV1dlXl1waWmRdkNtWDKegkmOdEKZfUaLckBFNBE/MA1sZGR/dnZkTRhXQxVuZmaIcD+BeHh5cXCJgH80Jglza2tjXFuQhoaPhYWoik0sIgk5LA2FfHuViolpUBp3b26LgoF7cnKaj49bVVVCPT1OSUhWUFB7Xh1UTU1sVBqPbiSIaSKWjIuTiIiNg4OrjE6Hfn1mVC6FCO42AAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAVJJREFUeNpd0teWgjAUQFHpN4BSFEQQUFGKBexldHpv//87EwLq6Hljr5tkEahUigCgch08PrWvFTIH3PmlAotXRyP3/xagRg9hONBmJnVW8DTXshJP1SLxOAxxqsYIt504aGgRBi2bDKk8485JkJXcQAXQ67MRToW8idkeUAhhFBNqI5RhFEULo2EJp9z7F0rMl4vojEK77aIqxqF4NnPuePtbgoZxxGik3Y5TjJ2mgoxBuJlO1+tZatv8JEelwdfkKonjOP73UEzmytnjfg+bxpI3Ms8s82z2Q1CpjbySeXUZ6ASbPNen2VhNtRm7Y3T/hHrAdKVWvS7Reo9gpyGPfZpgK9D9AkdKze7pQbdVf2Nof0tuGeaOyvXxqLR6pxfZobh6ML19/LVcfO4+FkuGLrEhq2yRJJ0Qb0kHTH54q3v6ygA6Pru++l5d/DtQVj7/AW6fJZqMVLzGAAAAAElFTkSuQmCC'), auto";
|
|
164
|
+
readonly fourFifths: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAdCAMAAACdWLz3AAAA6lBMVEVMaXFJORGWe0Wbf0iEenqDazx6YzkJOmQAAAFcRhVSPxWghEqAaTpwVhp9ZjlzXjV9dHR1bWyUeUOmh012YTdOPBFnYGBwXDRgSRijhUyFbT1qYmJdV1dlXl1waWmRdkNtWDKegkmOdEKZfUaLckBFNBE/MA1sZGR/dnZkTRhXQxVuZmaIcD+BeHh5cXCJgH80Jglza2tjXFuQhoaPhYWoik0sIgk5LA2FfHuViolpUBp3b26LgoF7cnKaj49bVVVCPT1OSUhWUFB7Xh1UTU1sVBqPbiSIaSKWjIuTiIiNg4OrjE6Hfn1mVC6FCO42AAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAVJJREFUeNpd0teWgjAUQFHpN4BSFEQQUFGKBexldHpv//87EwLq6Hljr5tkEahUigCgch08PrWvFTIH3PmlAotXRyP3/xagRg9hONBmJnVW8DTXshJP1SLxOAxxqsYIt504aGgRBi2bDKk8485JkJXcQAXQ67MRToW8idkeUAhhFBNqI5RhFEULo2EJp9z7F0rMl4vojEK77aIqxqF4NnPuePtbgoZxxGik3Y5TjJ2mgoxBuJlO1+tZatv8JEelwdfkKonjOP73UEzmytnjfg+bxpI3Ms8s82z2Q1CpjbySeXUZ6ASbPNen2VhNtRm7Y3T/hHrAdKVWvS7Reo9gpyGPfZpgK9D9AkdKze7pQbdVf2Nof0tuGeaOyvXxqLR6pxfZobh6ML19/LVcfO4+FkuGLrEhq2yRJJ0Qb0kHTH54q3v6ygA6Pru++l5d/DtQVj7/AW6fJZqMVLzGAAAAAElFTkSuQmCC'), auto";
|
|
165
|
+
readonly full: "url('data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABQAAAAdCAMAAACdWLz3AAAA6lBMVEVMaXFJORGWe0Wbf0iEenqDazx6Yzl7e5sAAAFcRhVSPxWghEqAaTpwVhp9ZjlzXjV9dHR1bWyUeUOmh012YTdOPBFnYGBwXDRgSRijhUyFbT1qYmJdV1dlXl1waWmRdkNtWDKegkmOdEKZfUaLckBFNBE/MA1sZGR/dnZkTRhXQxVuZmaIcD+BeHh5cXCJgH80Jglza2tjXFuQhoaPhYWoik0sIgk5LA2FfHuViolpUBp3b26LgoF7cnKaj49bVVVCPT1OSUhWUFB7Xh1UTU1sVBqPbiSIaSKWjIuTiIiNg4OrjE6Hfn1mVC6Nk9sLAAAAAXRSTlMAQObYZgAAAAlwSFlzAAALEwAACxMBAJqcGAAAAVJJREFUeNpd0teWgjAUQFHpN4BSFEQQUFGKBexldHpv//87EwLq6Hljr5tkEahUigCgch08PrWvFTIH3PmlAotXRyP3/xagRg9hONBmJnVW8DTXshJP1SLxOAxxqsYIt504aGgRBi2bDKk8485JkJXcQAXQ67MRToW8idkeUAhhFBNqI5RhFEULo2EJp9z7F0rMl4vojEK77aIqxqF4NnPuePtbgoZxxGik3Y5TjJ2mgoxBuJlO1+tZatv8JEelwdfkKonjOP73UEzmytnjfg+bxpI3Ms8s82z2Q1CpjbySeXUZ6ASbPNen2VhNtRm7Y3T/hHrAdKVWvS7Reo9gpyGPfZpgK9D9AkdKze7pQbdVf2Nof0tuGeaOyvXxqLR6pxfZobh6ML19/LVcfO4+FkuGLrEhq2yRJJ0Qb0kHTH54q3v6ygA6Pru++l5d/DtQVj7/AW6fJZqMVLzGAAAAAElFTkSuQmCC'), auto";
|
|
166
|
+
/** Ordered array of all bucket stages, from empty to full. */
|
|
167
|
+
readonly stages: readonly string[];
|
|
168
|
+
};
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import { rawShark, shark, burntShark, rawHerring, herring, burntFishHerring, redHerring, rawAnglerfish, anglerfish, burntAnglerfish, dragonDagger, dragonDaggerp, dragonDaggerpplus, dragonDaggerpplusplus, goldOre, goldBar, ironOre, ironBar, coins1, coins2, coins3, coins4, coins5, coins25, coins100, coins250, coins1000, coins10000, bucket, _15thsFullBucket, _25thsFullBucket, _35thsFullBucket, _45thsFullBucket, bucketOfWater, } from './generated/icons';
|
|
2
|
+
/**
|
|
3
|
+
* A cursor pack groups related OSRS icons by their in-game state.
|
|
4
|
+
*
|
|
5
|
+
* Each key is a semantic label (e.g. `raw`, `cooked`, `burnt`) and
|
|
6
|
+
* each value is the corresponding CSS cursor string, ready to apply
|
|
7
|
+
* to any element's `cursor` property.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts
|
|
11
|
+
* import { sharkPack } from '@dava96/osrs-icons';
|
|
12
|
+
*
|
|
13
|
+
* // Use the raw shark as the cursor
|
|
14
|
+
* document.body.style.cursor = sharkPack.raw;
|
|
15
|
+
*
|
|
16
|
+
* // Swap to the cooked variant on click
|
|
17
|
+
* button.addEventListener('click', () => {
|
|
18
|
+
* document.body.style.cursor = sharkPack.cooked;
|
|
19
|
+
* });
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
// ── Fish Packs ─────────────────────────────────────────────────────
|
|
23
|
+
/**
|
|
24
|
+
* Shark cursor pack — raw, cooked, and burnt states.
|
|
25
|
+
*
|
|
26
|
+
* @example
|
|
27
|
+
* ```ts
|
|
28
|
+
* import { sharkPack } from '@dava96/osrs-icons';
|
|
29
|
+
* element.style.cursor = sharkPack.cooked;
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
export const sharkPack = {
|
|
33
|
+
raw: rawShark,
|
|
34
|
+
cooked: shark,
|
|
35
|
+
burnt: burntShark,
|
|
36
|
+
};
|
|
37
|
+
/**
|
|
38
|
+
* Herring cursor pack — raw, cooked, burnt, and the infamous red herring.
|
|
39
|
+
*
|
|
40
|
+
* The `error` alias points to `redHerring` — a fun easter egg for
|
|
41
|
+
* error states. Also available as the top-level `errorCursor` export.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* ```ts
|
|
45
|
+
* import { herringPack } from '@dava96/osrs-icons';
|
|
46
|
+
* element.style.cursor = herringPack.error; // 🐟 Red herring!
|
|
47
|
+
* ```
|
|
48
|
+
*/
|
|
49
|
+
export const herringPack = {
|
|
50
|
+
raw: rawHerring,
|
|
51
|
+
cooked: herring,
|
|
52
|
+
burnt: burntFishHerring,
|
|
53
|
+
error: redHerring,
|
|
54
|
+
};
|
|
55
|
+
/**
|
|
56
|
+
* Anglerfish cursor pack — raw, cooked, and burnt states.
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```ts
|
|
60
|
+
* import { anglerfishPack } from '@dava96/osrs-icons';
|
|
61
|
+
* element.style.cursor = anglerfishPack.raw;
|
|
62
|
+
* ```
|
|
63
|
+
*/
|
|
64
|
+
export const anglerfishPack = {
|
|
65
|
+
raw: rawAnglerfish,
|
|
66
|
+
cooked: anglerfish,
|
|
67
|
+
burnt: burntAnglerfish,
|
|
68
|
+
};
|
|
69
|
+
// ── Weapon Packs ───────────────────────────────────────────────────
|
|
70
|
+
/**
|
|
71
|
+
* Dragon dagger cursor pack — base through poisoned++ variants.
|
|
72
|
+
*
|
|
73
|
+
* @example
|
|
74
|
+
* ```ts
|
|
75
|
+
* import { dragonDaggerPack } from '@dava96/osrs-icons';
|
|
76
|
+
*
|
|
77
|
+
* // Start with the base dagger
|
|
78
|
+
* element.style.cursor = dragonDaggerPack.base;
|
|
79
|
+
*
|
|
80
|
+
* // Upgrade to poisoned++
|
|
81
|
+
* element.style.cursor = dragonDaggerPack.poisonedPlusPlus;
|
|
82
|
+
* ```
|
|
83
|
+
*/
|
|
84
|
+
export const dragonDaggerPack = {
|
|
85
|
+
base: dragonDagger,
|
|
86
|
+
poisoned: dragonDaggerp,
|
|
87
|
+
poisonedPlus: dragonDaggerpplus,
|
|
88
|
+
poisonedPlusPlus: dragonDaggerpplusplus,
|
|
89
|
+
};
|
|
90
|
+
// ── Ore & Bar Packs ────────────────────────────────────────────────
|
|
91
|
+
/**
|
|
92
|
+
* Gold ore/bar cursor pack — represents the smelting progression.
|
|
93
|
+
*
|
|
94
|
+
* @example
|
|
95
|
+
* ```ts
|
|
96
|
+
* import { goldPack } from '@dava96/osrs-icons';
|
|
97
|
+
* element.style.cursor = isComplete ? goldPack.bar : goldPack.ore;
|
|
98
|
+
* ```
|
|
99
|
+
*/
|
|
100
|
+
export const goldPack = {
|
|
101
|
+
ore: goldOre,
|
|
102
|
+
bar: goldBar,
|
|
103
|
+
};
|
|
104
|
+
/**
|
|
105
|
+
* Iron ore/bar cursor pack — represents the smelting progression.
|
|
106
|
+
*
|
|
107
|
+
* @example
|
|
108
|
+
* ```ts
|
|
109
|
+
* import { ironPack } from '@dava96/osrs-icons';
|
|
110
|
+
* element.style.cursor = ironPack.ore;
|
|
111
|
+
* ```
|
|
112
|
+
*/
|
|
113
|
+
export const ironPack = {
|
|
114
|
+
ore: ironOre,
|
|
115
|
+
bar: ironBar,
|
|
116
|
+
};
|
|
117
|
+
// ── Progression Packs ──────────────────────────────────────────────
|
|
118
|
+
/**
|
|
119
|
+
* Coins cursor pack — represents increasing wealth from 1gp to 10,000gp.
|
|
120
|
+
*
|
|
121
|
+
* In OSRS, the coin stack sprite changes based on the amount.
|
|
122
|
+
* Great for progress indicators, score displays, or loading states.
|
|
123
|
+
*
|
|
124
|
+
* @example
|
|
125
|
+
* ```ts
|
|
126
|
+
* import { coinsPack } from '@dava96/osrs-icons';
|
|
127
|
+
*
|
|
128
|
+
* // Map a 0–100 progress value to a coin stack
|
|
129
|
+
* const stages = coinsPack.stages;
|
|
130
|
+
* const index = Math.min(Math.floor(progress / 100 * stages.length), stages.length - 1);
|
|
131
|
+
* element.style.cursor = stages[index];
|
|
132
|
+
* ```
|
|
133
|
+
*/
|
|
134
|
+
export const coinsPack = {
|
|
135
|
+
_1: coins1,
|
|
136
|
+
_2: coins2,
|
|
137
|
+
_3: coins3,
|
|
138
|
+
_4: coins4,
|
|
139
|
+
_5: coins5,
|
|
140
|
+
_25: coins25,
|
|
141
|
+
_100: coins100,
|
|
142
|
+
_250: coins250,
|
|
143
|
+
_1000: coins1000,
|
|
144
|
+
_10000: coins10000,
|
|
145
|
+
/** Ordered array of all coin stages, from 1gp to 10,000gp. */
|
|
146
|
+
stages: [
|
|
147
|
+
coins1, coins2, coins3, coins4, coins5,
|
|
148
|
+
coins25, coins100, coins250, coins1000, coins10000,
|
|
149
|
+
],
|
|
150
|
+
};
|
|
151
|
+
/**
|
|
152
|
+
* Bucket cursor pack — represents a filling progression from empty to full.
|
|
153
|
+
*
|
|
154
|
+
* Perfect for loading indicators, progress bars, or upload states.
|
|
155
|
+
* The `stages` array orders them from empty → full for easy indexing.
|
|
156
|
+
*
|
|
157
|
+
* @example
|
|
158
|
+
* ```ts
|
|
159
|
+
* import { bucketPack } from '@dava96/osrs-icons';
|
|
160
|
+
*
|
|
161
|
+
* // Map a 0–100 progress value to a bucket fill state
|
|
162
|
+
* const stages = bucketPack.stages;
|
|
163
|
+
* const index = Math.min(Math.floor(progress / 100 * stages.length), stages.length - 1);
|
|
164
|
+
* element.style.cursor = stages[index];
|
|
165
|
+
* ```
|
|
166
|
+
*/
|
|
167
|
+
export const bucketPack = {
|
|
168
|
+
empty: bucket,
|
|
169
|
+
fifth: _15thsFullBucket,
|
|
170
|
+
twoFifths: _25thsFullBucket,
|
|
171
|
+
threeFifths: _35thsFullBucket,
|
|
172
|
+
fourFifths: _45thsFullBucket,
|
|
173
|
+
full: bucketOfWater,
|
|
174
|
+
/** Ordered array of all bucket stages, from empty to full. */
|
|
175
|
+
stages: [
|
|
176
|
+
bucket, _15thsFullBucket, _25thsFullBucket,
|
|
177
|
+
_35thsFullBucket, _45thsFullBucket, bucketOfWater,
|
|
178
|
+
],
|
|
179
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|