on main help sign in
adding aliases and sigil review tool
commit77cb7ed33fd4983e544289812cdac44f06da18da authorJohn Hyde <johnhydefour@gmail.com> dateThu 4 Aug 2022, 15:32 (4 years ago) parent46ff0d6
33 files changed+287−136
ui/package-lock.json+68−28 ui/package.json+1 ui/src/App.svelte+3−1 ui/src/actions/sigma.ts+1−1 ui/src/actions/tooltip.ts+1−1 ui/src/components/ChartLink.svelte+1−1 ui/src/components/EthAddressLink.svelte+2−2 ui/src/components/ShipLink.svelte+2−2 ui/src/components/ShipListing.svelte+2−2 ui/src/components/ShipListings.svelte+1−1 ui/src/components/ShipView.svelte+2−2 ui/src/components/Sigil.svelte+17−3 ui/src/components/StarChart.svelte+4−4 ui/src/components/Tooltip.svelte+1−2 ui/src/components/docs/Doc.svelte+2−2 ui/src/components/docs/DocContent.svelte+3−3 ui/src/components/docs/DocLink.svelte+1−1 ui/src/components/HelpModal.svelte → ui/src/components/docs/HelpModal.svelte+2−2 ui/src/components/SearchBar.svelte → ui/src/components/search/SearchBar.svelte+4−2 ui/src/components/SearchResultNavButtons.svelte → ui/src/components/search/SearchResultNavButtons.svelte ui/src/components/SearchResults.svelte → ui/src/components/search/SearchResults.svelte+3−3 ui/src/components/SearchResultsNavButtons.svelte → ui/src/components/search/SearchResultsNavButtons.svelte ui/src/components/SearchSettings.svelte → ui/src/components/search/SearchSettings.svelte+3−3 ui/src/routes/HelpPage.svelte+2−2 ui/src/routes/Home.svelte+9−9 ui/src/routes/SigilPage.svelte+58 ui/src/stores/docs.ts+2−2 ui/src/stores/searchStores.ts+3−3 ui/src/stores/store.ts+4−4 ui/src/styles/tailwind-output.css+53−47 ui/svelte.config.js+2−2 ui/tsconfig.json+9 ui/vite.config.ts+21−1
ui/package-lock.json+68−28
@@ -8,6 +8,7 @@
88 "name": "urbit-astrolabe",
99 "version": "0.0.0",
1010 "dependencies": {
11+ "@johnhyde/sigil-js": "file:../../sigil-js",
1112 "@tlon/phonemes-js": "^1.0.0",
1213 "@tlon/sigil-js": "^1.4.5",
1314 "@urbit/api": "^2.1.0",
@@ -39,6 +40,27 @@
3940 "vite": "^2.7.2"
4041 }
4142 },
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+ },
4264 "node_modules/@babel/code-frame": {
4365 "version": "7.16.7",
4466 "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.16.7.tgz",
@@ -147,6 +169,10 @@
147169 "node": ">=6.9.0"
148170 }
149171 },
172+ "node_modules/@johnhyde/sigil-js": {
173+ "resolved": "../../sigil-js",
174+ "link": true
175+ },
150176 "node_modules/@microsoft/fetch-event-source": {
151177 "version": "2.0.1",
152178 "resolved": "https://registry.npmjs.org/@microsoft/fetch-event-source/-/fetch-event-source-2.0.1.tgz",
@@ -775,7 +801,7 @@
775801 "node_modules/deep-rename-keys": {
776802 "version": "0.2.1",
777803 "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==",
779805 "dependencies": {
780806 "kind-of": "^3.0.2",
781807 "rename-keys": "^1.1.2"
@@ -1153,7 +1179,7 @@
11531179 "node_modules/eventemitter3": {
11541180 "version": "2.0.3",
11551181 "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz",
1156− "integrity": "sha1-teEHm1n7XhuidxwKmTvgYKWMmbo="
1182+ "integrity": "sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg=="
11571183 },
11581184 "node_modules/events": {
11591185 "version": "3.3.0",
@@ -1277,7 +1303,7 @@
12771303 "node_modules/get-value": {
12781304 "version": "2.0.6",
12791305 "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
1280− "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=",
1306+ "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA==",
12811307 "engines": {
12821308 "node": ">=0.10.0"
12831309 }
@@ -1390,7 +1416,7 @@
13901416 "node_modules/has-value": {
13911417 "version": "0.3.1",
13921418 "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==",
13941420 "dependencies": {
13951421 "get-value": "^2.0.3",
13961422 "has-values": "^0.1.4",
@@ -1403,7 +1429,7 @@
14031429 "node_modules/has-value/node_modules/isobject": {
14041430 "version": "2.1.0",
14051431 "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
1406− "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
1432+ "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==",
14071433 "dependencies": {
14081434 "isarray": "1.0.0"
14091435 },
@@ -1414,7 +1440,7 @@
14141440 "node_modules/has-values": {
14151441 "version": "0.1.4",
14161442 "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==",
14181444 "engines": {
14191445 "node": ">=0.10.0"
14201446 }
@@ -1571,7 +1597,7 @@
15711597 "node_modules/isarray": {
15721598 "version": "1.0.0",
15731599 "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
1574− "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
1600+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
15751601 },
15761602 "node_modules/isexe": {
15771603 "version": "2.0.0",
@@ -1582,7 +1608,7 @@
15821608 "node_modules/isobject": {
15831609 "version": "3.0.1",
15841610 "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
1585− "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=",
1611+ "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==",
15861612 "engines": {
15871613 "node": ">=0.10.0"
15881614 }
@@ -1613,7 +1639,7 @@
16131639 "node_modules/kind-of": {
16141640 "version": "3.2.2",
16151641 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
1616− "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
1642+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
16171643 "dependencies": {
16181644 "is-buffer": "^1.1.5"
16191645 },
@@ -1795,7 +1821,7 @@
17951821 "node_modules/object-assign": {
17961822 "version": "4.1.1",
17971823 "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==",
17991825 "peer": true,
18001826 "engines": {
18011827 "node": ">=0.10.0"
@@ -1818,7 +1844,7 @@
18181844 "node_modules/omit-deep": {
18191845 "version": "0.3.0",
18201846 "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==",
18221848 "dependencies": {
18231849 "is-plain-object": "^2.0.1",
18241850 "unset-value": "^0.1.1"
@@ -2765,7 +2791,7 @@
27652791 "node_modules/unset-value": {
27662792 "version": "0.1.2",
27672793 "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-0.1.2.tgz",
2768− "integrity": "sha1-UGgQuGfyfCpabpsEgzYx9t5Y0xA=",
2794+ "integrity": "sha512-yhv5I4TsldLdE3UcVQn0hD2T5sNCPv4+qm/CTUpRKIpwthYRIipsAPdsrNpOI79hPQa0rTTeW22Fq6JWRcTgNg==",
27692795 "dependencies": {
27702796 "has-value": "^0.3.1",
27712797 "isobject": "^3.0.0"
@@ -2900,7 +2926,7 @@
29002926 "node_modules/xml-lexer": {
29012927 "version": "0.2.2",
29022928 "resolved": "https://registry.npmjs.org/xml-lexer/-/xml-lexer-0.2.2.tgz",
2903− "integrity": "sha1-UYGTpKozTVj8fSSLVJB5uJkH4EY=",
2929+ "integrity": "sha512-G0i98epIwiUEiKmMcavmVdhtymW+pCAohMRgybyIME9ygfVu8QheIi+YoQh3ngiThsT0SQzJT4R0sKDEv8Ou0w==",
29042930 "dependencies": {
29052931 "eventemitter3": "^2.0.0"
29062932 }
@@ -2908,7 +2934,7 @@
29082934 "node_modules/xml-reader": {
29092935 "version": "2.4.3",
29102936 "resolved": "https://registry.npmjs.org/xml-reader/-/xml-reader-2.4.3.tgz",
2911− "integrity": "sha1-n4EMr3xCWlqvuEixxFEDyecddTA=",
2937+ "integrity": "sha512-xWldrIxjeAMAu6+HSf9t50ot1uL5M+BtOidRCWHXIeewvSeIpscWCsp4Zxjk8kHHhdqFBrfK8U0EJeCcnyQ/gA==",
29122938 "dependencies": {
29132939 "eventemitter3": "^2.0.0",
29142940 "xml-lexer": "^0.2.2"
@@ -3056,6 +3082,20 @@
30563082 "regenerator-runtime": "^0.13.4"
30573083 }
30583084 },
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+ },
30593099 "@microsoft/fetch-event-source": {
30603100 "version": "2.0.1",
30613101 "resolved": "https://registry.npmjs.org/@microsoft/fetch-event-source/-/fetch-event-source-2.0.1.tgz",
@@ -3512,7 +3552,7 @@
35123552 "deep-rename-keys": {
35133553 "version": "0.2.1",
35143554 "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==",
35163556 "requires": {
35173557 "kind-of": "^3.0.2",
35183558 "rename-keys": "^1.1.2"
@@ -3760,7 +3800,7 @@
37603800 "eventemitter3": {
37613801 "version": "2.0.3",
37623802 "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-2.0.3.tgz",
3763− "integrity": "sha1-teEHm1n7XhuidxwKmTvgYKWMmbo="
3803+ "integrity": "sha512-jLN68Dx5kyFHaePoXWPsCGW5qdyZQtLYHkxkg02/Mz6g0kYpDx4FyP6XfArhQdlOC4b8Mv+EMxPo/8La7Tzghg=="
37643804 },
37653805 "events": {
37663806 "version": "3.3.0",
@@ -3849,7 +3889,7 @@
38493889 "get-value": {
38503890 "version": "2.0.6",
38513891 "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz",
3852− "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg="
3892+ "integrity": "sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA=="
38533893 },
38543894 "glob": {
38553895 "version": "7.2.0",
@@ -3933,7 +3973,7 @@
39333973 "has-value": {
39343974 "version": "0.3.1",
39353975 "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==",
39373977 "requires": {
39383978 "get-value": "^2.0.3",
39393979 "has-values": "^0.1.4",
@@ -3943,7 +3983,7 @@
39433983 "isobject": {
39443984 "version": "2.1.0",
39453985 "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz",
3946− "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=",
3986+ "integrity": "sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA==",
39473987 "requires": {
39483988 "isarray": "1.0.0"
39493989 }
@@ -3953,7 +3993,7 @@
39533993 "has-values": {
39543994 "version": "0.1.4",
39553995 "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=="
39573997 },
39583998 "ignore": {
39593999 "version": "5.2.0",
@@ -4073,7 +4113,7 @@
40734113 "isarray": {
40744114 "version": "1.0.0",
40754115 "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
4076− "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
4116+ "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ=="
40774117 },
40784118 "isexe": {
40794119 "version": "2.0.0",
@@ -4084,7 +4124,7 @@
40844124 "isobject": {
40854125 "version": "3.0.1",
40864126 "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz",
4087− "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8="
4127+ "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg=="
40884128 },
40894129 "js-tokens": {
40904130 "version": "4.0.0",
@@ -4110,7 +4150,7 @@
41104150 "kind-of": {
41114151 "version": "3.2.2",
41124152 "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz",
4113− "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=",
4153+ "integrity": "sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ==",
41144154 "requires": {
41154155 "is-buffer": "^1.1.5"
41164156 }
@@ -4250,7 +4290,7 @@
42504290 "object-assign": {
42514291 "version": "4.1.1",
42524292 "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==",
42544294 "peer": true
42554295 },
42564296 "object-hash": {
@@ -4267,7 +4307,7 @@
42674307 "omit-deep": {
42684308 "version": "0.3.0",
42694309 "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==",
42714311 "requires": {
42724312 "is-plain-object": "^2.0.1",
42734313 "unset-value": "^0.1.1"
@@ -4899,7 +4939,7 @@
48994939 "unset-value": {
49004940 "version": "0.1.2",
49014941 "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-0.1.2.tgz",
4902− "integrity": "sha1-UGgQuGfyfCpabpsEgzYx9t5Y0xA=",
4942+ "integrity": "sha512-yhv5I4TsldLdE3UcVQn0hD2T5sNCPv4+qm/CTUpRKIpwthYRIipsAPdsrNpOI79hPQa0rTTeW22Fq6JWRcTgNg==",
49034943 "requires": {
49044944 "has-value": "^0.3.1",
49054945 "isobject": "^3.0.0"
@@ -4986,7 +5026,7 @@
49865026 "xml-lexer": {
49875027 "version": "0.2.2",
49885028 "resolved": "https://registry.npmjs.org/xml-lexer/-/xml-lexer-0.2.2.tgz",
4989− "integrity": "sha1-UYGTpKozTVj8fSSLVJB5uJkH4EY=",
5029+ "integrity": "sha512-G0i98epIwiUEiKmMcavmVdhtymW+pCAohMRgybyIME9ygfVu8QheIi+YoQh3ngiThsT0SQzJT4R0sKDEv8Ou0w==",
49905030 "requires": {
49915031 "eventemitter3": "^2.0.0"
49925032 }
@@ -4994,7 +5034,7 @@
49945034 "xml-reader": {
49955035 "version": "2.4.3",
49965036 "resolved": "https://registry.npmjs.org/xml-reader/-/xml-reader-2.4.3.tgz",
4997− "integrity": "sha1-n4EMr3xCWlqvuEixxFEDyecddTA=",
5037+ "integrity": "sha512-xWldrIxjeAMAu6+HSf9t50ot1uL5M+BtOidRCWHXIeewvSeIpscWCsp4Zxjk8kHHhdqFBrfK8U0EJeCcnyQ/gA==",
49985038 "requires": {
49995039 "eventemitter3": "^2.0.0",
50005040 "xml-lexer": "^0.2.2"
ui/package.json+1
@@ -32,6 +32,7 @@
3232 "vite": "^2.7.2"
3333 },
3434 "dependencies": {
35+ "@johnhyde/sigil-js": "file:../../sigil-js",
3536 "@tlon/phonemes-js": "^1.0.0",
3637 "@tlon/sigil-js": "^1.4.5",
3738 "@urbit/api": "^2.1.0",
ui/src/App.svelte+3−1
@@ -1,8 +1,9 @@
11<script lang="ts">
22 import Router from 'svelte-spa-router';
3+ import SigilPage from './routes/SigilPage.svelte';
34 import HelpPage from './routes/HelpPage.svelte';
45 import Home from './routes/Home.svelte';
5− import HelpModal from './components/HelpModal.svelte';
6+ import HelpModal from '@/docs/HelpModal.svelte';
67 import "./styles/styles.scss";
78
89 // const routes = {
@@ -14,6 +15,7 @@
1415 // }
1516
1617 const routes = {
18+ '/sigil': SigilPage,
1719 '/help/:path?': HelpPage,
1820 // '/:patp?': Home,
1921 // '/ship/:patp?': Home,
ui/src/actions/sigma.ts+1−1
@@ -1,5 +1,5 @@
11import 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:
33// const app = new DocLink({
44// target: document.getElementBySelector('.tippy')
55// })
ui/src/actions/tooltip.ts+1−1
@@ -1,5 +1,5 @@
11import 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:
33// const app = new DocLink({
44// target: document.getElementBySelector('.tippy')
55// })
ui/src/components/ChartLink.svelte+1−1
@@ -1,6 +1,6 @@
11<script lang="ts">
22 import { link } from 'svelte-spa-router'
3− import { linkToChart } from '../lib/link';
3+ import { linkToChart } from 'lib/link';
44
55 export let patp = null;
66</script>
ui/src/components/EthAddressLink.svelte+2−2
@@ -1,6 +1,6 @@
11<script lang="ts">
2− import CopyToClipboard from "svelte-copy-to-clipboard";
3− import tooltip from "../actions/tooltip";
2+ import CopyToClipboard from 'svelte-copy-to-clipboard';
3+ import tooltip from 'actions/tooltip';
44
55 let overrideText = null;
66
ui/src/components/ShipLink.svelte+2−2
@@ -1,7 +1,7 @@
11<script lang="ts">
22 import { link } from 'svelte-spa-router'
3− import { cite, normalizeId } from '../lib/id';
4− import { linkToShip } from '../lib/link';
3+ import { cite, normalizeId } from 'lib/id';
4+ import { linkToShip } from 'lib/link';
55 export let patp: string;
66 $: normalizedId = normalizeId(patp);
77</script>
ui/src/components/ShipListing.svelte+2−2
@@ -2,8 +2,8 @@
22
33 import Sigil from "./Sigil.svelte";
44 import { push } from 'svelte-spa-router'
5− import { normalizeId } from '../lib/id';
6− import { linkToShip as generateLinkToShip } from '../lib/link';
5+ import { normalizeId } from 'lib/id';
6+ import { linkToShip as generateLinkToShip } from 'lib/link';
77 export let ship: any;
88 export let linkToShip: boolean = false;
99 export let differentiateContacts = false;
ui/src/components/ShipListings.svelte+1−1
@@ -1,6 +1,6 @@
11<script lang="ts">
22 import { createEventDispatcher } from 'svelte';
3− import ShipListing from './ShipListing.svelte';
3+ import ShipListing from '@/ShipListing.svelte';
44 const dispatch = createEventDispatcher();
55
66 export let ships = [];
ui/src/components/ShipView.svelte+2−2
@@ -1,8 +1,8 @@
11<script lang="ts">
22 import { clan, sein, patp2dec } from 'urbit-ob';
33
4− import { cite, normalizeId } from '../lib/id';
5− import { getPoint, getSpawnedPoints } from '../lib/api';
4+ import { cite, normalizeId } from 'lib/id';
5+ import { getPoint, getSpawnedPoints } from 'lib/api';
66 import Sigil from "./Sigil.svelte";
77 import GoldBadge from './GoldBadge.svelte';
88 import TooltipAndDocLink from "./TooltipAndDocLink.svelte";
ui/src/components/Sigil.svelte+17−3
@@ -1,11 +1,16 @@
11<script lang="ts">
22 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';
45 import moonPng from '../assets/moon.png';
56 import cometSvg from '../assets/comet.svg';
67
78 export let patp: string;
89 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;
914 let svgString: any;
1015 let imgSrc: any;
1116
@@ -13,13 +18,22 @@
1318 $: displaySigil = ['galaxy', 'star', 'planet'].includes(shipClass);
1419 $: {
1520 if (displaySigil) {
21+ let sigil = sigil1;
22+ let sr = sr1;
23+ if (useNew) {
24+ sigil = sigil2;
25+ sr = sr2;
26+ }
1627 const svgAST = sigil({
1728 patp: patp,
1829 size,
19− colors: ['black', 'white'],
30+ colors: [bgColor, fgColor],
2031 });
2132 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+ }
2337 } else if (shipClass === 'moon') {
2438 imgSrc = moonPng;
2539 } else {
ui/src/components/StarChart.svelte+4−4
@@ -8,10 +8,10 @@
88
99 import { clan } from 'urbit-ob';
1010 import DocLink from './docs/DocLink.svelte';
11− import { cite, normalizeId } from '../lib/id';
12− import { parseChartData, populateGraph } from '../lib/graph';
13− import { getChartData } from '../lib/api';
14− import { linkToShip } from '../lib/link';
11+ import { cite, normalizeId } from 'lib/id';
12+ import { parseChartData, populateGraph } from 'lib/graph';
13+ import { getChartData } from 'lib/api';
14+ import { linkToShip } from 'lib/link';
1515
1616 import InlineSelect from './buttons/InlineSelect.svelte';
1717
ui/src/components/Tooltip.svelte+1−2
@@ -1,6 +1,5 @@
11<script lang="ts">
2− import { tick } from "svelte";
3− import tooltip from "../actions/tooltip";
2+ import tooltip from 'actions/tooltip';
43 export let text: string = '';
54 let className: string = '';
65 export { className as class };
ui/src/components/docs/Doc.svelte+2−2
@@ -2,8 +2,8 @@
22 import { createEventDispatcher } from 'svelte';
33 import DocContent from './DocContent.svelte';
44 import DocHome from './DocHome.svelte';
5− import Hamburger from '../buttons/Hamburger.svelte';
6− import CloseButton from '../buttons/CloseButton.svelte';
5+ import Hamburger from '@/buttons/Hamburger.svelte';
6+ import CloseButton from '@/buttons/CloseButton.svelte';
77
88 export let path: string;
99
ui/src/components/docs/DocContent.svelte+3−3
@@ -2,10 +2,10 @@
22
33 import { createEventDispatcher } from 'svelte';
44
5− import docLinks from "../../actions/docLinks";
6− import docs from "../../stores/docs";
5+ import docLinks from "actions/docLinks";
6+ import docs from "stores/docs";
77
8− import LoadingSpinner from "../LoadingSpinner.svelte";
8+ import LoadingSpinner from "@/LoadingSpinner.svelte";
99
1010 export let path:string;
1111
ui/src/components/docs/DocLink.svelte+1−1
@@ -1,6 +1,6 @@
11<script lang="ts">
22 import { createEventDispatcher } from 'svelte';
3− import docs from '../../stores/docs';
3+ import docs from 'stores/docs';
44
55 export let path:string;
66 export let modal:boolean = false;
ui/src/components/HelpModal.svelte → ui/src/components/docs/HelpModal.svelterenamed+2−2
@@ -1,6 +1,6 @@
11<script lang="ts">
2− import docs from '../stores/docs';
3− import Doc from './docs/Doc.svelte';
2+ import docs from 'stores/docs';
3+ import Doc from './Doc.svelte';
44
55 function close() {
66 docs.hide()
ui/src/components/SearchBar.svelte → ui/src/components/search/SearchBar.svelterenamed+4−2
@@ -1,6 +1,6 @@
11<script lang="ts">
22
3− import { SearchAnalysis } from '../lib/id';
3+ import { SearchAnalysis } from 'lib/id';
44
55 export let patp: string = undefined;
66 export let searchQuery: RegExp = /~der/;
@@ -43,5 +43,7 @@
4343 bind:value={search}
4444 autofocus
4545 />
46− <button class="absolute right-0 w-10 h-10 rounded-full bg-black transition-opacity opacity-10 hover:opacity-40"></button>
46+ <button
47+ class="absolute right-0 w-10 h-10 rounded-full bg-black transition-opacity opacity-10 hover:opacity-40"
48+ />
4749</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 @@
11<script lang="ts">
22
33 import type { Patp, Rolodex } from '@urbit/api';
4− import { searchPoints } from '../lib/api';
5− import { searchedContacts } from '../stores/searchStores';
6− import ShipListings from './ShipListings.svelte';
4+ import { searchPoints } from 'lib/api';
5+ import { searchedContacts } from 'stores/searchStores';
6+ import ShipListings from '@/ShipListings.svelte';
77 import SearchSettings from './SearchSettings.svelte';
88 import SearchResultsNavButtons from './SearchResultsNavButtons.svelte';
99
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 @@
11<script lang="ts">
2− import ToggleButton from './buttons/ToggleButton.svelte';
2+ import ToggleButton from '../buttons/ToggleButton.svelte';
33
4− import { searchSettings } from '../stores/searchStores';
5− import { toggleStoreKey } from '../lib/utils';
4+ import { searchSettings } from 'stores/searchStores';
5+ import { toggleStoreKey } from 'lib/utils';
66
77 function toggleMoons() {
88 toggleStoreKey(searchSettings, 'includeMoons');
ui/src/routes/HelpPage.svelte+2−2
@@ -1,8 +1,8 @@
11<script lang="ts">
22 import { onMount } from 'svelte';
33 import { push } from 'svelte-spa-router';
4− import docs from '../stores/docs';
5− import Doc from '../components/docs/Doc.svelte';
4+ import docs from 'stores/docs';
5+ import Doc from '@/docs/Doc.svelte';
66 export let params: any = {};
77 $: path = params.path || '';
88
ui/src/routes/Home.svelte+9−9
@@ -1,15 +1,15 @@
11<script lang="ts">
22 import Router from 'svelte-spa-router';
33 import { link, push, replace, location, querystring } from 'svelte-spa-router'
4− import pageName from '../stores/pageName';
5− import { SearchAnalysis } from '../lib/id';
6− import { linkToShip, linkToChart } from '../lib/link';
7− import SearchBar from "../components/SearchBar.svelte";
8− import SearchResults from "../components/SearchResults.svelte";
9− import ShipView from '../components/ShipView.svelte';
10− import StarChart from '../components/StarChart.svelte';
11− import ValidationProblems from '../components/ValidationProblems.svelte';
12− import HomeScreenTiles from '../components/HomeScreenTiles.svelte';
4+ import pageName from 'stores/pageName';
5+ import { SearchAnalysis } from 'lib/id';
6+ import { linkToShip, linkToChart } from 'lib/link';
7+ import SearchBar from "@/search/SearchBar.svelte";
8+ import SearchResults from "@/search/SearchResults.svelte";
9+ import ShipView from '@/ShipView.svelte';
10+ import StarChart from '@/StarChart.svelte';
11+ import ValidationProblems from '@/ValidationProblems.svelte';
12+ import HomeScreenTiles from '@/HomeScreenTiles.svelte';
1313 export let params: any = {};
1414 let analysis: SearchAnalysis = new SearchAnalysis();
1515 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 @@
11import { writable } from 'svelte/store';
22
3−import { getDoc } from '../lib/api';
3+import { getDoc } from 'lib/api';
44const docs = {};
5−// import type { AppState, Contacts } from '../types/store';
5+// import type { AppState, Contacts } from 'types/store';
66
77const initStore: any = {
88 show: false,
ui/src/stores/searchStores.ts+3−3
@@ -2,9 +2,9 @@ import { writable, derived } from 'svelte/store';
22
33import type { Contact, Rolodex } from '@urbit/api';
44import store from './store';
5−import type { StoreState, SearchedContactsState } from '../types/store';
6−import { SearchSettings } from '../types/store';
7−import { filterObject } from '../lib/utils';
5+import type { StoreState, SearchedContactsState } from 'types/store';
6+import { SearchSettings } from 'types/store';
7+import { filterObject } from 'lib/utils';
88
99const searchSettings = writable(new SearchSettings());
1010
ui/src/stores/store.ts+4−4
@@ -1,10 +1,10 @@
11import { writable } from 'svelte/store';
22
33import type { Rolodex } from '@urbit/api';
4−import { subscribeToContacts, getPeers } from '../lib/api';
5−import type { StoreState } from '../types/store';
6−import { normalizeId } from '../lib/id';
7−import { setStoreKey } from '../lib/utils';
4+import { subscribeToContacts, getPeers } from 'lib/api';
5+import type { StoreState } from 'types/store';
6+import { normalizeId } from 'lib/id';
7+import { setStoreKey } from 'lib/utils';
88
99const initStore: StoreState = {
1010 contacts: {},
ui/src/styles/tailwind-output.css+53−47
@@ -532,18 +532,21 @@ Ensure the default browser behavior of the `hidden` attribute.
532532.-bottom-3 {
533533 bottom: -0.75rem;
534534}
535−.z-10 {
536− z-index: 10;
535+.z-50 {
536+ z-index: 50;
537537}
538538.z-20 {
539539 z-index: 20;
540540}
541−.z-50 {
542− z-index: 50;
541+.z-10 {
542+ z-index: 10;
543543}
544544.m-4 {
545545 margin: 1rem;
546546}
547+.m-2 {
548+ margin: 0.5rem;
549+}
547550.m-8 {
548551 margin: 2rem;
549552}
@@ -558,10 +561,6 @@ Ensure the default browser behavior of the `hidden` attribute.
558561 margin-left: auto;
559562 margin-right: auto;
560563}
561−.mx-8 {
562− margin-left: 2rem;
563− margin-right: 2rem;
564−}
565564.my-1\.5 {
566565 margin-top: 0.375rem;
567566 margin-bottom: 0.375rem;
@@ -574,6 +573,10 @@ Ensure the default browser behavior of the `hidden` attribute.
574573 margin-top: 0.75rem;
575574 margin-bottom: 0.75rem;
576575}
576+.mx-8 {
577+ margin-left: 2rem;
578+ margin-right: 2rem;
579+}
577580.my-4 {
578581 margin-top: 1rem;
579582 margin-bottom: 1rem;
@@ -603,9 +606,6 @@ Ensure the default browser behavior of the `hidden` attribute.
603606.ml-1 {
604607 margin-left: 0.25rem;
605608}
606−.-mt-2 {
607− margin-top: -0.5rem;
608−}
609609.mr-4 {
610610 margin-right: 1rem;
611611}
@@ -621,6 +621,9 @@ Ensure the default browser behavior of the `hidden` attribute.
621621.ml-8 {
622622 margin-left: 2rem;
623623}
624+.-mt-2 {
625+ margin-top: -0.5rem;
626+}
624627.-mt-1 {
625628 margin-top: -0.25rem;
626629}
@@ -687,15 +690,6 @@ Ensure the default browser behavior of the `hidden` attribute.
687690.h-5 {
688691 height: 1.25rem;
689692}
690−.h-10 {
691− height: 2.5rem;
692−}
693−.h-6 {
694− height: 1.5rem;
695−}
696−.h-8 {
697− height: 2rem;
698−}
699693.h-12 {
700694 height: 3rem;
701695}
@@ -705,6 +699,15 @@ Ensure the default browser behavior of the `hidden` attribute.
705699.h-\[100vh\] {
706700 height: 100vh;
707701}
702+.h-10 {
703+ height: 2.5rem;
704+}
705+.h-6 {
706+ height: 1.5rem;
707+}
708+.h-8 {
709+ height: 2rem;
710+}
708711.h-2 {
709712 height: 0.5rem;
710713}
@@ -735,18 +738,21 @@ Ensure the default browser behavior of the `hidden` attribute.
735738.w-5 {
736739 width: 1.25rem;
737740}
738−.w-10 {
739− width: 2.5rem;
740−}
741741.w-12 {
742742 width: 3rem;
743743}
744744.w-3 {
745745 width: 0.75rem;
746746}
747+.w-\[128px\] {
748+ width: 128px;
749+}
747750.w-\[100vw\] {
748751 width: 100vw;
749752}
753+.w-10 {
754+ width: 2.5rem;
755+}
750756.w-7 {
751757 width: 1.75rem;
752758}
@@ -867,14 +873,14 @@ Ensure the default browser behavior of the `hidden` attribute.
867873.gap-2 {
868874 gap: 0.5rem;
869875}
870−.gap-x-2 {
871− -moz-column-gap: 0.5rem;
872− column-gap: 0.5rem;
873−}
874876.gap-x-1 {
875877 -moz-column-gap: 0.25rem;
876878 column-gap: 0.25rem;
877879}
880+.gap-x-2 {
881+ -moz-column-gap: 0.5rem;
882+ column-gap: 0.5rem;
883+}
878884.gap-x-3 {
879885 -moz-column-gap: 0.75rem;
880886 column-gap: 0.75rem;
@@ -992,14 +998,14 @@ Ensure the default browser behavior of the `hidden` attribute.
992998 --tw-border-opacity: 1;
993999 border-color: rgb(252 211 77 / var(--tw-border-opacity));
9941000}
995−.border-navy {
996− --tw-border-opacity: 1;
997− border-color: rgb(31 36 60 / var(--tw-border-opacity));
998−}
9991001.border-gray-300 {
10001002 --tw-border-opacity: 1;
10011003 border-color: rgb(209 213 219 / var(--tw-border-opacity));
10021004}
1005+.border-navy {
1006+ --tw-border-opacity: 1;
1007+ border-color: rgb(31 36 60 / var(--tw-border-opacity));
1008+}
10031009.border-white {
10041010 --tw-border-opacity: 1;
10051011 border-color: rgb(255 255 255 / var(--tw-border-opacity));
@@ -1024,10 +1030,6 @@ Ensure the default browser behavior of the `hidden` attribute.
10241030 --tw-bg-opacity: 1;
10251031 background-color: rgb(255 255 255 / var(--tw-bg-opacity));
10261032}
1027−.bg-black {
1028− --tw-bg-opacity: 1;
1029− background-color: rgb(0 0 0 / var(--tw-bg-opacity));
1030−}
10311033.bg-l1-blue {
10321034 --tw-bg-opacity: 1;
10331035 background-color: rgb(23 146 199 / var(--tw-bg-opacity));
@@ -1048,6 +1050,10 @@ Ensure the default browser behavior of the `hidden` attribute.
10481050 --tw-bg-opacity: 1;
10491051 background-color: rgb(209 213 219 / var(--tw-bg-opacity));
10501052}
1053+.bg-black {
1054+ --tw-bg-opacity: 1;
1055+ background-color: rgb(0 0 0 / var(--tw-bg-opacity));
1056+}
10511057.bg-amber-300 {
10521058 --tw-bg-opacity: 1;
10531059 background-color: rgb(252 211 77 / var(--tw-bg-opacity));
@@ -1157,6 +1163,18 @@ Ensure the default browser behavior of the `hidden` attribute.
11571163 padding-top: 1rem;
11581164 padding-bottom: 1rem;
11591165}
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+}
11601178.py-2 {
11611179 padding-top: 0.5rem;
11621180 padding-bottom: 0.5rem;
@@ -1165,10 +1183,6 @@ Ensure the default browser behavior of the `hidden` attribute.
11651183 padding-left: 1.5rem;
11661184 padding-right: 1.5rem;
11671185}
1168−.px-4 {
1169− padding-left: 1rem;
1170− padding-right: 1rem;
1171−}
11721186.py-8 {
11731187 padding-top: 2rem;
11741188 padding-bottom: 2rem;
@@ -1177,14 +1191,6 @@ Ensure the default browser behavior of the `hidden` attribute.
11771191 padding-left: 2rem;
11781192 padding-right: 2rem;
11791193}
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−}
11881194.px-3 {
11891195 padding-left: 0.75rem;
11901196 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';
22
33export default {
44 // Consult https://github.com/sveltejs/svelte-preprocess
@@ -10,4 +10,4 @@ export default {
1010
1111 handler(warning)
1212 },
13−}
13+};
ui/tsconfig.json+9
@@ -7,6 +7,15 @@
77 "module": "esnext",
88 "resolveJsonModule": true,
99 "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+ },
1019 /**
1120 * Typecheck JS in `.svelte` and `.js` files by default.
1221 * Disable checkJs if you'd like to use dynamic types in JS.
ui/vite.config.ts+21−1
@@ -1,6 +1,7 @@
11import { loadEnv, defineConfig } from 'vite';
22import { svelte } from '@sveltejs/vite-plugin-svelte'
33import { urbitPlugin } from '@urbit/vite-plugin-urbit';
4+import path from 'path';
45
56// https://vitejs.dev/config/
67export default ({ mode }) => {
@@ -9,6 +10,25 @@ export default ({ mode }) => {
910 console.log(SHIP_URL);
1011
1112 return defineConfig({
12− plugins: [urbitPlugin({ base: 'astrolabe', target: SHIP_URL, secure: false }), svelte()]
13+ plugins: [
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+ },
1333 });
1434};