@kasumi-ui/icons 0.1.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/README.md ADDED
@@ -0,0 +1,40 @@
1
+ # `@kasumi-ui/icons`
2
+
3
+ SVG sprite sheet and typed icon metadata for Kasumi UI.
4
+
5
+ ## Install
6
+
7
+ ```sh
8
+ npm install @kasumi-ui/icons
9
+ ```
10
+
11
+ ## Usage
12
+
13
+ ```ts
14
+ import { ICONS, type IconId } from "@kasumi-ui/icons";
15
+ import spriteHref from "@kasumi-ui/icons/icons.svg";
16
+
17
+ export function Icon({ name }: { name: IconId }) {
18
+ return (
19
+ <svg viewBox="0 0 24 24" aria-hidden="true">
20
+ <use href={`${spriteHref}#${name}`} />
21
+ </svg>
22
+ );
23
+ }
24
+
25
+ console.log(ICONS.length);
26
+ ```
27
+
28
+ You can also import the manifest directly:
29
+
30
+ ```ts
31
+ import iconsManifest from "@kasumi-ui/icons/icons.json";
32
+ ```
33
+
34
+ ## Package Scripts
35
+
36
+ ```sh
37
+ npm run build
38
+ npm run pack:check
39
+ npm publish --access public
40
+ ```
@@ -0,0 +1,28 @@
1
+ export type IconId = "arrow-back" | "arrow-down-forward" | "arrow-forward" | "check" | "chess-pattern" | "close-box" | "close-circle" | "copy-board-text" | "copy-rects" | "dot-pattern" | "dots-horiz" | "dots-vert" | "download-box" | "globe" | "grid-pattern" | "home-door" | "link-horizontal" | "plus-small" | "repeat-arrow" | "search" | "share-dots" | "sidebar-open-left" | "sidebar-open-right" | "strip-pattern" | "trash-bin" | "wrist-watch";
2
+ export interface IconMeta {
3
+ id: IconId;
4
+ label: string;
5
+ category: string;
6
+ keywords: readonly string[];
7
+ viewBox: string;
8
+ }
9
+ export interface IconCategory {
10
+ id: string;
11
+ label: string;
12
+ count: number;
13
+ }
14
+ export declare const ICON_CATEGORIES: readonly IconCategory[];
15
+ export declare const ICONS: readonly IconMeta[];
16
+ export declare const ICON_META: Readonly<Record<IconId, IconMeta>>;
17
+ export declare const iconIds: readonly ["arrow-back", "arrow-down-forward", "arrow-forward", "check", "chess-pattern", "close-box", "close-circle", "copy-board-text", "copy-rects", "dot-pattern", "dots-horiz", "dots-vert", "download-box", "globe", "grid-pattern", "home-door", "link-horizontal", "plus-small", "repeat-arrow", "search", "share-dots", "sidebar-open-left", "sidebar-open-right", "strip-pattern", "trash-bin", "wrist-watch"];
18
+ /**
19
+ * import { type IconId } from "./spritesheet/icons";
20
+ *
21
+ * function Icon({ name, size = 24 }: { name: IconId; size?: number }) {
22
+ * return (
23
+ * <svg width={size} height={size} role="img">
24
+ * <use href={`/spritesheet/icons.svg#${name}`} />
25
+ * </svg>
26
+ * );
27
+ * }
28
+ */
package/dist/icons.js ADDED
@@ -0,0 +1,405 @@
1
+ // Auto-generated by build_sheet.py — DO NOT EDIT
2
+ export const ICON_CATEGORIES = [
3
+ {
4
+ id: "building",
5
+ label: "Building",
6
+ count: 1,
7
+ },
8
+ {
9
+ id: "device",
10
+ label: "Device",
11
+ count: 1,
12
+ },
13
+ {
14
+ id: "interface",
15
+ label: "Interface",
16
+ count: 20,
17
+ },
18
+ {
19
+ id: "pattern",
20
+ label: "Pattern",
21
+ count: 4,
22
+ },
23
+ ];
24
+ export const ICONS = [
25
+ {
26
+ id: "arrow-back",
27
+ label: "Arrow Back",
28
+ category: "interface",
29
+ keywords: ["arrow"],
30
+ viewBox: "0 0 24 24",
31
+ },
32
+ {
33
+ id: "arrow-down-forward",
34
+ label: "Arrow Down Forward",
35
+ category: "interface",
36
+ keywords: ["arrow", "forward", "keyboard"],
37
+ viewBox: "0 0 24 24",
38
+ },
39
+ {
40
+ id: "arrow-forward",
41
+ label: "Arrow Forward",
42
+ category: "interface",
43
+ keywords: ["arrow"],
44
+ viewBox: "0 0 24 24",
45
+ },
46
+ {
47
+ id: "check",
48
+ label: "Check",
49
+ category: "interface",
50
+ keywords: ["done", "check", "approve", "correct", "done", "okay", "verify"],
51
+ viewBox: "0 0 24 24",
52
+ },
53
+ {
54
+ id: "chess-pattern",
55
+ label: "Chess Pattern",
56
+ category: "pattern",
57
+ keywords: ["grid", "pattern"],
58
+ viewBox: "0 0 24 24",
59
+ },
60
+ {
61
+ id: "close-box",
62
+ label: "Close Box",
63
+ category: "interface",
64
+ keywords: ["close", "remove", "delete", "box", "rect"],
65
+ viewBox: "0 0 24 24",
66
+ },
67
+ {
68
+ id: "close-circle",
69
+ label: "Close Circle",
70
+ category: "interface",
71
+ keywords: ["close", "remove", "delete"],
72
+ viewBox: "0 0 24 24",
73
+ },
74
+ {
75
+ id: "copy-board-text",
76
+ label: "Copy Board Text",
77
+ category: "interface",
78
+ keywords: ["clipboard", "text", "copy", "rect"],
79
+ viewBox: "0 0 24 24",
80
+ },
81
+ {
82
+ id: "copy-rects",
83
+ label: "Copy Rects",
84
+ category: "interface",
85
+ keywords: ["copy", "rect"],
86
+ viewBox: "0 0 24 24",
87
+ },
88
+ {
89
+ id: "dot-pattern",
90
+ label: "Dot Pattern",
91
+ category: "pattern",
92
+ keywords: ["grid", "pattern"],
93
+ viewBox: "0 0 24 24",
94
+ },
95
+ {
96
+ id: "dots-horiz",
97
+ label: "Dots Horiz",
98
+ category: "interface",
99
+ keywords: ["menu", "more", "actions"],
100
+ viewBox: "0 0 24 24",
101
+ },
102
+ {
103
+ id: "dots-vert",
104
+ label: "Dots Vert",
105
+ category: "interface",
106
+ keywords: ["menu", "more", "actions"],
107
+ viewBox: "0 0 24 24",
108
+ },
109
+ {
110
+ id: "download-box",
111
+ label: "Download Box",
112
+ category: "interface",
113
+ keywords: ["download", "rect"],
114
+ viewBox: "0 0 24 24",
115
+ },
116
+ {
117
+ id: "globe",
118
+ label: "Globe",
119
+ category: "interface",
120
+ keywords: ["globe", "language"],
121
+ viewBox: "0 0 24 24",
122
+ },
123
+ {
124
+ id: "grid-pattern",
125
+ label: "Grid Pattern",
126
+ category: "pattern",
127
+ keywords: ["grid", "pattern"],
128
+ viewBox: "0 0 24 24",
129
+ },
130
+ {
131
+ id: "home-door",
132
+ label: "Home Door",
133
+ category: "building",
134
+ keywords: ["house", "building"],
135
+ viewBox: "0 0 24 24",
136
+ },
137
+ {
138
+ id: "link-horizontal",
139
+ label: "Link Horizontal",
140
+ category: "interface",
141
+ keywords: ["link", "share"],
142
+ viewBox: "0 0 24 24",
143
+ },
144
+ {
145
+ id: "plus-small",
146
+ label: "Plus Small",
147
+ category: "interface",
148
+ keywords: ["add", "plus"],
149
+ viewBox: "0 0 24 24",
150
+ },
151
+ {
152
+ id: "repeat-arrow",
153
+ label: "Repeat Arrow",
154
+ category: "interface",
155
+ keywords: ["reload", "refresh", "update", "repeat"],
156
+ viewBox: "0 0 24 24",
157
+ },
158
+ {
159
+ id: "search",
160
+ label: "Search",
161
+ category: "interface",
162
+ keywords: ["search"],
163
+ viewBox: "0 0 24 24",
164
+ },
165
+ {
166
+ id: "share-dots",
167
+ label: "Share Dots",
168
+ category: "interface",
169
+ keywords: ["share"],
170
+ viewBox: "0 0 24 24",
171
+ },
172
+ {
173
+ id: "sidebar-open-left",
174
+ label: "Sidebar Open Left",
175
+ category: "interface",
176
+ keywords: ["sidebar"],
177
+ viewBox: "0 0 24 24",
178
+ },
179
+ {
180
+ id: "sidebar-open-right",
181
+ label: "Sidebar Open Right",
182
+ category: "interface",
183
+ keywords: ["sidebar"],
184
+ viewBox: "0 0 24 24",
185
+ },
186
+ {
187
+ id: "strip-pattern",
188
+ label: "Strip Pattern",
189
+ category: "pattern",
190
+ keywords: ["strip", "line", "pattern"],
191
+ viewBox: "0 0 24 24",
192
+ },
193
+ {
194
+ id: "trash-bin",
195
+ label: "Trash Bin",
196
+ category: "interface",
197
+ keywords: ["delete", "trash", "remove"],
198
+ viewBox: "0 0 24 24",
199
+ },
200
+ {
201
+ id: "wrist-watch",
202
+ label: "Wrist Watch",
203
+ category: "device",
204
+ keywords: ["clock"],
205
+ viewBox: "0 0 24 24",
206
+ },
207
+ ];
208
+ export const ICON_META = {
209
+ "arrow-back": {
210
+ id: "arrow-back",
211
+ label: "Arrow Back",
212
+ category: "interface",
213
+ keywords: ["arrow"],
214
+ viewBox: "0 0 24 24",
215
+ },
216
+ "arrow-down-forward": {
217
+ id: "arrow-down-forward",
218
+ label: "Arrow Down Forward",
219
+ category: "interface",
220
+ keywords: ["arrow", "forward", "keyboard"],
221
+ viewBox: "0 0 24 24",
222
+ },
223
+ "arrow-forward": {
224
+ id: "arrow-forward",
225
+ label: "Arrow Forward",
226
+ category: "interface",
227
+ keywords: ["arrow"],
228
+ viewBox: "0 0 24 24",
229
+ },
230
+ "check": {
231
+ id: "check",
232
+ label: "Check",
233
+ category: "interface",
234
+ keywords: ["done", "check", "approve", "correct", "done", "okay", "verify"],
235
+ viewBox: "0 0 24 24",
236
+ },
237
+ "chess-pattern": {
238
+ id: "chess-pattern",
239
+ label: "Chess Pattern",
240
+ category: "pattern",
241
+ keywords: ["grid", "pattern"],
242
+ viewBox: "0 0 24 24",
243
+ },
244
+ "close-box": {
245
+ id: "close-box",
246
+ label: "Close Box",
247
+ category: "interface",
248
+ keywords: ["close", "remove", "delete", "box", "rect"],
249
+ viewBox: "0 0 24 24",
250
+ },
251
+ "close-circle": {
252
+ id: "close-circle",
253
+ label: "Close Circle",
254
+ category: "interface",
255
+ keywords: ["close", "remove", "delete"],
256
+ viewBox: "0 0 24 24",
257
+ },
258
+ "copy-board-text": {
259
+ id: "copy-board-text",
260
+ label: "Copy Board Text",
261
+ category: "interface",
262
+ keywords: ["clipboard", "text", "copy", "rect"],
263
+ viewBox: "0 0 24 24",
264
+ },
265
+ "copy-rects": {
266
+ id: "copy-rects",
267
+ label: "Copy Rects",
268
+ category: "interface",
269
+ keywords: ["copy", "rect"],
270
+ viewBox: "0 0 24 24",
271
+ },
272
+ "dot-pattern": {
273
+ id: "dot-pattern",
274
+ label: "Dot Pattern",
275
+ category: "pattern",
276
+ keywords: ["grid", "pattern"],
277
+ viewBox: "0 0 24 24",
278
+ },
279
+ "dots-horiz": {
280
+ id: "dots-horiz",
281
+ label: "Dots Horiz",
282
+ category: "interface",
283
+ keywords: ["menu", "more", "actions"],
284
+ viewBox: "0 0 24 24",
285
+ },
286
+ "dots-vert": {
287
+ id: "dots-vert",
288
+ label: "Dots Vert",
289
+ category: "interface",
290
+ keywords: ["menu", "more", "actions"],
291
+ viewBox: "0 0 24 24",
292
+ },
293
+ "download-box": {
294
+ id: "download-box",
295
+ label: "Download Box",
296
+ category: "interface",
297
+ keywords: ["download", "rect"],
298
+ viewBox: "0 0 24 24",
299
+ },
300
+ "globe": {
301
+ id: "globe",
302
+ label: "Globe",
303
+ category: "interface",
304
+ keywords: ["globe", "language"],
305
+ viewBox: "0 0 24 24",
306
+ },
307
+ "grid-pattern": {
308
+ id: "grid-pattern",
309
+ label: "Grid Pattern",
310
+ category: "pattern",
311
+ keywords: ["grid", "pattern"],
312
+ viewBox: "0 0 24 24",
313
+ },
314
+ "home-door": {
315
+ id: "home-door",
316
+ label: "Home Door",
317
+ category: "building",
318
+ keywords: ["house", "building"],
319
+ viewBox: "0 0 24 24",
320
+ },
321
+ "link-horizontal": {
322
+ id: "link-horizontal",
323
+ label: "Link Horizontal",
324
+ category: "interface",
325
+ keywords: ["link", "share"],
326
+ viewBox: "0 0 24 24",
327
+ },
328
+ "plus-small": {
329
+ id: "plus-small",
330
+ label: "Plus Small",
331
+ category: "interface",
332
+ keywords: ["add", "plus"],
333
+ viewBox: "0 0 24 24",
334
+ },
335
+ "repeat-arrow": {
336
+ id: "repeat-arrow",
337
+ label: "Repeat Arrow",
338
+ category: "interface",
339
+ keywords: ["reload", "refresh", "update", "repeat"],
340
+ viewBox: "0 0 24 24",
341
+ },
342
+ "search": {
343
+ id: "search",
344
+ label: "Search",
345
+ category: "interface",
346
+ keywords: ["search"],
347
+ viewBox: "0 0 24 24",
348
+ },
349
+ "share-dots": {
350
+ id: "share-dots",
351
+ label: "Share Dots",
352
+ category: "interface",
353
+ keywords: ["share"],
354
+ viewBox: "0 0 24 24",
355
+ },
356
+ "sidebar-open-left": {
357
+ id: "sidebar-open-left",
358
+ label: "Sidebar Open Left",
359
+ category: "interface",
360
+ keywords: ["sidebar"],
361
+ viewBox: "0 0 24 24",
362
+ },
363
+ "sidebar-open-right": {
364
+ id: "sidebar-open-right",
365
+ label: "Sidebar Open Right",
366
+ category: "interface",
367
+ keywords: ["sidebar"],
368
+ viewBox: "0 0 24 24",
369
+ },
370
+ "strip-pattern": {
371
+ id: "strip-pattern",
372
+ label: "Strip Pattern",
373
+ category: "pattern",
374
+ keywords: ["strip", "line", "pattern"],
375
+ viewBox: "0 0 24 24",
376
+ },
377
+ "trash-bin": {
378
+ id: "trash-bin",
379
+ label: "Trash Bin",
380
+ category: "interface",
381
+ keywords: ["delete", "trash", "remove"],
382
+ viewBox: "0 0 24 24",
383
+ },
384
+ "wrist-watch": {
385
+ id: "wrist-watch",
386
+ label: "Wrist Watch",
387
+ category: "device",
388
+ keywords: ["clock"],
389
+ viewBox: "0 0 24 24",
390
+ },
391
+ };
392
+ export const iconIds = [
393
+ "arrow-back", "arrow-down-forward", "arrow-forward", "check", "chess-pattern", "close-box", "close-circle", "copy-board-text", "copy-rects", "dot-pattern", "dots-horiz", "dots-vert", "download-box", "globe", "grid-pattern", "home-door", "link-horizontal", "plus-small", "repeat-arrow", "search", "share-dots", "sidebar-open-left", "sidebar-open-right", "strip-pattern", "trash-bin", "wrist-watch",
394
+ ];
395
+ /**
396
+ * import { type IconId } from "./spritesheet/icons";
397
+ *
398
+ * function Icon({ name, size = 24 }: { name: IconId; size?: number }) {
399
+ * return (
400
+ * <svg width={size} height={size} role="img">
401
+ * <use href={`/spritesheet/icons.svg#${name}`} />
402
+ * </svg>
403
+ * );
404
+ * }
405
+ */
package/icons.json ADDED
@@ -0,0 +1,249 @@
1
+ {
2
+ "icons": [
3
+ {
4
+ "id": "arrow-back",
5
+ "label": "Arrow Back",
6
+ "category": "interface",
7
+ "keywords": [
8
+ "arrow"
9
+ ]
10
+ },
11
+ {
12
+ "id": "arrow-down-forward",
13
+ "label": "Arrow Down Forward",
14
+ "category": "interface",
15
+ "keywords": [
16
+ "arrow",
17
+ "forward",
18
+ "keyboard"
19
+ ]
20
+ },
21
+ {
22
+ "id": "arrow-forward",
23
+ "label": "Arrow Forward",
24
+ "category": "interface",
25
+ "keywords": [
26
+ "arrow"
27
+ ]
28
+ },
29
+ {
30
+ "id": "check",
31
+ "label": "Check",
32
+ "category": "interface",
33
+ "keywords": [
34
+ "done",
35
+ "check",
36
+ "approve",
37
+ "correct",
38
+ "done",
39
+ "okay",
40
+ "verify"
41
+ ]
42
+ },
43
+ {
44
+ "id": "chess-pattern",
45
+ "label": "Chess Pattern",
46
+ "category": "pattern",
47
+ "keywords": [
48
+ "grid",
49
+ "pattern"
50
+ ]
51
+ },
52
+ {
53
+ "id": "close-box",
54
+ "label": "Close Box",
55
+ "category": "interface",
56
+ "keywords": [
57
+ "close",
58
+ "remove",
59
+ "delete",
60
+ "box",
61
+ "rect"
62
+ ]
63
+ },
64
+ {
65
+ "id": "close-circle",
66
+ "label": "Close Circle",
67
+ "category": "interface",
68
+ "keywords": [
69
+ "close",
70
+ "remove",
71
+ "delete"
72
+ ]
73
+ },
74
+ {
75
+ "id": "copy-board-text",
76
+ "label": "Copy Board Text",
77
+ "category": "interface",
78
+ "keywords": [
79
+ "clipboard",
80
+ "text",
81
+ "copy",
82
+ "rect"
83
+ ]
84
+ },
85
+ {
86
+ "id": "copy-rects",
87
+ "label": "Copy Rects",
88
+ "category": "interface",
89
+ "keywords": [
90
+ "copy",
91
+ "rect"
92
+ ]
93
+ },
94
+ {
95
+ "id": "dot-pattern",
96
+ "label": "Dot Pattern",
97
+ "category": "pattern",
98
+ "keywords": [
99
+ "grid",
100
+ "pattern"
101
+ ]
102
+ },
103
+ {
104
+ "id": "dots-horiz",
105
+ "label": "Dots Horiz",
106
+ "category": "interface",
107
+ "keywords": [
108
+ "menu",
109
+ "more",
110
+ "actions"
111
+ ]
112
+ },
113
+ {
114
+ "id": "dots-vert",
115
+ "label": "Dots Vert",
116
+ "category": "interface",
117
+ "keywords": [
118
+ "menu",
119
+ "more",
120
+ "actions"
121
+ ]
122
+ },
123
+ {
124
+ "id": "download-box",
125
+ "label": "Download Box",
126
+ "category": "interface",
127
+ "keywords": [
128
+ "download",
129
+ "rect"
130
+ ]
131
+ },
132
+ {
133
+ "id": "globe",
134
+ "label": "Globe",
135
+ "category": "interface",
136
+ "keywords": [
137
+ "globe",
138
+ "language"
139
+ ]
140
+ },
141
+ {
142
+ "id": "grid-pattern",
143
+ "label": "Grid Pattern",
144
+ "category": "pattern",
145
+ "keywords": [
146
+ "grid",
147
+ "pattern"
148
+ ]
149
+ },
150
+ {
151
+ "id": "home-door",
152
+ "label": "Home Door",
153
+ "category": "building",
154
+ "keywords": [
155
+ "house",
156
+ "building"
157
+ ]
158
+ },
159
+ {
160
+ "id": "link-horizontal",
161
+ "label": "Link Horizontal",
162
+ "category": "interface",
163
+ "keywords": [
164
+ "link",
165
+ "share"
166
+ ]
167
+ },
168
+ {
169
+ "id": "plus-small",
170
+ "label": "Plus Small",
171
+ "category": "interface",
172
+ "keywords": [
173
+ "add",
174
+ "plus"
175
+ ]
176
+ },
177
+ {
178
+ "id": "repeat-arrow",
179
+ "label": "Repeat Arrow",
180
+ "category": "interface",
181
+ "keywords": [
182
+ "reload",
183
+ "refresh",
184
+ "update",
185
+ "repeat"
186
+ ]
187
+ },
188
+ {
189
+ "id": "search",
190
+ "label": "Search",
191
+ "category": "interface",
192
+ "keywords": [
193
+ "search"
194
+ ]
195
+ },
196
+ {
197
+ "id": "share-dots",
198
+ "label": "Share Dots",
199
+ "category": "interface",
200
+ "keywords": [
201
+ "share"
202
+ ]
203
+ },
204
+ {
205
+ "id": "sidebar-open-left",
206
+ "label": "Sidebar Open Left",
207
+ "category": "interface",
208
+ "keywords": [
209
+ "sidebar"
210
+ ]
211
+ },
212
+ {
213
+ "id": "sidebar-open-right",
214
+ "label": "Sidebar Open Right",
215
+ "category": "interface",
216
+ "keywords": [
217
+ "sidebar"
218
+ ]
219
+ },
220
+ {
221
+ "id": "strip-pattern",
222
+ "label": "Strip Pattern",
223
+ "category": "pattern",
224
+ "keywords": [
225
+ "strip",
226
+ "line",
227
+ "pattern"
228
+ ]
229
+ },
230
+ {
231
+ "id": "trash-bin",
232
+ "label": "Trash Bin",
233
+ "category": "interface",
234
+ "keywords": [
235
+ "delete",
236
+ "trash",
237
+ "remove"
238
+ ]
239
+ },
240
+ {
241
+ "id": "wrist-watch",
242
+ "label": "Wrist Watch",
243
+ "category": "device",
244
+ "keywords": [
245
+ "clock"
246
+ ]
247
+ }
248
+ ]
249
+ }
package/icons.svg ADDED
@@ -0,0 +1,84 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <svg xmlns="http://www.w3.org/2000/svg"
3
+ aria-hidden="true" focusable="false"
4
+ style="display:none;position:absolute;width:0;height:0;overflow:hidden">
5
+ <symbol id="arrow-back" viewBox="0 0 24 24">
6
+ <path d="M7.825 13L11.425 16.6L10 18L4 12L10 6L11.425 7.4L7.825 11H20V13H7.825Z" fill="currentColor" stroke="none"/>
7
+ </symbol>
8
+ <symbol id="arrow-down-forward" viewBox="0 0 24 24">
9
+ <path d="M6 14H17.5859L14.5859 11L16 9.58594L21.4141 15L16 20.4141L14.5859 19L17.5859 16H4V5H6V14Z" fill="currentColor" stroke="none"/>
10
+ </symbol>
11
+ <symbol id="arrow-forward" viewBox="0 0 24 24">
12
+ <path d="M16.175 13L12.575 16.6L14 18L20 12L14 6L12.575 7.4L16.175 11H4V13H16.175Z" fill="currentColor" stroke="none"/>
13
+ </symbol>
14
+ <symbol id="check" viewBox="0 0 24 24">
15
+ <path d="M9.54998 18L4.84998 13.3L6.27498 11.875L9.54998 15.15L16.725 7.975L18.15 9.4L9.54998 18Z" fill="currentColor" stroke="none"/>
16
+ </symbol>
17
+ <symbol id="chess-pattern" viewBox="0 0 24 24">
18
+ <path d="M11 5V3H13V5H11ZM13 7V5H15V7H13ZM15 5V3H17V5H15ZM19 5V3H21V5H19ZM17 7V5H19V7H17ZM11 9V7H13V9H11ZM15 9V7H17V9H15ZM19 9V7H21V9H19ZM13 11V9H15V11H13ZM17 11V9H19V11H17ZM11 13V11H13V13H11ZM15 13V11H17V13H15ZM19 13V11H21V13H19ZM13 15V13H15V15H13ZM17 15V13H19V15H17ZM11 17V15H13V17H11ZM15 17V15H17V17H15ZM19 17V15H21V17H19ZM13 19V17H15V19H13ZM17 19V17H19V19H17ZM11 21V19H13V21H11ZM15 21V19H17V21H15ZM19 21V19H21V21H19Z" fill="currentColor" stroke="none"/>
19
+ <path d="M3 5V3H5V5H3ZM5 7V5H7V7H5ZM7 5V3H9V5H7ZM11 5V3H13V5H11ZM9 7V5H11V7H9ZM3 9V7H5V9H3ZM7 9V7H9V9H7ZM11 9V7H13V9H11ZM5 11V9H7V11H5ZM9 11V9H11V11H9ZM3 13V11H5V13H3ZM7 13V11H9V13H7ZM11 13V11H13V13H11ZM5 15V13H7V15H5ZM9 15V13H11V15H9ZM3 17V15H5V17H3ZM7 17V15H9V17H7ZM11 17V15H13V17H11ZM5 19V17H7V19H5ZM9 19V17H11V19H9ZM3 21V19H5V21H3ZM7 21V19H9V21H7ZM11 21V19H13V21H11Z" fill="currentColor" stroke="none"/>
20
+ </symbol>
21
+ <symbol id="close-box" viewBox="0 0 24 24">
22
+ <path d="M21 21H3V3H21V21ZM5 19H19V5H5V19ZM17 8.40039L13.4004 12L17 15.5996L15.5996 17L12 13.4004L8.40039 17L7 15.5996L10.5996 12L7 8.40039L8.40039 7L12 10.5996L15.5996 7L17 8.40039Z" fill="currentColor" stroke="none"/>
23
+ </symbol>
24
+ <symbol id="close-circle" viewBox="0 0 24 24">
25
+ <path d="M12 3C16.9706 3 21 7.02944 21 12C21 16.9706 16.9706 21 12 21C7.02944 21 3 16.9706 3 12C3 7.02944 7.02944 3 12 3ZM12 5C8.13401 5 5 8.13401 5 12C5 15.866 8.13401 19 12 19C15.866 19 19 15.866 19 12C19 8.13401 15.866 5 12 5ZM15.4141 10L13.4141 12L15.4141 14L14 15.4141L12 13.4141L10 15.4141L8.58594 14L10.5859 12L8.58594 10L10 8.58594L12 10.5859L14 8.58594L15.4141 10Z" fill="currentColor" stroke="none"/>
26
+ </symbol>
27
+ <symbol id="copy-board-text" viewBox="0 0 24 24">
28
+ <path d="M16 5H20V21H4V5H8V3H16V5ZM6 19H18V7H16V9H8V7H6V19ZM13 17H8V15H13V17ZM16 13H8V11H16V13ZM10 7H14V5H10V7Z" fill="currentColor" stroke="none"/>
29
+ </symbol>
30
+ <symbol id="copy-rects" viewBox="0 0 24 24">
31
+ <path d="M16 8H21V21H8V16H3V3H16V8ZM10 19H19V10H10V19ZM5 14H8V8H14V5H5V14Z" fill="currentColor" stroke="none"/>
32
+ </symbol>
33
+ <symbol id="dot-pattern" viewBox="0 0 24 24">
34
+ <path d="M5 21H3V19H5V21ZM9 21H7V19H9V21ZM13 21H11V19H13V21ZM17 21H15V19H17V21ZM21 21H19V19H21V21ZM5 17H3V15H5V17ZM9 17H7V15H9V17ZM13 17H11V15H13V17ZM17 17H15V15H17V17ZM21 17H19V15H21V17ZM5 13H3V11H5V13ZM9 13H7V11H9V13ZM13 13H11V11H13V13ZM17 13H15V11H17V13ZM21 13H19V11H21V13ZM5 9H3V7H5V9ZM9 9H7V7H9V9ZM13 9H11V7H13V9ZM17 9H15V7H17V9ZM21 9H19V7H21V9ZM5 5H3V3H5V5ZM9 5H7V3H9V5ZM13 5H11V3H13V5ZM17 5H15V3H17V5ZM21 5H19V3H21V5Z" fill="currentColor" stroke="none"/>
35
+ </symbol>
36
+ <symbol id="dots-horiz" viewBox="0 0 24 24">
37
+ <path d="M6 14H2V10H6V14ZM14 14H10V10H14V14ZM22 14H18V10H22V14Z" fill="currentColor" stroke="none"/>
38
+ </symbol>
39
+ <symbol id="dots-vert" viewBox="0 0 24 24">
40
+ <path d="M14 17V21H10V17H14ZM14 10V14H10V10H14ZM14 3V7H10V3H14Z" fill="currentColor" stroke="none"/>
41
+ </symbol>
42
+ <symbol id="download-box" viewBox="0 0 24 24">
43
+ <path d="M21 21H3V3H21V21ZM13 13.1504L15.5996 10.5498L17 12L12 17L7 12L8.40039 10.5498L11 13.1504V7H13V13.1504ZM5 19H19V5H5V19Z" fill="currentColor" stroke="none"/>
44
+ </symbol>
45
+ <symbol id="globe" viewBox="0 0 24 24">
46
+ <path d="M12 3C16.9706 3 21 7.02944 21 12C21 16.9706 16.9706 21 12 21C7.02944 21 3 16.9706 3 12C3 7.02944 7.02944 3 12 3ZM10.0283 13C10.1291 14.846 10.501 16.4313 10.999 17.5518C11.2931 18.2133 11.592 18.6246 11.8223 18.8438C11.9033 18.9209 11.9629 18.9608 12 18.9824C12.0371 18.9608 12.0967 18.9209 12.1777 18.8438C12.408 18.6246 12.7069 18.2133 13.001 17.5518C13.499 16.4313 13.8709 14.846 13.9717 13H10.0283ZM5.07227 13C5.42023 15.4322 7.01781 17.4595 9.19434 18.4131C8.5567 17.0005 8.12908 15.1103 8.02539 13H5.07227ZM15.9746 13C15.8709 15.1105 15.4424 17.0004 14.8047 18.4131C16.9816 17.4597 18.5797 15.4325 18.9277 13H15.9746ZM9.19434 5.58594C7.01763 6.53943 5.42025 8.5677 5.07227 11H8.02539C8.1291 8.8893 8.55649 6.99866 9.19434 5.58594ZM12 5.0166C11.9629 5.03813 11.9036 5.07885 11.8223 5.15625C11.592 5.37536 11.2931 5.78666 10.999 6.44824C10.501 7.56872 10.1291 9.15397 10.0283 11H13.9717C13.8709 9.15397 13.499 7.56872 13.001 6.44824C12.7069 5.78666 12.408 5.37536 12.1777 5.15625C12.0964 5.07885 12.0371 5.03813 12 5.0166ZM14.8047 5.58594C15.4426 6.9987 15.8709 8.88912 15.9746 11H18.9277C18.5797 8.5674 16.9818 6.53928 14.8047 5.58594Z" fill="currentColor" stroke="none"/>
47
+ </symbol>
48
+ <symbol id="grid-pattern" viewBox="0 0 24 24">
49
+ <path d="M7 5H9V3H11V5H13V3H15V5H17V3H19V5H21V7H19V9H21V11H19V13H21V15H19V17H21V19H19V21H17V19H15V21H13V19H11V21H9V19H7V21H5V19H3V17H5V15H3V13H5V11H3V9H5V7H3V5H5V3H7V5ZM7 17H9V15H7V17ZM11 17H13V15H11V17ZM15 17H17V15H15V17ZM7 13H9V11H7V13ZM11 13H13V11H11V13ZM15 13H17V11H15V13ZM7 9H9V7H7V9ZM11 9H13V7H11V9ZM15 9H17V7H15V9Z" fill="currentColor" stroke="none"/>
50
+ </symbol>
51
+ <symbol id="home-door" viewBox="0 0 24 24">
52
+ <path d="M20 9V21H4V9L12 3L20 9ZM6 10V19H18V10L12 5.5L6 10ZM14 17H10V11H14V17Z" fill="currentColor" stroke="none"/>
53
+ </symbol>
54
+ <symbol id="link-horizontal" viewBox="0 0 24 24">
55
+ <path d="M11 7V9H5V15H11V17H3V7H11ZM21 17H13V15H19V9H13V7H21V17ZM15 13H9V11H15V13Z" fill="currentColor" stroke="none"/>
56
+ </symbol>
57
+ <symbol id="plus-small" viewBox="0 0 24 24">
58
+ <path d="M11 13H6V11H11V6H13V11H18V13H13V18H11V13Z" fill="currentColor" stroke="none"/>
59
+ </symbol>
60
+ <symbol id="repeat-arrow" viewBox="0 0 24 24">
61
+ <path d="M6 17H16.5859L14.793 15.207L16.207 13.793L20.4141 18L16.207 22.207L14.793 20.793L16.5859 19H4V12H6V17ZM9.20703 3.20703L7.41406 5H20V12H18V7H7.41406L9.20703 8.79297L7.79297 10.207L3.58594 6L7.79297 1.79297L9.20703 3.20703Z" fill="currentColor" stroke="none"/>
62
+ </symbol>
63
+ <symbol id="search" viewBox="0 0 24 24">
64
+ <path d="M5.4 21L10.7 15.7C11.2 16.1 11.775 16.4167 12.425 16.65C13.075 16.8833 13.7667 17 14.5 17C16.3167 17 17.8542 16.3708 19.1125 15.1125C20.3708 13.8542 21 12.3167 21 10.5C21 8.68333 20.3708 7.14583 19.1125 5.8875C17.8542 4.62917 16.3167 4 14.5 4C12.6833 4 11.1458 4.62917 9.8875 5.8875C8.62917 7.14583 8 8.68333 8 10.5C8 11.2333 8.11667 11.925 8.35 12.575C8.58333 13.225 8.9 13.8 9.3 14.3L4 19.6L5.4 21ZM14.5 15C13.25 15 12.1875 14.5625 11.3125 13.6875C10.4375 12.8125 10 11.75 10 10.5C10 9.25 10.4375 8.1875 11.3125 7.3125C12.1875 6.4375 13.25 6 14.5 6C15.75 6 16.8125 6.4375 17.6875 7.3125C18.5625 8.1875 19 9.25 19 10.5C19 11.75 18.5625 12.8125 17.6875 13.6875C16.8125 14.5625 15.75 15 14.5 15Z" fill="currentColor" stroke="none"/>
65
+ </symbol>
66
+ <symbol id="share-dots" viewBox="0 0 24 24">
67
+ <path d="M20 8H14L9 11V13L15 15H21V21H15V17L9 15H3V9H9L14 6V2H20V8ZM17 19H19V17H17V19ZM5 13H7V11H5V13ZM16 6H18V4H16V6Z" fill="currentColor" stroke="none"/>
68
+ </symbol>
69
+ <symbol id="sidebar-open-left" viewBox="0 0 24 24">
70
+ <path d="M21 20H3V4H21V20ZM5 18H19V6H5V18ZM11 16H7V8H11V16Z" fill="currentColor" stroke="none"/>
71
+ </symbol>
72
+ <symbol id="sidebar-open-right" viewBox="0 0 24 24">
73
+ <path d="M21 20H3V4H21V20ZM5 18H19V6H5V18ZM17 16H13V8H17V16Z" fill="currentColor" stroke="none"/>
74
+ </symbol>
75
+ <symbol id="strip-pattern" viewBox="0 0 24 24">
76
+ <g clip-path="url(#clip1_10_377)"><path d="M3 3H4.91421L21 19.0858V21H20.0858L3 3.91421V3Z" fill="currentColor" stroke="none"/><path d="M7.74264 3H10.5711L21 13.4289V16.2574L7.74264 3Z" fill="currentColor" stroke="none"/><path d="M17.2574 21H14.4289L3 9.57107V6.74264L17.2574 21Z" fill="currentColor" stroke="none"/><path d="M3 15.2279V12.3995L11.6005 21H8.77208L3 15.2279Z" fill="currentColor" stroke="none"/><path fill-rule="evenodd" clip-rule="evenodd" d="M19.0563 3H21V4.94365L19.0563 3ZM16.2279 3H13.3995L21 10.6005V7.77208L16.2279 3Z" fill="currentColor" stroke="none"/><path d="M5.94365 21L3 18.0563V21H5.94365Z" fill="currentColor" stroke="none"/></g>
77
+ </symbol>
78
+ <symbol id="trash-bin" viewBox="0 0 24 24">
79
+ <path d="M5 20V6H4V4H9V3H15V4H20V6H19V20H5ZM7 18H17V6H7V18ZM9 16H11V8H9V16ZM13 16H15V8H13V16Z" fill="currentColor" stroke="none"/>
80
+ </symbol>
81
+ <symbol id="wrist-watch" viewBox="0 0 24 24">
82
+ <path d="M15 4H19V10H20V13H19V20H15V21H9V20H5V4H9V3H15V4ZM7 18H17V6H7V18ZM13 11.5996L15.7002 14.2998L14.2998 15.7002L11 12.4004V8H13V11.5996Z" fill="currentColor" stroke="none"/>
83
+ </symbol>
84
+ </svg>
package/package.json ADDED
@@ -0,0 +1,52 @@
1
+ {
2
+ "name": "@kasumi-ui/icons",
3
+ "version": "0.1.0",
4
+ "description": "SVG sprite sheet and typed metadata for Kasumi UI icons.",
5
+ "type": "module",
6
+ "license": "UNLICENSED",
7
+ "sideEffects": false,
8
+ "files": [
9
+ "dist",
10
+ "icons.svg",
11
+ "icons.json",
12
+ "README.md"
13
+ ],
14
+ "main": "./dist/icons.js",
15
+ "module": "./dist/icons.js",
16
+ "types": "./dist/icons.d.ts",
17
+ "exports": {
18
+ ".": {
19
+ "types": "./dist/icons.d.ts",
20
+ "import": "./dist/icons.js",
21
+ "default": "./dist/icons.js"
22
+ },
23
+ "./icons": {
24
+ "types": "./dist/icons.d.ts",
25
+ "import": "./dist/icons.js",
26
+ "default": "./dist/icons.js"
27
+ },
28
+ "./icons.json": "./icons.json",
29
+ "./icons.svg": "./icons.svg",
30
+ "./package.json": "./package.json"
31
+ },
32
+ "scripts": {
33
+ "generate": "python3 ../build_sheet.py",
34
+ "build": "npm run generate && tsc -p tsconfig.json",
35
+ "prepack": "npm run build",
36
+ "pack:check": "npm pack --dry-run"
37
+ },
38
+ "publishConfig": {
39
+ "access": "public"
40
+ },
41
+ "keywords": [
42
+ "icons",
43
+ "svg",
44
+ "spritesheet",
45
+ "sprite",
46
+ "typescript",
47
+ "kasumi-ui"
48
+ ],
49
+ "devDependencies": {
50
+ "typescript": "^5.8.0"
51
+ }
52
+ }