diff --git a/.eslintrc.cjs b/.eslintrc.cjs
index 701e49d3e..7619dd6b3 100644
--- a/.eslintrc.cjs
+++ b/.eslintrc.cjs
@@ -198,11 +198,42 @@ module.exports = {
message: "Don't use the Boolean function. Use a strict comparison instead."
}
],
+ 'no-restricted-imports': [
+ 'warn',
+ {
+ patterns: [
+ {
+ group: ['../*'],
+ message: 'Usage of relative parent imports is not allowed.'
+ }
+ ],
+ paths: [
+ {
+ name: '.',
+ message: 'Usage of local index imports is not allowed.'
+ },
+ {
+ name: './index',
+ message: 'Import from the source file instead.'
+ }
+ ]
+ }
+ ],
'import/no-duplicates': 'warn',
'import/order': [
'warn',
{
- groups: ['builtin', 'external', 'parent', 'sibling', 'index'],
+ groups: ['builtin', 'external', ['parent', 'internal', 'index'], 'sibling'],
+ pathGroups: [
+ {
+ pattern: '~/**',
+ group: 'internal'
+ },
+ {
+ pattern: 'dist/**',
+ group: 'external'
+ }
+ ],
alphabetize: {
order: 'asc',
caseInsensitive: true
diff --git a/cspell.json b/cspell.json
index 48febacdc..e39a68ee5 100644
--- a/cspell.json
+++ b/cspell.json
@@ -107,6 +107,7 @@
"textareas",
"transitionend",
"Triaging",
+ "ttsc",
"turbolinks",
"unbundles",
"unbundling",
diff --git a/docs/resources/changelog.md b/docs/resources/changelog.md
index 637129ba7..1862e7943 100644
--- a/docs/resources/changelog.md
+++ b/docs/resources/changelog.md
@@ -12,7 +12,6 @@ _During the beta period, these restrictions may be relaxed in the event of a mis
- Fixed a bug that prevented forms from submitting when pressing Enter inside of an `` [#700](https://github.com/shoelace-style/shoelace/issues/700)
- Improved `autofocus` behavior in Safari for `` and `` [#693](https://github.com/shoelace-style/shoelace/issues/693)
- Removed feature detection for `focus({ preventScroll })` since it no longer works in Safari
-- Removed path aliasing and third-party dependencies that it required
## 2.0.0-beta.70
diff --git a/package-lock.json b/package-lock.json
index 5fc53a1d9..ed2d3a49d 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -61,7 +61,9 @@
"sinon": "^13.0.1",
"strip-css-comments": "^5.0.0",
"tslib": "^2.3.1",
- "typescript": "^4.5.5"
+ "ttypescript": "^1.5.13",
+ "typescript": "^4.5.5",
+ "typescript-transform-paths": "^3.3.1"
},
"engines": {
"node": ">=14.17.0"
@@ -504,6 +506,29 @@
"integrity": "sha512-/MB0RS0Gn01s4pgmjy0FvsLfr3RRMrRphEuvTRserNcM8XVtoIVAtrjig/Gg0DPwDrN8Clm0L1j7iQay6S8D0g==",
"dev": true
},
+ "node_modules/@cspotcode/source-map-consumer": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz",
+ "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">= 12"
+ }
+ },
+ "node_modules/@cspotcode/source-map-support": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz",
+ "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@cspotcode/source-map-consumer": "0.8.0"
+ },
+ "engines": {
+ "node": ">=12"
+ }
+ },
"node_modules/@custom-elements-manifest/analyzer": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/@custom-elements-manifest/analyzer/-/analyzer-0.5.7.tgz",
@@ -991,6 +1016,34 @@
"node": ">= 6"
}
},
+ "node_modules/@tsconfig/node10": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz",
+ "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/@tsconfig/node12": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz",
+ "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/@tsconfig/node14": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz",
+ "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==",
+ "dev": true,
+ "peer": true
+ },
+ "node_modules/@tsconfig/node16": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz",
+ "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==",
+ "dev": true,
+ "peer": true
+ },
"node_modules/@types/accepts": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz",
@@ -2007,6 +2060,16 @@
"acorn": "^6.0.0 || ^7.0.0 || ^8.0.0"
}
},
+ "node_modules/acorn-walk": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
+ "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=0.4.0"
+ }
+ },
"node_modules/after": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",
@@ -2230,6 +2293,13 @@
"node": ">= 6"
}
},
+ "node_modules/arg": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
+ "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
+ "dev": true,
+ "peer": true
+ },
"node_modules/argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
@@ -3677,6 +3747,13 @@
"node": ">=10"
}
},
+ "node_modules/create-require": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
+ "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
+ "dev": true,
+ "peer": true
+ },
"node_modules/cross-fetch": {
"version": "3.1.5",
"resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz",
@@ -8972,6 +9049,13 @@
"semver": "bin/semver.js"
}
},
+ "node_modules/make-error": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
+ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
+ "dev": true,
+ "peer": true
+ },
"node_modules/make-fetch-happen": {
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz",
@@ -12976,6 +13060,59 @@
"node": ">=0.8.0"
}
},
+ "node_modules/ts-node": {
+ "version": "10.6.0",
+ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.6.0.tgz",
+ "integrity": "sha512-CJen6+dfOXolxudBQXnVjRVvYTmTWbyz7cn+xq2XTsvnaXbHqr4gXSCNbS2Jj8yTZMuGwUoBESLaOkLascVVvg==",
+ "dev": true,
+ "peer": true,
+ "dependencies": {
+ "@cspotcode/source-map-support": "0.7.0",
+ "@tsconfig/node10": "^1.0.7",
+ "@tsconfig/node12": "^1.0.7",
+ "@tsconfig/node14": "^1.0.0",
+ "@tsconfig/node16": "^1.0.2",
+ "acorn": "^8.4.1",
+ "acorn-walk": "^8.1.1",
+ "arg": "^4.1.0",
+ "create-require": "^1.1.0",
+ "diff": "^4.0.1",
+ "make-error": "^1.1.1",
+ "v8-compile-cache-lib": "^3.0.0",
+ "yn": "3.1.1"
+ },
+ "bin": {
+ "ts-node": "dist/bin.js",
+ "ts-node-cwd": "dist/bin-cwd.js",
+ "ts-node-script": "dist/bin-script.js",
+ "ts-node-transpile-only": "dist/bin-transpile.js",
+ "ts-script": "dist/bin-script-deprecated.js"
+ },
+ "peerDependencies": {
+ "@swc/core": ">=1.2.50",
+ "@swc/wasm": ">=1.2.50",
+ "@types/node": "*",
+ "typescript": ">=2.7"
+ },
+ "peerDependenciesMeta": {
+ "@swc/core": {
+ "optional": true
+ },
+ "@swc/wasm": {
+ "optional": true
+ }
+ }
+ },
+ "node_modules/ts-node/node_modules/diff": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
+ "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=0.3.1"
+ }
+ },
"node_modules/tsconfig-paths": {
"version": "3.12.0",
"resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz",
@@ -13036,6 +13173,23 @@
"integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
"dev": true
},
+ "node_modules/ttypescript": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/ttypescript/-/ttypescript-1.5.13.tgz",
+ "integrity": "sha512-KT/RBfGGlVJFqEI8cVvI3nMsmYcFvPSZh8bU0qX+pAwbi7/ABmYkzn7l/K8skw0xmYjVCoyaV6WLsBQxdadybQ==",
+ "dev": true,
+ "dependencies": {
+ "resolve": ">=1.9.0"
+ },
+ "bin": {
+ "ttsc": "bin/tsc",
+ "ttsserver": "bin/tsserver"
+ },
+ "peerDependencies": {
+ "ts-node": ">=8.0.2",
+ "typescript": ">=3.2.2"
+ }
+ },
"node_modules/type-check": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
@@ -13104,6 +13258,18 @@
"node": ">=4.2.0"
}
},
+ "node_modules/typescript-transform-paths": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/typescript-transform-paths/-/typescript-transform-paths-3.3.1.tgz",
+ "integrity": "sha512-c+8Cqd2rsRtTU68rJI0NX/OtqgBDddNs1fIxm1nCNyhn0WpoyqtpUxc1w9Ke5c5kgE4/OT5xYbKf2cf694RYEg==",
+ "dev": true,
+ "dependencies": {
+ "minimatch": "^3.0.4"
+ },
+ "peerDependencies": {
+ "typescript": ">=3.6.5"
+ }
+ },
"node_modules/typical": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz",
@@ -13379,6 +13545,13 @@
"integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
"dev": true
},
+ "node_modules/v8-compile-cache-lib": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz",
+ "integrity": "sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==",
+ "dev": true,
+ "peer": true
+ },
"node_modules/v8-to-istanbul": {
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz",
@@ -13926,6 +14099,16 @@
"node": ">= 4.0.0"
}
},
+ "node_modules/yn": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
+ "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
+ "dev": true,
+ "peer": true,
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/yocto-queue": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
@@ -14336,6 +14519,23 @@
"integrity": "sha512-/MB0RS0Gn01s4pgmjy0FvsLfr3RRMrRphEuvTRserNcM8XVtoIVAtrjig/Gg0DPwDrN8Clm0L1j7iQay6S8D0g==",
"dev": true
},
+ "@cspotcode/source-map-consumer": {
+ "version": "0.8.0",
+ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-consumer/-/source-map-consumer-0.8.0.tgz",
+ "integrity": "sha512-41qniHzTU8yAGbCp04ohlmSrZf8bkf/iJsl3V0dRGsQN/5GFfx+LbCSsCpp2gqrqjTVg/K6O8ycoV35JIwAzAg==",
+ "dev": true,
+ "peer": true
+ },
+ "@cspotcode/source-map-support": {
+ "version": "0.7.0",
+ "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.7.0.tgz",
+ "integrity": "sha512-X4xqRHqN8ACt2aHVe51OxeA2HjbcL4MqFqXkrmQszJ1NOUuUu5u6Vqx/0lZSVNku7velL5FC/s5uEAj1lsBMhA==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@cspotcode/source-map-consumer": "0.8.0"
+ }
+ },
"@custom-elements-manifest/analyzer": {
"version": "0.5.7",
"resolved": "https://registry.npmjs.org/@custom-elements-manifest/analyzer/-/analyzer-0.5.7.tgz",
@@ -14744,6 +14944,34 @@
"integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==",
"dev": true
},
+ "@tsconfig/node10": {
+ "version": "1.0.8",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.8.tgz",
+ "integrity": "sha512-6XFfSQmMgq0CFLY1MslA/CPUfhIL919M1rMsa5lP2P097N2Wd1sSX0tx1u4olM16fLNhtHZpRhedZJphNJqmZg==",
+ "dev": true,
+ "peer": true
+ },
+ "@tsconfig/node12": {
+ "version": "1.0.9",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.9.tgz",
+ "integrity": "sha512-/yBMcem+fbvhSREH+s14YJi18sp7J9jpuhYByADT2rypfajMZZN4WQ6zBGgBKp53NKmqI36wFYDb3yaMPurITw==",
+ "dev": true,
+ "peer": true
+ },
+ "@tsconfig/node14": {
+ "version": "1.0.1",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.1.tgz",
+ "integrity": "sha512-509r2+yARFfHHE7T6Puu2jjkoycftovhXRqW328PDXTVGKihlb1P8Z9mMZH04ebyajfRY7dedfGynlrFHJUQCg==",
+ "dev": true,
+ "peer": true
+ },
+ "@tsconfig/node16": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.2.tgz",
+ "integrity": "sha512-eZxlbI8GZscaGS7kkc/trHTT5xgrjH3/1n2JDwusC9iahPKWMRvRjJSAN5mCXviuTGQ/lHnhvv8Q1YTpnfz9gA==",
+ "dev": true,
+ "peer": true
+ },
"@types/accepts": {
"version": "1.3.5",
"resolved": "https://registry.npmjs.org/@types/accepts/-/accepts-1.3.5.tgz",
@@ -15588,6 +15816,13 @@
"dev": true,
"requires": {}
},
+ "acorn-walk": {
+ "version": "8.2.0",
+ "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz",
+ "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==",
+ "dev": true,
+ "peer": true
+ },
"after": {
"version": "0.8.2",
"resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz",
@@ -15763,6 +15998,13 @@
}
}
},
+ "arg": {
+ "version": "4.1.3",
+ "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz",
+ "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==",
+ "dev": true,
+ "peer": true
+ },
"argparse": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
@@ -16891,6 +17133,13 @@
"yaml": "^1.10.0"
}
},
+ "create-require": {
+ "version": "1.1.1",
+ "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz",
+ "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==",
+ "dev": true,
+ "peer": true
+ },
"cross-fetch": {
"version": "3.1.5",
"resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz",
@@ -20857,6 +21106,13 @@
}
}
},
+ "make-error": {
+ "version": "1.3.6",
+ "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz",
+ "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==",
+ "dev": true,
+ "peer": true
+ },
"make-fetch-happen": {
"version": "9.1.0",
"resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz",
@@ -23976,6 +24232,37 @@
}
}
},
+ "ts-node": {
+ "version": "10.6.0",
+ "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.6.0.tgz",
+ "integrity": "sha512-CJen6+dfOXolxudBQXnVjRVvYTmTWbyz7cn+xq2XTsvnaXbHqr4gXSCNbS2Jj8yTZMuGwUoBESLaOkLascVVvg==",
+ "dev": true,
+ "peer": true,
+ "requires": {
+ "@cspotcode/source-map-support": "0.7.0",
+ "@tsconfig/node10": "^1.0.7",
+ "@tsconfig/node12": "^1.0.7",
+ "@tsconfig/node14": "^1.0.0",
+ "@tsconfig/node16": "^1.0.2",
+ "acorn": "^8.4.1",
+ "acorn-walk": "^8.1.1",
+ "arg": "^4.1.0",
+ "create-require": "^1.1.0",
+ "diff": "^4.0.1",
+ "make-error": "^1.1.1",
+ "v8-compile-cache-lib": "^3.0.0",
+ "yn": "3.1.1"
+ },
+ "dependencies": {
+ "diff": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz",
+ "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==",
+ "dev": true,
+ "peer": true
+ }
+ }
+ },
"tsconfig-paths": {
"version": "3.12.0",
"resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.12.0.tgz",
@@ -24028,6 +24315,15 @@
}
}
},
+ "ttypescript": {
+ "version": "1.5.13",
+ "resolved": "https://registry.npmjs.org/ttypescript/-/ttypescript-1.5.13.tgz",
+ "integrity": "sha512-KT/RBfGGlVJFqEI8cVvI3nMsmYcFvPSZh8bU0qX+pAwbi7/ABmYkzn7l/K8skw0xmYjVCoyaV6WLsBQxdadybQ==",
+ "dev": true,
+ "requires": {
+ "resolve": ">=1.9.0"
+ }
+ },
"type-check": {
"version": "0.4.0",
"resolved": "https://registry.npmjs.org/type-check/-/type-check-0.4.0.tgz",
@@ -24074,6 +24370,15 @@
"integrity": "sha512-TCTIul70LyWe6IJWT8QSYeA54WQe8EjQFU4wY52Fasj5UKx88LNYKCgBEHcOMOrFF1rKGbD8v/xcNWVUq9SymA==",
"dev": true
},
+ "typescript-transform-paths": {
+ "version": "3.3.1",
+ "resolved": "https://registry.npmjs.org/typescript-transform-paths/-/typescript-transform-paths-3.3.1.tgz",
+ "integrity": "sha512-c+8Cqd2rsRtTU68rJI0NX/OtqgBDddNs1fIxm1nCNyhn0WpoyqtpUxc1w9Ke5c5kgE4/OT5xYbKf2cf694RYEg==",
+ "dev": true,
+ "requires": {
+ "minimatch": "^3.0.4"
+ }
+ },
"typical": {
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz",
@@ -24275,6 +24580,13 @@
"integrity": "sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==",
"dev": true
},
+ "v8-compile-cache-lib": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.0.tgz",
+ "integrity": "sha512-mpSYqfsFvASnSn5qMiwrr4VKfumbPyONLCOPmsR3A6pTY/r0+tSaVbgPWSAIuzbk3lCTa+FForeTiO+wBQGkjA==",
+ "dev": true,
+ "peer": true
+ },
"v8-to-istanbul": {
"version": "8.1.1",
"resolved": "https://registry.npmjs.org/v8-to-istanbul/-/v8-to-istanbul-8.1.1.tgz",
@@ -24706,6 +25018,13 @@
"integrity": "sha512-faQrqNMzcPCHGVC2aaOINk13K+aaBDUPjGWl0teOXywElLjyVAB6Oe2jj62jHYtwsU49jXhScYbvPENK+6zAvQ==",
"dev": true
},
+ "yn": {
+ "version": "3.1.1",
+ "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz",
+ "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==",
+ "dev": true,
+ "peer": true
+ },
"yocto-queue": {
"version": "0.1.0",
"resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz",
diff --git a/package.json b/package.json
index 2bf603a19..b46f146bc 100644
--- a/package.json
+++ b/package.json
@@ -104,6 +104,8 @@
"sinon": "^13.0.1",
"strip-css-comments": "^5.0.0",
"tslib": "^2.3.1",
- "typescript": "^4.5.5"
+ "ttypescript": "^1.5.13",
+ "typescript": "^4.5.5",
+ "typescript-transform-paths": "^3.3.1"
}
}
diff --git a/scripts/build.js b/scripts/build.js
index 52130314e..c6a217a8d 100644
--- a/scripts/build.js
+++ b/scripts/build.js
@@ -34,7 +34,7 @@ fs.mkdirSync(outdir, { recursive: true });
execSync(`node scripts/make-icons.js --outdir "${outdir}"`, { stdio: 'inherit' });
if (types) {
console.log('Running the TypeScript compiler...');
- execSync(`tsc --project ./tsconfig.prod.json --outdir "${outdir}"`, { stdio: 'inherit' });
+ execSync(`ttsc --project ./tsconfig.prod.json --outdir "${outdir}"`, { stdio: 'inherit' });
}
} catch (err) {
console.error(chalk.red(err));
diff --git a/scripts/plop/templates/component/component.hbs b/scripts/plop/templates/component/component.hbs
index d36cfcb40..e07720738 100644
--- a/scripts/plop/templates/component/component.hbs
+++ b/scripts/plop/templates/component/component.hbs
@@ -1,8 +1,8 @@
import { LitElement, html } from 'lit';
import { customElement, property } from 'lit/decorators.js';
import styles from './{{ tagWithoutPrefix tag }}.styles';
-import { emit } from '../../internal/event';
-import { watch } from '../../internal/watch';
+import { emit } from '~/internal/event';
+import { watch } from '~/internal/watch';
/**
* @since 2.0
diff --git a/scripts/plop/templates/component/styles.hbs b/scripts/plop/templates/component/styles.hbs
index a4aafbb97..fd001391b 100644
--- a/scripts/plop/templates/component/styles.hbs
+++ b/scripts/plop/templates/component/styles.hbs
@@ -1,5 +1,5 @@
import { css } from 'lit';
-import componentStyles from '../../styles/component.styles';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/alert/alert.styles.ts b/src/components/alert/alert.styles.ts
index 67139c34e..c171ce754 100644
--- a/src/components/alert/alert.styles.ts
+++ b/src/components/alert/alert.styles.ts
@@ -1,5 +1,5 @@
import { css } from 'lit';
-import componentStyles from '../../styles/component.styles';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/alert/alert.ts b/src/components/alert/alert.ts
index 1e7085de3..bd89e4fc5 100644
--- a/src/components/alert/alert.ts
+++ b/src/components/alert/alert.ts
@@ -1,11 +1,11 @@
import { html, LitElement } from 'lit';
import { customElement, property, query } from 'lit/decorators.js';
import { classMap } from 'lit/directives/class-map.js';
-import { animateTo, stopAnimations } from '../../internal/animate';
-import { emit, waitForEvent } from '../../internal/event';
-import { watch } from '../../internal/watch';
-import { getAnimation, setDefaultAnimation } from '../../utilities/animation-registry';
-import '../icon-button/icon-button';
+import '~/components/icon-button/icon-button';
+import { animateTo, stopAnimations } from '~/internal/animate';
+import { emit, waitForEvent } from '~/internal/event';
+import { watch } from '~/internal/watch';
+import { getAnimation, setDefaultAnimation } from '~/utilities/animation-registry';
import styles from './alert.styles';
const toastStack = Object.assign(document.createElement('div'), { className: 'sl-toast-stack' });
diff --git a/src/components/animated-image/animated-image.styles.ts b/src/components/animated-image/animated-image.styles.ts
index 72685544c..b4d529b3e 100644
--- a/src/components/animated-image/animated-image.styles.ts
+++ b/src/components/animated-image/animated-image.styles.ts
@@ -1,5 +1,5 @@
import { css } from 'lit';
-import componentStyles from '../../styles/component.styles';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/animated-image/animated-image.ts b/src/components/animated-image/animated-image.ts
index da928517e..3e5b72806 100644
--- a/src/components/animated-image/animated-image.ts
+++ b/src/components/animated-image/animated-image.ts
@@ -1,8 +1,8 @@
import { html, LitElement } from 'lit';
import { customElement, property, query, state } from 'lit/decorators.js';
-import { emit } from '../../internal/event';
-import { watch } from '../../internal/watch';
-import '../icon/icon';
+import '~/components/icon/icon';
+import { emit } from '~/internal/event';
+import { watch } from '~/internal/watch';
import styles from './animated-image.styles';
/**
diff --git a/src/components/animation/animation.styles.ts b/src/components/animation/animation.styles.ts
index cb10fcc60..707b58af8 100644
--- a/src/components/animation/animation.styles.ts
+++ b/src/components/animation/animation.styles.ts
@@ -1,5 +1,5 @@
import { css } from 'lit';
-import componentStyles from '../../styles/component.styles';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/animation/animation.ts b/src/components/animation/animation.ts
index 28a24af08..0dadb1b82 100644
--- a/src/components/animation/animation.ts
+++ b/src/components/animation/animation.ts
@@ -1,7 +1,7 @@
import { html, LitElement } from 'lit';
import { customElement, property, queryAsync } from 'lit/decorators.js';
-import { emit } from '../../internal/event';
-import { watch } from '../../internal/watch';
+import { emit } from '~/internal/event';
+import { watch } from '~/internal/watch';
import styles from './animation.styles';
import { animations } from './animations';
diff --git a/src/components/avatar/avatar.styles.ts b/src/components/avatar/avatar.styles.ts
index 41b07afb1..0e91a6738 100644
--- a/src/components/avatar/avatar.styles.ts
+++ b/src/components/avatar/avatar.styles.ts
@@ -1,5 +1,5 @@
import { css } from 'lit';
-import componentStyles from '../../styles/component.styles';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/avatar/avatar.ts b/src/components/avatar/avatar.ts
index 6027a6b88..96ff36e84 100644
--- a/src/components/avatar/avatar.ts
+++ b/src/components/avatar/avatar.ts
@@ -1,7 +1,7 @@
import { html, LitElement } from 'lit';
import { customElement, property, state } from 'lit/decorators.js';
import { classMap } from 'lit/directives/class-map.js';
-import '../icon/icon';
+import '~/components/icon/icon';
import styles from './avatar.styles';
/**
diff --git a/src/components/badge/badge.styles.ts b/src/components/badge/badge.styles.ts
index 9279e6ff0..e1e2e26f9 100644
--- a/src/components/badge/badge.styles.ts
+++ b/src/components/badge/badge.styles.ts
@@ -1,5 +1,5 @@
import { css } from 'lit';
-import componentStyles from '../../styles/component.styles';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/breadcrumb-item/breadcrumb-item.styles.ts b/src/components/breadcrumb-item/breadcrumb-item.styles.ts
index 077cb2915..ae174294b 100644
--- a/src/components/breadcrumb-item/breadcrumb-item.styles.ts
+++ b/src/components/breadcrumb-item/breadcrumb-item.styles.ts
@@ -1,6 +1,6 @@
import { css } from 'lit';
-import { focusVisibleSelector } from '../../internal/focus-visible';
-import componentStyles from '../../styles/component.styles';
+import { focusVisibleSelector } from '~/internal/focus-visible';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/breadcrumb-item/breadcrumb-item.ts b/src/components/breadcrumb-item/breadcrumb-item.ts
index 654d42e05..63ff54480 100644
--- a/src/components/breadcrumb-item/breadcrumb-item.ts
+++ b/src/components/breadcrumb-item/breadcrumb-item.ts
@@ -2,7 +2,7 @@ import { html, LitElement } from 'lit';
import { customElement, property } from 'lit/decorators.js';
import { classMap } from 'lit/directives/class-map.js';
import { ifDefined } from 'lit/directives/if-defined.js';
-import { HasSlotController } from '../../internal/slot';
+import { HasSlotController } from '~/internal/slot';
import styles from './breadcrumb-item.styles';
/**
diff --git a/src/components/breadcrumb/breadcrumb.styles.ts b/src/components/breadcrumb/breadcrumb.styles.ts
index 281a00f50..c6adb7372 100644
--- a/src/components/breadcrumb/breadcrumb.styles.ts
+++ b/src/components/breadcrumb/breadcrumb.styles.ts
@@ -1,5 +1,5 @@
import { css } from 'lit';
-import componentStyles from '../../styles/component.styles';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/breadcrumb/breadcrumb.ts b/src/components/breadcrumb/breadcrumb.ts
index a38645775..1a185edff 100644
--- a/src/components/breadcrumb/breadcrumb.ts
+++ b/src/components/breadcrumb/breadcrumb.ts
@@ -1,7 +1,7 @@
import { html, LitElement } from 'lit';
import { customElement, property, query } from 'lit/decorators.js';
-import type SlBreadcrumbItem from '../breadcrumb-item/breadcrumb-item';
-import '../icon/icon';
+import type SlBreadcrumbItem from '~/components/breadcrumb-item/breadcrumb-item';
+import '~/components/icon/icon';
import styles from './breadcrumb.styles';
/**
diff --git a/src/components/button-group/button-group.styles.ts b/src/components/button-group/button-group.styles.ts
index 03cbf62e8..4fb79e51c 100644
--- a/src/components/button-group/button-group.styles.ts
+++ b/src/components/button-group/button-group.styles.ts
@@ -1,5 +1,5 @@
import { css } from 'lit';
-import componentStyles from '../../styles/component.styles';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/button/button.styles.ts b/src/components/button/button.styles.ts
index b0cfe4611..283de7842 100644
--- a/src/components/button/button.styles.ts
+++ b/src/components/button/button.styles.ts
@@ -1,6 +1,6 @@
import { css } from 'lit';
-import { focusVisibleSelector } from '../../internal/focus-visible';
-import componentStyles from '../../styles/component.styles';
+import { focusVisibleSelector } from '~/internal/focus-visible';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/button/button.ts b/src/components/button/button.ts
index 17e3b57f5..a57567247 100644
--- a/src/components/button/button.ts
+++ b/src/components/button/button.ts
@@ -3,10 +3,10 @@ import { customElement, property, query, state } from 'lit/decorators.js';
import { classMap } from 'lit/directives/class-map.js';
import { ifDefined } from 'lit/directives/if-defined.js';
import { html, literal } from 'lit/static-html.js';
-import { emit } from '../../internal/event';
-import { FormSubmitController } from '../../internal/form-control';
-import { HasSlotController } from '../../internal/slot';
-import '../spinner/spinner';
+import '~/components/spinner/spinner';
+import { emit } from '~/internal/event';
+import { FormSubmitController } from '~/internal/form-control';
+import { HasSlotController } from '~/internal/slot';
import styles from './button.styles';
/**
diff --git a/src/components/card/card.styles.ts b/src/components/card/card.styles.ts
index 817ca597b..2f3d1bb64 100644
--- a/src/components/card/card.styles.ts
+++ b/src/components/card/card.styles.ts
@@ -1,5 +1,5 @@
import { css } from 'lit';
-import componentStyles from '../../styles/component.styles';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/card/card.ts b/src/components/card/card.ts
index eaded52fa..278b0b924 100644
--- a/src/components/card/card.ts
+++ b/src/components/card/card.ts
@@ -1,7 +1,7 @@
import { html, LitElement } from 'lit';
import { customElement } from 'lit/decorators.js';
import { classMap } from 'lit/directives/class-map.js';
-import { HasSlotController } from '../../internal/slot';
+import { HasSlotController } from '~/internal/slot';
import styles from './card.styles';
/**
diff --git a/src/components/checkbox/checkbox.styles.ts b/src/components/checkbox/checkbox.styles.ts
index e84d07b03..5ce6fdcdc 100644
--- a/src/components/checkbox/checkbox.styles.ts
+++ b/src/components/checkbox/checkbox.styles.ts
@@ -1,6 +1,6 @@
import { css } from 'lit';
-import { focusVisibleSelector } from '../../internal/focus-visible';
-import componentStyles from '../../styles/component.styles';
+import { focusVisibleSelector } from '~/internal/focus-visible';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/checkbox/checkbox.ts b/src/components/checkbox/checkbox.ts
index 58efbd4a0..6e77cd424 100644
--- a/src/components/checkbox/checkbox.ts
+++ b/src/components/checkbox/checkbox.ts
@@ -3,10 +3,10 @@ import { customElement, property, query, state } from 'lit/decorators.js';
import { classMap } from 'lit/directives/class-map.js';
import { ifDefined } from 'lit/directives/if-defined.js';
import { live } from 'lit/directives/live.js';
-import { autoIncrement } from '../../internal/auto-increment';
-import { emit } from '../../internal/event';
-import { FormSubmitController } from '../../internal/form-control';
-import { watch } from '../../internal/watch';
+import { autoIncrement } from '~/internal/auto-increment';
+import { emit } from '~/internal/event';
+import { FormSubmitController } from '~/internal/form-control';
+import { watch } from '~/internal/watch';
import styles from './checkbox.styles';
/**
diff --git a/src/components/color-picker/color-picker.styles.ts b/src/components/color-picker/color-picker.styles.ts
index 0d0a8b8e4..76190ace4 100644
--- a/src/components/color-picker/color-picker.styles.ts
+++ b/src/components/color-picker/color-picker.styles.ts
@@ -1,6 +1,6 @@
import { css } from 'lit';
-import { focusVisibleSelector } from '../../internal/focus-visible';
-import componentStyles from '../../styles/component.styles';
+import { focusVisibleSelector } from '~/internal/focus-visible';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/color-picker/color-picker.ts b/src/components/color-picker/color-picker.ts
index 7788d754b..3f8b6f4a3 100644
--- a/src/components/color-picker/color-picker.ts
+++ b/src/components/color-picker/color-picker.ts
@@ -5,19 +5,19 @@ import { classMap } from 'lit/directives/class-map.js';
import { ifDefined } from 'lit/directives/if-defined.js';
import { live } from 'lit/directives/live.js';
import { styleMap } from 'lit/directives/style-map.js';
-import { drag } from '../../internal/drag';
-import { emit } from '../../internal/event';
-import { FormSubmitController } from '../../internal/form-control';
-import { clamp } from '../../internal/math';
-import { watch } from '../../internal/watch';
-import { LocalizeController } from '../../utilities/localize';
-import '../button-group/button-group';
-import '../button/button';
-import '../dropdown/dropdown';
-import type SlDropdown from '../dropdown/dropdown';
-import '../icon/icon';
-import '../input/input';
-import type SlInput from '../input/input';
+import '~/components/button-group/button-group';
+import '~/components/button/button';
+import '~/components/dropdown/dropdown';
+import type SlDropdown from '~/components/dropdown/dropdown';
+import '~/components/icon/icon';
+import '~/components/input/input';
+import type SlInput from '~/components/input/input';
+import { drag } from '~/internal/drag';
+import { emit } from '~/internal/event';
+import { FormSubmitController } from '~/internal/form-control';
+import { clamp } from '~/internal/math';
+import { watch } from '~/internal/watch';
+import { LocalizeController } from '~/utilities/localize';
import styles from './color-picker.styles';
const hasEyeDropper = 'EyeDropper' in window;
diff --git a/src/components/details/details.styles.ts b/src/components/details/details.styles.ts
index e42646ef9..f8f18abb3 100644
--- a/src/components/details/details.styles.ts
+++ b/src/components/details/details.styles.ts
@@ -1,6 +1,6 @@
import { css } from 'lit';
-import { focusVisibleSelector } from '../../internal/focus-visible';
-import componentStyles from '../../styles/component.styles';
+import { focusVisibleSelector } from '~/internal/focus-visible';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/details/details.ts b/src/components/details/details.ts
index 032ccb790..13c565a59 100644
--- a/src/components/details/details.ts
+++ b/src/components/details/details.ts
@@ -1,11 +1,11 @@
import { html, LitElement } from 'lit';
import { customElement, property, query } from 'lit/decorators.js';
import { classMap } from 'lit/directives/class-map.js';
-import { animateTo, shimKeyframesHeightAuto, stopAnimations } from '../../internal/animate';
-import { emit, waitForEvent } from '../../internal/event';
-import { watch } from '../../internal/watch';
-import { getAnimation, setDefaultAnimation } from '../../utilities/animation-registry';
-import '../icon/icon';
+import '~/components/icon/icon';
+import { animateTo, shimKeyframesHeightAuto, stopAnimations } from '~/internal/animate';
+import { emit, waitForEvent } from '~/internal/event';
+import { watch } from '~/internal/watch';
+import { getAnimation, setDefaultAnimation } from '~/utilities/animation-registry';
import styles from './details.styles';
/**
diff --git a/src/components/dialog/dialog.styles.ts b/src/components/dialog/dialog.styles.ts
index b2857bc3f..dbf14bfad 100644
--- a/src/components/dialog/dialog.styles.ts
+++ b/src/components/dialog/dialog.styles.ts
@@ -1,5 +1,5 @@
import { css } from 'lit';
-import componentStyles from '../../styles/component.styles';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/dialog/dialog.ts b/src/components/dialog/dialog.ts
index 112a23746..54a55721b 100644
--- a/src/components/dialog/dialog.ts
+++ b/src/components/dialog/dialog.ts
@@ -2,15 +2,15 @@ import { html, LitElement } from 'lit';
import { customElement, property, query } from 'lit/decorators.js';
import { classMap } from 'lit/directives/class-map.js';
import { ifDefined } from 'lit/directives/if-defined.js';
-import { animateTo, stopAnimations } from '../../internal/animate';
-import { emit, waitForEvent } from '../../internal/event';
-import Modal from '../../internal/modal';
-import { lockBodyScrolling, unlockBodyScrolling } from '../../internal/scroll';
-import { HasSlotController } from '../../internal/slot';
-import { watch } from '../../internal/watch';
-import { getAnimation, setDefaultAnimation } from '../../utilities/animation-registry';
-import { LocalizeController } from '../../utilities/localize';
-import '../icon-button/icon-button';
+import '~/components/icon-button/icon-button';
+import { animateTo, stopAnimations } from '~/internal/animate';
+import { emit, waitForEvent } from '~/internal/event';
+import Modal from '~/internal/modal';
+import { lockBodyScrolling, unlockBodyScrolling } from '~/internal/scroll';
+import { HasSlotController } from '~/internal/slot';
+import { watch } from '~/internal/watch';
+import { getAnimation, setDefaultAnimation } from '~/utilities/animation-registry';
+import { LocalizeController } from '~/utilities/localize';
import styles from './dialog.styles';
/**
diff --git a/src/components/divider/divider.styles.ts b/src/components/divider/divider.styles.ts
index f7d102469..1d99a9be3 100644
--- a/src/components/divider/divider.styles.ts
+++ b/src/components/divider/divider.styles.ts
@@ -1,5 +1,5 @@
import { css } from 'lit';
-import componentStyles from '../../styles/component.styles';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/divider/divider.ts b/src/components/divider/divider.ts
index 13288ca0a..b029df1b0 100644
--- a/src/components/divider/divider.ts
+++ b/src/components/divider/divider.ts
@@ -1,6 +1,6 @@
import { LitElement } from 'lit';
import { customElement, property } from 'lit/decorators.js';
-import { watch } from '../../internal/watch';
+import { watch } from '~/internal/watch';
import styles from './divider.styles';
/**
diff --git a/src/components/drawer/drawer.styles.ts b/src/components/drawer/drawer.styles.ts
index 7499ae353..a7e07cf02 100644
--- a/src/components/drawer/drawer.styles.ts
+++ b/src/components/drawer/drawer.styles.ts
@@ -1,5 +1,5 @@
import { css } from 'lit';
-import componentStyles from '../../styles/component.styles';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/drawer/drawer.ts b/src/components/drawer/drawer.ts
index 8405eee2e..0da933168 100644
--- a/src/components/drawer/drawer.ts
+++ b/src/components/drawer/drawer.ts
@@ -2,16 +2,16 @@ import { html, LitElement } from 'lit';
import { customElement, property, query } from 'lit/decorators.js';
import { classMap } from 'lit/directives/class-map.js';
import { ifDefined } from 'lit/directives/if-defined.js';
-import { animateTo, stopAnimations } from '../../internal/animate';
-import { emit, waitForEvent } from '../../internal/event';
-import Modal from '../../internal/modal';
-import { lockBodyScrolling, unlockBodyScrolling } from '../../internal/scroll';
-import { HasSlotController } from '../../internal/slot';
-import { uppercaseFirstLetter } from '../../internal/string';
-import { watch } from '../../internal/watch';
-import { getAnimation, setDefaultAnimation } from '../../utilities/animation-registry';
-import { LocalizeController } from '../../utilities/localize';
-import '../icon-button/icon-button';
+import '~/components/icon-button/icon-button';
+import { animateTo, stopAnimations } from '~/internal/animate';
+import { emit, waitForEvent } from '~/internal/event';
+import Modal from '~/internal/modal';
+import { lockBodyScrolling, unlockBodyScrolling } from '~/internal/scroll';
+import { HasSlotController } from '~/internal/slot';
+import { uppercaseFirstLetter } from '~/internal/string';
+import { watch } from '~/internal/watch';
+import { getAnimation, setDefaultAnimation } from '~/utilities/animation-registry';
+import { LocalizeController } from '~/utilities/localize';
import styles from './drawer.styles';
/**
diff --git a/src/components/dropdown/dropdown.styles.ts b/src/components/dropdown/dropdown.styles.ts
index 902c90fd1..a5578f231 100644
--- a/src/components/dropdown/dropdown.styles.ts
+++ b/src/components/dropdown/dropdown.styles.ts
@@ -1,5 +1,5 @@
import { css } from 'lit';
-import componentStyles from '../../styles/component.styles';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/dropdown/dropdown.ts b/src/components/dropdown/dropdown.ts
index f99ae9c53..ea08fc23c 100644
--- a/src/components/dropdown/dropdown.ts
+++ b/src/components/dropdown/dropdown.ts
@@ -3,14 +3,14 @@ import { createPopper } from '@popperjs/core/dist/esm';
import { html, LitElement } from 'lit';
import { customElement, property, query } from 'lit/decorators.js';
import { classMap } from 'lit/directives/class-map.js';
-import type SlMenuItem from '../../components/menu-item/menu-item';
-import type SlMenu from '../../components/menu/menu';
-import { animateTo, stopAnimations } from '../../internal/animate';
-import { emit, waitForEvent } from '../../internal/event';
-import { scrollIntoView } from '../../internal/scroll';
-import { getTabbableBoundary } from '../../internal/tabbable';
-import { watch } from '../../internal/watch';
-import { getAnimation, setDefaultAnimation } from '../../utilities/animation-registry';
+import type SlMenuItem from '~/components/menu-item/menu-item';
+import type SlMenu from '~/components/menu/menu';
+import { animateTo, stopAnimations } from '~/internal/animate';
+import { emit, waitForEvent } from '~/internal/event';
+import { scrollIntoView } from '~/internal/scroll';
+import { getTabbableBoundary } from '~/internal/tabbable';
+import { watch } from '~/internal/watch';
+import { getAnimation, setDefaultAnimation } from '~/utilities/animation-registry';
import styles from './dropdown.styles';
/**
diff --git a/src/components/format-bytes/format-bytes.ts b/src/components/format-bytes/format-bytes.ts
index 07fd6c391..9bdbb6497 100644
--- a/src/components/format-bytes/format-bytes.ts
+++ b/src/components/format-bytes/format-bytes.ts
@@ -1,6 +1,6 @@
import { LitElement } from 'lit';
import { customElement, property } from 'lit/decorators.js';
-import { LocalizeController } from '../../utilities/localize';
+import { LocalizeController } from '~/utilities/localize';
/**
diff --git a/src/components/format-date/format-date.ts b/src/components/format-date/format-date.ts
index 8e46972ec..ab92c963e 100644
--- a/src/components/format-date/format-date.ts
+++ b/src/components/format-date/format-date.ts
@@ -1,6 +1,6 @@
import { LitElement } from 'lit';
import { customElement, property } from 'lit/decorators.js';
-import { LocalizeController } from '../../utilities/localize';
+import { LocalizeController } from '~/utilities/localize';
/**
* @since 2.0
diff --git a/src/components/format-number/format-number.ts b/src/components/format-number/format-number.ts
index a22876013..db46a3c02 100644
--- a/src/components/format-number/format-number.ts
+++ b/src/components/format-number/format-number.ts
@@ -1,6 +1,6 @@
import { LitElement } from 'lit';
import { customElement, property } from 'lit/decorators.js';
-import { LocalizeController } from '../../utilities/localize';
+import { LocalizeController } from '~/utilities/localize';
/**
* @since 2.0
diff --git a/src/components/icon-button/icon-button.styles.ts b/src/components/icon-button/icon-button.styles.ts
index 9500feb69..4fa968c72 100644
--- a/src/components/icon-button/icon-button.styles.ts
+++ b/src/components/icon-button/icon-button.styles.ts
@@ -1,6 +1,6 @@
import { css } from 'lit';
-import { focusVisibleSelector } from '../../internal/focus-visible';
-import componentStyles from '../../styles/component.styles';
+import { focusVisibleSelector } from '~/internal/focus-visible';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/icon-button/icon-button.ts b/src/components/icon-button/icon-button.ts
index 053982b47..3780b1332 100644
--- a/src/components/icon-button/icon-button.ts
+++ b/src/components/icon-button/icon-button.ts
@@ -2,7 +2,7 @@ import { html, LitElement } from 'lit';
import { customElement, property, query } from 'lit/decorators.js';
import { classMap } from 'lit/directives/class-map.js';
import { ifDefined } from 'lit/directives/if-defined.js';
-import '../icon/icon';
+import '~/components/icon/icon';
import styles from './icon-button.styles';
/**
diff --git a/src/components/icon/icon.styles.ts b/src/components/icon/icon.styles.ts
index eea476906..1740bb460 100644
--- a/src/components/icon/icon.styles.ts
+++ b/src/components/icon/icon.styles.ts
@@ -1,5 +1,5 @@
import { css } from 'lit';
-import componentStyles from '../../styles/component.styles';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/icon/icon.ts b/src/components/icon/icon.ts
index c278b3832..ae9220da7 100644
--- a/src/components/icon/icon.ts
+++ b/src/components/icon/icon.ts
@@ -2,8 +2,8 @@ import { html, LitElement } from 'lit';
import { customElement, property, state } from 'lit/decorators.js';
import { ifDefined } from 'lit/directives/if-defined.js';
import { unsafeSVG } from 'lit/directives/unsafe-svg.js';
-import { emit } from '../../internal/event';
-import { watch } from '../../internal/watch';
+import { emit } from '~/internal/event';
+import { watch } from '~/internal/watch';
import styles from './icon.styles';
import { getIconLibrary, unwatchIcon, watchIcon } from './library';
import { requestIcon } from './request';
diff --git a/src/components/icon/library.default.ts b/src/components/icon/library.default.ts
index 28f3672c5..d59766ec2 100644
--- a/src/components/icon/library.default.ts
+++ b/src/components/icon/library.default.ts
@@ -1,4 +1,4 @@
-import { getBasePath } from '../../utilities/base-path';
+import { getBasePath } from '~/utilities/base-path';
import type { IconLibrary } from './library';
const library: IconLibrary = {
diff --git a/src/components/icon/library.ts b/src/components/icon/library.ts
index 42aa84a3c..a0133d88d 100644
--- a/src/components/icon/library.ts
+++ b/src/components/icon/library.ts
@@ -1,4 +1,4 @@
-import type SlIcon from '../../components/icon/icon';
+import type SlIcon from '~/components/icon/icon';
import defaultLibrary from './library.default';
import systemLibrary from './library.system';
diff --git a/src/components/icon/request.ts b/src/components/icon/request.ts
index 61571eb1e..a78629fd3 100644
--- a/src/components/icon/request.ts
+++ b/src/components/icon/request.ts
@@ -1,4 +1,4 @@
-import { requestInclude } from '../../components/include/request';
+import { requestInclude } from '~/components/include/request';
type IconFile =
| {
diff --git a/src/components/image-comparer/image-comparer.styles.ts b/src/components/image-comparer/image-comparer.styles.ts
index b3fd29f81..132fb0ffd 100644
--- a/src/components/image-comparer/image-comparer.styles.ts
+++ b/src/components/image-comparer/image-comparer.styles.ts
@@ -1,6 +1,6 @@
import { css } from 'lit';
-import { focusVisibleSelector } from '../../internal/focus-visible';
-import componentStyles from '../../styles/component.styles';
+import { focusVisibleSelector } from '~/internal/focus-visible';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/image-comparer/image-comparer.ts b/src/components/image-comparer/image-comparer.ts
index e2a39c625..dc56178d0 100644
--- a/src/components/image-comparer/image-comparer.ts
+++ b/src/components/image-comparer/image-comparer.ts
@@ -1,12 +1,12 @@
import { html, LitElement } from 'lit';
import { customElement, property, query } from 'lit/decorators.js';
import { styleMap } from 'lit/directives/style-map.js';
-import { autoIncrement } from '../../internal/auto-increment';
-import { drag } from '../../internal/drag';
-import { emit } from '../../internal/event';
-import { clamp } from '../../internal/math';
-import { watch } from '../../internal/watch';
-import '../icon/icon';
+import '~/components/icon/icon';
+import { autoIncrement } from '~/internal/auto-increment';
+import { drag } from '~/internal/drag';
+import { emit } from '~/internal/event';
+import { clamp } from '~/internal/math';
+import { watch } from '~/internal/watch';
import styles from './image-comparer.styles';
/**
diff --git a/src/components/include/include.styles.ts b/src/components/include/include.styles.ts
index a4aafbb97..fd001391b 100644
--- a/src/components/include/include.styles.ts
+++ b/src/components/include/include.styles.ts
@@ -1,5 +1,5 @@
import { css } from 'lit';
-import componentStyles from '../../styles/component.styles';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/include/include.ts b/src/components/include/include.ts
index 345275888..d49e26e7e 100644
--- a/src/components/include/include.ts
+++ b/src/components/include/include.ts
@@ -1,7 +1,7 @@
import { html, LitElement } from 'lit';
import { customElement, property } from 'lit/decorators.js';
-import { emit } from '../../internal/event';
-import { watch } from '../../internal/watch';
+import { emit } from '~/internal/event';
+import { watch } from '~/internal/watch';
import styles from './include.styles';
import { requestInclude } from './request';
diff --git a/src/components/input/input.styles.ts b/src/components/input/input.styles.ts
index 4729f33bd..a8ede2833 100644
--- a/src/components/input/input.styles.ts
+++ b/src/components/input/input.styles.ts
@@ -1,6 +1,6 @@
import { css } from 'lit';
-import componentStyles from '../../styles/component.styles';
-import formControlStyles from '../../styles/form-control.styles';
+import componentStyles from '~/styles/component.styles';
+import formControlStyles from '~/styles/form-control.styles';
export default css`
${componentStyles}
diff --git a/src/components/input/input.ts b/src/components/input/input.ts
index d897595a4..ebecf3a99 100644
--- a/src/components/input/input.ts
+++ b/src/components/input/input.ts
@@ -3,12 +3,12 @@ import { customElement, property, query, state } from 'lit/decorators.js';
import { classMap } from 'lit/directives/class-map.js';
import { ifDefined } from 'lit/directives/if-defined.js';
import { live } from 'lit/directives/live.js';
-import { autoIncrement } from '../../internal/auto-increment';
-import { emit } from '../../internal/event';
-import { FormSubmitController, getLabelledBy, renderFormControl } from '../../internal/form-control';
-import { HasSlotController } from '../../internal/slot';
-import { watch } from '../../internal/watch';
-import '../icon/icon';
+import '~/components/icon/icon';
+import { autoIncrement } from '~/internal/auto-increment';
+import { emit } from '~/internal/event';
+import { FormSubmitController, getLabelledBy, renderFormControl } from '~/internal/form-control';
+import { HasSlotController } from '~/internal/slot';
+import { watch } from '~/internal/watch';
import styles from './input.styles';
/**
diff --git a/src/components/menu-item/menu-item.styles.ts b/src/components/menu-item/menu-item.styles.ts
index cbeb80224..5068c64c2 100644
--- a/src/components/menu-item/menu-item.styles.ts
+++ b/src/components/menu-item/menu-item.styles.ts
@@ -1,6 +1,6 @@
import { css } from 'lit';
-import { focusVisibleSelector } from '../../internal/focus-visible';
-import componentStyles from '../../styles/component.styles';
+import { focusVisibleSelector } from '~/internal/focus-visible';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/menu-item/menu-item.ts b/src/components/menu-item/menu-item.ts
index 7c14787a7..fec4a5814 100644
--- a/src/components/menu-item/menu-item.ts
+++ b/src/components/menu-item/menu-item.ts
@@ -1,8 +1,8 @@
import { html, LitElement } from 'lit';
import { customElement, property, query } from 'lit/decorators.js';
import { classMap } from 'lit/directives/class-map.js';
-import { watch } from '../../internal/watch';
-import '../icon/icon';
+import '~/components/icon/icon';
+import { watch } from '~/internal/watch';
import styles from './menu-item.styles';
/**
diff --git a/src/components/menu-label/menu-label.styles.ts b/src/components/menu-label/menu-label.styles.ts
index 69ec644da..02c4458a8 100644
--- a/src/components/menu-label/menu-label.styles.ts
+++ b/src/components/menu-label/menu-label.styles.ts
@@ -1,5 +1,5 @@
import { css } from 'lit';
-import componentStyles from '../../styles/component.styles';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/menu/menu.styles.ts b/src/components/menu/menu.styles.ts
index defa82934..857f02b2c 100644
--- a/src/components/menu/menu.styles.ts
+++ b/src/components/menu/menu.styles.ts
@@ -1,5 +1,5 @@
import { css } from 'lit';
-import componentStyles from '../../styles/component.styles';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/menu/menu.ts b/src/components/menu/menu.ts
index 3ccf8cdc4..fac8479b7 100644
--- a/src/components/menu/menu.ts
+++ b/src/components/menu/menu.ts
@@ -1,11 +1,10 @@
import { html, LitElement } from 'lit';
import { customElement, query } from 'lit/decorators.js';
-import type SlMenuItem from '../../components/menu-item/menu-item';
-import { emit } from '../../internal/event';
-import { hasFocusVisible } from '../../internal/focus-visible';
-import { getTextContent } from '../../internal/slot';
+import type SlMenuItem from '~/components/menu-item/menu-item';
+import { emit } from '~/internal/event';
+import { hasFocusVisible } from '~/internal/focus-visible';
+import { getTextContent } from '~/internal/slot';
import styles from './menu.styles';
-
export interface MenuSelectEventDetail {
item: SlMenuItem;
}
diff --git a/src/components/mutation-observer/mutation-observer.styles.ts b/src/components/mutation-observer/mutation-observer.styles.ts
index cb10fcc60..707b58af8 100644
--- a/src/components/mutation-observer/mutation-observer.styles.ts
+++ b/src/components/mutation-observer/mutation-observer.styles.ts
@@ -1,5 +1,5 @@
import { css } from 'lit';
-import componentStyles from '../../styles/component.styles';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/mutation-observer/mutation-observer.ts b/src/components/mutation-observer/mutation-observer.ts
index c6604b1d2..71d57687a 100644
--- a/src/components/mutation-observer/mutation-observer.ts
+++ b/src/components/mutation-observer/mutation-observer.ts
@@ -1,7 +1,7 @@
import { html, LitElement } from 'lit';
import { customElement, property } from 'lit/decorators.js';
-import { emit } from '../../internal/event';
-import { watch } from '../../internal/watch';
+import { emit } from '~/internal/event';
+import { watch } from '~/internal/watch';
import styles from './mutation-observer.styles';
/**
diff --git a/src/components/progress-bar/progress-bar.styles.ts b/src/components/progress-bar/progress-bar.styles.ts
index f0957d1fb..72bf9f636 100644
--- a/src/components/progress-bar/progress-bar.styles.ts
+++ b/src/components/progress-bar/progress-bar.styles.ts
@@ -1,5 +1,5 @@
import { css } from 'lit';
-import componentStyles from '../../styles/component.styles';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/progress-bar/progress-bar.ts b/src/components/progress-bar/progress-bar.ts
index 5b856b3f1..76db4fe9f 100644
--- a/src/components/progress-bar/progress-bar.ts
+++ b/src/components/progress-bar/progress-bar.ts
@@ -3,7 +3,7 @@ import { customElement, property } from 'lit/decorators.js';
import { classMap } from 'lit/directives/class-map.js';
import { ifDefined } from 'lit/directives/if-defined.js';
import { styleMap } from 'lit/directives/style-map.js';
-import { LocalizeController } from '../../utilities/localize';
+import { LocalizeController } from '~/utilities/localize';
import styles from './progress-bar.styles';
/**
diff --git a/src/components/progress-ring/progress-ring.styles.ts b/src/components/progress-ring/progress-ring.styles.ts
index b8c83ca6e..07cc8c0cb 100644
--- a/src/components/progress-ring/progress-ring.styles.ts
+++ b/src/components/progress-ring/progress-ring.styles.ts
@@ -1,5 +1,5 @@
import { css } from 'lit';
-import componentStyles from '../../styles/component.styles';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/progress-ring/progress-ring.ts b/src/components/progress-ring/progress-ring.ts
index 76935b957..4d8ba1c49 100644
--- a/src/components/progress-ring/progress-ring.ts
+++ b/src/components/progress-ring/progress-ring.ts
@@ -1,6 +1,6 @@
import { html, LitElement } from 'lit';
import { customElement, property, query, state } from 'lit/decorators.js';
-import { LocalizeController } from '../../utilities/localize';
+import { LocalizeController } from '~/utilities/localize';
import styles from './progress-ring.styles';
/**
diff --git a/src/components/qr-code/qr-code.styles.ts b/src/components/qr-code/qr-code.styles.ts
index 99a10c060..ab8d589d9 100644
--- a/src/components/qr-code/qr-code.styles.ts
+++ b/src/components/qr-code/qr-code.styles.ts
@@ -1,5 +1,5 @@
import { css } from 'lit';
-import componentStyles from '../../styles/component.styles';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/qr-code/qr-code.ts b/src/components/qr-code/qr-code.ts
index 268cf420c..1dbbb1e1c 100644
--- a/src/components/qr-code/qr-code.ts
+++ b/src/components/qr-code/qr-code.ts
@@ -2,7 +2,7 @@ import { html, LitElement } from 'lit';
import { customElement, property, query } from 'lit/decorators.js';
import { styleMap } from 'lit/directives/style-map.js';
import QrCreator from 'qr-creator';
-import { watch } from '../../internal/watch';
+import { watch } from '~/internal/watch';
import styles from './qr-code.styles';
/**
diff --git a/src/components/radio-group/radio-group.styles.ts b/src/components/radio-group/radio-group.styles.ts
index ffad5702c..d6d7b5799 100644
--- a/src/components/radio-group/radio-group.styles.ts
+++ b/src/components/radio-group/radio-group.styles.ts
@@ -1,5 +1,5 @@
import { css } from 'lit';
-import componentStyles from '../../styles/component.styles';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/radio-group/radio-group.ts b/src/components/radio-group/radio-group.ts
index e38a41162..60e379e97 100644
--- a/src/components/radio-group/radio-group.ts
+++ b/src/components/radio-group/radio-group.ts
@@ -1,7 +1,7 @@
import { html, LitElement } from 'lit';
import { customElement, property, query } from 'lit/decorators.js';
import { classMap } from 'lit/directives/class-map.js';
-import type SlRadio from '../radio/radio';
+import type SlRadio from '~/components/radio/radio';
import styles from './radio-group.styles';
/**
diff --git a/src/components/radio/radio.styles.ts b/src/components/radio/radio.styles.ts
index cc5bf5f13..190313e22 100644
--- a/src/components/radio/radio.styles.ts
+++ b/src/components/radio/radio.styles.ts
@@ -1,6 +1,6 @@
import { css } from 'lit';
-import { focusVisibleSelector } from '../../internal/focus-visible';
-import componentStyles from '../../styles/component.styles';
+import { focusVisibleSelector } from '~/internal/focus-visible';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/radio/radio.test.ts b/src/components/radio/radio.test.ts
index ee109d211..0da3d096a 100644
--- a/src/components/radio/radio.test.ts
+++ b/src/components/radio/radio.test.ts
@@ -1,6 +1,6 @@
import { expect, fixture, html, oneEvent } from '@open-wc/testing';
import { sendKeys } from '@web/test-runner-commands';
-import type SlRadioGroup from '../../components/radio-group/radio-group';
+import type SlRadioGroup from '~/components/radio-group/radio-group';
import type SlRadio from './radio';
describe('', () => {
diff --git a/src/components/radio/radio.ts b/src/components/radio/radio.ts
index 0066be97b..2a51da4e9 100644
--- a/src/components/radio/radio.ts
+++ b/src/components/radio/radio.ts
@@ -3,9 +3,9 @@ import { customElement, property, query, state } from 'lit/decorators.js';
import { classMap } from 'lit/directives/class-map.js';
import { ifDefined } from 'lit/directives/if-defined.js';
import { live } from 'lit/directives/live.js';
-import { emit } from '../../internal/event';
-import { FormSubmitController } from '../../internal/form-control';
-import { watch } from '../../internal/watch';
+import { emit } from '~/internal/event';
+import { FormSubmitController } from '~/internal/form-control';
+import { watch } from '~/internal/watch';
import styles from './radio.styles';
/**
diff --git a/src/components/range/range.styles.ts b/src/components/range/range.styles.ts
index 218440ca3..33a60daa3 100644
--- a/src/components/range/range.styles.ts
+++ b/src/components/range/range.styles.ts
@@ -1,7 +1,7 @@
import { css } from 'lit';
-import { focusVisibleSelector } from '../../internal/focus-visible';
-import componentStyles from '../../styles/component.styles';
-import formControlStyles from '../../styles/form-control.styles';
+import { focusVisibleSelector } from '~/internal/focus-visible';
+import componentStyles from '~/styles/component.styles';
+import formControlStyles from '~/styles/form-control.styles';
export default css`
${componentStyles}
diff --git a/src/components/range/range.ts b/src/components/range/range.ts
index 6d740ab17..dddeb50dd 100644
--- a/src/components/range/range.ts
+++ b/src/components/range/range.ts
@@ -3,11 +3,11 @@ import { customElement, property, query, state } from 'lit/decorators.js';
import { classMap } from 'lit/directives/class-map.js';
import { ifDefined } from 'lit/directives/if-defined.js';
import { live } from 'lit/directives/live.js';
-import { autoIncrement } from '../../internal/auto-increment';
-import { emit } from '../../internal/event';
-import { FormSubmitController, getLabelledBy, renderFormControl } from '../../internal/form-control';
-import { HasSlotController } from '../../internal/slot';
-import { watch } from '../../internal/watch';
+import { autoIncrement } from '~/internal/auto-increment';
+import { emit } from '~/internal/event';
+import { FormSubmitController, getLabelledBy, renderFormControl } from '~/internal/form-control';
+import { HasSlotController } from '~/internal/slot';
+import { watch } from '~/internal/watch';
import styles from './range.styles';
/**
diff --git a/src/components/rating/rating.styles.ts b/src/components/rating/rating.styles.ts
index 7f6e22eb5..fc067a3f3 100644
--- a/src/components/rating/rating.styles.ts
+++ b/src/components/rating/rating.styles.ts
@@ -1,6 +1,6 @@
import { css } from 'lit';
-import { focusVisibleSelector } from '../../internal/focus-visible';
-import componentStyles from '../../styles/component.styles';
+import { focusVisibleSelector } from '~/internal/focus-visible';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/rating/rating.ts b/src/components/rating/rating.ts
index 400e0e5e5..390aab53d 100644
--- a/src/components/rating/rating.ts
+++ b/src/components/rating/rating.ts
@@ -3,10 +3,10 @@ import { customElement, property, query, state } from 'lit/decorators.js';
import { classMap } from 'lit/directives/class-map.js';
import { styleMap } from 'lit/directives/style-map.js';
import { unsafeHTML } from 'lit/directives/unsafe-html.js';
-import { emit } from '../../internal/event';
-import { clamp } from '../../internal/math';
-import { watch } from '../../internal/watch';
-import '../icon/icon';
+import '~/components/icon/icon';
+import { emit } from '~/internal/event';
+import { clamp } from '~/internal/math';
+import { watch } from '~/internal/watch';
import styles from './rating.styles';
/**
diff --git a/src/components/relative-time/relative-time.ts b/src/components/relative-time/relative-time.ts
index f07706056..40cb2551c 100644
--- a/src/components/relative-time/relative-time.ts
+++ b/src/components/relative-time/relative-time.ts
@@ -1,6 +1,6 @@
import { html, LitElement } from 'lit';
import { customElement, property, state } from 'lit/decorators.js';
-import { LocalizeController } from '../../utilities/localize';
+import { LocalizeController } from '~/utilities/localize';
interface UnitConfig {
max: number;
diff --git a/src/components/resize-observer/resize-observer.styles.ts b/src/components/resize-observer/resize-observer.styles.ts
index cb10fcc60..707b58af8 100644
--- a/src/components/resize-observer/resize-observer.styles.ts
+++ b/src/components/resize-observer/resize-observer.styles.ts
@@ -1,5 +1,5 @@
import { css } from 'lit';
-import componentStyles from '../../styles/component.styles';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/resize-observer/resize-observer.ts b/src/components/resize-observer/resize-observer.ts
index 5f6429481..19e437026 100644
--- a/src/components/resize-observer/resize-observer.ts
+++ b/src/components/resize-observer/resize-observer.ts
@@ -1,7 +1,7 @@
import { html, LitElement } from 'lit';
import { customElement, property } from 'lit/decorators.js';
-import { emit } from '../../internal/event';
-import { watch } from '../../internal/watch';
+import { emit } from '~/internal/event';
+import { watch } from '~/internal/watch';
import styles from './resize-observer.styles';
/**
diff --git a/src/components/responsive-media/responsive-media.styles.ts b/src/components/responsive-media/responsive-media.styles.ts
index f9e7ed9b5..165edfbfb 100644
--- a/src/components/responsive-media/responsive-media.styles.ts
+++ b/src/components/responsive-media/responsive-media.styles.ts
@@ -1,5 +1,5 @@
import { css } from 'lit';
-import componentStyles from '../../styles/component.styles';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/select/select.styles.ts b/src/components/select/select.styles.ts
index cffa0932c..6cdd0154d 100644
--- a/src/components/select/select.styles.ts
+++ b/src/components/select/select.styles.ts
@@ -1,6 +1,6 @@
import { css } from 'lit';
-import componentStyles from '../../styles/component.styles';
-import formControlStyles from '../../styles/form-control.styles';
+import componentStyles from '~/styles/component.styles';
+import formControlStyles from '~/styles/form-control.styles';
export default css`
${componentStyles}
diff --git a/src/components/select/select.ts b/src/components/select/select.ts
index ae6f76178..a1857c262 100644
--- a/src/components/select/select.ts
+++ b/src/components/select/select.ts
@@ -3,20 +3,20 @@ import { html, LitElement } from 'lit';
import { customElement, property, query, state } from 'lit/decorators.js';
import { classMap } from 'lit/directives/class-map.js';
import { ifDefined } from 'lit/directives/if-defined.js';
-import { autoIncrement } from '../../internal/auto-increment';
-import { emit } from '../../internal/event';
-import { FormSubmitController, getLabelledBy, renderFormControl } from '../../internal/form-control';
-import { getTextContent, HasSlotController } from '../../internal/slot';
-import { watch } from '../../internal/watch';
-import '../dropdown/dropdown';
-import type SlDropdown from '../dropdown/dropdown';
-import '../icon-button/icon-button';
-import type SlIconButton from '../icon-button/icon-button';
-import '../icon/icon';
-import type SlMenuItem from '../menu-item/menu-item';
-import type SlMenu from '../menu/menu';
-import type { MenuSelectEventDetail } from '../menu/menu';
-import '../tag/tag';
+import '~/components/dropdown/dropdown';
+import type SlDropdown from '~/components/dropdown/dropdown';
+import '~/components/icon-button/icon-button';
+import type SlIconButton from '~/components/icon-button/icon-button';
+import '~/components/icon/icon';
+import type SlMenuItem from '~/components/menu-item/menu-item';
+import type SlMenu from '~/components/menu/menu';
+import type { MenuSelectEventDetail } from '~/components/menu/menu';
+import '~/components/tag/tag';
+import { autoIncrement } from '~/internal/auto-increment';
+import { emit } from '~/internal/event';
+import { FormSubmitController, getLabelledBy, renderFormControl } from '~/internal/form-control';
+import { getTextContent, HasSlotController } from '~/internal/slot';
+import { watch } from '~/internal/watch';
import styles from './select.styles';
/**
diff --git a/src/components/skeleton/skeleton.styles.ts b/src/components/skeleton/skeleton.styles.ts
index a52cf7ad2..c6d25eb30 100644
--- a/src/components/skeleton/skeleton.styles.ts
+++ b/src/components/skeleton/skeleton.styles.ts
@@ -1,5 +1,5 @@
import { css } from 'lit';
-import componentStyles from '../../styles/component.styles';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/spinner/spinner.styles.ts b/src/components/spinner/spinner.styles.ts
index 21e474af2..57a51371a 100644
--- a/src/components/spinner/spinner.styles.ts
+++ b/src/components/spinner/spinner.styles.ts
@@ -1,5 +1,5 @@
import { css } from 'lit';
-import componentStyles from '../../styles/component.styles';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/split-panel/split-panel.styles.ts b/src/components/split-panel/split-panel.styles.ts
index 177f41fbb..15a1c78c6 100644
--- a/src/components/split-panel/split-panel.styles.ts
+++ b/src/components/split-panel/split-panel.styles.ts
@@ -1,6 +1,6 @@
import { css } from 'lit';
-import { focusVisibleSelector } from '../../internal/focus-visible';
-import componentStyles from '../../styles/component.styles';
+import { focusVisibleSelector } from '~/internal/focus-visible';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/split-panel/split-panel.ts b/src/components/split-panel/split-panel.ts
index e157240d6..2cf8e78c1 100644
--- a/src/components/split-panel/split-panel.ts
+++ b/src/components/split-panel/split-panel.ts
@@ -1,11 +1,11 @@
import { html, LitElement } from 'lit';
import { customElement, property, query } from 'lit/decorators.js';
import { ifDefined } from 'lit/directives/if-defined.js';
-import { drag } from '../../internal/drag';
-import { emit } from '../../internal/event';
-import { clamp } from '../../internal/math';
-import { watch } from '../../internal/watch';
-import { LocalizeController } from '../../utilities/localize';
+import { drag } from '~/internal/drag';
+import { emit } from '~/internal/event';
+import { clamp } from '~/internal/math';
+import { watch } from '~/internal/watch';
+import { LocalizeController } from '~/utilities/localize';
import styles from './split-panel.styles';
/**
diff --git a/src/components/switch/switch.styles.ts b/src/components/switch/switch.styles.ts
index e7a8d78f8..9daaaa065 100644
--- a/src/components/switch/switch.styles.ts
+++ b/src/components/switch/switch.styles.ts
@@ -1,6 +1,6 @@
import { css } from 'lit';
-import { focusVisibleSelector } from '../../internal/focus-visible';
-import componentStyles from '../../styles/component.styles';
+import { focusVisibleSelector } from '~/internal/focus-visible';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/switch/switch.ts b/src/components/switch/switch.ts
index 099469a01..97179d801 100644
--- a/src/components/switch/switch.ts
+++ b/src/components/switch/switch.ts
@@ -3,10 +3,10 @@ import { customElement, property, query, state } from 'lit/decorators.js';
import { classMap } from 'lit/directives/class-map.js';
import { ifDefined } from 'lit/directives/if-defined.js';
import { live } from 'lit/directives/live.js';
-import { autoIncrement } from '../../internal/auto-increment';
-import { emit } from '../../internal/event';
-import { FormSubmitController } from '../../internal/form-control';
-import { watch } from '../../internal/watch';
+import { autoIncrement } from '~/internal/auto-increment';
+import { emit } from '~/internal/event';
+import { FormSubmitController } from '~/internal/form-control';
+import { watch } from '~/internal/watch';
import styles from './switch.styles';
/**
diff --git a/src/components/tab-group/tab-group.styles.ts b/src/components/tab-group/tab-group.styles.ts
index e79b23229..20fd0d493 100644
--- a/src/components/tab-group/tab-group.styles.ts
+++ b/src/components/tab-group/tab-group.styles.ts
@@ -1,5 +1,5 @@
import { css } from 'lit';
-import componentStyles from '../../styles/component.styles';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/tab-group/tab-group.ts b/src/components/tab-group/tab-group.ts
index 490470b96..7d2f52332 100644
--- a/src/components/tab-group/tab-group.ts
+++ b/src/components/tab-group/tab-group.ts
@@ -1,13 +1,13 @@
import { html, LitElement } from 'lit';
import { customElement, property, query, state } from 'lit/decorators.js';
import { classMap } from 'lit/directives/class-map.js';
-import { emit } from '../../internal/event';
-import { scrollIntoView } from '../../internal/scroll';
-import { watch } from '../../internal/watch';
-import { LocalizeController } from '../../utilities/localize';
-import '../icon-button/icon-button';
-import type SlTabPanel from '../tab-panel/tab-panel';
-import type SlTab from '../tab/tab';
+import '~/components/icon-button/icon-button';
+import type SlTabPanel from '~/components/tab-panel/tab-panel';
+import type SlTab from '~/components/tab/tab';
+import { emit } from '~/internal/event';
+import { scrollIntoView } from '~/internal/scroll';
+import { watch } from '~/internal/watch';
+import { LocalizeController } from '~/utilities/localize';
import styles from './tab-group.styles';
/**
diff --git a/src/components/tab-panel/tab-panel.styles.ts b/src/components/tab-panel/tab-panel.styles.ts
index 685a2d91b..b32d7869a 100644
--- a/src/components/tab-panel/tab-panel.styles.ts
+++ b/src/components/tab-panel/tab-panel.styles.ts
@@ -1,5 +1,5 @@
import { css } from 'lit';
-import componentStyles from '../../styles/component.styles';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/tab-panel/tab-panel.ts b/src/components/tab-panel/tab-panel.ts
index 09ba1022b..176559dc1 100644
--- a/src/components/tab-panel/tab-panel.ts
+++ b/src/components/tab-panel/tab-panel.ts
@@ -1,6 +1,6 @@
import { html, LitElement } from 'lit';
import { customElement, property } from 'lit/decorators.js';
-import { autoIncrement } from '../../internal/auto-increment';
+import { autoIncrement } from '~/internal/auto-increment';
import styles from './tab-panel.styles';
/**
diff --git a/src/components/tab/tab.styles.ts b/src/components/tab/tab.styles.ts
index 46fec21e6..8f07e5b72 100644
--- a/src/components/tab/tab.styles.ts
+++ b/src/components/tab/tab.styles.ts
@@ -1,6 +1,6 @@
import { css } from 'lit';
-import { focusVisibleSelector } from '../../internal/focus-visible';
-import componentStyles from '../../styles/component.styles';
+import { focusVisibleSelector } from '~/internal/focus-visible';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/tab/tab.ts b/src/components/tab/tab.ts
index a16534849..a3fc225eb 100644
--- a/src/components/tab/tab.ts
+++ b/src/components/tab/tab.ts
@@ -1,10 +1,10 @@
import { html, LitElement } from 'lit';
import { customElement, property, query } from 'lit/decorators.js';
import { classMap } from 'lit/directives/class-map.js';
-import { autoIncrement } from '../../internal/auto-increment';
-import { emit } from '../../internal/event';
-import { LocalizeController } from '../../utilities/localize';
-import '../icon-button/icon-button';
+import '~/components/icon-button/icon-button';
+import { autoIncrement } from '~/internal/auto-increment';
+import { emit } from '~/internal/event';
+import { LocalizeController } from '~/utilities/localize';
import styles from './tab.styles';
/**
diff --git a/src/components/tag/tag.styles.ts b/src/components/tag/tag.styles.ts
index d3472032f..5e4b279f7 100644
--- a/src/components/tag/tag.styles.ts
+++ b/src/components/tag/tag.styles.ts
@@ -1,5 +1,5 @@
import { css } from 'lit';
-import componentStyles from '../../styles/component.styles';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/tag/tag.ts b/src/components/tag/tag.ts
index 86b01d5a1..8f31ae266 100644
--- a/src/components/tag/tag.ts
+++ b/src/components/tag/tag.ts
@@ -1,8 +1,8 @@
import { html, LitElement } from 'lit';
import { customElement, property } from 'lit/decorators.js';
import { classMap } from 'lit/directives/class-map.js';
-import { emit } from '../../internal/event';
-import '../icon-button/icon-button';
+import '~/components/icon-button/icon-button';
+import { emit } from '~/internal/event';
import styles from './tag.styles';
/**
diff --git a/src/components/textarea/textarea.styles.ts b/src/components/textarea/textarea.styles.ts
index b25c7ad9d..2b2d7bd8d 100644
--- a/src/components/textarea/textarea.styles.ts
+++ b/src/components/textarea/textarea.styles.ts
@@ -1,6 +1,6 @@
import { css } from 'lit';
-import componentStyles from '../../styles/component.styles';
-import formControlStyles from '../../styles/form-control.styles';
+import componentStyles from '~/styles/component.styles';
+import formControlStyles from '~/styles/form-control.styles';
export default css`
${componentStyles}
diff --git a/src/components/textarea/textarea.ts b/src/components/textarea/textarea.ts
index a6cc306fb..e7a5515db 100644
--- a/src/components/textarea/textarea.ts
+++ b/src/components/textarea/textarea.ts
@@ -3,11 +3,11 @@ import { customElement, property, query, state } from 'lit/decorators.js';
import { classMap } from 'lit/directives/class-map.js';
import { ifDefined } from 'lit/directives/if-defined.js';
import { live } from 'lit/directives/live.js';
-import { autoIncrement } from '../../internal/auto-increment';
-import { emit } from '../../internal/event';
-import { FormSubmitController, getLabelledBy, renderFormControl } from '../../internal/form-control';
-import { HasSlotController } from '../../internal/slot';
-import { watch } from '../../internal/watch';
+import { autoIncrement } from '~/internal/auto-increment';
+import { emit } from '~/internal/event';
+import { FormSubmitController, getLabelledBy, renderFormControl } from '~/internal/form-control';
+import { HasSlotController } from '~/internal/slot';
+import { watch } from '~/internal/watch';
import styles from './textarea.styles';
/**
diff --git a/src/components/tooltip/tooltip.styles.ts b/src/components/tooltip/tooltip.styles.ts
index a01d5bd7e..cea114330 100644
--- a/src/components/tooltip/tooltip.styles.ts
+++ b/src/components/tooltip/tooltip.styles.ts
@@ -1,5 +1,5 @@
import { css } from 'lit';
-import componentStyles from '../../styles/component.styles';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/components/tooltip/tooltip.ts b/src/components/tooltip/tooltip.ts
index 31d25e11f..4ec0dbcf0 100644
--- a/src/components/tooltip/tooltip.ts
+++ b/src/components/tooltip/tooltip.ts
@@ -3,10 +3,10 @@ import { createPopper } from '@popperjs/core/dist/esm';
import { html, LitElement } from 'lit';
import { customElement, property, query } from 'lit/decorators.js';
import { classMap } from 'lit/directives/class-map.js';
-import { animateTo, parseDuration, stopAnimations } from '../../internal/animate';
-import { emit, waitForEvent } from '../../internal/event';
-import { watch } from '../../internal/watch';
-import { getAnimation, setDefaultAnimation } from '../../utilities/animation-registry';
+import { animateTo, parseDuration, stopAnimations } from '~/internal/animate';
+import { emit, waitForEvent } from '~/internal/event';
+import { watch } from '~/internal/watch';
+import { getAnimation, setDefaultAnimation } from '~/utilities/animation-registry';
import styles from './tooltip.styles';
/**
diff --git a/src/components/visually-hidden/visually-hidden.styles.ts b/src/components/visually-hidden/visually-hidden.styles.ts
index fda6bce73..af0a12664 100644
--- a/src/components/visually-hidden/visually-hidden.styles.ts
+++ b/src/components/visually-hidden/visually-hidden.styles.ts
@@ -1,5 +1,5 @@
import { css } from 'lit';
-import componentStyles from '../../styles/component.styles';
+import componentStyles from '~/styles/component.styles';
export default css`
${componentStyles}
diff --git a/src/internal/form-control.ts b/src/internal/form-control.ts
index a4838e188..0364aba92 100644
--- a/src/internal/form-control.ts
+++ b/src/internal/form-control.ts
@@ -2,7 +2,7 @@ import type { ReactiveController, ReactiveControllerHost, TemplateResult } from
import { html } from 'lit';
import { classMap } from 'lit/directives/class-map.js';
import { ifDefined } from 'lit/directives/if-defined.js';
-import type SlButton from '../components/button/button';
+import type SlButton from '~/components/button/button';
import './formdata-event-polyfill';
export interface FormSubmitControllerOptions {
diff --git a/src/translations/da.ts b/src/translations/da.ts
index 612c90f83..6a9f8bf57 100644
--- a/src/translations/da.ts
+++ b/src/translations/da.ts
@@ -1,5 +1,5 @@
-import type { Translation } from '../utilities/localize';
-import { registerTranslation } from '../utilities/localize';
+import type { Translation } from '~/utilities/localize';
+import { registerTranslation } from '~/utilities/localize';
const translation: Translation = {
$code: 'da',
diff --git a/src/translations/de-ch.ts b/src/translations/de-ch.ts
index 4ee1ebdf1..f58087574 100644
--- a/src/translations/de-ch.ts
+++ b/src/translations/de-ch.ts
@@ -1,5 +1,5 @@
-import type { Translation } from '../utilities/localize';
-import { registerTranslation } from '../utilities/localize';
+import type { Translation } from '~/utilities/localize';
+import { registerTranslation } from '~/utilities/localize';
const translation: Translation = {
$code: 'de-CH',
diff --git a/src/translations/de.ts b/src/translations/de.ts
index 77564ec68..b0f54037b 100644
--- a/src/translations/de.ts
+++ b/src/translations/de.ts
@@ -1,5 +1,5 @@
-import type { Translation } from '../utilities/localize';
-import { registerTranslation } from '../utilities/localize';
+import type { Translation } from '~/utilities/localize';
+import { registerTranslation } from '~/utilities/localize';
const translation: Translation = {
$code: 'de',
diff --git a/src/translations/en.ts b/src/translations/en.ts
index 2451ef3a2..bd6d01509 100644
--- a/src/translations/en.ts
+++ b/src/translations/en.ts
@@ -1,5 +1,5 @@
-import type { Translation } from '../utilities/localize';
-import { registerTranslation } from '../utilities/localize';
+import type { Translation } from '~/utilities/localize';
+import { registerTranslation } from '~/utilities/localize';
const translation: Translation = {
$code: 'en',
diff --git a/src/translations/es.ts b/src/translations/es.ts
index fd85c6d49..6426b8232 100644
--- a/src/translations/es.ts
+++ b/src/translations/es.ts
@@ -1,5 +1,5 @@
-import type { Translation } from '../utilities/localize';
-import { registerTranslation } from '../utilities/localize';
+import type { Translation } from '~/utilities/localize';
+import { registerTranslation } from '~/utilities/localize';
const translation: Translation = {
$code: 'es',
diff --git a/src/translations/fr.ts b/src/translations/fr.ts
index 2620bf95e..ab0efd1e8 100644
--- a/src/translations/fr.ts
+++ b/src/translations/fr.ts
@@ -1,5 +1,5 @@
-import type { Translation } from '../utilities/localize';
-import { registerTranslation } from '../utilities/localize';
+import type { Translation } from '~/utilities/localize';
+import { registerTranslation } from '~/utilities/localize';
const translation: Translation = {
$code: 'fr',
diff --git a/src/translations/he.ts b/src/translations/he.ts
index 53da0059e..2fc14da55 100644
--- a/src/translations/he.ts
+++ b/src/translations/he.ts
@@ -1,5 +1,5 @@
-import type { Translation } from '../utilities/localize';
-import { registerTranslation } from '../utilities/localize';
+import type { Translation } from '~/utilities/localize';
+import { registerTranslation } from '~/utilities/localize';
const translation: Translation = {
$code: 'he',
diff --git a/src/translations/ja.ts b/src/translations/ja.ts
index 69b4d06dd..970ea7aac 100644
--- a/src/translations/ja.ts
+++ b/src/translations/ja.ts
@@ -1,5 +1,5 @@
-import type { Translation } from '../utilities/localize';
-import { registerTranslation } from '../utilities/localize';
+import type { Translation } from '~/utilities/localize';
+import { registerTranslation } from '~/utilities/localize';
const translation: Translation = {
$code: 'ja',
diff --git a/src/translations/nl.ts b/src/translations/nl.ts
index a42351dad..c900503f7 100644
--- a/src/translations/nl.ts
+++ b/src/translations/nl.ts
@@ -1,5 +1,5 @@
-import type { Translation } from '../utilities/localize';
-import { registerTranslation } from '../utilities/localize';
+import type { Translation } from '~/utilities/localize';
+import { registerTranslation } from '~/utilities/localize';
const translation: Translation = {
$code: 'nl',
diff --git a/src/translations/pl.ts b/src/translations/pl.ts
index b388e41f2..69ceb3673 100644
--- a/src/translations/pl.ts
+++ b/src/translations/pl.ts
@@ -1,5 +1,5 @@
-import type { Translation } from '../utilities/localize';
-import { registerTranslation } from '../utilities/localize';
+import type { Translation } from '~/utilities/localize';
+import { registerTranslation } from '~/utilities/localize';
const translation: Translation = {
$code: 'pl',
diff --git a/src/translations/pt.ts b/src/translations/pt.ts
index 736ed53ba..a12c9d27a 100644
--- a/src/translations/pt.ts
+++ b/src/translations/pt.ts
@@ -1,5 +1,5 @@
-import type { Translation } from '../utilities/localize';
-import { registerTranslation } from '../utilities/localize';
+import type { Translation } from '~/utilities/localize';
+import { registerTranslation } from '~/utilities/localize';
const translation: Translation = {
$code: 'pt',
diff --git a/src/translations/ru.ts b/src/translations/ru.ts
index 674756e72..bdd3c12b2 100644
--- a/src/translations/ru.ts
+++ b/src/translations/ru.ts
@@ -1,5 +1,5 @@
-import type { Translation } from '../utilities/localize';
-import { registerTranslation } from '../utilities/localize';
+import type { Translation } from '~/utilities/localize';
+import { registerTranslation } from '~/utilities/localize';
const translation: Translation = {
$code: 'ru',
diff --git a/src/utilities/animation.ts b/src/utilities/animation.ts
index 81e27c183..d1742360c 100644
--- a/src/utilities/animation.ts
+++ b/src/utilities/animation.ts
@@ -1 +1 @@
-export { getAnimationNames, getEasingNames } from '../components/animation/animations';
+export { getAnimationNames, getEasingNames } from '~/components/animation/animations';
diff --git a/src/utilities/icon-library.ts b/src/utilities/icon-library.ts
index 1293a5603..448fb70ce 100644
--- a/src/utilities/icon-library.ts
+++ b/src/utilities/icon-library.ts
@@ -1 +1 @@
-export { registerIconLibrary, unregisterIconLibrary } from '../components/icon/library';
+export { registerIconLibrary, unregisterIconLibrary } from '~/components/icon/library';
diff --git a/src/utilities/localize.ts b/src/utilities/localize.ts
index 7127fdd6e..1bf3346bb 100644
--- a/src/utilities/localize.ts
+++ b/src/utilities/localize.ts
@@ -1,5 +1,5 @@
// Register English as the default/fallback language
-import '../translations/en';
+import '~/translations/en';
// Export functions from the localize lib so we have one central place to import them from
export * from '@shoelace-style/localize';
diff --git a/tsconfig.json b/tsconfig.json
index 7cc81f871..ea46df30b 100644
--- a/tsconfig.json
+++ b/tsconfig.json
@@ -26,6 +26,20 @@
"skipLibCheck": true,
"forceConsistentCasingInFileNames": true,
"useUnknownInCatchVariables": true,
+ "paths": {
+ "~/*": [
+ "src/*"
+ ],
+ },
+ "plugins": [
+ {
+ "transform": "typescript-transform-paths"
+ },
+ {
+ "transform": "typescript-transform-paths",
+ "afterDeclarations": true
+ }
+ ],
"baseUrl": "."
},
"include": [