v4.0.0.alpha-1
Pre-release
Pre-release
Mirador v4 is a major refresh of many of the upstream dependencies of this project. Notably, Mirador v4 allows (and requires) downstream application use to React 18 and Material UI 5. Many other Mirador dependencies have been upgraded or replaced with modern equivalents. This alpha-1
prerelease is being made early to facilitate additional testing.
Mirador application developers are encouraged to read the (lengthy) Material UI 5 upgrade guide, React 18 upgrade guide, and review the commits below to see what changes were necessary in Mirador. A full upgrade guide will included in future Mirador release notes.
MUI 5
- Update @material-ui/core to 4.12 by @thatbudakguy in #3528
- Fix warnings related to Material UI updates by @dicksonlaw583 in #3476
- Fix MUI5 testing errors by @marlo-longley in #3793
- Fix some styling and console errors on mui5 branch by @marlo-longley in #3803
- Run CI tests when making PRs against the mui5 branch by @marlo-longley in #3794
- Rebased #3795 by @cbeer in #3804
- [MUI] Apply styles to the ToC nodes by @cbeer in #3811
- Restore spacing to the collection modal dialog by @cbeer in #3812
- [MUI5] Give the workspace add resource button a little spacing by @cbeer in #3810
- [MUI5] Add a custom background color for annotation + search chips in the gallery view by @cbeer in #3809
- [Mui5] Fix up companion window section styling by @cbeer in #3808
- [MUI5] Center collapse icon in the container by @cbeer in #3807
- [MUI5] Improve the window sidebar border by @cbeer in #3806
- Add docu for selectors by @fstoe in #3787
- [MUI5] Reduce Window top menu button margin by @cbeer in #3805
- [MUI5] Fix layer drag handle spacing by @cbeer in #3813
- Update CI to use current LTS node releases by @cbeer in #3817
- [MUI5] Restore auth banner colors by @cbeer in #3814
- [MUI5] Remove unnecessary value for boolean property by @cbeer in #3815
- [MUI5] Always give the title controls some space by @cbeer in #3816
- Use an explicit dom ref for handling scrolling to dom elements by @cbeer in #3819
- Remove unused classes propType by @marlo-longley in #3818
- Extract a styled
CompanionWindowSection
by @cbeer in #3820 - Create a MenuItem variant instead of using inline sx styles by @cbeer in #3823
- Use an MUI accordion for the sidebar collapsing sections by @cbeer in #3822
- Refactor WindowCanvasNavigationControls to pull stacking + alignment up by @cbeer in #3825
- Push IIIFThumbnail styling into slots + variants by @cbeer in #3824
- Pull button margins up to its container by @cbeer in #3828
- Create a Dialog variant to contain a modal within a mirador window by @cbeer in #3827
- Fix the CSS selector for restoring a focus state to the Fab by @cbeer in #3830
- Use MenuItem divider prop instead of styling it ourselves by @cbeer in #3829
- Refactor ErrorContent to use styled slots by @cbeer in #3826
- Remove unnecessary StyledMiradorMenuButton by @cbeer in #3832
- Extract
WorkspaceDialog
styles and push styling up to settings by @cbeer in #3833 - Pull SanitizedHtml styling up by @cbeer in #3836
- Pull workspace styles up by @cbeer in #3838
- Pull WorkspaceControlPanel styles up by @cbeer in #3839
- Pull WindowTopBar styles up by @cbeer in #3841
- Pull window options selection styles up by @cbeer in #3842
- Use Badge color instead of custom styling by @cbeer in #3843
- Pull companion area styling up by @cbeer in #3835
- Create a common selected style for mirador buttons by @cbeer in #3840
- Push companion window styles up to settings by @cbeer in #3834
- Remove apparently unused styles by @cbeer in #3845
- Fix ManifestListItem border state by @cbeer in #3846
- Remove unnecessary styling on cancel button by @cbeer in #3847
- Pull GalleryView styles up by @cbeer in #3848
- Pull window sidebar styles up by @cbeer in #3849
- The Fab ripple is what gives it a focused state; instead of disabling… by @cbeer in #3850
- Remove unnecessary button margin by @cbeer in #3853
- Style the workspace sidebar with flexbox by @cbeer in #3852
- Pull more styling up by @cbeer in #3851
- Continue to apply custom tooltip margins by @cbeer in #3855
- Mui5 sidebar list styles by @cbeer in #3854
- Pull Window styles up by @cbeer in #3837
- Restyle the WorkspaceExport form by @cbeer in #3831
- Fix branding alignment by @cbeer in #3856
- Fix dark mode issues with the collection dialog by @cbeer in #3857
- Wrap the empty workspace in paper to get the right background in dark… by @cbeer in #3858
- Update dependencies by @cbeer in #3860
- remove unused clsx dependency by @cbeer in #3861
- Update annotation tags to avoid improperly nested HTML tags by @cbeer in #3859
- Replace redux-devtools-extension with @redux-devtools/extension by @cbeer in #3863
- Remove deprecated @mui/styles package by @cbeer in #3862
- Upgrade from MUI4 to MUI5 [breaking changes] by @cbeer in #3648
React 17 + 18
- Remove enzyme by @cbeer in #3740
- Update to React 17 by @cbeer in #3741
- Update testing libraries by @cbeer in #3742
- Update to React 18 by @cbeer in #3864
Other dependency updates
- Update development dependencies and test with current versions of nodejs by @cbeer in #3547
- Update dependencies by @cbeer in #3591
- Update react-full-screen by @cbeer in #3605
- Replace @researchgate/react-intersection-observer with react-intersection-observer by @cbeer in #3608
- enableFetchMock by @jcoyne in #3619
- Stop using isomorphic-unfetch by @jcoyne in #3622
- Remove isomorphic-fetch dependency by @jcoyne in #3627
- Stop requiring polyfills by @jcoyne in #3612
- Update I18n libraries by @cbeer in #3609
- Use modern jsx transform approach by @cbeer in #3604
- Allow OSD 3.x and 4.x by @cbeer in #3635
- Update puppeteer by @cbeer in #3634
- Replace IComCom library with custom component by @marlo-longley in #3636
- Replace react-aria-live with @react-aria/live-announcer by @cbeer in #3610
- Update react-mosaic, react-dnd and related libraries by @cbeer in #3606
- Install react-testing-library and use it for a test by @cbeer in #3656
Internationalization
- Improve i18n translate for Chinese by @joesong168 in #3513
- Added new language - Bulgarian by @cbeer in #3589
- New language - Farsi by @dismorfo in #3738
- Add new language - Estonian by @gerdesque in #3891
Developer experience
- Update README.md by @ColeDCrawford in #3554
- Upgrade github actions by @jcoyne in #3613
- Drop node 14.x from the test matrix by @jcoyne in #3621
- Switch to codecov github action by @jcoyne in #3624
- Update LICENSE by @enriquediaz in #3683
- Create CODE_OF_CONDUCT.md by @enriquediaz in #3682
- Update CONTRIBUTING.md by @enriquediaz in #3800
IIIF Support
- Support display of IIIF v3 manifest summary by @marlo-longley in #3633
- Handle v3 Provider logos as thumbnails by @marlo-longley in #3657
- Get vtt captions from v3 annotations by @marlo-longley in #3664
- Use the jsdom test environment instead of stubbing it ourselves by @cbeer in #3666
Accessibility
- Rename ariaHidden prop to aria-hidden so it gets passed along right by @cbeer in #3641
- Change cursor icon when user's cursor is over canvas image by @phil-plencner-hl in #3644
React-testing-library
- Convert WindowTopBarTitle.test.js to use react-testing-library by @marlo-longley in #3669
- Switch ViewerInfo test to use React Testing Library. by @phil-plencner-hl in #3662
- Convert WindowCanvasNavigationControls.test.js to react-testing-library by @marlo-longley in #3670
- Install react-testing-library and use it for some tests by @cbeer in #3642
- Convert WindowTopMenu.test.js to react-testing-library by @marlo-longley in #3671
- Viewer related tests by @phil-plencner-hl in #3672
- Convert WorkspaceArea tests to use RTL by @cbeer in #3676
- More viewer tests by @phil-plencner-hl in #3677
- Convert WorkspaceExport/Import tests to use RTL by @cbeer in #3675
- Use setup-node@v3 by @cbeer in #3684
- Remove unused state prop from import test by @cbeer in #3681
- Convert WorkspaceAddButton.test.js to use RTL by @cbeer in #3680
- Passing ViewerNavigation Tests. by @phil-plencner-hl in #3685
- Convert tests for PluginHook to RTL by @marlo-longley in #3690
- Convert WorkspaceAdd-related tests to RTL by @cbeer in #3691
- Refactor and convert tests for some menu/button pairs by @marlo-longley in #3679
- Convert Mosaic tests to use RTL by @cbeer in #3686
- Convert test for WindowTopBarPluginArea to RTL by @marlo-longley in #3689
- Gallery view test by @phil-plencner-hl in #3687
- Bump up the timeout for puppeteer actions in integration tests by @cbeer in #3692
- Convert window list components to RTL by @cbeer in #3674
- Convert WorkspaceControlPanel tests to use RTL by @cbeer in #3678
- Rewrite companion window tests using RTL by @cbeer in #3668
- Convert tests to RTL and minor refactor for WindowTopBarPluginMenu by @marlo-longley in #3694
- Gallery view thumbnail by @marlo-longley in #3698
- Convert WindowSideBar tests to RTL by @marlo-longley in #3700
- Convert the WorkspaceMenu tests to use RTL by @cbeer in #3699
- Fix Github Check Annotations by @marlo-longley in #3701
- Convert CollapsibleSection test to use RTL by @cbeer in #3703
- Convert ErrorDialog test to use RTL by @cbeer in #3705
- Convert tests for WindowTopBar to RTL by @marlo-longley in #3688
- Convert Workspace test to RTL by @cbeer in #3697
- Update SanitizedHtml tests for RTL by @cbeer in #3709
- Convert MiradorMenuButton tests to RTL by @cbeer in #3706
- Revert "Mark annotation integration tests as pending" by @cbeer in #3667
- Rewrite tests for WorkspaceElastic with RTL by @cbeer in #3702
- Update LanguageSettings to use RTL by @cbeer in #3715
- Update Companion window area to use RTL by @cbeer in #3704
- Convert BackgroundPluginArea tests to use RTL by @cbeer in #3707
- Update ScrollIndicatedDialogContent test to use RTL by @cbeer in #3708
- Update NestedMenu tests to use RTL by @cbeer in #3710
- Convert CompanionWindowFactory to use RTL by @cbeer in #3712
- Convert tests for Window to RTL by @marlo-longley in #3719
- Rewrite the App test using RTL by @cbeer in #3720
- Convert CollectionDialog tests to RTL by @cbeer in #3713
- Convert FullScreenButton tests to use RTL by @cbeer in #3716
- Use RTL to test AccessTokenSender by @cbeer in #3718
- Update NewWindow tests to use RTL by @cbeer in #3717
- Convert PrimaryWindow test to RTL by @marlo-longley in #3723
- Update LocalePicker tests to user RTL by @cbeer in #3714
- Convert CanvasLayers test to use RTL by @cbeer in #3727
- Convert withPlugins to use RTL by @cbeer in #3711
- Convert tests for IIIFAuthentication to RTL by @marlo-longley in #3731
- Convert ScrollTo test to use RTL by @cbeer in #3724
- Update WorkspaceAdd scrollTo test to use RTL by @cbeer in #3725
- Convert workspace mosaic change test to use RTL by @cbeer in #3726
- Rewrite the SearchResults test using RTL by @cbeer in #3733
- Convert tests for WindowAuthenticationBar to RTL by @marlo-longley in #3735
- Convert AppProviders tests to RTL by @marlo-longley in #3734
- Convert SearchHit tests to RTL by @cbeer in #3730
- Convert OpenSeadragonViewer tests to use RTL by @cbeer in #3732
- Convert MiradorViewer tests to use RTL instead of enzyme by @cbeer in #3739
Other Changes
- Fix typo in WindowSideBarCollectionPanel (fix #3518) by @joesong168 in #3519
- Fix error when style props don't have left property (fix #3511) by @joesong168 in #3512
- Fix annotation rendering when OSD has viewport margin. by @jbaiter in #3510
- Fix unmount not finding container when already detached from document by @fbessou in #3534
- Allow some more PropTypes.object through eslint by @cbeer in #3542
- Scroll the selected image to view in Gallery by @priyamanalil in #3530
- Guard against empty canvas groupings. Related to #3543 by @cbeer in #3545
- Fix #3522, add selector and UI for related by @lutzhelm in #3535
- Update manifest link by @DigitLib in #3571
- Build fixes by @cbeer in #3607
- Use a valid IIIF info id in test by @jcoyne in #3620
- Use context to manage access to the workspace ref instead of going through redux by @cbeer in #3645
- Mark annotation integration tests as pending by @cbeer in #3663
- The
Window
component doesn't use the window prop by @cbeer in #3660 - Run AttributionPanel tests with resource loading so react-image loadi… by @cbeer in #3722
- Use react-intersection-observer's IntersectionObserver mock by @cbeer in #3721
- Remove unused import by @cbeer in #3737
- Refactor SidebarIndexTableOfContents to use MUI's tree view keyboard … by @cbeer in #3728
- Use the custom render pattern consistently across the tests by @cbeer in #3743
- Use minRows instead of rows by @cbeer in #3751
- fix: elastic window DnD on mobile by @bodo22 in #3736
- theme.mixins.gutters() is deprecated; use the mixin source directly by @cbeer in #3748
- Add a style.top property to the test object in order to silence a rea… by @cbeer in #3753
- Stop plugin-specific props from spreading to the DOM elements to supp… by @cbeer in #3747
- MUI's onClose now handles escapeKeyDown internally by @cbeer in #3750
- Wrap hover in an act to appease RTL by @cbeer in #3755
- Provide the anchorEl prop to the WindowList component under test to s… by @cbeer in #3754
- Badge overlap=rectangle was deprecated by @cbeer in #3758
- Wrap the ScrollTo in the TOC TreeView to remove the nodeId before it … by @cbeer in #3744
- Mock window.prompt to work-around missing jsdom APIs by @cbeer in #3756
- Allow WorkspaceElasticWindow to focus by @marlo-longley in #3757
- Start cleaning up i18n lint errors by @cbeer in #3759
- Remove
--forceExit
flag now that all test are in RTL by @cbeer in #3762 - Pass a stub plugin component when injecting plugins; fixes #3760 by @cbeer in #3763
- Remove unused icon style; fixes #3761 by @cbeer in #3764
- Fix build by @morpheus-87 in #3779
- add missing german translations by @fstoe in #3788
- Make OpenSeadragonViewer tests compatible with OpenSeadragon 2.4.2 by @lutzhelm in #3798
- Don't construct new objects in selector inputs by @cbeer in #3865
- Get rid of a function as an input to a selector by @cbeer in #3866
- Don't hold space for companion windows if there aren't any. by @cbeer in #3867
- Clean up some unnecessary wrappers and clean up workspace styles by @cbeer in #3868
- Fix selector for the manifest description or summary by considering the current language by @morpheus-87 in #3780
New Contributors
- @joesong168 made their first contribution in #3519
- @thatbudakguy made their first contribution in #3528
- @fbessou made their first contribution in #3534
- @priyamanalil made their first contribution in #3530
- @ColeDCrawford made their first contribution in #3554
- @jcoyne made their first contribution in #3616
- @marlo-longley made their first contribution in #3633
- @phil-plencner-hl made their first contribution in #3644
- @dismorfo made their first contribution in #3738
- @enriquediaz made their first contribution in #3683
- @fstoe made their first contribution in #3788
- @gerdesque made their first contribution in #3891
Full Changelog: v3.3.0...v4.0.0.alpha-1