Add tailwind

This commit is contained in:
AriGunawan 2022-11-05 18:29:52 +07:00 committed by Hugo Bernier
parent e050fef9a5
commit 0e0e6166dd
8 changed files with 325 additions and 67 deletions

View File

@ -0,0 +1,2 @@
@import "tailwindcss/components";
@import "tailwindcss/utilities";

View File

@ -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'));

View File

@ -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"
}
}

View File

@ -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'}

View File

@ -0,0 +1,6 @@
module.exports = {
plugins: {
tailwindcss: {},
autoprefixer: {},
},
}

View File

@ -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;

View File

@ -14,7 +14,7 @@ export default class BirthdaysPerMonth extends React.Component<IBirthdaysPerMont
} = this.props;
return (
<section className={`${styles.birthdaysPerMonth} ${hasTeamsContext ? styles.teams : ''}`}>
<section className={`tw-text-red-700`}>
<div className={styles.welcome}>
<img alt="" src={isDarkTheme ? require('../assets/welcome-dark.png') : require('../assets/welcome-light.png')} className={styles.welcomeImage} />
<h2>Well done, {escape(userDisplayName)}!</h2>

View File

@ -0,0 +1,9 @@
/** @type {import('tailwindcss').Config} */
module.exports = {
prefix: 'tw-',
content: ["./src/**/*.{html,js,ts,tsx}"],
theme: {
extend: {},
},
plugins: [],
}