on main help sign in
adding aliases and sigil review tool
77cb7edJohn Hyde
ui/package-lock.json+68−28
@@ -8,6 +8,7 @@
8 "name": "urbit-astrolabe",
8 "name": "urbit-astrolabe",
9 "version": "0.0.0",
9 "version": "0.0.0",
10 "dependencies": {
10 "dependencies": {
11+ "@johnhyde/sigil-js": "file:../../sigil-js",
11 "@tlon/phonemes-js": "^1.0.0",
12 "@tlon/phonemes-js": "^1.0.0",
12 "@tlon/sigil-js": "^1.4.5",
13 "@tlon/sigil-js": "^1.4.5",
13 "@urbit/api": "^2.1.0",
14 "@urbit/api": "^2.1.0",
@@ -39,6 +40,27 @@
39 "vite": "^2.7.2"
40 "vite": "^2.7.2"
40 }
41 }
41 },
42 },
43+ "../../sigil-js": {
44+ "name": "@johnhyde/sigil-js",
45+ "version": "1.4.5",
46+ "license": "MIT",
47+ "dependencies": {
48+ "invariant": "^2.2.4",
49+ "svgson": "^4.0.0",
50+ "transformation-matrix": "2.1.1"
51+ },
52+ "devDependencies": {
53+ "@types/invariant": "^2.2.31",
54+ "@types/react": "^17.0.20",
55+ "husky": "^4.2.3",
56+ "prettier": "^1.19.1",
57+ "tsdx": "^0.14.1",
58+ "typescript": "^3.8.3"
59+ },
60+ "peerDependencies": {
61+ "react": "^16 || ^17"
62+ }
63+ },
42 "node_modules/@babel/code-frame": {
64 "node_modules/@babel/code-frame": {
43 "version": "7.16.7",
65 "version": "7.16.7",
44 "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz",
66 "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz",
@@ -147,6 +169,10 @@
147 "node": ">=6.9.0"
169 "node": ">=6.9.0"
148 }
170 }
149 },
171 },
172+ "node_modules/@johnhyde/sigil-js": {
173+ "resolved": "../../sigil-js",
174+ "link": true
175+ },
150 "node_modules/@microsoft/fetch-event-source": {
176 "node_modules/@microsoft/fetch-event-source": {
151 "version": "2.0.1",
177 "version": "2.0.1",
152 "resolved": "https://registry.npmjs.org/@microsoft/fetch-event-source/-/fetch-event-source-2.0.1.tgz",
178 "resolved": "https://registry.npmjs.org/@microsoft/fetch-event-source/-/fetch-event-source-2.0.1.tgz",
@@ -775,7 +801,7 @@
775 "node_modules/deep-rename-keys": {
801 "node_modules/deep-rename-keys": {
776 "version": "0.2.1",
802 "version": "0.2.1",
777 "resolved": "https://registry.npmjs.org/deep-rename-keys/-/deep-rename-keys-0.2.1.tgz",
803 "resolved": "https://registry.npmjs.org/deep-rename-keys/-/deep-rename-keys-0.2.1.tgz",
778− "integrity": "sha1-7eeFN9emaivmFRfir5Vtf1ij8dg=",
804+ "integrity": "sha512-RHd9ABw4Fvk+gYDWqwOftG849x0bYOySl/RgX0tLI9i27ZIeSO91mLZJEp7oPHOMFqHvpgu21YptmDt0FYD/0A==",
779 "dependencies": {
805 "dependencies": {
780 "kind-of": "^3.0.2",
806 "kind-of": "^3.0.2",
781 "rename-keys": "^1.1.2"
807 "rename-keys": "^1.1.2"
@@ -1153,7 +1179,7 @@
1153 "node_modules/eventemitter3": {
1179 "node_modules/eventemitter3": {
1154 "version": "2.0.3",
1180 "version": "2.0.3",
1155 "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz",
1181 "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz",
1156− "integrity": "sha1-teEHm1n7XhuidxwKmTvgYKWMmbo="
1182+ "integrity": "sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg=="
1157 },
1183 },
1158 "node_modules/events": {
1184 "node_modules/events": {
1159 "version": "3.3.0",
1185 "version": "3.3.0",
@@ -1277,7 +1303,7 @@
1277 "node_modules/get-value": {
1303 "node_modules/get-value": {
1278 "version": "2.0.6",
1304 "version": "2.0.6",
1279 "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
1305 "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
1280− "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
1306+ "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==",
1281 "engines": {
1307 "engines": {
1282 "node": ">=0.10.0"
1308 "node": ">=0.10.0"
1283 }
1309 }
@@ -1390,7 +1416,7 @@
1390 "node_modules/has-value": {
1416 "node_modules/has-value": {
1391 "version": "0.3.1",
1417 "version": "0.3.1",
1392 "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
1418 "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
1393− "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
1419+ "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==",
1394 "dependencies": {
1420 "dependencies": {
1395 "get-value": "^2.0.3",
1421 "get-value": "^2.0.3",
1396 "has-values": "^0.1.4",
1422 "has-values": "^0.1.4",
@@ -1403,7 +1429,7 @@
1403 "node_modules/has-value/node_modules/isobject": {
1429 "node_modules/has-value/node_modules/isobject": {
1404 "version": "2.1.0",
1430 "version": "2.1.0",
1405 "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
1431 "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
1406− "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
1432+ "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==",
1407 "dependencies": {
1433 "dependencies": {
1408 "isarray": "1.0.0"
1434 "isarray": "1.0.0"
1409 },
1435 },
@@ -1414,7 +1440,7 @@
1414 "node_modules/has-values": {
1440 "node_modules/has-values": {
1415 "version": "0.1.4",
1441 "version": "0.1.4",
1416 "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
1442 "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
1417− "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=",
1443+ "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ==",
1418 "engines": {
1444 "engines": {
1419 "node": ">=0.10.0"
1445 "node": ">=0.10.0"
1420 }
1446 }
@@ -1571,7 +1597,7 @@
1571 "node_modules/isarray": {
1597 "node_modules/isarray": {
1572 "version": "1.0.0",
1598 "version": "1.0.0",
1573 "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
1599 "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
1574− "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
1600+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
1575 },
1601 },
1576 "node_modules/isexe": {
1602 "node_modules/isexe": {
1577 "version": "2.0.0",
1603 "version": "2.0.0",
@@ -1582,7 +1608,7 @@
1582 "node_modules/isobject": {
1608 "node_modules/isobject": {
1583 "version": "3.0.1",
1609 "version": "3.0.1",
1584 "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
1610 "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
1585− "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
1611+ "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
1586 "engines": {
1612 "engines": {
1587 "node": ">=0.10.0"
1613 "node": ">=0.10.0"
1588 }
1614 }
@@ -1613,7 +1639,7 @@
1613 "node_modules/kind-of": {
1639 "node_modules/kind-of": {
1614 "version": "3.2.2",
1640 "version": "3.2.2",
1615 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
1641 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
1616− "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
1642+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
1617 "dependencies": {
1643 "dependencies": {
1618 "is-buffer": "^1.1.5"
1644 "is-buffer": "^1.1.5"
1619 },
1645 },
@@ -1795,7 +1821,7 @@
1795 "node_modules/object-assign": {
1821 "node_modules/object-assign": {
1796 "version": "4.1.1",
1822 "version": "4.1.1",
1797 "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1823 "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
1798− "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
1824+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
1799 "peer": true,
1825 "peer": true,
1800 "engines": {
1826 "engines": {
1801 "node": ">=0.10.0"
1827 "node": ">=0.10.0"
@@ -1818,7 +1844,7 @@
1818 "node_modules/omit-deep": {
1844 "node_modules/omit-deep": {
1819 "version": "0.3.0",
1845 "version": "0.3.0",
1820 "resolved": "https://registry.npmjs.org/omit-deep/-/omit-deep-0.3.0.tgz",
1846 "resolved": "https://registry.npmjs.org/omit-deep/-/omit-deep-0.3.0.tgz",
1821− "integrity": "sha1-IcivNJm8rdKWUaIyy8rLxSRF6+w=",
1847+ "integrity": "sha512-Lbl/Ma59sss2b15DpnWnGmECBRL8cRl/PjPbPMVW+Y8zIQzRrwMaI65Oy6HvxyhYeILVKBJb2LWeG81bj5zbMg==",
1822 "dependencies": {
1848 "dependencies": {
1823 "is-plain-object": "^2.0.1",
1849 "is-plain-object": "^2.0.1",
1824 "unset-value": "^0.1.1"
1850 "unset-value": "^0.1.1"
@@ -2765,7 +2791,7 @@
2765 "node_modules/unset-value": {
2791 "node_modules/unset-value": {
2766 "version": "0.1.2",
2792 "version": "0.1.2",
2767 "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-0.1.2.tgz",
2793 "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-0.1.2.tgz",
2768− "integrity": "sha1-UGgQuGfyfCpabpsEgzYx9t5Y0xA=",
2794+ "integrity": "sha512-yhv5I4TsldLdE3UcVQn0hD2T5sNCPv4+qm/CTUpRKIpwthYRIipsAPdsrNpOI79hPQa0rTTeW22Fq6JWRcTgNg==",
2769 "dependencies": {
2795 "dependencies": {
2770 "has-value": "^0.3.1",
2796 "has-value": "^0.3.1",
2771 "isobject": "^3.0.0"
2797 "isobject": "^3.0.0"
@@ -2900,7 +2926,7 @@
2900 "node_modules/xml-lexer": {
2926 "node_modules/xml-lexer": {
2901 "version": "0.2.2",
2927 "version": "0.2.2",
2902 "resolved": "https://registry.npmjs.org/xml-lexer/-/xml-lexer-0.2.2.tgz",
2928 "resolved": "https://registry.npmjs.org/xml-lexer/-/xml-lexer-0.2.2.tgz",
2903− "integrity": "sha1-UYGTpKozTVj8fSSLVJB5uJkH4EY=",
2929+ "integrity": "sha512-G0i98epIwiUEiKmMcavmVdhtymW+pCAohMRgybyIME9ygfVu8QheIi+YoQh3ngiThsT0SQzJT4R0sKDEv8Ou0w==",
2904 "dependencies": {
2930 "dependencies": {
2905 "eventemitter3": "^2.0.0"
2931 "eventemitter3": "^2.0.0"
2906 }
2932 }
@@ -2908,7 +2934,7 @@
2908 "node_modules/xml-reader": {
2934 "node_modules/xml-reader": {
2909 "version": "2.4.3",
2935 "version": "2.4.3",
2910 "resolved": "https://registry.npmjs.org/xml-reader/-/xml-reader-2.4.3.tgz",
2936 "resolved": "https://registry.npmjs.org/xml-reader/-/xml-reader-2.4.3.tgz",
2911− "integrity": "sha1-n4EMr3xCWlqvuEixxFEDyecddTA=",
2937+ "integrity": "sha512-xWldrIxjeAMAu6+HSf9t50ot1uL5M+BtOidRCWHXIeewvSeIpscWCsp4Zxjk8kHHhdqFBrfK8U0EJeCcnyQ/gA==",
2912 "dependencies": {
2938 "dependencies": {
2913 "eventemitter3": "^2.0.0",
2939 "eventemitter3": "^2.0.0",
2914 "xml-lexer": "^0.2.2"
2940 "xml-lexer": "^0.2.2"
@@ -3056,6 +3082,20 @@
3056 "regenerator-runtime": "^0.13.4"
3082 "regenerator-runtime": "^0.13.4"
3057 }
3083 }
3058 },
3084 },
3085+ "@johnhyde/sigil-js": {
3086+ "version": "file:../../sigil-js",
3087+ "requires": {
3088+ "@types/invariant": "^2.2.31",
3089+ "@types/react": "^17.0.20",
3090+ "husky": "^4.2.3",
3091+ "invariant": "^2.2.4",
3092+ "prettier": "^1.19.1",
3093+ "svgson": "^4.0.0",
3094+ "transformation-matrix": "2.1.1",
3095+ "tsdx": "^0.14.1",
3096+ "typescript": "^3.8.3"
3097+ }
3098+ },
3059 "@microsoft/fetch-event-source": {
3099 "@microsoft/fetch-event-source": {
3060 "version": "2.0.1",
3100 "version": "2.0.1",
3061 "resolved": "https://registry.npmjs.org/@microsoft/fetch-event-source/-/fetch-event-source-2.0.1.tgz",
3101 "resolved": "https://registry.npmjs.org/@microsoft/fetch-event-source/-/fetch-event-source-2.0.1.tgz",
@@ -3512,7 +3552,7 @@
3512 "deep-rename-keys": {
3552 "deep-rename-keys": {
3513 "version": "0.2.1",
3553 "version": "0.2.1",
3514 "resolved": "https://registry.npmjs.org/deep-rename-keys/-/deep-rename-keys-0.2.1.tgz",
3554 "resolved": "https://registry.npmjs.org/deep-rename-keys/-/deep-rename-keys-0.2.1.tgz",
3515− "integrity": "sha1-7eeFN9emaivmFRfir5Vtf1ij8dg=",
3555+ "integrity": "sha512-RHd9ABw4Fvk+gYDWqwOftG849x0bYOySl/RgX0tLI9i27ZIeSO91mLZJEp7oPHOMFqHvpgu21YptmDt0FYD/0A==",
3516 "requires": {
3556 "requires": {
3517 "kind-of": "^3.0.2",
3557 "kind-of": "^3.0.2",
3518 "rename-keys": "^1.1.2"
3558 "rename-keys": "^1.1.2"
@@ -3760,7 +3800,7 @@
3760 "eventemitter3": {
3800 "eventemitter3": {
3761 "version": "2.0.3",
3801 "version": "2.0.3",
3762 "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz",
3802 "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz",
3763− "integrity": "sha1-teEHm1n7XhuidxwKmTvgYKWMmbo="
3803+ "integrity": "sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg=="
3764 },
3804 },
3765 "events": {
3805 "events": {
3766 "version": "3.3.0",
3806 "version": "3.3.0",
@@ -3849,7 +3889,7 @@
3849 "get-value": {
3889 "get-value": {
3850 "version": "2.0.6",
3890 "version": "2.0.6",
3851 "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
3891 "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
3852− "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg="
3892+ "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA=="
3853 },
3893 },
3854 "glob": {
3894 "glob": {
3855 "version": "7.2.0",
3895 "version": "7.2.0",
@@ -3933,7 +3973,7 @@
3933 "has-value": {
3973 "has-value": {
3934 "version": "0.3.1",
3974 "version": "0.3.1",
3935 "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
3975 "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz",
3936− "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=",
3976+ "integrity": "sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q==",
3937 "requires": {
3977 "requires": {
3938 "get-value": "^2.0.3",
3978 "get-value": "^2.0.3",
3939 "has-values": "^0.1.4",
3979 "has-values": "^0.1.4",
@@ -3943,7 +3983,7 @@
3943 "isobject": {
3983 "isobject": {
3944 "version": "2.1.0",
3984 "version": "2.1.0",
3945 "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
3985 "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
3946− "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
3986+ "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==",
3947 "requires": {
3987 "requires": {
3948 "isarray": "1.0.0"
3988 "isarray": "1.0.0"
3949 }
3989 }
@@ -3953,7 +3993,7 @@
3953 "has-values": {
3993 "has-values": {
3954 "version": "0.1.4",
3994 "version": "0.1.4",
3955 "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
3995 "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz",
3956− "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E="
3996+ "integrity": "sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ=="
3957 },
3997 },
3958 "ignore": {
3998 "ignore": {
3959 "version": "5.2.0",
3999 "version": "5.2.0",
@@ -4073,7 +4113,7 @@
4073 "isarray": {
4113 "isarray": {
4074 "version": "1.0.0",
4114 "version": "1.0.0",
4075 "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
4115 "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
4076− "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
4116+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
4077 },
4117 },
4078 "isexe": {
4118 "isexe": {
4079 "version": "2.0.0",
4119 "version": "2.0.0",
@@ -4084,7 +4124,7 @@
4084 "isobject": {
4124 "isobject": {
4085 "version": "3.0.1",
4125 "version": "3.0.1",
4086 "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
4126 "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
4087− "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
4127+ "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg=="
4088 },
4128 },
4089 "js-tokens": {
4129 "js-tokens": {
4090 "version": "4.0.0",
4130 "version": "4.0.0",
@@ -4110,7 +4150,7 @@
4110 "kind-of": {
4150 "kind-of": {
4111 "version": "3.2.2",
4151 "version": "3.2.2",
4112 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
4152 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
4113− "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
4153+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
4114 "requires": {
4154 "requires": {
4115 "is-buffer": "^1.1.5"
4155 "is-buffer": "^1.1.5"
4116 }
4156 }
@@ -4250,7 +4290,7 @@
4250 "object-assign": {
4290 "object-assign": {
4251 "version": "4.1.1",
4291 "version": "4.1.1",
4252 "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
4292 "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
4253− "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=",
4293+ "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
4254 "peer": true
4294 "peer": true
4255 },
4295 },
4256 "object-hash": {
4296 "object-hash": {
@@ -4267,7 +4307,7 @@
4267 "omit-deep": {
4307 "omit-deep": {
4268 "version": "0.3.0",
4308 "version": "0.3.0",
4269 "resolved": "https://registry.npmjs.org/omit-deep/-/omit-deep-0.3.0.tgz",
4309 "resolved": "https://registry.npmjs.org/omit-deep/-/omit-deep-0.3.0.tgz",
4270− "integrity": "sha1-IcivNJm8rdKWUaIyy8rLxSRF6+w=",
4310+ "integrity": "sha512-Lbl/Ma59sss2b15DpnWnGmECBRL8cRl/PjPbPMVW+Y8zIQzRrwMaI65Oy6HvxyhYeILVKBJb2LWeG81bj5zbMg==",
4271 "requires": {
4311 "requires": {
4272 "is-plain-object": "^2.0.1",
4312 "is-plain-object": "^2.0.1",
4273 "unset-value": "^0.1.1"
4313 "unset-value": "^0.1.1"
@@ -4899,7 +4939,7 @@
4899 "unset-value": {
4939 "unset-value": {
4900 "version": "0.1.2",
4940 "version": "0.1.2",
4901 "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-0.1.2.tgz",
4941 "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-0.1.2.tgz",
4902− "integrity": "sha1-UGgQuGfyfCpabpsEgzYx9t5Y0xA=",
4942+ "integrity": "sha512-yhv5I4TsldLdE3UcVQn0hD2T5sNCPv4+qm/CTUpRKIpwthYRIipsAPdsrNpOI79hPQa0rTTeW22Fq6JWRcTgNg==",
4903 "requires": {
4943 "requires": {
4904 "has-value": "^0.3.1",
4944 "has-value": "^0.3.1",
4905 "isobject": "^3.0.0"
4945 "isobject": "^3.0.0"
@@ -4986,7 +5026,7 @@
4986 "xml-lexer": {
5026 "xml-lexer": {
4987 "version": "0.2.2",
5027 "version": "0.2.2",
4988 "resolved": "https://registry.npmjs.org/xml-lexer/-/xml-lexer-0.2.2.tgz",
5028 "resolved": "https://registry.npmjs.org/xml-lexer/-/xml-lexer-0.2.2.tgz",
4989− "integrity": "sha1-UYGTpKozTVj8fSSLVJB5uJkH4EY=",
5029+ "integrity": "sha512-G0i98epIwiUEiKmMcavmVdhtymW+pCAohMRgybyIME9ygfVu8QheIi+YoQh3ngiThsT0SQzJT4R0sKDEv8Ou0w==",
4990 "requires": {
5030 "requires": {
4991 "eventemitter3": "^2.0.0"
5031 "eventemitter3": "^2.0.0"
4992 }
5032 }
@@ -4994,7 +5034,7 @@
4994 "xml-reader": {
5034 "xml-reader": {
4995 "version": "2.4.3",
5035 "version": "2.4.3",
4996 "resolved": "https://registry.npmjs.org/xml-reader/-/xml-reader-2.4.3.tgz",
5036 "resolved": "https://registry.npmjs.org/xml-reader/-/xml-reader-2.4.3.tgz",
4997− "integrity": "sha1-n4EMr3xCWlqvuEixxFEDyecddTA=",
5037+ "integrity": "sha512-xWldrIxjeAMAu6+HSf9t50ot1uL5M+BtOidRCWHXIeewvSeIpscWCsp4Zxjk8kHHhdqFBrfK8U0EJeCcnyQ/gA==",
4998 "requires": {
5038 "requires": {
4999 "eventemitter3": "^2.0.0",
5039 "eventemitter3": "^2.0.0",
5000 "xml-lexer": "^0.2.2"
5040 "xml-lexer": "^0.2.2"
ui/package.json+1
@@ -32,6 +32,7 @@
32 "vite": "^2.7.2"
32 "vite": "^2.7.2"
33 },
33 },
34 "dependencies": {
34 "dependencies": {
35+ "@johnhyde/sigil-js": "file:../../sigil-js",
35 "@tlon/phonemes-js": "^1.0.0",
36 "@tlon/phonemes-js": "^1.0.0",
36 "@tlon/sigil-js": "^1.4.5",
37 "@tlon/sigil-js": "^1.4.5",
37 "@urbit/api": "^2.1.0",
38 "@urbit/api": "^2.1.0",
ui/src/App.svelte+3−1
@@ -1,8 +1,9 @@
1<script lang="ts">
1<script lang="ts">
2 import Router from 'svelte-spa-router';
2 import Router from 'svelte-spa-router';
3+ import SigilPage from './routes/SigilPage.svelte';
3 import HelpPage from './routes/HelpPage.svelte';
4 import HelpPage from './routes/HelpPage.svelte';
4 import Home from './routes/Home.svelte';
5 import Home from './routes/Home.svelte';
5− import HelpModal from './components/HelpModal.svelte';
6+ import HelpModal from '@/docs/HelpModal.svelte';
6 import "./styles/styles.scss";
7 import "./styles/styles.scss";
7
8
8 // const routes = {
9 // const routes = {
@@ -14,6 +15,7 @@
14 // }
15 // }
15
16
16 const routes = {
17 const routes = {
18+ '/sigil': SigilPage,
17 '/help/:path?': HelpPage,
19 '/help/:path?': HelpPage,
18 // '/:patp?': Home,
20 // '/:patp?': Home,
19 // '/ship/:patp?': Home,
21 // '/ship/:patp?': Home,
ui/src/actions/sigma.ts+1−1
@@ -1,5 +1,5 @@
1import tippy from 'tippy.js';
1import tippy from 'tippy.js';
2−// import DocLink from '../components/docs/DocLink.svelte'; // TODO try to add a link in the tooltip somehow or something, like:
2+// import DocLink from '@/docs/DocLink.svelte'; // TODO try to add a link in the tooltip somehow or something, like:
3// const app = new DocLink({
3// const app = new DocLink({
4// target: document.getElementBySelector('.tippy')
4// target: document.getElementBySelector('.tippy')
5// })
5// })
ui/src/actions/tooltip.ts+1−1
@@ -1,5 +1,5 @@
1import tippy from 'tippy.js';
1import tippy from 'tippy.js';
2−// import DocLink from '../components/docs/DocLink.svelte'; // TODO try to add a link in the tooltip somehow or something, like:
2+// import DocLink from '@/docs/DocLink.svelte'; // TODO try to add a link in the tooltip somehow or something, like:
3// const app = new DocLink({
3// const app = new DocLink({
4// target: document.getElementBySelector('.tippy')
4// target: document.getElementBySelector('.tippy')
5// })
5// })
ui/src/components/ChartLink.svelte+1−1
@@ -1,6 +1,6 @@
1<script lang="ts">
1<script lang="ts">
2 import { link } from 'svelte-spa-router'
2 import { link } from 'svelte-spa-router'
3− import { linkToChart } from '../lib/link';
3+ import { linkToChart } from 'lib/link';
4
4
5 export let patp = null;
5 export let patp = null;
6</script>
6</script>
ui/src/components/EthAddressLink.svelte+2−2
@@ -1,6 +1,6 @@
1<script lang="ts">
1<script lang="ts">
2− import CopyToClipboard from "svelte-copy-to-clipboard";
2+ import CopyToClipboard from 'svelte-copy-to-clipboard';
3− import tooltip from "../actions/tooltip";
3+ import tooltip from 'actions/tooltip';
4
4
5 let overrideText = null;
5 let overrideText = null;
6
6
ui/src/components/ShipLink.svelte+2−2
@@ -1,7 +1,7 @@
1<script lang="ts">
1<script lang="ts">
2 import { link } from 'svelte-spa-router'
2 import { link } from 'svelte-spa-router'
3− import { cite, normalizeId } from '../lib/id';
3+ import { cite, normalizeId } from 'lib/id';
4− import { linkToShip } from '../lib/link';
4+ import { linkToShip } from 'lib/link';
5 export let patp: string;
5 export let patp: string;
6 $: normalizedId = normalizeId(patp);
6 $: normalizedId = normalizeId(patp);
7</script>
7</script>
ui/src/components/ShipListing.svelte+2−2
@@ -2,8 +2,8 @@
2
2
3 import Sigil from "./Sigil.svelte";
3 import Sigil from "./Sigil.svelte";
4 import { push } from 'svelte-spa-router'
4 import { push } from 'svelte-spa-router'
5− import { normalizeId } from '../lib/id';
5+ import { normalizeId } from 'lib/id';
6− import { linkToShip as generateLinkToShip } from '../lib/link';
6+ import { linkToShip as generateLinkToShip } from 'lib/link';
7 export let ship: any;
7 export let ship: any;
8 export let linkToShip: boolean = false;
8 export let linkToShip: boolean = false;
9 export let differentiateContacts = false;
9 export let differentiateContacts = false;
ui/src/components/ShipListings.svelte+1−1
@@ -1,6 +1,6 @@
1<script lang="ts">
1<script lang="ts">
2 import { createEventDispatcher } from 'svelte';
2 import { createEventDispatcher } from 'svelte';
3− import ShipListing from './ShipListing.svelte';
3+ import ShipListing from '@/ShipListing.svelte';
4 const dispatch = createEventDispatcher();
4 const dispatch = createEventDispatcher();
5
5
6 export let ships = [];
6 export let ships = [];
ui/src/components/ShipView.svelte+2−2
@@ -1,8 +1,8 @@
1<script lang="ts">
1<script lang="ts">
2 import { clan, sein, patp2dec } from 'urbit-ob';
2 import { clan, sein, patp2dec } from 'urbit-ob';
3
3
4− import { cite, normalizeId } from '../lib/id';
4+ import { cite, normalizeId } from 'lib/id';
5− import { getPoint, getSpawnedPoints } from '../lib/api';
5+ import { getPoint, getSpawnedPoints } from 'lib/api';
6 import Sigil from "./Sigil.svelte";
6 import Sigil from "./Sigil.svelte";
7 import GoldBadge from './GoldBadge.svelte';
7 import GoldBadge from './GoldBadge.svelte';
8 import TooltipAndDocLink from "./TooltipAndDocLink.svelte";
8 import TooltipAndDocLink from "./TooltipAndDocLink.svelte";
ui/src/components/Sigil.svelte+17−3
@@ -1,11 +1,16 @@
1<script lang="ts">
1<script lang="ts">
2 import { clan } from 'urbit-ob';
2 import { clan } from 'urbit-ob';
3− import { sigil, stringRenderer } from '@tlon/sigil-js';
3+ import { sigil as sigil1, stringRenderer as sr1 } from '@tlon/sigil-js';
4+ import { sigil as sigil2, stringRenderer as sr2 } from '@johnhyde/sigil-js';
4 import moonPng from '../assets/moon.png';
5 import moonPng from '../assets/moon.png';
5 import cometSvg from '../assets/comet.svg';
6 import cometSvg from '../assets/comet.svg';
6
7
7 export let patp: string;
8 export let patp: string;
8 export let size: number;
9 export let size: number;
10+ export let useNew: boolean = false;
11+ export let fgColor: string = 'white';
12+ export let bgColor: string = 'black';
13+ export let altBgColor: string = undefined;
9 let svgString: any;
14 let svgString: any;
10 let imgSrc: any;
15 let imgSrc: any;
11
16
@@ -13,13 +18,22 @@
13 $: displaySigil = ['galaxy', 'star', 'planet'].includes(shipClass);
18 $: displaySigil = ['galaxy', 'star', 'planet'].includes(shipClass);
14 $: {
19 $: {
15 if (displaySigil) {
20 if (displaySigil) {
21+ let sigil = sigil1;
22+ let sr = sr1;
23+ if (useNew) {
24+ sigil = sigil2;
25+ sr = sr2;
26+ }
16 const svgAST = sigil({
27 const svgAST = sigil({
17 patp: patp,
28 patp: patp,
18 size,
29 size,
19− colors: ['black', 'white'],
30+ colors: [bgColor, fgColor],
20 });
31 });
21 svgAST.attributes.preserveAspectRatio = 'xMidYMin slice';
32 svgAST.attributes.preserveAspectRatio = 'xMidYMin slice';
22− svgString = stringRenderer(svgAST);
33+ svgString = sr(svgAST);
34+ if (altBgColor) {
35+ svgString = svgString.replace(/rect fill="[^"]+"/, `rect fill="${altBgColor}"`);
36+ }
23 } else if (shipClass === 'moon') {
37 } else if (shipClass === 'moon') {
24 imgSrc = moonPng;
38 imgSrc = moonPng;
25 } else {
39 } else {
ui/src/components/StarChart.svelte+4−4
@@ -8,10 +8,10 @@
8
8
9 import { clan } from 'urbit-ob';
9 import { clan } from 'urbit-ob';
10 import DocLink from './docs/DocLink.svelte';
10 import DocLink from './docs/DocLink.svelte';
11− import { cite, normalizeId } from '../lib/id';
11+ import { cite, normalizeId } from 'lib/id';
12− import { parseChartData, populateGraph } from '../lib/graph';
12+ import { parseChartData, populateGraph } from 'lib/graph';
13− import { getChartData } from '../lib/api';
13+ import { getChartData } from 'lib/api';
14− import { linkToShip } from '../lib/link';
14+ import { linkToShip } from 'lib/link';
15
15
16 import InlineSelect from './buttons/InlineSelect.svelte';
16 import InlineSelect from './buttons/InlineSelect.svelte';
17
17
ui/src/components/Tooltip.svelte+1−2
@@ -1,6 +1,5 @@
1<script lang="ts">
1<script lang="ts">
2− import { tick } from "svelte";
3− import tooltip from "../actions/tooltip";
2+ import tooltip from 'actions/tooltip';
4 export let text: string = '';
3 export let text: string = '';
5 let className: string = '';
4 let className: string = '';
6 export { className as class };
5 export { className as class };
ui/src/components/docs/Doc.svelte+2−2
@@ -2,8 +2,8 @@
2 import { createEventDispatcher } from 'svelte';
2 import { createEventDispatcher } from 'svelte';
3 import DocContent from './DocContent.svelte';
3 import DocContent from './DocContent.svelte';
4 import DocHome from './DocHome.svelte';
4 import DocHome from './DocHome.svelte';
5− import Hamburger from '../buttons/Hamburger.svelte';
5+ import Hamburger from '@/buttons/Hamburger.svelte';
6− import CloseButton from '../buttons/CloseButton.svelte';
6+ import CloseButton from '@/buttons/CloseButton.svelte';
7
7
8 export let path: string;
8 export let path: string;
9
9
ui/src/components/docs/DocContent.svelte+3−3
@@ -2,10 +2,10 @@
2
2
3 import { createEventDispatcher } from 'svelte';
3 import { createEventDispatcher } from 'svelte';
4
4
5− import docLinks from "../../actions/docLinks";
5+ import docLinks from "actions/docLinks";
6− import docs from "../../stores/docs";
6+ import docs from "stores/docs";
7
7
8− import LoadingSpinner from "../LoadingSpinner.svelte";
8+ import LoadingSpinner from "@/LoadingSpinner.svelte";
9
9
10 export let path:string;
10 export let path:string;
11
11
ui/src/components/docs/DocLink.svelte+1−1
@@ -1,6 +1,6 @@
1<script lang="ts">
1<script lang="ts">
2 import { createEventDispatcher } from 'svelte';
2 import { createEventDispatcher } from 'svelte';
3− import docs from '../../stores/docs';
3+ import docs from 'stores/docs';
4
4
5 export let path:string;
5 export let path:string;
6 export let modal:boolean = false;
6 export let modal:boolean = false;
ui/src/components/HelpModal.svelte → ui/src/components/docs/HelpModal.svelterenamed+2−2
@@ -1,6 +1,6 @@
1<script lang="ts">
1<script lang="ts">
2− import docs from '../stores/docs';
2+ import docs from 'stores/docs';
3− import Doc from './docs/Doc.svelte';
3+ import Doc from './Doc.svelte';
4
4
5 function close() {
5 function close() {
6 docs.hide()
6 docs.hide()
ui/src/components/SearchBar.svelte → ui/src/components/search/SearchBar.svelterenamed+4−2
@@ -1,6 +1,6 @@
1<script lang="ts">
1<script lang="ts">
2
2
3− import { SearchAnalysis } from '../lib/id';
3+ import { SearchAnalysis } from 'lib/id';
4
4
5 export let patp: string = undefined;
5 export let patp: string = undefined;
6 export let searchQuery: RegExp = /~der/;
6 export let searchQuery: RegExp = /~der/;
@@ -43,5 +43,7 @@
43 bind:value={search}
43 bind:value={search}
44 autofocus
44 autofocus
45 />
45 />
46+ <button
46− <button class="absolute right-0 w-10 h-10 rounded-full bg-black transition-opacity opacity-10 hover:opacity-40"></button>
47+ class="absolute right-0 w-10 h-10 rounded-full bg-black transition-opacity opacity-10 hover:opacity-40"
48+ />
47</div>
49</div>
ui/src/components/SearchResultNavButtons.svelte → ui/src/components/search/SearchResultNavButtons.svelterenamed

The content is the same.

ui/src/components/SearchResults.svelte → ui/src/components/search/SearchResults.svelterenamed+3−3
@@ -1,9 +1,9 @@
1<script lang="ts">
1<script lang="ts">
2
2
3 import type { Patp, Rolodex } from '@urbit/api';
3 import type { Patp, Rolodex } from '@urbit/api';
4− import { searchPoints } from '../lib/api';
4+ import { searchPoints } from 'lib/api';
5− import { searchedContacts } from '../stores/searchStores';
5+ import { searchedContacts } from 'stores/searchStores';
6− import ShipListings from './ShipListings.svelte';
6+ import ShipListings from '@/ShipListings.svelte';
7 import SearchSettings from './SearchSettings.svelte';
7 import SearchSettings from './SearchSettings.svelte';
8 import SearchResultsNavButtons from './SearchResultsNavButtons.svelte';
8 import SearchResultsNavButtons from './SearchResultsNavButtons.svelte';
9
9
ui/src/components/SearchResultsNavButtons.svelte → ui/src/components/search/SearchResultsNavButtons.svelterenamed

The content is the same.

ui/src/components/SearchSettings.svelte → ui/src/components/search/SearchSettings.svelterenamed+3−3
@@ -1,8 +1,8 @@
1<script lang="ts">
1<script lang="ts">
2− import ToggleButton from './buttons/ToggleButton.svelte';
2+ import ToggleButton from '../buttons/ToggleButton.svelte';
3
3
4− import { searchSettings } from '../stores/searchStores';
4+ import { searchSettings } from 'stores/searchStores';
5− import { toggleStoreKey } from '../lib/utils';
5+ import { toggleStoreKey } from 'lib/utils';
6
6
7 function toggleMoons() {
7 function toggleMoons() {
8 toggleStoreKey(searchSettings, 'includeMoons');
8 toggleStoreKey(searchSettings, 'includeMoons');
ui/src/routes/HelpPage.svelte+2−2
@@ -1,8 +1,8 @@
1<script lang="ts">
1<script lang="ts">
2 import { onMount } from 'svelte';
2 import { onMount } from 'svelte';
3 import { push } from 'svelte-spa-router';
3 import { push } from 'svelte-spa-router';
4− import docs from '../stores/docs';
4+ import docs from 'stores/docs';
5− import Doc from '../components/docs/Doc.svelte';
5+ import Doc from '@/docs/Doc.svelte';
6 export let params: any = {};
6 export let params: any = {};
7 $: path = params.path || '';
7 $: path = params.path || '';
8
8
ui/src/routes/Home.svelte+9−9
@@ -1,15 +1,15 @@
1<script lang="ts">
1<script lang="ts">
2 import Router from 'svelte-spa-router';
2 import Router from 'svelte-spa-router';
3 import { link, push, replace, location, querystring } from 'svelte-spa-router'
3 import { link, push, replace, location, querystring } from 'svelte-spa-router'
4− import pageName from '../stores/pageName';
4+ import pageName from 'stores/pageName';
5− import { SearchAnalysis } from '../lib/id';
5+ import { SearchAnalysis } from 'lib/id';
6− import { linkToShip, linkToChart } from '../lib/link';
6+ import { linkToShip, linkToChart } from 'lib/link';
7− import SearchBar from "../components/SearchBar.svelte";
7+ import SearchBar from "@/search/SearchBar.svelte";
8− import SearchResults from "../components/SearchResults.svelte";
8+ import SearchResults from "@/search/SearchResults.svelte";
9− import ShipView from '../components/ShipView.svelte';
9+ import ShipView from '@/ShipView.svelte';
10− import StarChart from '../components/StarChart.svelte';
10+ import StarChart from '@/StarChart.svelte';
11− import ValidationProblems from '../components/ValidationProblems.svelte';
11+ import ValidationProblems from '@/ValidationProblems.svelte';
12− import HomeScreenTiles from '../components/HomeScreenTiles.svelte';
12+ import HomeScreenTiles from '@/HomeScreenTiles.svelte';
13 export let params: any = {};
13 export let params: any = {};
14 let analysis: SearchAnalysis = new SearchAnalysis();
14 let analysis: SearchAnalysis = new SearchAnalysis();
15 let navigating = false;
15 let navigating = false;
ui/src/routes/SigilPage.sveltenew file+58
@@ -0,0 +1,58 @@
1+<script lang="ts">
2+ import { prefixes, suffixes } from 'lib/id';
3+ import Sigil from "@/Sigil.svelte";
4+
5+ let index: number = undefined;
6+ let altBgColor = 'red';
7+
8+ let phonemes = prefixes.map(p => p + 'zod').concat(suffixes).sort().map(p => '~' + p);
9+
10+ function into(i) {
11+ index = i;
12+ }
13+
14+ function out() {
15+ index = undefined;
16+ }
17+
18+ function forward() {
19+ index = index + 1;
20+ index = Math.min(511, index);
21+ }
22+
23+ function back() {
24+ index = index - 1;
25+ index = Math.max(0, index);
26+ }
27+</script>
28+
29+<div class="bg-white m-4">
30+ {#if index == undefined}
31+ <div class="flex flex-wrap">
32+ {#each phonemes as phoneme, i}
33+ <div class="w-[128px] m-2" on:click={() => into(i)}>
34+ <h2>
35+ {phoneme}
36+ </h2>
37+ <div class="flex">
38+ <Sigil patp={phoneme} size={64} {altBgColor} />
39+ <Sigil patp={phoneme} size={64} {altBgColor} useNew />
40+ </div>
41+ </div>
42+ {/each}
43+ </div>
44+ {:else}
45+ <div class="flex gap-2">
46+ <button class="p-4 border" on:click={back}>&lt;</button>
47+ <button class="p-4 border" on:click={out}>^</button>
48+ <button class="p-4 border" on:click={forward}>&gt;</button>
49+ </div>
50+ <h2>
51+ {phonemes[index]}
52+ </h2>
53+ <div class="flex w-full">
54+ <Sigil patp={phonemes[index]} size={400} {altBgColor} />
55+ <Sigil patp={phonemes[index]} size={400} {altBgColor} useNew />
56+ </div>
57+ {/if}
58+</div>
ui/src/stores/docs.ts+2−2
@@ -1,8 +1,8 @@
1import { writable } from 'svelte/store';
1import { writable } from 'svelte/store';
2
2
3−import { getDoc } from '../lib/api';
3+import { getDoc } from 'lib/api';
4const docs = {};
4const docs = {};
5−// import type { AppState, Contacts } from '../types/store';
5+// import type { AppState, Contacts } from 'types/store';
6
6
7const initStore: any = {
7const initStore: any = {
8 show: false,
8 show: false,
ui/src/stores/searchStores.ts+3−3
@@ -2,9 +2,9 @@ import { writable, derived } from 'svelte/store';
2
2
3import type { Contact, Rolodex } from '@urbit/api';
3import type { Contact, Rolodex } from '@urbit/api';
4import store from './store';
4import store from './store';
5−import type { StoreState, SearchedContactsState } from '../types/store';
5+import type { StoreState, SearchedContactsState } from 'types/store';
6−import { SearchSettings } from '../types/store';
6+import { SearchSettings } from 'types/store';
7−import { filterObject } from '../lib/utils';
7+import { filterObject } from 'lib/utils';
8
8
9const searchSettings = writable(new SearchSettings());
9const searchSettings = writable(new SearchSettings());
10
10
ui/src/stores/store.ts+4−4
@@ -1,10 +1,10 @@
1import { writable } from 'svelte/store';
1import { writable } from 'svelte/store';
2
2
3import type { Rolodex } from '@urbit/api';
3import type { Rolodex } from '@urbit/api';
4−import { subscribeToContacts, getPeers } from '../lib/api';
4+import { subscribeToContacts, getPeers } from 'lib/api';
5−import type { StoreState } from '../types/store';
5+import type { StoreState } from 'types/store';
6−import { normalizeId } from '../lib/id';
6+import { normalizeId } from 'lib/id';
7−import { setStoreKey } from '../lib/utils';
7+import { setStoreKey } from 'lib/utils';
8
8
9const initStore: StoreState = {
9const initStore: StoreState = {
10 contacts: {},
10 contacts: {},
ui/src/styles/tailwind-output.css+53−47
@@ -532,18 +532,21 @@ Ensure the default browser behavior of the `hidden` attribute.
532.-bottom-3 {
532.-bottom-3 {
533 bottom: -0.75rem;
533 bottom: -0.75rem;
534}
534}
535−.z-10 {
535+.z-50 {
536− z-index: 10;
536+ z-index: 50;
537}
537}
538.z-20 {
538.z-20 {
539 z-index: 20;
539 z-index: 20;
540}
540}
541−.z-50 {
541+.z-10 {
542− z-index: 50;
542+ z-index: 10;
543}
543}
544.m-4 {
544.m-4 {
545 margin: 1rem;
545 margin: 1rem;
546}
546}
547+.m-2 {
548+ margin: 0.5rem;
549+}
547.m-8 {
550.m-8 {
548 margin: 2rem;
551 margin: 2rem;
549}
552}
@@ -558,10 +561,6 @@ Ensure the default browser behavior of the `hidden` attribute.
558 margin-left: auto;
561 margin-left: auto;
559 margin-right: auto;
562 margin-right: auto;
560}
563}
561−.mx-8 {
562− margin-left: 2rem;
563− margin-right: 2rem;
564−}
565.my-1\.5 {
564.my-1\.5 {
566 margin-top: 0.375rem;
565 margin-top: 0.375rem;
567 margin-bottom: 0.375rem;
566 margin-bottom: 0.375rem;
@@ -574,6 +573,10 @@ Ensure the default browser behavior of the `hidden` attribute.
574 margin-top: 0.75rem;
573 margin-top: 0.75rem;
575 margin-bottom: 0.75rem;
574 margin-bottom: 0.75rem;
576}
575}
576+.mx-8 {
577+ margin-left: 2rem;
578+ margin-right: 2rem;
579+}
577.my-4 {
580.my-4 {
578 margin-top: 1rem;
581 margin-top: 1rem;
579 margin-bottom: 1rem;
582 margin-bottom: 1rem;
@@ -603,9 +606,6 @@ Ensure the default browser behavior of the `hidden` attribute.
603.ml-1 {
606.ml-1 {
604 margin-left: 0.25rem;
607 margin-left: 0.25rem;
605}
608}
606−.-mt-2 {
607− margin-top: -0.5rem;
608−}
609.mr-4 {
609.mr-4 {
610 margin-right: 1rem;
610 margin-right: 1rem;
611}
611}
@@ -621,6 +621,9 @@ Ensure the default browser behavior of the `hidden` attribute.
621.ml-8 {
621.ml-8 {
622 margin-left: 2rem;
622 margin-left: 2rem;
623}
623}
624+.-mt-2 {
625+ margin-top: -0.5rem;
626+}
624.-mt-1 {
627.-mt-1 {
625 margin-top: -0.25rem;
628 margin-top: -0.25rem;
626}
629}
@@ -687,15 +690,6 @@ Ensure the default browser behavior of the `hidden` attribute.
687.h-5 {
690.h-5 {
688 height: 1.25rem;
691 height: 1.25rem;
689}
692}
690−.h-10 {
691− height: 2.5rem;
692−}
693−.h-6 {
694− height: 1.5rem;
695−}
696−.h-8 {
697− height: 2rem;
698−}
699.h-12 {
693.h-12 {
700 height: 3rem;
694 height: 3rem;
701}
695}
@@ -705,6 +699,15 @@ Ensure the default browser behavior of the `hidden` attribute.
705.h-\[100vh\] {
699.h-\[100vh\] {
706 height: 100vh;
700 height: 100vh;
707}
701}
702+.h-10 {
703+ height: 2.5rem;
704+}
705+.h-6 {
706+ height: 1.5rem;
707+}
708+.h-8 {
709+ height: 2rem;
710+}
708.h-2 {
711.h-2 {
709 height: 0.5rem;
712 height: 0.5rem;
710}
713}
@@ -735,18 +738,21 @@ Ensure the default browser behavior of the `hidden` attribute.
735.w-5 {
738.w-5 {
736 width: 1.25rem;
739 width: 1.25rem;
737}
740}
738−.w-10 {
739− width: 2.5rem;
740−}
741.w-12 {
741.w-12 {
742 width: 3rem;
742 width: 3rem;
743}
743}
744.w-3 {
744.w-3 {
745 width: 0.75rem;
745 width: 0.75rem;
746}
746}
747+.w-\[128px\] {
748+ width: 128px;
749+}
747.w-\[100vw\] {
750.w-\[100vw\] {
748 width: 100vw;
751 width: 100vw;
749}
752}
753+.w-10 {
754+ width: 2.5rem;
755+}
750.w-7 {
756.w-7 {
751 width: 1.75rem;
757 width: 1.75rem;
752}
758}
@@ -867,14 +873,14 @@ Ensure the default browser behavior of the `hidden` attribute.
867.gap-2 {
873.gap-2 {
868 gap: 0.5rem;
874 gap: 0.5rem;
869}
875}
870−.gap-x-2 {
871− -moz-column-gap: 0.5rem;
872− column-gap: 0.5rem;
873−}
874.gap-x-1 {
876.gap-x-1 {
875 -moz-column-gap: 0.25rem;
877 -moz-column-gap: 0.25rem;
876 column-gap: 0.25rem;
878 column-gap: 0.25rem;
877}
879}
880+.gap-x-2 {
881+ -moz-column-gap: 0.5rem;
882+ column-gap: 0.5rem;
883+}
878.gap-x-3 {
884.gap-x-3 {
879 -moz-column-gap: 0.75rem;
885 -moz-column-gap: 0.75rem;
880 column-gap: 0.75rem;
886 column-gap: 0.75rem;
@@ -992,14 +998,14 @@ Ensure the default browser behavior of the `hidden` attribute.
992 --tw-border-opacity: 1;
998 --tw-border-opacity: 1;
993 border-color: rgb(252 211 77 / var(--tw-border-opacity));
999 border-color: rgb(252 211 77 / var(--tw-border-opacity));
994}
1000}
995−.border-navy {
996− --tw-border-opacity: 1;
997− border-color: rgb(31 36 60 / var(--tw-border-opacity));
998−}
999.border-gray-300 {
1001.border-gray-300 {
1000 --tw-border-opacity: 1;
1002 --tw-border-opacity: 1;
1001 border-color: rgb(209 213 219 / var(--tw-border-opacity));
1003 border-color: rgb(209 213 219 / var(--tw-border-opacity));
1002}
1004}
1005+.border-navy {
1006+ --tw-border-opacity: 1;
1007+ border-color: rgb(31 36 60 / var(--tw-border-opacity));
1008+}
1003.border-white {
1009.border-white {
1004 --tw-border-opacity: 1;
1010 --tw-border-opacity: 1;
1005 border-color: rgb(255 255 255 / var(--tw-border-opacity));
1011 border-color: rgb(255 255 255 / var(--tw-border-opacity));
@@ -1024,10 +1030,6 @@ Ensure the default browser behavior of the `hidden` attribute.
1024 --tw-bg-opacity: 1;
1030 --tw-bg-opacity: 1;
1025 background-color: rgb(255 255 255 / var(--tw-bg-opacity));
1031 background-color: rgb(255 255 255 / var(--tw-bg-opacity));
1026}
1032}
1027−.bg-black {
1028− --tw-bg-opacity: 1;
1029− background-color: rgb(0 0 0 / var(--tw-bg-opacity));
1030−}
1031.bg-l1-blue {
1033.bg-l1-blue {
1032 --tw-bg-opacity: 1;
1034 --tw-bg-opacity: 1;
1033 background-color: rgb(23 146 199 / var(--tw-bg-opacity));
1035 background-color: rgb(23 146 199 / var(--tw-bg-opacity));
@@ -1048,6 +1050,10 @@ Ensure the default browser behavior of the `hidden` attribute.
1048 --tw-bg-opacity: 1;
1050 --tw-bg-opacity: 1;
1049 background-color: rgb(209 213 219 / var(--tw-bg-opacity));
1051 background-color: rgb(209 213 219 / var(--tw-bg-opacity));
1050}
1052}
1053+.bg-black {
1054+ --tw-bg-opacity: 1;
1055+ background-color: rgb(0 0 0 / var(--tw-bg-opacity));
1056+}
1051.bg-amber-300 {
1057.bg-amber-300 {
1052 --tw-bg-opacity: 1;
1058 --tw-bg-opacity: 1;
1053 background-color: rgb(252 211 77 / var(--tw-bg-opacity));
1059 background-color: rgb(252 211 77 / var(--tw-bg-opacity));
@@ -1157,6 +1163,18 @@ Ensure the default browser behavior of the `hidden` attribute.
1157 padding-top: 1rem;
1163 padding-top: 1rem;
1158 padding-bottom: 1rem;
1164 padding-bottom: 1rem;
1159}
1165}
1166+.px-4 {
1167+ padding-left: 1rem;
1168+ padding-right: 1rem;
1169+}
1170+.px-0\.5 {
1171+ padding-left: 0.125rem;
1172+ padding-right: 0.125rem;
1173+}
1174+.px-0 {
1175+ padding-left: 0px;
1176+ padding-right: 0px;
1177+}
1160.py-2 {
1178.py-2 {
1161 padding-top: 0.5rem;
1179 padding-top: 0.5rem;
1162 padding-bottom: 0.5rem;
1180 padding-bottom: 0.5rem;
@@ -1165,10 +1183,6 @@ Ensure the default browser behavior of the `hidden` attribute.
1165 padding-left: 1.5rem;
1183 padding-left: 1.5rem;
1166 padding-right: 1.5rem;
1184 padding-right: 1.5rem;
1167}
1185}
1168−.px-4 {
1169− padding-left: 1rem;
1170− padding-right: 1rem;
1171−}
1172.py-8 {
1186.py-8 {
1173 padding-top: 2rem;
1187 padding-top: 2rem;
1174 padding-bottom: 2rem;
1188 padding-bottom: 2rem;
@@ -1177,14 +1191,6 @@ Ensure the default browser behavior of the `hidden` attribute.
1177 padding-left: 2rem;
1191 padding-left: 2rem;
1178 padding-right: 2rem;
1192 padding-right: 2rem;
1179}
1193}
1180−.px-0\.5 {
1181− padding-left: 0.125rem;
1182− padding-right: 0.125rem;
1183−}
1184−.px-0 {
1185− padding-left: 0px;
1186− padding-right: 0px;
1187−}
1188.px-3 {
1194.px-3 {
1189 padding-left: 0.75rem;
1195 padding-left: 0.75rem;
1190 padding-right: 0.75rem;
1196 padding-right: 0.75rem;
ui/svelte.config.js+2−2
@@ -1,4 +1,4 @@
1−import sveltePreprocess from 'svelte-preprocess'
1+import sveltePreprocess from 'svelte-preprocess';
2
2
3export default {
3export default {
4 // Consult https://github.com/sveltejs/svelte-preprocess
4 // Consult https://github.com/sveltejs/svelte-preprocess
@@ -10,4 +10,4 @@ export default {
10
10
11 handler(warning)
11 handler(warning)
12 },
12 },
13−}
13+};
ui/tsconfig.json+9
@@ -7,6 +7,15 @@
7 "module": "esnext",
7 "module": "esnext",
8 "resolveJsonModule": true,
8 "resolveJsonModule": true,
9 "baseUrl": ".",
9 "baseUrl": ".",
10+ "paths": {
11+ "~/*": ["src/*"],
12+ "@/*": ["src/components/*"],
13+ "lib/*": ["src/lib/*"],
14+ "stores/*": ["src/stores/*"],
15+ "assets/*": ["src/assets/*"],
16+ "actions/*": ["src/actions/*"],
17+ "types/*": ["src/types/*"],
18+ },
10 /**
19 /**
11 * Typecheck JS in `.svelte` and `.js` files by default.
20 * Typecheck JS in `.svelte` and `.js` files by default.
12 * Disable checkJs if you'd like to use dynamic types in JS.
21 * Disable checkJs if you'd like to use dynamic types in JS.
ui/vite.config.ts+21−1
@@ -1,6 +1,7 @@
1import { loadEnv, defineConfig } from 'vite';
1import { loadEnv, defineConfig } from 'vite';
2import { svelte } from '@sveltejs/vite-plugin-svelte'
2import { svelte } from '@sveltejs/vite-plugin-svelte'
3import { urbitPlugin } from '@urbit/vite-plugin-urbit';
3import { urbitPlugin } from '@urbit/vite-plugin-urbit';
4+import path from 'path';
4
5
5// https://vitejs.dev/config/
6// https://vitejs.dev/config/
6export default ({ mode }) => {
7export default ({ mode }) => {
@@ -9,6 +10,25 @@ export default ({ mode }) => {
9 console.log(SHIP_URL);
10 console.log(SHIP_URL);
10
11
11 return defineConfig({
12 return defineConfig({
13+ plugins: [
12− plugins: [urbitPlugin({ base: 'astrolabe', target: SHIP_URL, secure: false }), svelte()]
14+ urbitPlugin({ base: 'astrolabe', target: SHIP_URL, secure: false }),
15+ svelte(),
16+ ],
17+ resolve: {
18+ alias: {
19+ '~': path.resolve('./src'),
20+ '@': path.resolve('./src/components'),
21+ lib: path.resolve('./src/lib'),
22+ stores: path.resolve('./src/stores'),
23+ assets: path.resolve('./src/assets'),
24+ actions: path.resolve('./src/actions'),
25+ types: path.resolve('./src/types'),
26+ },
27+ },
28+ server: {
29+ fs: {
30+ strict: false,
31+ },
32+ },
13 });
33 });
14};
34};