From d3e41582ae7e7c2fdcfa53fbdaefbbf8cce481a7 Mon Sep 17 00:00:00 2001 From: Kuchenpirat <24235032+Kuchenpirat@users.noreply.github.com> Date: Wed, 8 Apr 2026 17:25:41 +0200 Subject: [PATCH] chore: Nuxt 4 upgrade (#7426) --- frontend/{ => app}/assets/main.css | 0 .../{ => app}/assets/style-overrides.scss | 0 frontend/{ => app}/assets/variables.scss | 0 .../Domain/Admin/Setup/EndPageContent.vue | 0 .../Domain/Cookbook/CookbookEditor.vue | 0 .../Domain/Cookbook/CookbookPage.vue | 0 .../components/Domain/Group/GroupDataPage.vue | 0 .../Domain/Group/GroupExportData.vue | 0 .../Domain/Group/GroupPreferencesEditor.vue | 0 .../Household/GroupMealPlanDayContextMenu.vue | 0 .../Household/GroupMealPlanRuleForm.vue | 0 .../Domain/Household/GroupWebhookEditor.vue | 0 .../Household/HouseholdPreferencesEditor.vue | 0 .../components/Domain/QueryFilterBuilder.vue | 0 .../Domain/Recipe/RecipeActionMenu.vue | 0 .../components/Domain/Recipe/RecipeAssets.vue | 0 .../components/Domain/Recipe/RecipeCard.vue | 0 .../Domain/Recipe/RecipeCardImage.vue | 0 .../Domain/Recipe/RecipeCardMobile.vue | 0 .../Domain/Recipe/RecipeCardRating.vue | 0 .../Domain/Recipe/RecipeCardSection.vue | 0 .../components/Domain/Recipe/RecipeChips.vue | 0 .../RecipeContextMenu/RecipeContextMenu.vue | 0 .../RecipeContextMenuContent.vue | 0 .../Recipe/RecipeDataAliasManagerDialog.vue | 0 .../Domain/Recipe/RecipeDataTable.vue | 0 .../Recipe/RecipeDialogAddToShoppingList.vue | 0 .../Domain/Recipe/RecipeDialogBulkAdd.vue | 0 .../Recipe/RecipeDialogPrintPreferences.vue | 0 .../Domain/Recipe/RecipeDialogSearch.vue | 0 .../Domain/Recipe/RecipeDialogShare.vue | 0 .../RecipeExplorerPage/RecipeExplorerPage.vue | 0 .../RecipeExplorerPageSearch.vue | 0 .../RecipeExplorerPageSearchFilters.vue | 0 .../Domain/Recipe/RecipeFavoriteBadge.vue | 0 .../Domain/Recipe/RecipeImageUploadBtn.vue | 0 .../Domain/Recipe/RecipeIngredientEditor.vue | 0 .../Domain/Recipe/RecipeIngredientHtml.vue | 0 .../Recipe/RecipeIngredientListItem.vue | 0 .../Domain/Recipe/RecipeIngredients.vue | 0 .../Domain/Recipe/RecipeLastMade.vue | 0 .../components/Domain/Recipe/RecipeList.vue | 0 .../components/Domain/Recipe/RecipeNotes.vue | 0 .../Domain/Recipe/RecipeNutrition.vue | 0 .../Domain/Recipe/RecipeOrganizerDialog.vue | 0 .../Domain/Recipe/RecipeOrganizerPage.vue | 0 .../Domain/Recipe/RecipeOrganizerSelector.vue | 0 .../Domain/Recipe/RecipePage/RecipePage.vue | 0 .../RecipePageParts/RecipePageComments.vue | 2 +- .../RecipePageEditorToolbar.vue | 0 .../RecipePageParts/RecipePageFooter.vue | 0 .../RecipePageParts/RecipePageHeader.vue | 0 .../RecipePageParts/RecipePageInfoCard.vue | 0 .../RecipePageInfoCardImage.vue | 0 .../RecipePageParts/RecipePageInfoEditor.vue | 0 .../RecipePageIngredientEditor.vue | 0 .../RecipePageIngredientToolsView.vue | 0 .../RecipePageInstructions.vue | 0 .../RecipePageParts/RecipePageOrganizers.vue | 2 +- .../RecipePageParts/RecipePageParseDialog.vue | 0 .../RecipePageParts/RecipePageScale.vue | 0 .../Domain/Recipe/RecipePrintContainer.vue | 0 .../Domain/Recipe/RecipePrintView.vue | 0 .../components/Domain/Recipe/RecipeRating.vue | 0 .../Domain/Recipe/RecipeScaleEditButton.vue | 0 .../Domain/Recipe/RecipeSettingsMenu.vue | 2 +- .../Domain/Recipe/RecipeSettingsSwitches.vue | 3 +- .../Domain/Recipe/RecipeSuggestion.vue | 0 .../Domain/Recipe/RecipeTimeCard.vue | 0 .../Domain/Recipe/RecipeTimeline.vue | 0 .../Domain/Recipe/RecipeTimelineBadge.vue | 0 .../Recipe/RecipeTimelineContextMenu.vue | 2 +- .../Domain/Recipe/RecipeTimelineItem.vue | 0 .../components/Domain/Recipe/RecipeYield.vue | 0 .../components/Domain/SearchFilter.vue | 0 .../Domain/ShoppingList/MultiPurposeLabel.vue | 0 .../ShoppingList/MultiPurposeLabelSection.vue | 0 .../Domain/ShoppingList/ShoppingListItem.vue | 2 +- .../ShoppingList/ShoppingListItemEditor.vue | 0 .../components/Domain/User/UserAvatar.vue | 0 .../Domain/User/UserInviteDialog.vue | 0 .../Domain/User/UserPasswordStrength.vue | 0 .../Domain/User/UserProfileLinkCard.vue | 0 .../Domain/User/UserRegistrationForm.vue | 0 .../components/Layout/DefaultLayout.vue | 0 .../Layout/LayoutParts/AppFooter.vue | 0 .../Layout/LayoutParts/AppHeader.vue | 0 .../Layout/LayoutParts/AppScrollToTop.vue | 0 .../Layout/LayoutParts/AppSidebar.vue | 0 .../Layout/LayoutParts/TheSnackbar.vue | 0 frontend/{ => app}/components/README.md | 0 .../components/global/AdvancedOnly.vue | 0 .../components/global/AppButtonCopy.vue | 0 .../components/global/AppButtonUpload.vue | 0 .../{ => app}/components/global/AppLoader.vue | 0 .../{ => app}/components/global/AppLogo.vue | 0 .../components/global/AppToolbar.vue | 0 .../{ => app}/components/global/AutoForm.vue | 0 .../components/global/BannerExperimental.vue | 0 .../components/global/BannerWarning.vue | 0 .../components/global/BaseButton.vue | 0 .../components/global/BaseButtonGroup.vue | 0 .../global/BaseCardSectionTitle.vue | 0 .../components/global/BaseDialog.vue | 0 .../components/global/BaseDivider.vue | 0 .../components/global/BaseExpansionPanels.vue | 0 .../components/global/BaseOverflowButton.vue | 0 .../components/global/BasePageTitle.vue | 0 .../components/global/ButtonLink.vue | 0 .../components/global/ContextMenu.vue | 0 .../{ => app}/components/global/CrudTable.vue | 0 .../components/global/DevDumpJson.vue | 0 .../{ => app}/components/global/DocLink.vue | 0 .../{ => app}/components/global/DropZone.vue | 0 .../{ => app}/components/global/HelpIcon.vue | 0 .../components/global/ImageCropper.vue | 0 .../components/global/InputColor.vue | 0 .../components/global/InputLabelType.vue | 0 .../components/global/LanguageDialog.vue | 0 .../components/global/MarkdownEditor.vue | 0 .../components/global/RecipeJsonEditor.vue | 0 .../components/global/ReportTable.vue | 0 .../components/global/SafeMarkdown.vue | 0 .../components/global/StatsCards.vue | 0 .../components/global/ToggleState.vue | 0 .../components/global/WakelockSwitch.vue | 0 .../{ => app}/composables/api/api-client.ts | 0 frontend/{ => app}/composables/api/index.ts | 0 .../composables/api/static-routes.ts | 0 .../composables/api/use-downloader.ts | 0 frontend/{ => app}/composables/forms/index.ts | 0 .../composables/forms/use-field-types.ts | 0 .../{ => app}/composables/partials/types.ts | 0 .../partials/use-actions-factory.test.ts | 0 .../partials/use-actions-factory.ts | 0 .../composables/partials/use-store-factory.ts | 0 .../composables/recipe-page/shared-state.ts | 0 .../use-extract-ingredient-references.test.ts | 0 .../use-extract-ingredient-references.ts | 0 .../{ => app}/composables/recipes/index.ts | 0 .../composables/recipes/use-fraction.ts | 0 .../recipes/use-recipe-ingredients.test.ts | 0 .../recipes/use-recipe-ingredients.ts | 0 .../recipes/use-recipe-nutrition.ts | 0 .../recipes/use-recipe-permissions.test.ts | 0 .../recipes/use-recipe-permissions.ts | 0 .../composables/recipes/use-recipe-search.ts | 0 .../recipes/use-recipe-timeline-events.ts | 0 .../composables/recipes/use-recipe-tools.ts | 0 .../composables/recipes/use-recipe.ts | 0 .../composables/recipes/use-recipes.ts | 0 .../recipes/use-scaled-amount.test.ts | 0 .../composables/recipes/use-scaled-amount.ts | 0 .../sub-composables/use-shopping-list-copy.ts | 0 .../sub-composables/use-shopping-list-crud.ts | 0 .../sub-composables/use-shopping-list-data.ts | 0 .../use-shopping-list-labels.ts | 0 .../use-shopping-list-recipes.ts | 0 .../use-shopping-list-sorting.ts | 0 .../use-shopping-list-state.ts | 0 .../use-shopping-list-page.ts | 0 frontend/{ => app}/composables/store/index.ts | 0 .../composables/store/use-category-store.ts | 0 .../composables/store/use-cookbook-store.ts | 0 .../composables/store/use-food-store.ts | 0 .../composables/store/use-household-store.ts | 0 .../composables/store/use-label-store.ts | 0 .../composables/store/use-tag-store.ts | 0 .../composables/store/use-tool-store.ts | 0 .../composables/store/use-unit-store.ts | 0 .../composables/store/use-user-store.ts | 0 .../{ => app}/composables/use-auth-backend.ts | 0 frontend/{ => app}/composables/use-backups.ts | 0 .../composables/use-context-presents.ts | 0 frontend/{ => app}/composables/use-copy.ts | 0 .../composables/use-default-activity.ts | 0 .../{ => app}/composables/use-global-i18n.ts | 0 .../composables/use-group-cookbooks.ts | 0 .../composables/use-group-mealplan.ts | 0 .../composables/use-group-recipe-actions.ts | 0 .../composables/use-group-webhooks.ts | 0 frontend/{ => app}/composables/use-groups.ts | 0 .../{ => app}/composables/use-households.ts | 0 .../use-locales/available-locales.ts | 0 .../composables/use-locales/index.ts | 0 .../composables/use-locales/use-locales.ts | 0 .../composables/use-logged-in-state.ts | 0 .../{ => app}/composables/use-mealie-auth.ts | 0 .../composables/use-navigation-warning.ts | 0 .../composables/use-new-recipe-options.ts | 0 .../composables/use-passwords.test.ts | 0 .../{ => app}/composables/use-passwords.ts | 0 .../composables/use-query-filter-builder.ts | 0 .../composables/use-recipe-explorer-search.ts | 0 frontend/{ => app}/composables/use-router.ts | 0 .../composables/use-scroll-position.ts | 0 frontend/{ => app}/composables/use-search.ts | 0 .../use-setup/common-settings-form.ts | 0 .../{ => app}/composables/use-setup/index.ts | 0 .../use-shopping-list-item-actions.ts | 0 .../{ => app}/composables/use-text-color.ts | 0 frontend/{ => app}/composables/use-toast.ts | 0 frontend/{ => app}/composables/use-user.ts | 0 .../{ => app}/composables/use-users/index.ts | 0 .../composables/use-users/preferences.ts | 0 .../composables/use-users/user-form.ts | 0 .../composables/use-users/user-ratings.ts | 0 .../use-users/user-registration-form.ts | 0 .../{ => app}/composables/use-utils.test.ts | 0 frontend/{ => app}/composables/use-utils.ts | 0 .../{ => app}/composables/use-validators.ts | 0 frontend/{ => app}/i18n.config.ts | 0 .../{ => app}/lang/dateTimeFormats/af-ZA.json | 0 .../{ => app}/lang/dateTimeFormats/ar-SA.json | 0 .../{ => app}/lang/dateTimeFormats/bg-BG.json | 0 .../{ => app}/lang/dateTimeFormats/ca-ES.json | 0 .../{ => app}/lang/dateTimeFormats/cs-CZ.json | 0 .../{ => app}/lang/dateTimeFormats/da-DK.json | 0 .../{ => app}/lang/dateTimeFormats/de-DE.json | 0 .../{ => app}/lang/dateTimeFormats/el-GR.json | 0 .../{ => app}/lang/dateTimeFormats/en-GB.json | 0 .../{ => app}/lang/dateTimeFormats/en-US.json | 0 .../{ => app}/lang/dateTimeFormats/es-ES.json | 0 .../{ => app}/lang/dateTimeFormats/et-EE.json | 0 .../{ => app}/lang/dateTimeFormats/fi-FI.json | 0 .../{ => app}/lang/dateTimeFormats/fr-BE.json | 0 .../{ => app}/lang/dateTimeFormats/fr-CA.json | 0 .../{ => app}/lang/dateTimeFormats/fr-FR.json | 0 .../{ => app}/lang/dateTimeFormats/gl-ES.json | 0 .../{ => app}/lang/dateTimeFormats/he-IL.json | 0 .../{ => app}/lang/dateTimeFormats/hr-HR.json | 0 .../{ => app}/lang/dateTimeFormats/hu-HU.json | 0 .../{ => app}/lang/dateTimeFormats/is-IS.json | 0 .../{ => app}/lang/dateTimeFormats/it-IT.json | 0 .../{ => app}/lang/dateTimeFormats/ja-JP.json | 0 .../{ => app}/lang/dateTimeFormats/ko-KR.json | 0 .../{ => app}/lang/dateTimeFormats/lt-LT.json | 0 .../{ => app}/lang/dateTimeFormats/lv-LV.json | 0 .../{ => app}/lang/dateTimeFormats/nl-NL.json | 0 .../{ => app}/lang/dateTimeFormats/no-NO.json | 0 .../{ => app}/lang/dateTimeFormats/pl-PL.json | 0 .../{ => app}/lang/dateTimeFormats/pt-BR.json | 0 .../{ => app}/lang/dateTimeFormats/pt-PT.json | 0 .../{ => app}/lang/dateTimeFormats/ro-RO.json | 0 .../{ => app}/lang/dateTimeFormats/ru-RU.json | 0 .../{ => app}/lang/dateTimeFormats/sk-SK.json | 0 .../{ => app}/lang/dateTimeFormats/sl-SI.json | 0 .../{ => app}/lang/dateTimeFormats/sr-SP.json | 0 .../{ => app}/lang/dateTimeFormats/sv-SE.json | 0 .../{ => app}/lang/dateTimeFormats/tr-TR.json | 0 .../{ => app}/lang/dateTimeFormats/uk-UA.json | 0 .../{ => app}/lang/dateTimeFormats/vi-VN.json | 0 .../{ => app}/lang/dateTimeFormats/zh-CN.json | 0 .../{ => app}/lang/dateTimeFormats/zh-TW.json | 0 frontend/{ => app}/lang/locales/af-ZA.ts | 0 frontend/{ => app}/lang/locales/ar-SA.ts | 0 frontend/{ => app}/lang/locales/bg-BG.ts | 0 frontend/{ => app}/lang/locales/ca-ES.ts | 0 frontend/{ => app}/lang/locales/cs-CZ.ts | 0 frontend/{ => app}/lang/locales/da-DK.ts | 0 frontend/{ => app}/lang/locales/de-DE.ts | 0 frontend/{ => app}/lang/locales/el-GR.ts | 0 frontend/{ => app}/lang/locales/en-GB.ts | 0 frontend/{ => app}/lang/locales/en-US.ts | 0 frontend/{ => app}/lang/locales/es-ES.ts | 0 frontend/{ => app}/lang/locales/et-EE.ts | 0 frontend/{ => app}/lang/locales/fi-FI.ts | 0 frontend/{ => app}/lang/locales/fr-BE.ts | 0 frontend/{ => app}/lang/locales/fr-CA.ts | 0 frontend/{ => app}/lang/locales/fr-FR.ts | 0 frontend/{ => app}/lang/locales/gl-ES.ts | 0 frontend/{ => app}/lang/locales/he-IL.ts | 0 frontend/{ => app}/lang/locales/hr-HR.ts | 0 frontend/{ => app}/lang/locales/hu-HU.ts | 0 frontend/{ => app}/lang/locales/is-IS.ts | 0 frontend/{ => app}/lang/locales/it-IT.ts | 0 frontend/{ => app}/lang/locales/ja-JP.ts | 0 frontend/{ => app}/lang/locales/ko-KR.ts | 0 frontend/{ => app}/lang/locales/lt-LT.ts | 0 frontend/{ => app}/lang/locales/lv-LV.ts | 0 frontend/{ => app}/lang/locales/nl-NL.ts | 0 frontend/{ => app}/lang/locales/no-NO.ts | 0 frontend/{ => app}/lang/locales/pl-PL.ts | 0 frontend/{ => app}/lang/locales/pt-BR.ts | 0 frontend/{ => app}/lang/locales/pt-PT.ts | 0 frontend/{ => app}/lang/locales/ro-RO.ts | 0 frontend/{ => app}/lang/locales/ru-RU.ts | 0 frontend/{ => app}/lang/locales/sk-SK.ts | 0 frontend/{ => app}/lang/locales/sl-SI.ts | 0 frontend/{ => app}/lang/locales/sr-SP.ts | 0 frontend/{ => app}/lang/locales/sv-SE.ts | 0 frontend/{ => app}/lang/locales/tr-TR.ts | 0 frontend/{ => app}/lang/locales/uk-UA.ts | 0 frontend/{ => app}/lang/locales/vi-VN.ts | 0 frontend/{ => app}/lang/locales/zh-CN.ts | 0 frontend/{ => app}/lang/locales/zh-TW.ts | 0 frontend/{ => app}/lang/messages/af-ZA.json | 0 frontend/{ => app}/lang/messages/ar-SA.json | 0 frontend/{ => app}/lang/messages/bg-BG.json | 0 frontend/{ => app}/lang/messages/ca-ES.json | 0 frontend/{ => app}/lang/messages/cs-CZ.json | 0 frontend/{ => app}/lang/messages/da-DK.json | 0 frontend/{ => app}/lang/messages/de-DE.json | 0 frontend/{ => app}/lang/messages/el-GR.json | 0 frontend/{ => app}/lang/messages/en-GB.json | 0 frontend/{ => app}/lang/messages/en-US.json | 0 frontend/{ => app}/lang/messages/es-ES.json | 0 frontend/{ => app}/lang/messages/et-EE.json | 0 frontend/{ => app}/lang/messages/fi-FI.json | 0 frontend/{ => app}/lang/messages/fr-BE.json | 0 frontend/{ => app}/lang/messages/fr-CA.json | 0 frontend/{ => app}/lang/messages/fr-FR.json | 0 frontend/{ => app}/lang/messages/gl-ES.json | 0 frontend/{ => app}/lang/messages/he-IL.json | 0 frontend/{ => app}/lang/messages/hr-HR.json | 0 frontend/{ => app}/lang/messages/hu-HU.json | 0 frontend/{ => app}/lang/messages/is-IS.json | 0 frontend/{ => app}/lang/messages/it-IT.json | 0 frontend/{ => app}/lang/messages/ja-JP.json | 0 frontend/{ => app}/lang/messages/ko-KR.json | 0 frontend/{ => app}/lang/messages/lt-LT.json | 0 frontend/{ => app}/lang/messages/lv-LV.json | 0 frontend/{ => app}/lang/messages/nl-NL.json | 0 frontend/{ => app}/lang/messages/no-NO.json | 0 frontend/{ => app}/lang/messages/pl-PL.json | 0 frontend/{ => app}/lang/messages/pt-BR.json | 0 frontend/{ => app}/lang/messages/pt-PT.json | 0 frontend/{ => app}/lang/messages/ro-RO.json | 0 frontend/{ => app}/lang/messages/ru-RU.json | 0 frontend/{ => app}/lang/messages/sk-SK.json | 0 frontend/{ => app}/lang/messages/sl-SI.json | 0 frontend/{ => app}/lang/messages/sr-SP.json | 0 frontend/{ => app}/lang/messages/sv-SE.json | 0 frontend/{ => app}/lang/messages/tr-TR.json | 0 frontend/{ => app}/lang/messages/uk-UA.json | 0 frontend/{ => app}/lang/messages/vi-VN.json | 0 frontend/{ => app}/lang/messages/zh-CN.json | 0 frontend/{ => app}/lang/messages/zh-TW.json | 0 frontend/{ => app}/layouts/admin.vue | 0 frontend/{ => app}/layouts/basic.vue | 0 frontend/{ => app}/layouts/blank.vue | 6 +- frontend/{ => app}/layouts/default.vue | 0 frontend/{ => app}/layouts/error.vue | 0 .../{ => app}/lib/api/admin/admin-about.ts | 0 .../lib/api/admin/admin-analytics.ts | 0 .../{ => app}/lib/api/admin/admin-backups.ts | 0 .../{ => app}/lib/api/admin/admin-debug.ts | 0 .../{ => app}/lib/api/admin/admin-groups.ts | 0 .../lib/api/admin/admin-households.ts | 0 .../lib/api/admin/admin-maintenance.ts | 0 .../{ => app}/lib/api/admin/admin-users.ts | 0 .../{ => app}/lib/api/base/base-clients.ts | 0 frontend/{ => app}/lib/api/base/index.ts | 0 frontend/{ => app}/lib/api/base/route.ts | 0 .../{ => app}/lib/api/base/routes.test.ts | 0 frontend/{ => app}/lib/api/client-admin.ts | 0 frontend/{ => app}/lib/api/client-public.ts | 0 frontend/{ => app}/lib/api/client-user.ts | 0 frontend/{ => app}/lib/api/config.ts | 0 frontend/{ => app}/lib/api/index.ts | 0 frontend/{ => app}/lib/api/public/explore.ts | 0 .../lib/api/public/explore/cookbooks.ts | 0 .../{ => app}/lib/api/public/explore/foods.ts | 0 .../lib/api/public/explore/households.ts | 0 .../lib/api/public/explore/organizers.ts | 0 .../lib/api/public/explore/recipes.ts | 0 frontend/{ => app}/lib/api/public/shared.ts | 0 .../{ => app}/lib/api/public/validators.ts | 0 frontend/{ => app}/lib/api/types/activity.ts | 0 frontend/{ => app}/lib/api/types/admin.ts | 0 frontend/{ => app}/lib/api/types/analytics.ts | 0 frontend/{ => app}/lib/api/types/cookbook.ts | 0 frontend/{ => app}/lib/api/types/events.ts | 0 frontend/{ => app}/lib/api/types/group.ts | 0 frontend/{ => app}/lib/api/types/household.ts | 0 frontend/{ => app}/lib/api/types/labels.ts | 0 frontend/{ => app}/lib/api/types/meal-plan.ts | 0 .../{ => app}/lib/api/types/non-generated.ts | 0 frontend/{ => app}/lib/api/types/openai.ts | 0 frontend/{ => app}/lib/api/types/recipe.ts | 0 frontend/{ => app}/lib/api/types/reports.ts | 0 frontend/{ => app}/lib/api/types/response.ts | 0 frontend/{ => app}/lib/api/types/static.ts | 0 frontend/{ => app}/lib/api/types/user.ts | 0 frontend/{ => app}/lib/api/user/backups.ts | 0 frontend/{ => app}/lib/api/user/email.ts | 0 .../{ => app}/lib/api/user/group-cookbooks.ts | 0 .../lib/api/user/group-event-notifier.ts | 0 .../lib/api/user/group-mealplan-rules.ts | 0 .../{ => app}/lib/api/user/group-mealplan.ts | 0 .../lib/api/user/group-migrations.ts | 0 .../api/user/group-multiple-purpose-labels.ts | 0 .../lib/api/user/group-recipe-actions.ts | 0 .../{ => app}/lib/api/user/group-reports.ts | 0 .../{ => app}/lib/api/user/group-seeder.ts | 0 .../lib/api/user/group-shopping-lists.ts | 0 .../{ => app}/lib/api/user/group-webhooks.ts | 0 frontend/{ => app}/lib/api/user/groups.ts | 0 frontend/{ => app}/lib/api/user/households.ts | 0 .../lib/api/user/organizer-categories.ts | 0 .../{ => app}/lib/api/user/organizer-tags.ts | 0 .../{ => app}/lib/api/user/organizer-tools.ts | 0 .../lib/api/user/recipe-bulk-actions.ts | 0 .../{ => app}/lib/api/user/recipe-foods.ts | 0 .../{ => app}/lib/api/user/recipe-units.ts | 0 .../{ => app}/lib/api/user/recipes/index.ts | 0 .../lib/api/user/recipes/recipe-comments.ts | 0 .../lib/api/user/recipes/recipe-share.ts | 0 .../{ => app}/lib/api/user/recipes/recipe.ts | 0 frontend/{ => app}/lib/api/user/upload.ts | 0 .../lib/api/user/user-registration.ts | 0 frontend/{ => app}/lib/api/user/users.ts | 0 frontend/{ => app}/lib/api/user/utils.ts | 0 frontend/{ => app}/lib/icons/icon-type.ts | 0 frontend/{ => app}/lib/icons/icons.ts | 0 frontend/{ => app}/lib/icons/index.ts | 0 frontend/{ => app}/lib/validators/index.ts | 0 .../{ => app}/lib/validators/inputs.test.ts | 0 frontend/{ => app}/lib/validators/inputs.ts | 0 .../{ => app}/lib/validators/password.test.ts | 0 frontend/{ => app}/lib/validators/password.ts | 0 frontend/{ => app}/middleware/admin-only.ts | 0 .../{ => app}/middleware/advanced-only.ts | 0 .../middleware/can-manage-household-only.ts | 0 .../{ => app}/middleware/can-manage-only.ts | 0 .../{ => app}/middleware/can-organize-only.ts | 0 frontend/{ => app}/middleware/group-only.ts | 0 .../pwa-share-target-redirect.global.ts | 0 frontend/{ => app}/pages/admin.vue | 0 frontend/{ => app}/pages/admin/backups.vue | 0 .../{ => app}/pages/admin/debug/openai.vue | 0 .../{ => app}/pages/admin/debug/parser.vue | 0 .../pages/admin/maintenance/index.vue | 0 .../pages/admin/manage/groups/[id].vue | 0 .../pages/admin/manage/groups/index.vue | 0 .../pages/admin/manage/households/[id].vue | 0 .../pages/admin/manage/households/index.vue | 0 .../pages/admin/manage/users/[id].vue | 0 .../pages/admin/manage/users/create.vue | 0 .../pages/admin/manage/users/index.vue | 0 frontend/{ => app}/pages/admin/setup.vue | 0 .../{ => app}/pages/admin/site-settings.vue | 0 frontend/{ => app}/pages/forgot-password.vue | 0 .../pages/g/[groupSlug]/cookbooks/[slug].vue | 0 .../pages/g/[groupSlug]/cookbooks/index.vue | 0 .../{ => app}/pages/g/[groupSlug]/index.vue | 0 .../pages/g/[groupSlug]/r/[slug]/index.vue | 0 .../pages/g/[groupSlug]/r/create.vue | 0 .../pages/g/[groupSlug]/r/create/bulk.vue | 0 .../pages/g/[groupSlug]/r/create/debug.vue | 0 .../pages/g/[groupSlug]/r/create/html.vue | 0 .../pages/g/[groupSlug]/r/create/image.vue | 0 .../pages/g/[groupSlug]/r/create/index.vue | 0 .../pages/g/[groupSlug]/r/create/new.vue | 0 .../pages/g/[groupSlug]/r/create/url.vue | 0 .../pages/g/[groupSlug]/r/create/zip.vue | 0 .../[groupSlug]/recipes/categories/index.vue | 0 .../g/[groupSlug]/recipes/finder/index.vue | 0 .../g/[groupSlug]/recipes/tags/index.vue | 0 .../pages/g/[groupSlug]/recipes/timeline.vue | 0 .../g/[groupSlug]/recipes/tools/index.vue | 0 .../pages/g/[groupSlug]/shared/r/[id].vue | 0 frontend/{ => app}/pages/group/data.vue | 0 .../{ => app}/pages/group/data/categories.vue | 0 frontend/{ => app}/pages/group/data/foods.vue | 0 frontend/{ => app}/pages/group/data/index.vue | 0 .../{ => app}/pages/group/data/labels.vue | 0 .../pages/group/data/recipe-actions.vue | 0 .../{ => app}/pages/group/data/recipes.vue | 0 frontend/{ => app}/pages/group/data/tags.vue | 0 frontend/{ => app}/pages/group/data/tools.vue | 0 frontend/{ => app}/pages/group/data/units.vue | 0 frontend/{ => app}/pages/group/index.vue | 0 frontend/{ => app}/pages/group/migrations.vue | 0 .../{ => app}/pages/group/reports/[id].vue | 0 frontend/{ => app}/pages/household/index.vue | 0 .../pages/household/mealplan/planner.vue | 0 .../pages/household/mealplan/planner/edit.vue | 2 +- .../pages/household/mealplan/planner/view.vue | 6 +- .../pages/household/mealplan/settings.vue | 0 .../{ => app}/pages/household/members.vue | 0 .../{ => app}/pages/household/notifiers.vue | 0 .../{ => app}/pages/household/webhooks.vue | 0 frontend/{ => app}/pages/index.vue | 0 frontend/{ => app}/pages/login.vue | 0 frontend/{ => app}/pages/register/index.vue | 0 frontend/{ => app}/pages/register/states.ts | 0 frontend/{ => app}/pages/reset-password.vue | 0 .../{ => app}/pages/shopping-lists/[id].vue | 0 .../{ => app}/pages/shopping-lists/index.vue | 0 .../{ => app}/pages/user/[id]/favorites.vue | 0 .../pages/user/profile/api-tokens.vue | 0 .../{ => app}/pages/user/profile/edit.vue | 0 .../{ => app}/pages/user/profile/index.vue | 0 frontend/{ => app}/plugins/app-info.client.ts | 0 frontend/{ => app}/plugins/axios.ts | 0 .../{ => app}/plugins/dark-mode.client.ts | 0 frontend/{ => app}/plugins/globals.ts | 0 .../{ => app}/plugins/init-auth.client.ts | 0 frontend/{ => app}/plugins/theme.ts | 0 frontend/{ => app}/tests/utils.ts | 0 frontend/{ => app}/types/application-types.ts | 0 frontend/{ => app}/types/auth.d.ts | 0 frontend/{ => app}/types/auto-forms.ts | 0 frontend/{ => app}/types/components.d.ts | 0 frontend/{ => app}/types/recipe/organizers.ts | 0 frontend/{ => app}/types/ts-shim.d.ts | 0 frontend/nuxt.config.ts | 11 +- frontend/package.json | 7 +- .../pages/household/mealplan/planner/types.ts | 6 - frontend/{static => public}/account.png | Bin frontend/{static => public}/discord.svg | 0 .../{static => public}/fallback-profile.webp | Bin frontend/{static => public}/favicon.ico | Bin frontend/{static => public}/gotify.png | Bin .../{static => public}/home-assistant.png | Bin frontend/{static => public}/icon.png | Bin .../icons/android-chrome-192x192.png | Bin .../icons/android-chrome-512x512.png | Bin .../icons/android-chrome-maskable-192x192.png | Bin .../icons/android-chrome-maskable-512x512.png | Bin .../icons/apple-touch-icon.png | Bin .../icons/favicon-16x16.png | Bin .../icons/favicon-32x32.png | Bin .../{static => public}/icons/icon-x64.png | Bin .../icons/mdiCalendarMultiselect-192x192.png | Bin .../icons/mdiCalendarMultiselect-96x96.png | Bin .../icons/mdiFormatListChecks-192x192.png | Bin .../icons/mdiFormatListChecks-96x96.png | Bin .../icons/mstile-150x150.png | Bin .../icons/safari-pinned-tab.svg | 0 frontend/{static => public}/matrix.png | Bin .../mealie-email-banner.png | Bin frontend/{static => public}/pushover.svg | 0 frontend/{static => public}/robots.txt | 0 .../screenshots/editor-narrow.png | Bin .../screenshots/editor-wide.png | Bin .../screenshots/home-narrow.png | Bin .../screenshots/home-wide.png | Bin .../screenshots/parser-narrow.png | Bin .../screenshots/parser-wide.png | Bin .../screenshots/recipe-narrow.png | Bin .../screenshots/recipe-wide.png | Bin .../svgs/admin-site-settings.svg | 0 .../{static => public}/svgs/data-reports.svg | 0 .../svgs/manage-api-tokens.svg | 0 .../svgs/manage-cookbooks.svg | 0 .../svgs/manage-data-migrations.svg | 0 .../svgs/manage-group-settings.svg | 0 .../svgs/manage-members.svg | 0 .../svgs/manage-notifiers.svg | 0 .../svgs/manage-profile.svg | 0 .../svgs/manage-recipes.svg | 0 .../{static => public}/svgs/manage-tasks.svg | 0 .../svgs/manage-webhooks.svg | 0 .../svgs/recipes-create.svg | 0 .../{static => public}/svgs/shopping-cart.svg | 0 frontend/store/README.md | 10 - frontend/store/index.js | 1 - frontend/vitest.config.js | 6 +- frontend/yarn.lock | 4522 +++++++---------- 561 files changed, 1840 insertions(+), 2750 deletions(-) rename frontend/{ => app}/assets/main.css (100%) rename frontend/{ => app}/assets/style-overrides.scss (100%) rename frontend/{ => app}/assets/variables.scss (100%) rename frontend/{ => app}/components/Domain/Admin/Setup/EndPageContent.vue (100%) rename frontend/{ => app}/components/Domain/Cookbook/CookbookEditor.vue (100%) rename frontend/{ => app}/components/Domain/Cookbook/CookbookPage.vue (100%) rename frontend/{ => app}/components/Domain/Group/GroupDataPage.vue (100%) rename frontend/{ => app}/components/Domain/Group/GroupExportData.vue (100%) rename frontend/{ => app}/components/Domain/Group/GroupPreferencesEditor.vue (100%) rename frontend/{ => app}/components/Domain/Household/GroupMealPlanDayContextMenu.vue (100%) rename frontend/{ => app}/components/Domain/Household/GroupMealPlanRuleForm.vue (100%) rename frontend/{ => app}/components/Domain/Household/GroupWebhookEditor.vue (100%) rename frontend/{ => app}/components/Domain/Household/HouseholdPreferencesEditor.vue (100%) rename frontend/{ => app}/components/Domain/QueryFilterBuilder.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeActionMenu.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeAssets.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeCard.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeCardImage.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeCardMobile.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeCardRating.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeCardSection.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeChips.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeContextMenu/RecipeContextMenu.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeContextMenu/RecipeContextMenuContent.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeDataAliasManagerDialog.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeDataTable.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeDialogAddToShoppingList.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeDialogBulkAdd.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeDialogPrintPreferences.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeDialogSearch.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeDialogShare.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeExplorerPage/RecipeExplorerPage.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeExplorerPage/RecipeExplorerPageParts/RecipeExplorerPageSearch.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeExplorerPage/RecipeExplorerPageParts/RecipeExplorerPageSearchFilters.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeFavoriteBadge.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeImageUploadBtn.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeIngredientEditor.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeIngredientHtml.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeIngredientListItem.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeIngredients.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeLastMade.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeList.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeNotes.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeNutrition.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeOrganizerDialog.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeOrganizerPage.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeOrganizerSelector.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipePage/RecipePage.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipePage/RecipePageParts/RecipePageComments.vue (99%) rename frontend/{ => app}/components/Domain/Recipe/RecipePage/RecipePageParts/RecipePageEditorToolbar.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipePage/RecipePageParts/RecipePageFooter.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipePage/RecipePageParts/RecipePageHeader.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipePage/RecipePageParts/RecipePageInfoCard.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipePage/RecipePageParts/RecipePageInfoCardImage.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipePage/RecipePageParts/RecipePageInfoEditor.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipePage/RecipePageParts/RecipePageIngredientEditor.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipePage/RecipePageParts/RecipePageIngredientToolsView.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipePage/RecipePageParts/RecipePageInstructions.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipePage/RecipePageParts/RecipePageOrganizers.vue (99%) rename frontend/{ => app}/components/Domain/Recipe/RecipePage/RecipePageParts/RecipePageParseDialog.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipePage/RecipePageParts/RecipePageScale.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipePrintContainer.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipePrintView.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeRating.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeScaleEditButton.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeSettingsMenu.vue (97%) rename frontend/{ => app}/components/Domain/Recipe/RecipeSettingsSwitches.vue (92%) rename frontend/{ => app}/components/Domain/Recipe/RecipeSuggestion.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeTimeCard.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeTimeline.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeTimelineBadge.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeTimelineContextMenu.vue (99%) rename frontend/{ => app}/components/Domain/Recipe/RecipeTimelineItem.vue (100%) rename frontend/{ => app}/components/Domain/Recipe/RecipeYield.vue (100%) rename frontend/{ => app}/components/Domain/SearchFilter.vue (100%) rename frontend/{ => app}/components/Domain/ShoppingList/MultiPurposeLabel.vue (100%) rename frontend/{ => app}/components/Domain/ShoppingList/MultiPurposeLabelSection.vue (100%) rename frontend/{ => app}/components/Domain/ShoppingList/ShoppingListItem.vue (99%) rename frontend/{ => app}/components/Domain/ShoppingList/ShoppingListItemEditor.vue (100%) rename frontend/{ => app}/components/Domain/User/UserAvatar.vue (100%) rename frontend/{ => app}/components/Domain/User/UserInviteDialog.vue (100%) rename frontend/{ => app}/components/Domain/User/UserPasswordStrength.vue (100%) rename frontend/{ => app}/components/Domain/User/UserProfileLinkCard.vue (100%) rename frontend/{ => app}/components/Domain/User/UserRegistrationForm.vue (100%) rename frontend/{ => app}/components/Layout/DefaultLayout.vue (100%) rename frontend/{ => app}/components/Layout/LayoutParts/AppFooter.vue (100%) rename frontend/{ => app}/components/Layout/LayoutParts/AppHeader.vue (100%) rename frontend/{ => app}/components/Layout/LayoutParts/AppScrollToTop.vue (100%) rename frontend/{ => app}/components/Layout/LayoutParts/AppSidebar.vue (100%) rename frontend/{ => app}/components/Layout/LayoutParts/TheSnackbar.vue (100%) rename frontend/{ => app}/components/README.md (100%) rename frontend/{ => app}/components/global/AdvancedOnly.vue (100%) rename frontend/{ => app}/components/global/AppButtonCopy.vue (100%) rename frontend/{ => app}/components/global/AppButtonUpload.vue (100%) rename frontend/{ => app}/components/global/AppLoader.vue (100%) rename frontend/{ => app}/components/global/AppLogo.vue (100%) rename frontend/{ => app}/components/global/AppToolbar.vue (100%) rename frontend/{ => app}/components/global/AutoForm.vue (100%) rename frontend/{ => app}/components/global/BannerExperimental.vue (100%) rename frontend/{ => app}/components/global/BannerWarning.vue (100%) rename frontend/{ => app}/components/global/BaseButton.vue (100%) rename frontend/{ => app}/components/global/BaseButtonGroup.vue (100%) rename frontend/{ => app}/components/global/BaseCardSectionTitle.vue (100%) rename frontend/{ => app}/components/global/BaseDialog.vue (100%) rename frontend/{ => app}/components/global/BaseDivider.vue (100%) rename frontend/{ => app}/components/global/BaseExpansionPanels.vue (100%) rename frontend/{ => app}/components/global/BaseOverflowButton.vue (100%) rename frontend/{ => app}/components/global/BasePageTitle.vue (100%) rename frontend/{ => app}/components/global/ButtonLink.vue (100%) rename frontend/{ => app}/components/global/ContextMenu.vue (100%) rename frontend/{ => app}/components/global/CrudTable.vue (100%) rename frontend/{ => app}/components/global/DevDumpJson.vue (100%) rename frontend/{ => app}/components/global/DocLink.vue (100%) rename frontend/{ => app}/components/global/DropZone.vue (100%) rename frontend/{ => app}/components/global/HelpIcon.vue (100%) rename frontend/{ => app}/components/global/ImageCropper.vue (100%) rename frontend/{ => app}/components/global/InputColor.vue (100%) rename frontend/{ => app}/components/global/InputLabelType.vue (100%) rename frontend/{ => app}/components/global/LanguageDialog.vue (100%) rename frontend/{ => app}/components/global/MarkdownEditor.vue (100%) rename frontend/{ => app}/components/global/RecipeJsonEditor.vue (100%) rename frontend/{ => app}/components/global/ReportTable.vue (100%) rename frontend/{ => app}/components/global/SafeMarkdown.vue (100%) rename frontend/{ => app}/components/global/StatsCards.vue (100%) rename frontend/{ => app}/components/global/ToggleState.vue (100%) rename frontend/{ => app}/components/global/WakelockSwitch.vue (100%) rename frontend/{ => app}/composables/api/api-client.ts (100%) rename frontend/{ => app}/composables/api/index.ts (100%) rename frontend/{ => app}/composables/api/static-routes.ts (100%) rename frontend/{ => app}/composables/api/use-downloader.ts (100%) rename frontend/{ => app}/composables/forms/index.ts (100%) rename frontend/{ => app}/composables/forms/use-field-types.ts (100%) rename frontend/{ => app}/composables/partials/types.ts (100%) rename frontend/{ => app}/composables/partials/use-actions-factory.test.ts (100%) rename frontend/{ => app}/composables/partials/use-actions-factory.ts (100%) rename frontend/{ => app}/composables/partials/use-store-factory.ts (100%) rename frontend/{ => app}/composables/recipe-page/shared-state.ts (100%) rename frontend/{ => app}/composables/recipe-page/use-extract-ingredient-references.test.ts (100%) rename frontend/{ => app}/composables/recipe-page/use-extract-ingredient-references.ts (100%) rename frontend/{ => app}/composables/recipes/index.ts (100%) rename frontend/{ => app}/composables/recipes/use-fraction.ts (100%) rename frontend/{ => app}/composables/recipes/use-recipe-ingredients.test.ts (100%) rename frontend/{ => app}/composables/recipes/use-recipe-ingredients.ts (100%) rename frontend/{ => app}/composables/recipes/use-recipe-nutrition.ts (100%) rename frontend/{ => app}/composables/recipes/use-recipe-permissions.test.ts (100%) rename frontend/{ => app}/composables/recipes/use-recipe-permissions.ts (100%) rename frontend/{ => app}/composables/recipes/use-recipe-search.ts (100%) rename frontend/{ => app}/composables/recipes/use-recipe-timeline-events.ts (100%) rename frontend/{ => app}/composables/recipes/use-recipe-tools.ts (100%) rename frontend/{ => app}/composables/recipes/use-recipe.ts (100%) rename frontend/{ => app}/composables/recipes/use-recipes.ts (100%) rename frontend/{ => app}/composables/recipes/use-scaled-amount.test.ts (100%) rename frontend/{ => app}/composables/recipes/use-scaled-amount.ts (100%) rename frontend/{ => app}/composables/shopping-list-page/sub-composables/use-shopping-list-copy.ts (100%) rename frontend/{ => app}/composables/shopping-list-page/sub-composables/use-shopping-list-crud.ts (100%) rename frontend/{ => app}/composables/shopping-list-page/sub-composables/use-shopping-list-data.ts (100%) rename frontend/{ => app}/composables/shopping-list-page/sub-composables/use-shopping-list-labels.ts (100%) rename frontend/{ => app}/composables/shopping-list-page/sub-composables/use-shopping-list-recipes.ts (100%) rename frontend/{ => app}/composables/shopping-list-page/sub-composables/use-shopping-list-sorting.ts (100%) rename frontend/{ => app}/composables/shopping-list-page/sub-composables/use-shopping-list-state.ts (100%) rename frontend/{ => app}/composables/shopping-list-page/use-shopping-list-page.ts (100%) rename frontend/{ => app}/composables/store/index.ts (100%) rename frontend/{ => app}/composables/store/use-category-store.ts (100%) rename frontend/{ => app}/composables/store/use-cookbook-store.ts (100%) rename frontend/{ => app}/composables/store/use-food-store.ts (100%) rename frontend/{ => app}/composables/store/use-household-store.ts (100%) rename frontend/{ => app}/composables/store/use-label-store.ts (100%) rename frontend/{ => app}/composables/store/use-tag-store.ts (100%) rename frontend/{ => app}/composables/store/use-tool-store.ts (100%) rename frontend/{ => app}/composables/store/use-unit-store.ts (100%) rename frontend/{ => app}/composables/store/use-user-store.ts (100%) rename frontend/{ => app}/composables/use-auth-backend.ts (100%) rename frontend/{ => app}/composables/use-backups.ts (100%) rename frontend/{ => app}/composables/use-context-presents.ts (100%) rename frontend/{ => app}/composables/use-copy.ts (100%) rename frontend/{ => app}/composables/use-default-activity.ts (100%) rename frontend/{ => app}/composables/use-global-i18n.ts (100%) rename frontend/{ => app}/composables/use-group-cookbooks.ts (100%) rename frontend/{ => app}/composables/use-group-mealplan.ts (100%) rename frontend/{ => app}/composables/use-group-recipe-actions.ts (100%) rename frontend/{ => app}/composables/use-group-webhooks.ts (100%) rename frontend/{ => app}/composables/use-groups.ts (100%) rename frontend/{ => app}/composables/use-households.ts (100%) rename frontend/{ => app}/composables/use-locales/available-locales.ts (100%) rename frontend/{ => app}/composables/use-locales/index.ts (100%) rename frontend/{ => app}/composables/use-locales/use-locales.ts (100%) rename frontend/{ => app}/composables/use-logged-in-state.ts (100%) rename frontend/{ => app}/composables/use-mealie-auth.ts (100%) rename frontend/{ => app}/composables/use-navigation-warning.ts (100%) rename frontend/{ => app}/composables/use-new-recipe-options.ts (100%) rename frontend/{ => app}/composables/use-passwords.test.ts (100%) rename frontend/{ => app}/composables/use-passwords.ts (100%) rename frontend/{ => app}/composables/use-query-filter-builder.ts (100%) rename frontend/{ => app}/composables/use-recipe-explorer-search.ts (100%) rename frontend/{ => app}/composables/use-router.ts (100%) rename frontend/{ => app}/composables/use-scroll-position.ts (100%) rename frontend/{ => app}/composables/use-search.ts (100%) rename frontend/{ => app}/composables/use-setup/common-settings-form.ts (100%) rename frontend/{ => app}/composables/use-setup/index.ts (100%) rename frontend/{ => app}/composables/use-shopping-list-item-actions.ts (100%) rename frontend/{ => app}/composables/use-text-color.ts (100%) rename frontend/{ => app}/composables/use-toast.ts (100%) rename frontend/{ => app}/composables/use-user.ts (100%) rename frontend/{ => app}/composables/use-users/index.ts (100%) rename frontend/{ => app}/composables/use-users/preferences.ts (100%) rename frontend/{ => app}/composables/use-users/user-form.ts (100%) rename frontend/{ => app}/composables/use-users/user-ratings.ts (100%) rename frontend/{ => app}/composables/use-users/user-registration-form.ts (100%) rename frontend/{ => app}/composables/use-utils.test.ts (100%) rename frontend/{ => app}/composables/use-utils.ts (100%) rename frontend/{ => app}/composables/use-validators.ts (100%) rename frontend/{ => app}/i18n.config.ts (100%) rename frontend/{ => app}/lang/dateTimeFormats/af-ZA.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/ar-SA.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/bg-BG.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/ca-ES.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/cs-CZ.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/da-DK.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/de-DE.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/el-GR.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/en-GB.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/en-US.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/es-ES.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/et-EE.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/fi-FI.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/fr-BE.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/fr-CA.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/fr-FR.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/gl-ES.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/he-IL.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/hr-HR.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/hu-HU.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/is-IS.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/it-IT.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/ja-JP.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/ko-KR.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/lt-LT.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/lv-LV.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/nl-NL.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/no-NO.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/pl-PL.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/pt-BR.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/pt-PT.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/ro-RO.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/ru-RU.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/sk-SK.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/sl-SI.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/sr-SP.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/sv-SE.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/tr-TR.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/uk-UA.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/vi-VN.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/zh-CN.json (100%) rename frontend/{ => app}/lang/dateTimeFormats/zh-TW.json (100%) rename frontend/{ => app}/lang/locales/af-ZA.ts (100%) rename frontend/{ => app}/lang/locales/ar-SA.ts (100%) rename frontend/{ => app}/lang/locales/bg-BG.ts (100%) rename frontend/{ => app}/lang/locales/ca-ES.ts (100%) rename frontend/{ => app}/lang/locales/cs-CZ.ts (100%) rename frontend/{ => app}/lang/locales/da-DK.ts (100%) rename frontend/{ => app}/lang/locales/de-DE.ts (100%) rename frontend/{ => app}/lang/locales/el-GR.ts (100%) rename frontend/{ => app}/lang/locales/en-GB.ts (100%) rename frontend/{ => app}/lang/locales/en-US.ts (100%) rename frontend/{ => app}/lang/locales/es-ES.ts (100%) rename frontend/{ => app}/lang/locales/et-EE.ts (100%) rename frontend/{ => app}/lang/locales/fi-FI.ts (100%) rename frontend/{ => app}/lang/locales/fr-BE.ts (100%) rename frontend/{ => app}/lang/locales/fr-CA.ts (100%) rename frontend/{ => app}/lang/locales/fr-FR.ts (100%) rename frontend/{ => app}/lang/locales/gl-ES.ts (100%) rename frontend/{ => app}/lang/locales/he-IL.ts (100%) rename frontend/{ => app}/lang/locales/hr-HR.ts (100%) rename frontend/{ => app}/lang/locales/hu-HU.ts (100%) rename frontend/{ => app}/lang/locales/is-IS.ts (100%) rename frontend/{ => app}/lang/locales/it-IT.ts (100%) rename frontend/{ => app}/lang/locales/ja-JP.ts (100%) rename frontend/{ => app}/lang/locales/ko-KR.ts (100%) rename frontend/{ => app}/lang/locales/lt-LT.ts (100%) rename frontend/{ => app}/lang/locales/lv-LV.ts (100%) rename frontend/{ => app}/lang/locales/nl-NL.ts (100%) rename frontend/{ => app}/lang/locales/no-NO.ts (100%) rename frontend/{ => app}/lang/locales/pl-PL.ts (100%) rename frontend/{ => app}/lang/locales/pt-BR.ts (100%) rename frontend/{ => app}/lang/locales/pt-PT.ts (100%) rename frontend/{ => app}/lang/locales/ro-RO.ts (100%) rename frontend/{ => app}/lang/locales/ru-RU.ts (100%) rename frontend/{ => app}/lang/locales/sk-SK.ts (100%) rename frontend/{ => app}/lang/locales/sl-SI.ts (100%) rename frontend/{ => app}/lang/locales/sr-SP.ts (100%) rename frontend/{ => app}/lang/locales/sv-SE.ts (100%) rename frontend/{ => app}/lang/locales/tr-TR.ts (100%) rename frontend/{ => app}/lang/locales/uk-UA.ts (100%) rename frontend/{ => app}/lang/locales/vi-VN.ts (100%) rename frontend/{ => app}/lang/locales/zh-CN.ts (100%) rename frontend/{ => app}/lang/locales/zh-TW.ts (100%) rename frontend/{ => app}/lang/messages/af-ZA.json (100%) rename frontend/{ => app}/lang/messages/ar-SA.json (100%) rename frontend/{ => app}/lang/messages/bg-BG.json (100%) rename frontend/{ => app}/lang/messages/ca-ES.json (100%) rename frontend/{ => app}/lang/messages/cs-CZ.json (100%) rename frontend/{ => app}/lang/messages/da-DK.json (100%) rename frontend/{ => app}/lang/messages/de-DE.json (100%) rename frontend/{ => app}/lang/messages/el-GR.json (100%) rename frontend/{ => app}/lang/messages/en-GB.json (100%) rename frontend/{ => app}/lang/messages/en-US.json (100%) rename frontend/{ => app}/lang/messages/es-ES.json (100%) rename frontend/{ => app}/lang/messages/et-EE.json (100%) rename frontend/{ => app}/lang/messages/fi-FI.json (100%) rename frontend/{ => app}/lang/messages/fr-BE.json (100%) rename frontend/{ => app}/lang/messages/fr-CA.json (100%) rename frontend/{ => app}/lang/messages/fr-FR.json (100%) rename frontend/{ => app}/lang/messages/gl-ES.json (100%) rename frontend/{ => app}/lang/messages/he-IL.json (100%) rename frontend/{ => app}/lang/messages/hr-HR.json (100%) rename frontend/{ => app}/lang/messages/hu-HU.json (100%) rename frontend/{ => app}/lang/messages/is-IS.json (100%) rename frontend/{ => app}/lang/messages/it-IT.json (100%) rename frontend/{ => app}/lang/messages/ja-JP.json (100%) rename frontend/{ => app}/lang/messages/ko-KR.json (100%) rename frontend/{ => app}/lang/messages/lt-LT.json (100%) rename frontend/{ => app}/lang/messages/lv-LV.json (100%) rename frontend/{ => app}/lang/messages/nl-NL.json (100%) rename frontend/{ => app}/lang/messages/no-NO.json (100%) rename frontend/{ => app}/lang/messages/pl-PL.json (100%) rename frontend/{ => app}/lang/messages/pt-BR.json (100%) rename frontend/{ => app}/lang/messages/pt-PT.json (100%) rename frontend/{ => app}/lang/messages/ro-RO.json (100%) rename frontend/{ => app}/lang/messages/ru-RU.json (100%) rename frontend/{ => app}/lang/messages/sk-SK.json (100%) rename frontend/{ => app}/lang/messages/sl-SI.json (100%) rename frontend/{ => app}/lang/messages/sr-SP.json (100%) rename frontend/{ => app}/lang/messages/sv-SE.json (100%) rename frontend/{ => app}/lang/messages/tr-TR.json (100%) rename frontend/{ => app}/lang/messages/uk-UA.json (100%) rename frontend/{ => app}/lang/messages/vi-VN.json (100%) rename frontend/{ => app}/lang/messages/zh-CN.json (100%) rename frontend/{ => app}/lang/messages/zh-TW.json (100%) rename frontend/{ => app}/layouts/admin.vue (100%) rename frontend/{ => app}/layouts/basic.vue (100%) rename frontend/{ => app}/layouts/blank.vue (84%) rename frontend/{ => app}/layouts/default.vue (100%) rename frontend/{ => app}/layouts/error.vue (100%) rename frontend/{ => app}/lib/api/admin/admin-about.ts (100%) rename frontend/{ => app}/lib/api/admin/admin-analytics.ts (100%) rename frontend/{ => app}/lib/api/admin/admin-backups.ts (100%) rename frontend/{ => app}/lib/api/admin/admin-debug.ts (100%) rename frontend/{ => app}/lib/api/admin/admin-groups.ts (100%) rename frontend/{ => app}/lib/api/admin/admin-households.ts (100%) rename frontend/{ => app}/lib/api/admin/admin-maintenance.ts (100%) rename frontend/{ => app}/lib/api/admin/admin-users.ts (100%) rename frontend/{ => app}/lib/api/base/base-clients.ts (100%) rename frontend/{ => app}/lib/api/base/index.ts (100%) rename frontend/{ => app}/lib/api/base/route.ts (100%) rename frontend/{ => app}/lib/api/base/routes.test.ts (100%) rename frontend/{ => app}/lib/api/client-admin.ts (100%) rename frontend/{ => app}/lib/api/client-public.ts (100%) rename frontend/{ => app}/lib/api/client-user.ts (100%) rename frontend/{ => app}/lib/api/config.ts (100%) rename frontend/{ => app}/lib/api/index.ts (100%) rename frontend/{ => app}/lib/api/public/explore.ts (100%) rename frontend/{ => app}/lib/api/public/explore/cookbooks.ts (100%) rename frontend/{ => app}/lib/api/public/explore/foods.ts (100%) rename frontend/{ => app}/lib/api/public/explore/households.ts (100%) rename frontend/{ => app}/lib/api/public/explore/organizers.ts (100%) rename frontend/{ => app}/lib/api/public/explore/recipes.ts (100%) rename frontend/{ => app}/lib/api/public/shared.ts (100%) rename frontend/{ => app}/lib/api/public/validators.ts (100%) rename frontend/{ => app}/lib/api/types/activity.ts (100%) rename frontend/{ => app}/lib/api/types/admin.ts (100%) rename frontend/{ => app}/lib/api/types/analytics.ts (100%) rename frontend/{ => app}/lib/api/types/cookbook.ts (100%) rename frontend/{ => app}/lib/api/types/events.ts (100%) rename frontend/{ => app}/lib/api/types/group.ts (100%) rename frontend/{ => app}/lib/api/types/household.ts (100%) rename frontend/{ => app}/lib/api/types/labels.ts (100%) rename frontend/{ => app}/lib/api/types/meal-plan.ts (100%) rename frontend/{ => app}/lib/api/types/non-generated.ts (100%) rename frontend/{ => app}/lib/api/types/openai.ts (100%) rename frontend/{ => app}/lib/api/types/recipe.ts (100%) rename frontend/{ => app}/lib/api/types/reports.ts (100%) rename frontend/{ => app}/lib/api/types/response.ts (100%) rename frontend/{ => app}/lib/api/types/static.ts (100%) rename frontend/{ => app}/lib/api/types/user.ts (100%) rename frontend/{ => app}/lib/api/user/backups.ts (100%) rename frontend/{ => app}/lib/api/user/email.ts (100%) rename frontend/{ => app}/lib/api/user/group-cookbooks.ts (100%) rename frontend/{ => app}/lib/api/user/group-event-notifier.ts (100%) rename frontend/{ => app}/lib/api/user/group-mealplan-rules.ts (100%) rename frontend/{ => app}/lib/api/user/group-mealplan.ts (100%) rename frontend/{ => app}/lib/api/user/group-migrations.ts (100%) rename frontend/{ => app}/lib/api/user/group-multiple-purpose-labels.ts (100%) rename frontend/{ => app}/lib/api/user/group-recipe-actions.ts (100%) rename frontend/{ => app}/lib/api/user/group-reports.ts (100%) rename frontend/{ => app}/lib/api/user/group-seeder.ts (100%) rename frontend/{ => app}/lib/api/user/group-shopping-lists.ts (100%) rename frontend/{ => app}/lib/api/user/group-webhooks.ts (100%) rename frontend/{ => app}/lib/api/user/groups.ts (100%) rename frontend/{ => app}/lib/api/user/households.ts (100%) rename frontend/{ => app}/lib/api/user/organizer-categories.ts (100%) rename frontend/{ => app}/lib/api/user/organizer-tags.ts (100%) rename frontend/{ => app}/lib/api/user/organizer-tools.ts (100%) rename frontend/{ => app}/lib/api/user/recipe-bulk-actions.ts (100%) rename frontend/{ => app}/lib/api/user/recipe-foods.ts (100%) rename frontend/{ => app}/lib/api/user/recipe-units.ts (100%) rename frontend/{ => app}/lib/api/user/recipes/index.ts (100%) rename frontend/{ => app}/lib/api/user/recipes/recipe-comments.ts (100%) rename frontend/{ => app}/lib/api/user/recipes/recipe-share.ts (100%) rename frontend/{ => app}/lib/api/user/recipes/recipe.ts (100%) rename frontend/{ => app}/lib/api/user/upload.ts (100%) rename frontend/{ => app}/lib/api/user/user-registration.ts (100%) rename frontend/{ => app}/lib/api/user/users.ts (100%) rename frontend/{ => app}/lib/api/user/utils.ts (100%) rename frontend/{ => app}/lib/icons/icon-type.ts (100%) rename frontend/{ => app}/lib/icons/icons.ts (100%) rename frontend/{ => app}/lib/icons/index.ts (100%) rename frontend/{ => app}/lib/validators/index.ts (100%) rename frontend/{ => app}/lib/validators/inputs.test.ts (100%) rename frontend/{ => app}/lib/validators/inputs.ts (100%) rename frontend/{ => app}/lib/validators/password.test.ts (100%) rename frontend/{ => app}/lib/validators/password.ts (100%) rename frontend/{ => app}/middleware/admin-only.ts (100%) rename frontend/{ => app}/middleware/advanced-only.ts (100%) rename frontend/{ => app}/middleware/can-manage-household-only.ts (100%) rename frontend/{ => app}/middleware/can-manage-only.ts (100%) rename frontend/{ => app}/middleware/can-organize-only.ts (100%) rename frontend/{ => app}/middleware/group-only.ts (100%) rename frontend/{ => app}/middleware/pwa-share-target-redirect.global.ts (100%) rename frontend/{ => app}/pages/admin.vue (100%) rename frontend/{ => app}/pages/admin/backups.vue (100%) rename frontend/{ => app}/pages/admin/debug/openai.vue (100%) rename frontend/{ => app}/pages/admin/debug/parser.vue (100%) rename frontend/{ => app}/pages/admin/maintenance/index.vue (100%) rename frontend/{ => app}/pages/admin/manage/groups/[id].vue (100%) rename frontend/{ => app}/pages/admin/manage/groups/index.vue (100%) rename frontend/{ => app}/pages/admin/manage/households/[id].vue (100%) rename frontend/{ => app}/pages/admin/manage/households/index.vue (100%) rename frontend/{ => app}/pages/admin/manage/users/[id].vue (100%) rename frontend/{ => app}/pages/admin/manage/users/create.vue (100%) rename frontend/{ => app}/pages/admin/manage/users/index.vue (100%) rename frontend/{ => app}/pages/admin/setup.vue (100%) rename frontend/{ => app}/pages/admin/site-settings.vue (100%) rename frontend/{ => app}/pages/forgot-password.vue (100%) rename frontend/{ => app}/pages/g/[groupSlug]/cookbooks/[slug].vue (100%) rename frontend/{ => app}/pages/g/[groupSlug]/cookbooks/index.vue (100%) rename frontend/{ => app}/pages/g/[groupSlug]/index.vue (100%) rename frontend/{ => app}/pages/g/[groupSlug]/r/[slug]/index.vue (100%) rename frontend/{ => app}/pages/g/[groupSlug]/r/create.vue (100%) rename frontend/{ => app}/pages/g/[groupSlug]/r/create/bulk.vue (100%) rename frontend/{ => app}/pages/g/[groupSlug]/r/create/debug.vue (100%) rename frontend/{ => app}/pages/g/[groupSlug]/r/create/html.vue (100%) rename frontend/{ => app}/pages/g/[groupSlug]/r/create/image.vue (100%) rename frontend/{ => app}/pages/g/[groupSlug]/r/create/index.vue (100%) rename frontend/{ => app}/pages/g/[groupSlug]/r/create/new.vue (100%) rename frontend/{ => app}/pages/g/[groupSlug]/r/create/url.vue (100%) rename frontend/{ => app}/pages/g/[groupSlug]/r/create/zip.vue (100%) rename frontend/{ => app}/pages/g/[groupSlug]/recipes/categories/index.vue (100%) rename frontend/{ => app}/pages/g/[groupSlug]/recipes/finder/index.vue (100%) rename frontend/{ => app}/pages/g/[groupSlug]/recipes/tags/index.vue (100%) rename frontend/{ => app}/pages/g/[groupSlug]/recipes/timeline.vue (100%) rename frontend/{ => app}/pages/g/[groupSlug]/recipes/tools/index.vue (100%) rename frontend/{ => app}/pages/g/[groupSlug]/shared/r/[id].vue (100%) rename frontend/{ => app}/pages/group/data.vue (100%) rename frontend/{ => app}/pages/group/data/categories.vue (100%) rename frontend/{ => app}/pages/group/data/foods.vue (100%) rename frontend/{ => app}/pages/group/data/index.vue (100%) rename frontend/{ => app}/pages/group/data/labels.vue (100%) rename frontend/{ => app}/pages/group/data/recipe-actions.vue (100%) rename frontend/{ => app}/pages/group/data/recipes.vue (100%) rename frontend/{ => app}/pages/group/data/tags.vue (100%) rename frontend/{ => app}/pages/group/data/tools.vue (100%) rename frontend/{ => app}/pages/group/data/units.vue (100%) rename frontend/{ => app}/pages/group/index.vue (100%) rename frontend/{ => app}/pages/group/migrations.vue (100%) rename frontend/{ => app}/pages/group/reports/[id].vue (100%) rename frontend/{ => app}/pages/household/index.vue (100%) rename frontend/{ => app}/pages/household/mealplan/planner.vue (100%) rename frontend/{ => app}/pages/household/mealplan/planner/edit.vue (99%) rename frontend/{ => app}/pages/household/mealplan/planner/view.vue (98%) rename frontend/{ => app}/pages/household/mealplan/settings.vue (100%) rename frontend/{ => app}/pages/household/members.vue (100%) rename frontend/{ => app}/pages/household/notifiers.vue (100%) rename frontend/{ => app}/pages/household/webhooks.vue (100%) rename frontend/{ => app}/pages/index.vue (100%) rename frontend/{ => app}/pages/login.vue (100%) rename frontend/{ => app}/pages/register/index.vue (100%) rename frontend/{ => app}/pages/register/states.ts (100%) rename frontend/{ => app}/pages/reset-password.vue (100%) rename frontend/{ => app}/pages/shopping-lists/[id].vue (100%) rename frontend/{ => app}/pages/shopping-lists/index.vue (100%) rename frontend/{ => app}/pages/user/[id]/favorites.vue (100%) rename frontend/{ => app}/pages/user/profile/api-tokens.vue (100%) rename frontend/{ => app}/pages/user/profile/edit.vue (100%) rename frontend/{ => app}/pages/user/profile/index.vue (100%) rename frontend/{ => app}/plugins/app-info.client.ts (100%) rename frontend/{ => app}/plugins/axios.ts (100%) rename frontend/{ => app}/plugins/dark-mode.client.ts (100%) rename frontend/{ => app}/plugins/globals.ts (100%) rename frontend/{ => app}/plugins/init-auth.client.ts (100%) rename frontend/{ => app}/plugins/theme.ts (100%) rename frontend/{ => app}/tests/utils.ts (100%) rename frontend/{ => app}/types/application-types.ts (100%) rename frontend/{ => app}/types/auth.d.ts (100%) rename frontend/{ => app}/types/auto-forms.ts (100%) rename frontend/{ => app}/types/components.d.ts (100%) rename frontend/{ => app}/types/recipe/organizers.ts (100%) rename frontend/{ => app}/types/ts-shim.d.ts (100%) delete mode 100644 frontend/pages/household/mealplan/planner/types.ts rename frontend/{static => public}/account.png (100%) rename frontend/{static => public}/discord.svg (100%) rename frontend/{static => public}/fallback-profile.webp (100%) rename frontend/{static => public}/favicon.ico (100%) rename frontend/{static => public}/gotify.png (100%) rename frontend/{static => public}/home-assistant.png (100%) rename frontend/{static => public}/icon.png (100%) rename frontend/{static => public}/icons/android-chrome-192x192.png (100%) rename frontend/{static => public}/icons/android-chrome-512x512.png (100%) rename frontend/{static => public}/icons/android-chrome-maskable-192x192.png (100%) rename frontend/{static => public}/icons/android-chrome-maskable-512x512.png (100%) rename frontend/{static => public}/icons/apple-touch-icon.png (100%) rename frontend/{static => public}/icons/favicon-16x16.png (100%) rename frontend/{static => public}/icons/favicon-32x32.png (100%) rename frontend/{static => public}/icons/icon-x64.png (100%) rename frontend/{static => public}/icons/mdiCalendarMultiselect-192x192.png (100%) rename frontend/{static => public}/icons/mdiCalendarMultiselect-96x96.png (100%) rename frontend/{static => public}/icons/mdiFormatListChecks-192x192.png (100%) rename frontend/{static => public}/icons/mdiFormatListChecks-96x96.png (100%) rename frontend/{static => public}/icons/mstile-150x150.png (100%) rename frontend/{static => public}/icons/safari-pinned-tab.svg (100%) rename frontend/{static => public}/matrix.png (100%) rename frontend/{static => public}/mealie-email-banner.png (100%) rename frontend/{static => public}/pushover.svg (100%) rename frontend/{static => public}/robots.txt (100%) rename frontend/{static => public}/screenshots/editor-narrow.png (100%) rename frontend/{static => public}/screenshots/editor-wide.png (100%) rename frontend/{static => public}/screenshots/home-narrow.png (100%) rename frontend/{static => public}/screenshots/home-wide.png (100%) rename frontend/{static => public}/screenshots/parser-narrow.png (100%) rename frontend/{static => public}/screenshots/parser-wide.png (100%) rename frontend/{static => public}/screenshots/recipe-narrow.png (100%) rename frontend/{static => public}/screenshots/recipe-wide.png (100%) rename frontend/{static => public}/svgs/admin-site-settings.svg (100%) rename frontend/{static => public}/svgs/data-reports.svg (100%) rename frontend/{static => public}/svgs/manage-api-tokens.svg (100%) rename frontend/{static => public}/svgs/manage-cookbooks.svg (100%) rename frontend/{static => public}/svgs/manage-data-migrations.svg (100%) rename frontend/{static => public}/svgs/manage-group-settings.svg (100%) rename frontend/{static => public}/svgs/manage-members.svg (100%) rename frontend/{static => public}/svgs/manage-notifiers.svg (100%) rename frontend/{static => public}/svgs/manage-profile.svg (100%) rename frontend/{static => public}/svgs/manage-recipes.svg (100%) rename frontend/{static => public}/svgs/manage-tasks.svg (100%) rename frontend/{static => public}/svgs/manage-webhooks.svg (100%) rename frontend/{static => public}/svgs/recipes-create.svg (100%) rename frontend/{static => public}/svgs/shopping-cart.svg (100%) delete mode 100644 frontend/store/README.md delete mode 100644 frontend/store/index.js diff --git a/frontend/assets/main.css b/frontend/app/assets/main.css similarity index 100% rename from frontend/assets/main.css rename to frontend/app/assets/main.css diff --git a/frontend/assets/style-overrides.scss b/frontend/app/assets/style-overrides.scss similarity index 100% rename from frontend/assets/style-overrides.scss rename to frontend/app/assets/style-overrides.scss diff --git a/frontend/assets/variables.scss b/frontend/app/assets/variables.scss similarity index 100% rename from frontend/assets/variables.scss rename to frontend/app/assets/variables.scss diff --git a/frontend/components/Domain/Admin/Setup/EndPageContent.vue b/frontend/app/components/Domain/Admin/Setup/EndPageContent.vue similarity index 100% rename from frontend/components/Domain/Admin/Setup/EndPageContent.vue rename to frontend/app/components/Domain/Admin/Setup/EndPageContent.vue diff --git a/frontend/components/Domain/Cookbook/CookbookEditor.vue b/frontend/app/components/Domain/Cookbook/CookbookEditor.vue similarity index 100% rename from frontend/components/Domain/Cookbook/CookbookEditor.vue rename to frontend/app/components/Domain/Cookbook/CookbookEditor.vue diff --git a/frontend/components/Domain/Cookbook/CookbookPage.vue b/frontend/app/components/Domain/Cookbook/CookbookPage.vue similarity index 100% rename from frontend/components/Domain/Cookbook/CookbookPage.vue rename to frontend/app/components/Domain/Cookbook/CookbookPage.vue diff --git a/frontend/components/Domain/Group/GroupDataPage.vue b/frontend/app/components/Domain/Group/GroupDataPage.vue similarity index 100% rename from frontend/components/Domain/Group/GroupDataPage.vue rename to frontend/app/components/Domain/Group/GroupDataPage.vue diff --git a/frontend/components/Domain/Group/GroupExportData.vue b/frontend/app/components/Domain/Group/GroupExportData.vue similarity index 100% rename from frontend/components/Domain/Group/GroupExportData.vue rename to frontend/app/components/Domain/Group/GroupExportData.vue diff --git a/frontend/components/Domain/Group/GroupPreferencesEditor.vue b/frontend/app/components/Domain/Group/GroupPreferencesEditor.vue similarity index 100% rename from frontend/components/Domain/Group/GroupPreferencesEditor.vue rename to frontend/app/components/Domain/Group/GroupPreferencesEditor.vue diff --git a/frontend/components/Domain/Household/GroupMealPlanDayContextMenu.vue b/frontend/app/components/Domain/Household/GroupMealPlanDayContextMenu.vue similarity index 100% rename from frontend/components/Domain/Household/GroupMealPlanDayContextMenu.vue rename to frontend/app/components/Domain/Household/GroupMealPlanDayContextMenu.vue diff --git a/frontend/components/Domain/Household/GroupMealPlanRuleForm.vue b/frontend/app/components/Domain/Household/GroupMealPlanRuleForm.vue similarity index 100% rename from frontend/components/Domain/Household/GroupMealPlanRuleForm.vue rename to frontend/app/components/Domain/Household/GroupMealPlanRuleForm.vue diff --git a/frontend/components/Domain/Household/GroupWebhookEditor.vue b/frontend/app/components/Domain/Household/GroupWebhookEditor.vue similarity index 100% rename from frontend/components/Domain/Household/GroupWebhookEditor.vue rename to frontend/app/components/Domain/Household/GroupWebhookEditor.vue diff --git a/frontend/components/Domain/Household/HouseholdPreferencesEditor.vue b/frontend/app/components/Domain/Household/HouseholdPreferencesEditor.vue similarity index 100% rename from frontend/components/Domain/Household/HouseholdPreferencesEditor.vue rename to frontend/app/components/Domain/Household/HouseholdPreferencesEditor.vue diff --git a/frontend/components/Domain/QueryFilterBuilder.vue b/frontend/app/components/Domain/QueryFilterBuilder.vue similarity index 100% rename from frontend/components/Domain/QueryFilterBuilder.vue rename to frontend/app/components/Domain/QueryFilterBuilder.vue diff --git a/frontend/components/Domain/Recipe/RecipeActionMenu.vue b/frontend/app/components/Domain/Recipe/RecipeActionMenu.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeActionMenu.vue rename to frontend/app/components/Domain/Recipe/RecipeActionMenu.vue diff --git a/frontend/components/Domain/Recipe/RecipeAssets.vue b/frontend/app/components/Domain/Recipe/RecipeAssets.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeAssets.vue rename to frontend/app/components/Domain/Recipe/RecipeAssets.vue diff --git a/frontend/components/Domain/Recipe/RecipeCard.vue b/frontend/app/components/Domain/Recipe/RecipeCard.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeCard.vue rename to frontend/app/components/Domain/Recipe/RecipeCard.vue diff --git a/frontend/components/Domain/Recipe/RecipeCardImage.vue b/frontend/app/components/Domain/Recipe/RecipeCardImage.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeCardImage.vue rename to frontend/app/components/Domain/Recipe/RecipeCardImage.vue diff --git a/frontend/components/Domain/Recipe/RecipeCardMobile.vue b/frontend/app/components/Domain/Recipe/RecipeCardMobile.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeCardMobile.vue rename to frontend/app/components/Domain/Recipe/RecipeCardMobile.vue diff --git a/frontend/components/Domain/Recipe/RecipeCardRating.vue b/frontend/app/components/Domain/Recipe/RecipeCardRating.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeCardRating.vue rename to frontend/app/components/Domain/Recipe/RecipeCardRating.vue diff --git a/frontend/components/Domain/Recipe/RecipeCardSection.vue b/frontend/app/components/Domain/Recipe/RecipeCardSection.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeCardSection.vue rename to frontend/app/components/Domain/Recipe/RecipeCardSection.vue diff --git a/frontend/components/Domain/Recipe/RecipeChips.vue b/frontend/app/components/Domain/Recipe/RecipeChips.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeChips.vue rename to frontend/app/components/Domain/Recipe/RecipeChips.vue diff --git a/frontend/components/Domain/Recipe/RecipeContextMenu/RecipeContextMenu.vue b/frontend/app/components/Domain/Recipe/RecipeContextMenu/RecipeContextMenu.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeContextMenu/RecipeContextMenu.vue rename to frontend/app/components/Domain/Recipe/RecipeContextMenu/RecipeContextMenu.vue diff --git a/frontend/components/Domain/Recipe/RecipeContextMenu/RecipeContextMenuContent.vue b/frontend/app/components/Domain/Recipe/RecipeContextMenu/RecipeContextMenuContent.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeContextMenu/RecipeContextMenuContent.vue rename to frontend/app/components/Domain/Recipe/RecipeContextMenu/RecipeContextMenuContent.vue diff --git a/frontend/components/Domain/Recipe/RecipeDataAliasManagerDialog.vue b/frontend/app/components/Domain/Recipe/RecipeDataAliasManagerDialog.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeDataAliasManagerDialog.vue rename to frontend/app/components/Domain/Recipe/RecipeDataAliasManagerDialog.vue diff --git a/frontend/components/Domain/Recipe/RecipeDataTable.vue b/frontend/app/components/Domain/Recipe/RecipeDataTable.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeDataTable.vue rename to frontend/app/components/Domain/Recipe/RecipeDataTable.vue diff --git a/frontend/components/Domain/Recipe/RecipeDialogAddToShoppingList.vue b/frontend/app/components/Domain/Recipe/RecipeDialogAddToShoppingList.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeDialogAddToShoppingList.vue rename to frontend/app/components/Domain/Recipe/RecipeDialogAddToShoppingList.vue diff --git a/frontend/components/Domain/Recipe/RecipeDialogBulkAdd.vue b/frontend/app/components/Domain/Recipe/RecipeDialogBulkAdd.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeDialogBulkAdd.vue rename to frontend/app/components/Domain/Recipe/RecipeDialogBulkAdd.vue diff --git a/frontend/components/Domain/Recipe/RecipeDialogPrintPreferences.vue b/frontend/app/components/Domain/Recipe/RecipeDialogPrintPreferences.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeDialogPrintPreferences.vue rename to frontend/app/components/Domain/Recipe/RecipeDialogPrintPreferences.vue diff --git a/frontend/components/Domain/Recipe/RecipeDialogSearch.vue b/frontend/app/components/Domain/Recipe/RecipeDialogSearch.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeDialogSearch.vue rename to frontend/app/components/Domain/Recipe/RecipeDialogSearch.vue diff --git a/frontend/components/Domain/Recipe/RecipeDialogShare.vue b/frontend/app/components/Domain/Recipe/RecipeDialogShare.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeDialogShare.vue rename to frontend/app/components/Domain/Recipe/RecipeDialogShare.vue diff --git a/frontend/components/Domain/Recipe/RecipeExplorerPage/RecipeExplorerPage.vue b/frontend/app/components/Domain/Recipe/RecipeExplorerPage/RecipeExplorerPage.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeExplorerPage/RecipeExplorerPage.vue rename to frontend/app/components/Domain/Recipe/RecipeExplorerPage/RecipeExplorerPage.vue diff --git a/frontend/components/Domain/Recipe/RecipeExplorerPage/RecipeExplorerPageParts/RecipeExplorerPageSearch.vue b/frontend/app/components/Domain/Recipe/RecipeExplorerPage/RecipeExplorerPageParts/RecipeExplorerPageSearch.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeExplorerPage/RecipeExplorerPageParts/RecipeExplorerPageSearch.vue rename to frontend/app/components/Domain/Recipe/RecipeExplorerPage/RecipeExplorerPageParts/RecipeExplorerPageSearch.vue diff --git a/frontend/components/Domain/Recipe/RecipeExplorerPage/RecipeExplorerPageParts/RecipeExplorerPageSearchFilters.vue b/frontend/app/components/Domain/Recipe/RecipeExplorerPage/RecipeExplorerPageParts/RecipeExplorerPageSearchFilters.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeExplorerPage/RecipeExplorerPageParts/RecipeExplorerPageSearchFilters.vue rename to frontend/app/components/Domain/Recipe/RecipeExplorerPage/RecipeExplorerPageParts/RecipeExplorerPageSearchFilters.vue diff --git a/frontend/components/Domain/Recipe/RecipeFavoriteBadge.vue b/frontend/app/components/Domain/Recipe/RecipeFavoriteBadge.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeFavoriteBadge.vue rename to frontend/app/components/Domain/Recipe/RecipeFavoriteBadge.vue diff --git a/frontend/components/Domain/Recipe/RecipeImageUploadBtn.vue b/frontend/app/components/Domain/Recipe/RecipeImageUploadBtn.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeImageUploadBtn.vue rename to frontend/app/components/Domain/Recipe/RecipeImageUploadBtn.vue diff --git a/frontend/components/Domain/Recipe/RecipeIngredientEditor.vue b/frontend/app/components/Domain/Recipe/RecipeIngredientEditor.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeIngredientEditor.vue rename to frontend/app/components/Domain/Recipe/RecipeIngredientEditor.vue diff --git a/frontend/components/Domain/Recipe/RecipeIngredientHtml.vue b/frontend/app/components/Domain/Recipe/RecipeIngredientHtml.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeIngredientHtml.vue rename to frontend/app/components/Domain/Recipe/RecipeIngredientHtml.vue diff --git a/frontend/components/Domain/Recipe/RecipeIngredientListItem.vue b/frontend/app/components/Domain/Recipe/RecipeIngredientListItem.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeIngredientListItem.vue rename to frontend/app/components/Domain/Recipe/RecipeIngredientListItem.vue diff --git a/frontend/components/Domain/Recipe/RecipeIngredients.vue b/frontend/app/components/Domain/Recipe/RecipeIngredients.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeIngredients.vue rename to frontend/app/components/Domain/Recipe/RecipeIngredients.vue diff --git a/frontend/components/Domain/Recipe/RecipeLastMade.vue b/frontend/app/components/Domain/Recipe/RecipeLastMade.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeLastMade.vue rename to frontend/app/components/Domain/Recipe/RecipeLastMade.vue diff --git a/frontend/components/Domain/Recipe/RecipeList.vue b/frontend/app/components/Domain/Recipe/RecipeList.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeList.vue rename to frontend/app/components/Domain/Recipe/RecipeList.vue diff --git a/frontend/components/Domain/Recipe/RecipeNotes.vue b/frontend/app/components/Domain/Recipe/RecipeNotes.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeNotes.vue rename to frontend/app/components/Domain/Recipe/RecipeNotes.vue diff --git a/frontend/components/Domain/Recipe/RecipeNutrition.vue b/frontend/app/components/Domain/Recipe/RecipeNutrition.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeNutrition.vue rename to frontend/app/components/Domain/Recipe/RecipeNutrition.vue diff --git a/frontend/components/Domain/Recipe/RecipeOrganizerDialog.vue b/frontend/app/components/Domain/Recipe/RecipeOrganizerDialog.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeOrganizerDialog.vue rename to frontend/app/components/Domain/Recipe/RecipeOrganizerDialog.vue diff --git a/frontend/components/Domain/Recipe/RecipeOrganizerPage.vue b/frontend/app/components/Domain/Recipe/RecipeOrganizerPage.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeOrganizerPage.vue rename to frontend/app/components/Domain/Recipe/RecipeOrganizerPage.vue diff --git a/frontend/components/Domain/Recipe/RecipeOrganizerSelector.vue b/frontend/app/components/Domain/Recipe/RecipeOrganizerSelector.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipeOrganizerSelector.vue rename to frontend/app/components/Domain/Recipe/RecipeOrganizerSelector.vue diff --git a/frontend/components/Domain/Recipe/RecipePage/RecipePage.vue b/frontend/app/components/Domain/Recipe/RecipePage/RecipePage.vue similarity index 100% rename from frontend/components/Domain/Recipe/RecipePage/RecipePage.vue rename to frontend/app/components/Domain/Recipe/RecipePage/RecipePage.vue diff --git a/frontend/components/Domain/Recipe/RecipePage/RecipePageParts/RecipePageComments.vue b/frontend/app/components/Domain/Recipe/RecipePage/RecipePageParts/RecipePageComments.vue similarity index 99% rename from frontend/components/Domain/Recipe/RecipePage/RecipePageParts/RecipePageComments.vue rename to frontend/app/components/Domain/Recipe/RecipePage/RecipePageParts/RecipePageComments.vue index 327e9e478..e2a9afabf 100644 --- a/frontend/components/Domain/Recipe/RecipePage/RecipePageParts/RecipePageComments.vue +++ b/frontend/app/components/Domain/Recipe/RecipePage/RecipePageParts/RecipePageComments.vue @@ -82,7 +82,7 @@ - diff --git a/frontend/layouts/default.vue b/frontend/app/layouts/default.vue similarity index 100% rename from frontend/layouts/default.vue rename to frontend/app/layouts/default.vue diff --git a/frontend/layouts/error.vue b/frontend/app/layouts/error.vue similarity index 100% rename from frontend/layouts/error.vue rename to frontend/app/layouts/error.vue diff --git a/frontend/lib/api/admin/admin-about.ts b/frontend/app/lib/api/admin/admin-about.ts similarity index 100% rename from frontend/lib/api/admin/admin-about.ts rename to frontend/app/lib/api/admin/admin-about.ts diff --git a/frontend/lib/api/admin/admin-analytics.ts b/frontend/app/lib/api/admin/admin-analytics.ts similarity index 100% rename from frontend/lib/api/admin/admin-analytics.ts rename to frontend/app/lib/api/admin/admin-analytics.ts diff --git a/frontend/lib/api/admin/admin-backups.ts b/frontend/app/lib/api/admin/admin-backups.ts similarity index 100% rename from frontend/lib/api/admin/admin-backups.ts rename to frontend/app/lib/api/admin/admin-backups.ts diff --git a/frontend/lib/api/admin/admin-debug.ts b/frontend/app/lib/api/admin/admin-debug.ts similarity index 100% rename from frontend/lib/api/admin/admin-debug.ts rename to frontend/app/lib/api/admin/admin-debug.ts diff --git a/frontend/lib/api/admin/admin-groups.ts b/frontend/app/lib/api/admin/admin-groups.ts similarity index 100% rename from frontend/lib/api/admin/admin-groups.ts rename to frontend/app/lib/api/admin/admin-groups.ts diff --git a/frontend/lib/api/admin/admin-households.ts b/frontend/app/lib/api/admin/admin-households.ts similarity index 100% rename from frontend/lib/api/admin/admin-households.ts rename to frontend/app/lib/api/admin/admin-households.ts diff --git a/frontend/lib/api/admin/admin-maintenance.ts b/frontend/app/lib/api/admin/admin-maintenance.ts similarity index 100% rename from frontend/lib/api/admin/admin-maintenance.ts rename to frontend/app/lib/api/admin/admin-maintenance.ts diff --git a/frontend/lib/api/admin/admin-users.ts b/frontend/app/lib/api/admin/admin-users.ts similarity index 100% rename from frontend/lib/api/admin/admin-users.ts rename to frontend/app/lib/api/admin/admin-users.ts diff --git a/frontend/lib/api/base/base-clients.ts b/frontend/app/lib/api/base/base-clients.ts similarity index 100% rename from frontend/lib/api/base/base-clients.ts rename to frontend/app/lib/api/base/base-clients.ts diff --git a/frontend/lib/api/base/index.ts b/frontend/app/lib/api/base/index.ts similarity index 100% rename from frontend/lib/api/base/index.ts rename to frontend/app/lib/api/base/index.ts diff --git a/frontend/lib/api/base/route.ts b/frontend/app/lib/api/base/route.ts similarity index 100% rename from frontend/lib/api/base/route.ts rename to frontend/app/lib/api/base/route.ts diff --git a/frontend/lib/api/base/routes.test.ts b/frontend/app/lib/api/base/routes.test.ts similarity index 100% rename from frontend/lib/api/base/routes.test.ts rename to frontend/app/lib/api/base/routes.test.ts diff --git a/frontend/lib/api/client-admin.ts b/frontend/app/lib/api/client-admin.ts similarity index 100% rename from frontend/lib/api/client-admin.ts rename to frontend/app/lib/api/client-admin.ts diff --git a/frontend/lib/api/client-public.ts b/frontend/app/lib/api/client-public.ts similarity index 100% rename from frontend/lib/api/client-public.ts rename to frontend/app/lib/api/client-public.ts diff --git a/frontend/lib/api/client-user.ts b/frontend/app/lib/api/client-user.ts similarity index 100% rename from frontend/lib/api/client-user.ts rename to frontend/app/lib/api/client-user.ts diff --git a/frontend/lib/api/config.ts b/frontend/app/lib/api/config.ts similarity index 100% rename from frontend/lib/api/config.ts rename to frontend/app/lib/api/config.ts diff --git a/frontend/lib/api/index.ts b/frontend/app/lib/api/index.ts similarity index 100% rename from frontend/lib/api/index.ts rename to frontend/app/lib/api/index.ts diff --git a/frontend/lib/api/public/explore.ts b/frontend/app/lib/api/public/explore.ts similarity index 100% rename from frontend/lib/api/public/explore.ts rename to frontend/app/lib/api/public/explore.ts diff --git a/frontend/lib/api/public/explore/cookbooks.ts b/frontend/app/lib/api/public/explore/cookbooks.ts similarity index 100% rename from frontend/lib/api/public/explore/cookbooks.ts rename to frontend/app/lib/api/public/explore/cookbooks.ts diff --git a/frontend/lib/api/public/explore/foods.ts b/frontend/app/lib/api/public/explore/foods.ts similarity index 100% rename from frontend/lib/api/public/explore/foods.ts rename to frontend/app/lib/api/public/explore/foods.ts diff --git a/frontend/lib/api/public/explore/households.ts b/frontend/app/lib/api/public/explore/households.ts similarity index 100% rename from frontend/lib/api/public/explore/households.ts rename to frontend/app/lib/api/public/explore/households.ts diff --git a/frontend/lib/api/public/explore/organizers.ts b/frontend/app/lib/api/public/explore/organizers.ts similarity index 100% rename from frontend/lib/api/public/explore/organizers.ts rename to frontend/app/lib/api/public/explore/organizers.ts diff --git a/frontend/lib/api/public/explore/recipes.ts b/frontend/app/lib/api/public/explore/recipes.ts similarity index 100% rename from frontend/lib/api/public/explore/recipes.ts rename to frontend/app/lib/api/public/explore/recipes.ts diff --git a/frontend/lib/api/public/shared.ts b/frontend/app/lib/api/public/shared.ts similarity index 100% rename from frontend/lib/api/public/shared.ts rename to frontend/app/lib/api/public/shared.ts diff --git a/frontend/lib/api/public/validators.ts b/frontend/app/lib/api/public/validators.ts similarity index 100% rename from frontend/lib/api/public/validators.ts rename to frontend/app/lib/api/public/validators.ts diff --git a/frontend/lib/api/types/activity.ts b/frontend/app/lib/api/types/activity.ts similarity index 100% rename from frontend/lib/api/types/activity.ts rename to frontend/app/lib/api/types/activity.ts diff --git a/frontend/lib/api/types/admin.ts b/frontend/app/lib/api/types/admin.ts similarity index 100% rename from frontend/lib/api/types/admin.ts rename to frontend/app/lib/api/types/admin.ts diff --git a/frontend/lib/api/types/analytics.ts b/frontend/app/lib/api/types/analytics.ts similarity index 100% rename from frontend/lib/api/types/analytics.ts rename to frontend/app/lib/api/types/analytics.ts diff --git a/frontend/lib/api/types/cookbook.ts b/frontend/app/lib/api/types/cookbook.ts similarity index 100% rename from frontend/lib/api/types/cookbook.ts rename to frontend/app/lib/api/types/cookbook.ts diff --git a/frontend/lib/api/types/events.ts b/frontend/app/lib/api/types/events.ts similarity index 100% rename from frontend/lib/api/types/events.ts rename to frontend/app/lib/api/types/events.ts diff --git a/frontend/lib/api/types/group.ts b/frontend/app/lib/api/types/group.ts similarity index 100% rename from frontend/lib/api/types/group.ts rename to frontend/app/lib/api/types/group.ts diff --git a/frontend/lib/api/types/household.ts b/frontend/app/lib/api/types/household.ts similarity index 100% rename from frontend/lib/api/types/household.ts rename to frontend/app/lib/api/types/household.ts diff --git a/frontend/lib/api/types/labels.ts b/frontend/app/lib/api/types/labels.ts similarity index 100% rename from frontend/lib/api/types/labels.ts rename to frontend/app/lib/api/types/labels.ts diff --git a/frontend/lib/api/types/meal-plan.ts b/frontend/app/lib/api/types/meal-plan.ts similarity index 100% rename from frontend/lib/api/types/meal-plan.ts rename to frontend/app/lib/api/types/meal-plan.ts diff --git a/frontend/lib/api/types/non-generated.ts b/frontend/app/lib/api/types/non-generated.ts similarity index 100% rename from frontend/lib/api/types/non-generated.ts rename to frontend/app/lib/api/types/non-generated.ts diff --git a/frontend/lib/api/types/openai.ts b/frontend/app/lib/api/types/openai.ts similarity index 100% rename from frontend/lib/api/types/openai.ts rename to frontend/app/lib/api/types/openai.ts diff --git a/frontend/lib/api/types/recipe.ts b/frontend/app/lib/api/types/recipe.ts similarity index 100% rename from frontend/lib/api/types/recipe.ts rename to frontend/app/lib/api/types/recipe.ts diff --git a/frontend/lib/api/types/reports.ts b/frontend/app/lib/api/types/reports.ts similarity index 100% rename from frontend/lib/api/types/reports.ts rename to frontend/app/lib/api/types/reports.ts diff --git a/frontend/lib/api/types/response.ts b/frontend/app/lib/api/types/response.ts similarity index 100% rename from frontend/lib/api/types/response.ts rename to frontend/app/lib/api/types/response.ts diff --git a/frontend/lib/api/types/static.ts b/frontend/app/lib/api/types/static.ts similarity index 100% rename from frontend/lib/api/types/static.ts rename to frontend/app/lib/api/types/static.ts diff --git a/frontend/lib/api/types/user.ts b/frontend/app/lib/api/types/user.ts similarity index 100% rename from frontend/lib/api/types/user.ts rename to frontend/app/lib/api/types/user.ts diff --git a/frontend/lib/api/user/backups.ts b/frontend/app/lib/api/user/backups.ts similarity index 100% rename from frontend/lib/api/user/backups.ts rename to frontend/app/lib/api/user/backups.ts diff --git a/frontend/lib/api/user/email.ts b/frontend/app/lib/api/user/email.ts similarity index 100% rename from frontend/lib/api/user/email.ts rename to frontend/app/lib/api/user/email.ts diff --git a/frontend/lib/api/user/group-cookbooks.ts b/frontend/app/lib/api/user/group-cookbooks.ts similarity index 100% rename from frontend/lib/api/user/group-cookbooks.ts rename to frontend/app/lib/api/user/group-cookbooks.ts diff --git a/frontend/lib/api/user/group-event-notifier.ts b/frontend/app/lib/api/user/group-event-notifier.ts similarity index 100% rename from frontend/lib/api/user/group-event-notifier.ts rename to frontend/app/lib/api/user/group-event-notifier.ts diff --git a/frontend/lib/api/user/group-mealplan-rules.ts b/frontend/app/lib/api/user/group-mealplan-rules.ts similarity index 100% rename from frontend/lib/api/user/group-mealplan-rules.ts rename to frontend/app/lib/api/user/group-mealplan-rules.ts diff --git a/frontend/lib/api/user/group-mealplan.ts b/frontend/app/lib/api/user/group-mealplan.ts similarity index 100% rename from frontend/lib/api/user/group-mealplan.ts rename to frontend/app/lib/api/user/group-mealplan.ts diff --git a/frontend/lib/api/user/group-migrations.ts b/frontend/app/lib/api/user/group-migrations.ts similarity index 100% rename from frontend/lib/api/user/group-migrations.ts rename to frontend/app/lib/api/user/group-migrations.ts diff --git a/frontend/lib/api/user/group-multiple-purpose-labels.ts b/frontend/app/lib/api/user/group-multiple-purpose-labels.ts similarity index 100% rename from frontend/lib/api/user/group-multiple-purpose-labels.ts rename to frontend/app/lib/api/user/group-multiple-purpose-labels.ts diff --git a/frontend/lib/api/user/group-recipe-actions.ts b/frontend/app/lib/api/user/group-recipe-actions.ts similarity index 100% rename from frontend/lib/api/user/group-recipe-actions.ts rename to frontend/app/lib/api/user/group-recipe-actions.ts diff --git a/frontend/lib/api/user/group-reports.ts b/frontend/app/lib/api/user/group-reports.ts similarity index 100% rename from frontend/lib/api/user/group-reports.ts rename to frontend/app/lib/api/user/group-reports.ts diff --git a/frontend/lib/api/user/group-seeder.ts b/frontend/app/lib/api/user/group-seeder.ts similarity index 100% rename from frontend/lib/api/user/group-seeder.ts rename to frontend/app/lib/api/user/group-seeder.ts diff --git a/frontend/lib/api/user/group-shopping-lists.ts b/frontend/app/lib/api/user/group-shopping-lists.ts similarity index 100% rename from frontend/lib/api/user/group-shopping-lists.ts rename to frontend/app/lib/api/user/group-shopping-lists.ts diff --git a/frontend/lib/api/user/group-webhooks.ts b/frontend/app/lib/api/user/group-webhooks.ts similarity index 100% rename from frontend/lib/api/user/group-webhooks.ts rename to frontend/app/lib/api/user/group-webhooks.ts diff --git a/frontend/lib/api/user/groups.ts b/frontend/app/lib/api/user/groups.ts similarity index 100% rename from frontend/lib/api/user/groups.ts rename to frontend/app/lib/api/user/groups.ts diff --git a/frontend/lib/api/user/households.ts b/frontend/app/lib/api/user/households.ts similarity index 100% rename from frontend/lib/api/user/households.ts rename to frontend/app/lib/api/user/households.ts diff --git a/frontend/lib/api/user/organizer-categories.ts b/frontend/app/lib/api/user/organizer-categories.ts similarity index 100% rename from frontend/lib/api/user/organizer-categories.ts rename to frontend/app/lib/api/user/organizer-categories.ts diff --git a/frontend/lib/api/user/organizer-tags.ts b/frontend/app/lib/api/user/organizer-tags.ts similarity index 100% rename from frontend/lib/api/user/organizer-tags.ts rename to frontend/app/lib/api/user/organizer-tags.ts diff --git a/frontend/lib/api/user/organizer-tools.ts b/frontend/app/lib/api/user/organizer-tools.ts similarity index 100% rename from frontend/lib/api/user/organizer-tools.ts rename to frontend/app/lib/api/user/organizer-tools.ts diff --git a/frontend/lib/api/user/recipe-bulk-actions.ts b/frontend/app/lib/api/user/recipe-bulk-actions.ts similarity index 100% rename from frontend/lib/api/user/recipe-bulk-actions.ts rename to frontend/app/lib/api/user/recipe-bulk-actions.ts diff --git a/frontend/lib/api/user/recipe-foods.ts b/frontend/app/lib/api/user/recipe-foods.ts similarity index 100% rename from frontend/lib/api/user/recipe-foods.ts rename to frontend/app/lib/api/user/recipe-foods.ts diff --git a/frontend/lib/api/user/recipe-units.ts b/frontend/app/lib/api/user/recipe-units.ts similarity index 100% rename from frontend/lib/api/user/recipe-units.ts rename to frontend/app/lib/api/user/recipe-units.ts diff --git a/frontend/lib/api/user/recipes/index.ts b/frontend/app/lib/api/user/recipes/index.ts similarity index 100% rename from frontend/lib/api/user/recipes/index.ts rename to frontend/app/lib/api/user/recipes/index.ts diff --git a/frontend/lib/api/user/recipes/recipe-comments.ts b/frontend/app/lib/api/user/recipes/recipe-comments.ts similarity index 100% rename from frontend/lib/api/user/recipes/recipe-comments.ts rename to frontend/app/lib/api/user/recipes/recipe-comments.ts diff --git a/frontend/lib/api/user/recipes/recipe-share.ts b/frontend/app/lib/api/user/recipes/recipe-share.ts similarity index 100% rename from frontend/lib/api/user/recipes/recipe-share.ts rename to frontend/app/lib/api/user/recipes/recipe-share.ts diff --git a/frontend/lib/api/user/recipes/recipe.ts b/frontend/app/lib/api/user/recipes/recipe.ts similarity index 100% rename from frontend/lib/api/user/recipes/recipe.ts rename to frontend/app/lib/api/user/recipes/recipe.ts diff --git a/frontend/lib/api/user/upload.ts b/frontend/app/lib/api/user/upload.ts similarity index 100% rename from frontend/lib/api/user/upload.ts rename to frontend/app/lib/api/user/upload.ts diff --git a/frontend/lib/api/user/user-registration.ts b/frontend/app/lib/api/user/user-registration.ts similarity index 100% rename from frontend/lib/api/user/user-registration.ts rename to frontend/app/lib/api/user/user-registration.ts diff --git a/frontend/lib/api/user/users.ts b/frontend/app/lib/api/user/users.ts similarity index 100% rename from frontend/lib/api/user/users.ts rename to frontend/app/lib/api/user/users.ts diff --git a/frontend/lib/api/user/utils.ts b/frontend/app/lib/api/user/utils.ts similarity index 100% rename from frontend/lib/api/user/utils.ts rename to frontend/app/lib/api/user/utils.ts diff --git a/frontend/lib/icons/icon-type.ts b/frontend/app/lib/icons/icon-type.ts similarity index 100% rename from frontend/lib/icons/icon-type.ts rename to frontend/app/lib/icons/icon-type.ts diff --git a/frontend/lib/icons/icons.ts b/frontend/app/lib/icons/icons.ts similarity index 100% rename from frontend/lib/icons/icons.ts rename to frontend/app/lib/icons/icons.ts diff --git a/frontend/lib/icons/index.ts b/frontend/app/lib/icons/index.ts similarity index 100% rename from frontend/lib/icons/index.ts rename to frontend/app/lib/icons/index.ts diff --git a/frontend/lib/validators/index.ts b/frontend/app/lib/validators/index.ts similarity index 100% rename from frontend/lib/validators/index.ts rename to frontend/app/lib/validators/index.ts diff --git a/frontend/lib/validators/inputs.test.ts b/frontend/app/lib/validators/inputs.test.ts similarity index 100% rename from frontend/lib/validators/inputs.test.ts rename to frontend/app/lib/validators/inputs.test.ts diff --git a/frontend/lib/validators/inputs.ts b/frontend/app/lib/validators/inputs.ts similarity index 100% rename from frontend/lib/validators/inputs.ts rename to frontend/app/lib/validators/inputs.ts diff --git a/frontend/lib/validators/password.test.ts b/frontend/app/lib/validators/password.test.ts similarity index 100% rename from frontend/lib/validators/password.test.ts rename to frontend/app/lib/validators/password.test.ts diff --git a/frontend/lib/validators/password.ts b/frontend/app/lib/validators/password.ts similarity index 100% rename from frontend/lib/validators/password.ts rename to frontend/app/lib/validators/password.ts diff --git a/frontend/middleware/admin-only.ts b/frontend/app/middleware/admin-only.ts similarity index 100% rename from frontend/middleware/admin-only.ts rename to frontend/app/middleware/admin-only.ts diff --git a/frontend/middleware/advanced-only.ts b/frontend/app/middleware/advanced-only.ts similarity index 100% rename from frontend/middleware/advanced-only.ts rename to frontend/app/middleware/advanced-only.ts diff --git a/frontend/middleware/can-manage-household-only.ts b/frontend/app/middleware/can-manage-household-only.ts similarity index 100% rename from frontend/middleware/can-manage-household-only.ts rename to frontend/app/middleware/can-manage-household-only.ts diff --git a/frontend/middleware/can-manage-only.ts b/frontend/app/middleware/can-manage-only.ts similarity index 100% rename from frontend/middleware/can-manage-only.ts rename to frontend/app/middleware/can-manage-only.ts diff --git a/frontend/middleware/can-organize-only.ts b/frontend/app/middleware/can-organize-only.ts similarity index 100% rename from frontend/middleware/can-organize-only.ts rename to frontend/app/middleware/can-organize-only.ts diff --git a/frontend/middleware/group-only.ts b/frontend/app/middleware/group-only.ts similarity index 100% rename from frontend/middleware/group-only.ts rename to frontend/app/middleware/group-only.ts diff --git a/frontend/middleware/pwa-share-target-redirect.global.ts b/frontend/app/middleware/pwa-share-target-redirect.global.ts similarity index 100% rename from frontend/middleware/pwa-share-target-redirect.global.ts rename to frontend/app/middleware/pwa-share-target-redirect.global.ts diff --git a/frontend/pages/admin.vue b/frontend/app/pages/admin.vue similarity index 100% rename from frontend/pages/admin.vue rename to frontend/app/pages/admin.vue diff --git a/frontend/pages/admin/backups.vue b/frontend/app/pages/admin/backups.vue similarity index 100% rename from frontend/pages/admin/backups.vue rename to frontend/app/pages/admin/backups.vue diff --git a/frontend/pages/admin/debug/openai.vue b/frontend/app/pages/admin/debug/openai.vue similarity index 100% rename from frontend/pages/admin/debug/openai.vue rename to frontend/app/pages/admin/debug/openai.vue diff --git a/frontend/pages/admin/debug/parser.vue b/frontend/app/pages/admin/debug/parser.vue similarity index 100% rename from frontend/pages/admin/debug/parser.vue rename to frontend/app/pages/admin/debug/parser.vue diff --git a/frontend/pages/admin/maintenance/index.vue b/frontend/app/pages/admin/maintenance/index.vue similarity index 100% rename from frontend/pages/admin/maintenance/index.vue rename to frontend/app/pages/admin/maintenance/index.vue diff --git a/frontend/pages/admin/manage/groups/[id].vue b/frontend/app/pages/admin/manage/groups/[id].vue similarity index 100% rename from frontend/pages/admin/manage/groups/[id].vue rename to frontend/app/pages/admin/manage/groups/[id].vue diff --git a/frontend/pages/admin/manage/groups/index.vue b/frontend/app/pages/admin/manage/groups/index.vue similarity index 100% rename from frontend/pages/admin/manage/groups/index.vue rename to frontend/app/pages/admin/manage/groups/index.vue diff --git a/frontend/pages/admin/manage/households/[id].vue b/frontend/app/pages/admin/manage/households/[id].vue similarity index 100% rename from frontend/pages/admin/manage/households/[id].vue rename to frontend/app/pages/admin/manage/households/[id].vue diff --git a/frontend/pages/admin/manage/households/index.vue b/frontend/app/pages/admin/manage/households/index.vue similarity index 100% rename from frontend/pages/admin/manage/households/index.vue rename to frontend/app/pages/admin/manage/households/index.vue diff --git a/frontend/pages/admin/manage/users/[id].vue b/frontend/app/pages/admin/manage/users/[id].vue similarity index 100% rename from frontend/pages/admin/manage/users/[id].vue rename to frontend/app/pages/admin/manage/users/[id].vue diff --git a/frontend/pages/admin/manage/users/create.vue b/frontend/app/pages/admin/manage/users/create.vue similarity index 100% rename from frontend/pages/admin/manage/users/create.vue rename to frontend/app/pages/admin/manage/users/create.vue diff --git a/frontend/pages/admin/manage/users/index.vue b/frontend/app/pages/admin/manage/users/index.vue similarity index 100% rename from frontend/pages/admin/manage/users/index.vue rename to frontend/app/pages/admin/manage/users/index.vue diff --git a/frontend/pages/admin/setup.vue b/frontend/app/pages/admin/setup.vue similarity index 100% rename from frontend/pages/admin/setup.vue rename to frontend/app/pages/admin/setup.vue diff --git a/frontend/pages/admin/site-settings.vue b/frontend/app/pages/admin/site-settings.vue similarity index 100% rename from frontend/pages/admin/site-settings.vue rename to frontend/app/pages/admin/site-settings.vue diff --git a/frontend/pages/forgot-password.vue b/frontend/app/pages/forgot-password.vue similarity index 100% rename from frontend/pages/forgot-password.vue rename to frontend/app/pages/forgot-password.vue diff --git a/frontend/pages/g/[groupSlug]/cookbooks/[slug].vue b/frontend/app/pages/g/[groupSlug]/cookbooks/[slug].vue similarity index 100% rename from frontend/pages/g/[groupSlug]/cookbooks/[slug].vue rename to frontend/app/pages/g/[groupSlug]/cookbooks/[slug].vue diff --git a/frontend/pages/g/[groupSlug]/cookbooks/index.vue b/frontend/app/pages/g/[groupSlug]/cookbooks/index.vue similarity index 100% rename from frontend/pages/g/[groupSlug]/cookbooks/index.vue rename to frontend/app/pages/g/[groupSlug]/cookbooks/index.vue diff --git a/frontend/pages/g/[groupSlug]/index.vue b/frontend/app/pages/g/[groupSlug]/index.vue similarity index 100% rename from frontend/pages/g/[groupSlug]/index.vue rename to frontend/app/pages/g/[groupSlug]/index.vue diff --git a/frontend/pages/g/[groupSlug]/r/[slug]/index.vue b/frontend/app/pages/g/[groupSlug]/r/[slug]/index.vue similarity index 100% rename from frontend/pages/g/[groupSlug]/r/[slug]/index.vue rename to frontend/app/pages/g/[groupSlug]/r/[slug]/index.vue diff --git a/frontend/pages/g/[groupSlug]/r/create.vue b/frontend/app/pages/g/[groupSlug]/r/create.vue similarity index 100% rename from frontend/pages/g/[groupSlug]/r/create.vue rename to frontend/app/pages/g/[groupSlug]/r/create.vue diff --git a/frontend/pages/g/[groupSlug]/r/create/bulk.vue b/frontend/app/pages/g/[groupSlug]/r/create/bulk.vue similarity index 100% rename from frontend/pages/g/[groupSlug]/r/create/bulk.vue rename to frontend/app/pages/g/[groupSlug]/r/create/bulk.vue diff --git a/frontend/pages/g/[groupSlug]/r/create/debug.vue b/frontend/app/pages/g/[groupSlug]/r/create/debug.vue similarity index 100% rename from frontend/pages/g/[groupSlug]/r/create/debug.vue rename to frontend/app/pages/g/[groupSlug]/r/create/debug.vue diff --git a/frontend/pages/g/[groupSlug]/r/create/html.vue b/frontend/app/pages/g/[groupSlug]/r/create/html.vue similarity index 100% rename from frontend/pages/g/[groupSlug]/r/create/html.vue rename to frontend/app/pages/g/[groupSlug]/r/create/html.vue diff --git a/frontend/pages/g/[groupSlug]/r/create/image.vue b/frontend/app/pages/g/[groupSlug]/r/create/image.vue similarity index 100% rename from frontend/pages/g/[groupSlug]/r/create/image.vue rename to frontend/app/pages/g/[groupSlug]/r/create/image.vue diff --git a/frontend/pages/g/[groupSlug]/r/create/index.vue b/frontend/app/pages/g/[groupSlug]/r/create/index.vue similarity index 100% rename from frontend/pages/g/[groupSlug]/r/create/index.vue rename to frontend/app/pages/g/[groupSlug]/r/create/index.vue diff --git a/frontend/pages/g/[groupSlug]/r/create/new.vue b/frontend/app/pages/g/[groupSlug]/r/create/new.vue similarity index 100% rename from frontend/pages/g/[groupSlug]/r/create/new.vue rename to frontend/app/pages/g/[groupSlug]/r/create/new.vue diff --git a/frontend/pages/g/[groupSlug]/r/create/url.vue b/frontend/app/pages/g/[groupSlug]/r/create/url.vue similarity index 100% rename from frontend/pages/g/[groupSlug]/r/create/url.vue rename to frontend/app/pages/g/[groupSlug]/r/create/url.vue diff --git a/frontend/pages/g/[groupSlug]/r/create/zip.vue b/frontend/app/pages/g/[groupSlug]/r/create/zip.vue similarity index 100% rename from frontend/pages/g/[groupSlug]/r/create/zip.vue rename to frontend/app/pages/g/[groupSlug]/r/create/zip.vue diff --git a/frontend/pages/g/[groupSlug]/recipes/categories/index.vue b/frontend/app/pages/g/[groupSlug]/recipes/categories/index.vue similarity index 100% rename from frontend/pages/g/[groupSlug]/recipes/categories/index.vue rename to frontend/app/pages/g/[groupSlug]/recipes/categories/index.vue diff --git a/frontend/pages/g/[groupSlug]/recipes/finder/index.vue b/frontend/app/pages/g/[groupSlug]/recipes/finder/index.vue similarity index 100% rename from frontend/pages/g/[groupSlug]/recipes/finder/index.vue rename to frontend/app/pages/g/[groupSlug]/recipes/finder/index.vue diff --git a/frontend/pages/g/[groupSlug]/recipes/tags/index.vue b/frontend/app/pages/g/[groupSlug]/recipes/tags/index.vue similarity index 100% rename from frontend/pages/g/[groupSlug]/recipes/tags/index.vue rename to frontend/app/pages/g/[groupSlug]/recipes/tags/index.vue diff --git a/frontend/pages/g/[groupSlug]/recipes/timeline.vue b/frontend/app/pages/g/[groupSlug]/recipes/timeline.vue similarity index 100% rename from frontend/pages/g/[groupSlug]/recipes/timeline.vue rename to frontend/app/pages/g/[groupSlug]/recipes/timeline.vue diff --git a/frontend/pages/g/[groupSlug]/recipes/tools/index.vue b/frontend/app/pages/g/[groupSlug]/recipes/tools/index.vue similarity index 100% rename from frontend/pages/g/[groupSlug]/recipes/tools/index.vue rename to frontend/app/pages/g/[groupSlug]/recipes/tools/index.vue diff --git a/frontend/pages/g/[groupSlug]/shared/r/[id].vue b/frontend/app/pages/g/[groupSlug]/shared/r/[id].vue similarity index 100% rename from frontend/pages/g/[groupSlug]/shared/r/[id].vue rename to frontend/app/pages/g/[groupSlug]/shared/r/[id].vue diff --git a/frontend/pages/group/data.vue b/frontend/app/pages/group/data.vue similarity index 100% rename from frontend/pages/group/data.vue rename to frontend/app/pages/group/data.vue diff --git a/frontend/pages/group/data/categories.vue b/frontend/app/pages/group/data/categories.vue similarity index 100% rename from frontend/pages/group/data/categories.vue rename to frontend/app/pages/group/data/categories.vue diff --git a/frontend/pages/group/data/foods.vue b/frontend/app/pages/group/data/foods.vue similarity index 100% rename from frontend/pages/group/data/foods.vue rename to frontend/app/pages/group/data/foods.vue diff --git a/frontend/pages/group/data/index.vue b/frontend/app/pages/group/data/index.vue similarity index 100% rename from frontend/pages/group/data/index.vue rename to frontend/app/pages/group/data/index.vue diff --git a/frontend/pages/group/data/labels.vue b/frontend/app/pages/group/data/labels.vue similarity index 100% rename from frontend/pages/group/data/labels.vue rename to frontend/app/pages/group/data/labels.vue diff --git a/frontend/pages/group/data/recipe-actions.vue b/frontend/app/pages/group/data/recipe-actions.vue similarity index 100% rename from frontend/pages/group/data/recipe-actions.vue rename to frontend/app/pages/group/data/recipe-actions.vue diff --git a/frontend/pages/group/data/recipes.vue b/frontend/app/pages/group/data/recipes.vue similarity index 100% rename from frontend/pages/group/data/recipes.vue rename to frontend/app/pages/group/data/recipes.vue diff --git a/frontend/pages/group/data/tags.vue b/frontend/app/pages/group/data/tags.vue similarity index 100% rename from frontend/pages/group/data/tags.vue rename to frontend/app/pages/group/data/tags.vue diff --git a/frontend/pages/group/data/tools.vue b/frontend/app/pages/group/data/tools.vue similarity index 100% rename from frontend/pages/group/data/tools.vue rename to frontend/app/pages/group/data/tools.vue diff --git a/frontend/pages/group/data/units.vue b/frontend/app/pages/group/data/units.vue similarity index 100% rename from frontend/pages/group/data/units.vue rename to frontend/app/pages/group/data/units.vue diff --git a/frontend/pages/group/index.vue b/frontend/app/pages/group/index.vue similarity index 100% rename from frontend/pages/group/index.vue rename to frontend/app/pages/group/index.vue diff --git a/frontend/pages/group/migrations.vue b/frontend/app/pages/group/migrations.vue similarity index 100% rename from frontend/pages/group/migrations.vue rename to frontend/app/pages/group/migrations.vue diff --git a/frontend/pages/group/reports/[id].vue b/frontend/app/pages/group/reports/[id].vue similarity index 100% rename from frontend/pages/group/reports/[id].vue rename to frontend/app/pages/group/reports/[id].vue diff --git a/frontend/pages/household/index.vue b/frontend/app/pages/household/index.vue similarity index 100% rename from frontend/pages/household/index.vue rename to frontend/app/pages/household/index.vue diff --git a/frontend/pages/household/mealplan/planner.vue b/frontend/app/pages/household/mealplan/planner.vue similarity index 100% rename from frontend/pages/household/mealplan/planner.vue rename to frontend/app/pages/household/mealplan/planner.vue diff --git a/frontend/pages/household/mealplan/planner/edit.vue b/frontend/app/pages/household/mealplan/planner/edit.vue similarity index 99% rename from frontend/pages/household/mealplan/planner/edit.vue rename to frontend/app/pages/household/mealplan/planner/edit.vue index 518acae91..95370f86e 100644 --- a/frontend/pages/household/mealplan/planner/edit.vue +++ b/frontend/app/pages/household/mealplan/planner/edit.vue @@ -236,7 +236,7 @@ import { format } from "date-fns"; import type { SortableEvent } from "sortablejs"; import { VueDraggable } from "vue-draggable-plus"; -import type { MealsByDate } from "./types"; +import type { MealsByDate } from "./view.vue"; import type { useMealplans } from "~/composables/use-group-mealplan"; import { usePlanTypeOptions, getEntryTypeText } from "~/composables/use-group-mealplan"; import RecipeCardImage from "~/components/Domain/Recipe/RecipeCardImage.vue"; diff --git a/frontend/pages/household/mealplan/planner/view.vue b/frontend/app/pages/household/mealplan/planner/view.vue similarity index 98% rename from frontend/pages/household/mealplan/planner/view.vue rename to frontend/app/pages/household/mealplan/planner/view.vue index 8e741bbf7..b037da480 100644 --- a/frontend/pages/household/mealplan/planner/view.vue +++ b/frontend/app/pages/household/mealplan/planner/view.vue @@ -53,12 +53,16 @@