├── .editorconfig ├── .eslintrc.js ├── .gitattributes ├── .gitignore ├── .prettierignore ├── .prettierrc ├── 01-basics ├── api │ └── meetups.json ├── index.html ├── script.js └── vendor │ └── vue.esm-browser.js ├── 02-components ├── api │ └── meetups.json ├── components │ ├── App.js │ ├── MeetupCard.js │ ├── MeetupsCalendar.js │ ├── MeetupsList.js │ ├── PageMeetups.js │ ├── UiAlert.js │ ├── UiBadge.js │ ├── UiButtonGroup.js │ ├── UiCard.js │ ├── UiContainer.js │ └── UiRadioGroup.js ├── index.html ├── script.js └── vendor │ └── vue.esm-browser.js ├── 03-sfc ├── .browserslistrc ├── .eslintrc.js ├── .gitignore ├── .prettierrc ├── babel.config.js ├── package-lock.json ├── package.json ├── postcss.config.js ├── src │ ├── App.vue │ ├── UiButton.vue │ ├── UiButtonCssModule.vue │ ├── UiButtonCssScoped.vue │ ├── UiText.vue │ ├── UiTextCssModule.vue │ ├── assets │ │ ├── fonts │ │ │ ├── Nunito-cyrillic-ext.woff2 │ │ │ ├── Nunito-cyrillic.woff2 │ │ │ ├── Nunito-latin-ext.woff2 │ │ │ └── Nunito-latin.woff2 │ │ ├── images │ │ │ └── undraw_conference_speaker_6nt7.svg │ │ └── styles │ │ │ ├── _common.css │ │ │ ├── _fonts.css │ │ │ ├── _variables.css │ │ │ └── index.css │ ├── index.html │ └── main.js └── webpack.config.js ├── 04-bundlers ├── 01-vue-cli │ ├── .browserslistrc │ ├── .env │ ├── .env.production │ ├── .eslintrc.js │ ├── .gitignore │ ├── README.md │ ├── babel.config.js │ ├── package-lock.json │ ├── package.json │ ├── public │ │ ├── api │ │ │ └── meetups.json │ │ ├── favicon.ico │ │ └── index.html │ ├── src │ │ ├── App.vue │ │ ├── api.js │ │ ├── assets │ │ │ ├── fonts │ │ │ │ ├── Nunito-cyrillic-ext.woff2 │ │ │ │ ├── Nunito-cyrillic.woff2 │ │ │ │ ├── Nunito-latin-ext.woff2 │ │ │ │ └── Nunito-latin.woff2 │ │ │ ├── icons │ │ │ │ ├── icon-alert-circle.svg │ │ │ │ ├── icon-cal-lg.svg │ │ │ │ ├── icon-cal-sm.svg │ │ │ │ ├── icon-check-circle.svg │ │ │ │ ├── icon-check.svg │ │ │ │ ├── icon-chevron-down.svg │ │ │ │ ├── icon-clock.svg │ │ │ │ ├── icon-coffee.svg │ │ │ │ ├── icon-key.svg │ │ │ │ ├── icon-list.svg │ │ │ │ ├── icon-map.svg │ │ │ │ ├── icon-pen-tool.svg │ │ │ │ ├── icon-pill-active.svg │ │ │ │ ├── icon-search.svg │ │ │ │ ├── icon-trash.svg │ │ │ │ ├── icon-tv.svg │ │ │ │ └── icon-user.svg │ │ │ ├── images │ │ │ │ └── undraw_conference_speaker_6nt7.svg │ │ │ ├── logo.svg │ │ │ └── styles │ │ │ │ ├── _agenda-item-form.css │ │ │ │ ├── _agenda-item.css │ │ │ │ ├── _agenda.css │ │ │ │ ├── _alert.css │ │ │ │ ├── _avatar.css │ │ │ │ ├── _badge.css │ │ │ │ ├── _button-group.css │ │ │ │ ├── _button.css │ │ │ │ ├── _calendar-event.css │ │ │ │ ├── _calendar-view.css │ │ │ │ ├── _card.css │ │ │ │ ├── _checkbox.css │ │ │ │ ├── _common.css │ │ │ │ ├── _container.css │ │ │ │ ├── _dropdown.css │ │ │ │ ├── _fonts.css │ │ │ │ ├── _footer.css │ │ │ │ ├── _form-group.css │ │ │ │ ├── _form.css │ │ │ │ ├── _header.css │ │ │ │ ├── _icon.css │ │ │ │ ├── _image-uploader.css │ │ │ │ ├── _input-group.css │ │ │ │ ├── _layout.css │ │ │ │ ├── _link.css │ │ │ │ ├── _logo.css │ │ │ │ ├── _meetup-cover.css │ │ │ │ ├── _meetup-description.css │ │ │ │ ├── _meetup-form.css │ │ │ │ ├── _meetup-info.css │ │ │ │ ├── _meetups-list.css │ │ │ │ ├── _nav.css │ │ │ │ ├── _page-auth.css │ │ │ │ ├── _page-meetup-form.css │ │ │ │ ├── _page-meetup.css │ │ │ │ ├── _page-meetups.css │ │ │ │ ├── _page_not-found.css │ │ │ │ ├── _progress.css │ │ │ │ ├── _radio-group.css │ │ │ │ ├── _tabs.css │ │ │ │ ├── _title.css │ │ │ │ ├── _toaster.css │ │ │ │ ├── _transitions.css │ │ │ │ ├── _variables.css │ │ │ │ └── index.css │ │ ├── components │ │ │ ├── MeetupCard.vue │ │ │ ├── MeetupsCalendar.vue │ │ │ ├── MeetupsList.vue │ │ │ ├── PageMeetups.vue │ │ │ ├── UiAlert.vue │ │ │ ├── UiBadge.vue │ │ │ ├── UiButtonGroup.vue │ │ │ ├── UiCard.vue │ │ │ ├── UiContainer.vue │ │ │ ├── UiIcon.vue │ │ │ └── UiRadioGroup.vue │ │ └── main.js │ └── vue.config.js └── 02-vite │ ├── .env │ ├── .gitignore │ ├── README.md │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── public │ └── favicon.ico │ ├── src │ ├── App.vue │ ├── api.js │ ├── assets │ │ ├── fonts │ │ │ ├── Nunito-cyrillic-ext.woff2 │ │ │ ├── Nunito-cyrillic.woff2 │ │ │ ├── Nunito-latin-ext.woff2 │ │ │ └── Nunito-latin.woff2 │ │ ├── icons │ │ │ ├── icon-alert-circle.svg │ │ │ ├── icon-cal-lg.svg │ │ │ ├── icon-cal-sm.svg │ │ │ ├── icon-check-circle.svg │ │ │ ├── icon-check.svg │ │ │ ├── icon-chevron-down.svg │ │ │ ├── icon-clock.svg │ │ │ ├── icon-coffee.svg │ │ │ ├── icon-key.svg │ │ │ ├── icon-list.svg │ │ │ ├── icon-map.svg │ │ │ ├── icon-pen-tool.svg │ │ │ ├── icon-pill-active.svg │ │ │ ├── icon-search.svg │ │ │ ├── icon-trash.svg │ │ │ ├── icon-tv.svg │ │ │ └── icon-user.svg │ │ ├── images │ │ │ └── undraw_conference_speaker_6nt7.svg │ │ ├── logo.svg │ │ └── styles │ │ │ ├── _agenda-item-form.css │ │ │ ├── _agenda-item.css │ │ │ ├── _agenda.css │ │ │ ├── _alert.css │ │ │ ├── _avatar.css │ │ │ ├── _badge.css │ │ │ ├── _button-group.css │ │ │ ├── _button.css │ │ │ ├── _calendar-event.css │ │ │ ├── _calendar-view.css │ │ │ ├── _card.css │ │ │ ├── _checkbox.css │ │ │ ├── _common.css │ │ │ ├── _container.css │ │ │ ├── _dropdown.css │ │ │ ├── _fonts.css │ │ │ ├── _footer.css │ │ │ ├── _form-group.css │ │ │ ├── _form.css │ │ │ ├── _header.css │ │ │ ├── _icon.css │ │ │ ├── _image-uploader.css │ │ │ ├── _input-group.css │ │ │ ├── _layout.css │ │ │ ├── _link.css │ │ │ ├── _logo.css │ │ │ ├── _meetup-cover.css │ │ │ ├── _meetup-description.css │ │ │ ├── _meetup-form.css │ │ │ ├── _meetup-info.css │ │ │ ├── _meetups-list.css │ │ │ ├── _nav.css │ │ │ ├── _page-auth.css │ │ │ ├── _page-meetup-form.css │ │ │ ├── _page-meetup.css │ │ │ ├── _page-meetups.css │ │ │ ├── _page_not-found.css │ │ │ ├── _progress.css │ │ │ ├── _radio-group.css │ │ │ ├── _tabs.css │ │ │ ├── _title.css │ │ │ ├── _toaster.css │ │ │ ├── _transitions.css │ │ │ ├── _variables.css │ │ │ └── index.css │ ├── components │ │ ├── MeetupCard.vue │ │ ├── MeetupsCalendar.vue │ │ ├── MeetupsList.vue │ │ ├── MeetupsListItem.vue │ │ ├── PageMeetups.vue │ │ ├── UiAlert.vue │ │ ├── UiBadge.vue │ │ ├── UiButtonGroup.vue │ │ ├── UiCard.vue │ │ ├── UiContainer.vue │ │ ├── UiIcon.vue │ │ └── UiRadioGroup.vue │ └── main.js │ └── vite.config.js ├── 05-spa ├── 01-simple-router │ ├── index.html │ ├── script.js │ └── vendor │ │ └── vue.esm-browser.js └── 02-vue-router │ ├── .gitignore │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── public │ ├── favicon.ico │ ├── images │ │ └── undraw_conference_speaker_6nt7.svg │ └── index.html │ ├── src │ ├── App.vue │ ├── api.js │ ├── assets │ │ ├── fonts │ │ │ ├── Nunito-cyrillic-ext.woff2 │ │ │ ├── Nunito-cyrillic.woff2 │ │ │ ├── Nunito-latin-ext.woff2 │ │ │ └── Nunito-latin.woff2 │ │ ├── icons │ │ │ ├── icon-alert-circle.svg │ │ │ ├── icon-cal-lg.svg │ │ │ ├── icon-cal-sm.svg │ │ │ ├── icon-check-circle.svg │ │ │ ├── icon-check.svg │ │ │ ├── icon-chevron-down.svg │ │ │ ├── icon-clock.svg │ │ │ ├── icon-coffee.svg │ │ │ ├── icon-key.svg │ │ │ ├── icon-list.svg │ │ │ ├── icon-map.svg │ │ │ ├── icon-pen-tool.svg │ │ │ ├── icon-pill-active.svg │ │ │ ├── icon-search.svg │ │ │ ├── icon-trash.svg │ │ │ ├── icon-tv.svg │ │ │ └── icon-user.svg │ │ ├── images │ │ │ └── undraw_conference_speaker_6nt7.svg │ │ ├── logo.svg │ │ └── styles │ │ │ ├── _agenda-item-form.css │ │ │ ├── _agenda-item.css │ │ │ ├── _agenda.css │ │ │ ├── _alert.css │ │ │ ├── _avatar.css │ │ │ ├── _badge.css │ │ │ ├── _button-group.css │ │ │ ├── _button.css │ │ │ ├── _calendar-event.css │ │ │ ├── _calendar-view.css │ │ │ ├── _card.css │ │ │ ├── _checkbox.css │ │ │ ├── _common.css │ │ │ ├── _container.css │ │ │ ├── _dropdown.css │ │ │ ├── _fonts.css │ │ │ ├── _footer.css │ │ │ ├── _form-group.css │ │ │ ├── _form.css │ │ │ ├── _header.css │ │ │ ├── _icon.css │ │ │ ├── _image-uploader.css │ │ │ ├── _input-group.css │ │ │ ├── _layout.css │ │ │ ├── _link.css │ │ │ ├── _logo.css │ │ │ ├── _meetup-cover.css │ │ │ ├── _meetup-description.css │ │ │ ├── _meetup-form.css │ │ │ ├── _meetup-info.css │ │ │ ├── _meetups-list.css │ │ │ ├── _nav.css │ │ │ ├── _page-auth.css │ │ │ ├── _page-meetup-form.css │ │ │ ├── _page-meetup.css │ │ │ ├── _page-meetups.css │ │ │ ├── _page_not-found.css │ │ │ ├── _progress.css │ │ │ ├── _radio-group.css │ │ │ ├── _tabs.css │ │ │ ├── _title.css │ │ │ ├── _toaster.css │ │ │ ├── _transitions.css │ │ │ ├── _variables.css │ │ │ └── index.css │ ├── components │ │ ├── MeetupCard.vue │ │ ├── MeetupsCalendar.vue │ │ ├── MeetupsFooter.vue │ │ ├── MeetupsHeader.vue │ │ ├── MeetupsList.vue │ │ ├── MeetupsLogo.vue │ │ ├── MeetupsNav.vue │ │ ├── UiAlert.vue │ │ ├── UiBadge.vue │ │ ├── UiButtonGroup.vue │ │ ├── UiCard.vue │ │ ├── UiContainer.vue │ │ ├── UiIcon.vue │ │ └── UiRadioGroup.vue │ ├── main.js │ ├── router │ │ └── index.js │ └── views │ │ ├── PageMeetup.vue │ │ ├── PageMeetupAgenda.vue │ │ ├── PageMeetupDescription.vue │ │ └── PageMeetups.vue │ └── vite.config.js ├── 06-wrappers ├── 01-dynamic-component │ ├── .gitignore │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ ├── images │ │ │ └── undraw_conference_speaker_6nt7.svg │ │ └── index.html │ ├── src │ │ ├── App.vue │ │ ├── api.js │ │ ├── assets │ │ │ ├── fonts │ │ │ │ ├── Nunito-cyrillic-ext.woff2 │ │ │ │ ├── Nunito-cyrillic.woff2 │ │ │ │ ├── Nunito-latin-ext.woff2 │ │ │ │ └── Nunito-latin.woff2 │ │ │ ├── icons │ │ │ │ ├── icon-alert-circle.svg │ │ │ │ ├── icon-cal-lg.svg │ │ │ │ ├── icon-cal-sm.svg │ │ │ │ ├── icon-check-circle.svg │ │ │ │ ├── icon-check.svg │ │ │ │ ├── icon-chevron-down.svg │ │ │ │ ├── icon-clock.svg │ │ │ │ ├── icon-coffee.svg │ │ │ │ ├── icon-key.svg │ │ │ │ ├── icon-list.svg │ │ │ │ ├── icon-map.svg │ │ │ │ ├── icon-pen-tool.svg │ │ │ │ ├── icon-pill-active.svg │ │ │ │ ├── icon-search.svg │ │ │ │ ├── icon-trash.svg │ │ │ │ ├── icon-tv.svg │ │ │ │ └── icon-user.svg │ │ │ ├── images │ │ │ │ └── undraw_conference_speaker_6nt7.svg │ │ │ ├── logo.svg │ │ │ └── styles │ │ │ │ ├── _agenda-item-form.css │ │ │ │ ├── _agenda-item.css │ │ │ │ ├── _agenda.css │ │ │ │ ├── _alert.css │ │ │ │ ├── _avatar.css │ │ │ │ ├── _badge.css │ │ │ │ ├── _button-group.css │ │ │ │ ├── _button.css │ │ │ │ ├── _calendar-event.css │ │ │ │ ├── _calendar-view.css │ │ │ │ ├── _card.css │ │ │ │ ├── _checkbox.css │ │ │ │ ├── _common.css │ │ │ │ ├── _container.css │ │ │ │ ├── _dropdown.css │ │ │ │ ├── _fonts.css │ │ │ │ ├── _footer.css │ │ │ │ ├── _form-group.css │ │ │ │ ├── _form.css │ │ │ │ ├── _header.css │ │ │ │ ├── _icon.css │ │ │ │ ├── _image-uploader.css │ │ │ │ ├── _input-group.css │ │ │ │ ├── _layout.css │ │ │ │ ├── _link.css │ │ │ │ ├── _logo.css │ │ │ │ ├── _meetup-cover.css │ │ │ │ ├── _meetup-description.css │ │ │ │ ├── _meetup-form.css │ │ │ │ ├── _meetup-info.css │ │ │ │ ├── _meetups-list.css │ │ │ │ ├── _nav.css │ │ │ │ ├── _page-auth.css │ │ │ │ ├── _page-meetup-form.css │ │ │ │ ├── _page-meetup.css │ │ │ │ ├── _page-meetups.css │ │ │ │ ├── _page_not-found.css │ │ │ │ ├── _progress.css │ │ │ │ ├── _radio-group.css │ │ │ │ ├── _tabs.css │ │ │ │ ├── _title.css │ │ │ │ ├── _toaster.css │ │ │ │ ├── _transitions.css │ │ │ │ ├── _variables.css │ │ │ │ └── index.css │ │ ├── components │ │ │ ├── MeetupCard.vue │ │ │ ├── MeetupsCalendar.vue │ │ │ ├── MeetupsList.vue │ │ │ ├── PageMeetups.vue │ │ │ ├── UiAlert.vue │ │ │ ├── UiBadge.vue │ │ │ ├── UiButtonGroup.vue │ │ │ ├── UiCard.vue │ │ │ ├── UiContainer.vue │ │ │ ├── UiIcon.vue │ │ │ └── UiRadioGroup.vue │ │ └── main.js │ └── vite.config.js └── 02-wrapper │ ├── .gitignore │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── public │ ├── favicon.ico │ └── index.html │ ├── src │ ├── App.vue │ ├── assets │ │ ├── fonts │ │ │ ├── Nunito-cyrillic-ext.woff2 │ │ │ ├── Nunito-cyrillic.woff2 │ │ │ ├── Nunito-latin-ext.woff2 │ │ │ └── Nunito-latin.woff2 │ │ ├── icons │ │ │ ├── icon-alert-circle.svg │ │ │ ├── icon-cal-lg.svg │ │ │ ├── icon-cal-sm.svg │ │ │ ├── icon-check-circle.svg │ │ │ ├── icon-check.svg │ │ │ ├── icon-chevron-down.svg │ │ │ ├── icon-clock.svg │ │ │ ├── icon-coffee.svg │ │ │ ├── icon-key.svg │ │ │ ├── icon-list.svg │ │ │ ├── icon-map.svg │ │ │ ├── icon-pen-tool.svg │ │ │ ├── icon-pill-active.svg │ │ │ ├── icon-search.svg │ │ │ ├── icon-trash.svg │ │ │ ├── icon-tv.svg │ │ │ └── icon-user.svg │ │ ├── images │ │ │ └── undraw_conference_speaker_6nt7.svg │ │ ├── logo.svg │ │ └── styles │ │ │ ├── _agenda-item-form.css │ │ │ ├── _agenda-item.css │ │ │ ├── _agenda.css │ │ │ ├── _alert.css │ │ │ ├── _avatar.css │ │ │ ├── _badge.css │ │ │ ├── _button-group.css │ │ │ ├── _button.css │ │ │ ├── _calendar-event.css │ │ │ ├── _calendar-view.css │ │ │ ├── _card.css │ │ │ ├── _checkbox.css │ │ │ ├── _common.css │ │ │ ├── _container.css │ │ │ ├── _dropdown.css │ │ │ ├── _fonts.css │ │ │ ├── _footer.css │ │ │ ├── _form-group.css │ │ │ ├── _form.css │ │ │ ├── _header.css │ │ │ ├── _icon.css │ │ │ ├── _image-uploader.css │ │ │ ├── _input-group.css │ │ │ ├── _layout.css │ │ │ ├── _link.css │ │ │ ├── _logo.css │ │ │ ├── _meetup-cover.css │ │ │ ├── _meetup-description.css │ │ │ ├── _meetup-form.css │ │ │ ├── _meetup-info.css │ │ │ ├── _meetups-list.css │ │ │ ├── _nav.css │ │ │ ├── _page-auth.css │ │ │ ├── _page-meetup-form.css │ │ │ ├── _page-meetup.css │ │ │ ├── _page-meetups.css │ │ │ ├── _page_not-found.css │ │ │ ├── _progress.css │ │ │ ├── _radio-group.css │ │ │ ├── _tabs.css │ │ │ ├── _title.css │ │ │ ├── _toaster.css │ │ │ ├── _transitions.css │ │ │ ├── _variables.css │ │ │ └── index.css │ ├── components │ │ ├── UiContainer.vue │ │ ├── UiIcon.vue │ │ ├── UiInput.vue │ │ └── UiInputNumber.vue │ └── main.js │ └── vite.config.js ├── 07-forms ├── 01-simple-form │ ├── .gitignore │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── src │ │ ├── App.vue │ │ ├── assets │ │ │ ├── fonts │ │ │ │ ├── Nunito-cyrillic-ext.woff2 │ │ │ │ ├── Nunito-cyrillic.woff2 │ │ │ │ ├── Nunito-latin-ext.woff2 │ │ │ │ └── Nunito-latin.woff2 │ │ │ ├── icons │ │ │ │ ├── icon-alert-circle.svg │ │ │ │ ├── icon-cal-lg.svg │ │ │ │ ├── icon-cal-sm.svg │ │ │ │ ├── icon-check-circle.svg │ │ │ │ ├── icon-check.svg │ │ │ │ ├── icon-chevron-down.svg │ │ │ │ ├── icon-clock.svg │ │ │ │ ├── icon-coffee.svg │ │ │ │ ├── icon-key.svg │ │ │ │ ├── icon-list.svg │ │ │ │ ├── icon-map.svg │ │ │ │ ├── icon-pen-tool.svg │ │ │ │ ├── icon-pill-active.svg │ │ │ │ ├── icon-search.svg │ │ │ │ ├── icon-trash.svg │ │ │ │ ├── icon-tv.svg │ │ │ │ └── icon-user.svg │ │ │ ├── images │ │ │ │ └── undraw_conference_speaker_6nt7.svg │ │ │ ├── logo.svg │ │ │ └── styles │ │ │ │ ├── _agenda-item-form.css │ │ │ │ ├── _agenda-item.css │ │ │ │ ├── _agenda.css │ │ │ │ ├── _alert.css │ │ │ │ ├── _avatar.css │ │ │ │ ├── _badge.css │ │ │ │ ├── _button-group.css │ │ │ │ ├── _button.css │ │ │ │ ├── _calendar-event.css │ │ │ │ ├── _calendar-view.css │ │ │ │ ├── _card.css │ │ │ │ ├── _checkbox.css │ │ │ │ ├── _common.css │ │ │ │ ├── _container.css │ │ │ │ ├── _dropdown.css │ │ │ │ ├── _fonts.css │ │ │ │ ├── _footer.css │ │ │ │ ├── _form-group.css │ │ │ │ ├── _form.css │ │ │ │ ├── _header.css │ │ │ │ ├── _icon.css │ │ │ │ ├── _image-uploader.css │ │ │ │ ├── _input-group.css │ │ │ │ ├── _layout.css │ │ │ │ ├── _link.css │ │ │ │ ├── _logo.css │ │ │ │ ├── _meetup-cover.css │ │ │ │ ├── _meetup-description.css │ │ │ │ ├── _meetup-form.css │ │ │ │ ├── _meetup-info.css │ │ │ │ ├── _meetups-list.css │ │ │ │ ├── _nav.css │ │ │ │ ├── _page-auth.css │ │ │ │ ├── _page-meetup-form.css │ │ │ │ ├── _page-meetup.css │ │ │ │ ├── _page-meetups.css │ │ │ │ ├── _page_not-found.css │ │ │ │ ├── _progress.css │ │ │ │ ├── _radio-group.css │ │ │ │ ├── _tabs.css │ │ │ │ ├── _title.css │ │ │ │ ├── _toaster.css │ │ │ │ ├── _transitions.css │ │ │ │ ├── _variables.css │ │ │ │ ├── app.css │ │ │ │ └── index.css │ │ ├── components │ │ │ ├── MeetupAgendaItemForm.vue │ │ │ ├── MeetupForm.vue │ │ │ ├── UiContainer.vue │ │ │ └── UiIcon.vue │ │ └── main.js │ └── vite.config.js ├── 02-local-prop-submit │ ├── .gitignore │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── src │ │ ├── App.vue │ │ ├── assets │ │ │ ├── fonts │ │ │ │ ├── Nunito-cyrillic-ext.woff2 │ │ │ │ ├── Nunito-cyrillic.woff2 │ │ │ │ ├── Nunito-latin-ext.woff2 │ │ │ │ └── Nunito-latin.woff2 │ │ │ ├── icons │ │ │ │ ├── icon-alert-circle.svg │ │ │ │ ├── icon-cal-lg.svg │ │ │ │ ├── icon-cal-sm.svg │ │ │ │ ├── icon-check-circle.svg │ │ │ │ ├── icon-check.svg │ │ │ │ ├── icon-chevron-down.svg │ │ │ │ ├── icon-clock.svg │ │ │ │ ├── icon-coffee.svg │ │ │ │ ├── icon-key.svg │ │ │ │ ├── icon-list.svg │ │ │ │ ├── icon-map.svg │ │ │ │ ├── icon-pen-tool.svg │ │ │ │ ├── icon-pill-active.svg │ │ │ │ ├── icon-search.svg │ │ │ │ ├── icon-trash.svg │ │ │ │ ├── icon-tv.svg │ │ │ │ └── icon-user.svg │ │ │ ├── images │ │ │ │ └── undraw_conference_speaker_6nt7.svg │ │ │ ├── logo.svg │ │ │ └── styles │ │ │ │ ├── _agenda-item-form.css │ │ │ │ ├── _agenda-item.css │ │ │ │ ├── _agenda.css │ │ │ │ ├── _alert.css │ │ │ │ ├── _avatar.css │ │ │ │ ├── _badge.css │ │ │ │ ├── _button-group.css │ │ │ │ ├── _button.css │ │ │ │ ├── _calendar-event.css │ │ │ │ ├── _calendar-view.css │ │ │ │ ├── _card.css │ │ │ │ ├── _checkbox.css │ │ │ │ ├── _common.css │ │ │ │ ├── _container.css │ │ │ │ ├── _dropdown.css │ │ │ │ ├── _fonts.css │ │ │ │ ├── _footer.css │ │ │ │ ├── _form-group.css │ │ │ │ ├── _form.css │ │ │ │ ├── _header.css │ │ │ │ ├── _icon.css │ │ │ │ ├── _image-uploader.css │ │ │ │ ├── _input-group.css │ │ │ │ ├── _layout.css │ │ │ │ ├── _link.css │ │ │ │ ├── _logo.css │ │ │ │ ├── _meetup-cover.css │ │ │ │ ├── _meetup-description.css │ │ │ │ ├── _meetup-form.css │ │ │ │ ├── _meetup-info.css │ │ │ │ ├── _meetups-list.css │ │ │ │ ├── _nav.css │ │ │ │ ├── _page-auth.css │ │ │ │ ├── _page-meetup-form.css │ │ │ │ ├── _page-meetup.css │ │ │ │ ├── _page-meetups.css │ │ │ │ ├── _page_not-found.css │ │ │ │ ├── _progress.css │ │ │ │ ├── _radio-group.css │ │ │ │ ├── _tabs.css │ │ │ │ ├── _title.css │ │ │ │ ├── _toaster.css │ │ │ │ ├── _transitions.css │ │ │ │ ├── _variables.css │ │ │ │ ├── app.css │ │ │ │ └── index.css │ │ ├── components │ │ │ ├── MeetupAgendaItemForm.vue │ │ │ ├── MeetupForm.vue │ │ │ ├── UiContainer.vue │ │ │ └── UiIcon.vue │ │ └── main.js │ └── vite.config.js ├── 03-one-way-sync │ ├── .gitignore │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── src │ │ ├── App.vue │ │ ├── assets │ │ │ ├── fonts │ │ │ │ ├── Nunito-cyrillic-ext.woff2 │ │ │ │ ├── Nunito-cyrillic.woff2 │ │ │ │ ├── Nunito-latin-ext.woff2 │ │ │ │ └── Nunito-latin.woff2 │ │ │ ├── icons │ │ │ │ ├── icon-alert-circle.svg │ │ │ │ ├── icon-cal-lg.svg │ │ │ │ ├── icon-cal-sm.svg │ │ │ │ ├── icon-check-circle.svg │ │ │ │ ├── icon-check.svg │ │ │ │ ├── icon-chevron-down.svg │ │ │ │ ├── icon-clock.svg │ │ │ │ ├── icon-coffee.svg │ │ │ │ ├── icon-key.svg │ │ │ │ ├── icon-list.svg │ │ │ │ ├── icon-map.svg │ │ │ │ ├── icon-pen-tool.svg │ │ │ │ ├── icon-pill-active.svg │ │ │ │ ├── icon-search.svg │ │ │ │ ├── icon-trash.svg │ │ │ │ ├── icon-tv.svg │ │ │ │ └── icon-user.svg │ │ │ ├── images │ │ │ │ └── undraw_conference_speaker_6nt7.svg │ │ │ ├── logo.svg │ │ │ └── styles │ │ │ │ ├── _agenda-item-form.css │ │ │ │ ├── _agenda-item.css │ │ │ │ ├── _agenda.css │ │ │ │ ├── _alert.css │ │ │ │ ├── _avatar.css │ │ │ │ ├── _badge.css │ │ │ │ ├── _button-group.css │ │ │ │ ├── _button.css │ │ │ │ ├── _calendar-event.css │ │ │ │ ├── _calendar-view.css │ │ │ │ ├── _card.css │ │ │ │ ├── _checkbox.css │ │ │ │ ├── _common.css │ │ │ │ ├── _container.css │ │ │ │ ├── _dropdown.css │ │ │ │ ├── _fonts.css │ │ │ │ ├── _footer.css │ │ │ │ ├── _form-group.css │ │ │ │ ├── _form.css │ │ │ │ ├── _header.css │ │ │ │ ├── _icon.css │ │ │ │ ├── _image-uploader.css │ │ │ │ ├── _input-group.css │ │ │ │ ├── _layout.css │ │ │ │ ├── _link.css │ │ │ │ ├── _logo.css │ │ │ │ ├── _meetup-cover.css │ │ │ │ ├── _meetup-description.css │ │ │ │ ├── _meetup-form.css │ │ │ │ ├── _meetup-info.css │ │ │ │ ├── _meetups-list.css │ │ │ │ ├── _nav.css │ │ │ │ ├── _page-auth.css │ │ │ │ ├── _page-meetup-form.css │ │ │ │ ├── _page-meetup.css │ │ │ │ ├── _page-meetups.css │ │ │ │ ├── _page_not-found.css │ │ │ │ ├── _progress.css │ │ │ │ ├── _radio-group.css │ │ │ │ ├── _tabs.css │ │ │ │ ├── _title.css │ │ │ │ ├── _toaster.css │ │ │ │ ├── _transitions.css │ │ │ │ ├── _variables.css │ │ │ │ ├── app.css │ │ │ │ ├── index.css │ │ │ │ └── taskbook.css │ │ ├── components │ │ │ ├── MeetupAgendaItemForm.vue │ │ │ ├── MeetupForm.vue │ │ │ ├── UiContainer.vue │ │ │ └── UiIcon.vue │ │ └── main.js │ └── vite.config.js ├── 04-two-way-sync │ ├── .gitignore │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── src │ │ ├── App.vue │ │ ├── assets │ │ │ ├── fonts │ │ │ │ ├── Nunito-cyrillic-ext.woff2 │ │ │ │ ├── Nunito-cyrillic.woff2 │ │ │ │ ├── Nunito-latin-ext.woff2 │ │ │ │ └── Nunito-latin.woff2 │ │ │ ├── icons │ │ │ │ ├── icon-alert-circle.svg │ │ │ │ ├── icon-cal-lg.svg │ │ │ │ ├── icon-cal-sm.svg │ │ │ │ ├── icon-check-circle.svg │ │ │ │ ├── icon-check.svg │ │ │ │ ├── icon-chevron-down.svg │ │ │ │ ├── icon-clock.svg │ │ │ │ ├── icon-coffee.svg │ │ │ │ ├── icon-key.svg │ │ │ │ ├── icon-list.svg │ │ │ │ ├── icon-map.svg │ │ │ │ ├── icon-pen-tool.svg │ │ │ │ ├── icon-pill-active.svg │ │ │ │ ├── icon-search.svg │ │ │ │ ├── icon-trash.svg │ │ │ │ ├── icon-tv.svg │ │ │ │ └── icon-user.svg │ │ │ ├── images │ │ │ │ └── undraw_conference_speaker_6nt7.svg │ │ │ ├── logo.svg │ │ │ └── styles │ │ │ │ ├── _agenda-item-form.css │ │ │ │ ├── _agenda-item.css │ │ │ │ ├── _agenda.css │ │ │ │ ├── _alert.css │ │ │ │ ├── _avatar.css │ │ │ │ ├── _badge.css │ │ │ │ ├── _button-group.css │ │ │ │ ├── _button.css │ │ │ │ ├── _calendar-event.css │ │ │ │ ├── _calendar-view.css │ │ │ │ ├── _card.css │ │ │ │ ├── _checkbox.css │ │ │ │ ├── _common.css │ │ │ │ ├── _container.css │ │ │ │ ├── _dropdown.css │ │ │ │ ├── _fonts.css │ │ │ │ ├── _footer.css │ │ │ │ ├── _form-group.css │ │ │ │ ├── _form.css │ │ │ │ ├── _header.css │ │ │ │ ├── _icon.css │ │ │ │ ├── _image-uploader.css │ │ │ │ ├── _input-group.css │ │ │ │ ├── _layout.css │ │ │ │ ├── _link.css │ │ │ │ ├── _logo.css │ │ │ │ ├── _meetup-cover.css │ │ │ │ ├── _meetup-description.css │ │ │ │ ├── _meetup-form.css │ │ │ │ ├── _meetup-info.css │ │ │ │ ├── _meetups-list.css │ │ │ │ ├── _nav.css │ │ │ │ ├── _page-auth.css │ │ │ │ ├── _page-meetup-form.css │ │ │ │ ├── _page-meetup.css │ │ │ │ ├── _page-meetups.css │ │ │ │ ├── _page_not-found.css │ │ │ │ ├── _progress.css │ │ │ │ ├── _radio-group.css │ │ │ │ ├── _tabs.css │ │ │ │ ├── _title.css │ │ │ │ ├── _toaster.css │ │ │ │ ├── _transitions.css │ │ │ │ ├── _variables.css │ │ │ │ ├── app.css │ │ │ │ ├── index.css │ │ │ │ └── taskbook.css │ │ ├── components │ │ │ ├── MeetupAgendaItemForm.vue │ │ │ ├── MeetupForm.vue │ │ │ ├── UiContainer.vue │ │ │ └── UiIcon.vue │ │ └── main.js │ └── vite.config.js └── 05-key-value-setter │ ├── .gitignore │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── src │ ├── App.vue │ ├── assets │ │ ├── fonts │ │ │ ├── Nunito-cyrillic-ext.woff2 │ │ │ ├── Nunito-cyrillic.woff2 │ │ │ ├── Nunito-latin-ext.woff2 │ │ │ └── Nunito-latin.woff2 │ │ ├── icons │ │ │ ├── icon-alert-circle.svg │ │ │ ├── icon-cal-lg.svg │ │ │ ├── icon-cal-sm.svg │ │ │ ├── icon-check-circle.svg │ │ │ ├── icon-check.svg │ │ │ ├── icon-chevron-down.svg │ │ │ ├── icon-clock.svg │ │ │ ├── icon-coffee.svg │ │ │ ├── icon-key.svg │ │ │ ├── icon-list.svg │ │ │ ├── icon-map.svg │ │ │ ├── icon-pen-tool.svg │ │ │ ├── icon-pill-active.svg │ │ │ ├── icon-search.svg │ │ │ ├── icon-trash.svg │ │ │ ├── icon-tv.svg │ │ │ └── icon-user.svg │ │ ├── images │ │ │ └── undraw_conference_speaker_6nt7.svg │ │ ├── logo.svg │ │ └── styles │ │ │ ├── _agenda-item-form.css │ │ │ ├── _agenda-item.css │ │ │ ├── _agenda.css │ │ │ ├── _alert.css │ │ │ ├── _avatar.css │ │ │ ├── _badge.css │ │ │ ├── _button-group.css │ │ │ ├── _button.css │ │ │ ├── _calendar-event.css │ │ │ ├── _calendar-view.css │ │ │ ├── _card.css │ │ │ ├── _checkbox.css │ │ │ ├── _common.css │ │ │ ├── _container.css │ │ │ ├── _dropdown.css │ │ │ ├── _fonts.css │ │ │ ├── _footer.css │ │ │ ├── _form-group.css │ │ │ ├── _form.css │ │ │ ├── _header.css │ │ │ ├── _icon.css │ │ │ ├── _image-uploader.css │ │ │ ├── _input-group.css │ │ │ ├── _layout.css │ │ │ ├── _link.css │ │ │ ├── _logo.css │ │ │ ├── _meetup-cover.css │ │ │ ├── _meetup-description.css │ │ │ ├── _meetup-form.css │ │ │ ├── _meetup-info.css │ │ │ ├── _meetups-list.css │ │ │ ├── _nav.css │ │ │ ├── _page-auth.css │ │ │ ├── _page-meetup-form.css │ │ │ ├── _page-meetup.css │ │ │ ├── _page-meetups.css │ │ │ ├── _page_not-found.css │ │ │ ├── _progress.css │ │ │ ├── _radio-group.css │ │ │ ├── _tabs.css │ │ │ ├── _title.css │ │ │ ├── _toaster.css │ │ │ ├── _transitions.css │ │ │ ├── _variables.css │ │ │ ├── app.css │ │ │ └── index.css │ ├── components │ │ ├── MeetupAgendaItemForm.vue │ │ ├── MeetupForm.vue │ │ ├── UiContainer.vue │ │ └── UiIcon.vue │ └── main.js │ └── vite.config.js ├── 08-reactivity ├── 01-vue3 │ ├── index.html │ ├── script.js │ └── vendor │ │ └── vue.esm-browser.js └── 02-vue2 │ ├── index.html │ ├── script.js │ └── vendor │ └── vue2.esm.browser.js ├── 09-rendering ├── 01-key │ ├── CanvasText.js │ ├── CounterButton.js │ ├── InputWithoutBinding.js │ ├── ListItem.js │ ├── ListItemWithCounterButton.js │ ├── SlowListItem.js │ ├── index.html │ ├── script.js │ └── vendor │ │ └── vue.esm-browser.js ├── 02-render-function │ ├── .gitignore │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── src │ │ ├── App.vue │ │ ├── CounterButton.vue │ │ ├── FieldsetComponent.vue │ │ ├── TextDiv.vue │ │ └── main.js │ └── vite.config.js ├── 03-jsx │ ├── .gitignore │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── src │ │ ├── App.vue │ │ ├── CounterButton.vue │ │ ├── FieldsetComponent.vue │ │ ├── TextDiv.vue │ │ └── main.js │ └── vite.config.js └── 04-keep-alive │ ├── .gitignore │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── src │ ├── App.vue │ ├── api.js │ ├── assets │ │ ├── fonts │ │ │ ├── Nunito-cyrillic-ext.woff2 │ │ │ ├── Nunito-cyrillic.woff2 │ │ │ ├── Nunito-latin-ext.woff2 │ │ │ └── Nunito-latin.woff2 │ │ ├── icons │ │ │ ├── icon-alert-circle.svg │ │ │ ├── icon-cal-lg.svg │ │ │ ├── icon-cal-sm.svg │ │ │ ├── icon-check-circle.svg │ │ │ ├── icon-check.svg │ │ │ ├── icon-chevron-down.svg │ │ │ ├── icon-clock.svg │ │ │ ├── icon-coffee.svg │ │ │ ├── icon-key.svg │ │ │ ├── icon-list.svg │ │ │ ├── icon-map.svg │ │ │ ├── icon-pen-tool.svg │ │ │ ├── icon-pill-active.svg │ │ │ ├── icon-search.svg │ │ │ ├── icon-trash.svg │ │ │ ├── icon-tv.svg │ │ │ └── icon-user.svg │ │ ├── images │ │ │ └── undraw_conference_speaker_6nt7.svg │ │ ├── logo.svg │ │ └── styles │ │ │ ├── _agenda-item-form.css │ │ │ ├── _agenda-item.css │ │ │ ├── _agenda.css │ │ │ ├── _alert.css │ │ │ ├── _avatar.css │ │ │ ├── _badge.css │ │ │ ├── _button-group.css │ │ │ ├── _button.css │ │ │ ├── _calendar-event.css │ │ │ ├── _calendar-view.css │ │ │ ├── _card.css │ │ │ ├── _checkbox.css │ │ │ ├── _common.css │ │ │ ├── _container.css │ │ │ ├── _dropdown.css │ │ │ ├── _fonts.css │ │ │ ├── _footer.css │ │ │ ├── _form-group.css │ │ │ ├── _form.css │ │ │ ├── _header.css │ │ │ ├── _icon.css │ │ │ ├── _image-uploader.css │ │ │ ├── _input-group.css │ │ │ ├── _layout.css │ │ │ ├── _link.css │ │ │ ├── _logo.css │ │ │ ├── _meetup-cover.css │ │ │ ├── _meetup-description.css │ │ │ ├── _meetup-form.css │ │ │ ├── _meetup-info.css │ │ │ ├── _meetups-list.css │ │ │ ├── _nav.css │ │ │ ├── _page-auth.css │ │ │ ├── _page-meetup-form.css │ │ │ ├── _page-meetup.css │ │ │ ├── _page-meetups.css │ │ │ ├── _page_not-found.css │ │ │ ├── _progress.css │ │ │ ├── _radio-group.css │ │ │ ├── _tabs.css │ │ │ ├── _title.css │ │ │ ├── _toaster.css │ │ │ ├── _transitions.css │ │ │ ├── _variables.css │ │ │ ├── app.css │ │ │ └── index.css │ ├── components │ │ ├── MeetupCard.vue │ │ ├── MeetupsCalendar.vue │ │ ├── MeetupsFooter.vue │ │ ├── MeetupsHeader.vue │ │ ├── MeetupsList.vue │ │ ├── MeetupsLogo.vue │ │ ├── MeetupsNav.vue │ │ ├── UiAlert.vue │ │ ├── UiBadge.vue │ │ ├── UiButtonGroup.vue │ │ ├── UiCard.vue │ │ ├── UiContainer.vue │ │ ├── UiIcon.vue │ │ └── UiRadioGroup.vue │ ├── main.js │ ├── router │ │ └── index.js │ └── views │ │ ├── PageMeetup.vue │ │ ├── PageMeetupAgenda.vue │ │ ├── PageMeetupDescription.vue │ │ └── PageMeetups.vue │ └── vite.config.js ├── 10-slots ├── 01-render-item │ ├── .gitignore │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── src │ │ ├── App.vue │ │ ├── components │ │ │ └── ListView.vue │ │ └── main.js │ └── vite.config.js ├── 02-scoped-slots │ ├── .gitignore │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── src │ │ ├── App.vue │ │ ├── components │ │ │ └── ListView.vue │ │ └── main.js │ └── vite.config.js ├── 03-renderless-components │ ├── .gitignore │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── src │ │ ├── App.vue │ │ ├── components │ │ │ └── ListView.vue │ │ └── main.js │ └── vite.config.js └── 04-vue-router-slot │ ├── .gitignore │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── src │ ├── App.vue │ ├── api.js │ ├── assets │ │ ├── fonts │ │ │ ├── Nunito-cyrillic-ext.woff2 │ │ │ ├── Nunito-cyrillic.woff2 │ │ │ ├── Nunito-latin-ext.woff2 │ │ │ └── Nunito-latin.woff2 │ │ ├── icons │ │ │ ├── icon-alert-circle.svg │ │ │ ├── icon-cal-lg.svg │ │ │ ├── icon-cal-sm.svg │ │ │ ├── icon-check-circle.svg │ │ │ ├── icon-check.svg │ │ │ ├── icon-chevron-down.svg │ │ │ ├── icon-clock.svg │ │ │ ├── icon-coffee.svg │ │ │ ├── icon-key.svg │ │ │ ├── icon-list.svg │ │ │ ├── icon-map.svg │ │ │ ├── icon-pen-tool.svg │ │ │ ├── icon-pill-active.svg │ │ │ ├── icon-search.svg │ │ │ ├── icon-trash.svg │ │ │ ├── icon-tv.svg │ │ │ └── icon-user.svg │ │ ├── images │ │ │ └── undraw_conference_speaker_6nt7.svg │ │ ├── logo.svg │ │ └── styles │ │ │ ├── _agenda-item-form.css │ │ │ ├── _agenda-item.css │ │ │ ├── _agenda.css │ │ │ ├── _alert.css │ │ │ ├── _avatar.css │ │ │ ├── _badge.css │ │ │ ├── _button-group.css │ │ │ ├── _button.css │ │ │ ├── _calendar-event.css │ │ │ ├── _calendar-view.css │ │ │ ├── _card.css │ │ │ ├── _checkbox.css │ │ │ ├── _common.css │ │ │ ├── _container.css │ │ │ ├── _dropdown.css │ │ │ ├── _fonts.css │ │ │ ├── _footer.css │ │ │ ├── _form-group.css │ │ │ ├── _form.css │ │ │ ├── _header.css │ │ │ ├── _icon.css │ │ │ ├── _image-uploader.css │ │ │ ├── _input-group.css │ │ │ ├── _layout.css │ │ │ ├── _link.css │ │ │ ├── _logo.css │ │ │ ├── _meetup-cover.css │ │ │ ├── _meetup-description.css │ │ │ ├── _meetup-form.css │ │ │ ├── _meetup-info.css │ │ │ ├── _meetups-list.css │ │ │ ├── _nav.css │ │ │ ├── _page-auth.css │ │ │ ├── _page-meetup-form.css │ │ │ ├── _page-meetup.css │ │ │ ├── _page-meetups.css │ │ │ ├── _page_not-found.css │ │ │ ├── _progress.css │ │ │ ├── _radio-group.css │ │ │ ├── _tabs.css │ │ │ ├── _title.css │ │ │ ├── _toaster.css │ │ │ ├── _transitions.css │ │ │ ├── _variables.css │ │ │ ├── app.css │ │ │ └── index.css │ ├── components │ │ ├── MeetupCard.vue │ │ ├── MeetupsCalendar.vue │ │ ├── MeetupsFooter.vue │ │ ├── MeetupsHeader.vue │ │ ├── MeetupsList.vue │ │ ├── MeetupsLogo.vue │ │ ├── MeetupsNav.vue │ │ ├── UiAlert.vue │ │ ├── UiBadge.vue │ │ ├── UiButtonGroup.vue │ │ ├── UiCard.vue │ │ ├── UiContainer.vue │ │ ├── UiIcon.vue │ │ └── UiRadioGroup.vue │ ├── main.js │ ├── router │ │ └── index.js │ └── views │ │ ├── PageMeetup.vue │ │ ├── PageMeetupAgenda.vue │ │ ├── PageMeetupDescription.vue │ │ └── PageMeetups.vue │ └── vite.config.js ├── 11-communication ├── 01-parent-container │ ├── .gitignore │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── public │ │ └── favicon.ico │ ├── src │ │ ├── App.vue │ │ ├── assets │ │ │ ├── fonts │ │ │ │ ├── Nunito-cyrillic-ext.woff2 │ │ │ │ ├── Nunito-cyrillic.woff2 │ │ │ │ ├── Nunito-latin-ext.woff2 │ │ │ │ └── Nunito-latin.woff2 │ │ │ ├── icons │ │ │ │ ├── icon-alert-circle.svg │ │ │ │ ├── icon-cal-lg.svg │ │ │ │ ├── icon-cal-sm.svg │ │ │ │ ├── icon-check-circle.svg │ │ │ │ ├── icon-check.svg │ │ │ │ ├── icon-chevron-down.svg │ │ │ │ ├── icon-clock.svg │ │ │ │ ├── icon-coffee.svg │ │ │ │ ├── icon-key.svg │ │ │ │ ├── icon-list.svg │ │ │ │ ├── icon-map.svg │ │ │ │ ├── icon-pen-tool.svg │ │ │ │ ├── icon-pill-active.svg │ │ │ │ ├── icon-search.svg │ │ │ │ ├── icon-trash.svg │ │ │ │ ├── icon-tv.svg │ │ │ │ └── icon-user.svg │ │ │ ├── logo.svg │ │ │ └── styles │ │ │ │ ├── _agenda-item-form.css │ │ │ │ ├── _agenda-item.css │ │ │ │ ├── _agenda.css │ │ │ │ ├── _alert.css │ │ │ │ ├── _avatar.css │ │ │ │ ├── _badge.css │ │ │ │ ├── _button-group.css │ │ │ │ ├── _button.css │ │ │ │ ├── _calendar-event.css │ │ │ │ ├── _calendar-view.css │ │ │ │ ├── _card.css │ │ │ │ ├── _checkbox.css │ │ │ │ ├── _common.css │ │ │ │ ├── _container.css │ │ │ │ ├── _dropdown.css │ │ │ │ ├── _fonts.css │ │ │ │ ├── _footer.css │ │ │ │ ├── _form-group.css │ │ │ │ ├── _form.css │ │ │ │ ├── _header.css │ │ │ │ ├── _icon.css │ │ │ │ ├── _image-uploader.css │ │ │ │ ├── _input-group.css │ │ │ │ ├── _layout.css │ │ │ │ ├── _link.css │ │ │ │ ├── _logo.css │ │ │ │ ├── _meetup-cover.css │ │ │ │ ├── _meetup-description.css │ │ │ │ ├── _meetup-form.css │ │ │ │ ├── _meetup-info.css │ │ │ │ ├── _meetups-list.css │ │ │ │ ├── _nav.css │ │ │ │ ├── _page-auth.css │ │ │ │ ├── _page-meetup-form.css │ │ │ │ ├── _page-meetups.css │ │ │ │ ├── _page_not-found.css │ │ │ │ ├── _progress.css │ │ │ │ ├── _radio-group.css │ │ │ │ ├── _tabs.css │ │ │ │ ├── _title.css │ │ │ │ ├── _toaster.css │ │ │ │ ├── _transitions.css │ │ │ │ ├── _variables.css │ │ │ │ └── index.css │ │ ├── components │ │ │ ├── UiAccordion.vue │ │ │ └── UiAccordionItem.vue │ │ └── main.js │ └── vite.config.js ├── 03-root │ ├── App.js │ ├── IndexPage.js │ ├── SubPage.js │ ├── TheToaster.js │ ├── index.html │ ├── script.js │ └── vendor │ │ └── vue.esm-browser.js ├── 04-bus │ ├── App.js │ ├── IndexPage.js │ ├── SubPage.js │ ├── TheToaster.js │ ├── eventBus.js │ ├── index.html │ ├── script.js │ └── vendor │ │ ├── mitt.es.js │ │ └── vue.esm-browser.js ├── 05-instance │ ├── App.js │ ├── IndexPage.js │ ├── SubPage.js │ ├── TheToaster.js │ ├── index.html │ ├── script.js │ ├── toaster.js │ └── vendor │ │ └── vue.esm-browser.js ├── 06-global-properties │ ├── App.js │ ├── IndexPage.js │ ├── SubPage.js │ ├── TheToaster.js │ ├── index.html │ ├── script.js │ ├── toaster.js │ └── vendor │ │ └── vue.esm-browser.js ├── 07-provide-inject │ ├── App.js │ ├── IndexPage.js │ ├── SubPage.js │ ├── TheToaster.js │ ├── ToasterProvider.js │ ├── index.html │ ├── script.js │ ├── toaster.js │ └── vendor │ │ └── vue.esm-browser.js └── 08-teleport │ ├── App.js │ ├── IndexPage.js │ ├── SubPage.js │ ├── TheToaster.js │ ├── index.html │ ├── script.js │ └── vendor │ └── vue.esm-browser.js ├── 12-reusability ├── 01-directives │ ├── .gitignore │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── src │ │ ├── App.vue │ │ ├── directives │ │ │ └── selectOnFocus.js │ │ └── main.js │ └── vite.config.js ├── 02-plugins │ ├── .gitignore │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── src │ │ ├── App.vue │ │ ├── IndexPage.vue │ │ ├── SubPage.vue │ │ ├── assets │ │ │ ├── fonts │ │ │ │ ├── Nunito-cyrillic-ext.woff2 │ │ │ │ ├── Nunito-cyrillic.woff2 │ │ │ │ ├── Nunito-latin-ext.woff2 │ │ │ │ └── Nunito-latin.woff2 │ │ │ ├── icons │ │ │ │ ├── icon-alert-circle.svg │ │ │ │ ├── icon-cal-lg.svg │ │ │ │ ├── icon-cal-sm.svg │ │ │ │ ├── icon-check-circle.svg │ │ │ │ ├── icon-check.svg │ │ │ │ ├── icon-chevron-down.svg │ │ │ │ ├── icon-clock.svg │ │ │ │ ├── icon-coffee.svg │ │ │ │ ├── icon-key.svg │ │ │ │ ├── icon-list.svg │ │ │ │ ├── icon-map.svg │ │ │ │ ├── icon-pen-tool.svg │ │ │ │ ├── icon-pill-active.svg │ │ │ │ ├── icon-search.svg │ │ │ │ ├── icon-trash.svg │ │ │ │ ├── icon-tv.svg │ │ │ │ └── icon-user.svg │ │ │ ├── images │ │ │ │ └── undraw_conference_speaker_6nt7.svg │ │ │ ├── logo.svg │ │ │ └── styles │ │ │ │ ├── _agenda-item-form.css │ │ │ │ ├── _agenda-item.css │ │ │ │ ├── _agenda.css │ │ │ │ ├── _alert.css │ │ │ │ ├── _avatar.css │ │ │ │ ├── _badge.css │ │ │ │ ├── _button-group.css │ │ │ │ ├── _button.css │ │ │ │ ├── _calendar-event.css │ │ │ │ ├── _calendar-view.css │ │ │ │ ├── _card.css │ │ │ │ ├── _checkbox.css │ │ │ │ ├── _common.css │ │ │ │ ├── _container.css │ │ │ │ ├── _dropdown.css │ │ │ │ ├── _fonts.css │ │ │ │ ├── _footer.css │ │ │ │ ├── _form-group.css │ │ │ │ ├── _form.css │ │ │ │ ├── _header.css │ │ │ │ ├── _icon.css │ │ │ │ ├── _image-uploader.css │ │ │ │ ├── _input-group.css │ │ │ │ ├── _layout.css │ │ │ │ ├── _link.css │ │ │ │ ├── _logo.css │ │ │ │ ├── _meetup-cover.css │ │ │ │ ├── _meetup-description.css │ │ │ │ ├── _meetup-form.css │ │ │ │ ├── _meetup-info.css │ │ │ │ ├── _meetups-list.css │ │ │ │ ├── _nav.css │ │ │ │ ├── _page-auth.css │ │ │ │ ├── _page-meetup-form.css │ │ │ │ ├── _page-meetup.css │ │ │ │ ├── _page-meetups.css │ │ │ │ ├── _page_not-found.css │ │ │ │ ├── _progress.css │ │ │ │ ├── _radio-group.css │ │ │ │ ├── _tabs.css │ │ │ │ ├── _title.css │ │ │ │ ├── _toaster.css │ │ │ │ ├── _transitions.css │ │ │ │ ├── _variables.css │ │ │ │ ├── app.css │ │ │ │ └── index.css │ │ ├── main.js │ │ └── plugins │ │ │ └── toaster │ │ │ ├── TheToaster.vue │ │ │ └── index.js │ └── vite.config.js ├── 03-create-plugin │ ├── .gitignore │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── src │ │ ├── App.vue │ │ ├── IndexPage.vue │ │ ├── SubPage.vue │ │ ├── assets │ │ │ ├── fonts │ │ │ │ ├── Nunito-cyrillic-ext.woff2 │ │ │ │ ├── Nunito-cyrillic.woff2 │ │ │ │ ├── Nunito-latin-ext.woff2 │ │ │ │ └── Nunito-latin.woff2 │ │ │ ├── icons │ │ │ │ ├── icon-alert-circle.svg │ │ │ │ ├── icon-cal-lg.svg │ │ │ │ ├── icon-cal-sm.svg │ │ │ │ ├── icon-check-circle.svg │ │ │ │ ├── icon-check.svg │ │ │ │ ├── icon-chevron-down.svg │ │ │ │ ├── icon-clock.svg │ │ │ │ ├── icon-coffee.svg │ │ │ │ ├── icon-key.svg │ │ │ │ ├── icon-list.svg │ │ │ │ ├── icon-map.svg │ │ │ │ ├── icon-pen-tool.svg │ │ │ │ ├── icon-pill-active.svg │ │ │ │ ├── icon-search.svg │ │ │ │ ├── icon-trash.svg │ │ │ │ ├── icon-tv.svg │ │ │ │ └── icon-user.svg │ │ │ ├── images │ │ │ │ └── undraw_conference_speaker_6nt7.svg │ │ │ ├── logo.svg │ │ │ └── styles │ │ │ │ ├── _agenda-item-form.css │ │ │ │ ├── _agenda-item.css │ │ │ │ ├── _agenda.css │ │ │ │ ├── _alert.css │ │ │ │ ├── _avatar.css │ │ │ │ ├── _badge.css │ │ │ │ ├── _button-group.css │ │ │ │ ├── _button.css │ │ │ │ ├── _calendar-event.css │ │ │ │ ├── _calendar-view.css │ │ │ │ ├── _card.css │ │ │ │ ├── _checkbox.css │ │ │ │ ├── _common.css │ │ │ │ ├── _container.css │ │ │ │ ├── _dropdown.css │ │ │ │ ├── _fonts.css │ │ │ │ ├── _footer.css │ │ │ │ ├── _form-group.css │ │ │ │ ├── _form.css │ │ │ │ ├── _header.css │ │ │ │ ├── _icon.css │ │ │ │ ├── _image-uploader.css │ │ │ │ ├── _input-group.css │ │ │ │ ├── _layout.css │ │ │ │ ├── _link.css │ │ │ │ ├── _logo.css │ │ │ │ ├── _meetup-cover.css │ │ │ │ ├── _meetup-description.css │ │ │ │ ├── _meetup-form.css │ │ │ │ ├── _meetup-info.css │ │ │ │ ├── _meetups-list.css │ │ │ │ ├── _nav.css │ │ │ │ ├── _page-auth.css │ │ │ │ ├── _page-meetup-form.css │ │ │ │ ├── _page-meetup.css │ │ │ │ ├── _page-meetups.css │ │ │ │ ├── _page_not-found.css │ │ │ │ ├── _progress.css │ │ │ │ ├── _radio-group.css │ │ │ │ ├── _tabs.css │ │ │ │ ├── _title.css │ │ │ │ ├── _toaster.css │ │ │ │ ├── _transitions.css │ │ │ │ ├── _variables.css │ │ │ │ ├── app.css │ │ │ │ └── index.css │ │ ├── main.js │ │ ├── plugins │ │ │ └── toaster │ │ │ │ ├── TheToaster.vue │ │ │ │ └── index.js │ │ └── toaster.js │ └── vite.config.js ├── 04-modules │ ├── App.js │ ├── UiInput.js │ ├── UserForm.js │ ├── index.html │ ├── plugins │ │ └── toaster │ │ │ ├── TheToaster.js │ │ │ └── index.js │ ├── script.js │ ├── toaster.js │ ├── utils │ │ ├── createLocalPropOptions.js │ │ ├── createModelProxy.js │ │ ├── dateFormatters.js │ │ ├── isMobile.js │ │ └── throttle.js │ └── vendor │ │ └── vue.esm-browser.js ├── 05-mixins │ ├── App.js │ ├── UiInput.js │ ├── UserForm.js │ ├── index.html │ ├── mixins │ │ ├── createLocalPropMixin.js │ │ ├── dateFormattersMixin.js │ │ ├── isMobileMixin.js │ │ ├── modelProxyMixin.js │ │ ├── resizeObserverMixin.js │ │ └── throttleMixin.js │ ├── plugins │ │ └── toaster │ │ │ ├── TheToaster.js │ │ │ └── index.js │ ├── script.js │ ├── toaster.js │ ├── utils │ │ └── throttle.js │ └── vendor │ │ └── vue.esm-browser.js └── 06-decomposition │ ├── .gitignore │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── public │ ├── api │ │ └── meetups.json │ └── favicon.ico │ ├── src │ ├── App.vue │ ├── api.js │ ├── assets │ │ ├── base.css │ │ ├── fonts │ │ │ ├── Nunito-cyrillic-ext.woff2 │ │ │ ├── Nunito-cyrillic.woff2 │ │ │ ├── Nunito-latin-ext.woff2 │ │ │ └── Nunito-latin.woff2 │ │ ├── icons │ │ │ ├── icon-alert-circle.svg │ │ │ ├── icon-cal-lg.svg │ │ │ ├── icon-cal-sm.svg │ │ │ ├── icon-check-circle.svg │ │ │ ├── icon-check.svg │ │ │ ├── icon-chevron-down.svg │ │ │ ├── icon-clock.svg │ │ │ ├── icon-coffee.svg │ │ │ ├── icon-key.svg │ │ │ ├── icon-list.svg │ │ │ ├── icon-map.svg │ │ │ ├── icon-pen-tool.svg │ │ │ ├── icon-pill-active.svg │ │ │ ├── icon-search.svg │ │ │ ├── icon-trash.svg │ │ │ ├── icon-tv.svg │ │ │ └── icon-user.svg │ │ ├── images │ │ │ └── undraw_conference_speaker_6nt7.svg │ │ ├── logo.svg │ │ └── styles │ │ │ ├── _agenda-item-form.css │ │ │ ├── _agenda-item.css │ │ │ ├── _agenda.css │ │ │ ├── _alert.css │ │ │ ├── _avatar.css │ │ │ ├── _badge.css │ │ │ ├── _button-group.css │ │ │ ├── _button.css │ │ │ ├── _calendar-event.css │ │ │ ├── _calendar-view.css │ │ │ ├── _card.css │ │ │ ├── _checkbox.css │ │ │ ├── _common.css │ │ │ ├── _container.css │ │ │ ├── _dropdown.css │ │ │ ├── _fonts.css │ │ │ ├── _footer.css │ │ │ ├── _form-group.css │ │ │ ├── _form.css │ │ │ ├── _header.css │ │ │ ├── _icon.css │ │ │ ├── _image-uploader.css │ │ │ ├── _input-group.css │ │ │ ├── _layout.css │ │ │ ├── _link.css │ │ │ ├── _logo.css │ │ │ ├── _meetup-cover.css │ │ │ ├── _meetup-description.css │ │ │ ├── _meetup-form.css │ │ │ ├── _meetup-info.css │ │ │ ├── _meetups-list.css │ │ │ ├── _nav.css │ │ │ ├── _page-auth.css │ │ │ ├── _page-meetup-form.css │ │ │ ├── _page-meetup.css │ │ │ ├── _page-meetups.css │ │ │ ├── _page_not-found.css │ │ │ ├── _progress.css │ │ │ ├── _radio-group.css │ │ │ ├── _tabs.css │ │ │ ├── _title.css │ │ │ ├── _toaster.css │ │ │ ├── _transitions.css │ │ │ ├── _variables.css │ │ │ ├── app.css │ │ │ ├── index.css │ │ │ └── taskbook.css │ ├── components │ │ ├── MeetupCard.vue │ │ ├── MeetupsCalendar.vue │ │ ├── MeetupsList.vue │ │ ├── PageMeetups.vue │ │ ├── UiAlert.vue │ │ ├── UiBadge.vue │ │ ├── UiButtonGroup.vue │ │ ├── UiCard.vue │ │ ├── UiContainer.vue │ │ ├── UiIcon.vue │ │ └── UiRadioGroup.vue │ ├── main.js │ └── mixins │ │ ├── pageMeetupsFetch.js │ │ └── pageMeetupsFilter.js │ └── vite.config.js ├── 13-composition ├── 01-composition-api │ ├── .gitignore │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── public │ │ ├── api │ │ │ └── meetups.json │ │ └── favicon.ico │ ├── src │ │ ├── App.vue │ │ ├── api.js │ │ ├── assets │ │ │ ├── base.css │ │ │ ├── fonts │ │ │ │ ├── Nunito-cyrillic-ext.woff2 │ │ │ │ ├── Nunito-cyrillic.woff2 │ │ │ │ ├── Nunito-latin-ext.woff2 │ │ │ │ └── Nunito-latin.woff2 │ │ │ ├── icons │ │ │ │ ├── icon-alert-circle.svg │ │ │ │ ├── icon-cal-lg.svg │ │ │ │ ├── icon-cal-sm.svg │ │ │ │ ├── icon-check-circle.svg │ │ │ │ ├── icon-check.svg │ │ │ │ ├── icon-chevron-down.svg │ │ │ │ ├── icon-clock.svg │ │ │ │ ├── icon-coffee.svg │ │ │ │ ├── icon-key.svg │ │ │ │ ├── icon-list.svg │ │ │ │ ├── icon-map.svg │ │ │ │ ├── icon-pen-tool.svg │ │ │ │ ├── icon-pill-active.svg │ │ │ │ ├── icon-search.svg │ │ │ │ ├── icon-trash.svg │ │ │ │ ├── icon-tv.svg │ │ │ │ └── icon-user.svg │ │ │ ├── images │ │ │ │ └── undraw_conference_speaker_6nt7.svg │ │ │ ├── logo.svg │ │ │ └── styles │ │ │ │ ├── _agenda-item-form.css │ │ │ │ ├── _agenda-item.css │ │ │ │ ├── _agenda.css │ │ │ │ ├── _alert.css │ │ │ │ ├── _avatar.css │ │ │ │ ├── _badge.css │ │ │ │ ├── _button-group.css │ │ │ │ ├── _button.css │ │ │ │ ├── _calendar-event.css │ │ │ │ ├── _calendar-view.css │ │ │ │ ├── _card.css │ │ │ │ ├── _checkbox.css │ │ │ │ ├── _common.css │ │ │ │ ├── _container.css │ │ │ │ ├── _dropdown.css │ │ │ │ ├── _fonts.css │ │ │ │ ├── _footer.css │ │ │ │ ├── _form-group.css │ │ │ │ ├── _form.css │ │ │ │ ├── _header.css │ │ │ │ ├── _icon.css │ │ │ │ ├── _image-uploader.css │ │ │ │ ├── _input-group.css │ │ │ │ ├── _layout.css │ │ │ │ ├── _link.css │ │ │ │ ├── _logo.css │ │ │ │ ├── _meetup-cover.css │ │ │ │ ├── _meetup-description.css │ │ │ │ ├── _meetup-form.css │ │ │ │ ├── _meetup-info.css │ │ │ │ ├── _meetups-list.css │ │ │ │ ├── _nav.css │ │ │ │ ├── _page-auth.css │ │ │ │ ├── _page-meetup-form.css │ │ │ │ ├── _page-meetup.css │ │ │ │ ├── _page-meetups.css │ │ │ │ ├── _page_not-found.css │ │ │ │ ├── _progress.css │ │ │ │ ├── _radio-group.css │ │ │ │ ├── _tabs.css │ │ │ │ ├── _title.css │ │ │ │ ├── _toaster.css │ │ │ │ ├── _transitions.css │ │ │ │ ├── _variables.css │ │ │ │ ├── app.css │ │ │ │ ├── index.css │ │ │ │ └── taskbook.css │ │ ├── components │ │ │ ├── MeetupCard.vue │ │ │ ├── MeetupsCalendar.vue │ │ │ ├── MeetupsList.vue │ │ │ ├── PageMeetups.vue │ │ │ ├── UiAlert.vue │ │ │ ├── UiBadge.vue │ │ │ ├── UiButtonGroup.vue │ │ │ ├── UiCard.vue │ │ │ ├── UiContainer.vue │ │ │ ├── UiIcon.vue │ │ │ └── UiRadioGroup.vue │ │ └── main.js │ └── vite.config.js ├── 02-decomposition │ ├── .gitignore │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── public │ │ ├── api │ │ │ └── meetups.json │ │ └── favicon.ico │ ├── src │ │ ├── App.vue │ │ ├── api.js │ │ ├── assets │ │ │ ├── base.css │ │ │ ├── fonts │ │ │ │ ├── Nunito-cyrillic-ext.woff2 │ │ │ │ ├── Nunito-cyrillic.woff2 │ │ │ │ ├── Nunito-latin-ext.woff2 │ │ │ │ └── Nunito-latin.woff2 │ │ │ ├── icons │ │ │ │ ├── icon-alert-circle.svg │ │ │ │ ├── icon-cal-lg.svg │ │ │ │ ├── icon-cal-sm.svg │ │ │ │ ├── icon-check-circle.svg │ │ │ │ ├── icon-check.svg │ │ │ │ ├── icon-chevron-down.svg │ │ │ │ ├── icon-clock.svg │ │ │ │ ├── icon-coffee.svg │ │ │ │ ├── icon-key.svg │ │ │ │ ├── icon-list.svg │ │ │ │ ├── icon-map.svg │ │ │ │ ├── icon-pen-tool.svg │ │ │ │ ├── icon-pill-active.svg │ │ │ │ ├── icon-search.svg │ │ │ │ ├── icon-trash.svg │ │ │ │ ├── icon-tv.svg │ │ │ │ └── icon-user.svg │ │ │ ├── images │ │ │ │ └── undraw_conference_speaker_6nt7.svg │ │ │ ├── logo.svg │ │ │ └── styles │ │ │ │ ├── _agenda-item-form.css │ │ │ │ ├── _agenda-item.css │ │ │ │ ├── _agenda.css │ │ │ │ ├── _alert.css │ │ │ │ ├── _avatar.css │ │ │ │ ├── _badge.css │ │ │ │ ├── _button-group.css │ │ │ │ ├── _button.css │ │ │ │ ├── _calendar-event.css │ │ │ │ ├── _calendar-view.css │ │ │ │ ├── _card.css │ │ │ │ ├── _checkbox.css │ │ │ │ ├── _common.css │ │ │ │ ├── _container.css │ │ │ │ ├── _dropdown.css │ │ │ │ ├── _fonts.css │ │ │ │ ├── _footer.css │ │ │ │ ├── _form-group.css │ │ │ │ ├── _form.css │ │ │ │ ├── _header.css │ │ │ │ ├── _icon.css │ │ │ │ ├── _image-uploader.css │ │ │ │ ├── _input-group.css │ │ │ │ ├── _layout.css │ │ │ │ ├── _link.css │ │ │ │ ├── _logo.css │ │ │ │ ├── _meetup-cover.css │ │ │ │ ├── _meetup-description.css │ │ │ │ ├── _meetup-form.css │ │ │ │ ├── _meetup-info.css │ │ │ │ ├── _meetups-list.css │ │ │ │ ├── _nav.css │ │ │ │ ├── _page-auth.css │ │ │ │ ├── _page-meetup-form.css │ │ │ │ ├── _page-meetup.css │ │ │ │ ├── _page-meetups.css │ │ │ │ ├── _page_not-found.css │ │ │ │ ├── _progress.css │ │ │ │ ├── _radio-group.css │ │ │ │ ├── _tabs.css │ │ │ │ ├── _title.css │ │ │ │ ├── _toaster.css │ │ │ │ ├── _transitions.css │ │ │ │ ├── _variables.css │ │ │ │ ├── app.css │ │ │ │ ├── index.css │ │ │ │ └── taskbook.css │ │ ├── components │ │ │ ├── MeetupCard.vue │ │ │ ├── MeetupsCalendar.vue │ │ │ ├── MeetupsList.vue │ │ │ ├── PageMeetups.vue │ │ │ ├── UiAlert.vue │ │ │ ├── UiBadge.vue │ │ │ ├── UiButtonGroup.vue │ │ │ ├── UiCard.vue │ │ │ ├── UiContainer.vue │ │ │ ├── UiIcon.vue │ │ │ └── UiRadioGroup.vue │ │ ├── composables │ │ │ ├── useMeetupsFetch.js │ │ │ └── useMeetupsFilter.js │ │ └── main.js │ └── vite.config.js ├── 03-composables │ ├── App.js │ ├── UiInput.js │ ├── UserForm.js │ ├── composables │ │ ├── throttledRef.js │ │ ├── useDateFormatters.js │ │ ├── useIsMobile.js │ │ ├── useLocalProp.js │ │ ├── useModelProxy.js │ │ ├── useModelProxy2.js │ │ └── useResizeObserver.js │ ├── index.html │ ├── plugins │ │ └── toaster │ │ │ ├── TheToaster.js │ │ │ └── index.js │ ├── script.js │ ├── toaster.js │ ├── utils │ │ ├── dateFormatters.js │ │ ├── isMobile.js │ │ └── throttle.js │ └── vendor │ │ └── vue.esm-browser.js ├── 04-suspense │ ├── .gitignore │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── public │ │ ├── api │ │ │ └── meetups.json │ │ └── favicon.ico │ ├── src │ │ ├── App.vue │ │ ├── api.js │ │ ├── assets │ │ │ ├── base.css │ │ │ ├── fonts │ │ │ │ ├── Nunito-cyrillic-ext.woff2 │ │ │ │ ├── Nunito-cyrillic.woff2 │ │ │ │ ├── Nunito-latin-ext.woff2 │ │ │ │ └── Nunito-latin.woff2 │ │ │ ├── icons │ │ │ │ ├── icon-alert-circle.svg │ │ │ │ ├── icon-cal-lg.svg │ │ │ │ ├── icon-cal-sm.svg │ │ │ │ ├── icon-check-circle.svg │ │ │ │ ├── icon-check.svg │ │ │ │ ├── icon-chevron-down.svg │ │ │ │ ├── icon-clock.svg │ │ │ │ ├── icon-coffee.svg │ │ │ │ ├── icon-key.svg │ │ │ │ ├── icon-list.svg │ │ │ │ ├── icon-map.svg │ │ │ │ ├── icon-pen-tool.svg │ │ │ │ ├── icon-pill-active.svg │ │ │ │ ├── icon-search.svg │ │ │ │ ├── icon-trash.svg │ │ │ │ ├── icon-tv.svg │ │ │ │ └── icon-user.svg │ │ │ ├── images │ │ │ │ └── undraw_conference_speaker_6nt7.svg │ │ │ ├── logo.svg │ │ │ └── styles │ │ │ │ ├── _agenda-item-form.css │ │ │ │ ├── _agenda-item.css │ │ │ │ ├── _agenda.css │ │ │ │ ├── _alert.css │ │ │ │ ├── _avatar.css │ │ │ │ ├── _badge.css │ │ │ │ ├── _button-group.css │ │ │ │ ├── _button.css │ │ │ │ ├── _calendar-event.css │ │ │ │ ├── _calendar-view.css │ │ │ │ ├── _card.css │ │ │ │ ├── _checkbox.css │ │ │ │ ├── _common.css │ │ │ │ ├── _container.css │ │ │ │ ├── _dropdown.css │ │ │ │ ├── _fonts.css │ │ │ │ ├── _footer.css │ │ │ │ ├── _form-group.css │ │ │ │ ├── _form.css │ │ │ │ ├── _header.css │ │ │ │ ├── _icon.css │ │ │ │ ├── _image-uploader.css │ │ │ │ ├── _input-group.css │ │ │ │ ├── _layout.css │ │ │ │ ├── _link.css │ │ │ │ ├── _logo.css │ │ │ │ ├── _meetup-cover.css │ │ │ │ ├── _meetup-description.css │ │ │ │ ├── _meetup-form.css │ │ │ │ ├── _meetup-info.css │ │ │ │ ├── _meetups-list.css │ │ │ │ ├── _nav.css │ │ │ │ ├── _page-auth.css │ │ │ │ ├── _page-meetup-form.css │ │ │ │ ├── _page-meetup.css │ │ │ │ ├── _page-meetups.css │ │ │ │ ├── _page_not-found.css │ │ │ │ ├── _progress.css │ │ │ │ ├── _radio-group.css │ │ │ │ ├── _tabs.css │ │ │ │ ├── _title.css │ │ │ │ ├── _toaster.css │ │ │ │ ├── _transitions.css │ │ │ │ ├── _variables.css │ │ │ │ ├── app.css │ │ │ │ ├── index.css │ │ │ │ └── taskbook.css │ │ ├── components │ │ │ ├── MeetupCard.vue │ │ │ ├── MeetupsCalendar.vue │ │ │ ├── MeetupsList.vue │ │ │ ├── PageMeetups.vue │ │ │ ├── UiAlert.vue │ │ │ ├── UiBadge.vue │ │ │ ├── UiButtonGroup.vue │ │ │ ├── UiCard.vue │ │ │ ├── UiContainer.vue │ │ │ ├── UiIcon.vue │ │ │ └── UiRadioGroup.vue │ │ ├── composables │ │ │ ├── useMeetupsFetch.js │ │ │ └── useMeetupsFilter.js │ │ └── main.js │ └── vite.config.js └── 05-sfc-setup │ ├── .gitignore │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── public │ ├── api │ │ └── meetups.json │ └── favicon.ico │ ├── src │ ├── App.vue │ ├── api.js │ ├── assets │ │ ├── base.css │ │ ├── fonts │ │ │ ├── Nunito-cyrillic-ext.woff2 │ │ │ ├── Nunito-cyrillic.woff2 │ │ │ ├── Nunito-latin-ext.woff2 │ │ │ └── Nunito-latin.woff2 │ │ ├── icons │ │ │ ├── icon-alert-circle.svg │ │ │ ├── icon-cal-lg.svg │ │ │ ├── icon-cal-sm.svg │ │ │ ├── icon-check-circle.svg │ │ │ ├── icon-check.svg │ │ │ ├── icon-chevron-down.svg │ │ │ ├── icon-clock.svg │ │ │ ├── icon-coffee.svg │ │ │ ├── icon-key.svg │ │ │ ├── icon-list.svg │ │ │ ├── icon-map.svg │ │ │ ├── icon-pen-tool.svg │ │ │ ├── icon-pill-active.svg │ │ │ ├── icon-search.svg │ │ │ ├── icon-trash.svg │ │ │ ├── icon-tv.svg │ │ │ └── icon-user.svg │ │ ├── images │ │ │ └── undraw_conference_speaker_6nt7.svg │ │ ├── logo.svg │ │ └── styles │ │ │ ├── _agenda-item-form.css │ │ │ ├── _agenda-item.css │ │ │ ├── _agenda.css │ │ │ ├── _alert.css │ │ │ ├── _avatar.css │ │ │ ├── _badge.css │ │ │ ├── _button-group.css │ │ │ ├── _button.css │ │ │ ├── _calendar-event.css │ │ │ ├── _calendar-view.css │ │ │ ├── _card.css │ │ │ ├── _checkbox.css │ │ │ ├── _common.css │ │ │ ├── _container.css │ │ │ ├── _dropdown.css │ │ │ ├── _fonts.css │ │ │ ├── _footer.css │ │ │ ├── _form-group.css │ │ │ ├── _form.css │ │ │ ├── _header.css │ │ │ ├── _icon.css │ │ │ ├── _image-uploader.css │ │ │ ├── _input-group.css │ │ │ ├── _layout.css │ │ │ ├── _link.css │ │ │ ├── _logo.css │ │ │ ├── _meetup-cover.css │ │ │ ├── _meetup-description.css │ │ │ ├── _meetup-form.css │ │ │ ├── _meetup-info.css │ │ │ ├── _meetups-list.css │ │ │ ├── _nav.css │ │ │ ├── _page-auth.css │ │ │ ├── _page-meetup-form.css │ │ │ ├── _page-meetup.css │ │ │ ├── _page-meetups.css │ │ │ ├── _page_not-found.css │ │ │ ├── _progress.css │ │ │ ├── _radio-group.css │ │ │ ├── _tabs.css │ │ │ ├── _title.css │ │ │ ├── _toaster.css │ │ │ ├── _transitions.css │ │ │ ├── _variables.css │ │ │ ├── app.css │ │ │ ├── index.css │ │ │ └── taskbook.css │ ├── components │ │ ├── MeetupCard.vue │ │ ├── MeetupsCalendar.vue │ │ ├── MeetupsList.vue │ │ ├── PageMeetups.vue │ │ ├── UiAlert.vue │ │ ├── UiBadge.vue │ │ ├── UiButtonGroup.vue │ │ ├── UiCard.vue │ │ ├── UiContainer.vue │ │ ├── UiIcon.vue │ │ └── UiRadioGroup.vue │ ├── composables │ │ ├── useMeetupsFetch.js │ │ └── useMeetupsFilter.js │ └── main.js │ └── vite.config.js ├── 14-store ├── 01-composable-store │ ├── .gitignore │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── public │ │ └── favicon.ico │ ├── src │ │ ├── App.vue │ │ ├── api.js │ │ ├── assets │ │ │ ├── base.css │ │ │ ├── fonts │ │ │ │ ├── Nunito-cyrillic-ext.woff2 │ │ │ │ ├── Nunito-cyrillic.woff2 │ │ │ │ ├── Nunito-latin-ext.woff2 │ │ │ │ └── Nunito-latin.woff2 │ │ │ ├── icons │ │ │ │ ├── icon-alert-circle.svg │ │ │ │ ├── icon-cal-lg.svg │ │ │ │ ├── icon-cal-sm.svg │ │ │ │ ├── icon-check-circle.svg │ │ │ │ ├── icon-check.svg │ │ │ │ ├── icon-chevron-down.svg │ │ │ │ ├── icon-clock.svg │ │ │ │ ├── icon-coffee.svg │ │ │ │ ├── icon-key.svg │ │ │ │ ├── icon-list.svg │ │ │ │ ├── icon-map.svg │ │ │ │ ├── icon-pen-tool.svg │ │ │ │ ├── icon-pill-active.svg │ │ │ │ ├── icon-search.svg │ │ │ │ ├── icon-trash.svg │ │ │ │ ├── icon-tv.svg │ │ │ │ └── icon-user.svg │ │ │ ├── images │ │ │ │ └── undraw_conference_speaker_6nt7.svg │ │ │ ├── logo.svg │ │ │ └── styles │ │ │ │ ├── _agenda-item-form.css │ │ │ │ ├── _agenda-item.css │ │ │ │ ├── _agenda.css │ │ │ │ ├── _alert.css │ │ │ │ ├── _avatar.css │ │ │ │ ├── _badge.css │ │ │ │ ├── _button-group.css │ │ │ │ ├── _button.css │ │ │ │ ├── _calendar-event.css │ │ │ │ ├── _calendar-view.css │ │ │ │ ├── _card.css │ │ │ │ ├── _checkbox.css │ │ │ │ ├── _common.css │ │ │ │ ├── _container.css │ │ │ │ ├── _dropdown.css │ │ │ │ ├── _fonts.css │ │ │ │ ├── _footer.css │ │ │ │ ├── _form-group.css │ │ │ │ ├── _form.css │ │ │ │ ├── _header.css │ │ │ │ ├── _icon.css │ │ │ │ ├── _image-uploader.css │ │ │ │ ├── _input-group.css │ │ │ │ ├── _layout.css │ │ │ │ ├── _link.css │ │ │ │ ├── _logo.css │ │ │ │ ├── _meetup-cover.css │ │ │ │ ├── _meetup-description.css │ │ │ │ ├── _meetup-form.css │ │ │ │ ├── _meetup-info.css │ │ │ │ ├── _meetups-list.css │ │ │ │ ├── _nav.css │ │ │ │ ├── _page-auth.css │ │ │ │ ├── _page-meetup-form.css │ │ │ │ ├── _page-meetup.css │ │ │ │ ├── _page-meetups.css │ │ │ │ ├── _page_not-found.css │ │ │ │ ├── _progress.css │ │ │ │ ├── _radio-group.css │ │ │ │ ├── _tabs.css │ │ │ │ ├── _title.css │ │ │ │ ├── _toaster.css │ │ │ │ ├── _transitions.css │ │ │ │ ├── _variables.css │ │ │ │ ├── app.css │ │ │ │ ├── index.css │ │ │ │ └── taskbook.css │ │ ├── components │ │ │ └── PageLogin.vue │ │ └── main.js │ └── vite.config.js ├── 01-composition │ └── composables │ │ └── useAuth.js ├── 02-context │ └── composables │ │ └── auth.js ├── 02-provide-inject-context │ ├── .gitignore │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── public │ │ └── favicon.ico │ ├── src │ │ ├── App.vue │ │ ├── RootApp.vue │ │ ├── api.js │ │ ├── assets │ │ │ ├── base.css │ │ │ ├── fonts │ │ │ │ ├── Nunito-cyrillic-ext.woff2 │ │ │ │ ├── Nunito-cyrillic.woff2 │ │ │ │ ├── Nunito-latin-ext.woff2 │ │ │ │ └── Nunito-latin.woff2 │ │ │ ├── icons │ │ │ │ ├── icon-alert-circle.svg │ │ │ │ ├── icon-cal-lg.svg │ │ │ │ ├── icon-cal-sm.svg │ │ │ │ ├── icon-check-circle.svg │ │ │ │ ├── icon-check.svg │ │ │ │ ├── icon-chevron-down.svg │ │ │ │ ├── icon-clock.svg │ │ │ │ ├── icon-coffee.svg │ │ │ │ ├── icon-key.svg │ │ │ │ ├── icon-list.svg │ │ │ │ ├── icon-map.svg │ │ │ │ ├── icon-pen-tool.svg │ │ │ │ ├── icon-pill-active.svg │ │ │ │ ├── icon-search.svg │ │ │ │ ├── icon-trash.svg │ │ │ │ ├── icon-tv.svg │ │ │ │ └── icon-user.svg │ │ │ ├── images │ │ │ │ └── undraw_conference_speaker_6nt7.svg │ │ │ ├── logo.svg │ │ │ └── styles │ │ │ │ ├── _agenda-item-form.css │ │ │ │ ├── _agenda-item.css │ │ │ │ ├── _agenda.css │ │ │ │ ├── _alert.css │ │ │ │ ├── _avatar.css │ │ │ │ ├── _badge.css │ │ │ │ ├── _button-group.css │ │ │ │ ├── _button.css │ │ │ │ ├── _calendar-event.css │ │ │ │ ├── _calendar-view.css │ │ │ │ ├── _card.css │ │ │ │ ├── _checkbox.css │ │ │ │ ├── _common.css │ │ │ │ ├── _container.css │ │ │ │ ├── _dropdown.css │ │ │ │ ├── _fonts.css │ │ │ │ ├── _footer.css │ │ │ │ ├── _form-group.css │ │ │ │ ├── _form.css │ │ │ │ ├── _header.css │ │ │ │ ├── _icon.css │ │ │ │ ├── _image-uploader.css │ │ │ │ ├── _input-group.css │ │ │ │ ├── _layout.css │ │ │ │ ├── _link.css │ │ │ │ ├── _logo.css │ │ │ │ ├── _meetup-cover.css │ │ │ │ ├── _meetup-description.css │ │ │ │ ├── _meetup-form.css │ │ │ │ ├── _meetup-info.css │ │ │ │ ├── _meetups-list.css │ │ │ │ ├── _nav.css │ │ │ │ ├── _page-auth.css │ │ │ │ ├── _page-meetup-form.css │ │ │ │ ├── _page-meetup.css │ │ │ │ ├── _page-meetups.css │ │ │ │ ├── _page_not-found.css │ │ │ │ ├── _progress.css │ │ │ │ ├── _radio-group.css │ │ │ │ ├── _tabs.css │ │ │ │ ├── _title.css │ │ │ │ ├── _toaster.css │ │ │ │ ├── _transitions.css │ │ │ │ ├── _variables.css │ │ │ │ ├── app.css │ │ │ │ ├── index.css │ │ │ │ └── taskbook.css │ │ ├── components │ │ │ ├── AuthProvider.vue │ │ │ └── PageLogin.vue │ │ └── main.js │ └── vite.config.js ├── 03-composable-context │ ├── .gitignore │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── public │ │ └── favicon.ico │ ├── src │ │ ├── App.vue │ │ ├── api.js │ │ ├── assets │ │ │ ├── base.css │ │ │ ├── fonts │ │ │ │ ├── Nunito-cyrillic-ext.woff2 │ │ │ │ ├── Nunito-cyrillic.woff2 │ │ │ │ ├── Nunito-latin-ext.woff2 │ │ │ │ └── Nunito-latin.woff2 │ │ │ ├── icons │ │ │ │ ├── icon-alert-circle.svg │ │ │ │ ├── icon-cal-lg.svg │ │ │ │ ├── icon-cal-sm.svg │ │ │ │ ├── icon-check-circle.svg │ │ │ │ ├── icon-check.svg │ │ │ │ ├── icon-chevron-down.svg │ │ │ │ ├── icon-clock.svg │ │ │ │ ├── icon-coffee.svg │ │ │ │ ├── icon-key.svg │ │ │ │ ├── icon-list.svg │ │ │ │ ├── icon-map.svg │ │ │ │ ├── icon-pen-tool.svg │ │ │ │ ├── icon-pill-active.svg │ │ │ │ ├── icon-search.svg │ │ │ │ ├── icon-trash.svg │ │ │ │ ├── icon-tv.svg │ │ │ │ └── icon-user.svg │ │ │ ├── images │ │ │ │ └── undraw_conference_speaker_6nt7.svg │ │ │ ├── logo.svg │ │ │ └── styles │ │ │ │ ├── _agenda-item-form.css │ │ │ │ ├── _agenda-item.css │ │ │ │ ├── _agenda.css │ │ │ │ ├── _alert.css │ │ │ │ ├── _avatar.css │ │ │ │ ├── _badge.css │ │ │ │ ├── _button-group.css │ │ │ │ ├── _button.css │ │ │ │ ├── _calendar-event.css │ │ │ │ ├── _calendar-view.css │ │ │ │ ├── _card.css │ │ │ │ ├── _checkbox.css │ │ │ │ ├── _common.css │ │ │ │ ├── _container.css │ │ │ │ ├── _dropdown.css │ │ │ │ ├── _fonts.css │ │ │ │ ├── _footer.css │ │ │ │ ├── _form-group.css │ │ │ │ ├── _form.css │ │ │ │ ├── _header.css │ │ │ │ ├── _icon.css │ │ │ │ ├── _image-uploader.css │ │ │ │ ├── _input-group.css │ │ │ │ ├── _layout.css │ │ │ │ ├── _link.css │ │ │ │ ├── _logo.css │ │ │ │ ├── _meetup-cover.css │ │ │ │ ├── _meetup-description.css │ │ │ │ ├── _meetup-form.css │ │ │ │ ├── _meetup-info.css │ │ │ │ ├── _meetups-list.css │ │ │ │ ├── _nav.css │ │ │ │ ├── _page-auth.css │ │ │ │ ├── _page-meetup-form.css │ │ │ │ ├── _page-meetup.css │ │ │ │ ├── _page-meetups.css │ │ │ │ ├── _page_not-found.css │ │ │ │ ├── _progress.css │ │ │ │ ├── _radio-group.css │ │ │ │ ├── _tabs.css │ │ │ │ ├── _title.css │ │ │ │ ├── _toaster.css │ │ │ │ ├── _transitions.css │ │ │ │ ├── _variables.css │ │ │ │ ├── app.css │ │ │ │ ├── index.css │ │ │ │ └── taskbook.css │ │ ├── components │ │ │ └── PageLogin.vue │ │ ├── composables │ │ │ └── useAuth.js │ │ └── main.js │ └── vite.config.js ├── 04-vuex │ ├── .gitignore │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── src │ │ ├── App.vue │ │ ├── api.js │ │ ├── assets │ │ │ ├── base.css │ │ │ ├── fonts │ │ │ │ ├── Nunito-cyrillic-ext.woff2 │ │ │ │ ├── Nunito-cyrillic.woff2 │ │ │ │ ├── Nunito-latin-ext.woff2 │ │ │ │ └── Nunito-latin.woff2 │ │ │ ├── icons │ │ │ │ ├── icon-alert-circle.svg │ │ │ │ ├── icon-cal-lg.svg │ │ │ │ ├── icon-cal-sm.svg │ │ │ │ ├── icon-check-circle.svg │ │ │ │ ├── icon-check.svg │ │ │ │ ├── icon-chevron-down.svg │ │ │ │ ├── icon-clock.svg │ │ │ │ ├── icon-coffee.svg │ │ │ │ ├── icon-key.svg │ │ │ │ ├── icon-list.svg │ │ │ │ ├── icon-map.svg │ │ │ │ ├── icon-pen-tool.svg │ │ │ │ ├── icon-pill-active.svg │ │ │ │ ├── icon-search.svg │ │ │ │ ├── icon-trash.svg │ │ │ │ ├── icon-tv.svg │ │ │ │ └── icon-user.svg │ │ │ ├── images │ │ │ │ └── undraw_conference_speaker_6nt7.svg │ │ │ ├── logo.svg │ │ │ └── styles │ │ │ │ ├── _agenda-item-form.css │ │ │ │ ├── _agenda-item.css │ │ │ │ ├── _agenda.css │ │ │ │ ├── _alert.css │ │ │ │ ├── _avatar.css │ │ │ │ ├── _badge.css │ │ │ │ ├── _button-group.css │ │ │ │ ├── _button.css │ │ │ │ ├── _calendar-event.css │ │ │ │ ├── _calendar-view.css │ │ │ │ ├── _card.css │ │ │ │ ├── _checkbox.css │ │ │ │ ├── _common.css │ │ │ │ ├── _container.css │ │ │ │ ├── _dropdown.css │ │ │ │ ├── _fonts.css │ │ │ │ ├── _footer.css │ │ │ │ ├── _form-group.css │ │ │ │ ├── _form.css │ │ │ │ ├── _header.css │ │ │ │ ├── _icon.css │ │ │ │ ├── _image-uploader.css │ │ │ │ ├── _input-group.css │ │ │ │ ├── _layout.css │ │ │ │ ├── _link.css │ │ │ │ ├── _logo.css │ │ │ │ ├── _meetup-cover.css │ │ │ │ ├── _meetup-description.css │ │ │ │ ├── _meetup-form.css │ │ │ │ ├── _meetup-info.css │ │ │ │ ├── _meetups-list.css │ │ │ │ ├── _nav.css │ │ │ │ ├── _page-auth.css │ │ │ │ ├── _page-meetup-form.css │ │ │ │ ├── _page-meetup.css │ │ │ │ ├── _page-meetups.css │ │ │ │ ├── _page_not-found.css │ │ │ │ ├── _progress.css │ │ │ │ ├── _radio-group.css │ │ │ │ ├── _tabs.css │ │ │ │ ├── _title.css │ │ │ │ ├── _toaster.css │ │ │ │ ├── _transitions.css │ │ │ │ ├── _variables.css │ │ │ │ ├── app.css │ │ │ │ ├── index.css │ │ │ │ └── taskbook.css │ │ ├── components │ │ │ └── PageLogin.vue │ │ ├── main.js │ │ └── store │ │ │ ├── index.js │ │ │ └── modules │ │ │ └── auth.js │ └── vite.config.js ├── 05-pinia │ ├── .gitignore │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── src │ │ ├── App.vue │ │ ├── api.js │ │ ├── assets │ │ │ ├── base.css │ │ │ ├── fonts │ │ │ │ ├── Nunito-cyrillic-ext.woff2 │ │ │ │ ├── Nunito-cyrillic.woff2 │ │ │ │ ├── Nunito-latin-ext.woff2 │ │ │ │ └── Nunito-latin.woff2 │ │ │ ├── icons │ │ │ │ ├── icon-alert-circle.svg │ │ │ │ ├── icon-cal-lg.svg │ │ │ │ ├── icon-cal-sm.svg │ │ │ │ ├── icon-check-circle.svg │ │ │ │ ├── icon-check.svg │ │ │ │ ├── icon-chevron-down.svg │ │ │ │ ├── icon-clock.svg │ │ │ │ ├── icon-coffee.svg │ │ │ │ ├── icon-key.svg │ │ │ │ ├── icon-list.svg │ │ │ │ ├── icon-map.svg │ │ │ │ ├── icon-pen-tool.svg │ │ │ │ ├── icon-pill-active.svg │ │ │ │ ├── icon-search.svg │ │ │ │ ├── icon-trash.svg │ │ │ │ ├── icon-tv.svg │ │ │ │ └── icon-user.svg │ │ │ ├── images │ │ │ │ └── undraw_conference_speaker_6nt7.svg │ │ │ ├── logo.svg │ │ │ └── styles │ │ │ │ ├── _agenda-item-form.css │ │ │ │ ├── _agenda-item.css │ │ │ │ ├── _agenda.css │ │ │ │ ├── _alert.css │ │ │ │ ├── _avatar.css │ │ │ │ ├── _badge.css │ │ │ │ ├── _button-group.css │ │ │ │ ├── _button.css │ │ │ │ ├── _calendar-event.css │ │ │ │ ├── _calendar-view.css │ │ │ │ ├── _card.css │ │ │ │ ├── _checkbox.css │ │ │ │ ├── _common.css │ │ │ │ ├── _container.css │ │ │ │ ├── _dropdown.css │ │ │ │ ├── _fonts.css │ │ │ │ ├── _footer.css │ │ │ │ ├── _form-group.css │ │ │ │ ├── _form.css │ │ │ │ ├── _header.css │ │ │ │ ├── _icon.css │ │ │ │ ├── _image-uploader.css │ │ │ │ ├── _input-group.css │ │ │ │ ├── _layout.css │ │ │ │ ├── _link.css │ │ │ │ ├── _logo.css │ │ │ │ ├── _meetup-cover.css │ │ │ │ ├── _meetup-description.css │ │ │ │ ├── _meetup-form.css │ │ │ │ ├── _meetup-info.css │ │ │ │ ├── _meetups-list.css │ │ │ │ ├── _nav.css │ │ │ │ ├── _page-auth.css │ │ │ │ ├── _page-meetup-form.css │ │ │ │ ├── _page-meetup.css │ │ │ │ ├── _page-meetups.css │ │ │ │ ├── _page_not-found.css │ │ │ │ ├── _progress.css │ │ │ │ ├── _radio-group.css │ │ │ │ ├── _tabs.css │ │ │ │ ├── _title.css │ │ │ │ ├── _toaster.css │ │ │ │ ├── _transitions.css │ │ │ │ ├── _variables.css │ │ │ │ ├── app.css │ │ │ │ ├── index.css │ │ │ │ └── taskbook.css │ │ ├── components │ │ │ └── PageLogin.vue │ │ ├── main.js │ │ └── stores │ │ │ └── useAuthStore.js │ └── vite.config.js └── 06-pinia-form │ ├── .gitignore │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── src │ ├── App.vue │ ├── assets │ │ ├── fonts │ │ │ ├── Nunito-cyrillic-ext.woff2 │ │ │ ├── Nunito-cyrillic.woff2 │ │ │ ├── Nunito-latin-ext.woff2 │ │ │ └── Nunito-latin.woff2 │ │ ├── icons │ │ │ ├── icon-alert-circle.svg │ │ │ ├── icon-cal-lg.svg │ │ │ ├── icon-cal-sm.svg │ │ │ ├── icon-check-circle.svg │ │ │ ├── icon-check.svg │ │ │ ├── icon-chevron-down.svg │ │ │ ├── icon-clock.svg │ │ │ ├── icon-coffee.svg │ │ │ ├── icon-key.svg │ │ │ ├── icon-list.svg │ │ │ ├── icon-map.svg │ │ │ ├── icon-pen-tool.svg │ │ │ ├── icon-pill-active.svg │ │ │ ├── icon-search.svg │ │ │ ├── icon-trash.svg │ │ │ ├── icon-tv.svg │ │ │ └── icon-user.svg │ │ ├── images │ │ │ └── undraw_conference_speaker_6nt7.svg │ │ ├── logo.svg │ │ └── styles │ │ │ ├── _agenda-item-form.css │ │ │ ├── _agenda-item.css │ │ │ ├── _agenda.css │ │ │ ├── _alert.css │ │ │ ├── _avatar.css │ │ │ ├── _badge.css │ │ │ ├── _button-group.css │ │ │ ├── _button.css │ │ │ ├── _calendar-event.css │ │ │ ├── _calendar-view.css │ │ │ ├── _card.css │ │ │ ├── _checkbox.css │ │ │ ├── _common.css │ │ │ ├── _container.css │ │ │ ├── _dropdown.css │ │ │ ├── _fonts.css │ │ │ ├── _footer.css │ │ │ ├── _form-group.css │ │ │ ├── _form.css │ │ │ ├── _header.css │ │ │ ├── _icon.css │ │ │ ├── _image-uploader.css │ │ │ ├── _input-group.css │ │ │ ├── _layout.css │ │ │ ├── _link.css │ │ │ ├── _logo.css │ │ │ ├── _meetup-cover.css │ │ │ ├── _meetup-description.css │ │ │ ├── _meetup-form.css │ │ │ ├── _meetup-info.css │ │ │ ├── _meetups-list.css │ │ │ ├── _nav.css │ │ │ ├── _page-auth.css │ │ │ ├── _page-meetup-form.css │ │ │ ├── _page-meetup.css │ │ │ ├── _page-meetups.css │ │ │ ├── _page_not-found.css │ │ │ ├── _progress.css │ │ │ ├── _radio-group.css │ │ │ ├── _tabs.css │ │ │ ├── _title.css │ │ │ ├── _toaster.css │ │ │ ├── _transitions.css │ │ │ ├── _variables.css │ │ │ ├── app.css │ │ │ └── index.css │ ├── components │ │ ├── MeetupAgendaItemForm.vue │ │ ├── MeetupForm.vue │ │ ├── UiContainer.vue │ │ └── UiIcon.vue │ ├── main.js │ └── stores │ │ └── useMeetupFormStore.js │ └── vite.config.js ├── 16-testing └── 01-vtu │ ├── .gitignore │ ├── babel.config.js │ ├── index.html │ ├── jest.config.js │ ├── jest.setup.js │ ├── package-lock.json │ ├── package.json │ ├── public │ ├── api │ │ └── meetups.json │ └── favicon.ico │ ├── src │ ├── App.vue │ ├── api.js │ ├── assets │ │ ├── base.css │ │ ├── fonts │ │ │ ├── Nunito-cyrillic-ext.woff2 │ │ │ ├── Nunito-cyrillic.woff2 │ │ │ ├── Nunito-latin-ext.woff2 │ │ │ └── Nunito-latin.woff2 │ │ ├── icons │ │ │ ├── icon-alert-circle.svg │ │ │ ├── icon-cal-lg.svg │ │ │ ├── icon-cal-sm.svg │ │ │ ├── icon-check-circle.svg │ │ │ ├── icon-check.svg │ │ │ ├── icon-chevron-down.svg │ │ │ ├── icon-clock.svg │ │ │ ├── icon-coffee.svg │ │ │ ├── icon-key.svg │ │ │ ├── icon-list.svg │ │ │ ├── icon-map.svg │ │ │ ├── icon-pen-tool.svg │ │ │ ├── icon-pill-active.svg │ │ │ ├── icon-search.svg │ │ │ ├── icon-trash.svg │ │ │ ├── icon-tv.svg │ │ │ └── icon-user.svg │ │ ├── images │ │ │ └── undraw_conference_speaker_6nt7.svg │ │ ├── logo.svg │ │ └── styles │ │ │ ├── _agenda-item-form.css │ │ │ ├── _agenda-item.css │ │ │ ├── _agenda.css │ │ │ ├── _alert.css │ │ │ ├── _avatar.css │ │ │ ├── _badge.css │ │ │ ├── _button-group.css │ │ │ ├── _button.css │ │ │ ├── _calendar-event.css │ │ │ ├── _calendar-view.css │ │ │ ├── _card.css │ │ │ ├── _checkbox.css │ │ │ ├── _common.css │ │ │ ├── _container.css │ │ │ ├── _dropdown.css │ │ │ ├── _fonts.css │ │ │ ├── _footer.css │ │ │ ├── _form-group.css │ │ │ ├── _form.css │ │ │ ├── _header.css │ │ │ ├── _icon.css │ │ │ ├── _image-uploader.css │ │ │ ├── _input-group.css │ │ │ ├── _layout.css │ │ │ ├── _link.css │ │ │ ├── _logo.css │ │ │ ├── _meetup-cover.css │ │ │ ├── _meetup-description.css │ │ │ ├── _meetup-form.css │ │ │ ├── _meetup-info.css │ │ │ ├── _meetups-list.css │ │ │ ├── _nav.css │ │ │ ├── _page-auth.css │ │ │ ├── _page-meetup-form.css │ │ │ ├── _page-meetup.css │ │ │ ├── _page-meetups.css │ │ │ ├── _page_not-found.css │ │ │ ├── _progress.css │ │ │ ├── _radio-group.css │ │ │ ├── _tabs.css │ │ │ ├── _title.css │ │ │ ├── _toaster.css │ │ │ ├── _transitions.css │ │ │ ├── _variables.css │ │ │ ├── app.css │ │ │ ├── index.css │ │ │ └── taskbook.css │ ├── components │ │ ├── MeetupCard.vue │ │ ├── MeetupsCalendar.vue │ │ ├── MeetupsList.vue │ │ ├── PageMeetups.vue │ │ ├── UiAlert.vue │ │ ├── UiBadge.vue │ │ ├── UiButtonGroup.vue │ │ ├── UiCard.vue │ │ ├── UiContainer.vue │ │ ├── UiIcon.vue │ │ ├── UiInput.vue │ │ └── UiRadioGroup.vue │ └── main.js │ ├── tests │ └── unit │ │ ├── __fixtures__ │ │ └── meetups.json │ │ └── components │ │ ├── PageMeetups.spec.js │ │ ├── UiInput.spec.js │ │ └── __snapshots__ │ │ ├── PageMeetups.spec.js.snap │ │ └── UiInput.spec.js.snap │ └── vite.config.js ├── 17-prerendering ├── 01-prerender-spa-plugin │ ├── .gitignore │ ├── package-lock.json │ ├── package.json │ ├── public │ │ ├── api │ │ │ └── meetups.json │ │ ├── favicon.ico │ │ ├── images │ │ │ └── undraw_conference_speaker_6nt7.svg │ │ └── index.html │ ├── src │ │ ├── App.vue │ │ ├── api.js │ │ ├── assets │ │ │ ├── fonts │ │ │ │ ├── Nunito-cyrillic-ext.woff2 │ │ │ │ ├── Nunito-cyrillic.woff2 │ │ │ │ ├── Nunito-latin-ext.woff2 │ │ │ │ └── Nunito-latin.woff2 │ │ │ ├── icons │ │ │ │ ├── icon-alert-circle.svg │ │ │ │ ├── icon-cal-lg.svg │ │ │ │ ├── icon-cal-sm.svg │ │ │ │ ├── icon-check-circle.svg │ │ │ │ ├── icon-check.svg │ │ │ │ ├── icon-chevron-down.svg │ │ │ │ ├── icon-clock.svg │ │ │ │ ├── icon-coffee.svg │ │ │ │ ├── icon-key.svg │ │ │ │ ├── icon-list.svg │ │ │ │ ├── icon-map.svg │ │ │ │ ├── icon-pen-tool.svg │ │ │ │ ├── icon-pill-active.svg │ │ │ │ ├── icon-search.svg │ │ │ │ ├── icon-trash.svg │ │ │ │ ├── icon-tv.svg │ │ │ │ └── icon-user.svg │ │ │ ├── images │ │ │ │ └── undraw_conference_speaker_6nt7.svg │ │ │ ├── logo.svg │ │ │ └── styles │ │ │ │ ├── _agenda-item-form.css │ │ │ │ ├── _agenda-item.css │ │ │ │ ├── _agenda.css │ │ │ │ ├── _alert.css │ │ │ │ ├── _avatar.css │ │ │ │ ├── _badge.css │ │ │ │ ├── _button-group.css │ │ │ │ ├── _button.css │ │ │ │ ├── _calendar-event.css │ │ │ │ ├── _calendar-view.css │ │ │ │ ├── _card.css │ │ │ │ ├── _checkbox.css │ │ │ │ ├── _common.css │ │ │ │ ├── _container.css │ │ │ │ ├── _dropdown.css │ │ │ │ ├── _fonts.css │ │ │ │ ├── _footer.css │ │ │ │ ├── _form-group.css │ │ │ │ ├── _form.css │ │ │ │ ├── _header.css │ │ │ │ ├── _icon.css │ │ │ │ ├── _image-uploader.css │ │ │ │ ├── _input-group.css │ │ │ │ ├── _layout.css │ │ │ │ ├── _link.css │ │ │ │ ├── _logo.css │ │ │ │ ├── _meetup-cover.css │ │ │ │ ├── _meetup-description.css │ │ │ │ ├── _meetup-form.css │ │ │ │ ├── _meetup-info.css │ │ │ │ ├── _meetups-list.css │ │ │ │ ├── _nav.css │ │ │ │ ├── _page-auth.css │ │ │ │ ├── _page-meetup-form.css │ │ │ │ ├── _page-meetup.css │ │ │ │ ├── _page-meetups.css │ │ │ │ ├── _page_not-found.css │ │ │ │ ├── _progress.css │ │ │ │ ├── _radio-group.css │ │ │ │ ├── _tabs.css │ │ │ │ ├── _title.css │ │ │ │ ├── _toaster.css │ │ │ │ ├── _transitions.css │ │ │ │ ├── _variables.css │ │ │ │ └── index.css │ │ ├── components │ │ │ ├── MeetupCard.vue │ │ │ ├── MeetupFooter.vue │ │ │ ├── MeetupHeader.vue │ │ │ ├── MeetupLogo.vue │ │ │ ├── MeetupNav.vue │ │ │ ├── MeetupsCalendar.vue │ │ │ ├── MeetupsList.vue │ │ │ ├── MeetupsListItem.vue │ │ │ ├── PageMeetup.vue │ │ │ ├── PageMeetupAgenda.vue │ │ │ ├── PageMeetupDescription.vue │ │ │ ├── PageMeetups.vue │ │ │ ├── UiAlert.vue │ │ │ ├── UiBadge.vue │ │ │ ├── UiButtonGroup.vue │ │ │ ├── UiCard.vue │ │ │ ├── UiContainer.vue │ │ │ ├── UiIcon.vue │ │ │ └── UiRadioGroup.vue │ │ └── main.js │ └── vue.config.js ├── 02-prerender │ ├── .gitkeep │ ├── index.js │ ├── package-lock.json │ └── package.json └── 03-ssr │ ├── README.md │ ├── dist │ ├── client │ │ ├── assets │ │ │ ├── Nunito-cyrillic-ext.135a2a07.woff2 │ │ │ ├── Nunito-cyrillic.b83eeadc.woff2 │ │ │ ├── Nunito-latin-ext.f2d335ee.woff2 │ │ │ ├── Nunito-latin.06f3af3f.woff2 │ │ │ ├── icon-alert-circle.89d82ee3.svg │ │ │ ├── icon-cal-lg.70192a7d.svg │ │ │ ├── icon-cal-sm.65eea2b0.svg │ │ │ ├── icon-check-circle.27f4897e.svg │ │ │ ├── icon-check.2173ef59.svg │ │ │ ├── icon-chevron-down.7a3c6bb7.svg │ │ │ ├── icon-clock.37e0c4f9.svg │ │ │ ├── icon-coffee.8db4c97f.svg │ │ │ ├── icon-key.1194c161.svg │ │ │ ├── icon-list.1236dfbc.svg │ │ │ ├── icon-map.c9198c63.svg │ │ │ ├── icon-pen-tool.875c5817.svg │ │ │ ├── icon-pill-active.cf58a054.svg │ │ │ ├── icon-search.f990726f.svg │ │ │ ├── icon-trash.8a24966c.svg │ │ │ ├── icon-tv.f10f7739.svg │ │ │ ├── icon-user.d930aeb0.svg │ │ │ ├── index.00d68d77.js │ │ │ ├── index.1ec533ad.css │ │ │ └── undraw_conference_speaker_6nt7.3cd91942.svg │ │ ├── favicon.ico │ │ └── index.html │ └── server │ │ ├── entry-server.js │ │ └── favicon.ico │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── public │ └── favicon.ico │ ├── server.js │ ├── src │ ├── App.vue │ ├── api.js │ ├── assets │ │ ├── base.css │ │ ├── fonts │ │ │ ├── Nunito-cyrillic-ext.woff2 │ │ │ ├── Nunito-cyrillic.woff2 │ │ │ ├── Nunito-latin-ext.woff2 │ │ │ └── Nunito-latin.woff2 │ │ ├── icons │ │ │ ├── icon-alert-circle.svg │ │ │ ├── icon-cal-lg.svg │ │ │ ├── icon-cal-sm.svg │ │ │ ├── icon-check-circle.svg │ │ │ ├── icon-check.svg │ │ │ ├── icon-chevron-down.svg │ │ │ ├── icon-clock.svg │ │ │ ├── icon-coffee.svg │ │ │ ├── icon-key.svg │ │ │ ├── icon-list.svg │ │ │ ├── icon-map.svg │ │ │ ├── icon-pen-tool.svg │ │ │ ├── icon-pill-active.svg │ │ │ ├── icon-search.svg │ │ │ ├── icon-trash.svg │ │ │ ├── icon-tv.svg │ │ │ └── icon-user.svg │ │ ├── images │ │ │ └── undraw_conference_speaker_6nt7.svg │ │ ├── logo.svg │ │ └── styles │ │ │ ├── _agenda-item-form.css │ │ │ ├── _agenda-item.css │ │ │ ├── _agenda.css │ │ │ ├── _alert.css │ │ │ ├── _avatar.css │ │ │ ├── _badge.css │ │ │ ├── _button-group.css │ │ │ ├── _button.css │ │ │ ├── _calendar-event.css │ │ │ ├── _calendar-view.css │ │ │ ├── _card.css │ │ │ ├── _checkbox.css │ │ │ ├── _common.css │ │ │ ├── _container.css │ │ │ ├── _dropdown.css │ │ │ ├── _fonts.css │ │ │ ├── _footer.css │ │ │ ├── _form-group.css │ │ │ ├── _form.css │ │ │ ├── _header.css │ │ │ ├── _icon.css │ │ │ ├── _image-uploader.css │ │ │ ├── _input-group.css │ │ │ ├── _layout.css │ │ │ ├── _link.css │ │ │ ├── _logo.css │ │ │ ├── _meetup-cover.css │ │ │ ├── _meetup-description.css │ │ │ ├── _meetup-form.css │ │ │ ├── _meetup-info.css │ │ │ ├── _meetups-list.css │ │ │ ├── _nav.css │ │ │ ├── _page-auth.css │ │ │ ├── _page-meetup-form.css │ │ │ ├── _page-meetup.css │ │ │ ├── _page-meetups.css │ │ │ ├── _page_not-found.css │ │ │ ├── _progress.css │ │ │ ├── _radio-group.css │ │ │ ├── _tabs.css │ │ │ ├── _title.css │ │ │ ├── _toaster.css │ │ │ ├── _transitions.css │ │ │ ├── _variables.css │ │ │ ├── app.css │ │ │ ├── index.css │ │ │ └── taskbook.css │ ├── components │ │ ├── MeetupCard.vue │ │ ├── MeetupsCalendar.vue │ │ ├── MeetupsList.vue │ │ ├── PageMeetups.vue │ │ ├── UiAlert.vue │ │ ├── UiBadge.vue │ │ ├── UiButtonGroup.vue │ │ ├── UiCard.vue │ │ ├── UiContainer.vue │ │ ├── UiIcon.vue │ │ └── UiRadioGroup.vue │ ├── entry-client.js │ ├── entry-server.js │ └── main.js │ └── vite.config.js ├── 18-architecture ├── 01-flat │ ├── .env │ ├── .gitignore │ ├── package-lock.json │ ├── package.json │ ├── public │ │ ├── favicon.ico │ │ ├── images │ │ │ └── undraw_conference_speaker_6nt7.svg │ │ └── index.html │ ├── src │ │ ├── App.vue │ │ ├── api │ │ │ ├── NetworkError.js │ │ │ ├── ResultContainer.js │ │ │ ├── httpClient.js │ │ │ └── meetupsApi.js │ │ ├── assets │ │ │ ├── fonts │ │ │ │ ├── Nunito-cyrillic-ext.woff2 │ │ │ │ ├── Nunito-cyrillic.woff2 │ │ │ │ ├── Nunito-latin-ext.woff2 │ │ │ │ └── Nunito-latin.woff2 │ │ │ ├── icons │ │ │ │ ├── icon-alert-circle.svg │ │ │ │ ├── icon-cal-lg.svg │ │ │ │ ├── icon-cal-sm.svg │ │ │ │ ├── icon-check-circle.svg │ │ │ │ ├── icon-check.svg │ │ │ │ ├── icon-chevron-down.svg │ │ │ │ ├── icon-clock.svg │ │ │ │ ├── icon-coffee.svg │ │ │ │ ├── icon-key.svg │ │ │ │ ├── icon-list.svg │ │ │ │ ├── icon-map.svg │ │ │ │ ├── icon-pen-tool.svg │ │ │ │ ├── icon-pill-active.svg │ │ │ │ ├── icon-search.svg │ │ │ │ ├── icon-trash.svg │ │ │ │ ├── icon-tv.svg │ │ │ │ └── icon-user.svg │ │ │ ├── logo.svg │ │ │ └── styles │ │ │ │ ├── _agenda-item-form.css │ │ │ │ ├── _agenda-item.css │ │ │ │ ├── _agenda.css │ │ │ │ ├── _alert.css │ │ │ │ ├── _avatar.css │ │ │ │ ├── _badge.css │ │ │ │ ├── _button-group.css │ │ │ │ ├── _button.css │ │ │ │ ├── _calendar-event.css │ │ │ │ ├── _calendar-view.css │ │ │ │ ├── _card.css │ │ │ │ ├── _checkbox.css │ │ │ │ ├── _common.css │ │ │ │ ├── _container.css │ │ │ │ ├── _dropdown.css │ │ │ │ ├── _fonts.css │ │ │ │ ├── _footer.css │ │ │ │ ├── _form-group.css │ │ │ │ ├── _form.css │ │ │ │ ├── _header.css │ │ │ │ ├── _icon.css │ │ │ │ ├── _image-uploader.css │ │ │ │ ├── _input-group.css │ │ │ │ ├── _layout.css │ │ │ │ ├── _link.css │ │ │ │ ├── _logo.css │ │ │ │ ├── _meetup-cover.css │ │ │ │ ├── _meetup-description.css │ │ │ │ ├── _meetup-form.css │ │ │ │ ├── _meetup-info.css │ │ │ │ ├── _meetups-list.css │ │ │ │ ├── _nav.css │ │ │ │ ├── _page-auth.css │ │ │ │ ├── _page-meetup-form.css │ │ │ │ ├── _page-meetup.css │ │ │ │ ├── _page-meetups.css │ │ │ │ ├── _page_not-found.css │ │ │ │ ├── _progress.css │ │ │ │ ├── _radio-group.css │ │ │ │ ├── _tabs.css │ │ │ │ ├── _title.css │ │ │ │ ├── _toaster.css │ │ │ │ ├── _transitions.css │ │ │ │ ├── _variables.css │ │ │ │ └── index.css │ │ ├── components │ │ │ ├── MeetupsCalendar.vue │ │ │ ├── MeetupsFooter.vue │ │ │ ├── MeetupsHeader.vue │ │ │ ├── MeetupsList.vue │ │ │ ├── MeetupsListItem.vue │ │ │ ├── MeetupsLogo.vue │ │ │ ├── MeetupsNav.vue │ │ │ ├── UiAlert.vue │ │ │ ├── UiBadge.vue │ │ │ ├── UiButtonGroup.vue │ │ │ ├── UiCard.vue │ │ │ ├── UiContainer.vue │ │ │ ├── UiIcon.vue │ │ │ └── UiRadioGroup.vue │ │ ├── main.js │ │ ├── router │ │ │ └── index.js │ │ ├── services │ │ │ └── meetupsService.js │ │ └── views │ │ │ ├── PageMeetup.vue │ │ │ ├── PageMeetupAgenda.vue │ │ │ ├── PageMeetupDescription.vue │ │ │ └── PageMeetups.vue │ └── vue.config.js └── 02-features │ ├── .env │ ├── .gitignore │ ├── package-lock.json │ ├── package.json │ ├── public │ ├── favicon.ico │ ├── images │ │ └── undraw_conference_speaker_6nt7.svg │ └── index.html │ ├── src │ ├── app │ │ ├── App.vue │ │ ├── components │ │ │ ├── MeetupsFooter.vue │ │ │ ├── MeetupsHeader.vue │ │ │ ├── MeetupsLogo.vue │ │ │ └── MeetupsNav.vue │ │ └── router │ │ │ └── index.js │ ├── main.js │ ├── meetups │ │ ├── api │ │ │ └── meetupsApi.js │ │ ├── components │ │ │ ├── MeetupsCalendar.vue │ │ │ ├── MeetupsList.vue │ │ │ └── MeetupsListItem.vue │ │ ├── meetups.js │ │ ├── router │ │ │ └── meetupsRoutes.js │ │ ├── services │ │ │ └── meetupsService.js │ │ └── views │ │ │ ├── PageMeetup.vue │ │ │ ├── PageMeetupAgenda.vue │ │ │ ├── PageMeetupDescription.vue │ │ │ └── PageMeetups.vue │ └── shared │ │ ├── api │ │ ├── NetworkError.js │ │ ├── ResultContainer.js │ │ └── httpClient.js │ │ ├── assets │ │ ├── fonts │ │ │ ├── Nunito-cyrillic-ext.woff2 │ │ │ ├── Nunito-cyrillic.woff2 │ │ │ ├── Nunito-latin-ext.woff2 │ │ │ └── Nunito-latin.woff2 │ │ ├── icons │ │ │ ├── icon-alert-circle.svg │ │ │ ├── icon-cal-lg.svg │ │ │ ├── icon-cal-sm.svg │ │ │ ├── icon-check-circle.svg │ │ │ ├── icon-check.svg │ │ │ ├── icon-chevron-down.svg │ │ │ ├── icon-clock.svg │ │ │ ├── icon-coffee.svg │ │ │ ├── icon-key.svg │ │ │ ├── icon-list.svg │ │ │ ├── icon-map.svg │ │ │ ├── icon-pen-tool.svg │ │ │ ├── icon-pill-active.svg │ │ │ ├── icon-search.svg │ │ │ ├── icon-trash.svg │ │ │ ├── icon-tv.svg │ │ │ └── icon-user.svg │ │ ├── logo.svg │ │ └── styles │ │ │ ├── _agenda-item-form.css │ │ │ ├── _agenda-item.css │ │ │ ├── _agenda.css │ │ │ ├── _alert.css │ │ │ ├── _avatar.css │ │ │ ├── _badge.css │ │ │ ├── _button-group.css │ │ │ ├── _button.css │ │ │ ├── _calendar-event.css │ │ │ ├── _calendar-view.css │ │ │ ├── _card.css │ │ │ ├── _checkbox.css │ │ │ ├── _common.css │ │ │ ├── _container.css │ │ │ ├── _dropdown.css │ │ │ ├── _fonts.css │ │ │ ├── _footer.css │ │ │ ├── _form-group.css │ │ │ ├── _form.css │ │ │ ├── _header.css │ │ │ ├── _icon.css │ │ │ ├── _image-uploader.css │ │ │ ├── _input-group.css │ │ │ ├── _layout.css │ │ │ ├── _link.css │ │ │ ├── _logo.css │ │ │ ├── _meetup-cover.css │ │ │ ├── _meetup-description.css │ │ │ ├── _meetup-form.css │ │ │ ├── _meetup-info.css │ │ │ ├── _meetups-list.css │ │ │ ├── _nav.css │ │ │ ├── _page-auth.css │ │ │ ├── _page-meetup-form.css │ │ │ ├── _page-meetup.css │ │ │ ├── _page-meetups.css │ │ │ ├── _page_not-found.css │ │ │ ├── _progress.css │ │ │ ├── _radio-group.css │ │ │ ├── _tabs.css │ │ │ ├── _title.css │ │ │ ├── _toaster.css │ │ │ ├── _transitions.css │ │ │ ├── _variables.css │ │ │ └── index.css │ │ └── components │ │ ├── UiAlert.vue │ │ ├── UiBadge.vue │ │ ├── UiButtonGroup.vue │ │ ├── UiCard.vue │ │ ├── UiContainer.vue │ │ ├── UiIcon.vue │ │ └── UiRadioGroup.vue │ └── vue.config.js ├── README.md ├── assets ├── fonts │ ├── Nunito-cyrillic-ext.woff2 │ ├── Nunito-cyrillic.woff2 │ ├── Nunito-latin-ext.woff2 │ └── Nunito-latin.woff2 ├── icons │ ├── icon-alert-circle.svg │ ├── icon-cal-lg.svg │ ├── icon-cal-sm.svg │ ├── icon-check-circle.svg │ ├── icon-check.svg │ ├── icon-chevron-down.svg │ ├── icon-clock.svg │ ├── icon-coffee.svg │ ├── icon-key.svg │ ├── icon-list.svg │ ├── icon-map.svg │ ├── icon-pen-tool.svg │ ├── icon-pill-active.svg │ ├── icon-search.svg │ ├── icon-trash.svg │ ├── icon-tv.svg │ └── icon-user.svg ├── logo.svg └── styles │ ├── _agenda-item-form.css │ ├── _agenda-item.css │ ├── _agenda.css │ ├── _alert.css │ ├── _avatar.css │ ├── _badge.css │ ├── _button-group.css │ ├── _button.css │ ├── _calendar-event.css │ ├── _calendar-view.css │ ├── _card.css │ ├── _checkbox.css │ ├── _common.css │ ├── _container.css │ ├── _dropdown.css │ ├── _fonts.css │ ├── _footer.css │ ├── _form-group.css │ ├── _form.css │ ├── _header.css │ ├── _icon.css │ ├── _image-uploader.css │ ├── _input-group.css │ ├── _layout.css │ ├── _link.css │ ├── _logo.css │ ├── _meetup-cover.css │ ├── _meetup-description.css │ ├── _meetup-form.css │ ├── _meetup-info.css │ ├── _meetups-list.css │ ├── _nav.css │ ├── _page-auth.css │ ├── _page-meetup-form.css │ ├── _page-meetup.css │ ├── _page-meetups.css │ ├── _page_not-found.css │ ├── _progress.css │ ├── _radio-group.css │ ├── _tabs.css │ ├── _title.css │ ├── _toaster.css │ ├── _transitions.css │ ├── _variables.css │ └── index.css ├── images └── undraw_conference_speaker_6nt7.svg ├── package.json ├── project └── project-sample │ ├── .editorconfig │ ├── .env │ ├── .env.production │ ├── .eslintrc.js │ ├── .gitattributes │ ├── .gitignore │ ├── .prettierrc │ ├── README.md │ ├── index.html │ ├── package-lock.json │ ├── package.json │ ├── public │ └── favicon.ico │ ├── src │ ├── App.vue │ ├── api │ │ ├── authApi.js │ │ ├── httpClient │ │ │ ├── ResultContainer.js │ │ │ └── httpClient.js │ │ ├── imageApi.js │ │ └── meetupsApi.js │ ├── assets │ │ ├── fonts │ │ │ ├── Nunito-cyrillic-ext.woff2 │ │ │ ├── Nunito-cyrillic.woff2 │ │ │ ├── Nunito-latin-ext.woff2 │ │ │ └── Nunito-latin.woff2 │ │ ├── icons │ │ │ ├── icon-alert-circle.svg │ │ │ ├── icon-cal-lg.svg │ │ │ ├── icon-cal-sm.svg │ │ │ ├── icon-check-circle.svg │ │ │ ├── icon-check.svg │ │ │ ├── icon-chevron-down.svg │ │ │ ├── icon-clock.svg │ │ │ ├── icon-coffee.svg │ │ │ ├── icon-key.svg │ │ │ ├── icon-list.svg │ │ │ ├── icon-map.svg │ │ │ ├── icon-pen-tool.svg │ │ │ ├── icon-pill-active.svg │ │ │ ├── icon-search.svg │ │ │ ├── icon-trash.svg │ │ │ ├── icon-tv.svg │ │ │ └── icon-user.svg │ │ ├── images │ │ │ └── undraw_conference_speaker_6nt7.svg │ │ ├── logo.svg │ │ └── styles │ │ │ ├── _agenda-item-form.css │ │ │ ├── _agenda-item.css │ │ │ ├── _agenda.css │ │ │ ├── _alert.css │ │ │ ├── _avatar.css │ │ │ ├── _badge.css │ │ │ ├── _button-group.css │ │ │ ├── _button.css │ │ │ ├── _calendar-event.css │ │ │ ├── _calendar-view.css │ │ │ ├── _card.css │ │ │ ├── _checkbox.css │ │ │ ├── _common.css │ │ │ ├── _container.css │ │ │ ├── _dropdown.css │ │ │ ├── _fonts.css │ │ │ ├── _footer.css │ │ │ ├── _form-group.css │ │ │ ├── _form.css │ │ │ ├── _header.css │ │ │ ├── _icon.css │ │ │ ├── _image-uploader.css │ │ │ ├── _input-group.css │ │ │ ├── _layout.css │ │ │ ├── _link.css │ │ │ ├── _logo.css │ │ │ ├── _meetup-cover.css │ │ │ ├── _meetup-description.css │ │ │ ├── _meetup-form.css │ │ │ ├── _meetup-info.css │ │ │ ├── _meetups-list.css │ │ │ ├── _nav.css │ │ │ ├── _page-auth.css │ │ │ ├── _page-meetup-form.css │ │ │ ├── _page-meetup.css │ │ │ ├── _page-meetups.css │ │ │ ├── _page_not-found.css │ │ │ ├── _progress.css │ │ │ ├── _radio-group.css │ │ │ ├── _tabs.css │ │ │ ├── _title.css │ │ │ ├── _toaster.css │ │ │ ├── _transitions.css │ │ │ ├── _variables.css │ │ │ ├── app.css │ │ │ ├── index.css │ │ │ └── taskbook.css │ ├── components │ │ ├── LayoutAuth.vue │ │ ├── LayoutBase.vue │ │ ├── LayoutMeetupForm.vue │ │ ├── MeetupAgenda.vue │ │ ├── MeetupAgendaItem.vue │ │ ├── MeetupAgendaItemForm.vue │ │ ├── MeetupCard.vue │ │ ├── MeetupCover.vue │ │ ├── MeetupDescription.vue │ │ ├── MeetupForm.vue │ │ ├── MeetupInfo.vue │ │ ├── MeetupView.vue │ │ ├── MeetupsCalendar.vue │ │ ├── MeetupsFooter.vue │ │ ├── MeetupsHeader.vue │ │ ├── MeetupsList.vue │ │ ├── MeetupsLogo.vue │ │ ├── MeetupsNav.vue │ │ ├── UiAlert.vue │ │ ├── UiBadge.vue │ │ ├── UiButton.vue │ │ ├── UiButtonGroup.vue │ │ ├── UiButtonGroupItem.vue │ │ ├── UiCalendarEvent.vue │ │ ├── UiCalendarView.vue │ │ ├── UiCard.vue │ │ ├── UiCheckbox.vue │ │ ├── UiContainer.vue │ │ ├── UiDropdown.vue │ │ ├── UiForm.vue │ │ ├── UiFormGroup.vue │ │ ├── UiIcon.vue │ │ ├── UiImageUploader.vue │ │ ├── UiInput.vue │ │ ├── UiInputDate.vue │ │ ├── UiLink.vue │ │ ├── UiPageTitle.vue │ │ ├── UiRadioGroup.vue │ │ ├── UiTab.vue │ │ ├── UiTabs.vue │ │ ├── UiTransitionFade.vue │ │ └── UiTransitionGroupFade.vue │ ├── composables │ │ ├── useApi.js │ │ ├── useMeetupFetch.js │ │ ├── useMeetupsFetch.js │ │ └── useMeetupsFilter.js │ ├── jsdoc.types.js │ ├── main.js │ ├── plugins │ │ ├── progress │ │ │ ├── TheTopProgressBar.vue │ │ │ ├── index.js │ │ │ └── useGsap.js │ │ └── toaster │ │ │ ├── TheToaster.vue │ │ │ └── index.js │ ├── router │ │ ├── authGuard.js │ │ ├── index.js │ │ └── scrollBehaviour.js │ ├── services │ │ ├── authService.js │ │ └── meetupService.js │ ├── stores │ │ └── useAuthStore.js │ ├── utils │ │ └── dateUtils.js │ └── views │ │ ├── PageCreateMeetup.vue │ │ ├── PageEditMeetup.vue │ │ ├── PageLogin.vue │ │ ├── PageMeetup.vue │ │ ├── PageMeetupAgenda.vue │ │ ├── PageMeetupDescription.vue │ │ ├── PageMeetups.vue │ │ ├── PageNotFound.vue │ │ ├── PageRegister.vue │ │ └── demo │ │ ├── DemoComponent.vue │ │ ├── DemoSection.vue │ │ ├── PageDemo.vue │ │ └── meetups.js │ └── vite.config.js └── serve.json /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/.editorconfig -------------------------------------------------------------------------------- /.eslintrc.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/.eslintrc.js -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/.gitignore -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- 1 | **/vendor/*.js 2 | -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/.prettierrc -------------------------------------------------------------------------------- /01-basics/api/meetups.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/01-basics/api/meetups.json -------------------------------------------------------------------------------- /01-basics/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/01-basics/index.html -------------------------------------------------------------------------------- /01-basics/script.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/01-basics/script.js -------------------------------------------------------------------------------- /01-basics/vendor/vue.esm-browser.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/01-basics/vendor/vue.esm-browser.js -------------------------------------------------------------------------------- /02-components/api/meetups.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/02-components/api/meetups.json -------------------------------------------------------------------------------- /02-components/components/App.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/02-components/components/App.js -------------------------------------------------------------------------------- /02-components/components/MeetupCard.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/02-components/components/MeetupCard.js -------------------------------------------------------------------------------- /02-components/components/MeetupsCalendar.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/02-components/components/MeetupsCalendar.js -------------------------------------------------------------------------------- /02-components/components/MeetupsList.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/02-components/components/MeetupsList.js -------------------------------------------------------------------------------- /02-components/components/PageMeetups.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/02-components/components/PageMeetups.js -------------------------------------------------------------------------------- /02-components/components/UiAlert.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/02-components/components/UiAlert.js -------------------------------------------------------------------------------- /02-components/components/UiBadge.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/02-components/components/UiBadge.js -------------------------------------------------------------------------------- /02-components/components/UiButtonGroup.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/02-components/components/UiButtonGroup.js -------------------------------------------------------------------------------- /02-components/components/UiCard.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/02-components/components/UiCard.js -------------------------------------------------------------------------------- /02-components/components/UiContainer.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/02-components/components/UiContainer.js -------------------------------------------------------------------------------- /02-components/components/UiRadioGroup.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/02-components/components/UiRadioGroup.js -------------------------------------------------------------------------------- /02-components/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/02-components/index.html -------------------------------------------------------------------------------- /02-components/script.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/02-components/script.js -------------------------------------------------------------------------------- /02-components/vendor/vue.esm-browser.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/02-components/vendor/vue.esm-browser.js -------------------------------------------------------------------------------- /03-sfc/.browserslistrc: -------------------------------------------------------------------------------- 1 | > 1% 2 | last 2 versions 3 | not dead 4 | -------------------------------------------------------------------------------- /03-sfc/.eslintrc.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/03-sfc/.eslintrc.js -------------------------------------------------------------------------------- /03-sfc/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/03-sfc/.gitignore -------------------------------------------------------------------------------- /03-sfc/.prettierrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/03-sfc/.prettierrc -------------------------------------------------------------------------------- /03-sfc/babel.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/03-sfc/babel.config.js -------------------------------------------------------------------------------- /03-sfc/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/03-sfc/package-lock.json -------------------------------------------------------------------------------- /03-sfc/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/03-sfc/package.json -------------------------------------------------------------------------------- /03-sfc/postcss.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/03-sfc/postcss.config.js -------------------------------------------------------------------------------- /03-sfc/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/03-sfc/src/App.vue -------------------------------------------------------------------------------- /03-sfc/src/UiButton.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/03-sfc/src/UiButton.vue -------------------------------------------------------------------------------- /03-sfc/src/UiButtonCssModule.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/03-sfc/src/UiButtonCssModule.vue -------------------------------------------------------------------------------- /03-sfc/src/UiButtonCssScoped.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/03-sfc/src/UiButtonCssScoped.vue -------------------------------------------------------------------------------- /03-sfc/src/UiText.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/03-sfc/src/UiText.vue -------------------------------------------------------------------------------- /03-sfc/src/UiTextCssModule.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/03-sfc/src/UiTextCssModule.vue -------------------------------------------------------------------------------- /03-sfc/src/assets/fonts/Nunito-cyrillic-ext.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/03-sfc/src/assets/fonts/Nunito-cyrillic-ext.woff2 -------------------------------------------------------------------------------- /03-sfc/src/assets/fonts/Nunito-cyrillic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/03-sfc/src/assets/fonts/Nunito-cyrillic.woff2 -------------------------------------------------------------------------------- /03-sfc/src/assets/fonts/Nunito-latin-ext.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/03-sfc/src/assets/fonts/Nunito-latin-ext.woff2 -------------------------------------------------------------------------------- /03-sfc/src/assets/fonts/Nunito-latin.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/03-sfc/src/assets/fonts/Nunito-latin.woff2 -------------------------------------------------------------------------------- /03-sfc/src/assets/styles/_common.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/03-sfc/src/assets/styles/_common.css -------------------------------------------------------------------------------- /03-sfc/src/assets/styles/_fonts.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/03-sfc/src/assets/styles/_fonts.css -------------------------------------------------------------------------------- /03-sfc/src/assets/styles/_variables.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/03-sfc/src/assets/styles/_variables.css -------------------------------------------------------------------------------- /03-sfc/src/assets/styles/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/03-sfc/src/assets/styles/index.css -------------------------------------------------------------------------------- /03-sfc/src/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/03-sfc/src/index.html -------------------------------------------------------------------------------- /03-sfc/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/03-sfc/src/main.js -------------------------------------------------------------------------------- /03-sfc/webpack.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/03-sfc/webpack.config.js -------------------------------------------------------------------------------- /04-bundlers/01-vue-cli/.browserslistrc: -------------------------------------------------------------------------------- 1 | > 1% 2 | last 2 versions 3 | not dead 4 | -------------------------------------------------------------------------------- /04-bundlers/01-vue-cli/.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/01-vue-cli/.env -------------------------------------------------------------------------------- /04-bundlers/01-vue-cli/.env.production: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/01-vue-cli/.env.production -------------------------------------------------------------------------------- /04-bundlers/01-vue-cli/.eslintrc.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/01-vue-cli/.eslintrc.js -------------------------------------------------------------------------------- /04-bundlers/01-vue-cli/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/01-vue-cli/.gitignore -------------------------------------------------------------------------------- /04-bundlers/01-vue-cli/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/01-vue-cli/README.md -------------------------------------------------------------------------------- /04-bundlers/01-vue-cli/babel.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/01-vue-cli/babel.config.js -------------------------------------------------------------------------------- /04-bundlers/01-vue-cli/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/01-vue-cli/package-lock.json -------------------------------------------------------------------------------- /04-bundlers/01-vue-cli/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/01-vue-cli/package.json -------------------------------------------------------------------------------- /04-bundlers/01-vue-cli/public/api/meetups.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/01-vue-cli/public/api/meetups.json -------------------------------------------------------------------------------- /04-bundlers/01-vue-cli/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/01-vue-cli/public/favicon.ico -------------------------------------------------------------------------------- /04-bundlers/01-vue-cli/public/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/01-vue-cli/public/index.html -------------------------------------------------------------------------------- /04-bundlers/01-vue-cli/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/01-vue-cli/src/App.vue -------------------------------------------------------------------------------- /04-bundlers/01-vue-cli/src/api.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/01-vue-cli/src/api.js -------------------------------------------------------------------------------- /04-bundlers/01-vue-cli/src/assets/logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/01-vue-cli/src/assets/logo.svg -------------------------------------------------------------------------------- /04-bundlers/01-vue-cli/src/assets/styles/_avatar.css: -------------------------------------------------------------------------------- 1 | .avatar { 2 | border-radius: 100%; 3 | margin-right: 8px; 4 | } 5 | -------------------------------------------------------------------------------- /04-bundlers/01-vue-cli/src/assets/styles/_header.css: -------------------------------------------------------------------------------- 1 | .header { 2 | padding: 44px 0 32px; 3 | background-color: var(--white); 4 | } 5 | -------------------------------------------------------------------------------- /04-bundlers/01-vue-cli/src/assets/styles/_icon.css: -------------------------------------------------------------------------------- 1 | .icon { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /04-bundlers/01-vue-cli/src/assets/styles/_nav.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/01-vue-cli/src/assets/styles/_nav.css -------------------------------------------------------------------------------- /04-bundlers/01-vue-cli/src/components/UiAlert.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/01-vue-cli/src/components/UiAlert.vue -------------------------------------------------------------------------------- /04-bundlers/01-vue-cli/src/components/UiBadge.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/01-vue-cli/src/components/UiBadge.vue -------------------------------------------------------------------------------- /04-bundlers/01-vue-cli/src/components/UiCard.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/01-vue-cli/src/components/UiCard.vue -------------------------------------------------------------------------------- /04-bundlers/01-vue-cli/src/components/UiIcon.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/01-vue-cli/src/components/UiIcon.vue -------------------------------------------------------------------------------- /04-bundlers/01-vue-cli/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/01-vue-cli/src/main.js -------------------------------------------------------------------------------- /04-bundlers/01-vue-cli/vue.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/01-vue-cli/vue.config.js -------------------------------------------------------------------------------- /04-bundlers/02-vite/.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/02-vite/.env -------------------------------------------------------------------------------- /04-bundlers/02-vite/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/02-vite/.gitignore -------------------------------------------------------------------------------- /04-bundlers/02-vite/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/02-vite/README.md -------------------------------------------------------------------------------- /04-bundlers/02-vite/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/02-vite/index.html -------------------------------------------------------------------------------- /04-bundlers/02-vite/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/02-vite/package-lock.json -------------------------------------------------------------------------------- /04-bundlers/02-vite/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/02-vite/package.json -------------------------------------------------------------------------------- /04-bundlers/02-vite/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/02-vite/public/favicon.ico -------------------------------------------------------------------------------- /04-bundlers/02-vite/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/02-vite/src/App.vue -------------------------------------------------------------------------------- /04-bundlers/02-vite/src/api.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/02-vite/src/api.js -------------------------------------------------------------------------------- /04-bundlers/02-vite/src/assets/icons/icon-key.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/02-vite/src/assets/icons/icon-key.svg -------------------------------------------------------------------------------- /04-bundlers/02-vite/src/assets/icons/icon-map.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/02-vite/src/assets/icons/icon-map.svg -------------------------------------------------------------------------------- /04-bundlers/02-vite/src/assets/icons/icon-tv.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/02-vite/src/assets/icons/icon-tv.svg -------------------------------------------------------------------------------- /04-bundlers/02-vite/src/assets/logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/02-vite/src/assets/logo.svg -------------------------------------------------------------------------------- /04-bundlers/02-vite/src/assets/styles/_agenda.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/02-vite/src/assets/styles/_agenda.css -------------------------------------------------------------------------------- /04-bundlers/02-vite/src/assets/styles/_alert.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/02-vite/src/assets/styles/_alert.css -------------------------------------------------------------------------------- /04-bundlers/02-vite/src/assets/styles/_avatar.css: -------------------------------------------------------------------------------- 1 | .avatar { 2 | border-radius: 100%; 3 | margin-right: 8px; 4 | } 5 | -------------------------------------------------------------------------------- /04-bundlers/02-vite/src/assets/styles/_badge.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/02-vite/src/assets/styles/_badge.css -------------------------------------------------------------------------------- /04-bundlers/02-vite/src/assets/styles/_button.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/02-vite/src/assets/styles/_button.css -------------------------------------------------------------------------------- /04-bundlers/02-vite/src/assets/styles/_card.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/02-vite/src/assets/styles/_card.css -------------------------------------------------------------------------------- /04-bundlers/02-vite/src/assets/styles/_common.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/02-vite/src/assets/styles/_common.css -------------------------------------------------------------------------------- /04-bundlers/02-vite/src/assets/styles/_fonts.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/02-vite/src/assets/styles/_fonts.css -------------------------------------------------------------------------------- /04-bundlers/02-vite/src/assets/styles/_footer.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/02-vite/src/assets/styles/_footer.css -------------------------------------------------------------------------------- /04-bundlers/02-vite/src/assets/styles/_form.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/02-vite/src/assets/styles/_form.css -------------------------------------------------------------------------------- /04-bundlers/02-vite/src/assets/styles/_header.css: -------------------------------------------------------------------------------- 1 | .header { 2 | padding: 44px 0 32px; 3 | background-color: var(--white); 4 | } 5 | -------------------------------------------------------------------------------- /04-bundlers/02-vite/src/assets/styles/_icon.css: -------------------------------------------------------------------------------- 1 | .icon { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /04-bundlers/02-vite/src/assets/styles/_layout.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/02-vite/src/assets/styles/_layout.css -------------------------------------------------------------------------------- /04-bundlers/02-vite/src/assets/styles/_link.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/02-vite/src/assets/styles/_link.css -------------------------------------------------------------------------------- /04-bundlers/02-vite/src/assets/styles/_logo.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/02-vite/src/assets/styles/_logo.css -------------------------------------------------------------------------------- /04-bundlers/02-vite/src/assets/styles/_nav.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/02-vite/src/assets/styles/_nav.css -------------------------------------------------------------------------------- /04-bundlers/02-vite/src/assets/styles/_tabs.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/02-vite/src/assets/styles/_tabs.css -------------------------------------------------------------------------------- /04-bundlers/02-vite/src/assets/styles/_title.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/02-vite/src/assets/styles/_title.css -------------------------------------------------------------------------------- /04-bundlers/02-vite/src/assets/styles/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/02-vite/src/assets/styles/index.css -------------------------------------------------------------------------------- /04-bundlers/02-vite/src/components/MeetupCard.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/02-vite/src/components/MeetupCard.vue -------------------------------------------------------------------------------- /04-bundlers/02-vite/src/components/UiAlert.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/02-vite/src/components/UiAlert.vue -------------------------------------------------------------------------------- /04-bundlers/02-vite/src/components/UiBadge.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/02-vite/src/components/UiBadge.vue -------------------------------------------------------------------------------- /04-bundlers/02-vite/src/components/UiCard.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/02-vite/src/components/UiCard.vue -------------------------------------------------------------------------------- /04-bundlers/02-vite/src/components/UiIcon.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/02-vite/src/components/UiIcon.vue -------------------------------------------------------------------------------- /04-bundlers/02-vite/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/02-vite/src/main.js -------------------------------------------------------------------------------- /04-bundlers/02-vite/vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/04-bundlers/02-vite/vite.config.js -------------------------------------------------------------------------------- /05-spa/01-simple-router/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/05-spa/01-simple-router/index.html -------------------------------------------------------------------------------- /05-spa/01-simple-router/script.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/05-spa/01-simple-router/script.js -------------------------------------------------------------------------------- /05-spa/01-simple-router/vendor/vue.esm-browser.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/05-spa/01-simple-router/vendor/vue.esm-browser.js -------------------------------------------------------------------------------- /05-spa/02-vue-router/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/05-spa/02-vue-router/.gitignore -------------------------------------------------------------------------------- /05-spa/02-vue-router/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/05-spa/02-vue-router/index.html -------------------------------------------------------------------------------- /05-spa/02-vue-router/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/05-spa/02-vue-router/package-lock.json -------------------------------------------------------------------------------- /05-spa/02-vue-router/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/05-spa/02-vue-router/package.json -------------------------------------------------------------------------------- /05-spa/02-vue-router/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/05-spa/02-vue-router/public/favicon.ico -------------------------------------------------------------------------------- /05-spa/02-vue-router/public/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/05-spa/02-vue-router/public/index.html -------------------------------------------------------------------------------- /05-spa/02-vue-router/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/05-spa/02-vue-router/src/App.vue -------------------------------------------------------------------------------- /05-spa/02-vue-router/src/api.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/05-spa/02-vue-router/src/api.js -------------------------------------------------------------------------------- /05-spa/02-vue-router/src/assets/icons/icon-tv.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/05-spa/02-vue-router/src/assets/icons/icon-tv.svg -------------------------------------------------------------------------------- /05-spa/02-vue-router/src/assets/logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/05-spa/02-vue-router/src/assets/logo.svg -------------------------------------------------------------------------------- /05-spa/02-vue-router/src/assets/styles/_alert.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/05-spa/02-vue-router/src/assets/styles/_alert.css -------------------------------------------------------------------------------- /05-spa/02-vue-router/src/assets/styles/_avatar.css: -------------------------------------------------------------------------------- 1 | .avatar { 2 | border-radius: 100%; 3 | margin-right: 8px; 4 | } 5 | -------------------------------------------------------------------------------- /05-spa/02-vue-router/src/assets/styles/_badge.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/05-spa/02-vue-router/src/assets/styles/_badge.css -------------------------------------------------------------------------------- /05-spa/02-vue-router/src/assets/styles/_card.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/05-spa/02-vue-router/src/assets/styles/_card.css -------------------------------------------------------------------------------- /05-spa/02-vue-router/src/assets/styles/_fonts.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/05-spa/02-vue-router/src/assets/styles/_fonts.css -------------------------------------------------------------------------------- /05-spa/02-vue-router/src/assets/styles/_form.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/05-spa/02-vue-router/src/assets/styles/_form.css -------------------------------------------------------------------------------- /05-spa/02-vue-router/src/assets/styles/_header.css: -------------------------------------------------------------------------------- 1 | .header { 2 | padding: 44px 0 32px; 3 | background-color: var(--white); 4 | } 5 | -------------------------------------------------------------------------------- /05-spa/02-vue-router/src/assets/styles/_icon.css: -------------------------------------------------------------------------------- 1 | .icon { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /05-spa/02-vue-router/src/assets/styles/_link.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/05-spa/02-vue-router/src/assets/styles/_link.css -------------------------------------------------------------------------------- /05-spa/02-vue-router/src/assets/styles/_logo.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/05-spa/02-vue-router/src/assets/styles/_logo.css -------------------------------------------------------------------------------- /05-spa/02-vue-router/src/assets/styles/_nav.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/05-spa/02-vue-router/src/assets/styles/_nav.css -------------------------------------------------------------------------------- /05-spa/02-vue-router/src/assets/styles/_tabs.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/05-spa/02-vue-router/src/assets/styles/_tabs.css -------------------------------------------------------------------------------- /05-spa/02-vue-router/src/assets/styles/_title.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/05-spa/02-vue-router/src/assets/styles/_title.css -------------------------------------------------------------------------------- /05-spa/02-vue-router/src/assets/styles/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/05-spa/02-vue-router/src/assets/styles/index.css -------------------------------------------------------------------------------- /05-spa/02-vue-router/src/components/UiAlert.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/05-spa/02-vue-router/src/components/UiAlert.vue -------------------------------------------------------------------------------- /05-spa/02-vue-router/src/components/UiBadge.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/05-spa/02-vue-router/src/components/UiBadge.vue -------------------------------------------------------------------------------- /05-spa/02-vue-router/src/components/UiCard.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/05-spa/02-vue-router/src/components/UiCard.vue -------------------------------------------------------------------------------- /05-spa/02-vue-router/src/components/UiIcon.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/05-spa/02-vue-router/src/components/UiIcon.vue -------------------------------------------------------------------------------- /05-spa/02-vue-router/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/05-spa/02-vue-router/src/main.js -------------------------------------------------------------------------------- /05-spa/02-vue-router/src/router/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/05-spa/02-vue-router/src/router/index.js -------------------------------------------------------------------------------- /05-spa/02-vue-router/src/views/PageMeetup.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/05-spa/02-vue-router/src/views/PageMeetup.vue -------------------------------------------------------------------------------- /05-spa/02-vue-router/src/views/PageMeetups.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/05-spa/02-vue-router/src/views/PageMeetups.vue -------------------------------------------------------------------------------- /05-spa/02-vue-router/vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/05-spa/02-vue-router/vite.config.js -------------------------------------------------------------------------------- /06-wrappers/01-dynamic-component/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/06-wrappers/01-dynamic-component/.gitignore -------------------------------------------------------------------------------- /06-wrappers/01-dynamic-component/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/06-wrappers/01-dynamic-component/index.html -------------------------------------------------------------------------------- /06-wrappers/01-dynamic-component/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/06-wrappers/01-dynamic-component/package.json -------------------------------------------------------------------------------- /06-wrappers/01-dynamic-component/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/06-wrappers/01-dynamic-component/src/App.vue -------------------------------------------------------------------------------- /06-wrappers/01-dynamic-component/src/api.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/06-wrappers/01-dynamic-component/src/api.js -------------------------------------------------------------------------------- /06-wrappers/01-dynamic-component/src/assets/styles/_avatar.css: -------------------------------------------------------------------------------- 1 | .avatar { 2 | border-radius: 100%; 3 | margin-right: 8px; 4 | } 5 | -------------------------------------------------------------------------------- /06-wrappers/01-dynamic-component/src/assets/styles/_header.css: -------------------------------------------------------------------------------- 1 | .header { 2 | padding: 44px 0 32px; 3 | background-color: var(--white); 4 | } 5 | -------------------------------------------------------------------------------- /06-wrappers/01-dynamic-component/src/assets/styles/_icon.css: -------------------------------------------------------------------------------- 1 | .icon { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /06-wrappers/01-dynamic-component/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/06-wrappers/01-dynamic-component/src/main.js -------------------------------------------------------------------------------- /06-wrappers/01-dynamic-component/vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/06-wrappers/01-dynamic-component/vite.config.js -------------------------------------------------------------------------------- /06-wrappers/02-wrapper/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/06-wrappers/02-wrapper/.gitignore -------------------------------------------------------------------------------- /06-wrappers/02-wrapper/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/06-wrappers/02-wrapper/index.html -------------------------------------------------------------------------------- /06-wrappers/02-wrapper/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/06-wrappers/02-wrapper/package-lock.json -------------------------------------------------------------------------------- /06-wrappers/02-wrapper/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/06-wrappers/02-wrapper/package.json -------------------------------------------------------------------------------- /06-wrappers/02-wrapper/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/06-wrappers/02-wrapper/public/favicon.ico -------------------------------------------------------------------------------- /06-wrappers/02-wrapper/public/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/06-wrappers/02-wrapper/public/index.html -------------------------------------------------------------------------------- /06-wrappers/02-wrapper/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/06-wrappers/02-wrapper/src/App.vue -------------------------------------------------------------------------------- /06-wrappers/02-wrapper/src/assets/logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/06-wrappers/02-wrapper/src/assets/logo.svg -------------------------------------------------------------------------------- /06-wrappers/02-wrapper/src/assets/styles/_avatar.css: -------------------------------------------------------------------------------- 1 | .avatar { 2 | border-radius: 100%; 3 | margin-right: 8px; 4 | } 5 | -------------------------------------------------------------------------------- /06-wrappers/02-wrapper/src/assets/styles/_header.css: -------------------------------------------------------------------------------- 1 | .header { 2 | padding: 44px 0 32px; 3 | background-color: var(--white); 4 | } 5 | -------------------------------------------------------------------------------- /06-wrappers/02-wrapper/src/assets/styles/_icon.css: -------------------------------------------------------------------------------- 1 | .icon { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /06-wrappers/02-wrapper/src/assets/styles/_nav.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/06-wrappers/02-wrapper/src/assets/styles/_nav.css -------------------------------------------------------------------------------- /06-wrappers/02-wrapper/src/components/UiIcon.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/06-wrappers/02-wrapper/src/components/UiIcon.vue -------------------------------------------------------------------------------- /06-wrappers/02-wrapper/src/components/UiInput.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/06-wrappers/02-wrapper/src/components/UiInput.vue -------------------------------------------------------------------------------- /06-wrappers/02-wrapper/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/06-wrappers/02-wrapper/src/main.js -------------------------------------------------------------------------------- /06-wrappers/02-wrapper/vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/06-wrappers/02-wrapper/vite.config.js -------------------------------------------------------------------------------- /07-forms/01-simple-form/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/01-simple-form/.gitignore -------------------------------------------------------------------------------- /07-forms/01-simple-form/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/01-simple-form/index.html -------------------------------------------------------------------------------- /07-forms/01-simple-form/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/01-simple-form/package-lock.json -------------------------------------------------------------------------------- /07-forms/01-simple-form/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/01-simple-form/package.json -------------------------------------------------------------------------------- /07-forms/01-simple-form/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/01-simple-form/src/App.vue -------------------------------------------------------------------------------- /07-forms/01-simple-form/src/assets/logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/01-simple-form/src/assets/logo.svg -------------------------------------------------------------------------------- /07-forms/01-simple-form/src/assets/styles/_avatar.css: -------------------------------------------------------------------------------- 1 | .avatar { 2 | border-radius: 100%; 3 | margin-right: 8px; 4 | } 5 | -------------------------------------------------------------------------------- /07-forms/01-simple-form/src/assets/styles/_header.css: -------------------------------------------------------------------------------- 1 | .header { 2 | padding: 44px 0 32px; 3 | background-color: var(--white); 4 | } 5 | -------------------------------------------------------------------------------- /07-forms/01-simple-form/src/assets/styles/_icon.css: -------------------------------------------------------------------------------- 1 | .icon { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /07-forms/01-simple-form/src/assets/styles/app.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/01-simple-form/src/assets/styles/app.css -------------------------------------------------------------------------------- /07-forms/01-simple-form/src/components/UiIcon.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/01-simple-form/src/components/UiIcon.vue -------------------------------------------------------------------------------- /07-forms/01-simple-form/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/01-simple-form/src/main.js -------------------------------------------------------------------------------- /07-forms/01-simple-form/vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/01-simple-form/vite.config.js -------------------------------------------------------------------------------- /07-forms/02-local-prop-submit/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/02-local-prop-submit/.gitignore -------------------------------------------------------------------------------- /07-forms/02-local-prop-submit/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/02-local-prop-submit/index.html -------------------------------------------------------------------------------- /07-forms/02-local-prop-submit/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/02-local-prop-submit/package-lock.json -------------------------------------------------------------------------------- /07-forms/02-local-prop-submit/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/02-local-prop-submit/package.json -------------------------------------------------------------------------------- /07-forms/02-local-prop-submit/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/02-local-prop-submit/src/App.vue -------------------------------------------------------------------------------- /07-forms/02-local-prop-submit/src/assets/logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/02-local-prop-submit/src/assets/logo.svg -------------------------------------------------------------------------------- /07-forms/02-local-prop-submit/src/assets/styles/_avatar.css: -------------------------------------------------------------------------------- 1 | .avatar { 2 | border-radius: 100%; 3 | margin-right: 8px; 4 | } 5 | -------------------------------------------------------------------------------- /07-forms/02-local-prop-submit/src/assets/styles/_header.css: -------------------------------------------------------------------------------- 1 | .header { 2 | padding: 44px 0 32px; 3 | background-color: var(--white); 4 | } 5 | -------------------------------------------------------------------------------- /07-forms/02-local-prop-submit/src/assets/styles/_icon.css: -------------------------------------------------------------------------------- 1 | .icon { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /07-forms/02-local-prop-submit/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/02-local-prop-submit/src/main.js -------------------------------------------------------------------------------- /07-forms/02-local-prop-submit/vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/02-local-prop-submit/vite.config.js -------------------------------------------------------------------------------- /07-forms/03-one-way-sync/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/03-one-way-sync/.gitignore -------------------------------------------------------------------------------- /07-forms/03-one-way-sync/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/03-one-way-sync/index.html -------------------------------------------------------------------------------- /07-forms/03-one-way-sync/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/03-one-way-sync/package-lock.json -------------------------------------------------------------------------------- /07-forms/03-one-way-sync/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/03-one-way-sync/package.json -------------------------------------------------------------------------------- /07-forms/03-one-way-sync/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/03-one-way-sync/src/App.vue -------------------------------------------------------------------------------- /07-forms/03-one-way-sync/src/assets/logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/03-one-way-sync/src/assets/logo.svg -------------------------------------------------------------------------------- /07-forms/03-one-way-sync/src/assets/styles/_avatar.css: -------------------------------------------------------------------------------- 1 | .avatar { 2 | border-radius: 100%; 3 | margin-right: 8px; 4 | } 5 | -------------------------------------------------------------------------------- /07-forms/03-one-way-sync/src/assets/styles/_header.css: -------------------------------------------------------------------------------- 1 | .header { 2 | padding: 44px 0 32px; 3 | background-color: var(--white); 4 | } 5 | -------------------------------------------------------------------------------- /07-forms/03-one-way-sync/src/assets/styles/_icon.css: -------------------------------------------------------------------------------- 1 | .icon { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /07-forms/03-one-way-sync/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/03-one-way-sync/src/main.js -------------------------------------------------------------------------------- /07-forms/03-one-way-sync/vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/03-one-way-sync/vite.config.js -------------------------------------------------------------------------------- /07-forms/04-two-way-sync/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/04-two-way-sync/.gitignore -------------------------------------------------------------------------------- /07-forms/04-two-way-sync/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/04-two-way-sync/index.html -------------------------------------------------------------------------------- /07-forms/04-two-way-sync/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/04-two-way-sync/package-lock.json -------------------------------------------------------------------------------- /07-forms/04-two-way-sync/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/04-two-way-sync/package.json -------------------------------------------------------------------------------- /07-forms/04-two-way-sync/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/04-two-way-sync/src/App.vue -------------------------------------------------------------------------------- /07-forms/04-two-way-sync/src/assets/logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/04-two-way-sync/src/assets/logo.svg -------------------------------------------------------------------------------- /07-forms/04-two-way-sync/src/assets/styles/_avatar.css: -------------------------------------------------------------------------------- 1 | .avatar { 2 | border-radius: 100%; 3 | margin-right: 8px; 4 | } 5 | -------------------------------------------------------------------------------- /07-forms/04-two-way-sync/src/assets/styles/_header.css: -------------------------------------------------------------------------------- 1 | .header { 2 | padding: 44px 0 32px; 3 | background-color: var(--white); 4 | } 5 | -------------------------------------------------------------------------------- /07-forms/04-two-way-sync/src/assets/styles/_icon.css: -------------------------------------------------------------------------------- 1 | .icon { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /07-forms/04-two-way-sync/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/04-two-way-sync/src/main.js -------------------------------------------------------------------------------- /07-forms/04-two-way-sync/vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/04-two-way-sync/vite.config.js -------------------------------------------------------------------------------- /07-forms/05-key-value-setter/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/05-key-value-setter/.gitignore -------------------------------------------------------------------------------- /07-forms/05-key-value-setter/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/05-key-value-setter/index.html -------------------------------------------------------------------------------- /07-forms/05-key-value-setter/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/05-key-value-setter/package-lock.json -------------------------------------------------------------------------------- /07-forms/05-key-value-setter/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/05-key-value-setter/package.json -------------------------------------------------------------------------------- /07-forms/05-key-value-setter/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/05-key-value-setter/src/App.vue -------------------------------------------------------------------------------- /07-forms/05-key-value-setter/src/assets/logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/05-key-value-setter/src/assets/logo.svg -------------------------------------------------------------------------------- /07-forms/05-key-value-setter/src/assets/styles/_avatar.css: -------------------------------------------------------------------------------- 1 | .avatar { 2 | border-radius: 100%; 3 | margin-right: 8px; 4 | } 5 | -------------------------------------------------------------------------------- /07-forms/05-key-value-setter/src/assets/styles/_header.css: -------------------------------------------------------------------------------- 1 | .header { 2 | padding: 44px 0 32px; 3 | background-color: var(--white); 4 | } 5 | -------------------------------------------------------------------------------- /07-forms/05-key-value-setter/src/assets/styles/_icon.css: -------------------------------------------------------------------------------- 1 | .icon { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /07-forms/05-key-value-setter/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/05-key-value-setter/src/main.js -------------------------------------------------------------------------------- /07-forms/05-key-value-setter/vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/07-forms/05-key-value-setter/vite.config.js -------------------------------------------------------------------------------- /08-reactivity/01-vue3/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/08-reactivity/01-vue3/index.html -------------------------------------------------------------------------------- /08-reactivity/01-vue3/script.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/08-reactivity/01-vue3/script.js -------------------------------------------------------------------------------- /08-reactivity/01-vue3/vendor/vue.esm-browser.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/08-reactivity/01-vue3/vendor/vue.esm-browser.js -------------------------------------------------------------------------------- /08-reactivity/02-vue2/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/08-reactivity/02-vue2/index.html -------------------------------------------------------------------------------- /08-reactivity/02-vue2/script.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/08-reactivity/02-vue2/script.js -------------------------------------------------------------------------------- /08-reactivity/02-vue2/vendor/vue2.esm.browser.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/08-reactivity/02-vue2/vendor/vue2.esm.browser.js -------------------------------------------------------------------------------- /09-rendering/01-key/CanvasText.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/09-rendering/01-key/CanvasText.js -------------------------------------------------------------------------------- /09-rendering/01-key/CounterButton.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/09-rendering/01-key/CounterButton.js -------------------------------------------------------------------------------- /09-rendering/01-key/InputWithoutBinding.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/09-rendering/01-key/InputWithoutBinding.js -------------------------------------------------------------------------------- /09-rendering/01-key/ListItem.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/09-rendering/01-key/ListItem.js -------------------------------------------------------------------------------- /09-rendering/01-key/ListItemWithCounterButton.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/09-rendering/01-key/ListItemWithCounterButton.js -------------------------------------------------------------------------------- /09-rendering/01-key/SlowListItem.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/09-rendering/01-key/SlowListItem.js -------------------------------------------------------------------------------- /09-rendering/01-key/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/09-rendering/01-key/index.html -------------------------------------------------------------------------------- /09-rendering/01-key/script.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/09-rendering/01-key/script.js -------------------------------------------------------------------------------- /09-rendering/01-key/vendor/vue.esm-browser.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/09-rendering/01-key/vendor/vue.esm-browser.js -------------------------------------------------------------------------------- /09-rendering/02-render-function/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/09-rendering/02-render-function/.gitignore -------------------------------------------------------------------------------- /09-rendering/02-render-function/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/09-rendering/02-render-function/index.html -------------------------------------------------------------------------------- /09-rendering/02-render-function/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/09-rendering/02-render-function/package-lock.json -------------------------------------------------------------------------------- /09-rendering/02-render-function/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/09-rendering/02-render-function/package.json -------------------------------------------------------------------------------- /09-rendering/02-render-function/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/09-rendering/02-render-function/src/App.vue -------------------------------------------------------------------------------- /09-rendering/02-render-function/src/TextDiv.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/09-rendering/02-render-function/src/TextDiv.vue -------------------------------------------------------------------------------- /09-rendering/02-render-function/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/09-rendering/02-render-function/src/main.js -------------------------------------------------------------------------------- /09-rendering/02-render-function/vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/09-rendering/02-render-function/vite.config.js -------------------------------------------------------------------------------- /09-rendering/03-jsx/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/09-rendering/03-jsx/.gitignore -------------------------------------------------------------------------------- /09-rendering/03-jsx/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/09-rendering/03-jsx/index.html -------------------------------------------------------------------------------- /09-rendering/03-jsx/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/09-rendering/03-jsx/package-lock.json -------------------------------------------------------------------------------- /09-rendering/03-jsx/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/09-rendering/03-jsx/package.json -------------------------------------------------------------------------------- /09-rendering/03-jsx/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/09-rendering/03-jsx/src/App.vue -------------------------------------------------------------------------------- /09-rendering/03-jsx/src/CounterButton.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/09-rendering/03-jsx/src/CounterButton.vue -------------------------------------------------------------------------------- /09-rendering/03-jsx/src/FieldsetComponent.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/09-rendering/03-jsx/src/FieldsetComponent.vue -------------------------------------------------------------------------------- /09-rendering/03-jsx/src/TextDiv.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/09-rendering/03-jsx/src/TextDiv.vue -------------------------------------------------------------------------------- /09-rendering/03-jsx/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/09-rendering/03-jsx/src/main.js -------------------------------------------------------------------------------- /09-rendering/03-jsx/vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/09-rendering/03-jsx/vite.config.js -------------------------------------------------------------------------------- /09-rendering/04-keep-alive/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/09-rendering/04-keep-alive/.gitignore -------------------------------------------------------------------------------- /09-rendering/04-keep-alive/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/09-rendering/04-keep-alive/index.html -------------------------------------------------------------------------------- /09-rendering/04-keep-alive/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/09-rendering/04-keep-alive/package-lock.json -------------------------------------------------------------------------------- /09-rendering/04-keep-alive/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/09-rendering/04-keep-alive/package.json -------------------------------------------------------------------------------- /09-rendering/04-keep-alive/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/09-rendering/04-keep-alive/src/App.vue -------------------------------------------------------------------------------- /09-rendering/04-keep-alive/src/api.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/09-rendering/04-keep-alive/src/api.js -------------------------------------------------------------------------------- /09-rendering/04-keep-alive/src/assets/logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/09-rendering/04-keep-alive/src/assets/logo.svg -------------------------------------------------------------------------------- /09-rendering/04-keep-alive/src/assets/styles/_avatar.css: -------------------------------------------------------------------------------- 1 | .avatar { 2 | border-radius: 100%; 3 | margin-right: 8px; 4 | } 5 | -------------------------------------------------------------------------------- /09-rendering/04-keep-alive/src/assets/styles/_header.css: -------------------------------------------------------------------------------- 1 | .header { 2 | padding: 44px 0 32px; 3 | background-color: var(--white); 4 | } 5 | -------------------------------------------------------------------------------- /09-rendering/04-keep-alive/src/assets/styles/_icon.css: -------------------------------------------------------------------------------- 1 | .icon { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /09-rendering/04-keep-alive/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/09-rendering/04-keep-alive/src/main.js -------------------------------------------------------------------------------- /09-rendering/04-keep-alive/src/router/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/09-rendering/04-keep-alive/src/router/index.js -------------------------------------------------------------------------------- /09-rendering/04-keep-alive/vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/09-rendering/04-keep-alive/vite.config.js -------------------------------------------------------------------------------- /10-slots/01-render-item/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/10-slots/01-render-item/.gitignore -------------------------------------------------------------------------------- /10-slots/01-render-item/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/10-slots/01-render-item/index.html -------------------------------------------------------------------------------- /10-slots/01-render-item/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/10-slots/01-render-item/package-lock.json -------------------------------------------------------------------------------- /10-slots/01-render-item/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/10-slots/01-render-item/package.json -------------------------------------------------------------------------------- /10-slots/01-render-item/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/10-slots/01-render-item/src/App.vue -------------------------------------------------------------------------------- /10-slots/01-render-item/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/10-slots/01-render-item/src/main.js -------------------------------------------------------------------------------- /10-slots/01-render-item/vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/10-slots/01-render-item/vite.config.js -------------------------------------------------------------------------------- /10-slots/02-scoped-slots/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/10-slots/02-scoped-slots/.gitignore -------------------------------------------------------------------------------- /10-slots/02-scoped-slots/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/10-slots/02-scoped-slots/index.html -------------------------------------------------------------------------------- /10-slots/02-scoped-slots/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/10-slots/02-scoped-slots/package-lock.json -------------------------------------------------------------------------------- /10-slots/02-scoped-slots/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/10-slots/02-scoped-slots/package.json -------------------------------------------------------------------------------- /10-slots/02-scoped-slots/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/10-slots/02-scoped-slots/src/App.vue -------------------------------------------------------------------------------- /10-slots/02-scoped-slots/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/10-slots/02-scoped-slots/src/main.js -------------------------------------------------------------------------------- /10-slots/02-scoped-slots/vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/10-slots/02-scoped-slots/vite.config.js -------------------------------------------------------------------------------- /10-slots/03-renderless-components/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/10-slots/03-renderless-components/.gitignore -------------------------------------------------------------------------------- /10-slots/03-renderless-components/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/10-slots/03-renderless-components/index.html -------------------------------------------------------------------------------- /10-slots/03-renderless-components/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/10-slots/03-renderless-components/package.json -------------------------------------------------------------------------------- /10-slots/03-renderless-components/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/10-slots/03-renderless-components/src/App.vue -------------------------------------------------------------------------------- /10-slots/03-renderless-components/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/10-slots/03-renderless-components/src/main.js -------------------------------------------------------------------------------- /10-slots/03-renderless-components/vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/10-slots/03-renderless-components/vite.config.js -------------------------------------------------------------------------------- /10-slots/04-vue-router-slot/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/10-slots/04-vue-router-slot/.gitignore -------------------------------------------------------------------------------- /10-slots/04-vue-router-slot/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/10-slots/04-vue-router-slot/index.html -------------------------------------------------------------------------------- /10-slots/04-vue-router-slot/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/10-slots/04-vue-router-slot/package-lock.json -------------------------------------------------------------------------------- /10-slots/04-vue-router-slot/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/10-slots/04-vue-router-slot/package.json -------------------------------------------------------------------------------- /10-slots/04-vue-router-slot/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/10-slots/04-vue-router-slot/src/App.vue -------------------------------------------------------------------------------- /10-slots/04-vue-router-slot/src/api.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/10-slots/04-vue-router-slot/src/api.js -------------------------------------------------------------------------------- /10-slots/04-vue-router-slot/src/assets/logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/10-slots/04-vue-router-slot/src/assets/logo.svg -------------------------------------------------------------------------------- /10-slots/04-vue-router-slot/src/assets/styles/_avatar.css: -------------------------------------------------------------------------------- 1 | .avatar { 2 | border-radius: 100%; 3 | margin-right: 8px; 4 | } 5 | -------------------------------------------------------------------------------- /10-slots/04-vue-router-slot/src/assets/styles/_header.css: -------------------------------------------------------------------------------- 1 | .header { 2 | padding: 44px 0 32px; 3 | background-color: var(--white); 4 | } 5 | -------------------------------------------------------------------------------- /10-slots/04-vue-router-slot/src/assets/styles/_icon.css: -------------------------------------------------------------------------------- 1 | .icon { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /10-slots/04-vue-router-slot/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/10-slots/04-vue-router-slot/src/main.js -------------------------------------------------------------------------------- /10-slots/04-vue-router-slot/src/router/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/10-slots/04-vue-router-slot/src/router/index.js -------------------------------------------------------------------------------- /10-slots/04-vue-router-slot/vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/10-slots/04-vue-router-slot/vite.config.js -------------------------------------------------------------------------------- /11-communication/01-parent-container/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/01-parent-container/.gitignore -------------------------------------------------------------------------------- /11-communication/01-parent-container/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/01-parent-container/index.html -------------------------------------------------------------------------------- /11-communication/01-parent-container/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/01-parent-container/package.json -------------------------------------------------------------------------------- /11-communication/01-parent-container/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/01-parent-container/src/App.vue -------------------------------------------------------------------------------- /11-communication/01-parent-container/src/assets/styles/_avatar.css: -------------------------------------------------------------------------------- 1 | .avatar { 2 | border-radius: 100%; 3 | margin-right: 8px; 4 | } 5 | -------------------------------------------------------------------------------- /11-communication/01-parent-container/src/assets/styles/_header.css: -------------------------------------------------------------------------------- 1 | .header { 2 | padding: 44px 0 32px; 3 | background-color: var(--white); 4 | } 5 | -------------------------------------------------------------------------------- /11-communication/01-parent-container/src/assets/styles/_icon.css: -------------------------------------------------------------------------------- 1 | .icon { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /11-communication/01-parent-container/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/01-parent-container/src/main.js -------------------------------------------------------------------------------- /11-communication/03-root/App.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/03-root/App.js -------------------------------------------------------------------------------- /11-communication/03-root/IndexPage.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/03-root/IndexPage.js -------------------------------------------------------------------------------- /11-communication/03-root/SubPage.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/03-root/SubPage.js -------------------------------------------------------------------------------- /11-communication/03-root/TheToaster.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/03-root/TheToaster.js -------------------------------------------------------------------------------- /11-communication/03-root/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/03-root/index.html -------------------------------------------------------------------------------- /11-communication/03-root/script.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/03-root/script.js -------------------------------------------------------------------------------- /11-communication/04-bus/App.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/04-bus/App.js -------------------------------------------------------------------------------- /11-communication/04-bus/IndexPage.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/04-bus/IndexPage.js -------------------------------------------------------------------------------- /11-communication/04-bus/SubPage.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/04-bus/SubPage.js -------------------------------------------------------------------------------- /11-communication/04-bus/TheToaster.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/04-bus/TheToaster.js -------------------------------------------------------------------------------- /11-communication/04-bus/eventBus.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/04-bus/eventBus.js -------------------------------------------------------------------------------- /11-communication/04-bus/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/04-bus/index.html -------------------------------------------------------------------------------- /11-communication/04-bus/script.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/04-bus/script.js -------------------------------------------------------------------------------- /11-communication/04-bus/vendor/mitt.es.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/04-bus/vendor/mitt.es.js -------------------------------------------------------------------------------- /11-communication/04-bus/vendor/vue.esm-browser.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/04-bus/vendor/vue.esm-browser.js -------------------------------------------------------------------------------- /11-communication/05-instance/App.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/05-instance/App.js -------------------------------------------------------------------------------- /11-communication/05-instance/IndexPage.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/05-instance/IndexPage.js -------------------------------------------------------------------------------- /11-communication/05-instance/SubPage.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/05-instance/SubPage.js -------------------------------------------------------------------------------- /11-communication/05-instance/TheToaster.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/05-instance/TheToaster.js -------------------------------------------------------------------------------- /11-communication/05-instance/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/05-instance/index.html -------------------------------------------------------------------------------- /11-communication/05-instance/script.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/05-instance/script.js -------------------------------------------------------------------------------- /11-communication/05-instance/toaster.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/05-instance/toaster.js -------------------------------------------------------------------------------- /11-communication/06-global-properties/App.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/06-global-properties/App.js -------------------------------------------------------------------------------- /11-communication/06-global-properties/SubPage.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/06-global-properties/SubPage.js -------------------------------------------------------------------------------- /11-communication/06-global-properties/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/06-global-properties/index.html -------------------------------------------------------------------------------- /11-communication/06-global-properties/script.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/06-global-properties/script.js -------------------------------------------------------------------------------- /11-communication/06-global-properties/toaster.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/06-global-properties/toaster.js -------------------------------------------------------------------------------- /11-communication/07-provide-inject/App.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/07-provide-inject/App.js -------------------------------------------------------------------------------- /11-communication/07-provide-inject/IndexPage.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/07-provide-inject/IndexPage.js -------------------------------------------------------------------------------- /11-communication/07-provide-inject/SubPage.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/07-provide-inject/SubPage.js -------------------------------------------------------------------------------- /11-communication/07-provide-inject/TheToaster.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/07-provide-inject/TheToaster.js -------------------------------------------------------------------------------- /11-communication/07-provide-inject/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/07-provide-inject/index.html -------------------------------------------------------------------------------- /11-communication/07-provide-inject/script.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/07-provide-inject/script.js -------------------------------------------------------------------------------- /11-communication/07-provide-inject/toaster.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/07-provide-inject/toaster.js -------------------------------------------------------------------------------- /11-communication/08-teleport/App.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/08-teleport/App.js -------------------------------------------------------------------------------- /11-communication/08-teleport/IndexPage.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/08-teleport/IndexPage.js -------------------------------------------------------------------------------- /11-communication/08-teleport/SubPage.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/08-teleport/SubPage.js -------------------------------------------------------------------------------- /11-communication/08-teleport/TheToaster.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/08-teleport/TheToaster.js -------------------------------------------------------------------------------- /11-communication/08-teleport/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/08-teleport/index.html -------------------------------------------------------------------------------- /11-communication/08-teleport/script.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/11-communication/08-teleport/script.js -------------------------------------------------------------------------------- /12-reusability/01-directives/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/01-directives/.gitignore -------------------------------------------------------------------------------- /12-reusability/01-directives/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/01-directives/index.html -------------------------------------------------------------------------------- /12-reusability/01-directives/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/01-directives/package-lock.json -------------------------------------------------------------------------------- /12-reusability/01-directives/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/01-directives/package.json -------------------------------------------------------------------------------- /12-reusability/01-directives/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/01-directives/src/App.vue -------------------------------------------------------------------------------- /12-reusability/01-directives/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/01-directives/src/main.js -------------------------------------------------------------------------------- /12-reusability/01-directives/vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/01-directives/vite.config.js -------------------------------------------------------------------------------- /12-reusability/02-plugins/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/02-plugins/.gitignore -------------------------------------------------------------------------------- /12-reusability/02-plugins/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/02-plugins/index.html -------------------------------------------------------------------------------- /12-reusability/02-plugins/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/02-plugins/package-lock.json -------------------------------------------------------------------------------- /12-reusability/02-plugins/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/02-plugins/package.json -------------------------------------------------------------------------------- /12-reusability/02-plugins/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/02-plugins/src/App.vue -------------------------------------------------------------------------------- /12-reusability/02-plugins/src/IndexPage.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/02-plugins/src/IndexPage.vue -------------------------------------------------------------------------------- /12-reusability/02-plugins/src/SubPage.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/02-plugins/src/SubPage.vue -------------------------------------------------------------------------------- /12-reusability/02-plugins/src/assets/logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/02-plugins/src/assets/logo.svg -------------------------------------------------------------------------------- /12-reusability/02-plugins/src/assets/styles/_avatar.css: -------------------------------------------------------------------------------- 1 | .avatar { 2 | border-radius: 100%; 3 | margin-right: 8px; 4 | } 5 | -------------------------------------------------------------------------------- /12-reusability/02-plugins/src/assets/styles/_header.css: -------------------------------------------------------------------------------- 1 | .header { 2 | padding: 44px 0 32px; 3 | background-color: var(--white); 4 | } 5 | -------------------------------------------------------------------------------- /12-reusability/02-plugins/src/assets/styles/_icon.css: -------------------------------------------------------------------------------- 1 | .icon { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /12-reusability/02-plugins/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/02-plugins/src/main.js -------------------------------------------------------------------------------- /12-reusability/02-plugins/vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/02-plugins/vite.config.js -------------------------------------------------------------------------------- /12-reusability/03-create-plugin/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/03-create-plugin/.gitignore -------------------------------------------------------------------------------- /12-reusability/03-create-plugin/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/03-create-plugin/index.html -------------------------------------------------------------------------------- /12-reusability/03-create-plugin/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/03-create-plugin/package.json -------------------------------------------------------------------------------- /12-reusability/03-create-plugin/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/03-create-plugin/src/App.vue -------------------------------------------------------------------------------- /12-reusability/03-create-plugin/src/SubPage.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/03-create-plugin/src/SubPage.vue -------------------------------------------------------------------------------- /12-reusability/03-create-plugin/src/assets/styles/_avatar.css: -------------------------------------------------------------------------------- 1 | .avatar { 2 | border-radius: 100%; 3 | margin-right: 8px; 4 | } 5 | -------------------------------------------------------------------------------- /12-reusability/03-create-plugin/src/assets/styles/_header.css: -------------------------------------------------------------------------------- 1 | .header { 2 | padding: 44px 0 32px; 3 | background-color: var(--white); 4 | } 5 | -------------------------------------------------------------------------------- /12-reusability/03-create-plugin/src/assets/styles/_icon.css: -------------------------------------------------------------------------------- 1 | .icon { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /12-reusability/03-create-plugin/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/03-create-plugin/src/main.js -------------------------------------------------------------------------------- /12-reusability/03-create-plugin/src/toaster.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/03-create-plugin/src/toaster.js -------------------------------------------------------------------------------- /12-reusability/03-create-plugin/vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/03-create-plugin/vite.config.js -------------------------------------------------------------------------------- /12-reusability/04-modules/App.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/04-modules/App.js -------------------------------------------------------------------------------- /12-reusability/04-modules/UiInput.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/04-modules/UiInput.js -------------------------------------------------------------------------------- /12-reusability/04-modules/UserForm.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/04-modules/UserForm.js -------------------------------------------------------------------------------- /12-reusability/04-modules/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/04-modules/index.html -------------------------------------------------------------------------------- /12-reusability/04-modules/script.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/04-modules/script.js -------------------------------------------------------------------------------- /12-reusability/04-modules/toaster.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/04-modules/toaster.js -------------------------------------------------------------------------------- /12-reusability/04-modules/utils/isMobile.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/04-modules/utils/isMobile.js -------------------------------------------------------------------------------- /12-reusability/04-modules/utils/throttle.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/04-modules/utils/throttle.js -------------------------------------------------------------------------------- /12-reusability/05-mixins/App.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/05-mixins/App.js -------------------------------------------------------------------------------- /12-reusability/05-mixins/UiInput.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/05-mixins/UiInput.js -------------------------------------------------------------------------------- /12-reusability/05-mixins/UserForm.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/05-mixins/UserForm.js -------------------------------------------------------------------------------- /12-reusability/05-mixins/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/05-mixins/index.html -------------------------------------------------------------------------------- /12-reusability/05-mixins/script.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/05-mixins/script.js -------------------------------------------------------------------------------- /12-reusability/05-mixins/toaster.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/05-mixins/toaster.js -------------------------------------------------------------------------------- /12-reusability/05-mixins/utils/throttle.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/05-mixins/utils/throttle.js -------------------------------------------------------------------------------- /12-reusability/06-decomposition/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/06-decomposition/.gitignore -------------------------------------------------------------------------------- /12-reusability/06-decomposition/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/06-decomposition/index.html -------------------------------------------------------------------------------- /12-reusability/06-decomposition/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/06-decomposition/package.json -------------------------------------------------------------------------------- /12-reusability/06-decomposition/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/06-decomposition/src/App.vue -------------------------------------------------------------------------------- /12-reusability/06-decomposition/src/api.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/06-decomposition/src/api.js -------------------------------------------------------------------------------- /12-reusability/06-decomposition/src/assets/styles/_avatar.css: -------------------------------------------------------------------------------- 1 | .avatar { 2 | border-radius: 100%; 3 | margin-right: 8px; 4 | } 5 | -------------------------------------------------------------------------------- /12-reusability/06-decomposition/src/assets/styles/_header.css: -------------------------------------------------------------------------------- 1 | .header { 2 | padding: 44px 0 32px; 3 | background-color: var(--white); 4 | } 5 | -------------------------------------------------------------------------------- /12-reusability/06-decomposition/src/assets/styles/_icon.css: -------------------------------------------------------------------------------- 1 | .icon { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /12-reusability/06-decomposition/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/06-decomposition/src/main.js -------------------------------------------------------------------------------- /12-reusability/06-decomposition/vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/12-reusability/06-decomposition/vite.config.js -------------------------------------------------------------------------------- /13-composition/01-composition-api/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/01-composition-api/.gitignore -------------------------------------------------------------------------------- /13-composition/01-composition-api/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/01-composition-api/index.html -------------------------------------------------------------------------------- /13-composition/01-composition-api/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/01-composition-api/package.json -------------------------------------------------------------------------------- /13-composition/01-composition-api/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/01-composition-api/src/App.vue -------------------------------------------------------------------------------- /13-composition/01-composition-api/src/api.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/01-composition-api/src/api.js -------------------------------------------------------------------------------- /13-composition/01-composition-api/src/assets/styles/_avatar.css: -------------------------------------------------------------------------------- 1 | .avatar { 2 | border-radius: 100%; 3 | margin-right: 8px; 4 | } 5 | -------------------------------------------------------------------------------- /13-composition/01-composition-api/src/assets/styles/_header.css: -------------------------------------------------------------------------------- 1 | .header { 2 | padding: 44px 0 32px; 3 | background-color: var(--white); 4 | } 5 | -------------------------------------------------------------------------------- /13-composition/01-composition-api/src/assets/styles/_icon.css: -------------------------------------------------------------------------------- 1 | .icon { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /13-composition/01-composition-api/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/01-composition-api/src/main.js -------------------------------------------------------------------------------- /13-composition/02-decomposition/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/02-decomposition/.gitignore -------------------------------------------------------------------------------- /13-composition/02-decomposition/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/02-decomposition/index.html -------------------------------------------------------------------------------- /13-composition/02-decomposition/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/02-decomposition/package.json -------------------------------------------------------------------------------- /13-composition/02-decomposition/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/02-decomposition/src/App.vue -------------------------------------------------------------------------------- /13-composition/02-decomposition/src/api.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/02-decomposition/src/api.js -------------------------------------------------------------------------------- /13-composition/02-decomposition/src/assets/styles/_avatar.css: -------------------------------------------------------------------------------- 1 | .avatar { 2 | border-radius: 100%; 3 | margin-right: 8px; 4 | } 5 | -------------------------------------------------------------------------------- /13-composition/02-decomposition/src/assets/styles/_header.css: -------------------------------------------------------------------------------- 1 | .header { 2 | padding: 44px 0 32px; 3 | background-color: var(--white); 4 | } 5 | -------------------------------------------------------------------------------- /13-composition/02-decomposition/src/assets/styles/_icon.css: -------------------------------------------------------------------------------- 1 | .icon { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /13-composition/02-decomposition/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/02-decomposition/src/main.js -------------------------------------------------------------------------------- /13-composition/02-decomposition/vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/02-decomposition/vite.config.js -------------------------------------------------------------------------------- /13-composition/03-composables/App.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/03-composables/App.js -------------------------------------------------------------------------------- /13-composition/03-composables/UiInput.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/03-composables/UiInput.js -------------------------------------------------------------------------------- /13-composition/03-composables/UserForm.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/03-composables/UserForm.js -------------------------------------------------------------------------------- /13-composition/03-composables/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/03-composables/index.html -------------------------------------------------------------------------------- /13-composition/03-composables/script.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/03-composables/script.js -------------------------------------------------------------------------------- /13-composition/03-composables/toaster.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/03-composables/toaster.js -------------------------------------------------------------------------------- /13-composition/03-composables/utils/isMobile.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/03-composables/utils/isMobile.js -------------------------------------------------------------------------------- /13-composition/03-composables/utils/throttle.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/03-composables/utils/throttle.js -------------------------------------------------------------------------------- /13-composition/04-suspense/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/04-suspense/.gitignore -------------------------------------------------------------------------------- /13-composition/04-suspense/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/04-suspense/index.html -------------------------------------------------------------------------------- /13-composition/04-suspense/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/04-suspense/package-lock.json -------------------------------------------------------------------------------- /13-composition/04-suspense/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/04-suspense/package.json -------------------------------------------------------------------------------- /13-composition/04-suspense/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/04-suspense/public/favicon.ico -------------------------------------------------------------------------------- /13-composition/04-suspense/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/04-suspense/src/App.vue -------------------------------------------------------------------------------- /13-composition/04-suspense/src/api.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/04-suspense/src/api.js -------------------------------------------------------------------------------- /13-composition/04-suspense/src/assets/base.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/04-suspense/src/assets/base.css -------------------------------------------------------------------------------- /13-composition/04-suspense/src/assets/logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/04-suspense/src/assets/logo.svg -------------------------------------------------------------------------------- /13-composition/04-suspense/src/assets/styles/_avatar.css: -------------------------------------------------------------------------------- 1 | .avatar { 2 | border-radius: 100%; 3 | margin-right: 8px; 4 | } 5 | -------------------------------------------------------------------------------- /13-composition/04-suspense/src/assets/styles/_header.css: -------------------------------------------------------------------------------- 1 | .header { 2 | padding: 44px 0 32px; 3 | background-color: var(--white); 4 | } 5 | -------------------------------------------------------------------------------- /13-composition/04-suspense/src/assets/styles/_icon.css: -------------------------------------------------------------------------------- 1 | .icon { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /13-composition/04-suspense/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/04-suspense/src/main.js -------------------------------------------------------------------------------- /13-composition/04-suspense/vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/04-suspense/vite.config.js -------------------------------------------------------------------------------- /13-composition/05-sfc-setup/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/05-sfc-setup/.gitignore -------------------------------------------------------------------------------- /13-composition/05-sfc-setup/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/05-sfc-setup/index.html -------------------------------------------------------------------------------- /13-composition/05-sfc-setup/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/05-sfc-setup/package-lock.json -------------------------------------------------------------------------------- /13-composition/05-sfc-setup/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/05-sfc-setup/package.json -------------------------------------------------------------------------------- /13-composition/05-sfc-setup/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/05-sfc-setup/public/favicon.ico -------------------------------------------------------------------------------- /13-composition/05-sfc-setup/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/05-sfc-setup/src/App.vue -------------------------------------------------------------------------------- /13-composition/05-sfc-setup/src/api.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/05-sfc-setup/src/api.js -------------------------------------------------------------------------------- /13-composition/05-sfc-setup/src/assets/base.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/05-sfc-setup/src/assets/base.css -------------------------------------------------------------------------------- /13-composition/05-sfc-setup/src/assets/logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/05-sfc-setup/src/assets/logo.svg -------------------------------------------------------------------------------- /13-composition/05-sfc-setup/src/assets/styles/_avatar.css: -------------------------------------------------------------------------------- 1 | .avatar { 2 | border-radius: 100%; 3 | margin-right: 8px; 4 | } 5 | -------------------------------------------------------------------------------- /13-composition/05-sfc-setup/src/assets/styles/_header.css: -------------------------------------------------------------------------------- 1 | .header { 2 | padding: 44px 0 32px; 3 | background-color: var(--white); 4 | } 5 | -------------------------------------------------------------------------------- /13-composition/05-sfc-setup/src/assets/styles/_icon.css: -------------------------------------------------------------------------------- 1 | .icon { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /13-composition/05-sfc-setup/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/05-sfc-setup/src/main.js -------------------------------------------------------------------------------- /13-composition/05-sfc-setup/vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/13-composition/05-sfc-setup/vite.config.js -------------------------------------------------------------------------------- /14-store/01-composable-store/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/01-composable-store/.gitignore -------------------------------------------------------------------------------- /14-store/01-composable-store/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/01-composable-store/index.html -------------------------------------------------------------------------------- /14-store/01-composable-store/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/01-composable-store/package-lock.json -------------------------------------------------------------------------------- /14-store/01-composable-store/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/01-composable-store/package.json -------------------------------------------------------------------------------- /14-store/01-composable-store/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/01-composable-store/public/favicon.ico -------------------------------------------------------------------------------- /14-store/01-composable-store/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/01-composable-store/src/App.vue -------------------------------------------------------------------------------- /14-store/01-composable-store/src/api.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/01-composable-store/src/api.js -------------------------------------------------------------------------------- /14-store/01-composable-store/src/assets/styles/_avatar.css: -------------------------------------------------------------------------------- 1 | .avatar { 2 | border-radius: 100%; 3 | margin-right: 8px; 4 | } 5 | -------------------------------------------------------------------------------- /14-store/01-composable-store/src/assets/styles/_header.css: -------------------------------------------------------------------------------- 1 | .header { 2 | padding: 44px 0 32px; 3 | background-color: var(--white); 4 | } 5 | -------------------------------------------------------------------------------- /14-store/01-composable-store/src/assets/styles/_icon.css: -------------------------------------------------------------------------------- 1 | .icon { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /14-store/01-composable-store/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/01-composable-store/src/main.js -------------------------------------------------------------------------------- /14-store/01-composable-store/vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/01-composable-store/vite.config.js -------------------------------------------------------------------------------- /14-store/01-composition/composables/useAuth.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/01-composition/composables/useAuth.js -------------------------------------------------------------------------------- /14-store/02-context/composables/auth.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/02-context/composables/auth.js -------------------------------------------------------------------------------- /14-store/02-provide-inject-context/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/02-provide-inject-context/.gitignore -------------------------------------------------------------------------------- /14-store/02-provide-inject-context/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/02-provide-inject-context/index.html -------------------------------------------------------------------------------- /14-store/02-provide-inject-context/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/02-provide-inject-context/package.json -------------------------------------------------------------------------------- /14-store/02-provide-inject-context/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/02-provide-inject-context/src/App.vue -------------------------------------------------------------------------------- /14-store/02-provide-inject-context/src/api.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/02-provide-inject-context/src/api.js -------------------------------------------------------------------------------- /14-store/02-provide-inject-context/src/assets/styles/_avatar.css: -------------------------------------------------------------------------------- 1 | .avatar { 2 | border-radius: 100%; 3 | margin-right: 8px; 4 | } 5 | -------------------------------------------------------------------------------- /14-store/02-provide-inject-context/src/assets/styles/_header.css: -------------------------------------------------------------------------------- 1 | .header { 2 | padding: 44px 0 32px; 3 | background-color: var(--white); 4 | } 5 | -------------------------------------------------------------------------------- /14-store/02-provide-inject-context/src/assets/styles/_icon.css: -------------------------------------------------------------------------------- 1 | .icon { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /14-store/02-provide-inject-context/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/02-provide-inject-context/src/main.js -------------------------------------------------------------------------------- /14-store/03-composable-context/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/03-composable-context/.gitignore -------------------------------------------------------------------------------- /14-store/03-composable-context/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/03-composable-context/index.html -------------------------------------------------------------------------------- /14-store/03-composable-context/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/03-composable-context/package.json -------------------------------------------------------------------------------- /14-store/03-composable-context/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/03-composable-context/src/App.vue -------------------------------------------------------------------------------- /14-store/03-composable-context/src/api.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/03-composable-context/src/api.js -------------------------------------------------------------------------------- /14-store/03-composable-context/src/assets/styles/_avatar.css: -------------------------------------------------------------------------------- 1 | .avatar { 2 | border-radius: 100%; 3 | margin-right: 8px; 4 | } 5 | -------------------------------------------------------------------------------- /14-store/03-composable-context/src/assets/styles/_header.css: -------------------------------------------------------------------------------- 1 | .header { 2 | padding: 44px 0 32px; 3 | background-color: var(--white); 4 | } 5 | -------------------------------------------------------------------------------- /14-store/03-composable-context/src/assets/styles/_icon.css: -------------------------------------------------------------------------------- 1 | .icon { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /14-store/03-composable-context/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/03-composable-context/src/main.js -------------------------------------------------------------------------------- /14-store/03-composable-context/vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/03-composable-context/vite.config.js -------------------------------------------------------------------------------- /14-store/04-vuex/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/04-vuex/.gitignore -------------------------------------------------------------------------------- /14-store/04-vuex/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/04-vuex/index.html -------------------------------------------------------------------------------- /14-store/04-vuex/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/04-vuex/package-lock.json -------------------------------------------------------------------------------- /14-store/04-vuex/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/04-vuex/package.json -------------------------------------------------------------------------------- /14-store/04-vuex/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/04-vuex/src/App.vue -------------------------------------------------------------------------------- /14-store/04-vuex/src/api.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/04-vuex/src/api.js -------------------------------------------------------------------------------- /14-store/04-vuex/src/assets/base.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/04-vuex/src/assets/base.css -------------------------------------------------------------------------------- /14-store/04-vuex/src/assets/icons/icon-key.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/04-vuex/src/assets/icons/icon-key.svg -------------------------------------------------------------------------------- /14-store/04-vuex/src/assets/icons/icon-list.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/04-vuex/src/assets/icons/icon-list.svg -------------------------------------------------------------------------------- /14-store/04-vuex/src/assets/icons/icon-map.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/04-vuex/src/assets/icons/icon-map.svg -------------------------------------------------------------------------------- /14-store/04-vuex/src/assets/icons/icon-tv.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/04-vuex/src/assets/icons/icon-tv.svg -------------------------------------------------------------------------------- /14-store/04-vuex/src/assets/icons/icon-user.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/04-vuex/src/assets/icons/icon-user.svg -------------------------------------------------------------------------------- /14-store/04-vuex/src/assets/logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/04-vuex/src/assets/logo.svg -------------------------------------------------------------------------------- /14-store/04-vuex/src/assets/styles/_agenda.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/04-vuex/src/assets/styles/_agenda.css -------------------------------------------------------------------------------- /14-store/04-vuex/src/assets/styles/_alert.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/04-vuex/src/assets/styles/_alert.css -------------------------------------------------------------------------------- /14-store/04-vuex/src/assets/styles/_avatar.css: -------------------------------------------------------------------------------- 1 | .avatar { 2 | border-radius: 100%; 3 | margin-right: 8px; 4 | } 5 | -------------------------------------------------------------------------------- /14-store/04-vuex/src/assets/styles/_badge.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/04-vuex/src/assets/styles/_badge.css -------------------------------------------------------------------------------- /14-store/04-vuex/src/assets/styles/_button.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/04-vuex/src/assets/styles/_button.css -------------------------------------------------------------------------------- /14-store/04-vuex/src/assets/styles/_card.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/04-vuex/src/assets/styles/_card.css -------------------------------------------------------------------------------- /14-store/04-vuex/src/assets/styles/_common.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/04-vuex/src/assets/styles/_common.css -------------------------------------------------------------------------------- /14-store/04-vuex/src/assets/styles/_fonts.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/04-vuex/src/assets/styles/_fonts.css -------------------------------------------------------------------------------- /14-store/04-vuex/src/assets/styles/_footer.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/04-vuex/src/assets/styles/_footer.css -------------------------------------------------------------------------------- /14-store/04-vuex/src/assets/styles/_form.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/04-vuex/src/assets/styles/_form.css -------------------------------------------------------------------------------- /14-store/04-vuex/src/assets/styles/_header.css: -------------------------------------------------------------------------------- 1 | .header { 2 | padding: 44px 0 32px; 3 | background-color: var(--white); 4 | } 5 | -------------------------------------------------------------------------------- /14-store/04-vuex/src/assets/styles/_icon.css: -------------------------------------------------------------------------------- 1 | .icon { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /14-store/04-vuex/src/assets/styles/_layout.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/04-vuex/src/assets/styles/_layout.css -------------------------------------------------------------------------------- /14-store/04-vuex/src/assets/styles/_link.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/04-vuex/src/assets/styles/_link.css -------------------------------------------------------------------------------- /14-store/04-vuex/src/assets/styles/_logo.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/04-vuex/src/assets/styles/_logo.css -------------------------------------------------------------------------------- /14-store/04-vuex/src/assets/styles/_nav.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/04-vuex/src/assets/styles/_nav.css -------------------------------------------------------------------------------- /14-store/04-vuex/src/assets/styles/_tabs.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/04-vuex/src/assets/styles/_tabs.css -------------------------------------------------------------------------------- /14-store/04-vuex/src/assets/styles/_title.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/04-vuex/src/assets/styles/_title.css -------------------------------------------------------------------------------- /14-store/04-vuex/src/assets/styles/_toaster.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/04-vuex/src/assets/styles/_toaster.css -------------------------------------------------------------------------------- /14-store/04-vuex/src/assets/styles/app.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/04-vuex/src/assets/styles/app.css -------------------------------------------------------------------------------- /14-store/04-vuex/src/assets/styles/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/04-vuex/src/assets/styles/index.css -------------------------------------------------------------------------------- /14-store/04-vuex/src/assets/styles/taskbook.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/04-vuex/src/assets/styles/taskbook.css -------------------------------------------------------------------------------- /14-store/04-vuex/src/components/PageLogin.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/04-vuex/src/components/PageLogin.vue -------------------------------------------------------------------------------- /14-store/04-vuex/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/04-vuex/src/main.js -------------------------------------------------------------------------------- /14-store/04-vuex/src/store/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/04-vuex/src/store/index.js -------------------------------------------------------------------------------- /14-store/04-vuex/src/store/modules/auth.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/04-vuex/src/store/modules/auth.js -------------------------------------------------------------------------------- /14-store/04-vuex/vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/04-vuex/vite.config.js -------------------------------------------------------------------------------- /14-store/05-pinia/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/05-pinia/.gitignore -------------------------------------------------------------------------------- /14-store/05-pinia/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/05-pinia/index.html -------------------------------------------------------------------------------- /14-store/05-pinia/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/05-pinia/package-lock.json -------------------------------------------------------------------------------- /14-store/05-pinia/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/05-pinia/package.json -------------------------------------------------------------------------------- /14-store/05-pinia/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/05-pinia/src/App.vue -------------------------------------------------------------------------------- /14-store/05-pinia/src/api.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/05-pinia/src/api.js -------------------------------------------------------------------------------- /14-store/05-pinia/src/assets/base.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/05-pinia/src/assets/base.css -------------------------------------------------------------------------------- /14-store/05-pinia/src/assets/icons/icon-key.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/05-pinia/src/assets/icons/icon-key.svg -------------------------------------------------------------------------------- /14-store/05-pinia/src/assets/icons/icon-map.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/05-pinia/src/assets/icons/icon-map.svg -------------------------------------------------------------------------------- /14-store/05-pinia/src/assets/icons/icon-tv.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/05-pinia/src/assets/icons/icon-tv.svg -------------------------------------------------------------------------------- /14-store/05-pinia/src/assets/logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/05-pinia/src/assets/logo.svg -------------------------------------------------------------------------------- /14-store/05-pinia/src/assets/styles/_agenda.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/05-pinia/src/assets/styles/_agenda.css -------------------------------------------------------------------------------- /14-store/05-pinia/src/assets/styles/_alert.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/05-pinia/src/assets/styles/_alert.css -------------------------------------------------------------------------------- /14-store/05-pinia/src/assets/styles/_avatar.css: -------------------------------------------------------------------------------- 1 | .avatar { 2 | border-radius: 100%; 3 | margin-right: 8px; 4 | } 5 | -------------------------------------------------------------------------------- /14-store/05-pinia/src/assets/styles/_badge.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/05-pinia/src/assets/styles/_badge.css -------------------------------------------------------------------------------- /14-store/05-pinia/src/assets/styles/_button.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/05-pinia/src/assets/styles/_button.css -------------------------------------------------------------------------------- /14-store/05-pinia/src/assets/styles/_card.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/05-pinia/src/assets/styles/_card.css -------------------------------------------------------------------------------- /14-store/05-pinia/src/assets/styles/_common.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/05-pinia/src/assets/styles/_common.css -------------------------------------------------------------------------------- /14-store/05-pinia/src/assets/styles/_fonts.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/05-pinia/src/assets/styles/_fonts.css -------------------------------------------------------------------------------- /14-store/05-pinia/src/assets/styles/_footer.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/05-pinia/src/assets/styles/_footer.css -------------------------------------------------------------------------------- /14-store/05-pinia/src/assets/styles/_form.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/05-pinia/src/assets/styles/_form.css -------------------------------------------------------------------------------- /14-store/05-pinia/src/assets/styles/_header.css: -------------------------------------------------------------------------------- 1 | .header { 2 | padding: 44px 0 32px; 3 | background-color: var(--white); 4 | } 5 | -------------------------------------------------------------------------------- /14-store/05-pinia/src/assets/styles/_icon.css: -------------------------------------------------------------------------------- 1 | .icon { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /14-store/05-pinia/src/assets/styles/_layout.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/05-pinia/src/assets/styles/_layout.css -------------------------------------------------------------------------------- /14-store/05-pinia/src/assets/styles/_link.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/05-pinia/src/assets/styles/_link.css -------------------------------------------------------------------------------- /14-store/05-pinia/src/assets/styles/_logo.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/05-pinia/src/assets/styles/_logo.css -------------------------------------------------------------------------------- /14-store/05-pinia/src/assets/styles/_nav.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/05-pinia/src/assets/styles/_nav.css -------------------------------------------------------------------------------- /14-store/05-pinia/src/assets/styles/_tabs.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/05-pinia/src/assets/styles/_tabs.css -------------------------------------------------------------------------------- /14-store/05-pinia/src/assets/styles/_title.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/05-pinia/src/assets/styles/_title.css -------------------------------------------------------------------------------- /14-store/05-pinia/src/assets/styles/app.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/05-pinia/src/assets/styles/app.css -------------------------------------------------------------------------------- /14-store/05-pinia/src/assets/styles/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/05-pinia/src/assets/styles/index.css -------------------------------------------------------------------------------- /14-store/05-pinia/src/components/PageLogin.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/05-pinia/src/components/PageLogin.vue -------------------------------------------------------------------------------- /14-store/05-pinia/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/05-pinia/src/main.js -------------------------------------------------------------------------------- /14-store/05-pinia/src/stores/useAuthStore.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/05-pinia/src/stores/useAuthStore.js -------------------------------------------------------------------------------- /14-store/05-pinia/vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/05-pinia/vite.config.js -------------------------------------------------------------------------------- /14-store/06-pinia-form/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/06-pinia-form/.gitignore -------------------------------------------------------------------------------- /14-store/06-pinia-form/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/06-pinia-form/index.html -------------------------------------------------------------------------------- /14-store/06-pinia-form/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/06-pinia-form/package-lock.json -------------------------------------------------------------------------------- /14-store/06-pinia-form/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/06-pinia-form/package.json -------------------------------------------------------------------------------- /14-store/06-pinia-form/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/06-pinia-form/src/App.vue -------------------------------------------------------------------------------- /14-store/06-pinia-form/src/assets/logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/06-pinia-form/src/assets/logo.svg -------------------------------------------------------------------------------- /14-store/06-pinia-form/src/assets/styles/_avatar.css: -------------------------------------------------------------------------------- 1 | .avatar { 2 | border-radius: 100%; 3 | margin-right: 8px; 4 | } 5 | -------------------------------------------------------------------------------- /14-store/06-pinia-form/src/assets/styles/_header.css: -------------------------------------------------------------------------------- 1 | .header { 2 | padding: 44px 0 32px; 3 | background-color: var(--white); 4 | } 5 | -------------------------------------------------------------------------------- /14-store/06-pinia-form/src/assets/styles/_icon.css: -------------------------------------------------------------------------------- 1 | .icon { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /14-store/06-pinia-form/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/06-pinia-form/src/main.js -------------------------------------------------------------------------------- /14-store/06-pinia-form/vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/14-store/06-pinia-form/vite.config.js -------------------------------------------------------------------------------- /16-testing/01-vtu/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/.gitignore -------------------------------------------------------------------------------- /16-testing/01-vtu/babel.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/babel.config.js -------------------------------------------------------------------------------- /16-testing/01-vtu/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/index.html -------------------------------------------------------------------------------- /16-testing/01-vtu/jest.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/jest.config.js -------------------------------------------------------------------------------- /16-testing/01-vtu/jest.setup.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/jest.setup.js -------------------------------------------------------------------------------- /16-testing/01-vtu/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/package-lock.json -------------------------------------------------------------------------------- /16-testing/01-vtu/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/package.json -------------------------------------------------------------------------------- /16-testing/01-vtu/public/api/meetups.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/public/api/meetups.json -------------------------------------------------------------------------------- /16-testing/01-vtu/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/public/favicon.ico -------------------------------------------------------------------------------- /16-testing/01-vtu/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/src/App.vue -------------------------------------------------------------------------------- /16-testing/01-vtu/src/api.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/src/api.js -------------------------------------------------------------------------------- /16-testing/01-vtu/src/assets/base.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/src/assets/base.css -------------------------------------------------------------------------------- /16-testing/01-vtu/src/assets/icons/icon-key.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/src/assets/icons/icon-key.svg -------------------------------------------------------------------------------- /16-testing/01-vtu/src/assets/icons/icon-map.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/src/assets/icons/icon-map.svg -------------------------------------------------------------------------------- /16-testing/01-vtu/src/assets/icons/icon-tv.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/src/assets/icons/icon-tv.svg -------------------------------------------------------------------------------- /16-testing/01-vtu/src/assets/logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/src/assets/logo.svg -------------------------------------------------------------------------------- /16-testing/01-vtu/src/assets/styles/_agenda.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/src/assets/styles/_agenda.css -------------------------------------------------------------------------------- /16-testing/01-vtu/src/assets/styles/_alert.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/src/assets/styles/_alert.css -------------------------------------------------------------------------------- /16-testing/01-vtu/src/assets/styles/_avatar.css: -------------------------------------------------------------------------------- 1 | .avatar { 2 | border-radius: 100%; 3 | margin-right: 8px; 4 | } 5 | -------------------------------------------------------------------------------- /16-testing/01-vtu/src/assets/styles/_badge.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/src/assets/styles/_badge.css -------------------------------------------------------------------------------- /16-testing/01-vtu/src/assets/styles/_button.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/src/assets/styles/_button.css -------------------------------------------------------------------------------- /16-testing/01-vtu/src/assets/styles/_card.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/src/assets/styles/_card.css -------------------------------------------------------------------------------- /16-testing/01-vtu/src/assets/styles/_common.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/src/assets/styles/_common.css -------------------------------------------------------------------------------- /16-testing/01-vtu/src/assets/styles/_fonts.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/src/assets/styles/_fonts.css -------------------------------------------------------------------------------- /16-testing/01-vtu/src/assets/styles/_footer.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/src/assets/styles/_footer.css -------------------------------------------------------------------------------- /16-testing/01-vtu/src/assets/styles/_form.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/src/assets/styles/_form.css -------------------------------------------------------------------------------- /16-testing/01-vtu/src/assets/styles/_header.css: -------------------------------------------------------------------------------- 1 | .header { 2 | padding: 44px 0 32px; 3 | background-color: var(--white); 4 | } 5 | -------------------------------------------------------------------------------- /16-testing/01-vtu/src/assets/styles/_icon.css: -------------------------------------------------------------------------------- 1 | .icon { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /16-testing/01-vtu/src/assets/styles/_layout.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/src/assets/styles/_layout.css -------------------------------------------------------------------------------- /16-testing/01-vtu/src/assets/styles/_link.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/src/assets/styles/_link.css -------------------------------------------------------------------------------- /16-testing/01-vtu/src/assets/styles/_logo.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/src/assets/styles/_logo.css -------------------------------------------------------------------------------- /16-testing/01-vtu/src/assets/styles/_nav.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/src/assets/styles/_nav.css -------------------------------------------------------------------------------- /16-testing/01-vtu/src/assets/styles/_tabs.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/src/assets/styles/_tabs.css -------------------------------------------------------------------------------- /16-testing/01-vtu/src/assets/styles/_title.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/src/assets/styles/_title.css -------------------------------------------------------------------------------- /16-testing/01-vtu/src/assets/styles/app.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/src/assets/styles/app.css -------------------------------------------------------------------------------- /16-testing/01-vtu/src/assets/styles/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/src/assets/styles/index.css -------------------------------------------------------------------------------- /16-testing/01-vtu/src/components/MeetupCard.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/src/components/MeetupCard.vue -------------------------------------------------------------------------------- /16-testing/01-vtu/src/components/UiAlert.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/src/components/UiAlert.vue -------------------------------------------------------------------------------- /16-testing/01-vtu/src/components/UiBadge.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/src/components/UiBadge.vue -------------------------------------------------------------------------------- /16-testing/01-vtu/src/components/UiCard.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/src/components/UiCard.vue -------------------------------------------------------------------------------- /16-testing/01-vtu/src/components/UiIcon.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/src/components/UiIcon.vue -------------------------------------------------------------------------------- /16-testing/01-vtu/src/components/UiInput.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/src/components/UiInput.vue -------------------------------------------------------------------------------- /16-testing/01-vtu/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/src/main.js -------------------------------------------------------------------------------- /16-testing/01-vtu/vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/16-testing/01-vtu/vite.config.js -------------------------------------------------------------------------------- /17-prerendering/01-prerender-spa-plugin/src/assets/styles/_avatar.css: -------------------------------------------------------------------------------- 1 | .avatar { 2 | border-radius: 100%; 3 | margin-right: 8px; 4 | } 5 | -------------------------------------------------------------------------------- /17-prerendering/01-prerender-spa-plugin/src/assets/styles/_header.css: -------------------------------------------------------------------------------- 1 | .header { 2 | padding: 44px 0 32px; 3 | background-color: var(--white); 4 | } 5 | -------------------------------------------------------------------------------- /17-prerendering/01-prerender-spa-plugin/src/assets/styles/_icon.css: -------------------------------------------------------------------------------- 1 | .icon { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /17-prerendering/02-prerender/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /17-prerendering/02-prerender/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/17-prerendering/02-prerender/index.js -------------------------------------------------------------------------------- /17-prerendering/02-prerender/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/17-prerendering/02-prerender/package-lock.json -------------------------------------------------------------------------------- /17-prerendering/02-prerender/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/17-prerendering/02-prerender/package.json -------------------------------------------------------------------------------- /17-prerendering/03-ssr/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/17-prerendering/03-ssr/README.md -------------------------------------------------------------------------------- /17-prerendering/03-ssr/dist/client/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/17-prerendering/03-ssr/dist/client/favicon.ico -------------------------------------------------------------------------------- /17-prerendering/03-ssr/dist/client/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/17-prerendering/03-ssr/dist/client/index.html -------------------------------------------------------------------------------- /17-prerendering/03-ssr/dist/server/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/17-prerendering/03-ssr/dist/server/favicon.ico -------------------------------------------------------------------------------- /17-prerendering/03-ssr/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/17-prerendering/03-ssr/index.html -------------------------------------------------------------------------------- /17-prerendering/03-ssr/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/17-prerendering/03-ssr/package-lock.json -------------------------------------------------------------------------------- /17-prerendering/03-ssr/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/17-prerendering/03-ssr/package.json -------------------------------------------------------------------------------- /17-prerendering/03-ssr/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/17-prerendering/03-ssr/public/favicon.ico -------------------------------------------------------------------------------- /17-prerendering/03-ssr/server.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/17-prerendering/03-ssr/server.js -------------------------------------------------------------------------------- /17-prerendering/03-ssr/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/17-prerendering/03-ssr/src/App.vue -------------------------------------------------------------------------------- /17-prerendering/03-ssr/src/api.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/17-prerendering/03-ssr/src/api.js -------------------------------------------------------------------------------- /17-prerendering/03-ssr/src/assets/base.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/17-prerendering/03-ssr/src/assets/base.css -------------------------------------------------------------------------------- /17-prerendering/03-ssr/src/assets/logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/17-prerendering/03-ssr/src/assets/logo.svg -------------------------------------------------------------------------------- /17-prerendering/03-ssr/src/assets/styles/_avatar.css: -------------------------------------------------------------------------------- 1 | .avatar { 2 | border-radius: 100%; 3 | margin-right: 8px; 4 | } 5 | -------------------------------------------------------------------------------- /17-prerendering/03-ssr/src/assets/styles/_header.css: -------------------------------------------------------------------------------- 1 | .header { 2 | padding: 44px 0 32px; 3 | background-color: var(--white); 4 | } 5 | -------------------------------------------------------------------------------- /17-prerendering/03-ssr/src/assets/styles/_icon.css: -------------------------------------------------------------------------------- 1 | .icon { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /17-prerendering/03-ssr/src/entry-client.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/17-prerendering/03-ssr/src/entry-client.js -------------------------------------------------------------------------------- /17-prerendering/03-ssr/src/entry-server.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/17-prerendering/03-ssr/src/entry-server.js -------------------------------------------------------------------------------- /17-prerendering/03-ssr/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/17-prerendering/03-ssr/src/main.js -------------------------------------------------------------------------------- /17-prerendering/03-ssr/vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/17-prerendering/03-ssr/vite.config.js -------------------------------------------------------------------------------- /18-architecture/01-flat/.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/18-architecture/01-flat/.env -------------------------------------------------------------------------------- /18-architecture/01-flat/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/18-architecture/01-flat/.gitignore -------------------------------------------------------------------------------- /18-architecture/01-flat/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/18-architecture/01-flat/package-lock.json -------------------------------------------------------------------------------- /18-architecture/01-flat/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/18-architecture/01-flat/package.json -------------------------------------------------------------------------------- /18-architecture/01-flat/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/18-architecture/01-flat/public/favicon.ico -------------------------------------------------------------------------------- /18-architecture/01-flat/public/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/18-architecture/01-flat/public/index.html -------------------------------------------------------------------------------- /18-architecture/01-flat/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/18-architecture/01-flat/src/App.vue -------------------------------------------------------------------------------- /18-architecture/01-flat/src/api/NetworkError.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/18-architecture/01-flat/src/api/NetworkError.js -------------------------------------------------------------------------------- /18-architecture/01-flat/src/api/httpClient.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/18-architecture/01-flat/src/api/httpClient.js -------------------------------------------------------------------------------- /18-architecture/01-flat/src/api/meetupsApi.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/18-architecture/01-flat/src/api/meetupsApi.js -------------------------------------------------------------------------------- /18-architecture/01-flat/src/assets/logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/18-architecture/01-flat/src/assets/logo.svg -------------------------------------------------------------------------------- /18-architecture/01-flat/src/assets/styles/_avatar.css: -------------------------------------------------------------------------------- 1 | .avatar { 2 | border-radius: 100%; 3 | margin-right: 8px; 4 | } 5 | -------------------------------------------------------------------------------- /18-architecture/01-flat/src/assets/styles/_header.css: -------------------------------------------------------------------------------- 1 | .header { 2 | padding: 44px 0 32px; 3 | background-color: var(--white); 4 | } 5 | -------------------------------------------------------------------------------- /18-architecture/01-flat/src/assets/styles/_icon.css: -------------------------------------------------------------------------------- 1 | .icon { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /18-architecture/01-flat/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/18-architecture/01-flat/src/main.js -------------------------------------------------------------------------------- /18-architecture/01-flat/src/router/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/18-architecture/01-flat/src/router/index.js -------------------------------------------------------------------------------- /18-architecture/01-flat/vue.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/18-architecture/01-flat/vue.config.js -------------------------------------------------------------------------------- /18-architecture/02-features/.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/18-architecture/02-features/.env -------------------------------------------------------------------------------- /18-architecture/02-features/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/18-architecture/02-features/.gitignore -------------------------------------------------------------------------------- /18-architecture/02-features/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/18-architecture/02-features/package-lock.json -------------------------------------------------------------------------------- /18-architecture/02-features/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/18-architecture/02-features/package.json -------------------------------------------------------------------------------- /18-architecture/02-features/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/18-architecture/02-features/public/favicon.ico -------------------------------------------------------------------------------- /18-architecture/02-features/public/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/18-architecture/02-features/public/index.html -------------------------------------------------------------------------------- /18-architecture/02-features/src/app/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/18-architecture/02-features/src/app/App.vue -------------------------------------------------------------------------------- /18-architecture/02-features/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/18-architecture/02-features/src/main.js -------------------------------------------------------------------------------- /18-architecture/02-features/src/meetups/meetups.js: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /18-architecture/02-features/src/shared/assets/styles/_avatar.css: -------------------------------------------------------------------------------- 1 | .avatar { 2 | border-radius: 100%; 3 | margin-right: 8px; 4 | } 5 | -------------------------------------------------------------------------------- /18-architecture/02-features/src/shared/assets/styles/_header.css: -------------------------------------------------------------------------------- 1 | .header { 2 | padding: 44px 0 32px; 3 | background-color: var(--white); 4 | } 5 | -------------------------------------------------------------------------------- /18-architecture/02-features/src/shared/assets/styles/_icon.css: -------------------------------------------------------------------------------- 1 | .icon { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /18-architecture/02-features/vue.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/18-architecture/02-features/vue.config.js -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/README.md -------------------------------------------------------------------------------- /assets/fonts/Nunito-cyrillic-ext.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/fonts/Nunito-cyrillic-ext.woff2 -------------------------------------------------------------------------------- /assets/fonts/Nunito-cyrillic.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/fonts/Nunito-cyrillic.woff2 -------------------------------------------------------------------------------- /assets/fonts/Nunito-latin-ext.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/fonts/Nunito-latin-ext.woff2 -------------------------------------------------------------------------------- /assets/fonts/Nunito-latin.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/fonts/Nunito-latin.woff2 -------------------------------------------------------------------------------- /assets/icons/icon-alert-circle.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/icons/icon-alert-circle.svg -------------------------------------------------------------------------------- /assets/icons/icon-cal-lg.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/icons/icon-cal-lg.svg -------------------------------------------------------------------------------- /assets/icons/icon-cal-sm.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/icons/icon-cal-sm.svg -------------------------------------------------------------------------------- /assets/icons/icon-check-circle.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/icons/icon-check-circle.svg -------------------------------------------------------------------------------- /assets/icons/icon-check.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/icons/icon-check.svg -------------------------------------------------------------------------------- /assets/icons/icon-chevron-down.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/icons/icon-chevron-down.svg -------------------------------------------------------------------------------- /assets/icons/icon-clock.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/icons/icon-clock.svg -------------------------------------------------------------------------------- /assets/icons/icon-coffee.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/icons/icon-coffee.svg -------------------------------------------------------------------------------- /assets/icons/icon-key.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/icons/icon-key.svg -------------------------------------------------------------------------------- /assets/icons/icon-list.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/icons/icon-list.svg -------------------------------------------------------------------------------- /assets/icons/icon-map.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/icons/icon-map.svg -------------------------------------------------------------------------------- /assets/icons/icon-pen-tool.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/icons/icon-pen-tool.svg -------------------------------------------------------------------------------- /assets/icons/icon-pill-active.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/icons/icon-pill-active.svg -------------------------------------------------------------------------------- /assets/icons/icon-search.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/icons/icon-search.svg -------------------------------------------------------------------------------- /assets/icons/icon-trash.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/icons/icon-trash.svg -------------------------------------------------------------------------------- /assets/icons/icon-tv.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/icons/icon-tv.svg -------------------------------------------------------------------------------- /assets/icons/icon-user.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/icons/icon-user.svg -------------------------------------------------------------------------------- /assets/logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/logo.svg -------------------------------------------------------------------------------- /assets/styles/_agenda-item-form.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_agenda-item-form.css -------------------------------------------------------------------------------- /assets/styles/_agenda-item.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_agenda-item.css -------------------------------------------------------------------------------- /assets/styles/_agenda.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_agenda.css -------------------------------------------------------------------------------- /assets/styles/_alert.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_alert.css -------------------------------------------------------------------------------- /assets/styles/_avatar.css: -------------------------------------------------------------------------------- 1 | .avatar { 2 | border-radius: 100%; 3 | margin-right: 8px; 4 | } 5 | -------------------------------------------------------------------------------- /assets/styles/_badge.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_badge.css -------------------------------------------------------------------------------- /assets/styles/_button-group.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_button-group.css -------------------------------------------------------------------------------- /assets/styles/_button.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_button.css -------------------------------------------------------------------------------- /assets/styles/_calendar-event.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_calendar-event.css -------------------------------------------------------------------------------- /assets/styles/_calendar-view.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_calendar-view.css -------------------------------------------------------------------------------- /assets/styles/_card.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_card.css -------------------------------------------------------------------------------- /assets/styles/_checkbox.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_checkbox.css -------------------------------------------------------------------------------- /assets/styles/_common.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_common.css -------------------------------------------------------------------------------- /assets/styles/_container.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_container.css -------------------------------------------------------------------------------- /assets/styles/_dropdown.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_dropdown.css -------------------------------------------------------------------------------- /assets/styles/_fonts.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_fonts.css -------------------------------------------------------------------------------- /assets/styles/_footer.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_footer.css -------------------------------------------------------------------------------- /assets/styles/_form-group.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_form-group.css -------------------------------------------------------------------------------- /assets/styles/_form.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_form.css -------------------------------------------------------------------------------- /assets/styles/_header.css: -------------------------------------------------------------------------------- 1 | .header { 2 | padding: 44px 0 32px; 3 | background-color: var(--white); 4 | } 5 | -------------------------------------------------------------------------------- /assets/styles/_icon.css: -------------------------------------------------------------------------------- 1 | .icon { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /assets/styles/_image-uploader.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_image-uploader.css -------------------------------------------------------------------------------- /assets/styles/_input-group.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_input-group.css -------------------------------------------------------------------------------- /assets/styles/_layout.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_layout.css -------------------------------------------------------------------------------- /assets/styles/_link.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_link.css -------------------------------------------------------------------------------- /assets/styles/_logo.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_logo.css -------------------------------------------------------------------------------- /assets/styles/_meetup-cover.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_meetup-cover.css -------------------------------------------------------------------------------- /assets/styles/_meetup-description.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_meetup-description.css -------------------------------------------------------------------------------- /assets/styles/_meetup-form.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_meetup-form.css -------------------------------------------------------------------------------- /assets/styles/_meetup-info.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_meetup-info.css -------------------------------------------------------------------------------- /assets/styles/_meetups-list.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_meetups-list.css -------------------------------------------------------------------------------- /assets/styles/_nav.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_nav.css -------------------------------------------------------------------------------- /assets/styles/_page-auth.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_page-auth.css -------------------------------------------------------------------------------- /assets/styles/_page-meetup-form.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_page-meetup-form.css -------------------------------------------------------------------------------- /assets/styles/_page-meetup.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_page-meetup.css -------------------------------------------------------------------------------- /assets/styles/_page-meetups.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_page-meetups.css -------------------------------------------------------------------------------- /assets/styles/_page_not-found.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_page_not-found.css -------------------------------------------------------------------------------- /assets/styles/_progress.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_progress.css -------------------------------------------------------------------------------- /assets/styles/_radio-group.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_radio-group.css -------------------------------------------------------------------------------- /assets/styles/_tabs.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_tabs.css -------------------------------------------------------------------------------- /assets/styles/_title.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_title.css -------------------------------------------------------------------------------- /assets/styles/_toaster.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_toaster.css -------------------------------------------------------------------------------- /assets/styles/_transitions.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_transitions.css -------------------------------------------------------------------------------- /assets/styles/_variables.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/_variables.css -------------------------------------------------------------------------------- /assets/styles/index.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/assets/styles/index.css -------------------------------------------------------------------------------- /images/undraw_conference_speaker_6nt7.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/images/undraw_conference_speaker_6nt7.svg -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/package.json -------------------------------------------------------------------------------- /project/project-sample/.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/project/project-sample/.editorconfig -------------------------------------------------------------------------------- /project/project-sample/.env: -------------------------------------------------------------------------------- 1 | VITE_APP_API_URL=/api 2 | -------------------------------------------------------------------------------- /project/project-sample/.env.production: -------------------------------------------------------------------------------- 1 | VITE_APP_API_URL=https://course-vue.javascript.ru/api 2 | -------------------------------------------------------------------------------- /project/project-sample/.eslintrc.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/project/project-sample/.eslintrc.js -------------------------------------------------------------------------------- /project/project-sample/.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto eol=lf 2 | -------------------------------------------------------------------------------- /project/project-sample/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/project/project-sample/.gitignore -------------------------------------------------------------------------------- /project/project-sample/.prettierrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/project/project-sample/.prettierrc -------------------------------------------------------------------------------- /project/project-sample/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/project/project-sample/README.md -------------------------------------------------------------------------------- /project/project-sample/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/project/project-sample/index.html -------------------------------------------------------------------------------- /project/project-sample/package-lock.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/project/project-sample/package-lock.json -------------------------------------------------------------------------------- /project/project-sample/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/project/project-sample/package.json -------------------------------------------------------------------------------- /project/project-sample/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/project/project-sample/public/favicon.ico -------------------------------------------------------------------------------- /project/project-sample/src/App.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/project/project-sample/src/App.vue -------------------------------------------------------------------------------- /project/project-sample/src/api/authApi.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/project/project-sample/src/api/authApi.js -------------------------------------------------------------------------------- /project/project-sample/src/api/imageApi.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/project/project-sample/src/api/imageApi.js -------------------------------------------------------------------------------- /project/project-sample/src/api/meetupsApi.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/project/project-sample/src/api/meetupsApi.js -------------------------------------------------------------------------------- /project/project-sample/src/assets/logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/project/project-sample/src/assets/logo.svg -------------------------------------------------------------------------------- /project/project-sample/src/assets/styles/_avatar.css: -------------------------------------------------------------------------------- 1 | .avatar { 2 | border-radius: 100%; 3 | margin-right: 8px; 4 | } 5 | -------------------------------------------------------------------------------- /project/project-sample/src/assets/styles/_header.css: -------------------------------------------------------------------------------- 1 | .header { 2 | padding: 44px 0 32px; 3 | background-color: var(--white); 4 | } 5 | -------------------------------------------------------------------------------- /project/project-sample/src/assets/styles/_icon.css: -------------------------------------------------------------------------------- 1 | .icon { 2 | display: block; 3 | } 4 | -------------------------------------------------------------------------------- /project/project-sample/src/components/UiTab.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/project/project-sample/src/components/UiTab.vue -------------------------------------------------------------------------------- /project/project-sample/src/jsdoc.types.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/project/project-sample/src/jsdoc.types.js -------------------------------------------------------------------------------- /project/project-sample/src/main.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/project/project-sample/src/main.js -------------------------------------------------------------------------------- /project/project-sample/src/router/authGuard.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/project/project-sample/src/router/authGuard.js -------------------------------------------------------------------------------- /project/project-sample/src/router/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/project/project-sample/src/router/index.js -------------------------------------------------------------------------------- /project/project-sample/src/utils/dateUtils.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/project/project-sample/src/utils/dateUtils.js -------------------------------------------------------------------------------- /project/project-sample/src/views/PageLogin.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/project/project-sample/src/views/PageLogin.vue -------------------------------------------------------------------------------- /project/project-sample/src/views/PageMeetup.vue: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/project/project-sample/src/views/PageMeetup.vue -------------------------------------------------------------------------------- /project/project-sample/vite.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/project/project-sample/vite.config.js -------------------------------------------------------------------------------- /serve.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/js-tasks-ru/vue3-course-materials/HEAD/serve.json --------------------------------------------------------------------------------