From 8ef527af70acaa347e5d642f65f6c399ebffb34b Mon Sep 17 00:00:00 2001 From: Huang Xin Date: Wed, 26 Aug 2026 22:09:41 +0800 Subject: [PATCH] feat(ui): migrate to daisyUI 5 and Tailwind CSS 4 (#5884) * feat(ui): migrate to daisyUI 5 and Tailwind CSS 4 daisyUI 5 requires Tailwind CSS 4, so the configuration moves into globals.css: tailwind.config.ts is gone, and the built-in themes now compile through a small plugin (src/styles/daisyui-themes.ts) that shares one token emitter with the runtime custom theme injector. Keep the rendering identical to daisyUI 4: - themes.ts emits daisyUI 5 --color-* tokens, derives the *-content colors with the v4 formula, and pins the v4 radii, border and depth. - globals.css carries a compat block for the component defaults v5 changed: md field height, small size type, checkbox radius, menu width and line height, disabled non-buttons, toggle width, and the visibility of closed and nested dropdowns. Every rule has zero specificity so utilities keep winning as they did on v3. - Pin the Tailwind 3 color palette for the families the app uses; Tailwind 4 ships oklch values that render noticeably more vivid. - Restore the v3 preflight defaults the UI was tuned on (border and placeholder colors, button cursor) and the v3 hover semantics. Class names are migrated for both upgrades: the v3 renames (shadow, rounded, blur, outline-none, flex-shrink, the important modifier, CSS variables in arbitrary values) and the daisyUI removals (input-bordered, form-control, label-text, tr.hover). Three call sites relied on the old stylesheet order of conflicting utilities and now say what they mean instead. Fixes #5587: daisyUI 5 opts the select into appearance: base-select and themes ::picker(select), so the option popup follows the app theme instead of the operating system. The chromeless settings selects no longer force appearance-none, which would cancel that. The font dropdown's System Fonts sub-list now opens only when its row is activated, and its bottom edge lines up with the parent menu. Co-Authored-By: Claude Opus 5 (1M context) * fix(nix): refresh pnpmDeps hash for the daisyUI 5 lockfile The daisyUI and Tailwind upgrade changes pnpm-lock.yaml, so the pinned fixed-output hash no longer matches. Value taken from the got: line of the nix-deps-check run on this pull request. Co-Authored-By: Claude Opus 5 (1M context) * fix(ui): keep the daisyUI toggle size modifiers The compat rule that restored the v4 track width applied to every toggle, so toggle-sm and toggle-xs were stretched to the medium width: the OPDS catalog manager's auto-download switches came out 48px wide on a 20px track. daisyUI 4 sized each step separately and the steps do not share one ratio, so pin all four. Co-Authored-By: Claude Opus 5 (1M context) * feat(android): require WebView 111 and use btn-contrast for catalog save Tailwind CSS 4 targets Chromium 111 and up, and the oklch fallback that used to cover older WebViews is gone with the daisyUI 5 migration, so raise the webview-upgrade plugin's minSupportedMajor from 92 to 111. Below that the plugin now tells the user their WebView is too old instead of letting the app render with broken colors. Also switch the OPDS catalog dialog's submit button to btn-contrast, which is the design system's primary action for dialogs. Co-Authored-By: Claude Opus 5 (1M context) * feat(ios): require iOS 16.4 Tailwind CSS 4 targets Safari 16.4 and up. Below that, color-mix() and @property are missing, so daisyUI's controls do not degrade gracefully: input borders fall back to currentColor and the toggle geometry collapses, as seen on an iOS 15.8 device. Raising the deployment target keeps those devices on the last build that renders correctly instead of shipping them a broken UI. Covers the Tauri bundle config, the xcodegen project and every target in the generated Xcode project. Co-Authored-By: Claude Opus 5 (1M context) * chore(deps): point the webview-upgrade plugin at the 111 default Picks up readest/tauri-plugin-webview-upgrade#2, which raises the plugin's own defaultMinSupportedMajor to match the minSupportedMajor this app already sets in tauri.conf.json. Co-Authored-By: Claude Opus 5 (1M context) --------- Co-authored-by: Claude Opus 5 (1M context) --- apps/readest-app/DESIGN.md | 28 +- apps/readest-app/components.json | 2 +- apps/readest-app/package.json | 8 +- apps/readest-app/postcss.config.mjs | 3 +- .../apple/Readest.xcodeproj/project.pbxproj | 12 +- .../src-tauri/gen/apple/project.yml | 6 +- .../plugins/tauri-plugin-webview-upgrade | 2 +- apps/readest-app/src-tauri/tauri.conf.json | 4 +- .../components/BookDetailView.test.tsx | 4 +- .../annotation-popup-10-colors-chromium.png | Bin 25105 -> 25645 bytes .../annotation-popup-15-colors-chromium.png | Bin 25105 -> 25645 bytes .../annotation-popup-5-colors-chromium.png | Bin 24137 -> 24652 bytes .../annotation-popup-layout.browser.test.tsx | 5 +- .../daisyui-v5-tokens.browser.test.tsx | 137 ++ .../dropdown-viewport.browser.test.tsx | 2 +- .../font-dropdown-submenu.browser.test.tsx | 70 + .../__tests__/styles/daisyui-themes.test.ts | 33 + .../src/__tests__/styles/themes.test.ts | 133 +- .../app/auth/components/EmailPasswordAuth.tsx | 19 +- .../src/app/auth/components/ProviderLogin.tsx | 2 +- apps/readest-app/src/app/auth/update/page.tsx | 2 +- .../app/library/components/BackupWindow.tsx | 2 +- .../components/BookContextMenuPopup.tsx | 2 +- .../src/app/library/components/BookItem.tsx | 10 +- .../src/app/library/components/Bookshelf.tsx | 4 +- .../library/components/CacheManagerWindow.tsx | 4 +- .../components/FailedImportsDialog.tsx | 8 +- .../src/app/library/components/GroupItem.tsx | 14 +- .../app/library/components/GroupingModal.tsx | 12 +- .../components/ImportFromFolderDialog.tsx | 10 +- .../components/ImportFromUrlDialog.tsx | 6 +- .../src/app/library/components/ImportMenu.tsx | 2 +- .../library/components/ImportMenuPopup.tsx | 2 +- .../library/components/ImportNovelDialog.tsx | 4 +- .../library/components/LibraryEmptyState.tsx | 2 +- .../app/library/components/LibraryHeader.tsx | 8 +- .../components/LibrarySearchResults.tsx | 6 +- .../library/components/MigrateDataWindow.tsx | 10 +- .../app/library/components/NowPlayingBar.tsx | 6 +- .../src/app/library/components/OPDSDialog.tsx | 4 +- .../app/library/components/RecentShelf.tsx | 4 +- .../app/library/components/SetStatusAlert.tsx | 6 +- .../app/library/components/SettingsMenu.tsx | 4 +- .../library/components/ShareBookDialog.tsx | 4 +- .../src/app/library/components/ViewMenu.tsx | 34 +- .../library/components/WebSourcesDialog.tsx | 8 +- .../library/components/feeds/AddFeedModal.tsx | 4 +- .../library/components/feeds/FeedsView.tsx | 6 +- apps/readest-app/src/app/library/page.tsx | 12 +- .../app/opds/components/CatalogManager.tsx | 106 +- .../opds/components/FailedDownloadsDialog.tsx | 4 +- .../src/app/opds/components/FeedView.tsx | 12 +- .../src/app/opds/components/GroupCarousel.tsx | 4 +- .../src/app/opds/components/Navigation.tsx | 8 +- .../app/opds/components/NavigationCard.tsx | 4 +- .../app/opds/components/PublicationCard.tsx | 2 +- .../app/opds/components/PublicationView.tsx | 6 +- .../src/app/opds/components/SearchView.tsx | 8 +- apps/readest-app/src/app/opds/page.tsx | 10 +- .../reader/components/AutoScrollControl.tsx | 4 +- .../src/app/reader/components/BooksGrid.tsx | 2 +- .../app/reader/components/FoliateViewer.tsx | 2 +- .../app/reader/components/FootnotePopup.tsx | 2 +- .../src/app/reader/components/HeaderBar.tsx | 4 +- .../src/app/reader/components/ImageViewer.tsx | 2 +- .../app/reader/components/KOSyncResolver.tsx | 8 +- .../components/PageNavigationButtons.tsx | 16 +- .../src/app/reader/components/ProgressBar.tsx | 2 +- .../app/reader/components/ProofreadRules.tsx | 17 +- .../app/reader/components/SyncInfoDialog.tsx | 2 +- .../src/app/reader/components/TableViewer.tsx | 2 +- .../annotator/DictionaryResultsView.tsx | 2 +- .../components/annotator/DictionarySheet.tsx | 2 +- .../annotator/ExportMarkdownDialog.tsx | 114 +- .../components/annotator/HighlightOptions.tsx | 8 +- .../annotator/ImportAnnotationsDialog.tsx | 4 +- .../components/annotator/ProofreadPopup.tsx | 4 +- .../components/annotator/TranslatorPopup.tsx | 2 +- .../audiobook/AudiobookChapterPicker.tsx | 8 +- .../audiobook/AudiobookPairingDialog.tsx | 26 +- .../components/footerbar/ColorPanel.tsx | 4 +- .../reader/components/footerbar/FooterBar.tsx | 4 +- .../components/footerbar/PageJumpInput.tsx | 2 +- .../hardcover/HardcoverLinkDialog.tsx | 16 +- .../reader/components/notebook/Notebook.tsx | 8 +- .../reader/components/notebook/SearchBar.tsx | 2 +- .../components/paragraph/ParagraphOverlay.tsx | 2 +- .../reader/components/rsvp/RSVPOverlay.tsx | 12 +- .../components/sidebar/AnnotationsToolbar.tsx | 2 +- .../reader/components/sidebar/BookCard.tsx | 4 +- .../reader/components/sidebar/BookMenu.tsx | 2 +- .../components/sidebar/BooknoteItem.tsx | 2 +- .../components/sidebar/BooknoteView.tsx | 2 +- .../components/sidebar/ChatHistoryView.tsx | 7 +- .../app/reader/components/sidebar/Content.tsx | 4 +- .../app/reader/components/sidebar/Header.tsx | 2 +- .../reader/components/sidebar/SearchBar.tsx | 14 +- .../components/sidebar/SearchOptions.tsx | 2 +- .../components/sidebar/SearchResults.tsx | 2 +- .../app/reader/components/sidebar/SideBar.tsx | 2 +- .../app/reader/components/sidebar/TOCView.tsx | 2 +- .../components/tts/TTSFollowIndicator.tsx | 2 +- .../reader/components/tts/TTSPlayerSheet.tsx | 8 +- apps/readest-app/src/app/send/page.tsx | 10 +- .../app/user/components/AccountActions.tsx | 2 +- .../src/app/user/components/PlanCard.tsx | 4 +- .../app/user/components/PlansComparison.tsx | 2 +- .../user/components/SharedLinksSection.tsx | 6 +- .../app/user/components/StorageManager.tsx | 18 +- .../src/app/user/components/UserInfo.tsx | 4 +- .../src/components/AboutWindow.tsx | 2 +- apps/readest-app/src/components/BookCover.tsx | 2 +- apps/readest-app/src/components/Button.tsx | 2 +- apps/readest-app/src/components/Dialog.tsx | 10 +- .../src/components/KeyboardShortcutsHelp.tsx | 4 +- apps/readest-app/src/components/MenuItem.tsx | 2 +- .../src/components/ModalPortal.tsx | 2 +- .../src/components/SegmentedControl.tsx | 2 +- apps/readest-app/src/components/Select.tsx | 2 +- .../readest-app/src/components/TextButton.tsx | 2 +- .../readest-app/src/components/TextEditor.tsx | 2 +- apps/readest-app/src/components/Toast.tsx | 10 +- .../src/components/UpdaterWindow.tsx | 8 +- .../src/components/assistant/MarkdownText.tsx | 2 +- .../src/components/assistant/Thread.tsx | 18 +- .../command-palette/CommandPalette.tsx | 2 +- .../command-palette/HighlightChars.tsx | 2 +- .../localsend/ReceiveRequestDialog.tsx | 2 +- .../components/metadata/BookDetailEdit.tsx | 16 +- .../components/metadata/BookDetailModal.tsx | 2 +- .../components/metadata/BookDetailView.tsx | 8 +- .../src/components/metadata/FormField.tsx | 4 +- .../components/primitives/button-group.tsx | 2 +- .../src/components/primitives/button.tsx | 10 +- .../src/components/primitives/command.tsx | 4 +- .../src/components/primitives/dialog.tsx | 2 +- .../components/primitives/dropdown-menu.tsx | 12 +- .../src/components/primitives/hover-card.tsx | 2 +- .../src/components/primitives/input-group.tsx | 2 +- .../src/components/primitives/input.tsx | 2 +- .../src/components/primitives/select.tsx | 6 +- .../src/components/primitives/textarea.tsx | 2 +- .../src/components/settings/AIPanel.tsx | 24 +- .../src/components/settings/AppLockDialog.tsx | 4 +- .../settings/CustomDictionaries.tsx | 24 +- .../src/components/settings/CustomFonts.tsx | 6 +- .../src/components/settings/FontDropDown.tsx | 20 +- .../components/settings/IntegrationsPanel.tsx | 25 +- .../src/components/settings/LayoutPanel.tsx | 4 +- .../src/components/settings/MiscPanel.tsx | 12 +- .../src/components/settings/NumberInput.tsx | 6 +- .../settings/PageTurnerSettings.tsx | 4 +- .../components/settings/SettingsDialog.tsx | 6 +- .../src/components/settings/SubPageHeader.tsx | 7 +- .../settings/integrations/ABSForm.tsx | 16 +- .../settings/integrations/BookOrbitForm.tsx | 24 +- .../settings/integrations/GoogleDriveForm.tsx | 4 +- .../settings/integrations/HardcoverForm.tsx | 6 +- .../settings/integrations/ICloudForm.tsx | 4 +- .../settings/integrations/KOSyncForm.tsx | 24 +- .../settings/integrations/OneDriveForm.tsx | 4 +- .../settings/integrations/ReadwiseForm.tsx | 8 +- .../settings/integrations/S3Form.tsx | 18 +- .../integrations/SendToReadestForm.tsx | 6 +- .../integrations/WebDAVBrowsePane.tsx | 20 +- .../settings/integrations/WebDAVForm.tsx | 16 +- .../settings/primitives/NavigationRow.tsx | 6 +- .../settings/primitives/SettingsInput.tsx | 10 +- .../settings/primitives/SettingsSelect.tsx | 10 +- .../components/settings/primitives/Tips.tsx | 2 +- .../theme/BackgroundTextureSelector.tsx | 4 +- .../components/settings/theme/ColorInput.tsx | 4 +- .../settings/theme/HighlightColorsEditor.tsx | 2 +- .../components/settings/theme/ThemeEditor.tsx | 4 +- .../settings/theme/ThemeModeSelector.tsx | 4 +- apps/readest-app/src/hooks/useTheme.ts | 23 +- .../src/services/reedy/ui/Composer.tsx | 2 +- .../src/services/reedy/ui/parts/TextPart.tsx | 4 +- .../services/reedy/ui/parts/ToolCallPart.tsx | 6 +- apps/readest-app/src/styles/daisyui-themes.ts | 19 + apps/readest-app/src/styles/globals.css | 2192 ++++++++++------- apps/readest-app/src/styles/themes.ts | 217 +- apps/readest-app/tailwind.config.ts | 59 - nix/package.nix | 2 +- pnpm-lock.yaml | 715 +++--- 185 files changed, 2746 insertions(+), 2201 deletions(-) create mode 100644 apps/readest-app/src/__tests__/components/daisyui-v5-tokens.browser.test.tsx create mode 100644 apps/readest-app/src/__tests__/components/font-dropdown-submenu.browser.test.tsx create mode 100644 apps/readest-app/src/__tests__/styles/daisyui-themes.test.ts create mode 100644 apps/readest-app/src/styles/daisyui-themes.ts delete mode 100644 apps/readest-app/tailwind.config.ts diff --git a/apps/readest-app/DESIGN.md b/apps/readest-app/DESIGN.md index b727ff691..ceb9b5ad4 100644 --- a/apps/readest-app/DESIGN.md +++ b/apps/readest-app/DESIGN.md @@ -276,7 +276,7 @@ className="btn btn-ghost" className={clsx( 'rounded-lg px-4 py-2 text-sm font-medium', 'hover:bg-base-200 transition-colors duration-150', - 'focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-base-content/15', + 'focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-base-content/15', )} ``` @@ -331,7 +331,7 @@ Anatomy: 'transition-colors duration-150', 'hover:border-base-300 hover:bg-base-200/60', 'active:bg-base-200/80', - 'focus-visible:ring-base-content/15 focus-visible:outline-none focus-visible:ring-2', + 'focus-visible:ring-base-content/15 focus-visible:outline-hidden focus-visible:ring-2', )} > ` +- **Selects:** drop `eink-bordered`. Add + `bg-transparent! bg-none!` to suppress daisyui's background chevron (its + `.select` already hides the native arrow; never add `appearance-none!`, that + would cancel the `appearance: base-select` popup that keeps the options + themed instead of OS-drawn, #5587). Render a real `` icon at the cell's trailing edge for the affordance — see "End-aligned values" below. -- **Inputs:** drop `input-bordered` and `eink-bordered`. Add `!bg-transparent` - with `hover:!bg-base-200/60 focus:!bg-base-200/60` so the field still - signals interactability. Use `text-end` and `!pe-0` so the value sits +- **Inputs:** drop `eink-bordered`. Add `bg-transparent!` + with `hover:bg-base-200/60! focus:bg-base-200/60!` so the field still + signals interactability. Use `text-end` and `pe-0!` so the value sits flush against the row's trailing edge. - **Toggles:** untouched — they're already chromeless. @@ -564,18 +566,18 @@ with the card's own border and double-stack with adjacent rows. ```tsx
- {/* options */}
``` > **Why so many `!` overrides?** daisyui's `.select` and `.input` apply -> `border-width: 1px` + `border-color` (transparent at rest, `var(--bc)` on +> `border-width: 1px` + `border-color` (base-content/20 at rest, `var(--color-base-content)` on > focus), plus `outline`, `box-shadow`, and `ring` chrome on focus. To make > the control truly chromeless inside a boxed list, you need to kill all > four properties. Missing any of them — especially `border-0` — leaves a @@ -590,7 +592,7 @@ hover/focus bg directly on it. Suppress daisyui's own focus chrome the same way: ```tsx - + ``` > **Why no ring here when §2.7 says "focus needs a visible ring"?** §2.7 is @@ -716,7 +718,7 @@ prefixes. - Every focusable element must have a visible focus indicator. - Custom buttons: - `focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-base-content/15`. + `focus-visible:outline-hidden focus-visible:ring-2 focus-visible:ring-base-content/15`. - Inputs: rely on daisyui's input focus ring; inputs with custom styling use `focus:ring-2 focus:ring-primary/40`. - Don't use `outline-none` without `focus-visible:` replacement. diff --git a/apps/readest-app/components.json b/apps/readest-app/components.json index be276bba6..633abd7b4 100644 --- a/apps/readest-app/components.json +++ b/apps/readest-app/components.json @@ -4,7 +4,7 @@ "rsc": true, "tsx": true, "tailwind": { - "config": "tailwind.config.ts", + "config": "", "css": "src/styles/globals.css", "baseColor": "neutral", "cssVariables": true, diff --git a/apps/readest-app/package.json b/apps/readest-app/package.json index bc295a05b..2c14bccb7 100644 --- a/apps/readest-app/package.json +++ b/apps/readest-app/package.json @@ -226,7 +226,8 @@ "@next/bundle-analyzer": "^15.4.2", "@playwright/test": "^1.60.0", "@sentry/cli": "^2.39.1", - "@tailwindcss/typography": "^0.5.16", + "@tailwindcss/postcss": "^4.3.3", + "@tailwindcss/typography": "^0.5.20", "@tauri-apps/cli": "2.11.4", "@testing-library/dom": "^10.4.0", "@testing-library/react": "^16.3.0", @@ -257,10 +258,9 @@ "@wdio/mocha-framework": "^9.24.0", "@wdio/spec-reporter": "^9.24.0", "@wdio/types": "^9.24.0", - "autoprefixer": "^10.4.20", "caniuse-lite": "^1.0.30001746", "cpx2": "^8.0.0", - "daisyui": "^4.12.24", + "daisyui": "^5.7.22", "dotenv-cli": "^7.4.4", "fast-check": "^4.8.0", "i18next-scanner": "^4.6.0", @@ -274,7 +274,7 @@ "raw-loader": "^4.0.2", "react-server-dom-webpack": "^19.2.8", "serwist": "^9.3.0", - "tailwindcss": "^3.4.18", + "tailwindcss": "^4.3.3", "typescript": "^5.7.2", "vinext": "^0.0.21", "vite": "^7.3.3", diff --git a/apps/readest-app/postcss.config.mjs b/apps/readest-app/postcss.config.mjs index 2ef30fcf4..5d6d8457f 100644 --- a/apps/readest-app/postcss.config.mjs +++ b/apps/readest-app/postcss.config.mjs @@ -1,8 +1,7 @@ /** @type {import('postcss-load-config').Config} */ const config = { plugins: { - tailwindcss: {}, - autoprefixer: {}, + '@tailwindcss/postcss': {}, }, }; diff --git a/apps/readest-app/src-tauri/gen/apple/Readest.xcodeproj/project.pbxproj b/apps/readest-app/src-tauri/gen/apple/Readest.xcodeproj/project.pbxproj index 1ae6e9435..ffbef1ddc 100644 --- a/apps/readest-app/src-tauri/gen/apple/Readest.xcodeproj/project.pbxproj +++ b/apps/readest-app/src-tauri/gen/apple/Readest.xcodeproj/project.pbxproj @@ -584,7 +584,7 @@ ENABLE_BITCODE = NO; "EXCLUDED_ARCHS[sdk=iphoneos*]" = x86_64; INFOPLIST_FILE = ShareExtension/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; + IPHONEOS_DEPLOYMENT_TARGET = 16.4; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -685,7 +685,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; + IPHONEOS_DEPLOYMENT_TARGET = 16.4; MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; MTL_FAST_MATH = YES; ONLY_ACTIVE_ARCH = YES; @@ -776,7 +776,7 @@ GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; GCC_WARN_UNUSED_FUNCTION = YES; GCC_WARN_UNUSED_VARIABLE = YES; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; + IPHONEOS_DEPLOYMENT_TARGET = 16.4; MTL_ENABLE_DEBUG_INFO = NO; MTL_FAST_MATH = YES; PRODUCT_NAME = "$(TARGET_NAME)"; @@ -799,7 +799,7 @@ ENABLE_BITCODE = NO; "EXCLUDED_ARCHS[sdk=iphoneos*]" = x86_64; INFOPLIST_FILE = ReadestWidget/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; + IPHONEOS_DEPLOYMENT_TARGET = 16.4; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -827,7 +827,7 @@ ENABLE_BITCODE = NO; "EXCLUDED_ARCHS[sdk=iphoneos*]" = x86_64; INFOPLIST_FILE = ShareExtension/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; + IPHONEOS_DEPLOYMENT_TARGET = 16.4; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", @@ -855,7 +855,7 @@ ENABLE_BITCODE = NO; "EXCLUDED_ARCHS[sdk=iphoneos*]" = x86_64; INFOPLIST_FILE = ReadestWidget/Info.plist; - IPHONEOS_DEPLOYMENT_TARGET = 15.0; + IPHONEOS_DEPLOYMENT_TARGET = 16.4; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", "@executable_path/Frameworks", diff --git a/apps/readest-app/src-tauri/gen/apple/project.yml b/apps/readest-app/src-tauri/gen/apple/project.yml index 9f0fc6a38..2381e9490 100644 --- a/apps/readest-app/src-tauri/gen/apple/project.yml +++ b/apps/readest-app/src-tauri/gen/apple/project.yml @@ -2,7 +2,7 @@ name: Readest options: bundleIdPrefix: com.bilingify.readest deploymentTarget: - iOS: 15.0 + iOS: 16.4 fileGroups: [../../src] packages: Sentry: @@ -191,7 +191,7 @@ targets: # file was modified during the build", fix it by adding the # auto-derived keys to the source file, not by re-enabling this flag. SWIFT_VERSION: "5.0" - IPHONEOS_DEPLOYMENT_TARGET: 15.0 + IPHONEOS_DEPLOYMENT_TARGET: 16.4 ARCHS: [arm64] VALID_ARCHS: arm64 EXCLUDED_ARCHS[sdk=iphoneos*]: x86_64 @@ -224,7 +224,7 @@ targets: # com.apple.security.application-groups, so the widget reads an empty # snapshot from the App Group and shows only the placeholder book icon. SWIFT_VERSION: "5.0" - IPHONEOS_DEPLOYMENT_TARGET: 15.0 + IPHONEOS_DEPLOYMENT_TARGET: 16.4 ARCHS: [arm64] VALID_ARCHS: arm64 EXCLUDED_ARCHS[sdk=iphoneos*]: x86_64 diff --git a/apps/readest-app/src-tauri/plugins/tauri-plugin-webview-upgrade b/apps/readest-app/src-tauri/plugins/tauri-plugin-webview-upgrade index c7c04abee..bbb5bd33e 160000 --- a/apps/readest-app/src-tauri/plugins/tauri-plugin-webview-upgrade +++ b/apps/readest-app/src-tauri/plugins/tauri-plugin-webview-upgrade @@ -1 +1 @@ -Subproject commit c7c04abee8a12e32823febec44779c075e076e25 +Subproject commit bbb5bd33ef4ab644e915f7264ef15a8da97cb284 diff --git a/apps/readest-app/src-tauri/tauri.conf.json b/apps/readest-app/src-tauri/tauri.conf.json index e0898e276..15f4a4eca 100644 --- a/apps/readest-app/src-tauri/tauri.conf.json +++ b/apps/readest-app/src-tauri/tauri.conf.json @@ -75,7 +75,7 @@ "iOS": { "developmentTeam": "J5W48D69VR", "infoPlist": "./Info-ios.plist", - "minimumSystemVersion": "15.0" + "minimumSystemVersion": "16.4" }, "fileAssociations": [ { @@ -228,7 +228,7 @@ }, "webview-upgrade": { "minUpgradeMajor": 121, - "minSupportedMajor": 92 + "minSupportedMajor": 111 } } } diff --git a/apps/readest-app/src/__tests__/components/BookDetailView.test.tsx b/apps/readest-app/src/__tests__/components/BookDetailView.test.tsx index a34cbc892..908e9d6d1 100644 --- a/apps/readest-app/src/__tests__/components/BookDetailView.test.tsx +++ b/apps/readest-app/src/__tests__/components/BookDetailView.test.tsx @@ -122,9 +122,9 @@ describe('BookDetailView delete dropdown layout', () => { const menu = container.querySelector('.delete-menu'); expect(menu).toBeTruthy(); expect(menu!.className).not.toContain('dropdown-center'); - // It should keep position: relative via the !relative override so it + // It should keep position: relative via the relative! override so it // anchors against the centered parent. - expect(menu!.className).toContain('!relative'); + expect(menu!.className).toContain('relative!'); }); }); diff --git a/apps/readest-app/src/__tests__/components/__screenshots__/annotation-popup-layout.browser.test.tsx/annotation-popup-10-colors-chromium.png b/apps/readest-app/src/__tests__/components/__screenshots__/annotation-popup-layout.browser.test.tsx/annotation-popup-10-colors-chromium.png index 59a65e5493819e6373aeeec9901c6a88667ea7cd..fb04c999ba959564a2b2e67fb2be644029b28efd 100644 GIT binary patch literal 25645 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 aB~cFRs_Grz;lBZSYx)#N`((T2-~I;*4~^OY literal 25105 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 aB~cFRs_Grz;lBZSYx)#N`((T2-~I;*4~^OY literal 25105 zcmbrm1z1#H+b?XOqEZ701B@Vpq@;8UjG!Y8(jg7f4N^)D4bm|n!hnc?bax4el+xWu zgLHjs{6Fuxp7(vvIp6o4b6vV;!>qmbz1H3L{aXYp%FE#2p}ceD$`$kc8gXrkz{X zOQle)GOed=6=h|4UY|=XSJz6k$~4LdUMi`QMt41A`9y^KAk!bGnHA^pB=hnF_vY-S z$7Ju^7w7L(w4I~NQ;5Um%q4a$+K0r!2zd0fhlZKY|8?7njCuCYEh>%ye1jbTc_fD& zguPWu{yQGre&PA&QQ}|?i+{~RTr}{nSsof<{%BvMDy5Jz_aD469GtHA-!MIo}Ln~J? zUsgF+H8GX7#Ca`Ln>uw+g&_@M$NcW z_hbhxyQ6R+V5{&D{wU=TRhFkLi*wcNNM^kV6HSfywoL>MSQDS9NUszE1!#NwpJ#gt z7!0$DRn~|PFwtC>M{J8knhv(?iTs`H9D|h=CqOc+`W3BN`uXd4R!wPsk)2jk?}NdV zk>W)`IFgw_8ZOyd&gM`BD_9#~-xhscMrlAqoJ>R#=-*Cs^D3mfyr@)Kn=gJyqx>mf zN{b6@%sow}Op6Zp+W+mt7o@?skn!?wiw>0qFKVRoyNofCP#mZc5#+D92tb)Iipb2e z=3?tR0q|AXK$o;-rTigW-?w0+y#B6joe@I&Sj32-Q1Eh}Rln$c?pKRJx{0%xwb3fa zTVPjjU5C&bY9{Nj2dz~zVNgeDGWlv4y+X**)zcOitKw1Es4UsIb1(|`pP5^tz|4Mt zVMVNR>`;?LWQe zr{znAZWEDSI-q?QP>eD&mVT>v6qe<`UWaqy1v6nrv|n$2yw~ha1OcKWxcsYdb|o`n zaWS@=o_chfXuQJKq*y0gl|_kt%dl7#uDrg1QC!K$$q6!4AmlcKHP6bxo@OX6EQ%a8 z)}5`Ji5nOi!oYeTLnJKa_)_T6@<8pB^ROy3e=270pc7=65hTklgFu+`B>#NP8^*-fB`{dWv#P`J@8>NK6&Q@bu!pY2bh9Y%3u_cy>5aeZRAk$vnth(I%8NxI?Gi?Dy^($ zXspv3h8Z{%`!2g9VwG!Qe^(!pA=upQ|5pzcUjr6dEOLRdj7bN6@`SuaWp$VRaAS0ue33)5q#C*R#Bl z$-5jPy@w61H-`0H@r{h=TCJ^|{A;$fI__$x87+O6Vj}YZRt1sL4s7?8gWE4b9(v+;*)B6Rj)=MRAJpAu>-6Mj;D#OD5 z$AmA4aMnl4?@b?K-DhiBfWfmeW!jYP*=qLxG3%tJ=($wF&SM15xQpB6EwS%kG)pYh z^VN>V)Wv!Wx2j@t4;DyL+?Q4v1wHqp1tO$g6loZDzBifhxvYbde2g_@0TMVhMQt_C zfOk#WWixBk%I*WMXS#HzJVQ)dxizdKqu(638m>5m|1(=#!g6bpn^)%7T`6A}~%z3b~nFwU_?|ki+e4|BPRB)_1Kh#S@Ddxs@W^oG?gw6}_P~rpC z8vBRzTi^lL+Idk{jmkt94lDPFUZ2g&ulsG}iR?y3nSjnh&0=GUwlqDhJ8f`ov-{00 z4enTrn)?8b2x+@kutt3Is&Kh29o}^U9s{UyzFMbg$w)-Fi6-!_z=*06LEvqMSBIT% z`@OwCUI7WbdMlX|FIO!Oh`Lordok-jy8G%sW>d~nqqsl%982_pT$xsrvySpAX}rno zU&&%qQ@HFiSqHXU@N`|hWXV6q{IJpMa9dyh4Ax`nw>o70v&!;(1COwGAxdhg@3Dx; zbyAVNKPo`sonlZ#oyL!iODKp8jF;t`IcJ{G!+EIWc8^8Mjp*Pw5>F7!Px%2eWEp^B zUxff(JOoQpg-e$7KTPj666S+T65)V}VBY{I7-DEsdWZr6CtRYik;S=6-mhg6f1Z%8r&ul0nv?VbET-?jm@g_69-Zp;s0PQFEKFkzTT z?=WG^i$=o%?+$B+feBy(=A6T8miy-#uZ!!DJ#E67W@GU&t*HA`{y3KA`Cd)W9T~og zDYO0py}}*9VOF10*UJ=D7P(eul~j+-V;zr;UnpE8^Bgct#iMvymcXg&u-JcPPCy!$ z2wHUj4k_jjVO6^IIf(B{C`yMws8FRk_ezC5?whIONCaSXhE_f;9P2gznsmRRWMHgJ zGbJW;AVYj>wFOE>Ra=9$c<1d8?zESg>R3>_!U|rP9h-(VL4#sLgBqh{+n@pUbw9$$fi0*s>~BJUvQ$fcL=LnKEL{pI?}=fjm6$`819O`{qV@-r}6E&4foX3&BoEAD=c`y zDkY;?din1=7l92|&ErMjV4dYGJzUb*&F!YoX}=H9l~!m=Lc@_Dwa=N7i|f?wtNNFW z>8snD3PNXps8c4{#I5MJJT7JWw179?-nu+^E-fPi>=VilMbxh~I6WPt9D*LN0BU_J zQ$-iC(=9rDi(=>CUcQM46LkRkiQ`WuotC6 ze-006;Z|M-ckO?31xBhOYfIE<8Jnk=9<{}did;r-Wn}RV=I3;5FY&*0o3wll^GWUK zt~wM;pwUmCzoovMnEF$eKj!hz2$p^gB?*{;?Wb&bouI-&2DOt4H#%%JL#@hRdV_&ZURy;x26Z-rH-jDJIz}k&ish zpEkC=xaJUHXd5d!>!C1uww%dFufTQnoo3EVUE4R`-`@k} zlBJiqyQN3D{Y%ADK8?OI-q04q+EyghJWdwiChcY{X@ua4Yb~}&+kf+#=7_QRp3J+A zufwneyPZ3=D!qQ3jc+!YW1)t$l0q>O%mK^C8h^dIFcA2r=BKqMwZnaeVY5{Fr|@uT zKhfi(8d2o}L!kxkX7WP&kr*}*c;)7xgNKs8&CC$>itLe+kj!IUjwAx55s$T(S2O8^ zArJ!7wB_ht@~_q@rh|X;z7>CLQWEMZ7I{rt#svLa{`?KONCvv~ zJS#PU!*!u$w90b%ICpGUa;_mv>i8EOkD6K&*+B~1ks}q(x!C3&MXZwS4Wr#y#(Ig& z3-Tw)=LzkH@^sq?^V!}3%G4^f%L_-l#|eA!FKyx0IV1WO!fniZ@`e_d#5O(`@}BeD z_jb$e+AOGT^|&!K_ChUm^5^4hsWa$gN-zE1GI=Cg5QCVRxzCdBR+mwyRi zoA-jZ>dauSY02|?#a4S*vK(Pvj?c>DF`XkbaxMX^xUbnRzdQBmq1lbx!W~in6*xyS z4O@u6RXlO>B)*2#euIY|`WQqU(q`g`-+1|R}n!G-v%e9`j>q`{V2zbW!i-OcqkQp;Ykxi;8wkc8_x4L1AE{^k~qfIZ|3_3+t1&0Uw@HTIkY#bJR0vF?TQszJvyrvg#FwfeHr#F`^HbL@)=; z3m_O?&{r>J#SA~Ty~y~U;>xtQbieC8rdzY@PNfe9p8-oD;M^f|^8vyUEXONxlC$7ew2v*c`RyYH>7u7Af$HeKnUYH}`3lb+aT&o~6vN~LEhaSB z4yryj1KTI7sY-~u_9R8j;XY_iohKFkvyw;>eW_LkoAUDGLUsKg8FhQB@i)AJb_4dr zg7U5BOdris<(#lG4e;Len6b<`89|~_G{}Atdcn9I`6dlbdooU%e56@JNT&u{Um9$biRBA9)9nu4?a>M1rmW|?h?ObhQ?soI~x!=0YY%_h<1nK0!r(eO91>NtOomCLO z%P7$&Ps+aA*UMDo@1%Hs&|=glScJWa{WQkI5CSAUNp>rRGkdss#-Y2tLkLt7TAiTRJ%=*Bl z$C0CzRZpTKiT;s!ng=cVv$`ds6j*cXpv7*&%*pm}LXwIUA9T)Q?ffIw#8pTxA5Vqt zH{uEz>SO#3wJ#c=um{B1iymHDSs<0AS2)OK*((qf4>F{IKgl4nNwphbc6w2##5gBF zzy@!wCx&S04AX*&)oOg1S*lcb#D=!T8#xdr$qTHKR%50zF!uxgjZc zK;%*`QIZ3_?G=eyqVG%tJ**O=&?GCj9%LRb z@7J2=7j5SJpdBITg3m@M>PC}7GybfbnXwR~-Ta{OP=vL+x!gKC#d_R4KUY1^={F4v z{VrTK&KH*^FBa9kZTHP%iuZXcVrI9OJSkOmeN!qSw$l{PK9^cuQpeyk>XB;XBS^yQ z#Z1&f5)1ss=eP!X_5^C5+wT0ms?1q;JdchDi4r2IA@5yDRWLIw7cS1vbSP~rp^r7Q zWf^4Vea>&7KM#L4*L&>oLuX91+TyzX_*rfDytZ;_YH@Y@s?3o2@$tEPdslKL_REc> zA845zSOslzfOTZ6L>Q6e^1pWK z21fLG4tME<tz(5><+MnnHowC7Boz6pA7#(`Pt)#o7~IRGP1ZaPbp*~`%Zcz zT((Slqn9iDNzSfK+TDb@h}?rflS2BfrB&4?$W$%otIu^75>J{SLMD#|Yh!+xes*U> z2Xrp1ATY`jd+#OdpVW}+xusQ3y17Qg^LDS{k>cl(^Ff(zmQHxuMpRmR+27p&4hKCj z2A^{mn{+rCb2Mj8aN*+OYR?X*!flEAE9DhOX$lBSxt!8+lv|oYMQZ&4Obeu?px{DS_(1fz~5o-oQEP*%#;k=hjxKOk66eaR?KbJTZ5T|b6#cRP^O zw$2STiS}|q3mgUUG#dUMouL`{pi+Ox(rEG`9J_r90h929&|DnyOEYj;XheIx@=Lm|WI z8X1d0759R*%ak*8Y4x+7B1W{~lA%M%DBz+#u!Vv~$;ZW}TU&H+xX5vyPsKPJBMW-^e?TvMhSH`Q%LC-y9jRo=ZEgJI z-FpU;*!A|Dgq*u3ViMVNzKaISqs3l;yIx|UdtZbCSBb$z9!dum$w3Mhsfrq`OBoD{ zv)1|{QjP2u>`=3C|5HV(P(MSI1M+4U(Cm@7$Pe}>9>DLQF1guVY+kh&q2KRtsJmv~ zX4ev?kk;c-*1P0v*;HZvh|=;z z8!!wm$*6WrJ!lfQ)t}o!c!-jMHrHIdj=DUyk8s&rzM*rR4{=H8zSA9l;=}^oPGoO- zE0c50=f)uYwt8RgqTh=o_U>B=1G#Ztfvd&Ey?wcMo08ct1YBv+5FU=s<-4VMs*J&d z&aR6Vf-ah93a`L;I&%KMg6gJ_Ch#)v<=DO58$y^exS^yJf2zYtQfVyXi?HRHA2TThhKK zk@PXg;3u&&Pz^8}1tzk$cxmf|X{6(h>^w{h{H5f=Gma|YJlr~?A$yBYBMb+h0jfGj*Y>`}KU$Mil z*QG&6eE?DkD|feguRjnSp49*Q|Q?ndbV?3=uhJKM(4 zqO?hd5Vj_a^-&PD1fE$XK_lcB=2=5mM+ysDUzy$3z>w`8d}Ib^9&3$MtDfIg*1Iqw%L6vGDO z@c-A~>=dp*l=2;rM{N8gb8LxP{i>qv^!k(_RP=Z%PPl5OjN5(FJtdyX=l$ZGE5XjR z{{6-KK7!vi)*hFph;z)eueoxH7>`hmmuovAhgoH5jfGZ{ff7?U`8y^OXhrtrMvpO- z+zsNqFa0{x>2+2?VhTxi%QM}6=9kG&Zklo4SGDk!XTp4S?_4lWatSbu7MM6&6WK`f z=4xy36mFY3YP+tf=c*hhfA6knX-X>VAeNujqiT zyGrwM2E(unm3An6toUkVSq*iXn&pE0&Z4*X5a4V z_oE#&81&Cp8HzXK42|c$|Ano$?{+?Ka)PY9{6K*Q6LAp86G!wxmiU06%`nC~K)jE_caNlvA@?bca5iOm{iZw8aHemT$mO?w-s>!Pk zjx16+pI`Rqy5@{vW!9$B<`%H|rH{ZmmU{12&UOeVa?u&v=GSn`Agn%^mLS6kPs_RQ6p6INrnBwOuu zKM{wvg(gIU$jyT1x5!z_EqB2VYS(M=CXm&QHKX=0&GnI@Z~@QV-v^$HZ+=Cd#TPjHKW;Ei&rhn*-Hxh>`!QX&8~c4*B%qsJ?5p zMe>u7+{LS|Sp%)J%N51~$5{*>j{%og12=TG$C5-2YkM}aTLON@vbL?)Cykci#}E(B z+n%3ynnsgB4C%q&hodaZM#$()j;>yAJ2k&42P$c~3pc0_Yu#wj)s{g|xwoH>g5Lx* zqlJ0V#r(EUJP8*oW$Aak)_VvCZx1^cxp#(gSY=FpewlYXOStka+?CwC6N5kOY4~V0 zcH3df>EvNY-KC1TLsW~uJ%>RwxS=At@HgK;Dpo$mU+eMXy}qn2OXz)-eyIx4dD>185P z-DK|w)OTpkI6FEn>JjXZ);qVOX0xfv9h)r8b|?1u*nntFIJLM02H~B4)KSxMw2lxk zSBUY3D;PZu$c^Z1bhp`|%`T9wsXy(34`{mi zu+qSaVzSm`dn)+>Igo!oP?FiUl;4fJVBVb1G2txeANV}}6p#w&ew3Hy>%RZ7zP z#}%H0_#pFnH+Q+Ew2U_~YO=>v$ zJsv2^COwI+DGaJy*iFBlEQ@BSIx|CclW(3r#&76UwK$R!^Vv#3buUvFS>VVfNnc4H zeFaJQ<2?OTBr+GCCUep;ok4N7F0X&29IgC(#{tL` zzitD%;c|uDrrKM$MJmv%%rR%FTc3@HQMcloNV3^yV`}CPRAl!3L%2!nu1PFO6a0Nc zPGlNZF5|}tuy^cf%aG@0kDY#(4)%U*gSK2hobH~g zKHYRK6+RDhTu}uLQP5|rQs9_dszjnBWsq ziJkD91P0-sejfF&sPjTeOOaHppNnc35lotH*>#F)JhT~YHv78XvBEd*9;Gwu*t)TM zTHlIwLghi_;@`<>jvm{eR^anR$}?4Oyo0nY^J%rR?ax0_(oV}5|HB;_Q@wNQ#FEer z=`S5E1(`M(n_k!UHr~O@vW!Yo-ROA!G`;rnQOl&*?e@X0QXMZ32*<1Ro>XVtP%^fR zzoi=h1%N<+e?~GNsAJ>ZGbsxocRl_FjZ?4rD9;Wmdi#oqH3((~nYmu%*vZ030)I=6q$#ONH-!I&NmJS?wekG5@t8R=F~l6z;ox3}X`M zl|g)4yzBJ&Bd_fSjbUE-O1v3cO2Z1x#|)myuNMV8H0K)Ple-r$Zo0ckh1m4fXD=_& zI<CA~MkRRMSHVCxyoO()3j=G%*!WBvQCqG5koIU<|ggg1s#fHxHxTC*E2;H@` zhr&(fTXaaW)&}XTWe*j*C->>^sUC|lbVGJm{hN*8ds?6Ids-AQBkH!5+wd{#(Or=; zt?)_|F38B4Nki8QGb6;(K$Lw+fBHLO+(!arzn~-DdBH*&3S_DU>W6v&N8!SK|5qQt z1c^jG%g`|Px$pdEr&QbZlw(xgb>iZ#R_PEZC_Xz-&(L@X#I7BRz=2300K)A5-~%85 zm)!vd52Nh#I>lsf=z^9Z4sK(l<*0N?G(Yw+rT(-|#K)`i%6>JRJuYMp1dSo z1c13&4>2sVY*)Ax=DJQfb+lB`zbP(udbzvKtx&`m>D3_3m6J%Y_}Omcspf(4&U+Kj zm4Sww$(QP0DM8e=>104Cr4S&^k@N8phc}m#>$fIG`6Ue{YnCj3h&8mb3ghG{1@JW* zP@*ugxOwv?5v08C2;S}w`(8TqJy{f#o{fx*{4+8D)X|9uqQ&}xo0Ibi^rn@^&eOR* zGf7Zzo^_k1BdDmcm>TDA^e<0j=}vI>oVUzm)r0i~2k}>8a}jKiqRO=zHBdzd%CB=X zwNcqep;w(+3|XLqFD%a1a4w2ko9wr;MqF=eZ5gus$@VxZ++$x}(Uc($+SlHkwY52i z)=<)COQu^Mwdaa;;NP{^sE~8)e3Nopf%~3p{gZt^nhsXY=ddqwgwf}}bNb_+&v9BF zSh04SdV0eC=`mSNp1>ce6@1iK&sYQ)5o~Q@B*t;rANKfL>Bv#o66mTPEY$gUF$YLS z$LDj@H%4AA2LU6$dzfP zhhnw#D~HSG&$BIsKRd28YniIWiAa{dESlboJiZG%5}1L{r)mZtSDNFRH~sHSKQsM$ zfIg-j8w=T@x&7YAhe;G!e^j^-dKof=pABq)!^YCuh}P&2&^h`hsCm#~ZXKqOf9Wdb zHQX?WODP*C{i*VVA~gSHTlDq7)D~|Fi^c|#S9=_UV?U*ORF%?#YA)1(sc7=WME&@x z-$jzuaLM~v{D^YQk~qkU?**tR^qT`L(qCMc5&w93{kI)U`7BIM1$p7>&U%SLQBCl3 zxAWY<)$Lw=d$->=dNzLu9eQHZgN=g9xjX=sMEF-8*DC;zvRJKZ`LY#CAPow@;+$`< zV3cn|ydyz(`{>`l&Xxog;-XdxRG4JryPdkqtxs;JGrLfgEhgtUJE!We+*5sEP= z)?pw+?x5y(^R1}yzuXbgIgr<6u7Ce%ce7rC+D_#I>7WE+r_qnOeyKAKv7B{!MopO>CK7GQ^zTY^y(;{ z%6@)4y_0gEDv>%QoFsWm#3bWgoY&1^<@NAl#H2OxelT)|b=U>o!ak zlR+)(>-_^{zOP5OvvI>8=2SDjOjIubQy{t)AHzRjfx>4IsJ_j)(CIb+HOc~xo1FcU zKh68(_Wu@gQ&fZLCYV1@IKu}eM(@3pTSoxB`2npQB9Fq|xN|I$WEJ?PtP4PqZe_k} zl6X7{17;tIL1Hz42m%Ub?vF?D_Fu;Vgi>{9`F-}Yl2C!w*g=cjq0b^!$6VgWq3OF5 zj=ja=H*enRGn?*e!Z;ihun)@Y_hDsnhql=x~DZig6gKmAF>W zIXU#Tf1MbE5vRrVYt1nsbJ*S7Rb|iWe1q{st zAkLzQ1dA65$RlI#2t-xJcRzQOpZOKqYhb@6dGgo`m?kAA7hV^x{=}Ki;GE;t!HTb& z$NM-8Gf(DT&;Hb;Ekv7XXz~2PWQgBDzN)=VBIj27rE15$r?6ZL=OaKHZOjyk+_|h& z0gXf20BYHKTqY-s|L53#?evzaOZilpO_=~%`)=|(04NHeWdM?l_&M?Pk^eLVGPZwk zuv_GFgcEPl572f;e{#g+0jTN8&+*}2@w54cs7_;x+t<<+ymm>jSvi1YF(Uk3v>pMY zu88Ck6GG;zExvl+v$#S71!aVh5h(nO`X9bowrCHwg zMQZ6)m;o@okPD8#*4G;#$7(=t)M6Otk$QeMK>f$F>i!UQoeoCXJt(qDA=E!P{Buay zxA}QXw{x%eGTsHrEQE>uh{gqQG9(62#FK*G%(?I?3YkLzgI&WgC3N8!Jj2SJGO}MD zC+zlfjI!}#3XstlK#3WL<#sY6&qM(_W`6Mth=uFCysSJI3=X7O(57~FxUnB~SV;V7 zv4Y1BG6Y0pVif3O^CjeHB_R;lHMCxU;C?S^6rk4%nDHWeo`&#BlYM9+wSxU zKC^4BJ%^%VCzrM9>Y%^p=LgVazh1{>595%k0J!HXO|mMTh^7n!7prM`qNCdP{JKtD z>OPl9z0PrVZ*uU~9P~0T#r?@n+Mw^4N&61;x5I{0Hof3^0XzbNcgm`HFO&616fgBX zwy)~D>T+CM?q8&BX$p2yP{>ukIQ)RAksN&ykLz%wg8Y`$%3HlBb@R(xJ~S*JuHFAe z471y!QG`U%&s=*-RK4=SZ!@khE;TyU(c#D8-kN$?Adl{Iq@(;)FJr(1wEX;z8*YH) z&p)f(2l?8HNakPmymhC5{9IMKQ7bYcEsat*+%sx>!cn2fw1-72g~y$e+jLTvQ=_?v z3@@JZwB44|V1QIhyUIbZSNxFlK`8^==^kX(&mZtX2o2iDpY>j9#0PD56^p2A1O8Pg0)=S&)UZCT+6 zV1pbLUd!4dc3UEkS9xTb|NCs4l8B=Rv~kF2`5aIR{;cO=_ew7L3o*>QbFM} z#R}emL&Q4*uDzFH!mdNJTJ@gHdz;naszxC#v-`)NRwt<-3UZs4v9R)It@CgDl2Nbhp~)#JRhMbUR^!zHLo6&T z#}(QaG0}7~dj?dzzulH5{?MqZst$||<%3ZdHx_mUBPbx0zp1`0?`cpI*1dj>8z0-J zi}M2csi2@~*A4vo=kTx}Zbuj{{ysjyFR?}j>GAS{?*(EDJ@NO77}3&Pp|^Z& zmS%XErVEq1w-~46w!@exV8H^Hw0sob&_hQkj$lvEVS~(?KW_g@V}u*jg5!HtXD9H@ z96mnmMYMTru^ou0OsK@PRUYa^Y?XzxharT==AZj%ywTY4al+@8wUrzhKO6zRq)wFo*b-2qWYSlE!`Y-jT}BZOc7kA^l+Fp zyxAK8%qtX6uQ1`sgJ%zj9wu~0_bwlC9$&x8!t$Bvb^vEPR@)e29!P4#oBP30Fd2V9 zThq+`o7*_PIM*bAkvsN`AY0bow%78P#H4z5QG`+PNAIy$CV~kqZR_@L_KKXpATaG- z3Xknz(EyUmcJ}Vdy?ZZX{UxDBApd$8^BlXfj2aTi0i7g6Ow+6FH+BBV?rk@#$E$d+ zfPJ}PsM%_`h%j2jj;DN1uYx5;^6sj*ap~-XFs@S0_HF)lPMZlFvHc_tK$*p(;fe2` zUp~^TU6G4t(?u|(WYB?kGKQsm^AC=p5Ocr-k)@iWBX^|88POwk*6Uc_ipjP^4~+1{ z8X})P^hM2dWexKD+yYGs2cBb3F?c`p;>neSd4bk>`{E>4R9`%5+u*OrY#)1p!+8iC zbp~{HhBwEkRXm6H>T3r1)UFJxvC6a?d-XDWDT{Xh^Enisg>kKSKs~)_qMzYFn(jsN zN12;9LILad5pYS(hmr!YrbPjQ9XH=4D>8)n3xv5GR?-D}&=Cpsw^fWb{y$CX=v?TxK~VmH;Ez6R;#E1a>K3TR%P|g+uWkz$*_nN2OSjo-kwH z+=0-Nve0Q!xBUAfcA!U&@GsB0jOq{M1I#xGGw`{IhgG^zj;gTv2&(2FgURYLk@E$P zk$NvG+|$35zQ@yVZyC+dk9z1yfZ8aJP z3kBhXawqArC$+zqe>uY6s1w?9fd}1o6Y)n%9i4jvhKnT_&AgpIYF$ik+S(f&%kw!C zZ8$ongN31paB*(qT*L8|5GfDuhDw2yCQcS;mBfe)cD=^f^)|lkn5R{xY~DJggI5+O z;dLTXorL`67nG2>hI2b^+o#uKP zZ-e{QtA&;Ms%_uU+||jTOoNUHYmvk6Dqpn9hym#bDBQ_+T!9A^oB&>$F+k+qkY4^c ziKohn8^jtqVlraGvW|`f2^(ca)->fEe%2mEUVPp@Z^0P6T;mWO_FK(jk{$^E%|@uy zDIOGHSQRaB8>SU3fxM>o5)%9zvd*dZ<~Y{j?&%TKDIabx_Zp!lEZ=B57(F__ItHqU zfOKFY0O=bLNXUPs&u@WV@BLW;f)svR<6ocS zzPvHJF{xzi`KnOSDL5UzhiM<fM74d-u)jxrTG2tX0(WdU8~jOh&KV)tbbjwhbUBCjl-JkVX%(>xFnbK zfKxsfK->k0AhUKOPEp|eZHCvi=4qa6D$Uv>IZhbGtQQ;>g6f+L#%+g=F+Mm$1I+FF z9%DiHH6SWM;B1U592l2_+qgbvSmtnRMxd@Vi#2DUaNFb&ob7#LS7*2IfUyPVHezL<=0JR5gG^_@nHytg7Gseb~+a2bd`7e}4bw@!w~+!J(9wVF>?-;#EoD zos95wpCg#S@uB~Er%3Y<4qVoUSY^?7sJ?qv5yX%TUL!mi;KQFI{D;6^0}2^I&566+ z?jZul`RMO2u`)#jiMW|U7>xQrkp9nqF%fXY4Vinr1UN|$;puisVn2}1%y+RL%)c)fm<;x0nFjw;1Vehz2;Wov}2 zl$R(#QRCteL0Aii0cbc8i9OznCGbAQyg(Ke6$FA+*xu!~xK7i5MBsi*rzwa=^jOEs z?H7xC{-HFY(c!Hj1{JrjJ z>D;u&?35ihkyL?mo}2iTvJWX+hzYbE**i9Mg|Q*vlx_{>zJ$pvr@AipUA(gykIQf& z&z8W*g-~_9o^e}_rR7KUTQIz`{_$-xwQ~oinZxRa$N0h$22$-&GgWy zJ*`o_usZF>op>BUn{CB{YE!bqNk?)JKuYBrnhl1daJkKV&=MW^+1&DCi+JAqtwv|F zt{fky$irI`xlT=4^4=6VubGC(3BYFOUWj#mi#B4q8ziV~IsC=6sdn5#VY>dj>UVO| zk*9aIf;c{`Wj<0=maABlFIpqaPSZczi4K3?!{YVpkBmto?v&{l6A4Augt{hw5{v$9 zh@*mh9K-__QXSbF%ZzulMJ^{)er}G)%l!Pa*>X(onYu&5;J7KnVYnD#@&~7UxO>M) z;nl=#lH7t#xlg6B1Bw&{#w-#nNm&Ih!Y>k74ckI0I(hjsLxSY^A6xA5+`P}9Sg>6b z$}u0_P>WPiAraN(AvPLHwN=#9Ybwwct~v~IRkmV3Pf*~ppHmg;;&LZg2-UB?nck}q z3NjygBb5-dG;d$SnZ45_5P`;Id-@x+NI!s=9!z;&w&aK( z(p!y7sZ;U3#tX<+cg8QkMyg|D_nlNXA~vu~!zTG4O((4>woAOrQ61YEBknuAoGDsl zE(rc%1A>8t$fzDux4rO&?THeFXxVn9Eh_Eu+W??`_&*yezG>(S!Ev#hwDK6hE z^2#Ri1So!rl_a?nH}^SzQo`)l=19aNQWlKHD0PbCj~Z0T4>7{R;qK_|<1<UAhkS0}itu^U~~ZgDvd^?*FiE?=`GWNd7M^t0W=X7$44&bROU%%h*Rj@DYxrSRvQ zbr1EZs;P3lYJ6}LPbdQH2N8rpA+0^JfBvXb>hSC9Uw1-!-d^>y1Lc)Cb^T*eT?tl+ zdkyaunbq~VV}Q10l&P|GzJF?4T2BocF)&En!k%jd}@~^Xnj8i63zDX1`BY-O~;@e`1g+Z8kbJ?z6lp2270%vl9p`;k;APmy%a6NWazlCFu!47gPe1h9Ogj|?Cv*coJ=AC( zE=ZRWAZ{viXnS0Lx^X$PKYZERge^L4O&+kN`5ZiVs1kuU=ZK%ugZi3;0?+I38ubqQ zcm*l;By=+O6%_b3=okm*0FEppCs^80$KxCZ)@`@w&?9pGljCT!;xeY8e#Z z7qNT1gTB0Q{nx|=pY?b>t=nNpq~xE6Icaam@)sQhH)~wM$?6D6!~Sp-y_1^ARAa@( zp6Nw{tryxDE}`IbvT8;WjL4m=55M8qAoG{)QM4^pzkh4Gd5LM2SQF}3y}o%pl1g?X z!a9pmh4k|a_8Q-=&w7_O^eY0bwJQ|Av9RPNKHh(*BPSf16G~p+IRLC? zvd})_O-Q8I`s0&78$o$hRY@M37gxa_KglTJv)1Une%RB}xom$QR7%a#J!nOrHqv~^ zuRlK-Ozt?aTU4)a9|2B&v9x40!s?EOg(k(lxR*y(96{Y&iuw&fq8=_rupmPfViv5s zt9*U($7Bd!-)s|I@gB*bxIrcI|8#bpVNGq@)+36Pfb<$gks^Y0DT;JKdN*`w3LKCk zC`eU02(i#XL7GTQq>2<#5IEEXrC9(WB29YlcW%yk_ult?@7MbQd|$G6vgg`s%{As2 zV^18|2CRL^1&5E~iNSh7j*X{XHTcEqq)QP^`irfb z-Gi2eCa!yk;UowblQH`X;sq^C&2FDx(xAA+V)}JuSA{e~cz?ed>h4}2CLvh~Hs|-u zRN<2_6#7@L@MiArB(sZq%be&V>JtDIG%meiH4@@}a(19=L%Pt#uiSq?S2b*Un&W2o zyYPEHLuxQv1BpLQH&w6IaKbiF;n+3pQ$0WY_GenUfH%K(N=Q*@!IN<6krxtAqmMjf zdG}!@UN65c`>A~3R(aqyOU%$)u3fgQPvVxrJG)v@txW~_85)oP9%XEcW%x}`tT5TP z>b`(g-9GOAc`zlrRIC{uOqv?X=W69r$jH-Txt$xrtAyp0ODMvnHp5zIZfEY8#0hT= z<^gMri{tEH&d2O4V*EFo9aF_uRe_fR!sD6O@D+F_!k(!%j&ndP;Nw|y&dWE2a#~~a zE>~7wn#2lG5gUT0%p*`IbRAW>4RAZ3Dvgb=8K5*f+N(!L-f7&?aUb@_BT2gb`z5y< zkh!3+zS$4in>x~9U($nUgR7q-50F=wHEVD?|36a%S0Sl=@188KBwf0P`QRBPrBH0n zU~{{m%<4+HXC8-<-1_f$x&6*~Smf2Z;LQaRdrIJ?ZaUUwWs#Ip`$OrMu%$5-t%H10JfpN z!BSG`EzSYpqRrm8(WrMk<)tpbk7!A9oB{9qj}J|z@M`mPXLut;&7;rxD?!iAmo>I~&oRPk-HZU>if*C2mM|OoxiSM*&Dj73)C!2Rl8Pubd!}+q#(e$0q6ij~`afSyo2a-PUYYxrdAdpMwcG5U zF<*KMpf?hdWDx19N%3Cg#^lAG`-@%N!osBxEvjcD$#?DxQ#nFB{M6=f{0L=D(k z%y&_m@Y>7q#D&1E+Yly2Vp31`J6jQ-p-rp1bHzC|H4&-hZZCz|WoNT6 zmQ72n-Q6`=){xN`sQKCzMvVS%KE2D71C7$x^Gl@nw^%KW@^$h}O)&6K{5Eu`xs@(e zl7D4>co#U1M&``D!-xu3wYM@ofA4p2a67;WCpS0fp3!ygWPr^d%M-&;1e_U4j5|k# zwf8`W7WvG}ch-!~bY}W7e*cpJBDYCTsJDYIdDz%QUdx z4_3PHBeIvOoUYhGa9!1uNN}*dwEh#^AkR}z^Of0enK)v@{vq>^q*bP(==hgC_~2km zEmo1AS;vB}`Xk7q1$#noe~(Poc84cP*z9U)&2H_;m}186D&BW(pkd7Brq%w9uM$2V zLYYE7eG)z2-7v|3tKU-t(2L($d{eiP?l>t#Kl*)HcntQKTp{#LSiJ|+hq0qb`=K#Qe2Vy{+@Su&@MUA4lp)T(UTlCQu}z?JwTzdkFW1889-LTJ;}kUGvmw3 z#LZD0l57|=na*&o+Jt41y0Gr8jl5*958=uBEVLvJNhi_scBND?;e`2#X%|Pa8(%dl zDt$-O<(3vg*;=#o&AiXlLLZ}MN2uM@u;?bhO2C1?S_{|gNV(HAP=Lc_l>h*}IkKVC z-e_yiGv+y0L%P)4*JlV7WU=hXDUN7*0Na0;lt_>WnnrFk6#ZRyB;2`88FDXkN*7Pe z9rbzKmMd@#mQ1C~HPST9meVTgM0Q}U+l=%+CU%UQ*7`9wPj60S+}teV-Py?69xV4c zeyj{O$)K(HZPRzIlp=ELOwFefHOC5pGVexyv4D#A*Ix#$q^<9)?;5`!JuZ&idMc=+ z9t8aS7(Z29@L6|E5e7O&39w1I+r~u%mRcYe6nyetl(J(_oRH-P`CH4A15i@DUEAVJ zz1MX9y9Y_yU|WznGF5h)rLf3F<}oq^UGKvGxzVs!Yu=irg{hqaM|ajN&LkvbUfZ|c z{WWw)u)rb2&T}huf&oSDOh`JPzA+lYg+zWA->^n?UVeR3WOQ|F@|Bjn=g}S~)BuA0 zq4iBM$R}NZwH!CUJ(Nv&lPom$VEfl+qCVsjJdR}mp#lIXTr7O)!`0pJgH$nCZF>Sx zr|!MtXBzP@4Yjj-*q$>}B^q`fesDBp%2od=*DoK3Kq2Fcf5~rJ?K zMK~U;2qLc7>#3Vb_4QHX9mzmjC`p>rw!FUe?Pjk+coRJ?^NvJfq6r#@+@Q{Pshd7S zwA_{oUbL_YAVbtKY^_{e_slV4j~DPUQ+$?6BoyGE`r*D*`wy=>A*{?n-lN%Hn+J5S zdkH$rN&Ox_-r!G3l0joXs6=|ru6l{yxABE-^9xMKW`x*CzP@Qe11ba-ljx_8$aFdWJ-+L@Eys7h9pacXWW0+`CkIXc%PQa@B)y0Wyh+w5) zD)J=p_oR_zimfX{GWRy*)6&u=osqjEa&n&wx3R+NVRgH0{F$g5_woJT>IhLoR$6Z@ ze|Pc5v)faBgv+`lTrFup@A z+;ZppkF1^6;K0bPbg8AeuO`J-wP|sjBY8D7$5kR}9VcHuL9t&%H7L9vVcQ#xAq3Db z`fe;2HK-SmrHVRJxz{Z^4x7D24TMp~3*cX=uA&et1_G<-D2V+C={3`B;jGOoASG33 zbL22D=-KE37+9@)rp8VQ8Oy|aJ)_#BKs=MT#13&|JeQzgtN<+%km$mO5 z@Ik*W?eET8-u}X@ohBKlQczShz90Ov)pc+|81$56%iFRzLHXq?miYQLs%D$kwUWB6 z_W3C)HPq!ev4}e}{ja^-xc9bNGOtSKMJHkw-V%bNeFkv9kW>xT(D%*Ic~OArd^#B| z8vM^=fY76J_~Z=AeXBB1j^RHgGV2*&cb$4P?>Lq#5PL%U4-8-mg=g!5z?bM3yHdr9 zMX-br>FvxaMA@jo7llmczM^Xj8#%`%TsO}0X+P_%X5?dlh5HrmUn+DL?3Mm~rC{wN ziDu__>-zFf5ia|M$F@iXZCV@xHVPnO6l1x`5kAGLlWbQ~B1L_uen1aYE@-vTRzmx$~+nMLOUe!V!c4N5(6;7}4`TAfC0rX{B|L4(13R|MU z_}J~_3Oo}HVu+3)XX)HOxfnt27XkdeRn{q}_ni(qqy9t(FO)PWLc67jR; z?WytK#YLptsr;oUjC#DVZ&yAbdu0EM=FP%fZP7iFNbs*AAB@*#zPw)6#%xD}?Se^@ zlOC`o&zaqwPNAcT86)pjYKz##Zlm_szm2peYUFP&s;nDgFj}SM0-}|b-#`x@ ztm;Y-;IeH`ctm8kkao{ygT9#H`Y^48!1oAxlg`)h_adVi^ToZ^y3n_ZuHjX8KNsP5 zXa^cB_spnwQ_gU)w`k;f^>MhzElSF#d ziHjj?AjQ-aA*XV!nq8Vp@LkB*?7iF>`RqUVa z!J}C%6bnep35;5G^$w@?_NKvif||~ha{v1NYhRHsOuE4um?!6+M3vv#zNUud2qnzq z2%fhpi+YnRoXvJZ!A%b85-aDKex16-WQ88966?yRUr&6aj64Gv12~mrR_l!mBKyD0 zF1pO7nSfVo3mjI2dB@GNJZLJMQ@7dT!j$GJ)$~n^b#Y0Hun2keuZ+vJ0(VERG9_!L z+>No#gqqplY6K1EhmB~XSFeg2UB01(TNPDyt)<*72`<4~WLOf&iX{jH1i_+7J(iDd z;WPUeSBWAF{-+*(2MYrr#sRE6uEvkgYHHYjZtOX8hkhY(g;SL7Ki`oBde)tfDW&`# zb8lG5P-5APHR-}wI@fON)%Pct46ZLyKXhIWuj5wR-4@B|dTmRQokYxe(q z4|dU%MYz@TH6U)`OlX3K95~IENq8if++lm8ysP>!FYiB69A#3%k9LPL)2^;Aco1fr zY_N*;Kz+O8;QFnFivpDNw{O|ORRTsy)hJca-;p@ZFh;9+=6!ayWZ4Ei)h_n5zG28M z|G%#%vUR4CGARr(a$OiJ8*KGN>F7AChAqWt9$bI#C~R(xeZ9S5V&uuqBNwEko_36b zs{pu_?1KYnaoJ@Ic!E0krQ+grDqe3~vPaR-Anv{p-qQeH{{EKPqT*t}=-fa*6N&dB z53`g&za|wGm;=CY8(1L@#lL0CVaIP$eHZE}6B0l?UR_;fvv=xx83*VtlJvph9kHSZ|-gBWqEA^Dcs)(oZK+-%VbqtK3&>b`(A%PAB zmYq?9Z#N^nfiXnf?{5KRa_qnd31uau)(Pe0fFJUAF777svC9!{8O z;#vSVEC}8mWk}1(>8o&pWwbAux{;ZTG7rZUfjn%27eU}HE$yDoGwYw28++J#Ol6~0p81wlV{wqaKzc2A9APEz_oY7&Pr9=wLq0ruCl- zLr4Gjg(Voarok$`Lk34zPE$tdSV?2zMFx;13!zH_M|L0JP4{`;UYD&)h&7#5GTIY3C$SXbj@`u9YG#%&m+ zb>4VN%O2BM7Wh$>QxXTKT3;HGJ!D!_3UW`}-|wO@+!?1*wITZrrN&Jg9%j3!0#`Df z`LylGdHB&Rr~*TYF{T{iJp5Rj4}4F`wmlk+kyj?^MpgK|lMaEcL*S0bVT$Lc(PYZU zD7nb9mW6r^PJ16kvqmv)CgIUj zVf{i>F+|%&vD4nne;k2qaXIl29EYXPVhjWEh_JZ+LPxtUZ%*j?7 zGD%@>s*^lfbYGZ+{y;S=Ztypip88FIA)NLA51W2$nDPy;+#{kDT8C5~(7h+lQrJw= zBJqSPO}-2ZIgJkU_$c(1mx(;fD9lac&_Sq$frlX^BV~Tda3v?gKAFY5wwP1 zL`kO1Q)NmL@$Hv>zxR2*cYEIV-Jb9L>ubwOYq-{Rp678M$A0X`ew=}7swcN>V%_w| zAAf8)r68yA#~upY{`_3M**;<3YwXw5YN?goTkEs@ z=kJ)GVk$D-z-hyidoAU~`g01;QXCB9xDp#qSy|q(@YrN~PF38ld9SQMCAY-rbqm$e zEvKBUUa>ju*&D*3@J!EyyPC#k11&S9Q)lPJC*^m(-}AauRop@+S(rx?@TDj6^Up=k z_UY+I+cx>hq^R*QTC;}WaqT~vR@c{_+T<6f$ocyzo^~x(;$6h+>2GO&e`M34Ncn$# zBr}WpuaC&6q>=u8NxuKPOVULJ1lS*r&`4;JyWW-(G2qEXPM}X?OnFnPD2H2UN{P6) zgYKN19IafcdXa5c-Nz>v$0sK46&8k@iJY>u%*iSo0GTYFf~USC~gyY^tyW#R3eWFx8+qH%Ne zrQG#6WiHt(S0tm%jdhvQtxSlA?e^>&x{4f#hkV=k#YOjmPRb!gUYV4_$N;tQ2D1xx zcJ&1mO5<~?%G!goJ~!j0O6iul|N3)r)prBst{)SL9lFV%`-%9uqa;vWK(_L- zliSr49nuM-db5YL*S__{&KcjWp8qHbRz_&MO=M;KcpLrn#azqL)5mygOBLj3_if+k zf8)lfjJ9?s_8X3+!Gq#%NjIjJ@Gx11FFn@bLRFFNa8YjC#}s57$2IR*%6>9zw>ee> zLw33yuuWm#cDk)w!&Nh~M#bre9a-ufrlq#_EzC%5?Qq%1?C+a9c_Gd}cQPjZ6osjV zsxmR`C=t5*$gAaLDa=F48x021x!;h(>e8wC$mT*za+TR26*Pj2n9!bz=Z+TU#6Z5swJPG#RW*mPSoY&2yG* zBo7adlHsWHB_nYc-3}HO7P5=m{}ULv(ZbR)HZd_xjR($v_Pz%1orZl4W_PgP3=KJ= z^&B_u+O?}9mSbi5hUd7Fp^3HirZh&&gQS$4oRI43;~rP8s4J3qn1Wt6HxG!@H<{@& z;lplHs>kGFVq%P(of*4|)D;~>8Au;Leq?56zh7LuGmX*LB>&~-&y>)?H_B1wx0Sg9 z>j&4%UB|u1pFEjw%Z8Oy%MPHmwY9|xyzS}=(ztmnUk4k5sonuzLaC;Jf}5OiOZX>1 zNLaXfY>cPKHZ@{ED--M9PYs~;&CV^mx%$&^l|S8T)`N?SOWgj`9~EDQXwob)ru2 zMUq)Vw%hAR?=*1pg^R-C#j6vG$Ge@h&gaJspO;I0tKJ4Jje=FLi>rRwCSCa|5jXyP zv*6H?Dfg{-BZZ6H?bLF_b3WT}?dJB7*VAm+z{1KZ!+YY%x&6_N>N(oFitr0sd?(JI zXCpty)R~%^u7^Y3B6t1Sr%!uiWo3ENGPScY=m+oklz6uX-cn4vaPgw79P_SS<~BBj z<*Q|?lVyzT?Qf-|?2XXS%06RZVFBw`<8gKkkR!u_u+-Z~SV|T)Hcre@$XJ%vgsQ4< zz?=8)>$s0Dp6Xp}zFhDj-?aY6Y;@J@%7xy>Z{Mg*qDPK2nT8#y!}DWbzU+@x)<}&o zX^cAX@O*J-J%M+^kQ&T5-Po${riEkQk->uZ-qJOiN?0bQ#xHjc?8i%)$A~dec zSSrfBp@xL8iM{RX3)8qMlY&*Qos)up?5z1OKT@&#NTgyQp}9T6Io4J5<@QM+Dc zzDOCln4}~kJPj8;dV~%B!bEs`;QDdrxY$@0sTNt@TE}f9N~6i#NE5zI?)vz+)yU|m z?xoF}H-9Knp)hgYR)F&-JpG&$F`5h|xkr?srg*V%#k6U!D=jZpgO&1qy z$lKmt)x(KcKAN@3jY(2W`#Pi&KpSN~v)JO3v{|6!ACFp-+bupTb5b)e7${E&!;CiY z2t07U$S98MkiNdYp2v9F@}~_)pAp|l*-tv&MkNMAzWvNaKRrENM@Q$A4J;haPlqDE zZ+i+tc~%y$-1;;|rBlRY6St?Z4>pfynV6Ww&x?o3Vp}i;kpkt$K7TfYzabsxJ;CGr zU~T0q+z$rIt?O_hruJOU_Dz1x-l2nPSy}VceK1%Tg4NLLF!%Ii?{Jam za!WdyrA6Ky#txBp`5kj=}H!VIF z?mSsJ+U1PZZ^~uox2lSRWQ?i94V@39g@GV2!<3#*9RzMV#(RQ4kk;4N_s^e8OC%Cj3DXa3 z^XSo|W8~X=ZYz9Rl16yI<*v)v0gKVm(Y?Wbm|9X+RmJW>4DIG5!+3E)tVQ1fq6fSU z`EG_rmZUD;ujf7-+3nh8+b-!iM7uiZv%FRAdSOG`>7z}=P6V8@fCUGKhKh)a$`khj zhyC^IrT2M;*m9Tw!V0?F3B-VTAyzaw8CTw>rr3(*bP})d~5d|gaQ8Ni^7=^_dUEMjd&SWKMu>nK3fZresydLT;bgg^}E^|Eebuq z7bauNH;X2X&Xl%zg<|VX^ms3QadvfmYh9LGc&P{Qm2uPGuZBfNZ)#-8rKrJ6`)^?r zqPwQu=91_#`5qV+u~Z;h;%tQC{!M;ZP*Ix?fO42jV6FE#=WncemQp<~#!ZP!xQ?F; zunU{0%`+i7YdR(pXGR6e=iK6RpgC3wT5K?Zi{R+ zc^JhzaQ`Ox%u(jTLPF2@^D3?e+>N*w`#S&t2zQD4$@n^{z*_>O=`#KG*IyO0udqr4 zcw{B*6%rQ@FxQ3K$Jlc0-9;PEaGw^@;=Aq4ekb(WABE`+53NL)!sfQd^>f+@i#wTJWRUmYUP!K2_Xggx~i_p_Zj*7W9UQ2w+ZcH zXcG>M9()*MaNL5crjsYWG9jEh@17RxbB8|Yq1$PzBJaAVQ*#SGs|!;2FQv$9iF&!mC1w~CYd6rqU9M}>maamW_Juh4XA54^ z)4p4$C$jSZl3VG>GJCcMK607VrmC2lm|V4f@~V_)dms?TwW%eznyp<$@E8|pNPD*h z%6%wv;g3rf78XAKl+PA%0gJa)2MiBW_=b9;^L~#j9A@^@lQ9;zhZ)5N zKC^b$+I|1UrOx>(i>KUtH>*#;Qr*|op{NT{MMa{3eluRlUQ6F$Fdlr7W#K2jmJHIv zrDSy$T5jEXbXh2G^m~^fcI+$1v2oo`eJeR(wW>){r?|q60UiJ(;JkKw|1ic5iL?6h z@yX-jVokotnE3eAPQbg%z3$u{23HPr=s9gUYv8{B%JmoHziN8vWCXlfQZ=O?l~2d0e$co~IGh@Xj?Dzv&3%2rqJa42MFSJzCW2``I( zORj$2Y~X43kvmG8V$$s&P#P`U(j_jH7_)c0bDODk^)$?n@Eo4AUd?9ro;2Q+weH@= zj8`3=BX^vF7eZ45<(E7qH`Qv)dR;qf*i+kIlYCdLWIZWdb9jl#$tj+hqv}r;Co4N2 zQkrMfofNv>CqMOKn9RoiF@?KY64LhAG)dDR1@A-J6 znbn@SEQvgArgo=OGNaitCk!07c99eLbBhYtA#ys;^F{W35RB*+DTp|B6m5}Bv{ z=MTbhIp=bS$w&U&X+vOhEXZ|aMYSdm4Xcu#wYM{pWeTydK|z8~W8}!k5nN)GMGhXU z0mQpdWc@@DAH)&>!m-yAi{iWjoSUx`3M3>J@y#`x~%N%xZ|7d<-c6& zU67vm0%Ow?sAmhT*H=B8^>8M7b%9mdqh5%k(llmuCF{7Hxa~|yBU{6;BY~&dufU}% z73S!dGo>*)IXMA3@WauE)aF)xKX(rK`pC!#^6%=ucfPT?*pYjJx3;^RJ!!Oc69A-X z{>8k?C~ZXU(o%^C4L$qnzpu;8zt7c2vV>;&y^DtCsEyxkqRJPhEM2nX zvU3ddM>tj;j-D?XvWoiBRoLyd;H{k}&}u!b6Z*;Gc`?R;FZ36?f>+;jN zUAS>$k#FU^zOrQZ;PxVL+RsBdrj=gK1)39E0VlCwD-=bcsTsb|&KlBx@j>Pw&1jM zqPWf2^-bo#?&d;!=Tk4qvRqB4u{V2>vNV1FvO$F6x_Y_%LJ_Q}zvf1kuu3@ChgJ%Z zHeybi#&Nj|euLZ_u|IX1(Fd=HK!4 zuqSiRf|aQL!eV;{eQTd#${FpvT>B3F8?7$M7ITp;DJnNIU+_Iv+^^j~?RR4)@^sfZd@x#mdv7q@@zU+bQl3(|_S|e3CJ^KLZ?pm?3 zy5v^ODo*T@a=T>_f7ohvY%r1H+V`tREBmH}q}%kKdE(``{oxJUc%mC0zXFUu)FL%U z2hJ#M1WejpeA6ah45iRagk{~ZW2`m{3rosKtYuRFSZiv#oq5U0sahXtSS_)8minow}E#y%Q|T7e@y5-1^ybimciwVtt+o7LvU_38h2qIim3i z!)~h%abJGS#K*>$-_njx?0GRWDAr~pd3I{(Ktu5xYqmRVA4)yALmmKmQb~J_beXDF zCaY8{EtA~+EtYz}3Rw3po5A-NSEDS72y_FevW5kEff`3ZmAKX4WLDumI=me zJ%*BF4`RXuiPh2N{;lqx^XoGKRPSeG+|b7G*CQV}M1DTLon#Gi%NN*{pV(HQ!kV`F z{E*#!<+HFg;PUwRc*+i-N?+voApzSCR|U`>LJCQYoOG&d-_C2}Doq}8g6sw84H z2iVZ6{Isw7^JkwrmnGfLUQ=wTg>C6TIuT_SF%q|ppO1A_uaA#Uwyf|3UD3GcSb_ukeZC6RI62G3$ulaVcT1c5Y%P$MURGr#X z#9BAyPMUOyf(>$Zc7Br?8cI)B^Q_2LuOn?oZqg~=~hx2C?33QOC*ASLbgji+gLgO7cL&g)cNxx+DW zKWY4)Cksos3nmrc@t7&8-*D6|!b0M(Gh@rN4qsBggYy_qljFBBj!*8wQ8!0xLF!$j zHcsU%9x;&*PTMXvSaG@Oiq-W|_YXxObr*YQql(q0K2=|%cFk1<&pZzjw$3fP_w3!- z9hr;OHC7gmG)=D4pN>!DAXLh`I6JRd_*JX8hq{ISao09%-HuIdS|6%j=sst0E)5CL z*x1-zV!GC2z&XgiFTQ`6GJ@-`_v{-5nbL04TM?^G(&_0>pPO{(i=C4C`j)4|K6WhDC`;wL@&Kzq zh+~g914BoCI~R9ejmsdF&*H_0*1~IPMX8rJ2y@DF!f09Zz`3+bdM}GNeNUWnQ7`;b zAW`;KV5gzhef}?MbCn$Tt%?Tg!!!jW6rh;}`rNN6pX9hBSH7#Y zfg8g1&QZ(J-Uuozm3*7l7YKo0&uji2JYUm7)vA~E_s^ZODj=>nIXNH8fY8EbOPM>r zZ~I<+%Id|4=WfmGX%;`F$In*cCFe=uTsgf8kUQYZBSti6>7fX_{!}arr<0_?k zBgEQBt^64L@$_`l7P0PQ{P^Wr0mWMGy5@dzJI0Dk;+%1P=q|$aLw8BaHw}gz4V_wQ z@3ybm^7!i1(t1iGE=`-rA$Og%v49pI=PVj=q(tYGvWI*uJ9P43z>C;~Wxk?HKM#M0 z;H0F5Igg@CO|6-FhwB|1(wwM#(Os_`8-|PCW*!(nK#9f!_4$Gq)c~|m=2;4pReJJD zMPh8isir4qN3%-5eq=vXiyQRk&v29a;2j9lF;fD%Al(}LGJ zUf)(@_lbqquSE8kZCWDkPc8X6HP5GZOW^o zTV}WD6q4T0!q+7qwdtM^4@uYi6cKgU859TS-50PRl%FwHZ-AZ@+TH2u@8p( zXUp6LxsOG<0#;q=>f?`_CTA+7xwuy&W%^rU5|(Mm4hCTg5g3?S&I;>1-5_&irC6#} zTg7eXkLl_~=7oATjrcdwqV$6+LjFU>#{K5N)uZkgDp1-|vjcBo!5ew#sf&-;p{dT; zw4~gcsjqSABZgn~eMeiV;Ojh4CX?4)GpsnE2ita#^CA)w4JIfv)jP0T=RW;uy|xHZ z=B+%xEvgXj3yA|Rf$!C|SzY-B8m{TxSwj_sb;4R@M#cVRdT)!G98YzLhA3v(8nm>x zpN0EaS5z5@;gGkdB`L6JYA&ed7|0)~5m!9jGIbZ@iv6#~<#H~O60MpYF8||cST#~` z?Zwtq-ico$lCu=oK}pM!rR1NquZNVqf6mbh^ogG2hYu*^N!vz>GdD8&=lge8Yh)-y zQNsO*zp+}Obs?=UhrnGGEYqd`yZjiZv;N7!LyMkC9*92Fn)XxSCpo6>kNgM}U0Gz~ zUmUf2IFwwKf5&H~PVwJQn3>!Qi37G*$$HpIhe`K9Nm0JDNaa`?HO|V+?E1kc7+Bn? z4wrRBwrxD1MzFjGLxO|t(~B|XDk8y6qm^mGzY8@M}2VV_S48qb?+S=wMnd^Aw znV1AdUj%aN=#(VD^F<^j^&Lkxex@|xL@K4rq*SK}|MJ&6=09W)dDZ0}rPSNpMyuZ; z?52VevH@0yd=LierD4^@9uZnEfmF2ck&KKEKQ&p_l>-!f+lSi9u zK0e-vB%7#>`un4dlE#9Hu~C<3%3M6y9%uaw(#h=`MVp)Q*+chjr%t@Qy`D|1dB(%} z*S^Zi)tw9s3;kt(wg2$m@E@)sA(Zpvb}FB`vQUR`y`usn1C{T#`19^=`6yYk!*%(P z=CFdNrbil$oxLOE$I3#hFCw{^#|CM#2OyKsBoeRqO9?6J#L8e@iIoBQ7&n|a<;e|* znN!@Wh``n4eEIU6n9rP8d&N@E)W}@&s#KE^GtIwDm8c=>5|tbcPI9-$WDbH?ukz)~ z#QS|@o67rsU6Nj1Y-yuI5e>y5`1;?I6Of$NhIGE!(TyCQqJDHqH;&DYeKZ8tSXo*A z+h~o1*DO>38?SBt1p^CfWOEwJ6q}`lSpj}mT@9X@Vbi6Lea%3f81HUd9(mAbCb3Li z(quJerlHA0ZcP+f?y3t`Fc16f1TNAs97$&@tcdj~%ZNsp`xIDtii_)j#}yk^VR3PV zNWj|R%_390PMR%141qLqJ_xx$S77xnbJhoDe9^^^# zK71loqmY+sSknPcXm&@I%uQs0EqATxpV}2fL^vv>C8ew1*nGpmbA#qVUB%E*dvTu_ zd59kBE*f}@@1M~3oT;TwNcJ_VF@(8yuQnM@r<~{d@#X-7=UCK6Y3IiE9A)NLxAurs z-?$X}Nw!#dI(2H-{oc!~IYIKaodtd#f=_>tL-?422tugok!d|WRV8&Kzkc_i))7>& z+GEliAk(%9SXv7z5+<&Rys-7&)DkLL{6gmF8s9gsSv9;g4wVDH?$t5H=s76 zT!+kDu0iNSPg{*fS5H?^wiWe(mdJ<7@*9RH+R}-5Z_LhV#Efzv5&50CT&KR)x*TFP zFQGXSeuVO*x50plqKR?D*m!4?#^jftkn~dOgU?a!W&@9RVaqNdyXIEX@0^VhxZ3C&L0&4b| z?_X5D$7YPKGIo%ONuir9Q^`Paj&=DJLA=@1tXJ85{%U9aN= zp>Vjbj!C#HFX#57|Axew^2<}{y)GU4CxMTUa_e>MPi|p2T=nm_1L2Vjce6f!PmQ{n zW7S<~v88EtSa7Rx7i-l`!rv7JH8;1kwiRwxi62q^P*ith;bDrdzx<6io*`-X7FjRK zcf6s<${NbI*+kt;?|i81w6$qA@8s%^u0mbDBFnj^)V}+qDD#xb!>oB(+Sx?m-vbyr zAuIXFyJqF)`y+Lio9!QXFV#^Fovgpd{_{k_K^Jg{np0UBNzYyMtx+H5OGEN0BM{Ar z8mpBYoF}rxI`_r0&Xy!2Ct zZ()8x^ARO(f3n?RdEb{ot+AifhN00n^H$C6UJLV@JUUdR_%``IHx8w=)py>M`g^(` zKhA!e_liz?+vmd(b>^<_CRJaK(A8UMvz2G7>K`6lvyeYS4qsXLn%0X1#ByR~LwROk zy;PCDXiHYv#7*6ap4A?K=61X`|NU!^QXzsrK~l-(M#CExW~}#lbPy@`Cdz| zYoj3W!T$KB?XY(0z!y6o$$5h3R_)*nlahh%=u1~|TL6mBs77z!^f%N+zSuvhUy=Al z4?3LtQW{GCRD>#5*yGf~YTzxQntfzJZ-e3Dt8Gn17S3B{OcJywV1X4$Pz!)Yw1?FlxLr%g@wNw&#lH`WEl$kz-0Y++7iphM#I6z(!Y5F z{TqFxjNJFszm|-VZS*rbUzuME^Rl@v=-K~APtTci{VxJ}E_XYSigMa){4IqXFI@jC zn*Hua?X(^DB6)W1Dx>Y`uoA7|IVdtKOwayf-8*ZsoNa;1P%~Y=J1N?vJ;UcY@hRiS z>$K#(3=MBKF$`~%cA7r;;i(EIqWtziWHYQpxj`J&OysOHSE?4SB;+Dzy5=FKmptfP zx#Z7ct!SQTnWSQ0)(aX~V=B68c|Z7EYS3ia(46}^gxOUdgkN7z>9EPN09x|ZfIZ~@ za%m)Cxen}C>nY=P7Hw@HeCUQKaa#bLohmb#A>McMjIIoMLP-dYu* zeAs2jVSK6i-Wjs%_1m(XW4Wq@v7rqwt4Wj&Ja?NCFSg2}C_#<4YIdBd_3<@tYUPuV ztk2l$9d}3bUgyYX3F*bp+_9HOt+Yg9_uXn4ZEYL>me>xbguSUrq!Wa;2G*N5df9vQ z45cxnH!kJxOTS)j{Pz#wgKEdb3SY7J(E5M>WdF2b;*X?T88)PGKZ1hpCqkApzcQY@ z5*Tgh9SgUXp~QQlQX}idgEQF>)uifB$mE1ZAi(l+h@Nh2<)}k;24^df#yF2CiH&y; zGAomOh$aP4Tt-1VLIcDqbG-w+4e4+dq&i68iI|33?$M)R0dE2-%x5Z}N{jB;^e|J~ z%KujuW3g?gjOg~1ceCz6Q(k#tD)E~h>Zqr&e4je)&}Do6r3L5XxM7`dD&N(|c+^6) zto*g4YojcSx8>t`tL8%Mcb9n>Mb&e1@3LrQ{j%wFWV@{pr5*2L;qEqIEb45t2RnwY zWh801>gZfwL#G65niXqLPY+Mpk6J-*UqVlEzxg)j$q(SUL1DLlTUaQxY}swl^8Jf$ zS$Q_)25{_hSJnKC$I7?Us}bP#tV7u)o{vf|NKEjixg8`wpCpm2fzFtMZY%7AtRqWH zJUXq-3JN0>h)g^^6Fg9_8WyLALzW}^YTQK0yp)otO0Y>NKMf8Jwrdg-B@rr1VM?v6 z+?B=%C5rqRm&BgR$^@H>gE@0^a!0}r-WF5&YET?n-jSR3V3HDPea3R(tAT2g&0vmQ zA~);2IKyH^L(k>B!LQ{V8aWe`9X%c6iJ#MQKGu2GOC^1E;8N}~>uH?SS(-iPY-pJ^ z<`LQ3+w=HIqM7$f4l1h$jpN+k=ak1kxi}@?kxkjrRqSpyOG@9FuA8iPS}x3UtD_lvQ1@X0)O8RMBzkEDVd30s)=m>I;lX9>V2QInm9-v#0;giH22G-|JIv)03 ze#uFVPqkWpf99;iVStsqJg6)eJ6pW#oqsB<$M5;j5>XK=S3Ddd@P=$l3t!)E?(2( zqiJk-r(Z`?C!RmC9y82G*KyabBCOi<8go*$qhk+bYgHhU#roaVRsDbfCzt52T{El^ z;-h3_?l$lEB#?XFW!Jyz*53958@k0@Id*BBHy;RN;7FSa;7$mJr#cT)Qg4b%H;XJ zSIMi3$*ESXhmQVi4J(<N7ya0STLHvw;LYr8HB}Tp0^4)_oC}<;ZvGOZ6FRb`Abc#l4|D90Tw+?F0 zAj`NI7hE^^SvUV`vYALiNbmO|ik;8WDVhyR`@-oP?qAaolDsH_zlT{ZTatD_5XsUk z-EtM_cBd*I<)Yzhv3ncl?3gv zuV1-#hdC|(a4_&*G+#$!_vvf-)W~e3V7(CCIs{#ApIL6t_GW-$8YV0?6LoVVVNbypf6tN)RbQ72DwgEn@2b{OaSYlXdPt z$6GWgxoJs*kDX?R&Ll{=@0fi5>-5j1)vXy2)IlqRppc(0ER!O3@bFH-JKR+9 z?QJqrSdL+>6J!$9t+Z0B%X6UkaCNW{|M5{QLpmZ3q?})|k%^+3V8!%0q)w*OT;9{y zI38Ivv3f6D_KA*z_H$({Y$ZU@dnPDBW$jnUIVQY*O&X5YA6*evGKUD}0`(O%rTp3t zjZ93|)jRw+liQnrZ5RbEJO$a*hY!r1Hc@Fr?f_*oG$A|qwIS&B9TZ>Yt6Cnmg)wrzcDL=(5kruir0Rh>TB`aX`leH^C4(TZ9Y8m1-s2!@1UcK zm{Rp4sLBX@mB-P=hSNW~s(zhk!e*r?@-j7!&Ox3A>%zBbWL*!i7kx_&>FqUe)*l^e z2(S1t5JX9jxTgy>VN}Z~^vz&@kcy^hY$WwJu^;}12xauXF`~17U5mXnmc7}!J zn>Qv4i~l(EvCGiRV#GEeW_`pg3+qo-JNY&$)HaayhjX8vg%G141}a>hyAdY&p3Y-jIDZFTIzL7@s`)QyqnjB#oOEnu_^4qVXs#2jP3jw~dUA!EuYnqj+Iw zCkO(T!sPzF(^6NN_e3FYnhqtt=`F02%DVry0z`$N%`0xVwr&+VI4Amc{4Y5&x9&r= zk{BpttJGTxW>LgU1{@~^)EcB^PmU^|uG-aSC(E0hl9D$gkHi>?@fsm0%!&KNoI<*j zfq_FFefI25Og?laX&MkuL8My>B`xL&%4+D#tFLXq{rIg(TF*{Pg`vn~Pe{ITW6;W) zE`9$(Y(`9IL4>I7#}~w40nz6TJZDa<%nGjF0ZKDbLH6rRPttKG`7n#^Jroz-nJ|tR+`$gSkkUumm@pV(>hpS^>ujZDYF)JRcHdQxj<=muk|M46D-t%$kDYn~V&A8gS zM`L5B`bP8S3gcCjKGG;~C3j@!h3S{OLNL#wAm^4rR9ZDOu69iB7ZcmL)~iyDAxVZ7 z74h@%E*^<`cjBC(A@BVBLb#&2L)piVRW(yS*V^1GNwaecZ6ALc%V|_BRECMfBqXpy zn0cdd_+H+By1tq<4^S2lFK_ka{GIstAlojKH8rfw=9Yd%L_~aYEgzqpOnv$^$xNi- z82PFsGoAOfKjp6b0u}stm*;)r%$XhdbKhNR_egVMV~N9{+hB+oWN!Um&~a4qrKsx% z0v%?@858euxb|sN$6uH9Thwps;Y%@DM`?8^-y0xRDzC7#h-GA=g zBg=iV7)5M@Rc_^Yg-Q@=c2e719a<Juz8zLTdMrb2!(LV-7PxbX<~4VQ!V` z(j|d9W>z*fcPKnqf-#2-BpL?#8z@w)zjhq&mQD`)t-kv5A;0TX;g>(SPkRR!6)h6h z(qKlP!6x=qmrHf|Ps{LRpMaH>?J_CR3UiB|j5~LRW8sDU>+0kUe15smaFTgkM9I&M zp7#r(!ek^A&@x&xItO5mt{t8 zM$O0P=<1KK)t7){0Rcj=5LJ;np(@MzI)+M}98Zz+7{zj#(yU8x)*1Ut9;rCMS{GV=H$SPhG57963`FxxD;W`}>sx zmo6Wb9iI2#rBGl|Y$xIEP!7Xh+e?PM@f^~sW2O-3 z!K$ic7z9QGSHyj) z;*v9NQd(!usB3HcHx55E`hmf5@ME@mlw0C_)hZGHEZmjTZGQ@hOocAxU#J5UzL@W|C=k= ze;cC~*`8Mx86R{WthY0Mdw<%gVS;-%gx=kYnSwZL-nYne^-w@B3zNJ-1;@8Y-7Q+M?sW^ivox8ic*4eX~T3RoTVG$4>Y`cE<8KB}Be4O`? zcyy!R|LLw0RDXMjIc_@GQlW62ko&CJ$m`ge?oy}N!!CRR(Lr;!71M|gE<*K)AA$fO z_1nl@zx{%_rjyweJuV0fH-mz(V_y_dnz3V{#NI}KgOFz4R)91xBtYm6OoYvpF3Mb8 zOG^$;%FoYFC#rT4jtfv3{tPly+&cOcNTdi>c+=)O=46v(`uZyB>LemMFfyvCsT~tyeu0h__$i{C zgw_x_GSQ(&X#3v1^OKbmXCoQ!J6LBgTF3krPHJ&+5$jlCAZU=cGp{44ey|!lYAuOS zmDzjNf9~i<}jp7}fW;Ycu69gMCjo3fHOzgV;%at`$Hwove9q zzg_^X?0z!Oyz9X_Avn+ojT$tR@sW%(DFXilASz62%U$p1A_sGkuhuZvoF|d|;{$}^ z0%++?>FiF(F<(M6*AyeE+BmpB2Ym=xmqP>Wb1DA5Yadlbui3%1*An-TgDuvsAPH^% zL=TxP9xTk0)~io`zF5F4PnL-j_V3?EHbY&ZiMhspJ4qxY;Fd+Ov3MY@V#q$?Wty~h zN!%GdlN|%8-x(|F7a$Y`i5^x41Im|^6HgTOciM|EaBl6{yAiCr$LknJEmU z_BX_(cHnlc&74vqG!%K${3AD~5x*RIsK-P6l4U$B!%O_Kg?}erj?l2yDOFqhrRLQD zJ7ICabbV9xgEOCI+z{T@K4gx5%)qt%4u@y=bdd}8N*7ss9=8ALmEx<$Mu&gD@o;fh zNY@vx-&hE+4!hxQTAE*aIu~*kOH&6L^79`vgINzBzQ7kCP54(65!M;KJZtx-j2_NQ z#qkdxQhq~+jSO6B=gui=YBB(1Vapj&X!>2tW2LS5rZMzPk z5Z|{QM4!_{JFlL=&T6Au-Q9WuWn<(`n>G>K7)Z*uyV_`)Eujwn{QP+(Z*OVDegLSq zJv|{<0%DT#Uop!fu!2f7v$PC{-@~45y?|y?iNv5bxTW;d$)SBy;7#MBqL?tUwF#VP z!Ea4XP2awK`?Rn`+#w=dTj`I@B;%jo#((_sMh7hIjhf%fP+hq=5)aTh`1_q${h+EC zA>(zv$NoVS?)98gAyzG|z0$29R%U1+rx}{U29Kai41v6RuNJR|lT0 z?jJafU4eyxGWp*(W_ih3qQpUmlEAESqr49zBX&4+_B07aP}oD>xrr7bukVW7RNUU z{2u=!$N#<^ubDywtM>o$5)@oJ>tKwqDGkx$F+4ns#c4hX+s5hcg*!2# zetW2E^C85+wqTyb9iiSpX52)gzfronveZB=?)Bhz8hPFCxj+0=^N^C^&+Pz$kN@7x z^rokW&?u^My?ph`q&Y!?058CAoaBUDU{X|23UN^c)!2s*9|lWKRWP9C>QYdmr(0+N;3}WKdHuR>%q1?iHLs)52u6;8e*fORs|csS>5DZS zE6>o0>ZF=@*zac{hD)e_`S|%ITt73f&K+H?fp(I43q}4GJmOoT-bx5CkwIm`jTQHK zOJXSC2Y_}jT)1FF*-Ued=z3A(krQVh>AfttHXX@Cpc6)CIG=jytrusxPc&a(j8k-QMH>B2&W`S&&JkY7jgpMBffTK(5nDfGh{QTcEe^AqpZulti7rE{t8A51I2r6!y@apG^H z%bQnFuzqS`uGnX(czLO6RZ_6>+xA#2z^4mVR{c48uASzfBOE?G`?IcqFqQaAWgF|U zdzv**AF0*RG%#pBvd}Hd!${6Sm?ng^M1M6wsvJ0QfLI}jOm};IQy*!HufKO9h(|!6 zPT2ev zLG7XGw6(h%GkOvJL9X%%7O=pqVLQx>zOg{3!c7>~M0~CHFAsF&BG_3{XP16K(iVJd z&p)Qb1Q}Gu5pCdw?(lm*es)wfM;$nih#x?kywp7!BVxYER9!`7OVCb13$Qxv?d?KQ zm8-v|xW7OwZ1xb@F>x*UV&td0eU=@x^9-7xh6I~a5eZ6zI9Wkoe-{*Vd(nr?bKrn^ zXMy?9(2!6R(a)D40J0o<3bw8y78SkVJ>=(pH)~CZ3l29%6L_QU9}CU5uJ!Aq@=zh)NV*AL!r5MT>Z7shLu-CE|BClu#uQ} zb~MAImPvw7(iw0qM>~x4iH`@0yRSA5n@|wx@4?4aURikC-K`9ag3Ky-2l$pNUrTR* zAW4Nv#%E>JXM_;aFxQlV*&-Uh9_p7zfiOsg$JnnF1)Rss&!rsmY#iEYF|lah?n`2Z zzb4KuPTx5CT46}WoV~b91=w`{J(o({i??Y?!02=%^BsnxA!5BoRDPJ}%JQN(n9s%D zg{Sq4ZYztULm)#~NCUl@~LMv8g zwMrZ{Fij~MNe9bo-@i7vK}dq|-uf9GweoWI%VQ^x62Nk9{u;;fKWOtDm|HCQIg#y- z_8#WV%ic#j41JFLrH_^o^vd|$MK65*^8yOC$w_Sa(dI;iK%(R6;N`D+zYiq%q)hO< zMhJEnE?pYINjpPNIt)zrZT6F)=sf!8G5Wi>siLAHdi3n#&yb35CaS6I1U#u)Y_cQj zQ*DRvvde^)>H?apw^j9>c5*rhqOcpXF2IO^myM04`wE!-kcloXj~;Ege=1zu5ORj) zAN5Bqa6@J{u^v%^hN=kB{r1eH6c`RXO@Zr|b70dA3n6Kr=%%-?mFMw`_tBc_IUs@+ZJ~v$7LGOt+(>Zwz)+tsDYmLiIHc zE}QAVxfiE>ernd;Y!oP`tLkg{+EYG`5)WWA;fIqJDhSv>z=LKYnA{5zFaes9ntt}z z=ibWr+Y=1QKh_IGZ$1eYp$cjzmP>@1e{QrTqogDT`GNHJ{4fF$iRj}ExUpepI1ggS z$Bc|v$dh-bz9G(Dz_3cT0k#tJL{N$wXXoY?;V7>Vq1e`T`03KuLHuyC)5966V)OeR z`(yqr?$2!eZ5nVBjnj{50Huj~iQBGBPu1>(N2VOpp30cMhVB^3F|uKX3*` zKq>}?qba5#RZRd~W+!@wQ`7?TO^E#=P&%}oumA*kx0Wlt*G%!GUM40^Si`;2fWS^4 ziMa|Erh~lN9a^VT@nUwn$ujAnLKA{Uldgo`erXZ`1e5mQ!KV7w)RT+Dfpn6psxT7V^Wqg27A>t_Y=F36}}RP?#}Mu)@d*NCAMz$rL2aNK6iD z`$(|gKh%}wiWPSt1MDH(iNw_0*jk9AD4>8~K=6KxQhc?&I9hG2Kwy}aVfPTg0+|Mr zph0jd&ei}B!3iOVXE+XE`L9@kqeqjK1WMP}Gn|(46{a}}4v&}n?M&qjWnq9>8~kf_DQMMRX%JXc3D0Qfxw&2jGKqa!7@U6KnxpT`QO9t$jiXSE<`LK!m`6) zox{M3jUo*%0vU9RY*;!wJLyKI`)h2vOK!VKH6Pnub2Zl;ZOS>N#6{T_R+^b{Q5Js~@4FrHwb_F2XLngKoY{I^b<)DQcs4DPEi}QIt zO^dG@8jSCkeS52Pstf8AJ8n}t!K!5uVuTJvUma+s7-def=g7h2{s-B)CYi*zPY*i?Tu?EL}9awz|W!jcpL%O3e51**YdEVD>Gpck&*dW z`*ps5SZ=4IAu34Fbff|>;}DWtya2NQ#o&#&PA9#N;MHWdg#{eIV)oxkPCk7Onx*hH zESh<#a$Z}cr^0>C9wlBSI{XOsmkiwGf2oCAx}PZSaJ9G#rg|zKnQg4RT**RQ)@Ya;x$a=`!@PHk;1kww4~&j~S`L49#uX79Ok=Sm>bL5H&0Riq;D z_+Tn5g%C`M;xdlL;lGJaRgE<(aQ&d(G;{r z=Icme$-(=EVgx9yJ6x)mkr!wO1bL45udrv^Gj))S=fF0`lKJ_A2;{LiH+t|5PLo(f zp!!GHzx7ou?d(Xr-5uA_#LFUHKb?UiuD6WJZV>=kSypx!`;s{mE*;8e2HN!sLA55` zSEed~0#W7Afg%MI4yrBxku*RAKqL)!D=HFDu}7Z7LQw4xyxm0sQQ5pp6lZNcQ^$5h zCA@SS_A`;w{i~2-_JBLd?ds2;9z=!)^ePcIdjY zP}T70B4<#7+A95H57F(DQvu&8h2AlAvfkPVL$N1%{9s)UPydzGD_lf!3X}~VP#DNX zu*B z0u~ck?DcsBEOTTpL|%j1eH`jTptOTik!)a>zQy53>Dx#I#Gq+wZ-0R}g|eBNX`wP`_I2IB@L%lsXm&T*xVc`r+_#xQ{rI zxq?En{tRB(67wF+aWu)7m6eq^xeFy3vvolv0um9)9vhbC8=*h5Vd6J;@FUBy z$OMieoFsAZf!vSsswGK9B_%7&4nBv~A#w+}- zhpa)c5&_K0ig%O`g=b|hg13QlwR?n=6M061*+Glfdv=Er7ymc8M36|0glZN6PORJh zuh1ZYvH%>1$73U8MF-1r!||Q z$JeH(ED~~!PbCOvIIk=--}qGoFU6pO8P(xq2rooL&CL}M3Grk7e;PacpeU;-j8~Fv zsnwdn#xRnbA|OL9h^}Q?w16REqBEf4SOUt2rmKvonam^v1VkxVYwCjdQ7JTi2&<+R zwyTJ`R*Xzh@?l^tQ?w95AkgpZLN(JL^@p<}yYJrjzW1K{oacGYF^Fw}8o&1_QAGA= zTiXqWIk6~QSSA^1st_5V8G=CZfK7UAf|s`qbQ;g!?3|z$8Vr7ris(B1biw%uG}}6M z8Nb9ETZ!x>sZ{mEg4w;^>}Eliqx5yl(=;#NT4VWu5lDTD)Fgk0g4=V$bMV5E*$(AOG5KG{`A(Tx~Gy#th&6%e93^=dbwo{$&#c- zu-xaxf2i5*F>`}UkV(2dL`R<|OT7q%vv~@%!0nsq1Cztv@DM$Oux_DsRa&ECs4k$R z#&1^}6SS&0RZ5;lKn$hUMP>7zK$dt5U%gCDP!JS)T-VDAjK96&NGpp^>UoVvDz zX`+lHAEXKYURu2`?Rrj4OLJ3}=PK^>(mR?FLen<%UaKUF@>;YcF95|#m%&^fJQU>< zN>e+tX!@Xvf>|93ZZ$zd1B)9GAkyvrEZ9D|#X}>Ju%tBRTROV!@|u5uxCV#K+F|8O zo&VQgSK%8LzbebY5w&I+*WrOCL&^IM#&Wz83 z;)N){QaWE$f(S#^q_<5!% z=qcd}xJcJC>x{F1%qLJ^h<7c8l$umlQL&q)iS%6a{E1k9ye;#V0*R!{g!Gf68@46@OZzhEa7&KUC@j$jHEdJIw81DAY~-2U7PU5t9Nf}9O3zSd-ukZ zDEpjX+SH#O#9-4xp8)AwmFFt$Gw3?gr-}#*yT^^nE~UanbxE4DC2pV#30TU~-`!A9 z%1I8Pl`iK5H26iBXWI0kYHaCj)vUWd%U_3;!0;&hj1WLsOpSoB6fx7WNabW*SJ~g! zT{>W6F`Df^FG%0>)vq__49+A$H2v_>>`sIAH-mNCYfVT#^AFodt_k6vf+$%m=av~} zZ3!T(ubRrv$y+Q3=g&usttZ>c8`XscPPVM(sw8YI%X5hx(n#Rlb!QCZvxLWj zr*5gBE93pvuYiARXj}lzt{MY|9$yd$MDVX=ZEeO2_k3vs4OAkr{g4h}w6Jdy4+Mv_ zbOS8`qjg1Nc90Z8prI_1qcMIK9>+U~OC;(|ze84Z@MmXEa!QJiukT7NcW9?2=hUcQ z8qONYgIUrD_HqQ-b65OUyJ&&F1crfj!0|ju@pi0OVWr_%dM7s(@SPassS)14y*Ei> zDKX(fD(Rv2$4`v?$C?(%iIErp|F_DzpZ+a^g#59JgDs_D8GyYo%9e^OFN{3Q9(JY6 znQ$ubQymgs>no~t$B!SEWOMY9zV@?5mU3}zVkfkbTb6Xb3%XrRW-W5$l`srTp8b@> zLT}#e)XzS7>Qs`GH;G4b@D6f6-F>><{Gy0M%ZoWNv1Ba_?>GE^vGYGgqJQb7(Y{4h zXs-@|u=6psmh7Y)8Vx(okQ7!>|BHnlje7G9y@%-64moQ(K;#YHc9h0AS#@n8PJPTs zQsM#UY-0NEhg=q|ukeXE+kxc(wsI;FxH`}k`-byZGw4){`^(WVw3#M+=#_Me-SLc5 zB|AYft6jQmna0xCEKezvp|*F&Epc^7Y{`l6s~l52Aa=3d)U%5;0QN{74E7v)2XIHf zSF67Z-OkjLOKiq&fxdF!;K3nTZWG7>It2M61T8kne}HPbk13|;?d!8UJbA^Ap^S`n z=*LGO#CW=IMtD89QNIU8Q+gU;@IZ0}(j+W#&f*;SP#_Pmref_UFwJY~TT_31VQSBq z$hi9HoHTIWqDR!!Fvs7}19DiMrMz!pOw3$X;KzR0TJh_!a0A~oKMF@vSH2uXyAX8% zVV7<7`>k7Y_5g}dex*o*8(w@^sf6YHhs^vy7(P~H1mvnKUpD&@ayO%@qEjFI>@yFe zHH&n`=a9dS5bT<3k0kOtrrs7jY3#j7CrQc4%*KZ4uInc70^$H`di(k^c^NPwO#b+S zdl1H>!uRC@%^_Xvo9-LFL@e^wntDscT2?q{&FS>YG|vPcim^6gC03TMEBB4uG0xSs zW7Ct+I07f!^A8kmU7e$dlNG-;E2I-!#Gp{SK9{bdY9$^BwVGFE6u-dtFj1Luakt@%XO12Ic;VI=mL-3w#`X4d^zHTm_nyANOka}24+2Y1?jQ_1m_#;A1 zBr8iD-x2zR+|S+4Nm*)A-Qdeu>0{_{dhBnHMJ7Eg(UeC`R(r39dS<|4Mwp}?T{Nm| z@FA)d5w-_(E?ukrYX|W$as}J>ISSi{e+8Llk8Fh@l1fEBhl_*1YTbCRGv3(Bc<;pg;)Osf8j*l literal 24137 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 diff --git a/apps/readest-app/src/__tests__/components/annotation-popup-layout.browser.test.tsx b/apps/readest-app/src/__tests__/components/annotation-popup-layout.browser.test.tsx index 285765c19..72324212e 100644 --- a/apps/readest-app/src/__tests__/components/annotation-popup-layout.browser.test.tsx +++ b/apps/readest-app/src/__tests__/components/annotation-popup-layout.browser.test.tsx @@ -123,8 +123,11 @@ const expectElement = (locator: unknown) => * where the triangle points up and highlight options float above. */ const Wrapper: React.FC<{ children: React.ReactNode }> = ({ children }) => ( + // One of the app's own themes, not daisyUI's stock `dark`: the stock palette + // is daisyUI's to change between releases (it did in v5), while the app's + // themes are pinned in themes.ts.
{ + cleanup(); + document.documentElement.removeAttribute('data-theme'); +}); + +const rgb = (hex: string) => { + const n = parseInt(hex.slice(1), 16); + return `rgb(${(n >> 16) & 255}, ${(n >> 8) & 255}, ${n & 255})`; +}; + +describe('daisyUI 5 theme tokens', () => { + it('compiles every built-in theme into --color-* tokens', () => { + for (const theme of themes) { + for (const scheme of ['light', 'dark'] as const) { + document.documentElement.setAttribute('data-theme', `${theme.name}-${scheme}`); + const { container } = render(
); + const style = getComputedStyle(container.firstElementChild as HTMLElement); + expect(style.backgroundColor, `${theme.name}-${scheme} base-100`).toBe( + rgb(theme.colors[scheme]['base-100']), + ); + expect(style.color, `${theme.name}-${scheme} primary`).toBe( + rgb(theme.colors[scheme].primary), + ); + expect(getComputedStyle(document.documentElement).colorScheme).toBe(scheme); + cleanup(); + } + } + }); + + it('applies runtime custom themes through the same tokens', () => { + applyCustomTheme({ + name: 'custom-test', + label: 'Custom', + colors: { + light: { bg: '#123456', fg: '#ffffff', primary: '#00ff00' }, + dark: { bg: '#654321', fg: '#000000', primary: '#ff00ff' }, + }, + }); + document.documentElement.setAttribute('data-theme', 'custom-test-dark'); + const { container } = render(
); + const style = getComputedStyle(container.firstElementChild as HTMLElement); + expect(style.backgroundColor).toBe('rgb(101, 67, 33)'); + expect(style.color).toBe('rgb(255, 0, 255)'); + expect(getComputedStyle(document.documentElement).colorScheme).toBe('dark'); + document.getElementById('theme-custom-test-styles')?.remove(); + }); + + it('keeps the daisyUI 4 field metrics', () => { + document.documentElement.setAttribute('data-theme', 'default-light'); + const { getByTestId } = render( + <> + + + + + + + + + , + ); + const box = (id: string) => getByTestId(id).getBoundingClientRect(); + expect(box('btn').height).toBe(48); + expect(box('btn-sm').height).toBe(32); + expect(getComputedStyle(getByTestId('btn-sm')).fontSize).toBe('14px'); + expect(box('input').height).toBe(48); + expect(box('select').height).toBe(48); + expect(getComputedStyle(getByTestId('btn')).borderTopLeftRadius).toBe('8px'); + expect(getComputedStyle(getByTestId('checkbox')).borderTopLeftRadius).toBe('8px'); + // daisyUI 5 narrowed the toggle track from 3rem to 2.5rem; the switch reads + // as base-100 track + base-content knob on both versions. + const toggle = getByTestId('toggle'); + expect(box('toggle').width).toBe(48); + expect(box('toggle').height).toBe(24); + expect(getComputedStyle(toggle).backgroundColor).toBe('rgb(255, 255, 255)'); + expect(getComputedStyle(toggle, '::before').backgroundColor).toBe('rgb(23, 23, 23)'); + // Each size has its own v4 width, so the base pin must not flatten them. + expect([box('toggle-sm').width, box('toggle-sm').height]).toEqual([32, 20]); + expect([box('toggle-xs').width, box('toggle-xs').height]).toEqual([24, 16]); + }); + + it('keeps the Tailwind 3 default palette', () => { + // Tailwind 4 ships an oklch palette that renders noticeably more vivid; the + // app pins the v3 values (globals.css @theme) so no page changes color. + const { getByTestId } = render( + <> +
+
+
+ , + ); + expect(getComputedStyle(getByTestId('green')).backgroundColor).toBe('rgb(34, 197, 94)'); + expect(getComputedStyle(getByTestId('gray')).color).toBe('rgb(107, 114, 128)'); + expect(getComputedStyle(getByTestId('red')).backgroundColor).toBe('rgb(239, 68, 68)'); + }); + + it('renders the select picker in-page (#5587)', () => { + const { getByTestId, getByLabelText } = render( + <> + + {}} + options={[{ value: 'a', label: 'A' }]} + ariaLabel='Settings select' + /> + , + ); + expect(getComputedStyle(getByTestId('select')).appearance).toBe('base-select'); + // The settings primitive strips daisyUI's chevron and chrome; it must not + // also strip the appearance, or the popup falls back to the OS one. + expect(getComputedStyle(getByLabelText('Settings select')).appearance).toBe('base-select'); + }); +}); diff --git a/apps/readest-app/src/__tests__/components/dropdown-viewport.browser.test.tsx b/apps/readest-app/src/__tests__/components/dropdown-viewport.browser.test.tsx index 87261a9c7..8d5836840 100644 --- a/apps/readest-app/src/__tests__/components/dropdown-viewport.browser.test.tsx +++ b/apps/readest-app/src/__tests__/components/dropdown-viewport.browser.test.tsx @@ -67,7 +67,7 @@ const renderMenu = ( > {labels.map((label) => ( - + ))} diff --git a/apps/readest-app/src/__tests__/components/font-dropdown-submenu.browser.test.tsx b/apps/readest-app/src/__tests__/components/font-dropdown-submenu.browser.test.tsx new file mode 100644 index 000000000..9965d82c9 --- /dev/null +++ b/apps/readest-app/src/__tests__/components/font-dropdown-submenu.browser.test.tsx @@ -0,0 +1,70 @@ +/** + * FontDropdown's "System Fonts" sub-list is a nested daisyUI dropdown. It must + * open only when the user activates the "System Fonts" row (daisyUI 4 showed it + * alongside the parent list), and the parent list must keep a real width: the + * rows are `w-full overflow-hidden`, so a shrink-to-fit menu collapses to 0px. + */ + +import { describe, it, expect, afterEach, vi } from 'vitest'; +import { render, cleanup } from '@testing-library/react'; +import { page } from 'vitest/browser'; + +vi.mock('@/context/EnvContext', () => ({ + useEnv: () => ({ envConfig: {}, appService: null }), +})); +vi.mock('@/hooks/useTranslation', () => ({ + useTranslation: () => (s: string) => s, +})); +vi.mock('@/hooks/useResponsiveSize', () => ({ + useResponsiveSize: (n: number) => n, + useDefaultIconSize: () => 20, +})); + +const { default: FontDropdown } = await import('@/components/settings/FontDropDown'); +await import('@/styles/globals.css'); + +afterEach(() => cleanup()); + +const renderDropdown = () => { + const onSelect = vi.fn(); + render( +
+ option} + /> +
, + ); + const menus = document.querySelectorAll('.dropdown-content'); + return { onSelect, list: menus[0]!, subList: menus[1]! }; +}; + +const visible = (el: HTMLElement) => getComputedStyle(el).visibility === 'visible'; + +describe('FontDropdown system fonts sub-list', () => { + it('opens the sub-list only from the System Fonts row', async () => { + const { onSelect, list, subList } = renderDropdown(); + expect(visible(list)).toBe(false); + + await page.elementLocator(document.querySelector('button.btn')!).click(); + expect(visible(list)).toBe(true); + expect(list.getBoundingClientRect().width).toBeGreaterThan(100); + expect(visible(subList)).toBe(false); + + await page.getByText('System Fonts').click(); + expect(visible(list)).toBe(true); + expect(visible(subList)).toBe(true); + // The sub-list sits beside the parent list with both bottom edges flush. + expect( + Math.abs(subList.getBoundingClientRect().bottom - list.getBoundingClientRect().bottom), + ).toBeLessThanOrEqual(1); + expect(subList.getBoundingClientRect().right).toBeLessThan(list.getBoundingClientRect().left); + + await page.getByRole('button', { name: 'Avenir' }).click(); + expect(onSelect).toHaveBeenCalledWith('Avenir'); + }); +}); diff --git a/apps/readest-app/src/__tests__/styles/daisyui-themes.test.ts b/apps/readest-app/src/__tests__/styles/daisyui-themes.test.ts new file mode 100644 index 000000000..1a8cb72a7 --- /dev/null +++ b/apps/readest-app/src/__tests__/styles/daisyui-themes.test.ts @@ -0,0 +1,33 @@ +import { describe, it, expect, vi } from 'vitest'; +import daisyuiThemes from '@/styles/daisyui-themes'; +import { themes, themeVariables } from '@/styles/themes'; + +/** + * The built-in Readest themes reach Tailwind through `@plugin './daisyui-themes.ts'` + * in globals.css (Tailwind 4 has no JS config). Every theme must compile to a + * `[data-theme="-"]` block carrying the same tokens the runtime + * injector emits for custom themes, so both paths render identically. + */ +describe('daisyui-themes plugin', () => { + const collect = () => { + const addBase = vi.fn(); + daisyuiThemes.handler({ addBase } as never); + return Object.assign({}, ...addBase.mock.calls.map(([styles]) => styles)) as Record< + string, + Record + >; + }; + + it('emits a light and a dark block for each built-in theme', () => { + const base = collect(); + for (const theme of themes) { + expect(base[`[data-theme="${theme.name}-light"]`]).toEqual( + themeVariables(theme.colors.light, 'light'), + ); + expect(base[`[data-theme="${theme.name}-dark"]`]).toEqual( + themeVariables(theme.colors.dark, 'dark'), + ); + } + expect(Object.keys(base)).toHaveLength(themes.length * 2); + }); +}); diff --git a/apps/readest-app/src/__tests__/styles/themes.test.ts b/apps/readest-app/src/__tests__/styles/themes.test.ts index 38801dd40..f566f4e97 100644 --- a/apps/readest-app/src/__tests__/styles/themes.test.ts +++ b/apps/readest-app/src/__tests__/styles/themes.test.ts @@ -1,45 +1,16 @@ -import { describe, it, expect, beforeAll } from 'vitest'; +import { describe, it, expect, beforeAll, afterEach } from 'vitest'; import { - hexToOklch, - getContrastOklch, getContrastHex, generateLightPalette, generateDarkPalette, + themeVariables, + applyCustomTheme, type BaseColor, + type CustomTheme, type Palette, } from '@/styles/themes'; import tinycolor from 'tinycolor2'; -describe('hexToOklch', () => { - it('should convert red (#ff0000) to oklch string', () => { - const result = hexToOklch('#ff0000'); - // Red in oklch should have high lightness, high chroma, hue around 29deg - expect(result).toMatch(/^\d+\.\d+%\s+[\d.]+\s+[\d.]+deg$/); - const parts = result.split(/[\s%]+/); - const lightness = parseFloat(parts[0]!); - expect(lightness).toBeGreaterThan(50); - expect(lightness).toBeLessThan(70); - }); - - it('should convert black (#000000) to oklch with 0% lightness', () => { - const result = hexToOklch('#000000'); - expect(result).toMatch(/^0\.0000%\s+0\s+0deg$/); - }); - - it('should convert white (#ffffff) to oklch with ~100% lightness', () => { - const result = hexToOklch('#ffffff'); - expect(result).toMatch(/^100\.0000%\s+0\s+0deg$/); - }); - - it('should produce achromatic output for gray colors', () => { - const result = hexToOklch('#808080'); - // Gray should have very low chroma - const parts = result.split(/[\s%]+/); - const chroma = parseFloat(parts[1]!); - expect(chroma).toBeLessThan(0.001); - }); -}); - describe('getContrastHex', () => { it('should return white for dark colors', () => { expect(getContrastHex('#000000').toLowerCase()).toBe('#ffffff'); @@ -54,18 +25,6 @@ describe('getContrastHex', () => { }); }); -describe('getContrastOklch', () => { - it('should return white oklch (100% 0 0deg) for dark colors', () => { - expect(getContrastOklch('#000000')).toBe('100% 0 0deg'); - expect(getContrastOklch('#333333')).toBe('100% 0 0deg'); - }); - - it('should return black oklch (0% 0 0deg) for light colors', () => { - expect(getContrastOklch('#ffffff')).toBe('0% 0 0deg'); - expect(getContrastOklch('#f0f0f0')).toBe('0% 0 0deg'); - }); -}); - describe('generateLightPalette', () => { const lightColors: BaseColor = { bg: '#ffffff', @@ -216,3 +175,87 @@ describe('palette contrast', () => { } }); }); + +describe('themeVariables', () => { + const palette = generateLightPalette({ bg: '#ffffff', fg: '#171717', primary: '#0066cc' }); + + it('emits daisyUI 5 color tokens as plain colors', () => { + const vars = themeVariables(palette, 'light'); + expect(vars['color-scheme']).toBe('light'); + expect(vars['--color-base-100']).toBe('#ffffff'); + expect(vars['--color-base-200']).toBe(palette['base-200']); + expect(vars['--color-base-300']).toBe(palette['base-300']); + expect(vars['--color-base-content']).toBe('#171717'); + expect(vars['--color-primary']).toBe('#0066cc'); + expect(vars['--color-secondary']).toBe(palette.secondary); + expect(vars['--color-accent']).toBe(palette.accent); + expect(vars['--color-neutral']).toBe(palette.neutral); + expect(vars['--color-neutral-content']).toBe(palette['neutral-content']); + for (const state of ['info', 'success', 'warning', 'error']) { + expect(vars[`--color-${state}`]).toMatch(/^oklch\(/); + expect(vars[`--color-${state}-content`]).toMatch(/^oklch\(/); + } + }); + + it('derives readable *-content colors like daisyUI 4 did (80% toward white or black)', () => { + const vars = themeVariables(palette, 'light'); + // #0066cc is dark, so its content color leans to white; the accent/secondary + // of this palette are light, so theirs lean to black. + expect(tinycolor(vars['--color-primary-content']!).isLight()).toBe(true); + expect(tinycolor(vars['--color-primary-content']!).toHexString()).not.toBe('#ffffff'); + expect(tinycolor(vars['--color-secondary-content']!).isDark()).toBe(true); + }); + + it('pins the daisyUI 4 shape so components keep their radii and flat look', () => { + const vars = themeVariables(palette, 'dark'); + expect(vars['color-scheme']).toBe('dark'); + expect(vars['--radius-field']).toBe('0.5rem'); + expect(vars['--radius-box']).toBe('1rem'); + expect(vars['--radius-selector']).toBe('1.9rem'); + expect(vars['--depth']).toBe('0'); + expect(vars['--noise']).toBe('0'); + expect(vars['--border']).toBe('1px'); + }); +}); + +describe('applyCustomTheme', () => { + const customTheme: CustomTheme = { + name: 'custom-1', + label: 'Custom', + colors: { + light: { bg: '#fefefe', fg: '#111111', primary: '#0066cc' }, + dark: { bg: '#101010', fg: '#eeeeee', primary: '#77bbee' }, + }, + }; + + afterEach(() => { + document.getElementById('theme-custom-1-styles')?.remove(); + }); + + it('injects one [data-theme] block per scheme with daisyUI 5 tokens', () => { + const names = applyCustomTheme(customTheme); + expect(names).toEqual({ light: 'custom-1-light', dark: 'custom-1-dark' }); + const style = document.getElementById('theme-custom-1-styles') as HTMLStyleElement; + expect(style.tagName).toBe('STYLE'); + const css = style.textContent!; + expect(css).toContain('[data-theme="custom-1-light"]'); + expect(css).toContain('[data-theme="custom-1-dark"]'); + expect(css).toMatch(/custom-1-light"\]\s*\{[^}]*color-scheme:\s*light/); + expect(css).toMatch(/custom-1-dark"\]\s*\{[^}]*color-scheme:\s*dark/); + expect(css).toMatch(/custom-1-light"\]\s*\{[^}]*--color-base-100:\s*#fefefe/); + expect(css).toMatch(/custom-1-dark"\]\s*\{[^}]*--color-base-100:\s*#101010/); + expect(css).not.toContain('--b1:'); + expect(css).not.toContain('--fallback-'); + }); + + it('replaces the previous style element for the same theme', () => { + applyCustomTheme(customTheme); + applyCustomTheme({ + ...customTheme, + colors: { ...customTheme.colors, light: { ...customTheme.colors.light, bg: '#f0f0f0' } }, + }); + const styles = document.querySelectorAll('#theme-custom-1-styles'); + expect(styles).toHaveLength(1); + expect(styles[0]!.textContent).toContain('--color-base-100: #f0f0f0'); + }); +}); diff --git a/apps/readest-app/src/app/auth/components/EmailPasswordAuth.tsx b/apps/readest-app/src/app/auth/components/EmailPasswordAuth.tsx index 6c2a23f8b..7e423b0c9 100644 --- a/apps/readest-app/src/app/auth/components/EmailPasswordAuth.tsx +++ b/apps/readest-app/src/app/auth/components/EmailPasswordAuth.tsx @@ -138,9 +138,9 @@ export default function EmailPasswordAuth({ onSubmit={handleSubmit} className='w-full space-y-4' > -
-