diff --git a/samples/react-birthdays-per-month/assets/tailwind.css b/samples/react-birthdays-per-month/assets/tailwind.css new file mode 100644 index 000000000..21e6249ed --- /dev/null +++ b/samples/react-birthdays-per-month/assets/tailwind.css @@ -0,0 +1,2 @@ +@import "tailwindcss/components"; +@import "tailwindcss/utilities"; \ No newline at end of file diff --git a/samples/react-birthdays-per-month/gulpfile.js b/samples/react-birthdays-per-month/gulpfile.js index 8e3857742..b39cbc20d 100644 --- a/samples/react-birthdays-per-month/gulpfile.js +++ b/samples/react-birthdays-per-month/gulpfile.js @@ -18,5 +18,29 @@ const { addFastServe } = require("spfx-fast-serve-helpers"); addFastServe(build); /* end of fast-serve */ +// TailwindCSS +const postcss = require("gulp-postcss"); +const atimport = require("postcss-import"); +const tailwind = require("tailwindcss"); + +const tailwindcss = build.subTask( + "tailwindcss", + function (gulp, buildOptions, done) { + gulp + .src("assets/tailwind.css") + .pipe( + postcss([ + atimport(), + tailwind("./tailwind.config.js"), + ]) + ) + .pipe(gulp.dest("assets/dist")); + done(); + } +); +build.rig.addPreBuildTask(tailwindcss); + +// end TailwindCSS + build.initialize(require('gulp')); diff --git a/samples/react-birthdays-per-month/package.json b/samples/react-birthdays-per-month/package.json index 77043ab54..4c5301f4f 100644 --- a/samples/react-birthdays-per-month/package.json +++ b/samples/react-birthdays-per-month/package.json @@ -10,30 +10,35 @@ "serve": "gulp bundle --custom-serve --max_old_space_size=4096 && fast-serve" }, "dependencies": { - "tslib": "2.3.1", - "react": "16.13.1", - "react-dom": "16.13.1", - "office-ui-fabric-react": "7.185.7", "@microsoft/sp-core-library": "1.15.2", + "@microsoft/sp-lodash-subset": "1.15.2", + "@microsoft/sp-office-ui-fabric-core": "1.15.2", "@microsoft/sp-property-pane": "1.15.2", "@microsoft/sp-webpart-base": "1.15.2", - "@microsoft/sp-lodash-subset": "1.15.2", - "@microsoft/sp-office-ui-fabric-core": "1.15.2" + "office-ui-fabric-react": "7.185.7", + "react": "16.13.1", + "react-dom": "16.13.1", + "tslib": "2.3.1" }, "devDependencies": { - "@microsoft/rush-stack-compiler-4.5": "0.2.2", - "@rushstack/eslint-config": "2.5.1", - "@microsoft/eslint-plugin-spfx": "1.15.2", "@microsoft/eslint-config-spfx": "1.15.2", + "@microsoft/eslint-plugin-spfx": "1.15.2", + "@microsoft/rush-stack-compiler-4.5": "0.2.2", "@microsoft/sp-build-web": "1.15.2", - "@types/webpack-env": "~1.15.2", - "ajv": "^6.12.5", - "gulp": "4.0.2", - "typescript": "4.5.5", + "@microsoft/sp-module-interfaces": "1.15.2", + "@rushstack/eslint-config": "2.5.1", "@types/react": "16.9.51", "@types/react-dom": "16.9.8", + "@types/webpack-env": "~1.15.2", + "ajv": "^6.12.5", + "autoprefixer": "^10.4.13", "eslint-plugin-react-hooks": "4.3.0", - "@microsoft/sp-module-interfaces": "1.15.2", - "spfx-fast-serve-helpers": "~1.15.0" + "gulp": "4.0.2", + "gulp-postcss": "^9.0.1", + "postcss": "^8.4.18", + "postcss-import": "^15.0.0", + "spfx-fast-serve-helpers": "~1.15.0", + "tailwindcss": "^3.2.2", + "typescript": "4.5.5" } } \ No newline at end of file diff --git a/samples/react-birthdays-per-month/pnpm-lock.yaml b/samples/react-birthdays-per-month/pnpm-lock.yaml index 5dfc0ac20..7337905a9 100644 --- a/samples/react-birthdays-per-month/pnpm-lock.yaml +++ b/samples/react-birthdays-per-month/pnpm-lock.yaml @@ -16,12 +16,17 @@ specifiers: '@types/react-dom': 16.9.8 '@types/webpack-env': ~1.15.2 ajv: ^6.12.5 + autoprefixer: ^10.4.13 eslint-plugin-react-hooks: 4.3.0 gulp: 4.0.2 + gulp-postcss: ^9.0.1 office-ui-fabric-react: 7.185.7 + postcss: ^8.4.18 + postcss-import: ^15.0.0 react: 16.13.1 react-dom: 16.13.1 spfx-fast-serve-helpers: ~1.15.0 + tailwindcss: ^3.2.2 tslib: 2.3.1 typescript: 4.5.5 @@ -47,9 +52,14 @@ devDependencies: '@types/react-dom': 16.9.8 '@types/webpack-env': 1.15.3 ajv: 6.12.6 + autoprefixer: 10.4.13_postcss@8.4.18 eslint-plugin-react-hooks: 4.3.0 gulp: 4.0.2 + gulp-postcss: 9.0.1_postcss@8.4.18 + postcss: 8.4.18 + postcss-import: 15.0.0_postcss@8.4.18 spfx-fast-serve-helpers: 1.15.4_typescript@4.5.5 + tailwindcss: 3.2.2 typescript: 4.5.5 packages: @@ -3403,11 +3413,24 @@ packages: acorn: 8.8.1 dev: true + /acorn-node/1.8.2: + resolution: {integrity: sha512-8mt+fslDufLYntIoPAaIMUe/lrbrehIiwmR3t2k9LljIzoigEPF27eLk2hy8zSGzmR/ogr7zbRKINMo1u0yh5A==} + dependencies: + acorn: 7.4.1 + acorn-walk: 7.2.0 + xtend: 4.0.2 + dev: true + /acorn-walk/6.2.0: resolution: {integrity: sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA==} engines: {node: '>=0.4.0'} dev: true + /acorn-walk/7.2.0: + resolution: {integrity: sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==} + engines: {node: '>=0.4.0'} + dev: true + /acorn/5.7.4: resolution: {integrity: sha512-1D++VG7BhrtvQpNbBzovKNc1FLGGEE/oGe7b9xJm/RFHMBeUaUGpluV9RLjZa47YFdPcDAenEYuq9pQPcMdLJg==} engines: {node: '>=0.4.0'} @@ -3610,6 +3633,10 @@ packages: resolution: {integrity: sha512-Xg+9RwCg/0p32teKdGMPTPnVXKD0w3DfHnFTficozsAgsvq2XenPJq/MYpzzQ/v8zrOyJn6Ds39VA4JIDwFfqw==} dev: true + /arg/5.0.2: + resolution: {integrity: sha512-PYjyFOLKQ9y57JvQ6QLo8dAgNqswh8M1RMJYdQduT6xbWSgK36P/Z/v+p888pM69jMMfS8Xd8F6I1kQ/I9HUGg==} + dev: true + /argparse/1.0.10: resolution: {integrity: sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==} dependencies: @@ -3861,6 +3888,22 @@ packages: hasBin: true dev: true + /autoprefixer/10.4.13_postcss@8.4.18: + resolution: {integrity: sha512-49vKpMqcZYsJjwotvt4+h/BCjJVnhGwcLpDt5xkcaOG3eLrG/HUYLagrihYsQ+qrIBgIzX1Rw7a6L8I/ZA1Atg==} + engines: {node: ^10 || ^12 || >=14} + hasBin: true + peerDependencies: + postcss: ^8.1.0 + dependencies: + browserslist: 4.21.4 + caniuse-lite: 1.0.30001427 + fraction.js: 4.2.0 + normalize-range: 0.1.2 + picocolors: 1.0.0 + postcss: 8.4.18 + postcss-value-parser: 4.2.0 + dev: true + /autoprefixer/9.7.1: resolution: {integrity: sha512-w3b5y1PXWlhYulevrTJ0lizkQ5CyqfeU6BIRDbuhsMupstHQOeb1Ur80tcB1zxSu7AwyY/qCQ7Vvqklh31ZBFw==} engines: {node: '>=6.0.0'} @@ -3871,7 +3914,7 @@ packages: chalk: 2.4.2 normalize-range: 0.1.2 num2fraction: 1.2.2 - postcss: 7.0.39 + postcss: 7.0.38 postcss-value-parser: 4.2.0 dev: true @@ -3884,7 +3927,7 @@ packages: normalize-range: 0.1.2 num2fraction: 1.2.2 picocolors: 0.2.1 - postcss: 7.0.39 + postcss: 7.0.38 postcss-value-parser: 4.2.0 dev: true @@ -4448,6 +4491,11 @@ packages: upper-case: 1.1.3 dev: true + /camelcase-css/2.0.1: + resolution: {integrity: sha512-QOSvevhslijgYwRx6Rv7zKdMF8lbRmx+uQGx2+vDc+KI/eBnsy9kit5aj23AgGu3pa4t9AgwbnXWqS+iOY+2aA==} + engines: {node: '>= 6'} + dev: true + /camelcase-keys/2.1.0: resolution: {integrity: sha512-bA/Z/DERHKqoEOrp+qeGKw1QlvEQkGZSc0XaY6VnTxZr+Kv1G5zFwttpjv8qxZ/sBPT4nthwZaAcsAZTJlSKXQ==} engines: {node: '>=0.10.0'} @@ -5187,7 +5235,7 @@ packages: resolution: {integrity: sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==} engines: {node: '>4'} dependencies: - postcss: 7.0.39 + postcss: 7.0.38 timsort: 0.3.0 dev: true @@ -5202,7 +5250,7 @@ packages: icss-utils: 4.1.1 loader-utils: 1.4.0 normalize-path: 3.0.0 - postcss: 7.0.39 + postcss: 7.0.38 postcss-modules-extract-imports: 2.0.0 postcss-modules-local-by-default: 3.0.3 postcss-modules-scope: 2.2.0 @@ -5223,7 +5271,7 @@ packages: icss-utils: 4.1.1 loader-utils: 1.4.0 normalize-path: 3.0.0 - postcss: 7.0.39 + postcss: 7.0.38 postcss-modules-extract-imports: 2.0.0 postcss-modules-local-by-default: 3.0.3 postcss-modules-scope: 2.2.0 @@ -5317,7 +5365,7 @@ packages: dependencies: css-declaration-sorter: 4.0.1 cssnano-util-raw-cache: 4.0.1 - postcss: 7.0.39 + postcss: 7.0.38 postcss-calc: 7.0.5 postcss-colormin: 4.0.3 postcss-convert-values: 4.0.1 @@ -5361,7 +5409,7 @@ packages: resolution: {integrity: sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==} engines: {node: '>=6.9.0'} dependencies: - postcss: 7.0.39 + postcss: 7.0.38 dev: true /cssnano-util-same-parent/4.0.1: @@ -5376,7 +5424,7 @@ packages: cosmiconfig: 5.2.1 cssnano-preset-default: 4.0.8 is-resolvable: 1.1.0 - postcss: 7.0.39 + postcss: 7.0.38 dev: true /csso/4.2.0: @@ -5622,6 +5670,10 @@ packages: isobject: 3.0.1 dev: true + /defined/1.0.1: + resolution: {integrity: sha512-hsBd2qSVCRE+5PmNdHt1uzyrFu5d3RwmFDKzyNZMFq/EwDNJF7Ee5+D5oEKF0hU6LhtoUF1macFvOe4AskQC1Q==} + dev: true + /del/2.2.2: resolution: {integrity: sha512-Z4fzpbIRjOu7lO5jCETSWoqUDVe0IPOlfugBsF6suen2LKDlVb4QZpKEM9P+buNJ4KI1eN7I083w/pbKUpsrWQ==} engines: {node: '>=0.10.0'} @@ -5712,6 +5764,16 @@ packages: resolution: {integrity: sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==} dev: true + /detective/5.2.1: + resolution: {integrity: sha512-v9XE1zRnz1wRtgurGu0Bs8uHKFSTdteYZNbIPFVhUZ39L/S79ppMpdmVOZAnoz1jfEFodc48n6MX483Xo3t1yw==} + engines: {node: '>=0.8.0'} + hasBin: true + dependencies: + acorn-node: 1.8.2 + defined: 1.0.1 + minimist: 1.2.7 + dev: true + /dezalgo/1.0.4: resolution: {integrity: sha512-rXSP0bf+5n0Qonsb+SVVfNfIsimO4HEtmnIpPHY8Q1UCzKlQrDMfdobr8nJOOsRgWCyMRqeSBQzmWUMq7zvVig==} dependencies: @@ -5719,6 +5781,10 @@ packages: wrappy: 1.0.2 dev: true + /didyoumean/1.2.2: + resolution: {integrity: sha512-gxtyfqMg7GKyhQmb056K7M3xszy/myH8w+B4RT+QXBQsvAOdc3XymqDDPHx1BgPgsdAA5SIifona89YtRATDzw==} + dev: true + /diff-sequences/25.2.6: resolution: {integrity: sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==} engines: {node: '>= 8.3'} @@ -5739,6 +5805,10 @@ packages: path-type: 4.0.0 dev: true + /dlv/1.1.3: + resolution: {integrity: sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==} + dev: true + /dns-equal/1.0.0: resolution: {integrity: sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==} dev: true @@ -7045,6 +7115,10 @@ packages: engines: {node: '>= 0.6'} dev: true + /fraction.js/4.2.0: + resolution: {integrity: sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==} + dev: true + /fragment-cache/0.2.1: resolution: {integrity: sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA==} engines: {node: '>=0.10.0'} @@ -7518,6 +7592,21 @@ packages: through2: 2.0.5 dev: true + /gulp-postcss/9.0.1_postcss@8.4.18: + resolution: {integrity: sha512-9QUHam5JyXwGUxaaMvoFQVT44tohpEFpM8xBdPfdwTYGM0AItS1iTQz0MpsF8Jroh7GF5Jt2GVPaYgvy8qD2Fw==} + engines: {node: ^10 || ^12 || >=14} + peerDependencies: + postcss: ^8.0.0 + dependencies: + fancy-log: 1.3.3 + plugin-error: 1.0.1 + postcss: 8.4.18 + postcss-load-config: 3.1.4_postcss@8.4.18 + vinyl-sourcemaps-apply: 0.2.1 + transitivePeerDependencies: + - ts-node + dev: true + /gulp-util/3.0.8: resolution: {integrity: sha512-q5oWPc12lwSFS9h/4VIjG+1NuNDlJ48ywV2JKItY4Ycc/n1fXJeYPVQsfu5ZrhQi7FGSDBalwUCLar/GyHXKGw==} engines: {node: '>=0.10'} @@ -7954,7 +8043,7 @@ packages: resolution: {integrity: sha512-4aFq7wvWyMHKgxsH8QQtGpvbASCf+eM3wPRLI6R+MgAnTCZ6STYsRvttLvRWK0Nfif5piF394St3HeJDaljGPA==} engines: {node: '>= 6'} dependencies: - postcss: 7.0.39 + postcss: 7.0.38 dev: true /icss-utils/5.1.0_postcss@8.1.14: @@ -9489,6 +9578,11 @@ packages: - supports-color dev: true + /lilconfig/2.0.6: + resolution: {integrity: sha512-9JROoBW7pobfsx+Sq2JsASvCo6Pfo6WWoUW79HuB1BCoBXD4PLWJPqDF6fNj67pqBYTbAHkE57M1kS/+L1neOg==} + engines: {node: '>=10'} + dev: true + /line-diff/2.1.1: resolution: {integrity: sha512-vswdynAI5AMPJacOo2o+JJ4caDJbnY2NEqms4MhMW0NJbjh3skP/brpVTAgBxrg55NRZ2Vtw88ef18hnagIpYQ==} dependencies: @@ -10491,6 +10585,11 @@ packages: kind-of: 3.2.2 dev: true + /object-hash/3.0.0: + resolution: {integrity: sha512-RSn9F68PjH9HqtltsSnqYC1XXoWe9Bju5+213R98cNGttag9q9yAOTzdbsqvIa7aNm5WffBZFpWYr2aWrklWAw==} + engines: {node: '>= 6'} + dev: true + /object-inspect/1.12.2: resolution: {integrity: sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==} dev: true @@ -11121,6 +11220,16 @@ packages: find-up: 4.1.0 dev: true + /plugin-error/1.0.1: + resolution: {integrity: sha512-L1zP0dk7vGweZME2i+EeakvUNqSrdiI3F91TwEoYiGrAfUXmVv6fJIq4g82PAXxNsWOp0J7ZqQy/3Szz0ajTxA==} + engines: {node: '>= 0.10'} + dependencies: + ansi-colors: 1.1.0 + arr-diff: 4.0.0 + arr-union: 3.1.0 + extend-shallow: 3.0.2 + dev: true + /plugin-log/0.1.0: resolution: {integrity: sha512-TzmfWRMEFAnrZbI4GfyXv9Gp5E71eby3gmvnP6LEfmYbVC8FPN2RBRhwxg4sjIg+fy8AJ3mczhLXvk0pzHPeMg==} engines: {node: '>= 0.9.0'} @@ -11153,7 +11262,7 @@ packages: /postcss-calc/7.0.5: resolution: {integrity: sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==} dependencies: - postcss: 7.0.39 + postcss: 7.0.38 postcss-selector-parser: 6.0.10 postcss-value-parser: 4.2.0 dev: true @@ -11165,7 +11274,7 @@ packages: browserslist: 4.21.4 color: 3.2.1 has: 1.0.3 - postcss: 7.0.39 + postcss: 7.0.38 postcss-value-parser: 3.3.1 dev: true @@ -11173,7 +11282,7 @@ packages: resolution: {integrity: sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==} engines: {node: '>=6.9.0'} dependencies: - postcss: 7.0.39 + postcss: 7.0.38 postcss-value-parser: 3.3.1 dev: true @@ -11181,28 +11290,62 @@ packages: resolution: {integrity: sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==} engines: {node: '>=6.9.0'} dependencies: - postcss: 7.0.39 + postcss: 7.0.38 dev: true /postcss-discard-duplicates/4.0.2: resolution: {integrity: sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==} engines: {node: '>=6.9.0'} dependencies: - postcss: 7.0.39 + postcss: 7.0.38 dev: true /postcss-discard-empty/4.0.1: resolution: {integrity: sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==} engines: {node: '>=6.9.0'} dependencies: - postcss: 7.0.39 + postcss: 7.0.38 dev: true /postcss-discard-overridden/4.0.1: resolution: {integrity: sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==} engines: {node: '>=6.9.0'} dependencies: - postcss: 7.0.39 + postcss: 7.0.38 + dev: true + + /postcss-import/14.1.0_postcss@8.4.18: + resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==} + engines: {node: '>=10.0.0'} + peerDependencies: + postcss: ^8.0.0 + dependencies: + postcss: 8.4.18 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.1 + dev: true + + /postcss-import/15.0.0_postcss@8.4.18: + resolution: {integrity: sha512-Y20shPQ07RitgBGv2zvkEAu9bqvrD77C9axhj/aA1BQj4czape2MdClCExvB27EwYEJdGgKZBpKanb0t1rK2Kg==} + engines: {node: '>=14.0.0'} + peerDependencies: + postcss: ^8.0.0 + dependencies: + postcss: 8.4.18 + postcss-value-parser: 4.2.0 + read-cache: 1.0.0 + resolve: 1.22.1 + dev: true + + /postcss-js/4.0.0_postcss@8.4.18: + resolution: {integrity: sha512-77QESFBwgX4irogGVPgQ5s07vLvFqWr228qZY+w6lW599cRlK/HmnlivnnVUxkjHnCu4J16PDMHcH+e+2HbvTQ==} + engines: {node: ^12 || ^14 || >= 16} + peerDependencies: + postcss: ^8.3.3 + dependencies: + camelcase-css: 2.0.1 + postcss: 8.4.18 dev: true /postcss-load-config/2.1.2: @@ -11213,12 +11356,29 @@ packages: import-cwd: 2.1.0 dev: true + /postcss-load-config/3.1.4_postcss@8.4.18: + resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} + engines: {node: '>= 10'} + peerDependencies: + postcss: '>=8.0.9' + ts-node: '>=9.0.0' + peerDependenciesMeta: + postcss: + optional: true + ts-node: + optional: true + dependencies: + lilconfig: 2.0.6 + postcss: 8.4.18 + yaml: 1.10.2 + dev: true + /postcss-loader/3.0.0: resolution: {integrity: sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==} engines: {node: '>= 6'} dependencies: loader-utils: 1.4.0 - postcss: 7.0.39 + postcss: 7.0.38 postcss-load-config: 2.1.2 schema-utils: 1.0.0 dev: true @@ -11244,7 +11404,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: css-color-names: 0.0.4 - postcss: 7.0.39 + postcss: 7.0.38 postcss-value-parser: 3.3.1 stylehacks: 4.0.3 dev: true @@ -11256,7 +11416,7 @@ packages: browserslist: 4.21.4 caniuse-api: 3.0.0 cssnano-util-same-parent: 4.0.1 - postcss: 7.0.39 + postcss: 7.0.38 postcss-selector-parser: 3.1.2 vendors: 1.0.4 dev: true @@ -11265,7 +11425,7 @@ packages: resolution: {integrity: sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==} engines: {node: '>=6.9.0'} dependencies: - postcss: 7.0.39 + postcss: 7.0.38 postcss-value-parser: 3.3.1 dev: true @@ -11275,7 +11435,7 @@ packages: dependencies: cssnano-util-get-arguments: 4.0.0 is-color-stop: 1.1.0 - postcss: 7.0.39 + postcss: 7.0.38 postcss-value-parser: 3.3.1 dev: true @@ -11286,7 +11446,7 @@ packages: alphanum-sort: 1.0.2 browserslist: 4.21.4 cssnano-util-get-arguments: 4.0.0 - postcss: 7.0.39 + postcss: 7.0.38 postcss-value-parser: 3.3.1 uniqs: 2.0.0 dev: true @@ -11297,7 +11457,7 @@ packages: dependencies: alphanum-sort: 1.0.2 has: 1.0.3 - postcss: 7.0.39 + postcss: 7.0.38 postcss-selector-parser: 3.1.2 dev: true @@ -11311,7 +11471,7 @@ packages: resolution: {integrity: sha512-LaYLDNS4SG8Q5WAWqIJgdHPJrDDr/Lv775rMBFUbgjTz6j34lUznACHcdRWroPvXANP2Vj7yNK57vp9eFqzLWQ==} engines: {node: '>= 6'} dependencies: - postcss: 7.0.39 + postcss: 7.0.38 dev: true /postcss-modules-extract-imports/3.0.0_postcss@8.1.14: @@ -11344,7 +11504,7 @@ packages: engines: {node: '>= 6'} dependencies: icss-utils: 4.1.1 - postcss: 7.0.39 + postcss: 7.0.38 postcss-selector-parser: 6.0.10 postcss-value-parser: 4.2.0 dev: true @@ -11384,7 +11544,7 @@ packages: resolution: {integrity: sha512-YyEgsTMRpNd+HmyC7H/mh3y+MeFWevy7V1evVhJWewmMbjDHIbZbOXICC2y+m1xI1UVfIT1HMW/O04Hxyu9oXQ==} engines: {node: '>= 6'} dependencies: - postcss: 7.0.39 + postcss: 7.0.38 postcss-selector-parser: 6.0.10 dev: true @@ -11419,7 +11579,7 @@ packages: resolution: {integrity: sha512-1//E5jCBrZ9DmRX+zCtmQtRSV6PV42Ix7Bzj9GbwJceduuf7IqP8MgeTXuRDHOWj2m0VzZD5+roFWDuU8RQjcg==} dependencies: icss-utils: 4.1.1 - postcss: 7.0.39 + postcss: 7.0.38 dev: true /postcss-modules-values/4.0.0_postcss@8.1.14: @@ -11448,15 +11608,25 @@ packages: css-modules-loader-core: 1.1.0 generic-names: 2.0.1 lodash.camelcase: 4.3.0 - postcss: 7.0.39 + postcss: 7.0.38 string-hash: 1.1.3 dev: true + /postcss-nested/6.0.0_postcss@8.4.18: + resolution: {integrity: sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==} + engines: {node: '>=12.0'} + peerDependencies: + postcss: ^8.2.14 + dependencies: + postcss: 8.4.18 + postcss-selector-parser: 6.0.10 + dev: true + /postcss-normalize-charset/4.0.1: resolution: {integrity: sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==} engines: {node: '>=6.9.0'} dependencies: - postcss: 7.0.39 + postcss: 7.0.38 dev: true /postcss-normalize-display-values/4.0.2: @@ -11464,7 +11634,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: cssnano-util-get-match: 4.0.0 - postcss: 7.0.39 + postcss: 7.0.38 postcss-value-parser: 3.3.1 dev: true @@ -11474,7 +11644,7 @@ packages: dependencies: cssnano-util-get-arguments: 4.0.0 has: 1.0.3 - postcss: 7.0.39 + postcss: 7.0.38 postcss-value-parser: 3.3.1 dev: true @@ -11484,7 +11654,7 @@ packages: dependencies: cssnano-util-get-arguments: 4.0.0 cssnano-util-get-match: 4.0.0 - postcss: 7.0.39 + postcss: 7.0.38 postcss-value-parser: 3.3.1 dev: true @@ -11493,7 +11663,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: has: 1.0.3 - postcss: 7.0.39 + postcss: 7.0.38 postcss-value-parser: 3.3.1 dev: true @@ -11502,7 +11672,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: cssnano-util-get-match: 4.0.0 - postcss: 7.0.39 + postcss: 7.0.38 postcss-value-parser: 3.3.1 dev: true @@ -11511,7 +11681,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: browserslist: 4.21.4 - postcss: 7.0.39 + postcss: 7.0.38 postcss-value-parser: 3.3.1 dev: true @@ -11521,7 +11691,7 @@ packages: dependencies: is-absolute-url: 2.1.0 normalize-url: 3.3.0 - postcss: 7.0.39 + postcss: 7.0.38 postcss-value-parser: 3.3.1 dev: true @@ -11529,7 +11699,7 @@ packages: resolution: {integrity: sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==} engines: {node: '>=6.9.0'} dependencies: - postcss: 7.0.39 + postcss: 7.0.38 postcss-value-parser: 3.3.1 dev: true @@ -11538,7 +11708,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: cssnano-util-get-arguments: 4.0.0 - postcss: 7.0.39 + postcss: 7.0.38 postcss-value-parser: 3.3.1 dev: true @@ -11549,7 +11719,7 @@ packages: browserslist: 4.21.4 caniuse-api: 3.0.0 has: 1.0.3 - postcss: 7.0.39 + postcss: 7.0.38 dev: true /postcss-reduce-transforms/4.0.2: @@ -11558,7 +11728,7 @@ packages: dependencies: cssnano-util-get-match: 4.0.0 has: 1.0.3 - postcss: 7.0.39 + postcss: 7.0.38 postcss-value-parser: 3.3.1 dev: true @@ -11583,7 +11753,7 @@ packages: resolution: {integrity: sha512-NoRbrcMWTtUghzuKSoIm6XV+sJdvZ7GZSc3wdBN0W19FTtp2ko8NqLsgoh/m9CzNhU3KLPvQmjIwtaNFkaFTvw==} engines: {node: '>=6.9.0'} dependencies: - postcss: 7.0.39 + postcss: 7.0.38 postcss-value-parser: 3.3.1 svgo: 1.3.2 dev: true @@ -11593,7 +11763,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: alphanum-sort: 1.0.2 - postcss: 7.0.39 + postcss: 7.0.38 uniqs: 2.0.0 dev: true @@ -11622,14 +11792,6 @@ packages: source-map: 0.6.1 dev: true - /postcss/7.0.39: - resolution: {integrity: sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==} - engines: {node: '>=6.0.0'} - dependencies: - picocolors: 0.2.1 - source-map: 0.6.1 - dev: true - /postcss/8.1.14: resolution: {integrity: sha512-KatkyVPBKfENS+c3dpXJoDXnDD5UZs5exAnDksLqaRJPKwYphEPZt4N0m0i049v2/BtWVQibAhxW4ilXXcolpA==} engines: {node: ^10 || ^12 || >=14} @@ -11846,6 +12008,11 @@ packages: resolution: {integrity: sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==} dev: true + /quick-lru/5.1.1: + resolution: {integrity: sha512-WuyALRjWPDGtt/wzJiadO5AXY+8hZ80hVpe6MyivgraREW751X3SbhRvG3eLKOYN+8VEvqLcf3wdnt44Z4S4SA==} + engines: {node: '>=10'} + dev: true + /ramda/0.27.2: resolution: {integrity: sha512-SbiLPU40JuJniHexQSAgad32hfwd+DRUdwF2PlVuI5RZD0/vahUco7R8vD86J/tcEKKF9vZrUVwgtmGCqlCKyA==} dev: true @@ -11945,6 +12112,12 @@ packages: prop-types: 15.8.1 dev: false + /read-cache/1.0.0: + resolution: {integrity: sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==} + dependencies: + pify: 2.3.0 + dev: true + /read-package-json/2.1.2: resolution: {integrity: sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==} dependencies: @@ -13556,7 +13729,7 @@ packages: engines: {node: '>=6.9.0'} dependencies: browserslist: 4.21.4 - postcss: 7.0.39 + postcss: 7.0.38 postcss-selector-parser: 3.1.2 dev: true @@ -13651,6 +13824,38 @@ packages: resolution: {integrity: sha512-IUW+ek7apEaW5bFhS6WpYoNtVpNTlNoqB/PH7YiMWQTxSPeXCzG4PILVakwXivJt3ZXWeO1fIJnUd/L9A/VeGA==} dev: true + /tailwindcss/3.2.2: + resolution: {integrity: sha512-c2GtSdqg+harR4QeoTmex0Ngfg8IIHNeLQH5yr2B9uZbZR1Xt1rYbjWOWTcj3YLTZhrmZnPowoQDbSRFyZHQ5Q==} + engines: {node: '>=12.13.0'} + hasBin: true + dependencies: + arg: 5.0.2 + chokidar: 3.5.3 + color-name: 1.1.4 + detective: 5.2.1 + didyoumean: 1.2.2 + dlv: 1.1.3 + fast-glob: 3.2.12 + glob-parent: 6.0.2 + is-glob: 4.0.3 + lilconfig: 2.0.6 + micromatch: 4.0.5 + normalize-path: 3.0.0 + object-hash: 3.0.0 + picocolors: 1.0.0 + postcss: 8.4.18 + postcss-import: 14.1.0_postcss@8.4.18 + postcss-js: 4.0.0_postcss@8.4.18 + postcss-load-config: 3.1.4_postcss@8.4.18 + postcss-nested: 6.0.0_postcss@8.4.18 + postcss-selector-parser: 6.0.10 + postcss-value-parser: 4.2.0 + quick-lru: 5.1.1 + resolve: 1.22.1 + transitivePeerDependencies: + - ts-node + dev: true + /tapable/1.1.3: resolution: {integrity: sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==} engines: {node: '>=6'} @@ -14395,6 +14600,12 @@ packages: vinyl: 2.2.1 dev: true + /vinyl-sourcemaps-apply/0.2.1: + resolution: {integrity: sha512-+oDh3KYZBoZC8hfocrbrxbLUeaYtQK7J5WU5Br9VqWqmCll3tFJqKp97GC9GmMsVIL0qnx2DgEDVxdo5EZ5sSw==} + dependencies: + source-map: 0.5.7 + dev: true + /vinyl/0.5.3: resolution: {integrity: sha512-P5zdf3WB9uzr7IFoVQ2wZTmUwHL8cMZWJGzLBNCHNZ3NB6HTMsYABtt7z8tAGIINLXyAob9B9a1yzVGMFOYKEA==} engines: {node: '>= 0.9'} diff --git a/samples/react-birthdays-per-month/postcss.config.js b/samples/react-birthdays-per-month/postcss.config.js new file mode 100644 index 000000000..96bb01e7d --- /dev/null +++ b/samples/react-birthdays-per-month/postcss.config.js @@ -0,0 +1,6 @@ +module.exports = { + plugins: { + tailwindcss: {}, + autoprefixer: {}, + }, +} \ No newline at end of file diff --git a/samples/react-birthdays-per-month/src/webparts/birthdaysPerMonth/BirthdaysPerMonthWebPart.ts b/samples/react-birthdays-per-month/src/webparts/birthdaysPerMonth/BirthdaysPerMonthWebPart.ts index 7ff854bb2..2b893c8eb 100644 --- a/samples/react-birthdays-per-month/src/webparts/birthdaysPerMonth/BirthdaysPerMonthWebPart.ts +++ b/samples/react-birthdays-per-month/src/webparts/birthdaysPerMonth/BirthdaysPerMonthWebPart.ts @@ -10,6 +10,7 @@ import { BaseClientSideWebPart } from '@microsoft/sp-webpart-base'; import * as strings from 'BirthdaysPerMonthWebPartStrings'; import BirthdaysPerMonth from './components/BirthdaysPerMonth'; import { IBirthdaysPerMonthProps } from './components/IBirthdaysPerMonthProps'; +import '../../../assets/dist/tailwind.css'; export interface IBirthdaysPerMonthWebPartProps { description: string; diff --git a/samples/react-birthdays-per-month/src/webparts/birthdaysPerMonth/components/BirthdaysPerMonth.tsx b/samples/react-birthdays-per-month/src/webparts/birthdaysPerMonth/components/BirthdaysPerMonth.tsx index e99e90ff9..5908550da 100644 --- a/samples/react-birthdays-per-month/src/webparts/birthdaysPerMonth/components/BirthdaysPerMonth.tsx +++ b/samples/react-birthdays-per-month/src/webparts/birthdaysPerMonth/components/BirthdaysPerMonth.tsx @@ -14,7 +14,7 @@ export default class BirthdaysPerMonth extends React.Component +

Well done, {escape(userDisplayName)}!

diff --git a/samples/react-birthdays-per-month/tailwind.config.js b/samples/react-birthdays-per-month/tailwind.config.js new file mode 100644 index 000000000..19b190c08 --- /dev/null +++ b/samples/react-birthdays-per-month/tailwind.config.js @@ -0,0 +1,9 @@ +/** @type {import('tailwindcss').Config} */ +module.exports = { + prefix: 'tw-', + content: ["./src/**/*.{html,js,ts,tsx}"], + theme: { + extend: {}, + }, + plugins: [], +} \ No newline at end of file