Parcourir la source

fe-02 引入tailwind css和typescript

master
Chunxian Zhang il y a 2 ans
Parent
révision
1cd0f42690
6 fichiers modifiés avec 605 ajouts et 32 suppressions
  1. +11
    -0
      lazy-timer-fe/craco.config.ts
  2. +538
    -0
      lazy-timer-fe/package-lock.json
  3. +4
    -1
      lazy-timer-fe/package.json
  4. +0
    -9
      lazy-timer-fe/src/App.test.tsx
  5. +5
    -22
      lazy-timer-fe/src/App.tsx
  6. +47
    -0
      lazy-timer-fe/tailwind.config.ts

+ 11
- 0
lazy-timer-fe/craco.config.ts Voir le fichier

@ -0,0 +1,11 @@
// craco.config.js
module.exports = {
style: {
postcss: {
plugins: [
require('tailwindcss'),
require('autoprefixer'),
],
},
},
};

+ 538
- 0
lazy-timer-fe/package-lock.json Voir le fichier

@ -27,6 +27,9 @@
"web-vitals": "^2.1.4"
},
"devDependencies": {
"@types/jest": "^28.1.8",
"@types/react": "^18.0.17",
"@types/react-dom": "^18.0.6",
"autoprefixer": "^10.4.2",
"eslint": "^8.9.0",
"eslint-config-airbnb": "^19.0.4",
@ -2455,6 +2458,27 @@
"node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0"
}
},
"node_modules/@jest/expect-utils": {
"version": "28.1.3",
"resolved": "https://registry.npmmirror.com/@jest/expect-utils/-/expect-utils-28.1.3.tgz",
"integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==",
"dev": true,
"dependencies": {
"jest-get-type": "^28.0.2"
},
"engines": {
"node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
}
},
"node_modules/@jest/expect-utils/node_modules/jest-get-type": {
"version": "28.0.2",
"resolved": "https://registry.npmmirror.com/jest-get-type/-/jest-get-type-28.0.2.tgz",
"integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==",
"dev": true,
"engines": {
"node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
}
},
"node_modules/@jest/fake-timers": {
"version": "27.5.1",
"resolved": "https://registry.npmmirror.com/@jest/fake-timers/-/fake-timers-27.5.1.tgz",
@ -4070,6 +4094,237 @@
"@types/istanbul-lib-report": "*"
}
},
"node_modules/@types/jest": {
"version": "28.1.8",
"resolved": "https://registry.npmmirror.com/@types/jest/-/jest-28.1.8.tgz",
"integrity": "sha512-8TJkV++s7B6XqnDrzR1m/TT0A0h948Pnl/097veySPN67VRAgQ4gZ7n2KfJo2rVq6njQjdxU3GCCyDvAeuHoiw==",
"dev": true,
"dependencies": {
"expect": "^28.0.0",
"pretty-format": "^28.0.0"
}
},
"node_modules/@types/jest/node_modules/@jest/types": {
"version": "28.1.3",
"resolved": "https://registry.npmmirror.com/@jest/types/-/types-28.1.3.tgz",
"integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==",
"dev": true,
"dependencies": {
"@jest/schemas": "^28.1.3",
"@types/istanbul-lib-coverage": "^2.0.0",
"@types/istanbul-reports": "^3.0.0",
"@types/node": "*",
"@types/yargs": "^17.0.8",
"chalk": "^4.0.0"
},
"engines": {
"node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
}
},
"node_modules/@types/jest/node_modules/@types/yargs": {
"version": "17.0.11",
"resolved": "https://registry.npmmirror.com/@types/yargs/-/yargs-17.0.11.tgz",
"integrity": "sha512-aB4y9UDUXTSMxmM4MH+YnuR0g5Cph3FLQBoWoMB21DSvFVAxRVEHEMx3TLh+zUZYMCQtKiqazz0Q4Rre31f/OA==",
"dev": true,
"dependencies": {
"@types/yargs-parser": "*"
}
},
"node_modules/@types/jest/node_modules/ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"dependencies": {
"color-convert": "^2.0.1"
},
"engines": {
"node": ">=8"
}
},
"node_modules/@types/jest/node_modules/chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"dependencies": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
},
"engines": {
"node": ">=10"
}
},
"node_modules/@types/jest/node_modules/color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"dependencies": {
"color-name": "~1.1.4"
},
"engines": {
"node": ">=7.0.0"
}
},
"node_modules/@types/jest/node_modules/color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
"node_modules/@types/jest/node_modules/diff-sequences": {
"version": "28.1.1",
"resolved": "https://registry.npmmirror.com/diff-sequences/-/diff-sequences-28.1.1.tgz",
"integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==",
"dev": true,
"engines": {
"node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
}
},
"node_modules/@types/jest/node_modules/expect": {
"version": "28.1.3",
"resolved": "https://registry.npmmirror.com/expect/-/expect-28.1.3.tgz",
"integrity": "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==",
"dev": true,
"dependencies": {
"@jest/expect-utils": "^28.1.3",
"jest-get-type": "^28.0.2",
"jest-matcher-utils": "^28.1.3",
"jest-message-util": "^28.1.3",
"jest-util": "^28.1.3"
},
"engines": {
"node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
}
},
"node_modules/@types/jest/node_modules/has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true,
"engines": {
"node": ">=8"
}
},
"node_modules/@types/jest/node_modules/jest-diff": {
"version": "28.1.3",
"resolved": "https://registry.npmmirror.com/jest-diff/-/jest-diff-28.1.3.tgz",
"integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==",
"dev": true,
"dependencies": {
"chalk": "^4.0.0",
"diff-sequences": "^28.1.1",
"jest-get-type": "^28.0.2",
"pretty-format": "^28.1.3"
},
"engines": {
"node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
}
},
"node_modules/@types/jest/node_modules/jest-get-type": {
"version": "28.0.2",
"resolved": "https://registry.npmmirror.com/jest-get-type/-/jest-get-type-28.0.2.tgz",
"integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==",
"dev": true,
"engines": {
"node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
}
},
"node_modules/@types/jest/node_modules/jest-matcher-utils": {
"version": "28.1.3",
"resolved": "https://registry.npmmirror.com/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz",
"integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==",
"dev": true,
"dependencies": {
"chalk": "^4.0.0",
"jest-diff": "^28.1.3",
"jest-get-type": "^28.0.2",
"pretty-format": "^28.1.3"
},
"engines": {
"node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
}
},
"node_modules/@types/jest/node_modules/jest-message-util": {
"version": "28.1.3",
"resolved": "https://registry.npmmirror.com/jest-message-util/-/jest-message-util-28.1.3.tgz",
"integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==",
"dev": true,
"dependencies": {
"@babel/code-frame": "^7.12.13",
"@jest/types": "^28.1.3",
"@types/stack-utils": "^2.0.0",
"chalk": "^4.0.0",
"graceful-fs": "^4.2.9",
"micromatch": "^4.0.4",
"pretty-format": "^28.1.3",
"slash": "^3.0.0",
"stack-utils": "^2.0.3"
},
"engines": {
"node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
}
},
"node_modules/@types/jest/node_modules/jest-util": {
"version": "28.1.3",
"resolved": "https://registry.npmmirror.com/jest-util/-/jest-util-28.1.3.tgz",
"integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==",
"dev": true,
"dependencies": {
"@jest/types": "^28.1.3",
"@types/node": "*",
"chalk": "^4.0.0",
"ci-info": "^3.2.0",
"graceful-fs": "^4.2.9",
"picomatch": "^2.2.3"
},
"engines": {
"node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
}
},
"node_modules/@types/jest/node_modules/pretty-format": {
"version": "28.1.3",
"resolved": "https://registry.npmmirror.com/pretty-format/-/pretty-format-28.1.3.tgz",
"integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==",
"dev": true,
"dependencies": {
"@jest/schemas": "^28.1.3",
"ansi-regex": "^5.0.1",
"ansi-styles": "^5.0.0",
"react-is": "^18.0.0"
},
"engines": {
"node": "^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0"
}
},
"node_modules/@types/jest/node_modules/pretty-format/node_modules/ansi-styles": {
"version": "5.2.0",
"resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-5.2.0.tgz",
"integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
"dev": true,
"engines": {
"node": ">=10"
}
},
"node_modules/@types/jest/node_modules/react-is": {
"version": "18.2.0",
"resolved": "https://registry.npmmirror.com/react-is/-/react-is-18.2.0.tgz",
"integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==",
"dev": true
},
"node_modules/@types/jest/node_modules/supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"dependencies": {
"has-flag": "^4.0.0"
},
"engines": {
"node": ">=8"
}
},
"node_modules/@types/json-schema": {
"version": "7.0.11",
"resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.11.tgz",
@ -4105,6 +4360,12 @@
"resolved": "https://registry.npmmirror.com/@types/prettier/-/prettier-2.7.0.tgz",
"integrity": "sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A=="
},
"node_modules/@types/prop-types": {
"version": "15.7.5",
"resolved": "https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.5.tgz",
"integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==",
"dev": true
},
"node_modules/@types/q": {
"version": "1.5.5",
"resolved": "https://registry.npmmirror.com/@types/q/-/q-1.5.5.tgz",
@ -4120,6 +4381,26 @@
"resolved": "https://registry.npmmirror.com/@types/range-parser/-/range-parser-1.2.4.tgz",
"integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw=="
},
"node_modules/@types/react": {
"version": "18.0.17",
"resolved": "https://registry.npmmirror.com/@types/react/-/react-18.0.17.tgz",
"integrity": "sha512-38ETy4tL+rn4uQQi7mB81G7V1g0u2ryquNmsVIOKUAEIDK+3CUjZ6rSRpdvS99dNBnkLFL83qfmtLacGOTIhwQ==",
"dev": true,
"dependencies": {
"@types/prop-types": "*",
"@types/scheduler": "*",
"csstype": "^3.0.2"
}
},
"node_modules/@types/react-dom": {
"version": "18.0.6",
"resolved": "https://registry.npmmirror.com/@types/react-dom/-/react-dom-18.0.6.tgz",
"integrity": "sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA==",
"dev": true,
"dependencies": {
"@types/react": "*"
}
},
"node_modules/@types/resolve": {
"version": "1.17.1",
"resolved": "https://registry.npmmirror.com/@types/resolve/-/resolve-1.17.1.tgz",
@ -4133,6 +4414,12 @@
"resolved": "https://registry.npmmirror.com/@types/retry/-/retry-0.12.0.tgz",
"integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA=="
},
"node_modules/@types/scheduler": {
"version": "0.16.2",
"resolved": "https://registry.npmmirror.com/@types/scheduler/-/scheduler-0.16.2.tgz",
"integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==",
"dev": true
},
"node_modules/@types/serve-index": {
"version": "1.9.1",
"resolved": "https://registry.npmmirror.com/@types/serve-index/-/serve-index-1.9.1.tgz",
@ -6140,6 +6427,12 @@
"resolved": "https://registry.npmmirror.com/cssom/-/cssom-0.3.8.tgz",
"integrity": "sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg=="
},
"node_modules/csstype": {
"version": "3.1.0",
"resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.0.tgz",
"integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==",
"dev": true
},
"node_modules/damerau-levenshtein": {
"version": "1.0.8",
"resolved": "https://registry.npmmirror.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",
@ -17620,6 +17913,23 @@
"jest-mock": "^27.5.1"
}
},
"@jest/expect-utils": {
"version": "28.1.3",
"resolved": "https://registry.npmmirror.com/@jest/expect-utils/-/expect-utils-28.1.3.tgz",
"integrity": "sha512-wvbi9LUrHJLn3NlDW6wF2hvIMtd4JUl2QNVrjq+IBSHirgfrR3o9RnVtxzdEGO2n9JyIWwHnLfby5KzqBGg2YA==",
"dev": true,
"requires": {
"jest-get-type": "^28.0.2"
},
"dependencies": {
"jest-get-type": {
"version": "28.0.2",
"resolved": "https://registry.npmmirror.com/jest-get-type/-/jest-get-type-28.0.2.tgz",
"integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==",
"dev": true
}
}
},
"@jest/fake-timers": {
"version": "27.5.1",
"resolved": "https://registry.npmmirror.com/@jest/fake-timers/-/fake-timers-27.5.1.tgz",
@ -19030,6 +19340,196 @@
"@types/istanbul-lib-report": "*"
}
},
"@types/jest": {
"version": "28.1.8",
"resolved": "https://registry.npmmirror.com/@types/jest/-/jest-28.1.8.tgz",
"integrity": "sha512-8TJkV++s7B6XqnDrzR1m/TT0A0h948Pnl/097veySPN67VRAgQ4gZ7n2KfJo2rVq6njQjdxU3GCCyDvAeuHoiw==",
"dev": true,
"requires": {
"expect": "^28.0.0",
"pretty-format": "^28.0.0"
},
"dependencies": {
"@jest/types": {
"version": "28.1.3",
"resolved": "https://registry.npmmirror.com/@jest/types/-/types-28.1.3.tgz",
"integrity": "sha512-RyjiyMUZrKz/c+zlMFO1pm70DcIlST8AeWTkoUdZevew44wcNZQHsEVOiCVtgVnlFFD82FPaXycys58cf2muVQ==",
"dev": true,
"requires": {
"@jest/schemas": "^28.1.3",
"@types/istanbul-lib-coverage": "^2.0.0",
"@types/istanbul-reports": "^3.0.0",
"@types/node": "*",
"@types/yargs": "^17.0.8",
"chalk": "^4.0.0"
}
},
"@types/yargs": {
"version": "17.0.11",
"resolved": "https://registry.npmmirror.com/@types/yargs/-/yargs-17.0.11.tgz",
"integrity": "sha512-aB4y9UDUXTSMxmM4MH+YnuR0g5Cph3FLQBoWoMB21DSvFVAxRVEHEMx3TLh+zUZYMCQtKiqazz0Q4Rre31f/OA==",
"dev": true,
"requires": {
"@types/yargs-parser": "*"
}
},
"ansi-styles": {
"version": "4.3.0",
"resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-4.3.0.tgz",
"integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
"dev": true,
"requires": {
"color-convert": "^2.0.1"
}
},
"chalk": {
"version": "4.1.2",
"resolved": "https://registry.npmmirror.com/chalk/-/chalk-4.1.2.tgz",
"integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
"dev": true,
"requires": {
"ansi-styles": "^4.1.0",
"supports-color": "^7.1.0"
}
},
"color-convert": {
"version": "2.0.1",
"resolved": "https://registry.npmmirror.com/color-convert/-/color-convert-2.0.1.tgz",
"integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
"dev": true,
"requires": {
"color-name": "~1.1.4"
}
},
"color-name": {
"version": "1.1.4",
"resolved": "https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz",
"integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
"dev": true
},
"diff-sequences": {
"version": "28.1.1",
"resolved": "https://registry.npmmirror.com/diff-sequences/-/diff-sequences-28.1.1.tgz",
"integrity": "sha512-FU0iFaH/E23a+a718l8Qa/19bF9p06kgE0KipMOMadwa3SjnaElKzPaUC0vnibs6/B/9ni97s61mcejk8W1fQw==",
"dev": true
},
"expect": {
"version": "28.1.3",
"resolved": "https://registry.npmmirror.com/expect/-/expect-28.1.3.tgz",
"integrity": "sha512-eEh0xn8HlsuOBxFgIss+2mX85VAS4Qy3OSkjV7rlBWljtA4oWH37glVGyOZSZvErDT/yBywZdPGwCXuTvSG85g==",
"dev": true,
"requires": {
"@jest/expect-utils": "^28.1.3",
"jest-get-type": "^28.0.2",
"jest-matcher-utils": "^28.1.3",
"jest-message-util": "^28.1.3",
"jest-util": "^28.1.3"
}
},
"has-flag": {
"version": "4.0.0",
"resolved": "https://registry.npmmirror.com/has-flag/-/has-flag-4.0.0.tgz",
"integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
"dev": true
},
"jest-diff": {
"version": "28.1.3",
"resolved": "https://registry.npmmirror.com/jest-diff/-/jest-diff-28.1.3.tgz",
"integrity": "sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==",
"dev": true,
"requires": {
"chalk": "^4.0.0",
"diff-sequences": "^28.1.1",
"jest-get-type": "^28.0.2",
"pretty-format": "^28.1.3"
}
},
"jest-get-type": {
"version": "28.0.2",
"resolved": "https://registry.npmmirror.com/jest-get-type/-/jest-get-type-28.0.2.tgz",
"integrity": "sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==",
"dev": true
},
"jest-matcher-utils": {
"version": "28.1.3",
"resolved": "https://registry.npmmirror.com/jest-matcher-utils/-/jest-matcher-utils-28.1.3.tgz",
"integrity": "sha512-kQeJ7qHemKfbzKoGjHHrRKH6atgxMk8Enkk2iPQ3XwO6oE/KYD8lMYOziCkeSB9G4adPM4nR1DE8Tf5JeWH6Bw==",
"dev": true,
"requires": {
"chalk": "^4.0.0",
"jest-diff": "^28.1.3",
"jest-get-type": "^28.0.2",
"pretty-format": "^28.1.3"
}
},
"jest-message-util": {
"version": "28.1.3",
"resolved": "https://registry.npmmirror.com/jest-message-util/-/jest-message-util-28.1.3.tgz",
"integrity": "sha512-PFdn9Iewbt575zKPf1286Ht9EPoJmYT7P0kY+RibeYZ2XtOr53pDLEFoTWXbd1h4JiGiWpTBC84fc8xMXQMb7g==",
"dev": true,
"requires": {
"@babel/code-frame": "^7.12.13",
"@jest/types": "^28.1.3",
"@types/stack-utils": "^2.0.0",
"chalk": "^4.0.0",
"graceful-fs": "^4.2.9",
"micromatch": "^4.0.4",
"pretty-format": "^28.1.3",
"slash": "^3.0.0",
"stack-utils": "^2.0.3"
}
},
"jest-util": {
"version": "28.1.3",
"resolved": "https://registry.npmmirror.com/jest-util/-/jest-util-28.1.3.tgz",
"integrity": "sha512-XdqfpHwpcSRko/C35uLYFM2emRAltIIKZiJ9eAmhjsj0CqZMa0p1ib0R5fWIqGhn1a103DebTbpqIaP1qCQ6tQ==",
"dev": true,
"requires": {
"@jest/types": "^28.1.3",
"@types/node": "*",
"chalk": "^4.0.0",
"ci-info": "^3.2.0",
"graceful-fs": "^4.2.9",
"picomatch": "^2.2.3"
}
},
"pretty-format": {
"version": "28.1.3",
"resolved": "https://registry.npmmirror.com/pretty-format/-/pretty-format-28.1.3.tgz",
"integrity": "sha512-8gFb/To0OmxHR9+ZTb14Df2vNxdGCX8g1xWGUTqUw5TiZvcQf5sHKObd5UcPyLLyowNwDAMTF3XWOG1B6mxl1Q==",
"dev": true,
"requires": {
"@jest/schemas": "^28.1.3",
"ansi-regex": "^5.0.1",
"ansi-styles": "^5.0.0",
"react-is": "^18.0.0"
},
"dependencies": {
"ansi-styles": {
"version": "5.2.0",
"resolved": "https://registry.npmmirror.com/ansi-styles/-/ansi-styles-5.2.0.tgz",
"integrity": "sha512-Cxwpt2SfTzTtXcfOlzGEee8O+c+MmUgGrNiBcXnuWxuFJHe6a5Hz7qwhwe5OgaSYI0IJvkLqWX1ASG+cJOkEiA==",
"dev": true
}
}
},
"react-is": {
"version": "18.2.0",
"resolved": "https://registry.npmmirror.com/react-is/-/react-is-18.2.0.tgz",
"integrity": "sha512-xWGDIW6x921xtzPkhiULtthJHoJvBbF3q26fzloPCK0hsvxtPVelvftw3zjbHWSkR2km9Z+4uxbDDK/6Zw9B8w==",
"dev": true
},
"supports-color": {
"version": "7.2.0",
"resolved": "https://registry.npmmirror.com/supports-color/-/supports-color-7.2.0.tgz",
"integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
"dev": true,
"requires": {
"has-flag": "^4.0.0"
}
}
}
},
"@types/json-schema": {
"version": "7.0.11",
"resolved": "https://registry.npmmirror.com/@types/json-schema/-/json-schema-7.0.11.tgz",
@ -19065,6 +19565,12 @@
"resolved": "https://registry.npmmirror.com/@types/prettier/-/prettier-2.7.0.tgz",
"integrity": "sha512-RI1L7N4JnW5gQw2spvL7Sllfuf1SaHdrZpCHiBlCXjIlufi1SMNnbu2teze3/QE67Fg2tBlH7W+mi4hVNk4p0A=="
},
"@types/prop-types": {
"version": "15.7.5",
"resolved": "https://registry.npmmirror.com/@types/prop-types/-/prop-types-15.7.5.tgz",
"integrity": "sha512-JCB8C6SnDoQf0cNycqd/35A7MjcnK+ZTqE7judS6o7utxUCg6imJg3QK2qzHKszlTjcj2cn+NwMB2i96ubpj7w==",
"dev": true
},
"@types/q": {
"version": "1.5.5",
"resolved": "https://registry.npmmirror.com/@types/q/-/q-1.5.5.tgz",
@ -19080,6 +19586,26 @@
"resolved": "https://registry.npmmirror.com/@types/range-parser/-/range-parser-1.2.4.tgz",
"integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw=="
},
"@types/react": {
"version": "18.0.17",
"resolved": "https://registry.npmmirror.com/@types/react/-/react-18.0.17.tgz",
"integrity": "sha512-38ETy4tL+rn4uQQi7mB81G7V1g0u2ryquNmsVIOKUAEIDK+3CUjZ6rSRpdvS99dNBnkLFL83qfmtLacGOTIhwQ==",
"dev": true,
"requires": {
"@types/prop-types": "*",
"@types/scheduler": "*",
"csstype": "^3.0.2"
}
},
"@types/react-dom": {
"version": "18.0.6",
"resolved": "https://registry.npmmirror.com/@types/react-dom/-/react-dom-18.0.6.tgz",
"integrity": "sha512-/5OFZgfIPSwy+YuIBP/FgJnQnsxhZhjjrnxudMddeblOouIodEQ75X14Rr4wGSG/bknL+Omy9iWlLo1u/9GzAA==",
"dev": true,
"requires": {
"@types/react": "*"
}
},
"@types/resolve": {
"version": "1.17.1",
"resolved": "https://registry.npmmirror.com/@types/resolve/-/resolve-1.17.1.tgz",
@ -19093,6 +19619,12 @@
"resolved": "https://registry.npmmirror.com/@types/retry/-/retry-0.12.0.tgz",
"integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA=="
},
"@types/scheduler": {
"version": "0.16.2",
"resolved": "https://registry.npmmirror.com/@types/scheduler/-/scheduler-0.16.2.tgz",
"integrity": "sha512-hppQEBDmlwhFAXKJX2KnWLYu5yMfi91yazPb2l+lbJiwW+wdo1gNeRA+3RgNSO39WYX2euey41KEwnqesU2Jew==",
"dev": true
},
"@types/serve-index": {
"version": "1.9.1",
"resolved": "https://registry.npmmirror.com/@types/serve-index/-/serve-index-1.9.1.tgz",
@ -20676,6 +21208,12 @@
}
}
},
"csstype": {
"version": "3.1.0",
"resolved": "https://registry.npmmirror.com/csstype/-/csstype-3.1.0.tgz",
"integrity": "sha512-uX1KG+x9h5hIJsaKR9xHUeUraxf8IODOwq9JLNPq6BwB04a/xgpq3rcx47l5BZu5zBPlgD342tdke3Hom/nJRA==",
"dev": true
},
"damerau-levenshtein": {
"version": "1.0.8",
"resolved": "https://registry.npmmirror.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz",

+ 4
- 1
lazy-timer-fe/package.json Voir le fichier

@ -1,5 +1,5 @@
{
"name": "project_syncfusion_dashboard",
"name": "lazy-timer-fe",
"version": "0.1.0",
"private": true,
"dependencies": {
@ -46,6 +46,9 @@
]
},
"devDependencies": {
"@types/jest": "^28.1.8",
"@types/react": "^18.0.17",
"@types/react-dom": "^18.0.6",
"autoprefixer": "^10.4.2",
"eslint": "^8.9.0",
"eslint-config-airbnb": "^19.0.4",

+ 0
- 9
lazy-timer-fe/src/App.test.tsx Voir le fichier

@ -1,9 +0,0 @@
import React from 'react';
import { render, screen } from '@testing-library/react';
import App from './App';
test('renders learn react link', () => {
render(<App />);
const linkElement = screen.getByText(/learn react/i);
expect(linkElement).toBeInTheDocument();
});

+ 5
- 22
lazy-timer-fe/src/App.tsx Voir le fichier

@ -1,26 +1,9 @@
import React from 'react';
import logo from './logo.svg';
import './App.css';
import React from 'react'
import logo from './logo.svg'
import './App.css'
function App() {
return (
<div className="App">
<header className="App-header">
<img src={logo} className="App-logo" alt="logo" />
<p>
Edit <code>src/App.tsx</code> and save to reload.
</p>
<a
className="App-link"
href="https://reactjs.org"
target="_blank"
rel="noopener noreferrer"
>
Learn React
</a>
</header>
</div>
);
return <div>App</div>
}
export default App;
export default App

+ 47
- 0
lazy-timer-fe/tailwind.config.ts Voir le fichier

@ -0,0 +1,47 @@
module.exports = {
content: ['./src/**/*.{js,jsx,ts,tsx}'],
darkMode: 'class',
theme: {
fontFamily: {
display: ['Open Sans', 'sans-serif'],
body: ['Open Sans', 'sans-serif']
},
extend: {
fontSize: {
14: '14px'
},
backgroundColor: {
'main-bg': '#FAFBFB',
'main-dark-bg': '#20232A',
'secondary-dark-bg': '#33373E',
'light-gray': '#F7F7F7',
'half-transparent': 'rgba(0, 0, 0, 0.5)'
},
borderWidth: {
1: '1px'
},
borderColor: {
color: 'rgba(0, 0, 0, 0.1)'
},
width: {
400: '400px',
760: '760px',
780: '780px',
800: '800px',
1000: '1000px',
1200: '1200px',
1400: '1400px'
},
height: {
80: '80px'
},
minHeight: {
590: '590px'
},
backgroundImage: {
'hero-pattern': "url('https://i.ibb.co/MkvLDfb/Rectangle-4389.png')"
}
}
},
plugins: []
}

Chargement…
Annuler
Enregistrer