@mlola-ui/engine 1.0.6 → 1.0.8

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.
@@ -10,10 +10,16 @@
10
10
  "size": "number or CSS length. Defaults to var(--mlola-glyph-size, 1.125rem).",
11
11
  "strokeWidth": "number or CSS length. Defaults to the theme's --ml-icon-stroke; --mlola-glyph-stroke overrides it.",
12
12
  "opticalSize": "small | default | large",
13
- "animate": "boolean, honours prefers-reduced-motion",
13
+ "animate": "boolean, honors prefers-reduced-motion",
14
14
  "title": "gives the glyph an accessible name; without it the glyph is decorative"
15
15
  },
16
16
  "items": [
17
+ {
18
+ "id": "IconArchive",
19
+ "title": "IconArchive",
20
+ "name": "IconArchive",
21
+ "group": "Everyday app glyphs"
22
+ },
17
23
  {
18
24
  "id": "IconArrowDown",
19
25
  "title": "IconArrowDown",
@@ -38,6 +44,12 @@
38
44
  "name": "IconArrowUp",
39
45
  "group": "Interface & status glyphs"
40
46
  },
47
+ {
48
+ "id": "IconArrowUpDown",
49
+ "title": "IconArrowUpDown",
50
+ "name": "IconArrowUpDown",
51
+ "group": "Everyday app glyphs"
52
+ },
41
53
  {
42
54
  "id": "IconArrowUpRight",
43
55
  "title": "IconArrowUpRight",
@@ -50,6 +62,12 @@
50
62
  "name": "IconBan",
51
63
  "group": "Interface & status glyphs"
52
64
  },
65
+ {
66
+ "id": "IconBarChart",
67
+ "title": "IconBarChart",
68
+ "name": "IconBarChart",
69
+ "group": "Everyday app glyphs"
70
+ },
53
71
  {
54
72
  "id": "IconBell",
55
73
  "title": "IconBell",
@@ -68,6 +86,12 @@
68
86
  "name": "IconBold",
69
87
  "group": "Editor glyphs"
70
88
  },
89
+ {
90
+ "id": "IconBookmark",
91
+ "title": "IconBookmark",
92
+ "name": "IconBookmark",
93
+ "group": "Everyday app glyphs"
94
+ },
71
95
  {
72
96
  "id": "IconBox3D",
73
97
  "title": "IconBox3D",
@@ -116,6 +140,18 @@
116
140
  "name": "IconChevronRight",
117
141
  "group": "Interface & status glyphs"
118
142
  },
143
+ {
144
+ "id": "IconChevronsLeft",
145
+ "title": "IconChevronsLeft",
146
+ "name": "IconChevronsLeft",
147
+ "group": "Everyday app glyphs"
148
+ },
149
+ {
150
+ "id": "IconChevronsRight",
151
+ "title": "IconChevronsRight",
152
+ "name": "IconChevronsRight",
153
+ "group": "Everyday app glyphs"
154
+ },
119
155
  {
120
156
  "id": "IconChevronsUpDown",
121
157
  "title": "IconChevronsUpDown",
@@ -164,12 +200,24 @@
164
200
  "name": "IconClearFormat",
165
201
  "group": "Editor glyphs"
166
202
  },
203
+ {
204
+ "id": "IconClipboard",
205
+ "title": "IconClipboard",
206
+ "name": "IconClipboard",
207
+ "group": "Everyday app glyphs"
208
+ },
167
209
  {
168
210
  "id": "IconClock",
169
211
  "title": "IconClock",
170
212
  "name": "IconClock",
171
213
  "group": "Interface & status glyphs"
172
214
  },
215
+ {
216
+ "id": "IconCloud",
217
+ "title": "IconCloud",
218
+ "name": "IconCloud",
219
+ "group": "Everyday app glyphs"
220
+ },
173
221
  {
174
222
  "id": "IconCode",
175
223
  "title": "IconCode",
@@ -194,6 +242,18 @@
194
242
  "name": "IconCopy",
195
243
  "group": "Living Workspace & Action Glyphs"
196
244
  },
245
+ {
246
+ "id": "IconCreditCard",
247
+ "title": "IconCreditCard",
248
+ "name": "IconCreditCard",
249
+ "group": "Everyday app glyphs"
250
+ },
251
+ {
252
+ "id": "IconDatabase",
253
+ "title": "IconDatabase",
254
+ "name": "IconDatabase",
255
+ "group": "Everyday app glyphs"
256
+ },
197
257
  {
198
258
  "id": "IconDiamond",
199
259
  "title": "IconDiamond",
@@ -248,6 +308,18 @@
248
308
  "name": "IconFilePlus",
249
309
  "group": "Living Workspace & Action Glyphs"
250
310
  },
311
+ {
312
+ "id": "IconFilter",
313
+ "title": "IconFilter",
314
+ "name": "IconFilter",
315
+ "group": "Everyday app glyphs"
316
+ },
317
+ {
318
+ "id": "IconFlag",
319
+ "title": "IconFlag",
320
+ "name": "IconFlag",
321
+ "group": "Everyday app glyphs"
322
+ },
251
323
  {
252
324
  "id": "IconFolder",
253
325
  "title": "IconFolder",
@@ -278,6 +350,12 @@
278
350
  "name": "IconGitPullRequest",
279
351
  "group": "Code & source control glyphs"
280
352
  },
353
+ {
354
+ "id": "IconGlobe",
355
+ "title": "IconGlobe",
356
+ "name": "IconGlobe",
357
+ "group": "Everyday app glyphs"
358
+ },
281
359
  {
282
360
  "id": "IconGrip",
283
361
  "title": "IconGrip",
@@ -302,12 +380,30 @@
302
380
  "name": "IconHeart",
303
381
  "group": "Interface & status glyphs"
304
382
  },
383
+ {
384
+ "id": "IconHelp",
385
+ "title": "IconHelp",
386
+ "name": "IconHelp",
387
+ "group": "Everyday app glyphs"
388
+ },
305
389
  {
306
390
  "id": "IconHome",
307
391
  "title": "IconHome",
308
392
  "name": "IconHome",
309
393
  "group": "Interface & status glyphs"
310
394
  },
395
+ {
396
+ "id": "IconImage",
397
+ "title": "IconImage",
398
+ "name": "IconImage",
399
+ "group": "Everyday app glyphs"
400
+ },
401
+ {
402
+ "id": "IconInbox",
403
+ "title": "IconInbox",
404
+ "name": "IconInbox",
405
+ "group": "Everyday app glyphs"
406
+ },
311
407
  {
312
408
  "id": "IconInfo",
313
409
  "title": "IconInfo",
@@ -320,12 +416,36 @@
320
416
  "name": "IconItalic",
321
417
  "group": "Editor glyphs"
322
418
  },
419
+ {
420
+ "id": "IconKey",
421
+ "title": "IconKey",
422
+ "name": "IconKey",
423
+ "group": "Everyday app glyphs"
424
+ },
323
425
  {
324
426
  "id": "IconLayers",
325
427
  "title": "IconLayers",
326
428
  "name": "IconLayers",
327
429
  "group": "Signature Brand & Theme Glyphs"
328
430
  },
431
+ {
432
+ "id": "IconLayoutGrid",
433
+ "title": "IconLayoutGrid",
434
+ "name": "IconLayoutGrid",
435
+ "group": "Everyday app glyphs"
436
+ },
437
+ {
438
+ "id": "IconLayoutList",
439
+ "title": "IconLayoutList",
440
+ "name": "IconLayoutList",
441
+ "group": "Everyday app glyphs"
442
+ },
443
+ {
444
+ "id": "IconLightbulb",
445
+ "title": "IconLightbulb",
446
+ "name": "IconLightbulb",
447
+ "group": "Everyday app glyphs"
448
+ },
329
449
  {
330
450
  "id": "IconLink",
331
451
  "title": "IconLink",
@@ -356,12 +476,30 @@
356
476
  "name": "IconLock",
357
477
  "group": "Living Workspace & Action Glyphs"
358
478
  },
479
+ {
480
+ "id": "IconLogIn",
481
+ "title": "IconLogIn",
482
+ "name": "IconLogIn",
483
+ "group": "Everyday app glyphs"
484
+ },
485
+ {
486
+ "id": "IconLogOut",
487
+ "title": "IconLogOut",
488
+ "name": "IconLogOut",
489
+ "group": "Everyday app glyphs"
490
+ },
359
491
  {
360
492
  "id": "IconMail",
361
493
  "title": "IconMail",
362
494
  "name": "IconMail",
363
495
  "group": "Interface & status glyphs"
364
496
  },
497
+ {
498
+ "id": "IconMapPin",
499
+ "title": "IconMapPin",
500
+ "name": "IconMapPin",
501
+ "group": "Everyday app glyphs"
502
+ },
365
503
  {
366
504
  "id": "IconMaximize",
367
505
  "title": "IconMaximize",
@@ -374,6 +512,12 @@
374
512
  "name": "IconMenu",
375
513
  "group": "Interface & status glyphs"
376
514
  },
515
+ {
516
+ "id": "IconMessage",
517
+ "title": "IconMessage",
518
+ "name": "IconMessage",
519
+ "group": "Everyday app glyphs"
520
+ },
377
521
  {
378
522
  "id": "IconMic",
379
523
  "title": "IconMic",
@@ -386,6 +530,12 @@
386
530
  "name": "IconMicOff",
387
531
  "group": "AI & voice glyphs"
388
532
  },
533
+ {
534
+ "id": "IconMinimize",
535
+ "title": "IconMinimize",
536
+ "name": "IconMinimize",
537
+ "group": "Everyday app glyphs"
538
+ },
389
539
  {
390
540
  "id": "IconMinus",
391
541
  "title": "IconMinus",
@@ -410,6 +560,12 @@
410
560
  "name": "IconMoreHorizontal",
411
561
  "group": "Interface & status glyphs"
412
562
  },
563
+ {
564
+ "id": "IconMoreVertical",
565
+ "title": "IconMoreVertical",
566
+ "name": "IconMoreVertical",
567
+ "group": "Everyday app glyphs"
568
+ },
413
569
  {
414
570
  "id": "IconMotion",
415
571
  "title": "IconMotion",
@@ -422,18 +578,42 @@
422
578
  "name": "IconPalette",
423
579
  "group": "Signature Brand & Theme Glyphs"
424
580
  },
581
+ {
582
+ "id": "IconPanelLeft",
583
+ "title": "IconPanelLeft",
584
+ "name": "IconPanelLeft",
585
+ "group": "Everyday app glyphs"
586
+ },
425
587
  {
426
588
  "id": "IconPaperclip",
427
589
  "title": "IconPaperclip",
428
590
  "name": "IconPaperclip",
429
591
  "group": "AI & voice glyphs"
430
592
  },
593
+ {
594
+ "id": "IconPause",
595
+ "title": "IconPause",
596
+ "name": "IconPause",
597
+ "group": "Everyday app glyphs"
598
+ },
431
599
  {
432
600
  "id": "IconPen",
433
601
  "title": "IconPen",
434
602
  "name": "IconPen",
435
603
  "group": "Canvas & workflow glyphs"
436
604
  },
605
+ {
606
+ "id": "IconPhone",
607
+ "title": "IconPhone",
608
+ "name": "IconPhone",
609
+ "group": "Everyday app glyphs"
610
+ },
611
+ {
612
+ "id": "IconPin",
613
+ "title": "IconPin",
614
+ "name": "IconPin",
615
+ "group": "Everyday app glyphs"
616
+ },
437
617
  {
438
618
  "id": "IconPlay",
439
619
  "title": "IconPlay",
@@ -452,6 +632,12 @@
452
632
  "name": "IconPointer",
453
633
  "group": "Canvas & workflow glyphs"
454
634
  },
635
+ {
636
+ "id": "IconPrinter",
637
+ "title": "IconPrinter",
638
+ "name": "IconPrinter",
639
+ "group": "Everyday app glyphs"
640
+ },
455
641
  {
456
642
  "id": "IconQuote",
457
643
  "title": "IconQuote",
@@ -476,6 +662,12 @@
476
662
  "name": "IconSearch",
477
663
  "group": "Living Workspace & Action Glyphs"
478
664
  },
665
+ {
666
+ "id": "IconSend",
667
+ "title": "IconSend",
668
+ "name": "IconSend",
669
+ "group": "Everyday app glyphs"
670
+ },
479
671
  {
480
672
  "id": "IconSettings",
481
673
  "title": "IconSettings",
@@ -554,6 +746,12 @@
554
746
  "name": "IconSun",
555
747
  "group": "Living Workspace & Action Glyphs"
556
748
  },
749
+ {
750
+ "id": "IconTag",
751
+ "title": "IconTag",
752
+ "name": "IconTag",
753
+ "group": "Everyday app glyphs"
754
+ },
557
755
  {
558
756
  "id": "IconTemplate",
559
757
  "title": "IconTemplate",
@@ -590,6 +788,12 @@
590
788
  "name": "IconTrash",
591
789
  "group": "Living Workspace & Action Glyphs"
592
790
  },
791
+ {
792
+ "id": "IconTrendingUp",
793
+ "title": "IconTrendingUp",
794
+ "name": "IconTrendingUp",
795
+ "group": "Everyday app glyphs"
796
+ },
593
797
  {
594
798
  "id": "IconTriangleAlert",
595
799
  "title": "IconTriangleAlert",
@@ -655,6 +859,18 @@
655
859
  "title": "IconZap",
656
860
  "name": "IconZap",
657
861
  "group": "Living Workspace & Action Glyphs"
862
+ },
863
+ {
864
+ "id": "IconZoomIn",
865
+ "title": "IconZoomIn",
866
+ "name": "IconZoomIn",
867
+ "group": "Everyday app glyphs"
868
+ },
869
+ {
870
+ "id": "IconZoomOut",
871
+ "title": "IconZoomOut",
872
+ "name": "IconZoomOut",
873
+ "group": "Everyday app glyphs"
658
874
  }
659
875
  ],
660
876
  "aliases": {
@@ -710,7 +926,42 @@
710
926
  "Calendar": "IconCalendar",
711
927
  "Clock": "IconClock",
712
928
  "Home": "IconHome",
713
- "ExternalLink": "IconExternalLink"
929
+ "ExternalLink": "IconExternalLink",
930
+ "MoreVertical": "IconMoreVertical",
931
+ "PanelLeft": "IconPanelLeft",
932
+ "LayoutGrid": "IconLayoutGrid",
933
+ "LayoutList": "IconLayoutList",
934
+ "ArrowUpDown": "IconArrowUpDown",
935
+ "Filter": "IconFilter",
936
+ "Minimize": "IconMinimize",
937
+ "ChevronsLeft": "IconChevronsLeft",
938
+ "ChevronsRight": "IconChevronsRight",
939
+ "Send": "IconSend",
940
+ "Archive": "IconArchive",
941
+ "Inbox": "IconInbox",
942
+ "Tag": "IconTag",
943
+ "Bookmark": "IconBookmark",
944
+ "Pin": "IconPin",
945
+ "Flag": "IconFlag",
946
+ "Printer": "IconPrinter",
947
+ "Clipboard": "IconClipboard",
948
+ "LogIn": "IconLogIn",
949
+ "LogOut": "IconLogOut",
950
+ "ZoomIn": "IconZoomIn",
951
+ "ZoomOut": "IconZoomOut",
952
+ "Pause": "IconPause",
953
+ "Globe": "IconGlobe",
954
+ "Database": "IconDatabase",
955
+ "Cloud": "IconCloud",
956
+ "CreditCard": "IconCreditCard",
957
+ "BarChart": "IconBarChart",
958
+ "TrendingUp": "IconTrendingUp",
959
+ "Key": "IconKey",
960
+ "MapPin": "IconMapPin",
961
+ "Phone": "IconPhone",
962
+ "MessageSquare": "IconMessage",
963
+ "CircleHelp": "IconHelp",
964
+ "Lightbulb": "IconLightbulb"
714
965
  }
715
966
  },
716
967
  {
@@ -718,6 +969,34 @@
718
969
  "label": "2D assets",
719
970
  "summary": "Illustrations and spot art that follow the active theme.",
720
971
  "items": [
972
+ {
973
+ "id": "access-granted",
974
+ "kind": "2d",
975
+ "title": "Access granted",
976
+ "summary": "A precision key beside an approved access card. A simple permission metaphor.",
977
+ "tags": [
978
+ "access",
979
+ "permissions",
980
+ "security"
981
+ ],
982
+ "files": [
983
+ {
984
+ "path": "access-granted.svg",
985
+ "role": "source",
986
+ "bytes": 3748,
987
+ "integrity": "sha256-SIAkkdPoVRq7UcG59xKkroZs7GrVooi8exHJjia4xig="
988
+ },
989
+ {
990
+ "path": "access-granted.tsx",
991
+ "role": "react",
992
+ "bytes": 4727,
993
+ "integrity": "sha256-uGj9wuF27wdZRsLWiz3/xwCC5Vpu+pv+BVETn07T2m0="
994
+ }
995
+ ],
996
+ "themeable": true,
997
+ "license": "MIT",
998
+ "author": "Mlola"
999
+ },
721
1000
  {
722
1001
  "id": "analytics",
723
1002
  "kind": "2d",
@@ -774,6 +1053,62 @@
774
1053
  "license": "MIT",
775
1054
  "author": "Mlola"
776
1055
  },
1056
+ {
1057
+ "id": "archive-labels",
1058
+ "kind": "2d",
1059
+ "title": "Archive labels",
1060
+ "summary": "An orderly archive case with a label and a pair of indexed records waiting to be filed.",
1061
+ "tags": [
1062
+ "archive",
1063
+ "records",
1064
+ "organization"
1065
+ ],
1066
+ "files": [
1067
+ {
1068
+ "path": "archive-labels.svg",
1069
+ "role": "source",
1070
+ "bytes": 4633,
1071
+ "integrity": "sha256-AkPhEyRGqklb00VbCDiR8fqEtQ6JEkkQ094YUIeQcUg="
1072
+ },
1073
+ {
1074
+ "path": "archive-labels.tsx",
1075
+ "role": "react",
1076
+ "bytes": 5630,
1077
+ "integrity": "sha256-MuTMQ9qgnburztfDD8J594PZ0elVXbbmPGLoh3gD7k0="
1078
+ }
1079
+ ],
1080
+ "themeable": true,
1081
+ "license": "MIT",
1082
+ "author": "Mlola"
1083
+ },
1084
+ {
1085
+ "id": "backup-ready",
1086
+ "kind": "2d",
1087
+ "title": "Backup ready",
1088
+ "summary": "A protected external drive and an orderly file card, ready for safekeeping.",
1089
+ "tags": [
1090
+ "backup",
1091
+ "storage",
1092
+ "files"
1093
+ ],
1094
+ "files": [
1095
+ {
1096
+ "path": "backup-ready.svg",
1097
+ "role": "source",
1098
+ "bytes": 3705,
1099
+ "integrity": "sha256-7uMJwm8KBC9d0OKWWY78azUOV7hjBXPVTmpWuZsC77A="
1100
+ },
1101
+ {
1102
+ "path": "backup-ready.tsx",
1103
+ "role": "react",
1104
+ "bytes": 4646,
1105
+ "integrity": "sha256-JBO7M5R7kKsNlUg/aXnon1ZrShHv79ULUKVnJF2dPYw="
1106
+ }
1107
+ ],
1108
+ "themeable": true,
1109
+ "license": "MIT",
1110
+ "author": "Mlola"
1111
+ },
777
1112
  {
778
1113
  "id": "blueprint",
779
1114
  "kind": "2d",
@@ -914,6 +1249,34 @@
914
1249
  "license": "MIT",
915
1250
  "author": "Mlola"
916
1251
  },
1252
+ {
1253
+ "id": "connection-ready",
1254
+ "kind": "2d",
1255
+ "title": "Connection ready",
1256
+ "summary": "A wireless hub linked to a neatly aligned device card, with one clear connection signal.",
1257
+ "tags": [
1258
+ "network",
1259
+ "connection",
1260
+ "devices"
1261
+ ],
1262
+ "files": [
1263
+ {
1264
+ "path": "connection-ready.svg",
1265
+ "role": "source",
1266
+ "bytes": 3729,
1267
+ "integrity": "sha256-vxA8A8aOgO53TME3qhZvdyTibwT/vkfdhgkJ22D12ds="
1268
+ },
1269
+ {
1270
+ "path": "connection-ready.tsx",
1271
+ "role": "react",
1272
+ "bytes": 4717,
1273
+ "integrity": "sha256-haMZOzmYROHKRfx8ZeGeG5pzT/ln1vBsoo7Gop/Tbsk="
1274
+ }
1275
+ ],
1276
+ "themeable": true,
1277
+ "license": "MIT",
1278
+ "author": "Mlola"
1279
+ },
917
1280
  {
918
1281
  "id": "dashboard",
919
1282
  "kind": "2d",
@@ -1166,6 +1529,62 @@
1166
1529
  "license": "MIT",
1167
1530
  "author": "Mlola"
1168
1531
  },
1532
+ {
1533
+ "id": "focus-session",
1534
+ "kind": "2d",
1535
+ "title": "Focus session",
1536
+ "summary": "A desk timer beside a single task card. A quiet interval for focused work.",
1537
+ "tags": [
1538
+ "focus",
1539
+ "time",
1540
+ "productivity"
1541
+ ],
1542
+ "files": [
1543
+ {
1544
+ "path": "focus-session.svg",
1545
+ "role": "source",
1546
+ "bytes": 4556,
1547
+ "integrity": "sha256-MMetcCBUVOGyTB+NMbn8Y26SJzw4T1nooZqEXltfTO4="
1548
+ },
1549
+ {
1550
+ "path": "focus-session.tsx",
1551
+ "role": "react",
1552
+ "bytes": 5535,
1553
+ "integrity": "sha256-uaVnzf0IYyYPxNKkHr7Zjw39Ww70eAnkslQ8PstpAB0="
1554
+ }
1555
+ ],
1556
+ "themeable": true,
1557
+ "license": "MIT",
1558
+ "author": "Mlola"
1559
+ },
1560
+ {
1561
+ "id": "idea-notes",
1562
+ "kind": "2d",
1563
+ "title": "Idea notes",
1564
+ "summary": "A bound notebook, page marker and a carefully placed pencil, ready for the next thought.",
1565
+ "tags": [
1566
+ "notes",
1567
+ "ideas",
1568
+ "writing"
1569
+ ],
1570
+ "files": [
1571
+ {
1572
+ "path": "idea-notes.svg",
1573
+ "role": "source",
1574
+ "bytes": 3523,
1575
+ "integrity": "sha256-N5xtNBstgWIvK//zBu1Gp7Pvu14x12l3FLNRoi3fnAE="
1576
+ },
1577
+ {
1578
+ "path": "idea-notes.tsx",
1579
+ "role": "react",
1580
+ "bytes": 4469,
1581
+ "integrity": "sha256-F1F2GrO7mke3AJeD05aTUybpvyEVkWWGyBNP7rcdkVE="
1582
+ }
1583
+ ],
1584
+ "themeable": true,
1585
+ "license": "MIT",
1586
+ "author": "Mlola"
1587
+ },
1169
1588
  {
1170
1589
  "id": "integrations",
1171
1590
  "kind": "2d",
@@ -1222,6 +1641,34 @@
1222
1641
  "license": "MIT",
1223
1642
  "author": "Mlola"
1224
1643
  },
1644
+ {
1645
+ "id": "knowledge-base",
1646
+ "kind": "2d",
1647
+ "title": "Knowledge base",
1648
+ "summary": "A considered row of reference books with a saved page and a reading note.",
1649
+ "tags": [
1650
+ "docs",
1651
+ "learning",
1652
+ "library"
1653
+ ],
1654
+ "files": [
1655
+ {
1656
+ "path": "knowledge-base.svg",
1657
+ "role": "source",
1658
+ "bytes": 4192,
1659
+ "integrity": "sha256-wH6Fw9BVS7dI69Xh8ylpEgHVLu4CsVpj5VSzNVsnvhk="
1660
+ },
1661
+ {
1662
+ "path": "knowledge-base.tsx",
1663
+ "role": "react",
1664
+ "bytes": 5161,
1665
+ "integrity": "sha256-SEpaAuYt/kzBzapHpOeC4iaKMbGSk3h2fpa681VWrQQ="
1666
+ }
1667
+ ],
1668
+ "themeable": true,
1669
+ "license": "MIT",
1670
+ "author": "Mlola"
1671
+ },
1225
1672
  {
1226
1673
  "id": "link",
1227
1674
  "kind": "2d",
@@ -1250,6 +1697,34 @@
1250
1697
  "license": "MIT",
1251
1698
  "author": "Mlola"
1252
1699
  },
1700
+ {
1701
+ "id": "mail-delivery",
1702
+ "kind": "2d",
1703
+ "title": "Mail delivery",
1704
+ "summary": "A folded envelope carrying a neatly composed note. For updates and correspondence.",
1705
+ "tags": [
1706
+ "email",
1707
+ "delivery",
1708
+ "communication"
1709
+ ],
1710
+ "files": [
1711
+ {
1712
+ "path": "mail-delivery.svg",
1713
+ "role": "source",
1714
+ "bytes": 3681,
1715
+ "integrity": "sha256-4IPdgsZQPkpDMQcJCq/hSQADOunTWud1vM3cKdumIdg="
1716
+ },
1717
+ {
1718
+ "path": "mail-delivery.tsx",
1719
+ "role": "react",
1720
+ "bytes": 4616,
1721
+ "integrity": "sha256-k1KEFmBy2u/nTdLBTxzU4jFLOC2dVlt6wiJswV3zTHo="
1722
+ }
1723
+ ],
1724
+ "themeable": true,
1725
+ "license": "MIT",
1726
+ "author": "Mlola"
1727
+ },
1253
1728
  {
1254
1729
  "id": "maintenance",
1255
1730
  "kind": "2d",
@@ -1310,7 +1785,7 @@
1310
1785
  "id": "no-results",
1311
1786
  "kind": "2d",
1312
1787
  "title": "No results",
1313
- "summary": "A magnifier searching a layered document, with an empty field at its centre.",
1788
+ "summary": "A magnifier searching a layered document, with an empty field at its center.",
1314
1789
  "tags": [
1315
1790
  "empty-state",
1316
1791
  "search",
@@ -1327,7 +1802,7 @@
1327
1802
  "path": "no-results.tsx",
1328
1803
  "role": "react",
1329
1804
  "bytes": 5800,
1330
- "integrity": "sha256-CDORmpix2cd9bwtV96F84+kmM+iWh0uXKEzXkJ5y33I="
1805
+ "integrity": "sha256-AsJuBu37uhuBIEI+qfgs3yCZxEOUAO8yqRw2t85+Qyk="
1331
1806
  }
1332
1807
  ],
1333
1808
  "themeable": true,
@@ -1422,7 +1897,7 @@
1422
1897
  "id": "package-tracking",
1423
1898
  "kind": "2d",
1424
1899
  "title": "Package tracking",
1425
- "summary": "A labelled parcel progressing along a dotted route to a destination pin.",
1900
+ "summary": "A labeled parcel progressing along a dotted route to a destination pin.",
1426
1901
  "tags": [
1427
1902
  "shipping",
1428
1903
  "tracking",
@@ -1438,8 +1913,8 @@
1438
1913
  {
1439
1914
  "path": "package-tracking.tsx",
1440
1915
  "role": "react",
1441
- "bytes": 4057,
1442
- "integrity": "sha256-Mux5Q3GzBxgfC6OOEa5zJL203b4nH9QeVJ/QQTPS+9I="
1916
+ "bytes": 4056,
1917
+ "integrity": "sha256-RskIyEVKRwtPPzqmY3Awi/Hz5CMLIiHf4DyHbJbFBvU="
1443
1918
  }
1444
1919
  ],
1445
1920
  "themeable": true,
@@ -1447,27 +1922,27 @@
1447
1922
  "author": "Mlola"
1448
1923
  },
1449
1924
  {
1450
- "id": "roadmap",
1925
+ "id": "portable-files",
1451
1926
  "kind": "2d",
1452
- "title": "Roadmap",
1453
- "summary": "A folding project timeline with milestones and a highlighted next step.",
1927
+ "title": "Portable files",
1928
+ "summary": "A compact memory stick beside two file cards, ready to carry a small collection.",
1454
1929
  "tags": [
1455
- "roadmap",
1456
- "planning",
1457
- "milestones"
1930
+ "storage",
1931
+ "transfer",
1932
+ "files"
1458
1933
  ],
1459
1934
  "files": [
1460
1935
  {
1461
- "path": "roadmap.svg",
1936
+ "path": "portable-files.svg",
1462
1937
  "role": "source",
1463
- "bytes": 6403,
1464
- "integrity": "sha256-VGmXHxFV6dZH7naewqSFjNXW4aL9TXo313mIkhpRRIY="
1938
+ "bytes": 3690,
1939
+ "integrity": "sha256-OtOIv1uuHhUGKx3HB/fei7HZhkC740W/NiDfj/nLfDo="
1465
1940
  },
1466
1941
  {
1467
- "path": "roadmap.tsx",
1942
+ "path": "portable-files.tsx",
1468
1943
  "role": "react",
1469
- "bytes": 7400,
1470
- "integrity": "sha256-PyS0RKSie4ScWYh84GMkOH1uM4NVIeaPsqN6G510IEI="
1944
+ "bytes": 4672,
1945
+ "integrity": "sha256-+SOH+jTy2E1WiSiXoOK/BaAQAe2BjgHQjBGFt1dIh7Y="
1471
1946
  }
1472
1947
  ],
1473
1948
  "themeable": true,
@@ -1475,27 +1950,27 @@
1475
1950
  "author": "Mlola"
1476
1951
  },
1477
1952
  {
1478
- "id": "search-index",
1953
+ "id": "quick-calculation",
1479
1954
  "kind": "2d",
1480
- "title": "Search index",
1481
- "summary": "A searchable card catalogue with alphabetized tabs and a hovering magnifier.",
1955
+ "title": "Quick calculation",
1956
+ "summary": "A tactile calculator beside a lined estimate sheet, keeping everyday totals orderly.",
1482
1957
  "tags": [
1483
- "search",
1484
- "index",
1485
- "organization"
1958
+ "calculate",
1959
+ "planning",
1960
+ "numbers"
1486
1961
  ],
1487
1962
  "files": [
1488
1963
  {
1489
- "path": "search-index.svg",
1964
+ "path": "quick-calculation.svg",
1490
1965
  "role": "source",
1491
- "bytes": 4024,
1492
- "integrity": "sha256-zeXNwQWmW6aBCw8uXyLAntY94sK+Nz6b2tFfvMn4tKg="
1966
+ "bytes": 6134,
1967
+ "integrity": "sha256-3Jb/onmX6KHUFX9W5GVF0o7Id083MSv6Ji3gvBEABoc="
1493
1968
  },
1494
1969
  {
1495
- "path": "search-index.tsx",
1970
+ "path": "quick-calculation.tsx",
1496
1971
  "role": "react",
1497
- "bytes": 4988,
1498
- "integrity": "sha256-B01lKtpiwqvEwuPmJavJT3G8E5lTQ66gxtoLjkL1ww8="
1972
+ "bytes": 7231,
1973
+ "integrity": "sha256-1MFh87DUAVtneUp42gz4eyhuM8SsKNO0kKltDEB95kM="
1499
1974
  }
1500
1975
  ],
1501
1976
  "themeable": true,
@@ -1503,27 +1978,27 @@
1503
1978
  "author": "Mlola"
1504
1979
  },
1505
1980
  {
1506
- "id": "secure",
1981
+ "id": "responsive-layout",
1507
1982
  "kind": "2d",
1508
- "title": "Secure",
1509
- "summary": "A layered security shield protecting a credential card, with an inset lock and a verification seal.",
1983
+ "title": "Responsive layout",
1984
+ "summary": "One calm interface shared across a desktop display and a pocket screen.",
1510
1985
  "tags": [
1511
- "security",
1512
- "privacy",
1513
- "auth"
1986
+ "devices",
1987
+ "responsive",
1988
+ "interface"
1514
1989
  ],
1515
1990
  "files": [
1516
1991
  {
1517
- "path": "secure.svg",
1992
+ "path": "responsive-layout.svg",
1518
1993
  "role": "source",
1519
- "bytes": 4513,
1520
- "integrity": "sha256-DfQCBeSjDeXMV2/aj8gbyZ96qkt+xbKAbStNQ/WTuog="
1994
+ "bytes": 4334,
1995
+ "integrity": "sha256-mlLTvdbtgyM1DxtcACF+Ns2mOiYsfbIvZN0VgR8V2Uw="
1521
1996
  },
1522
1997
  {
1523
- "path": "secure.tsx",
1998
+ "path": "responsive-layout.tsx",
1524
1999
  "role": "react",
1525
- "bytes": 5463,
1526
- "integrity": "sha256-wTJ37xnH/YYorXYm7Kw0LmKSdjkB3WRzE6N2HtRl8Ho="
2000
+ "bytes": 5330,
2001
+ "integrity": "sha256-0lbyR9xjDbXg4rRgKHux5nDd5b4WvlMftK5OSBlDS18="
1527
2002
  }
1528
2003
  ],
1529
2004
  "themeable": true,
@@ -1531,15 +2006,99 @@
1531
2006
  "author": "Mlola"
1532
2007
  },
1533
2008
  {
1534
- "id": "settings",
2009
+ "id": "roadmap",
1535
2010
  "kind": "2d",
1536
- "title": "Settings",
1537
- "summary": "An adjustment panel with tactile sliders and a small gear token.",
2011
+ "title": "Roadmap",
2012
+ "summary": "A folding project timeline with milestones and a highlighted next step.",
1538
2013
  "tags": [
1539
- "settings",
1540
- "preferences",
1541
- "controls"
1542
- ],
2014
+ "roadmap",
2015
+ "planning",
2016
+ "milestones"
2017
+ ],
2018
+ "files": [
2019
+ {
2020
+ "path": "roadmap.svg",
2021
+ "role": "source",
2022
+ "bytes": 6403,
2023
+ "integrity": "sha256-VGmXHxFV6dZH7naewqSFjNXW4aL9TXo313mIkhpRRIY="
2024
+ },
2025
+ {
2026
+ "path": "roadmap.tsx",
2027
+ "role": "react",
2028
+ "bytes": 7400,
2029
+ "integrity": "sha256-PyS0RKSie4ScWYh84GMkOH1uM4NVIeaPsqN6G510IEI="
2030
+ }
2031
+ ],
2032
+ "themeable": true,
2033
+ "license": "MIT",
2034
+ "author": "Mlola"
2035
+ },
2036
+ {
2037
+ "id": "search-index",
2038
+ "kind": "2d",
2039
+ "title": "Search index",
2040
+ "summary": "A searchable card catalog with alphabetized tabs and a hovering magnifier.",
2041
+ "tags": [
2042
+ "search",
2043
+ "index",
2044
+ "organization"
2045
+ ],
2046
+ "files": [
2047
+ {
2048
+ "path": "search-index.svg",
2049
+ "role": "source",
2050
+ "bytes": 4024,
2051
+ "integrity": "sha256-zeXNwQWmW6aBCw8uXyLAntY94sK+Nz6b2tFfvMn4tKg="
2052
+ },
2053
+ {
2054
+ "path": "search-index.tsx",
2055
+ "role": "react",
2056
+ "bytes": 4986,
2057
+ "integrity": "sha256-IkulM8Tk9MpuwbCS88IlBbrF3oSx6g05pw2Ydm/ld8s="
2058
+ }
2059
+ ],
2060
+ "themeable": true,
2061
+ "license": "MIT",
2062
+ "author": "Mlola"
2063
+ },
2064
+ {
2065
+ "id": "secure",
2066
+ "kind": "2d",
2067
+ "title": "Secure",
2068
+ "summary": "A layered security shield protecting a credential card, with an inset lock and a verification seal.",
2069
+ "tags": [
2070
+ "security",
2071
+ "privacy",
2072
+ "auth"
2073
+ ],
2074
+ "files": [
2075
+ {
2076
+ "path": "secure.svg",
2077
+ "role": "source",
2078
+ "bytes": 4513,
2079
+ "integrity": "sha256-DfQCBeSjDeXMV2/aj8gbyZ96qkt+xbKAbStNQ/WTuog="
2080
+ },
2081
+ {
2082
+ "path": "secure.tsx",
2083
+ "role": "react",
2084
+ "bytes": 5463,
2085
+ "integrity": "sha256-wTJ37xnH/YYorXYm7Kw0LmKSdjkB3WRzE6N2HtRl8Ho="
2086
+ }
2087
+ ],
2088
+ "themeable": true,
2089
+ "license": "MIT",
2090
+ "author": "Mlola"
2091
+ },
2092
+ {
2093
+ "id": "settings",
2094
+ "kind": "2d",
2095
+ "title": "Settings",
2096
+ "summary": "An adjustment panel with tactile sliders and a small gear token.",
2097
+ "tags": [
2098
+ "settings",
2099
+ "preferences",
2100
+ "controls"
2101
+ ],
1543
2102
  "files": [
1544
2103
  {
1545
2104
  "path": "settings.svg",
@@ -1558,6 +2117,34 @@
1558
2117
  "license": "MIT",
1559
2118
  "author": "Mlola"
1560
2119
  },
2120
+ {
2121
+ "id": "sorted-papers",
2122
+ "kind": "2d",
2123
+ "title": "Sorted papers",
2124
+ "summary": "A low document tray receiving a clean stack of reviewed pages.",
2125
+ "tags": [
2126
+ "documents",
2127
+ "organization",
2128
+ "inbox"
2129
+ ],
2130
+ "files": [
2131
+ {
2132
+ "path": "sorted-papers.svg",
2133
+ "role": "source",
2134
+ "bytes": 3702,
2135
+ "integrity": "sha256-7jOYvMRxgVOLEWXNP6ngGdfLabYFWF1JcOsWeRcQ5po="
2136
+ },
2137
+ {
2138
+ "path": "sorted-papers.tsx",
2139
+ "role": "react",
2140
+ "bytes": 4619,
2141
+ "integrity": "sha256-7pe3kBqv8Bf3TIeHGzlzCCnaxgy4SX+mUvnWrEBvs9A="
2142
+ }
2143
+ ],
2144
+ "themeable": true,
2145
+ "license": "MIT",
2146
+ "author": "Mlola"
2147
+ },
1561
2148
  {
1562
2149
  "id": "storage",
1563
2150
  "kind": "2d",
@@ -1733,6 +2320,41 @@
1733
2320
  "label": "3D assets",
1734
2321
  "summary": "glTF models with a poster still. Materials are named by theme role, so a Mlola viewer paints them in the active theme; any other viewer shows their own colors.",
1735
2322
  "items": [
2323
+ {
2324
+ "id": "archive-box",
2325
+ "kind": "3d",
2326
+ "title": "Archive box",
2327
+ "summary": "A lidded archive case with an inset label frame, porcelain shell and enamel lid.",
2328
+ "tags": [
2329
+ "archive",
2330
+ "organization",
2331
+ "storage"
2332
+ ],
2333
+ "files": [
2334
+ {
2335
+ "path": "archive-box.glb",
2336
+ "role": "source",
2337
+ "bytes": 198100,
2338
+ "integrity": "sha256-ywNZ9jEICub4fqF9Ms7H4DCIyqNEXVltrCpyIoSqnVI="
2339
+ },
2340
+ {
2341
+ "path": "archive-box-poster.webp",
2342
+ "role": "poster",
2343
+ "bytes": 22636,
2344
+ "integrity": "sha256-CNirc+2EgGRfnVulO6aEbDk99QR5HyuswdgHPLyyOyo="
2345
+ }
2346
+ ],
2347
+ "themeable": true,
2348
+ "materials": [
2349
+ "surface",
2350
+ "primary",
2351
+ "metal",
2352
+ "neutral",
2353
+ "ink"
2354
+ ],
2355
+ "license": "MIT",
2356
+ "author": "Mlola"
2357
+ },
1736
2358
  {
1737
2359
  "id": "blocks",
1738
2360
  "kind": "3d",
@@ -1766,6 +2388,75 @@
1766
2388
  "license": "MIT",
1767
2389
  "author": "Mlola"
1768
2390
  },
2391
+ {
2392
+ "id": "books",
2393
+ "kind": "3d",
2394
+ "title": "Reference books",
2395
+ "summary": "Three bound reference volumes with inset page blocks, enamel covers and a fabric bookmark.",
2396
+ "tags": [
2397
+ "docs",
2398
+ "library",
2399
+ "knowledge"
2400
+ ],
2401
+ "files": [
2402
+ {
2403
+ "path": "books.glb",
2404
+ "role": "source",
2405
+ "bytes": 723864,
2406
+ "integrity": "sha256-rqjGLLmumpDRAeuwmyM+nqNT0H8uG4hKcBz4165iwCo="
2407
+ },
2408
+ {
2409
+ "path": "books-poster.webp",
2410
+ "role": "poster",
2411
+ "bytes": 18478,
2412
+ "integrity": "sha256-tUqwxTD7AVvN8Ejnue/S5PNE+eTB1HLNAHV8+1AJ5GM="
2413
+ }
2414
+ ],
2415
+ "themeable": true,
2416
+ "materials": [
2417
+ "surface",
2418
+ "primary",
2419
+ "neutral",
2420
+ "accent",
2421
+ "ink"
2422
+ ],
2423
+ "license": "MIT",
2424
+ "author": "Mlola"
2425
+ },
2426
+ {
2427
+ "id": "calculator",
2428
+ "kind": "3d",
2429
+ "title": "Desk calculator",
2430
+ "summary": "A porcelain calculator with a recessed display, tactile enamel keys and one warm action key.",
2431
+ "tags": [
2432
+ "calculate",
2433
+ "planning",
2434
+ "numbers"
2435
+ ],
2436
+ "files": [
2437
+ {
2438
+ "path": "calculator.glb",
2439
+ "role": "source",
2440
+ "bytes": 521268,
2441
+ "integrity": "sha256-4DbzOiVISzhayx0ICs29u1FYr+yMrlQkZDg3RQWY084="
2442
+ },
2443
+ {
2444
+ "path": "calculator-poster.webp",
2445
+ "role": "poster",
2446
+ "bytes": 29094,
2447
+ "integrity": "sha256-cd48r/DLJQQDWHPx0TYLQ7TvLHvKx68jnZpEyMf+Lz8="
2448
+ }
2449
+ ],
2450
+ "themeable": true,
2451
+ "materials": [
2452
+ "surface",
2453
+ "ink",
2454
+ "primary",
2455
+ "accent"
2456
+ ],
2457
+ "license": "MIT",
2458
+ "author": "Mlola"
2459
+ },
1769
2460
  {
1770
2461
  "id": "chat",
1771
2462
  "kind": "3d",
@@ -1799,11 +2490,183 @@
1799
2490
  "license": "MIT",
1800
2491
  "author": "Mlola"
1801
2492
  },
2493
+ {
2494
+ "id": "desk-timer",
2495
+ "kind": "3d",
2496
+ "title": "Desk timer",
2497
+ "summary": "A porcelain focus timer with an enamel dial, polished rim and precise hour marks.",
2498
+ "tags": [
2499
+ "focus",
2500
+ "time",
2501
+ "productivity"
2502
+ ],
2503
+ "files": [
2504
+ {
2505
+ "path": "desk-timer.glb",
2506
+ "role": "source",
2507
+ "bytes": 617756,
2508
+ "integrity": "sha256-WS2TuWH4nnUPkC4FDaUwxKGyT5MuekazIrPjHvNlx4M="
2509
+ },
2510
+ {
2511
+ "path": "desk-timer-poster.webp",
2512
+ "role": "poster",
2513
+ "bytes": 19312,
2514
+ "integrity": "sha256-FrGZnjwaxBialPb81oOgY5WQeoDBtm3xTB4hfXmaXvs="
2515
+ }
2516
+ ],
2517
+ "themeable": true,
2518
+ "materials": [
2519
+ "surface",
2520
+ "metal",
2521
+ "primary",
2522
+ "accent"
2523
+ ],
2524
+ "license": "MIT",
2525
+ "author": "Mlola"
2526
+ },
2527
+ {
2528
+ "id": "display",
2529
+ "kind": "3d",
2530
+ "title": "Desktop display",
2531
+ "summary": "A slim porcelain monitor with a recessed enamel interface and a balanced metal stand.",
2532
+ "tags": [
2533
+ "devices",
2534
+ "interface",
2535
+ "workspace"
2536
+ ],
2537
+ "files": [
2538
+ {
2539
+ "path": "display.glb",
2540
+ "role": "source",
2541
+ "bytes": 308076,
2542
+ "integrity": "sha256-/5gdelCSPnBYZ4D9l5aI3GGywotEko1ZwCWdBH5l5TA="
2543
+ },
2544
+ {
2545
+ "path": "display-poster.webp",
2546
+ "role": "poster",
2547
+ "bytes": 18304,
2548
+ "integrity": "sha256-aaypMCzLxRirRr36nTr7kNum7PSEF8SHPgn9JZOWAww="
2549
+ }
2550
+ ],
2551
+ "themeable": true,
2552
+ "materials": [
2553
+ "surface",
2554
+ "ink",
2555
+ "primary",
2556
+ "neutral",
2557
+ "metal"
2558
+ ],
2559
+ "license": "MIT",
2560
+ "author": "Mlola"
2561
+ },
2562
+ {
2563
+ "id": "document-tray",
2564
+ "kind": "3d",
2565
+ "title": "Document tray",
2566
+ "summary": "A low enamel sorting tray with porcelain sheets and an open front for easy access.",
2567
+ "tags": [
2568
+ "documents",
2569
+ "inbox",
2570
+ "organization"
2571
+ ],
2572
+ "files": [
2573
+ {
2574
+ "path": "document-tray.glb",
2575
+ "role": "source",
2576
+ "bytes": 331580,
2577
+ "integrity": "sha256-ViMIiRRFGK9GQ94wKK9+DU9c4UeZ0a/L0kQDJpTgVlg="
2578
+ },
2579
+ {
2580
+ "path": "document-tray-poster.webp",
2581
+ "role": "poster",
2582
+ "bytes": 27748,
2583
+ "integrity": "sha256-m2I5lk1YmX7IvJosNaeaWovS/PUliZP7yA1AGk0nqdw="
2584
+ }
2585
+ ],
2586
+ "themeable": true,
2587
+ "materials": [
2588
+ "primary",
2589
+ "surface",
2590
+ "neutral",
2591
+ "metal"
2592
+ ],
2593
+ "license": "MIT",
2594
+ "author": "Mlola"
2595
+ },
2596
+ {
2597
+ "id": "drive",
2598
+ "kind": "3d",
2599
+ "title": "Backup drive",
2600
+ "summary": "A compact external drive with an enamel cover, recessed connection and a small status light.",
2601
+ "tags": [
2602
+ "backup",
2603
+ "storage",
2604
+ "hardware"
2605
+ ],
2606
+ "files": [
2607
+ {
2608
+ "path": "drive.glb",
2609
+ "role": "source",
2610
+ "bytes": 309744,
2611
+ "integrity": "sha256-Sv4JFyRc1HhtFUrMRMisa59LyV6emEk3WA9omj9zU24="
2612
+ },
2613
+ {
2614
+ "path": "drive-poster.webp",
2615
+ "role": "poster",
2616
+ "bytes": 15656,
2617
+ "integrity": "sha256-PrCyVImodz4e8TR7MHqJS0IpWx3GpE4xAmqV2ddIyWs="
2618
+ }
2619
+ ],
2620
+ "themeable": true,
2621
+ "materials": [
2622
+ "surface",
2623
+ "primary",
2624
+ "ink",
2625
+ "metal",
2626
+ "accent"
2627
+ ],
2628
+ "license": "MIT",
2629
+ "author": "Mlola"
2630
+ },
2631
+ {
2632
+ "id": "envelope",
2633
+ "kind": "3d",
2634
+ "title": "Envelope",
2635
+ "summary": "A porcelain envelope with a folded enamel flap, inset seams and a warm seal.",
2636
+ "tags": [
2637
+ "mail",
2638
+ "updates",
2639
+ "communication"
2640
+ ],
2641
+ "files": [
2642
+ {
2643
+ "path": "envelope.glb",
2644
+ "role": "source",
2645
+ "bytes": 230936,
2646
+ "integrity": "sha256-cxqzCCfqpYhEtfMjs8bxDnLE5Tg4FjQRbrvzVPwYftE="
2647
+ },
2648
+ {
2649
+ "path": "envelope-poster.webp",
2650
+ "role": "poster",
2651
+ "bytes": 29408,
2652
+ "integrity": "sha256-JTyd+cTRdTc13nRBe/MCMbNALLcqTEkarO6nk8x/tzM="
2653
+ }
2654
+ ],
2655
+ "themeable": true,
2656
+ "materials": [
2657
+ "surface",
2658
+ "neutral",
2659
+ "primary",
2660
+ "accent"
2661
+ ],
2662
+ "license": "MIT",
2663
+ "author": "Mlola"
2664
+ },
1802
2665
  {
1803
2666
  "id": "folder",
1804
2667
  "kind": "3d",
1805
2668
  "title": "Folder",
1806
- "summary": "A moulded project folder with layered documents, a label and a brass-coloured tab.",
2669
+ "summary": "A molded project folder with layered documents, a label and a brass-colored tab.",
1807
2670
  "tags": [
1808
2671
  "files",
1809
2672
  "empty-state",
@@ -1868,6 +2731,40 @@
1868
2731
  "license": "MIT",
1869
2732
  "author": "Mlola"
1870
2733
  },
2734
+ {
2735
+ "id": "key",
2736
+ "kind": "3d",
2737
+ "title": "Access key",
2738
+ "summary": "A machined key with a porcelain grip, enamel inset and two carefully spaced teeth.",
2739
+ "tags": [
2740
+ "access",
2741
+ "security",
2742
+ "permissions"
2743
+ ],
2744
+ "files": [
2745
+ {
2746
+ "path": "key.glb",
2747
+ "role": "source",
2748
+ "bytes": 197112,
2749
+ "integrity": "sha256-H1SWBfQyo4HCzKsn07X9pmSsTpZvrV8xmwr9Z024Dhs="
2750
+ },
2751
+ {
2752
+ "path": "key-poster.webp",
2753
+ "role": "poster",
2754
+ "bytes": 21580,
2755
+ "integrity": "sha256-6eMFM/8OQ5SWisQh6Tb/TvUKYnrC4B3FlT6e9Wl2zUA="
2756
+ }
2757
+ ],
2758
+ "themeable": true,
2759
+ "materials": [
2760
+ "surface",
2761
+ "primary",
2762
+ "metal",
2763
+ "neutral"
2764
+ ],
2765
+ "license": "MIT",
2766
+ "author": "Mlola"
2767
+ },
1871
2768
  {
1872
2769
  "id": "layers",
1873
2770
  "kind": "3d",
@@ -1902,6 +2799,40 @@
1902
2799
  "license": "MIT",
1903
2800
  "author": "Mlola"
1904
2801
  },
2802
+ {
2803
+ "id": "notebook",
2804
+ "kind": "3d",
2805
+ "title": "Pocket notebook",
2806
+ "summary": "A porcelain-bound notebook with a recessed cover, page block and warm ribbon marker.",
2807
+ "tags": [
2808
+ "notes",
2809
+ "ideas",
2810
+ "writing"
2811
+ ],
2812
+ "files": [
2813
+ {
2814
+ "path": "notebook.glb",
2815
+ "role": "source",
2816
+ "bytes": 340252,
2817
+ "integrity": "sha256-kSMkBr5h4UhMJ9qqYbhM03fTJqSQLy3jlsBgc1z2qLk="
2818
+ },
2819
+ {
2820
+ "path": "notebook-poster.webp",
2821
+ "role": "poster",
2822
+ "bytes": 28972,
2823
+ "integrity": "sha256-+BNdnul5c4MQD/Zo6RcSJNxHUhOgONoMVLa4euac528="
2824
+ }
2825
+ ],
2826
+ "themeable": true,
2827
+ "materials": [
2828
+ "surface",
2829
+ "primary",
2830
+ "neutral",
2831
+ "accent"
2832
+ ],
2833
+ "license": "MIT",
2834
+ "author": "Mlola"
2835
+ },
1905
2836
  {
1906
2837
  "id": "orb",
1907
2838
  "kind": "3d",
@@ -2040,6 +2971,41 @@
2040
2971
  "license": "MIT",
2041
2972
  "author": "Mlola"
2042
2973
  },
2974
+ {
2975
+ "id": "router",
2976
+ "kind": "3d",
2977
+ "title": "Wireless router",
2978
+ "summary": "A compact porcelain router with enamel fascia, a single status light and two adjustable antennae.",
2979
+ "tags": [
2980
+ "network",
2981
+ "connection",
2982
+ "hardware"
2983
+ ],
2984
+ "files": [
2985
+ {
2986
+ "path": "router.glb",
2987
+ "role": "source",
2988
+ "bytes": 330340,
2989
+ "integrity": "sha256-zKLkm+wUjKLI/wAGhm3JeJjunBJlqlPjwprEdQRybME="
2990
+ },
2991
+ {
2992
+ "path": "router-poster.webp",
2993
+ "role": "poster",
2994
+ "bytes": 21896,
2995
+ "integrity": "sha256-pe6nYcTkONhraW/3Rri7ZvEySmzDmZizKEl8J/EFEeU="
2996
+ }
2997
+ ],
2998
+ "themeable": true,
2999
+ "materials": [
3000
+ "surface",
3001
+ "primary",
3002
+ "accent",
3003
+ "metal",
3004
+ "ink"
3005
+ ],
3006
+ "license": "MIT",
3007
+ "author": "Mlola"
3008
+ },
2043
3009
  {
2044
3010
  "id": "shield",
2045
3011
  "kind": "3d",
@@ -2073,6 +3039,42 @@
2073
3039
  ],
2074
3040
  "license": "MIT",
2075
3041
  "author": "Mlola"
3042
+ },
3043
+ {
3044
+ "id": "usb-stick",
3045
+ "kind": "3d",
3046
+ "title": "Portable memory",
3047
+ "summary": "A compact enamel memory stick with a polished connector, inset porcelain panel and status light.",
3048
+ "tags": [
3049
+ "storage",
3050
+ "transfer",
3051
+ "portable"
3052
+ ],
3053
+ "files": [
3054
+ {
3055
+ "path": "usb-stick.glb",
3056
+ "role": "source",
3057
+ "bytes": 213544,
3058
+ "integrity": "sha256-LrgnDbxxaWzUa2FlRmvRhgMt2jZ0HVIQ96Mp/sE1QwQ="
3059
+ },
3060
+ {
3061
+ "path": "usb-stick-poster.webp",
3062
+ "role": "poster",
3063
+ "bytes": 29242,
3064
+ "integrity": "sha256-E0TOoKzprhHC7RtM1bTcDjnyU3BmYTOCpQ/n6s0Djdg="
3065
+ }
3066
+ ],
3067
+ "themeable": true,
3068
+ "materials": [
3069
+ "primary",
3070
+ "surface",
3071
+ "metal",
3072
+ "ink",
3073
+ "accent",
3074
+ "neutral"
3075
+ ],
3076
+ "license": "MIT",
3077
+ "author": "Mlola"
2076
3078
  }
2077
3079
  ]
2078
3080
  }