* fix(deps): regenerate package-lock.json
Co-Authored-By: Claude Code <noreply@anthropic.com>
* fix(deps): regenerate package-lock.json
Moved @openedx/frontend-build from dependencies to devDependencies.
Removed direct jest devDependency which was causing ts-jest hoisting issues.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(tests): use require() for MockedPluginSlot in jest.mock
Jest hoists jest.mock() calls to the top of the file, which caused
MockedPluginSlot to be undefined when the mock factory executed.
Using require() inside the factory ensures it loads at runtime.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(types): handle nullable breakpoint types
Paragon's breakpoint types now have optional minWidth/maxWidth properties.
Added non-null assertions since these values are always defined in practice.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(tests): add IntlProvider to ContentIFrame tests
Paragon's ModalDialog now uses useIntl() (openedx/paragon#3624),
requiring an IntlProvider in the component ancestry.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(tests): await async operations in Course tests
Fixed dangling waitFor blocks that weren't awaited, causing tests
to not actually wait for async operations. Changed to properly use
await with screen.findBy*() queries.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix(tests): use dynamic imports in LearnerToolsSlot tests
Jest hoists mock calls but ES imports run before the test body.
Using dynamic imports in beforeEach ensures mocks are set up
before modules are loaded.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
---------
Co-authored-by: Claude Code <noreply@anthropic.com>
The previous implementation had a race condition that sometimes prevented
XBlocks from being marked as viewed. Users had to scroll or resize the window
to trigger visibility tracking instead of having it happen once content loads.
The commit adds eventlistener which picks up the autoAdvance message and
triggers the next sequence. This has the same effect of clicking the
next button.
Signed-off-by: Farhaan Bukhsh <farhaan@opencraft.com>
* fix: fixed right panel closing issue
* fix: fixed status of notificationTrayStatus in session storage
* test: added test cases to close or open notification tray
When content within a sequence was shorter than the height of the browser viewport, the `.sequence-container > .outline-sidebar-wrapper` element does not expand appropriately. This caused the course outline sidebar to be partially or completely hidden from view.
Adds an event handler on the window resize to check if the sidebar isOpen and the size of the viewport is smaller than the sidebar display to hide the sidebar and prevent it from blocking the course view.
* feat: base modifications to disable completion checks when flag enabled
* chore: started updating tests
* chore: udpated tests
* chore: added missing negative test
---------
Co-authored-by: Adolfo R. Brandes <adolfo@axim.org>
Old certificates icons contained edX trademark logos, which were not
suitable for the open source repos. Replaced with icons that contain
Open edX logos.
This PR updates the hover background for the top navigation buttons that are shown when the left side navigation is enabled. The hover background is updated to match the hover background of other existing IconButton components, see DiscussionNotificationTrigger.jsx, on the page.
This PR updates the unit title plugin to include all the elements that are part of the unit title, which includes the unit title, bookmark button, and navigation buttons (if left sidebar navigation is enabled).
This commit fixes a bug that prevents the fetchExamAccessToken hook in the useExamAccess hook from running. This occurs when the value of isExam returned by the useIsExam hook changes from false to true. Because the dependency array of the useEffect hook within the useExamAccess hook was ['id'], the useEffect hook would not rerun on changes to isExam. The fix is to add isExam to the dependency array.
When using the right new-sidebar with the left sidebar navigation, the icon for the right sidebar changed whenever the left sidebar was open. The icon change is supposed to indicate to users that the right sidebar is open. It is confusing to users when the left sidebar navigation is open and the right sidebar icon is filled instead of outlined.
* feat: extend CourseOutlineSidebarTriggerSlot props
* feat: Remove courseId from CourseOutlineSidebarTriggerPlugin props
* feat: update useContextId to use courseware data along with coursehome
* feat: extend useCourseOutlineSidebar values with sequenceStatus
This PR fixes the following accessibility issues:
1. Header used for screenreader only text
2. Element focus when expanding and dismissing welcome message
3. Bookmark button using wrong ARIA attributing while processing bookmark status
* feat: move unit next button slot to plugins folder
* feat: update unit navigation at top to use next unit plugin
* fix: remove 2u plugin specific code
* fix(deps): update dependency @openedx/paragon to v22.13.0
* fix: update use of useWindowSize() to reflect accurate data types
* chore: allow slightly larger bundle size for new paragon :/
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>