Skip to content

Commit c5b925e

Browse files
committed
Merge remote-tracking branch 'origin/dev'
2 parents ebc0afb + f1271e3 commit c5b925e

File tree

35 files changed

+816
-51
lines changed

35 files changed

+816
-51
lines changed

.eslintignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,4 @@ README.md
1111
.storybook
1212
yarn.lock
1313
tsconfig.json
14+
tsconfig.vite-config.json

.postcssrc.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ module.exports = {
1010
generateScopedName: classConfig,
1111
getJSON: (cssFileName, json) => {
1212
/* Ignore generate common polaris tokens style file */
13-
if (cssFileName.indexOf('@shopify/polaris-tokens') !== -1) {
13+
if (cssFileName.indexOf('@shopify/polaris-tokens') !== -1 || cssFileName.indexOf('CustomProperties') !== -1) {
14+
console.log(cssFileName);
1415
return;
1516
}
1617

.storybook/main.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,13 @@ module.exports = {
3131
output: {
3232
publicPath: '/polaris-vue',
3333
},
34+
css: {
35+
preprocessorOptions: {
36+
scss: {
37+
quietDeps: true, // Silent the deprecation warning
38+
},
39+
},
40+
},
3441
resolve: { ...config.resolve },
3542
plugins: [
3643
svgLoader(),

build/gen-component-declaration.js

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
// Based on Naive UI gen component declaration file.
2+
// https://github.com/TuSimple/naive-ui
3+
4+
import path from 'path';
5+
import fs from 'fs-extra';
6+
import process from 'process';
7+
// import * as globalComponents from '../src/components';
8+
9+
const TYPE_ROOT = process.cwd();
10+
11+
const packageName = '@ownego/polaris-vue';
12+
const fileName = 'volar.d.ts';
13+
14+
const excludeComponents = [];
15+
16+
function exist (path) {
17+
return fs.existsSync(path);
18+
}
19+
20+
function parseComponentsDeclaration (code) {
21+
if (!code) {
22+
return {};
23+
}
24+
return Object.fromEntries(
25+
Array.from(code.matchAll(/(?<!\/\/)\s+\s+['"]?(.+?)['"]?:\s(.+?)\n/g)).map(
26+
(i) => [i[1], i[2]]
27+
)
28+
);
29+
}
30+
31+
async function generateComponentsType () {
32+
const mainImports = await fs.readFile(path.resolve(TYPE_ROOT, 'src/components/index.ts'), 'utf-8');
33+
34+
const pattern = /\'\.\/(.*)\'/g;
35+
36+
const components = {};
37+
38+
// Get all component names
39+
const componentList = mainImports.match(pattern).map((i) => i.replace(/[^\w]/g, ''));
40+
41+
componentList.forEach((key) => {
42+
const entry = `typeof import('${packageName}')['${key}']`
43+
if (!excludeComponents.includes(key)) {
44+
components[key] = entry;
45+
}
46+
});
47+
48+
const originalContent = exist(path.resolve(TYPE_ROOT, fileName))
49+
? await fs.readFile(path.resolve(TYPE_ROOT, fileName), 'utf-8')
50+
: '';
51+
52+
const originImports = parseComponentsDeclaration(originalContent);
53+
const lines = Object.entries({
54+
...originImports,
55+
...components
56+
})
57+
.filter(([name]) => {
58+
return components[name]
59+
})
60+
.map(([name, v]) => {
61+
if (!/^\w+$/.test(name)) {
62+
name = `'${name}'`
63+
}
64+
return `${name}: ${v}`
65+
});
66+
const code = `// Auto generated component declarations
67+
declare module 'vue' {
68+
export interface GlobalComponents {
69+
${lines.join('\n ')}
70+
[key: string]: any
71+
}
72+
}
73+
export {}
74+
`;
75+
if (code !== originalContent) {
76+
await fs.writeFile(path.resolve(TYPE_ROOT, fileName), code, 'utf-8');
77+
}
78+
}
79+
generateComponentsType()

build/namespaced-classname.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@ const NESTED_COMPONENT_PATH_REGEX = /.*\/components\/(.*)\/components/;
1111
const scopedHashes = {};
1212

1313
module.exports = function generateScopedName(name, filename, css) {
14+
if (filename.includes('@shopify/polaris-tokens') || filename.includes('CustomProperties')) {
15+
return name;
16+
}
17+
1418
const parseName = name.split('_');
1519
const originalName = parseName.length > 1 ? parseName[1] : name;
1620

package.json

Lines changed: 9 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@
1515
"files": [
1616
"dist",
1717
"package.json",
18+
"volar.d.ts",
1819
"LICENSE",
1920
"README.md"
2021
],
@@ -23,12 +24,15 @@
2324
"module": "./dist/polaris-vue.es.js",
2425
"scripts": {
2526
"dev": "vite",
26-
"build": "rimraf dist && vue-tsc --noEmit && vite build && rimraf dist/index.html dist/favicon.ico dist/images",
27+
"build": "rimraf dist && vue-tsc --noEmit && vite build && npm run gen-volar-dts && npm run remove-trashes",
2728
"preview": "vite preview --port 5050",
2829
"typecheck": "vue-tsc --noEmit",
2930
"lint": "eslint . --ext .vue,.js,.jsx,.cjs,.mjs,.ts,.tsx,.cts,.mts --fix --ignore-path .gitignore",
3031
"storybook": "start-storybook -p 6006",
31-
"build-storybook": "rimraf ./docs && build-storybook -o docs"
32+
"build-storybook": "rimraf ./docs && build-storybook -o docs",
33+
"gen-volar-dts": "esbuild build/gen-component-declaration.js --bundle --platform=node | node && npm run move-volar-dts",
34+
"move-volar-dts": "mv volar.d.ts dist/volar.d.ts",
35+
"remove-trashes": "rimraf dist/index.html dist/favicon.ico dist/images"
3236
},
3337
"dependencies": {
3438
"@shopify/polaris-icons": "^4.22.0",
@@ -38,7 +42,7 @@
3842
"devDependencies": {
3943
"@babel/core": "^7.17.5",
4044
"@rushstack/eslint-patch": "^1.1.0",
41-
"@shopify/polaris-tokens": "^5.0.1",
45+
"@shopify/polaris-tokens": "^5.1.1",
4246
"@shopify/typescript-configs": "^5.1.0",
4347
"@storybook/addon-a11y": "^6.5.5",
4448
"@storybook/addon-actions": "^6.5.5",
@@ -59,12 +63,14 @@
5963
"eslint": "^8.10.0",
6064
"eslint-plugin-storybook": "^0.5.12",
6165
"eslint-plugin-vue": "^8.5.0",
66+
"fs-extra": "^10.1.0",
6267
"hash-generator": "^0.1.0",
6368
"path": "^0.12.7",
6469
"polaris": "https://github.com/juzser/polaris.git",
6570
"postcss": "^7",
6671
"postcss-modules": "^3",
6772
"prettier": "^2.5.1",
73+
"process": "^0.11.10",
6874
"rimraf": "^3.0.2",
6975
"sass": "^1.49.8",
7076
"ts-dedent": "^2.2.0",

src/classes/BulkActions.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"Group":"Polaris-BulkActions__Group","Group-measuring":"Polaris-BulkActions__Group--measuring","Group-entering":"Polaris-BulkActions__Group--entering","Group-exiting":"Polaris-BulkActions__Group--exiting","Group-entered":"Polaris-BulkActions__Group--entered","Group-exited":"Polaris-BulkActions__Group--exited","Group-smallScreen":"Polaris-BulkActions__Group--smallScreen","Group-largeScreen":"Polaris-BulkActions__Group--largeScreen","ButtonGroupWrapper":"Polaris-BulkActions__ButtonGroupWrapper","BulkActionButton":"Polaris-BulkActions__BulkActionButton","CheckableContainer":"Polaris-BulkActions__CheckableContainer","disabled":"Polaris-BulkActions--disabled","PaginatedSelectAll":"Polaris-BulkActions__PaginatedSelectAll","Slide":"Polaris-BulkActions__Slide","Slide-appear":"Polaris-BulkActions__Slide--appear","Slide-enter":"Polaris-BulkActions__Slide--enter","Slide-exit":"Polaris-BulkActions__Slide--exit","Slide-appearing":"Polaris-BulkActions__Slide--appearing","Slide-entering":"Polaris-BulkActions__Slide--entering"}

src/classes/CheckableButton.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"CheckableButton":"Polaris-CheckableButton","CheckableButton-measuring":"Polaris-CheckableButton__CheckableButton--measuring","CheckableButton-plain":"Polaris-CheckableButton__CheckableButton--plain","CheckableButton-selectMode":"Polaris-CheckableButton__CheckableButton--selectMode","CheckableButton-selected":"Polaris-CheckableButton__CheckableButton--selected","Checkbox":"Polaris-CheckableButton__Checkbox","Label":"Polaris-CheckableButton__Label"}

src/classes/ChoiceList.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"ChoiceList":"Polaris-ChoiceList","titleHidden":"Polaris-ChoiceList--titleHidden","Title":"Polaris-ChoiceList__Title","Choices":"Polaris-ChoiceList__Choices","ChoiceChildren":"Polaris-ChoiceList__ChoiceChildren","ChoiceError":"Polaris-ChoiceList__ChoiceError"}
1+
{"ChoiceList":"Polaris-ChoiceList","ChoiceItem":"Polaris-ChoiceList__ChoiceItem","titleHidden":"Polaris-ChoiceList--titleHidden","Title":"Polaris-ChoiceList__Title","Choices":"Polaris-ChoiceList__Choices","ChoiceChildren":"Polaris-ChoiceList__ChoiceChildren","ChoiceError":"Polaris-ChoiceList__ChoiceError"}

src/classes/TextField.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{"TextField":"Polaris-TextField","multiline":"Polaris-TextField--multiline","Input":"Polaris-TextField__Input","hasValue":"Polaris-TextField--hasValue","focus":"Polaris-TextField--focus","VerticalContent":"Polaris-TextField__VerticalContent","Backdrop":"Polaris-TextField__Backdrop","error":"Polaris-TextField--error","readOnly":"Polaris-TextField--readOnly","disabled":"Polaris-TextField--disabled","Prefix":"Polaris-TextField__Prefix","suggestion":"Polaris-TextField--suggestion","Input-hasClearButton":"Polaris-TextField__Input--hasClearButton","Input-suffixed":"Polaris-TextField__Input--suffixed","Input-alignRight":"Polaris-TextField__Input--alignRight","Input-alignLeft":"Polaris-TextField__Input--alignLeft","Input-alignCenter":"Polaris-TextField__Input--alignCenter","Suffix":"Polaris-TextField__Suffix","CharacterCount":"Polaris-TextField__CharacterCount","AlignFieldBottom":"Polaris-TextField__AlignFieldBottom","ClearButton":"Polaris-TextField__ClearButton","Hidden":"Polaris-TextField__Hidden","Spinner":"Polaris-TextField__Spinner","SpinnerIcon":"Polaris-TextField__SpinnerIcon","Resizer":"Polaris-TextField__Resizer","DummyInput":"Polaris-TextField__DummyInput","Segment":"Polaris-TextField__Segment","monospaced":"Polaris-TextField--monospaced"}
1+
{"TextField":"Polaris-TextField","multiline":"Polaris-TextField--multiline","Input":"Polaris-TextField__Input","hasValue":"Polaris-TextField--hasValue","focus":"Polaris-TextField--focus","VerticalContent":"Polaris-TextField__VerticalContent","Backdrop":"Polaris-TextField__Backdrop","error":"Polaris-TextField--error","readOnly":"Polaris-TextField--readOnly","disabled":"Polaris-TextField--disabled","Prefix":"Polaris-TextField__Prefix","suggestion":"Polaris-TextField--suggestion","Input-hasClearButton":"Polaris-TextField__Input--hasClearButton","Input-suffixed":"Polaris-TextField__Input--suffixed","Input-alignRight":"Polaris-TextField__Input--alignRight","Input-alignLeft":"Polaris-TextField__Input--alignLeft","Input-alignCenter":"Polaris-TextField__Input--alignCenter","Suffix":"Polaris-TextField__Suffix","CharacterCount":"Polaris-TextField__CharacterCount","AlignFieldBottom":"Polaris-TextField__AlignFieldBottom","ClearButton":"Polaris-TextField__ClearButton","Spinner":"Polaris-TextField__Spinner","SpinnerIcon":"Polaris-TextField__SpinnerIcon","Resizer":"Polaris-TextField__Resizer","DummyInput":"Polaris-TextField__DummyInput","Segment":"Polaris-TextField__Segment","monospaced":"Polaris-TextField--monospaced"}

0 commit comments

Comments
 (0)