create-pixi-vn 1.0.2 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.mjs +1 -1
- package/package.json +3 -3
- package/template-react-vite-muijoy/src/App.tsx +1 -1
- package/template-react-vite-muijoy/src/components/GameSaveSlot.tsx +163 -0
- package/template-react-vite-muijoy/src/components/NextButton.tsx +2 -2
- package/template-react-vite-muijoy/src/components/ReturnMainMenuButton.tsx +79 -0
- package/template-react-vite-muijoy/src/components/Typewriter.tsx +54 -21
- package/template-react-vite-muijoy/src/interceptors/GoBackEventInterceptor.tsx +6 -6
- package/template-react-vite-muijoy/src/interceptors/OnKeyEventInterceptor.tsx +70 -14
- package/template-react-vite-muijoy/src/interceptors/RefreshEventInterceptor.tsx +2 -6
- package/template-react-vite-muijoy/src/interceptors/SkipAutoInterceptor.tsx +2 -2
- package/template-react-vite-muijoy/src/screens/ChoiceMenu.tsx +3 -3
- package/template-react-vite-muijoy/src/screens/GameSaveScreen.tsx +4 -161
- package/template-react-vite-muijoy/src/screens/HistoryScreen.tsx +12 -12
- package/template-react-vite-muijoy/src/screens/Settings.tsx +81 -523
- package/template-react-vite-muijoy/src/screens/modals/SaveLoadAlert.tsx +1 -33
- package/template-react-vite-muijoy/src/screens/settings/AutoSettingToggle.tsx +30 -0
- package/template-react-vite-muijoy/src/screens/settings/DialoguesSettings.tsx +97 -0
- package/template-react-vite-muijoy/src/screens/settings/FullScreenSettings.tsx +50 -0
- package/template-react-vite-muijoy/src/screens/settings/HideInterfaceSettingToggle.tsx +37 -0
- package/template-react-vite-muijoy/src/screens/settings/OpenHistorySettingButton.tsx +41 -0
- package/template-react-vite-muijoy/src/screens/settings/SaveLoadSettingButtons.tsx +113 -0
- package/template-react-vite-muijoy/src/screens/settings/SkipSettingToggle.tsx +37 -0
- package/template-react-vite-muijoy/src/screens/settings/ThemeSettings.tsx +131 -0
- package/template-react-vite-muijoy/src/use_query/useQueryIsFullModeScreen.ts +12 -0
- package/template-react-vite-muijoy/src/utilities/save-utility.ts +2 -0
- package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/README.md +2 -1
- package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink}/src/App.tsx +1 -1
- package/template-react-vite-muijoy-ink/src/components/GameSaveSlot.tsx +163 -0
- package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/components/NextButton.tsx +2 -2
- package/template-react-vite-muijoy-ink/src/components/ReturnMainMenuButton.tsx +79 -0
- package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/components/Typewriter.tsx +54 -21
- package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/interceptors/GoBackEventInterceptor.tsx +6 -6
- package/template-react-vite-muijoy-ink/src/interceptors/OnKeyEventInterceptor.tsx +84 -0
- package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink}/src/interceptors/RefreshEventInterceptor.tsx +2 -6
- package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/interceptors/SkipAutoInterceptor.tsx +2 -2
- package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/screens/ChoiceMenu.tsx +3 -3
- package/template-react-vite-muijoy-ink/src/screens/GameSaveScreen.tsx +121 -0
- package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink}/src/screens/HistoryScreen.tsx +12 -12
- package/template-react-vite-muijoy-ink/src/screens/Settings.tsx +104 -0
- package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/screens/modals/SaveLoadAlert.tsx +1 -33
- package/template-react-vite-muijoy-ink/src/screens/settings/AutoSettingToggle.tsx +30 -0
- package/template-react-vite-muijoy-ink/src/screens/settings/DialoguesSettings.tsx +97 -0
- package/template-react-vite-muijoy-ink/src/screens/settings/FullScreenSettings.tsx +50 -0
- package/template-react-vite-muijoy-ink/src/screens/settings/HideInterfaceSettingToggle.tsx +37 -0
- package/template-react-vite-muijoy-ink/src/screens/settings/OpenHistorySettingButton.tsx +41 -0
- package/template-react-vite-muijoy-ink/src/screens/settings/SaveLoadSettingButtons.tsx +113 -0
- package/template-react-vite-muijoy-ink/src/screens/settings/SkipSettingToggle.tsx +37 -0
- package/template-react-vite-muijoy-ink/src/screens/settings/ThemeSettings.tsx +131 -0
- package/template-react-vite-muijoy-ink/src/use_query/useQueryIsFullModeScreen.ts +12 -0
- package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/utilities/save-utility.ts +2 -0
- package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink-tauri}/src/App.tsx +1 -1
- package/template-react-vite-muijoy-ink-tauri/src/components/GameSaveSlot.tsx +163 -0
- package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/components/NextButton.tsx +2 -2
- package/template-react-vite-muijoy-ink-tauri/src/components/ReturnMainMenuButton.tsx +79 -0
- package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/components/Typewriter.tsx +54 -21
- package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/interceptors/GoBackEventInterceptor.tsx +6 -6
- package/template-react-vite-muijoy-ink-tauri/src/interceptors/OnKeyEventInterceptor.tsx +84 -0
- package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink-tauri}/src/interceptors/RefreshEventInterceptor.tsx +2 -6
- package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/interceptors/SkipAutoInterceptor.tsx +2 -2
- package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/screens/ChoiceMenu.tsx +3 -3
- package/template-react-vite-muijoy-ink-tauri/src/screens/GameSaveScreen.tsx +121 -0
- package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink-tauri}/src/screens/HistoryScreen.tsx +12 -12
- package/template-react-vite-muijoy-ink-tauri/src/screens/Settings.tsx +104 -0
- package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/screens/modals/SaveLoadAlert.tsx +1 -33
- package/template-react-vite-muijoy-ink-tauri/src/screens/settings/AutoSettingToggle.tsx +30 -0
- package/template-react-vite-muijoy-ink-tauri/src/screens/settings/DialoguesSettings.tsx +97 -0
- package/template-react-vite-muijoy-ink-tauri/src/screens/settings/FullScreenSettings.tsx +50 -0
- package/template-react-vite-muijoy-ink-tauri/src/screens/settings/HideInterfaceSettingToggle.tsx +37 -0
- package/template-react-vite-muijoy-ink-tauri/src/screens/settings/OpenHistorySettingButton.tsx +41 -0
- package/template-react-vite-muijoy-ink-tauri/src/screens/settings/SaveLoadSettingButtons.tsx +113 -0
- package/template-react-vite-muijoy-ink-tauri/src/screens/settings/SkipSettingToggle.tsx +37 -0
- package/template-react-vite-muijoy-ink-tauri/src/screens/settings/ThemeSettings.tsx +131 -0
- package/template-react-vite-muijoy-ink-tauri/src/use_query/useQueryIsFullModeScreen.ts +12 -0
- package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/utilities/save-utility.ts +2 -0
- package/template-react-vite-muijoy-tauri/src/App.tsx +1 -1
- package/template-react-vite-muijoy-tauri/src/components/GameSaveSlot.tsx +163 -0
- package/template-react-vite-muijoy-tauri/src/components/NextButton.tsx +2 -2
- package/template-react-vite-muijoy-tauri/src/components/ReturnMainMenuButton.tsx +79 -0
- package/template-react-vite-muijoy-tauri/src/components/Typewriter.tsx +54 -21
- package/template-react-vite-muijoy-tauri/src/interceptors/GoBackEventInterceptor.tsx +6 -6
- package/template-react-vite-muijoy-tauri/src/interceptors/OnKeyEventInterceptor.tsx +70 -14
- package/template-react-vite-muijoy-tauri/src/interceptors/RefreshEventInterceptor.tsx +2 -6
- package/template-react-vite-muijoy-tauri/src/interceptors/SkipAutoInterceptor.tsx +2 -2
- package/template-react-vite-muijoy-tauri/src/screens/ChoiceMenu.tsx +3 -3
- package/template-react-vite-muijoy-tauri/src/screens/GameSaveScreen.tsx +4 -161
- package/template-react-vite-muijoy-tauri/src/screens/HistoryScreen.tsx +12 -12
- package/template-react-vite-muijoy-tauri/src/screens/Settings.tsx +81 -523
- package/template-react-vite-muijoy-tauri/src/screens/modals/SaveLoadAlert.tsx +1 -33
- package/template-react-vite-muijoy-tauri/src/screens/settings/AutoSettingToggle.tsx +30 -0
- package/template-react-vite-muijoy-tauri/src/screens/settings/DialoguesSettings.tsx +97 -0
- package/template-react-vite-muijoy-tauri/src/screens/settings/FullScreenSettings.tsx +50 -0
- package/template-react-vite-muijoy-tauri/src/screens/settings/HideInterfaceSettingToggle.tsx +37 -0
- package/template-react-vite-muijoy-tauri/src/screens/settings/OpenHistorySettingButton.tsx +41 -0
- package/template-react-vite-muijoy-tauri/src/screens/settings/SaveLoadSettingButtons.tsx +113 -0
- package/template-react-vite-muijoy-tauri/src/screens/settings/SkipSettingToggle.tsx +37 -0
- package/template-react-vite-muijoy-tauri/src/screens/settings/ThemeSettings.tsx +131 -0
- package/template-react-vite-muijoy-tauri/src/use_query/useQueryIsFullModeScreen.ts +12 -0
- package/template-react-vite-muijoy-tauri/src/utilities/save-utility.ts +2 -0
- package/template-react-ink-vite-muijoy/src/interceptors/OnKeyEventInterceptor.tsx +0 -28
- package/template-react-ink-vite-muijoy/src/screens/GameSaveScreen.tsx +0 -278
- package/template-react-ink-vite-muijoy/src/screens/Settings.tsx +0 -546
- package/template-react-ink-vite-muijoy-tauri/src/interceptors/OnKeyEventInterceptor.tsx +0 -28
- package/template-react-ink-vite-muijoy-tauri/src/screens/GameSaveScreen.tsx +0 -278
- package/template-react-ink-vite-muijoy-tauri/src/screens/Settings.tsx +0 -546
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/.eslintrc.cjs +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/.vscode/extensions.json +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/.vscode/launch.json +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/.vscode/settings.json +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/_gitignore +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/index.html +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/package-lock.json +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/package.json +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/public/apple-touch-icon.png +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/public/favicon.ico +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/public/mask-icon.svg +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/public/pixi-vn.svg +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/public/pwa-192x192.png +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/public/pwa-512x512.png +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/public/robots.txt +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/App.css +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/AppRoutes.tsx +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/Home.tsx +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/Imports.tsx +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/atoms/autoInfoState.ts +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/atoms/dialogueCardHeightState.ts +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/atoms/dialogueCardImageWidthState.ts +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/atoms/hideInterfaceState.ts +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/atoms/nextStepLoadingState.ts +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/atoms/openGameSaveScreenState.ts +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/atoms/openHistoryScreenState.ts +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/atoms/openSettingsState.ts +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/atoms/saveLoadAlertState.ts +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/atoms/saveScreenPageState.ts +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/atoms/skipEnabledState.ts +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/atoms/typewriterDelayState.ts +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/atoms/typewriterIsAnimatedState.ts +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/components/ChoiceButton.tsx +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/components/DragHandleDivider.tsx +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/components/MenuButton.tsx +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/components/ModalConfirmation.tsx +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/components/ModalDialog.tsx +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/components/SettingButton.tsx +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/components/SliderResizer.tsx +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/components/TextMenuButton.tsx +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/components/TypographyShadow.tsx +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/i18n.ts +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/index.css +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/ink.d.ts +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/ink_labels/start.ink +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/interceptors/InkInitialization.tsx +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/labels/exampleLabel.ts +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/main-ink.ink +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/main.tsx +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/models/Character.ts +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/models/GameSaveData.ts +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/pixi-vn.d.ts +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/providers/ThemeProvider.tsx +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/screens/LoadingScreen.tsx +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/screens/MainMenu.tsx +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/screens/NarrationScreen.tsx +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/screens/QuickTools.tsx +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/screens/modals/TextInput.tsx +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/use_query/useQueryInterface.ts +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/use_query/useQueryLastSave.ts +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/use_query/useQuerySaves.ts +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/utilities/actions-utility.ts +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/utilities/component-utility.ts +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/utilities/indexedDB-utility.ts +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/utilities/ink-utility.ts +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/utilities/navigate-utility.ts +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/values/characters.ts +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/values/translations/strings_en.json +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/src/vite-env.d.ts +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/tsconfig.json +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/tsconfig.node.json +0 -0
- /package/{template-react-ink-vite-muijoy → template-react-vite-muijoy-ink}/vite.config.ts +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/.eslintrc.cjs +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/.vscode/extensions.json +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/.vscode/launch.json +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/.vscode/settings.json +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/.vscode/tasks.json +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/README.md +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/_github/workflows/tauri.yml +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/_gitignore +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/index.html +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/package-lock.json +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/package.json +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/public/apple-touch-icon.png +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/public/favicon.ico +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/public/mask-icon.svg +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/public/pixi-vn.svg +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/public/pwa-192x192.png +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/public/pwa-512x512.png +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/public/robots.txt +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/App.css +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/AppRoutes.tsx +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/Home.tsx +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/Imports.tsx +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/atoms/autoInfoState.ts +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/atoms/dialogueCardHeightState.ts +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/atoms/dialogueCardImageWidthState.ts +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/atoms/hideInterfaceState.ts +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/atoms/nextStepLoadingState.ts +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/atoms/openGameSaveScreenState.ts +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/atoms/openHistoryScreenState.ts +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/atoms/openSettingsState.ts +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/atoms/saveLoadAlertState.ts +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/atoms/saveScreenPageState.ts +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/atoms/skipEnabledState.ts +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/atoms/typewriterDelayState.ts +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/atoms/typewriterIsAnimatedState.ts +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/components/ChoiceButton.tsx +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/components/DragHandleDivider.tsx +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/components/MenuButton.tsx +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/components/ModalConfirmation.tsx +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/components/ModalDialog.tsx +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/components/SettingButton.tsx +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/components/SliderResizer.tsx +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/components/TextMenuButton.tsx +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/components/TypographyShadow.tsx +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/i18n.ts +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/index.css +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/ink.d.ts +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/ink_labels/start.ink +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/interceptors/InkInitialization.tsx +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/labels/exampleLabel.ts +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/main-ink.ink +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/main.tsx +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/models/Character.ts +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/models/GameSaveData.ts +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/pixi-vn.d.ts +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/providers/ThemeProvider.tsx +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/screens/LoadingScreen.tsx +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/screens/MainMenu.tsx +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/screens/NarrationScreen.tsx +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/screens/QuickTools.tsx +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/screens/modals/TextInput.tsx +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/use_query/useQueryInterface.ts +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/use_query/useQueryLastSave.ts +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/use_query/useQuerySaves.ts +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/utilities/actions-utility.ts +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/utilities/component-utility.ts +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/utilities/indexedDB-utility.ts +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/utilities/ink-utility.ts +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/utilities/navigate-utility.ts +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/values/characters.ts +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/values/translations/strings_en.json +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src/vite-env.d.ts +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src-tauri/Cargo.lock +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src-tauri/Cargo.toml +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src-tauri/build.rs +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src-tauri/capabilities/default.json +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src-tauri/icons/128x128.png +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src-tauri/icons/128x128@2x.png +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src-tauri/icons/32x32.png +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src-tauri/icons/Square107x107Logo.png +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src-tauri/icons/Square142x142Logo.png +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src-tauri/icons/Square150x150Logo.png +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src-tauri/icons/Square284x284Logo.png +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src-tauri/icons/Square30x30Logo.png +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src-tauri/icons/Square310x310Logo.png +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src-tauri/icons/Square44x44Logo.png +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src-tauri/icons/Square71x71Logo.png +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src-tauri/icons/Square89x89Logo.png +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src-tauri/icons/StoreLogo.png +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src-tauri/icons/icon.icns +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src-tauri/icons/icon.ico +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src-tauri/icons/icon.png +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src-tauri/src/lib.rs +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src-tauri/src/main.rs +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/src-tauri/tauri.conf.json +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/tsconfig.json +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/tsconfig.node.json +0 -0
- /package/{template-react-ink-vite-muijoy-tauri → template-react-vite-muijoy-ink-tauri}/vite.config.ts +0 -0
package/dist/index.mjs
CHANGED
|
@@ -47,7 +47,7 @@ Calls to async() callback can have unexpected results.`),l=!0,function(b,C){b?f(
|
|
|
47
47
|
Initializing git repository...`),s0.sync("git",["init","-b","main"],{cwd:e,stdio:"inherit"}),s0.sync("git",["add","."],{cwd:e,stdio:"inherit"}),console.log("Done."),console.log(`
|
|
48
48
|
Now, you can use GitHub Desktop upload your project to GitHub.`),console.log("GitHub Desktop: https://github.com/apps/desktop"))}catch{}}var q0=(e=>(e.VisualStudioCode="vscode",e.Cursor="cursor",e.Other="other",e))(q0||{});function sx(){return re.prompt([{type:"list",name:"ide",message:"Which IDE do you want to use?",choices:[{name:"Visual Studio Code",value:q0.VisualStudioCode},{name:"Cursor",value:q0.Cursor},{name:"Other",value:q0.Other}],default:q0.VisualStudioCode}])}async function xx({rootFolder:e,fileToOpen:t}){let{ide:n}=await sx();if(n!==void 0)try{let i="";switch(n){case"vscode":console.log(`
|
|
49
49
|
Opening in Visual Studio Code...`),i="code";break;case"cursor":console.log(`
|
|
50
|
-
Opening in Cursor...`),i="cursor";break}i&&(await se(i),s0.sync(i,[e],{stdio:"inherit"}),s0.sync(i,[`${e}/README.md`],{stdio:"inherit"}),t&&s0.sync(i,[`${e}/${t}`],{stdio:"inherit"}))}catch{console.error(`Could not open project using ${n}, since ${n} was not in your PATH`)}}var It=(e=>(e[e.VisualNovel=0]="VisualNovel",e))(It||{}),t0=(e=>(e[e.Ink=0]="Ink",e[e.Renpy=1]="Renpy",e[e.Typescript=2]="Typescript",e))(t0||{}),a0=(e=>(e[e.React=0]="React",e[e.Vue=1]="Vue",e[e.Angular=2]="Angular",e))(a0||{});const Vr="My Game",Gr="my-game",$t=[{type:It.VisualNovel,name:"Visual Novel",availableUI:[a0.React],availableNarrativeLanguages:[t0.Ink,t0.Typescript]}];var T0=(e=>(e[e.Yes=0]="Yes",e[e.No=1]="No",e[e.Cancel=2]="Cancel",e))(T0||{});function ux({packageName:e}){return re.prompt([{type:"list",name:"gameType",message:"Select the type of game you want to create:",choices:$t.map(t=>({name:t.name,value:t.type}))},{type:"list",name:"UIFramework",message:"Select the UI framework you want to use:",choices:({gameType:t})=>$t.find(n=>n.type===t)?.availableUI.map(n=>{let i="";switch(n){case a0.React:i=pe("React");break;case a0.Vue:i=Ti("Vue");break;case a0.Angular:i=zt("Angular");break}return{name:i,value:n}})},{type:"list",name:"narrativeLanguage",message:"Select the narrative language you want to use:",choices:({gameType:t})=>$t.find(n=>n.type===t)?.availableNarrativeLanguages.map(n=>{let i="";switch(n){case t0.Ink:i="Ink + Typescript";break;case t0.Renpy:i=Ri("Renpy");break;case t0.Typescript:i=pe("Typescript");break}return{name:i,value:n}})},{type:"list",name:"multidevice",message:"Which devices is the project intended for?",choices:[{name:"Web page",value:!1},{name:"Web page + Desktop + Mobile (Tauri)",value:!0}]},{type:"input",name:"identifier",message:"Project identifier:",default:`com.${e}.app`,required:!0,when:({multidevice:t})=>t}])}function Wr(e){return e?.trim().replace(/\/+$/g,"")}function cx(e){const t=I.readdirSync(e);return t.length===0||t.length===1&&t[0]===".git"}function lx(e){if(I.existsSync(e))for(const t of I.readdirSync(e))t!==".git"&&I.rmSync(M.resolve(e,t),{recursive:!0,force:!0})}function fx(e){return/^(?:@[a-z\d\-*~][a-z\d\-*._~]*\/)?[a-z\d\-~][a-z\d\-._~]*$/.test(e)}function Dx(e){return e.trim().toLowerCase().replace(/\s+/g,"-").replace(/^[._]/,"").replace(/[^a-z\d\-~]+/g,"-")}async function dx({argTargetDir:e,targetDir:t}){const n=()=>t==="."?M.basename(M.resolve()):t;let i=await re.prompt([{type:"input",name:"projectName",message:"Project name:",default:Vr,required:!0,transformer:r=>Wr(r)||Vr,when:()=>!e,validate:r=>r?!0:"Project name cannot be empty"},{type:"input",name:"description",message:"Project description:",default:"A new game project"},{type:"input",name:"packageName",message:"Package name:",default:()=>Dx(n()),validate:r=>fx(r)||"Invalid package name. The name can only include URL-friendly characters."},{type:"list",name:"overwrite",message:"Overwrite existing files?",default:"yes",choices:[{description:"Remove existing files and continue",name:"Yes",value:T0.Yes},{description:"Keep existing files and continue",name:"Ignore",value:T0.No},{description:"Cancel operation",name:"Cancel",value:T0.Cancel}],when:({packageName:r=Gr})=>I.existsSync(r)&&!cx(r)}]);if(i.overwrite===T0.Cancel)throw new Error(zt("\u2716")+" Operation cancelled");return i}const hx=process.cwd(),px={_gitignore:".gitignore"};async function Ex(e){let t=e||Gr,n,{description:i,overwrite:r,packageName:o,projectName:x}=await dx({argTargetDir:e,targetDir:t}),{UIFramework:a,gameType:s,narrativeLanguage:u,multidevice:c,identifier:f}=await ux({packageName:o}),l;switch(s){case It.VisualNovel:switch(a){case a0.React:switch(u){case t0.Typescript:c?l="template-react-vite-muijoy-tauri":l="template-react-vite-muijoy",n="src/labels/startLabel.ts";break;case t0.Ink:c?l="template-react-
|
|
50
|
+
Opening in Cursor...`),i="cursor";break}i&&(await se(i),s0.sync(i,[e],{stdio:"inherit"}),s0.sync(i,[`${e}/README.md`],{stdio:"inherit"}),t&&s0.sync(i,[`${e}/${t}`],{stdio:"inherit"}))}catch{console.error(`Could not open project using ${n}, since ${n} was not in your PATH`)}}var It=(e=>(e[e.VisualNovel=0]="VisualNovel",e))(It||{}),t0=(e=>(e[e.Ink=0]="Ink",e[e.Renpy=1]="Renpy",e[e.Typescript=2]="Typescript",e))(t0||{}),a0=(e=>(e[e.React=0]="React",e[e.Vue=1]="Vue",e[e.Angular=2]="Angular",e))(a0||{});const Vr="My Game",Gr="my-game",$t=[{type:It.VisualNovel,name:"Visual Novel",availableUI:[a0.React],availableNarrativeLanguages:[t0.Ink,t0.Typescript]}];var T0=(e=>(e[e.Yes=0]="Yes",e[e.No=1]="No",e[e.Cancel=2]="Cancel",e))(T0||{});function ux({packageName:e}){return re.prompt([{type:"list",name:"gameType",message:"Select the type of game you want to create:",choices:$t.map(t=>({name:t.name,value:t.type}))},{type:"list",name:"UIFramework",message:"Select the UI framework you want to use:",choices:({gameType:t})=>$t.find(n=>n.type===t)?.availableUI.map(n=>{let i="";switch(n){case a0.React:i=pe("React");break;case a0.Vue:i=Ti("Vue");break;case a0.Angular:i=zt("Angular");break}return{name:i,value:n}})},{type:"list",name:"narrativeLanguage",message:"Select the narrative language you want to use:",choices:({gameType:t})=>$t.find(n=>n.type===t)?.availableNarrativeLanguages.map(n=>{let i="";switch(n){case t0.Ink:i="Ink + Typescript";break;case t0.Renpy:i=Ri("Renpy");break;case t0.Typescript:i=pe("Typescript");break}return{name:i,value:n}})},{type:"list",name:"multidevice",message:"Which devices is the project intended for?",choices:[{name:"Web page",value:!1},{name:"Web page + Desktop + Mobile (Tauri)",value:!0}]},{type:"input",name:"identifier",message:"Project identifier:",default:`com.${e}.app`,required:!0,when:({multidevice:t})=>t}])}function Wr(e){return e?.trim().replace(/\/+$/g,"")}function cx(e){const t=I.readdirSync(e);return t.length===0||t.length===1&&t[0]===".git"}function lx(e){if(I.existsSync(e))for(const t of I.readdirSync(e))t!==".git"&&I.rmSync(M.resolve(e,t),{recursive:!0,force:!0})}function fx(e){return/^(?:@[a-z\d\-*~][a-z\d\-*._~]*\/)?[a-z\d\-~][a-z\d\-._~]*$/.test(e)}function Dx(e){return e.trim().toLowerCase().replace(/\s+/g,"-").replace(/^[._]/,"").replace(/[^a-z\d\-~]+/g,"-")}async function dx({argTargetDir:e,targetDir:t}){const n=()=>t==="."?M.basename(M.resolve()):t;let i=await re.prompt([{type:"input",name:"projectName",message:"Project name:",default:Vr,required:!0,transformer:r=>Wr(r)||Vr,when:()=>!e,validate:r=>r?!0:"Project name cannot be empty"},{type:"input",name:"description",message:"Project description:",default:"A new game project"},{type:"input",name:"packageName",message:"Package name:",default:()=>Dx(n()),validate:r=>fx(r)||"Invalid package name. The name can only include URL-friendly characters."},{type:"list",name:"overwrite",message:"Overwrite existing files?",default:"yes",choices:[{description:"Remove existing files and continue",name:"Yes",value:T0.Yes},{description:"Keep existing files and continue",name:"Ignore",value:T0.No},{description:"Cancel operation",name:"Cancel",value:T0.Cancel}],when:({packageName:r=Gr})=>I.existsSync(r)&&!cx(r)}]);if(i.overwrite===T0.Cancel)throw new Error(zt("\u2716")+" Operation cancelled");return i}const hx=process.cwd(),px={_gitignore:".gitignore"};async function Ex(e){let t=e||Gr,n,{description:i,overwrite:r,packageName:o,projectName:x}=await dx({argTargetDir:e,targetDir:t}),{UIFramework:a,gameType:s,narrativeLanguage:u,multidevice:c,identifier:f}=await ux({packageName:o}),l;switch(s){case It.VisualNovel:switch(a){case a0.React:switch(u){case t0.Typescript:c?l="template-react-vite-muijoy-tauri":l="template-react-vite-muijoy",n="src/labels/startLabel.ts";break;case t0.Ink:c?l="template-react-vite-muijoy-ink-tauri":l="template-react-vite-muijoy-ink",n="src/ink_labels/start.ink";break;case t0.Renpy:throw new Error("There are no templates for this narrative language");default:throw new Error("Unknown narrative language")}break;case a0.Vue:case a0.Angular:throw new Error("There are no templates for this game type and UI framework");default:throw new Error("Unknown UI framework")}break;default:throw new Error("Unknown game type")}const D=M.join(hx,t);r===T0.Yes?lx(D):I.existsSync(D)||I.mkdirSync(D,{recursive:!0}),console.log(`
|
|
51
51
|
Scaffolding project in ${D}...`);const h=M.resolve(ni(import.meta.url),"../..",`${l}`),d=(C,p)=>{const m=M.join(D,px[C]??C);p?I.writeFileSync(m,p):zr(M.join(h,C),m)},E=I.readdirSync(h);for(const C of E)switch(C){case"package.json":case"vite.config.ts":case"index.html":let p=I.readFileSync(M.join(h,C),"utf-8");p=p.replace(/my-app-package-name/g,o),p=p.replace(/my-app-description/g,i),p=p.replace(/my-app-project-name/g,x),d(C,p);break;case".git":case"package-lock.json":break;default:d(C)}const F=M.join(D,"src-tauri");if(I.existsSync(F)){const C=I.readdirSync(F);for(const p of C)switch(p){case"Cargo.lock":case"Cargo.toml":case"tauri.conf.json":let m=I.readFileSync(M.join(F,p),"utf-8");m=m.replace(/my-app-package-name/g,o),m=m.replace(/my-app-description/g,i),m=m.replace(/my-app-project-name/g,x),m=m.replace(/com.my-app-project-name.app/g,f),d(M.join("src-tauri",p),m)}}const b=M.join(D,"_github");return I.existsSync(b)&&I.renameSync(b,M.join(D,".github")),console.log("Done."),{rootFolder:D,fileToOpen:n}}function bx(e,t){I.mkdirSync(t,{recursive:!0});for(const n of I.readdirSync(e)){const i=M.resolve(e,n),r=M.resolve(t,n);zr(i,r)}}function zr(e,t){I.statSync(e).isDirectory()?bx(e,t):I.copyFileSync(e,t)}function Fx(e){if(!e)return;const t=e.split(" ")[0].split("/");return{name:t[0],version:t[1]}}const Yr=$i(process.argv.slice(2),{default:{help:!1},alias:{h:"help",t:"template"},string:["_"]}),Hr=process.cwd(),mx=`Usage: create-pixi-vn [OPTION]... [DIRECTORY]
|
|
52
52
|
|
|
53
53
|
Create a new Pixi\u2019VN project.
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "create-pixi-vn",
|
|
3
3
|
"description": "Create a new Pixi’VN project",
|
|
4
|
-
"version": "1.0.
|
|
4
|
+
"version": "1.0.4",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "GPL-3.0",
|
|
7
7
|
"author": "DRincs-Productions",
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
"files": [
|
|
13
13
|
"index.js",
|
|
14
14
|
"template-react-vite-muijoy",
|
|
15
|
-
"template-react-
|
|
16
|
-
"template-react-
|
|
15
|
+
"template-react-vite-muijoy-ink",
|
|
16
|
+
"template-react-vite-muijoy-ink-tauri",
|
|
17
17
|
"template-react-vite-muijoy",
|
|
18
18
|
"template-react-vite-muijoy-electron",
|
|
19
19
|
"template-react-vite-muijoy-tauri",
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
import DeleteIcon from '@mui/icons-material/Delete';
|
|
2
|
+
import DownloadIcon from '@mui/icons-material/Download';
|
|
3
|
+
import SaveAsIcon from '@mui/icons-material/SaveAs';
|
|
4
|
+
import UnarchiveIcon from '@mui/icons-material/Unarchive';
|
|
5
|
+
import { AspectRatio, IconButton, Skeleton, Stack, useTheme } from "@mui/joy";
|
|
6
|
+
import { useTranslation } from 'react-i18next';
|
|
7
|
+
import { useLocation } from 'react-router-dom';
|
|
8
|
+
import TypographyShadow from "../components/TypographyShadow";
|
|
9
|
+
import GameSaveData from '../models/GameSaveData';
|
|
10
|
+
import useQuerySaves from '../use_query/useQuerySaves';
|
|
11
|
+
import { downloadGameSave } from '../utilities/save-utility';
|
|
12
|
+
|
|
13
|
+
export default function GameSaveSlot({ saveId, onDelete, onLoad, onOverwriteSave, onSave }: {
|
|
14
|
+
saveId: number,
|
|
15
|
+
onDelete: () => Promise<void> | void,
|
|
16
|
+
onSave: () => Promise<void> | void,
|
|
17
|
+
onOverwriteSave: (data: GameSaveData) => Promise<void> | void,
|
|
18
|
+
onLoad: (saveData: GameSaveData) => Promise<void> | void,
|
|
19
|
+
}) {
|
|
20
|
+
const { t } = useTranslation(["ui"]);
|
|
21
|
+
const {
|
|
22
|
+
isLoading,
|
|
23
|
+
data: saveData,
|
|
24
|
+
isError,
|
|
25
|
+
} = useQuerySaves({ id: saveId })
|
|
26
|
+
let location = useLocation();
|
|
27
|
+
|
|
28
|
+
if (isLoading) {
|
|
29
|
+
return (
|
|
30
|
+
<AspectRatio
|
|
31
|
+
sx={{
|
|
32
|
+
borderRadius: 10,
|
|
33
|
+
margin: { xs: 1, sm: 2, md: 1, lg: 2 },
|
|
34
|
+
}}
|
|
35
|
+
>
|
|
36
|
+
<Skeleton />
|
|
37
|
+
</AspectRatio>
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
if (!saveData || isError) {
|
|
42
|
+
return (
|
|
43
|
+
<AspectRatio
|
|
44
|
+
sx={{
|
|
45
|
+
borderRadius: 10,
|
|
46
|
+
margin: { xs: 1, sm: 2, md: 1, lg: 2 },
|
|
47
|
+
}}
|
|
48
|
+
>
|
|
49
|
+
<IconButton
|
|
50
|
+
variant="soft"
|
|
51
|
+
sx={{
|
|
52
|
+
height: "100%",
|
|
53
|
+
width: "100%",
|
|
54
|
+
}}
|
|
55
|
+
onClick={onSave}
|
|
56
|
+
disabled={location.pathname == "/"}
|
|
57
|
+
>
|
|
58
|
+
<SaveAsIcon sx={{ fontSize: '3rem', opacity: 0.2 }} />
|
|
59
|
+
</IconButton>
|
|
60
|
+
</AspectRatio>
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
return (
|
|
65
|
+
<AspectRatio
|
|
66
|
+
objectFit="contain"
|
|
67
|
+
sx={{
|
|
68
|
+
borderRadius: 10,
|
|
69
|
+
margin: { xs: 1, sm: 2, md: 1, lg: 2 },
|
|
70
|
+
}}
|
|
71
|
+
>
|
|
72
|
+
<img
|
|
73
|
+
src={saveData.image}
|
|
74
|
+
style={{
|
|
75
|
+
backgroundColor: "#303030",
|
|
76
|
+
pointerEvents: "none",
|
|
77
|
+
userSelect: "none",
|
|
78
|
+
}}
|
|
79
|
+
/>
|
|
80
|
+
<Stack
|
|
81
|
+
position={"absolute"}
|
|
82
|
+
top={10}
|
|
83
|
+
left={10}
|
|
84
|
+
sx={{
|
|
85
|
+
pointerEvents: "none",
|
|
86
|
+
userSelect: "none",
|
|
87
|
+
}}
|
|
88
|
+
>
|
|
89
|
+
<TypographyShadow
|
|
90
|
+
level="h2"
|
|
91
|
+
>
|
|
92
|
+
{saveData.name}
|
|
93
|
+
</TypographyShadow>
|
|
94
|
+
<TypographyShadow>
|
|
95
|
+
{saveData.date.toLocaleDateString()}
|
|
96
|
+
</TypographyShadow>
|
|
97
|
+
<TypographyShadow>
|
|
98
|
+
{saveData.date.toLocaleTimeString()}
|
|
99
|
+
</TypographyShadow>
|
|
100
|
+
<TypographyShadow>
|
|
101
|
+
{`${t("save_slot")} ${saveId + 1}`}
|
|
102
|
+
</TypographyShadow>
|
|
103
|
+
</Stack>
|
|
104
|
+
<Stack
|
|
105
|
+
direction={"row"}
|
|
106
|
+
position={"absolute"}
|
|
107
|
+
bottom={10}
|
|
108
|
+
right={10}
|
|
109
|
+
>
|
|
110
|
+
<IconButton
|
|
111
|
+
onClick={() => {
|
|
112
|
+
downloadGameSave(saveData)
|
|
113
|
+
}}
|
|
114
|
+
>
|
|
115
|
+
<DownloadIcon
|
|
116
|
+
fontSize={"large"}
|
|
117
|
+
sx={{
|
|
118
|
+
color: useTheme().palette.neutral[300],
|
|
119
|
+
}}
|
|
120
|
+
/>
|
|
121
|
+
</IconButton>
|
|
122
|
+
<IconButton
|
|
123
|
+
onClick={() => onOverwriteSave(saveData)}
|
|
124
|
+
>
|
|
125
|
+
<SaveAsIcon
|
|
126
|
+
fontSize={"large"}
|
|
127
|
+
sx={{
|
|
128
|
+
color: useTheme().palette.neutral[300],
|
|
129
|
+
}}
|
|
130
|
+
/>
|
|
131
|
+
</IconButton>
|
|
132
|
+
<IconButton
|
|
133
|
+
onClick={() => {
|
|
134
|
+
onLoad(saveData)
|
|
135
|
+
}}
|
|
136
|
+
>
|
|
137
|
+
<UnarchiveIcon
|
|
138
|
+
fontSize={"large"}
|
|
139
|
+
sx={{
|
|
140
|
+
color: useTheme().palette.neutral[300],
|
|
141
|
+
}}
|
|
142
|
+
/>
|
|
143
|
+
</IconButton>
|
|
144
|
+
</Stack>
|
|
145
|
+
<Stack
|
|
146
|
+
direction={"row"}
|
|
147
|
+
position={"absolute"}
|
|
148
|
+
top={10}
|
|
149
|
+
right={10}
|
|
150
|
+
>
|
|
151
|
+
<IconButton
|
|
152
|
+
color="danger"
|
|
153
|
+
size="md"
|
|
154
|
+
onClick={onDelete}
|
|
155
|
+
>
|
|
156
|
+
<DeleteIcon
|
|
157
|
+
fontSize={"large"}
|
|
158
|
+
/>
|
|
159
|
+
</IconButton>
|
|
160
|
+
</Stack>
|
|
161
|
+
</AspectRatio>
|
|
162
|
+
);
|
|
163
|
+
}
|
|
@@ -63,7 +63,7 @@ export default function NextButton() {
|
|
|
63
63
|
setSkip(false)
|
|
64
64
|
nextOnClick()
|
|
65
65
|
}
|
|
66
|
-
}, [])
|
|
66
|
+
}, [nextOnClick])
|
|
67
67
|
|
|
68
68
|
useEffect(() => {
|
|
69
69
|
window.addEventListener("keypress", onkeypress);
|
|
@@ -73,7 +73,7 @@ export default function NextButton() {
|
|
|
73
73
|
window.removeEventListener("keypress", onkeypress);
|
|
74
74
|
window.removeEventListener("keyup", onkeyup);
|
|
75
75
|
};
|
|
76
|
-
}, []);
|
|
76
|
+
}, [onkeypress, onkeyup]);
|
|
77
77
|
|
|
78
78
|
return (
|
|
79
79
|
<Button
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import ExitToAppIcon from '@mui/icons-material/ExitToApp';
|
|
2
|
+
import { Button, Stack, Typography } from "@mui/joy";
|
|
3
|
+
import { useState } from 'react';
|
|
4
|
+
import { useTranslation } from 'react-i18next';
|
|
5
|
+
import { useLocation } from 'react-router-dom';
|
|
6
|
+
import { useSetRecoilState } from 'recoil';
|
|
7
|
+
import { openSettingsState } from '../atoms/openSettingsState';
|
|
8
|
+
import ModalDialogCustom from '../components/ModalDialog';
|
|
9
|
+
import { gameEnd } from '../utilities/actions-utility';
|
|
10
|
+
import { useMyNavigate } from '../utilities/navigate-utility';
|
|
11
|
+
|
|
12
|
+
export default function ReturnMainMenuButton() {
|
|
13
|
+
const openSettings = useSetRecoilState(openSettingsState);
|
|
14
|
+
const navigate = useMyNavigate();
|
|
15
|
+
const [openDialog, setOpenDialog] = useState(false)
|
|
16
|
+
const { t } = useTranslation(["ui"]);
|
|
17
|
+
|
|
18
|
+
const location = useLocation();
|
|
19
|
+
if (location.pathname === '/') {
|
|
20
|
+
return null
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
return (
|
|
24
|
+
<>
|
|
25
|
+
<Stack
|
|
26
|
+
direction="row"
|
|
27
|
+
justifyContent="space-between"
|
|
28
|
+
useFlexGap
|
|
29
|
+
spacing={1}
|
|
30
|
+
>
|
|
31
|
+
<Button
|
|
32
|
+
variant="outlined"
|
|
33
|
+
color="danger"
|
|
34
|
+
startDecorator={<ExitToAppIcon />}
|
|
35
|
+
onClick={() => setOpenDialog(true)}
|
|
36
|
+
>
|
|
37
|
+
{t("return_main_menu")}
|
|
38
|
+
</Button>
|
|
39
|
+
</Stack>
|
|
40
|
+
<ModalDialogCustom
|
|
41
|
+
open={openDialog}
|
|
42
|
+
setOpen={setOpenDialog}
|
|
43
|
+
color='danger'
|
|
44
|
+
head={<Typography level="h4"
|
|
45
|
+
startDecorator={<ExitToAppIcon />}
|
|
46
|
+
>
|
|
47
|
+
{t("attention")}
|
|
48
|
+
</Typography>}
|
|
49
|
+
actions={<>
|
|
50
|
+
<Button
|
|
51
|
+
key={'exit'}
|
|
52
|
+
color='danger'
|
|
53
|
+
variant="outlined"
|
|
54
|
+
onClick={() => {
|
|
55
|
+
gameEnd(navigate)
|
|
56
|
+
openSettings(false)
|
|
57
|
+
setOpenDialog(false)
|
|
58
|
+
}}
|
|
59
|
+
startDecorator={<ExitToAppIcon />}
|
|
60
|
+
>
|
|
61
|
+
{t("exit")}
|
|
62
|
+
</Button>
|
|
63
|
+
<Button
|
|
64
|
+
key={'cancel'}
|
|
65
|
+
color="neutral"
|
|
66
|
+
variant="plain"
|
|
67
|
+
onClick={() => setOpenDialog(false)}
|
|
68
|
+
>
|
|
69
|
+
{t("cancel")}
|
|
70
|
+
</Button>
|
|
71
|
+
</>}
|
|
72
|
+
>
|
|
73
|
+
<Typography>
|
|
74
|
+
{t("you_sure_to_return_main_menu")}
|
|
75
|
+
</Typography>
|
|
76
|
+
</ModalDialogCustom>
|
|
77
|
+
</>
|
|
78
|
+
);
|
|
79
|
+
}
|
|
@@ -1,23 +1,24 @@
|
|
|
1
1
|
import { useTheme } from "@mui/joy";
|
|
2
2
|
import { motion, Variants } from "motion/react";
|
|
3
|
-
import { useMemo, useRef } from "react";
|
|
3
|
+
import { Key, useMemo, useRef } from "react";
|
|
4
4
|
import Markdown from "react-markdown";
|
|
5
5
|
import rehypeRaw from "rehype-raw";
|
|
6
6
|
import remarkGfm from "remark-gfm";
|
|
7
7
|
|
|
8
|
-
function TypewriterInternal({ children, letterVariants, dadElement, scrollOnLastItem }: {
|
|
8
|
+
function TypewriterInternal({ children, letterVariants, dadElement, scrollOnLastItem, key }: {
|
|
9
9
|
children: any
|
|
10
10
|
letterVariants: Variants
|
|
11
11
|
dadElement: (children: JSX.Element | JSX.Element[]) => JSX.Element | JSX.Element[]
|
|
12
12
|
isRoot?: boolean
|
|
13
13
|
scrollOnLastItem?: (scrollTop: number) => void
|
|
14
|
+
key?: Key | null | undefined
|
|
14
15
|
}) {
|
|
15
16
|
if (typeof children === "string") {
|
|
16
17
|
const spanList = children.split("").map((char, i) => {
|
|
17
18
|
const ref = useRef<HTMLSpanElement>(null);
|
|
18
19
|
return <motion.span
|
|
19
20
|
ref={ref}
|
|
20
|
-
key={`span-${char}-${i}`}
|
|
21
|
+
key={`span-${key}-${char}-${i}`}
|
|
21
22
|
variants={letterVariants}
|
|
22
23
|
onAnimationComplete={scrollOnLastItem ? () => {
|
|
23
24
|
if (ref.current?.offsetParent) {
|
|
@@ -37,7 +38,7 @@ function TypewriterInternal({ children, letterVariants, dadElement, scrollOnLast
|
|
|
37
38
|
const ref = useRef<HTMLSpanElement>(null);
|
|
38
39
|
return <motion.span
|
|
39
40
|
ref={ref}
|
|
40
|
-
key={`span-${char}-${i}`}
|
|
41
|
+
key={`span-${key}-${char}-${i}`}
|
|
41
42
|
variants={letterVariants}
|
|
42
43
|
onAnimationComplete={scrollOnLastItem ? () => {
|
|
43
44
|
if (ref.current?.offsetParent) {
|
|
@@ -86,26 +87,31 @@ export default function Typewriter({ text, delay = 0, onAnimationComplete, onAni
|
|
|
86
87
|
remarkPlugins={[remarkGfm]}
|
|
87
88
|
rehypePlugins={[rehypeRaw]}
|
|
88
89
|
components={{
|
|
89
|
-
p: ({ children }) => {
|
|
90
|
+
p: ({ children, id }) => {
|
|
90
91
|
return <TypewriterInternal
|
|
92
|
+
key={id}
|
|
91
93
|
children={children}
|
|
92
94
|
letterVariants={letterVariants}
|
|
93
95
|
scrollOnLastItem={scroll}
|
|
94
96
|
dadElement={(children) => {
|
|
95
97
|
if (Array.isArray(children)) {
|
|
96
|
-
children.push(<motion.br
|
|
98
|
+
children.push(<motion.br
|
|
99
|
+
key={`br-${id}`}
|
|
100
|
+
/>)
|
|
97
101
|
return children
|
|
98
102
|
}
|
|
99
103
|
return children
|
|
100
104
|
}}
|
|
101
105
|
/>
|
|
102
106
|
},
|
|
103
|
-
a: ({ children, href, style }) => {
|
|
107
|
+
a: ({ children, href, style, id }) => {
|
|
104
108
|
return <TypewriterInternal
|
|
109
|
+
key={id}
|
|
105
110
|
children={children}
|
|
106
111
|
letterVariants={letterVariants}
|
|
107
112
|
scrollOnLastItem={scroll}
|
|
108
113
|
dadElement={(children) => <motion.a
|
|
114
|
+
key={`a-${id}`}
|
|
109
115
|
href={href}
|
|
110
116
|
target="_blank"
|
|
111
117
|
style={{
|
|
@@ -119,12 +125,14 @@ export default function Typewriter({ text, delay = 0, onAnimationComplete, onAni
|
|
|
119
125
|
}
|
|
120
126
|
/>
|
|
121
127
|
},
|
|
122
|
-
code: ({ children, style }) => {
|
|
128
|
+
code: ({ children, style, id }) => {
|
|
123
129
|
return <TypewriterInternal
|
|
130
|
+
key={id}
|
|
124
131
|
children={children}
|
|
125
132
|
letterVariants={letterVariants}
|
|
126
133
|
scrollOnLastItem={scroll}
|
|
127
134
|
dadElement={(children) => <motion.code
|
|
135
|
+
key={`code-${id}`}
|
|
128
136
|
style={{
|
|
129
137
|
...style,
|
|
130
138
|
backgroundColor: useTheme().palette.neutral[600],
|
|
@@ -137,12 +145,14 @@ export default function Typewriter({ text, delay = 0, onAnimationComplete, onAni
|
|
|
137
145
|
}
|
|
138
146
|
/>
|
|
139
147
|
},
|
|
140
|
-
ul: ({ children, style }) => {
|
|
148
|
+
ul: ({ children, style, id }) => {
|
|
141
149
|
return <TypewriterInternal
|
|
150
|
+
key={id}
|
|
142
151
|
children={children}
|
|
143
152
|
letterVariants={letterVariants}
|
|
144
153
|
scrollOnLastItem={scroll}
|
|
145
154
|
dadElement={(children) => <motion.ul
|
|
155
|
+
key={`ul-${id}`}
|
|
146
156
|
style={{
|
|
147
157
|
...style,
|
|
148
158
|
margin: 0,
|
|
@@ -154,12 +164,14 @@ export default function Typewriter({ text, delay = 0, onAnimationComplete, onAni
|
|
|
154
164
|
}
|
|
155
165
|
/>
|
|
156
166
|
},
|
|
157
|
-
li: ({ children, style }) => {
|
|
167
|
+
li: ({ children, style, id }) => {
|
|
158
168
|
return <TypewriterInternal
|
|
169
|
+
key={id}
|
|
159
170
|
children={children}
|
|
160
171
|
letterVariants={letterVariants}
|
|
161
172
|
scrollOnLastItem={scroll}
|
|
162
173
|
dadElement={(children) => <motion.li
|
|
174
|
+
key={`li-${id}`}
|
|
163
175
|
style={style}
|
|
164
176
|
variants={letterVariants}
|
|
165
177
|
>
|
|
@@ -168,12 +180,14 @@ export default function Typewriter({ text, delay = 0, onAnimationComplete, onAni
|
|
|
168
180
|
}
|
|
169
181
|
/>
|
|
170
182
|
},
|
|
171
|
-
strong: ({ children, style }) => {
|
|
183
|
+
strong: ({ children, style, id }) => {
|
|
172
184
|
return <TypewriterInternal
|
|
185
|
+
key={id}
|
|
173
186
|
children={children}
|
|
174
187
|
letterVariants={letterVariants}
|
|
175
188
|
scrollOnLastItem={scroll}
|
|
176
189
|
dadElement={(children) => <motion.strong
|
|
190
|
+
key={`strong-${id}`}
|
|
177
191
|
style={style}
|
|
178
192
|
variants={letterVariants}
|
|
179
193
|
>
|
|
@@ -182,12 +196,14 @@ export default function Typewriter({ text, delay = 0, onAnimationComplete, onAni
|
|
|
182
196
|
}
|
|
183
197
|
/>
|
|
184
198
|
},
|
|
185
|
-
em: ({ children, style }) => {
|
|
199
|
+
em: ({ children, style, id }) => {
|
|
186
200
|
return <TypewriterInternal
|
|
201
|
+
key={id}
|
|
187
202
|
children={children}
|
|
188
203
|
letterVariants={letterVariants}
|
|
189
204
|
scrollOnLastItem={scroll}
|
|
190
205
|
dadElement={(children) => <motion.em
|
|
206
|
+
key={`em-${id}`}
|
|
191
207
|
style={style}
|
|
192
208
|
variants={letterVariants}
|
|
193
209
|
>
|
|
@@ -196,18 +212,21 @@ export default function Typewriter({ text, delay = 0, onAnimationComplete, onAni
|
|
|
196
212
|
}
|
|
197
213
|
/>
|
|
198
214
|
},
|
|
199
|
-
hr: ({ style }) => {
|
|
215
|
+
hr: ({ style, id }) => {
|
|
200
216
|
return <motion.hr
|
|
217
|
+
key={id}
|
|
201
218
|
style={style}
|
|
202
219
|
variants={letterVariants}
|
|
203
220
|
/>
|
|
204
221
|
},
|
|
205
|
-
th: ({ children, style }) => {
|
|
222
|
+
th: ({ children, style, id }) => {
|
|
206
223
|
return <TypewriterInternal
|
|
224
|
+
key={id}
|
|
207
225
|
children={children}
|
|
208
226
|
letterVariants={letterVariants}
|
|
209
227
|
scrollOnLastItem={scroll}
|
|
210
228
|
dadElement={(children) => <motion.th
|
|
229
|
+
key={`th-${id}`}
|
|
211
230
|
style={style}
|
|
212
231
|
variants={letterVariants}
|
|
213
232
|
>
|
|
@@ -216,12 +235,14 @@ export default function Typewriter({ text, delay = 0, onAnimationComplete, onAni
|
|
|
216
235
|
}
|
|
217
236
|
/>
|
|
218
237
|
},
|
|
219
|
-
del: ({ children, style }) => {
|
|
238
|
+
del: ({ children, style, id }) => {
|
|
220
239
|
return <TypewriterInternal
|
|
240
|
+
key={id}
|
|
221
241
|
children={children}
|
|
222
242
|
letterVariants={letterVariants}
|
|
223
243
|
scrollOnLastItem={scroll}
|
|
224
244
|
dadElement={(children) => <motion.del
|
|
245
|
+
key={`del-${id}`}
|
|
225
246
|
style={style}
|
|
226
247
|
variants={letterVariants}
|
|
227
248
|
>
|
|
@@ -230,12 +251,14 @@ export default function Typewriter({ text, delay = 0, onAnimationComplete, onAni
|
|
|
230
251
|
}
|
|
231
252
|
/>
|
|
232
253
|
},
|
|
233
|
-
table: ({ children, style }) => {
|
|
254
|
+
table: ({ children, style, id }) => {
|
|
234
255
|
return <TypewriterInternal
|
|
256
|
+
key={id}
|
|
235
257
|
children={children}
|
|
236
258
|
letterVariants={letterVariants}
|
|
237
259
|
scrollOnLastItem={scroll}
|
|
238
260
|
dadElement={(children) => <motion.table
|
|
261
|
+
key={`table-${id}`}
|
|
239
262
|
style={style}
|
|
240
263
|
variants={letterVariants}
|
|
241
264
|
>
|
|
@@ -244,12 +267,14 @@ export default function Typewriter({ text, delay = 0, onAnimationComplete, onAni
|
|
|
244
267
|
}
|
|
245
268
|
/>
|
|
246
269
|
},
|
|
247
|
-
span: ({ children, style }) => {
|
|
270
|
+
span: ({ children, style, id }) => {
|
|
248
271
|
return <TypewriterInternal
|
|
272
|
+
key={id}
|
|
249
273
|
children={children}
|
|
250
274
|
letterVariants={letterVariants}
|
|
251
275
|
scrollOnLastItem={scroll}
|
|
252
276
|
dadElement={(children) => <motion.span
|
|
277
|
+
key={`span-${id}`}
|
|
253
278
|
style={style}
|
|
254
279
|
variants={letterVariants}
|
|
255
280
|
>
|
|
@@ -258,12 +283,14 @@ export default function Typewriter({ text, delay = 0, onAnimationComplete, onAni
|
|
|
258
283
|
}
|
|
259
284
|
/>
|
|
260
285
|
},
|
|
261
|
-
h1: ({ children, style }) => {
|
|
286
|
+
h1: ({ children, style, id }) => {
|
|
262
287
|
return <TypewriterInternal
|
|
288
|
+
key={id}
|
|
263
289
|
children={children}
|
|
264
290
|
letterVariants={letterVariants}
|
|
265
291
|
scrollOnLastItem={scroll}
|
|
266
292
|
dadElement={(children) => <motion.h1
|
|
293
|
+
key={`h1-${id}`}
|
|
267
294
|
style={{
|
|
268
295
|
...style,
|
|
269
296
|
margin: 0,
|
|
@@ -275,12 +302,14 @@ export default function Typewriter({ text, delay = 0, onAnimationComplete, onAni
|
|
|
275
302
|
}
|
|
276
303
|
/>
|
|
277
304
|
},
|
|
278
|
-
h2: ({ children, style }) => {
|
|
305
|
+
h2: ({ children, style, id }) => {
|
|
279
306
|
return <TypewriterInternal
|
|
307
|
+
key={id}
|
|
280
308
|
children={children}
|
|
281
309
|
letterVariants={letterVariants}
|
|
282
310
|
scrollOnLastItem={scroll}
|
|
283
311
|
dadElement={(children) => <motion.h2
|
|
312
|
+
key={`h2-${id}`}
|
|
284
313
|
style={{
|
|
285
314
|
...style,
|
|
286
315
|
margin: 0,
|
|
@@ -292,12 +321,14 @@ export default function Typewriter({ text, delay = 0, onAnimationComplete, onAni
|
|
|
292
321
|
}
|
|
293
322
|
/>
|
|
294
323
|
},
|
|
295
|
-
h3: ({ children, style }) => {
|
|
324
|
+
h3: ({ children, style, id }) => {
|
|
296
325
|
return <TypewriterInternal
|
|
326
|
+
key={id}
|
|
297
327
|
children={children}
|
|
298
328
|
letterVariants={letterVariants}
|
|
299
329
|
scrollOnLastItem={scroll}
|
|
300
330
|
dadElement={(children) => <motion.h3
|
|
331
|
+
key={`h3-${id}`}
|
|
301
332
|
style={{
|
|
302
333
|
...style,
|
|
303
334
|
margin: 0,
|
|
@@ -309,12 +340,14 @@ export default function Typewriter({ text, delay = 0, onAnimationComplete, onAni
|
|
|
309
340
|
}
|
|
310
341
|
/>
|
|
311
342
|
},
|
|
312
|
-
h4: ({ children, style }) => {
|
|
343
|
+
h4: ({ children, style, id }) => {
|
|
313
344
|
return <TypewriterInternal
|
|
345
|
+
key={id}
|
|
314
346
|
children={children}
|
|
315
347
|
letterVariants={letterVariants}
|
|
316
348
|
scrollOnLastItem={scroll}
|
|
317
349
|
dadElement={(children) => <motion.h4
|
|
350
|
+
key={`h4-${id}`}
|
|
318
351
|
style={{
|
|
319
352
|
...style,
|
|
320
353
|
margin: 0,
|
|
@@ -1,17 +1,17 @@
|
|
|
1
|
-
import { useEffect } from 'react';
|
|
1
|
+
import { useCallback, useEffect } from 'react';
|
|
2
2
|
|
|
3
3
|
export default function GoBackEventInterceptor() {
|
|
4
|
+
const onpopstate = useCallback(() => {
|
|
5
|
+
window.history.forward();
|
|
6
|
+
}, [])
|
|
7
|
+
|
|
4
8
|
useEffect(() => {
|
|
5
9
|
window.addEventListener("popstate", onpopstate);
|
|
6
10
|
|
|
7
11
|
return () => {
|
|
8
12
|
window.removeEventListener("popstate", onpopstate);
|
|
9
13
|
};
|
|
10
|
-
}, []);
|
|
11
|
-
|
|
12
|
-
function onpopstate() {
|
|
13
|
-
window.history.forward();
|
|
14
|
-
}
|
|
14
|
+
}, [onpopstate]);
|
|
15
15
|
|
|
16
16
|
return null
|
|
17
17
|
}
|