Skip to content

Commit

Permalink
FEAT - Restyle interactive elements to be more accessible (pydata#1564)
Browse files Browse the repository at this point in the history
* Consistent focus ring (first pass) (#1549)

* wip

* Style focus state in header nav

* update focus ring style on all focussable elements

* simplify

* fix links in mobile sidebar overlay

* put focus rings around a few more focusable elements

* polish

* update comment

* review

* better align focus ring on collapsible admonitions

* comment and simplify sphinx-togglebutton focus ring

* make css override more explicit

* Fix SD link-card focus ring and on homepage, bring links inside card

* Update docs/index.md

---------

Co-authored-by: Daniel McCloy <dan@mccloy.info>

* Resolve current sidebar link notch and focus ring (#1561)

* Fix sidebar current notch

* focus-ring-radius

* missed a spot 0.125rem

* keep focus ring on top

* Restyle Sphinx Design tabs (#1555)

* restyle sphinx design tabs

* increase panel border radius

* increase line height, zero padding-y

* use shadow variable

* Update src/pydata_sphinx_theme/assets/styles/extensions/_sphinx_design.scss

* Update src/pydata_sphinx_theme/assets/styles/extensions/_sphinx_design.scss

* Fix tabbed panel colors (#1567)

* Header nav link styles (focus, hover, current) (#1545)

* Implement header nav link styles

* add comments

* add comment

* changes from implementation review

* Consistent focus ring (first pass) (#1549)

* wip

* Style focus state in header nav

* update focus ring style on all focussable elements

* simplify

* fix links in mobile sidebar overlay

* put focus rings around a few more focusable elements

* polish

* update comment

* review

* better align focus ring on collapsible admonitions

* comment and simplify sphinx-togglebutton focus ring

* make css override more explicit

* Fix SD link-card focus ring and on homepage, bring links inside card

* Update docs/index.md

---------

Co-authored-by: Daniel McCloy <dan@mccloy.info>

* Resolve current sidebar link notch and focus ring (#1561)

* Fix sidebar current notch

* focus-ring-radius

* missed a spot 0.125rem

* keep focus ring on top

* Restyle Sphinx Design tabs (#1555)

* restyle sphinx design tabs

* increase panel border radius

* increase line height, zero padding-y

* use shadow variable

* Update src/pydata_sphinx_theme/assets/styles/extensions/_sphinx_design.scss

* Update src/pydata_sphinx_theme/assets/styles/extensions/_sphinx_design.scss

* Fix tabbed panel colors (#1567)

* update feature focus (#1569)

* docs: add instructions for custom SVG icons (#1490)

* docs: add instructions for custom SVG icons

* docs: minor tweaks in SVG icon instructions

* docs: some more tweaks to SVG icon instructions

* Update docs/user_guide/header-links.rst

Co-authored-by: Rambaud Pierrick <12rambau@users.noreply.github.com>

* Change literalinclude to code-block in header links

* Update docs/user_guide/header-links.rst

Co-authored-by: Daniel McCloy <dan@mccloy.info>

* Update docs/user_guide/header-links.rst

* Update docs/user_guide/header-links.rst

* Update docs/user_guide/header-links.rst

* Update docs/user_guide/header-links.rst

* Update docs/user_guide/header-links.rst

---------

Co-authored-by: tgresavage <thomas.gresavage.ext@afresearchlab.com>
Co-authored-by: Rambaud Pierrick <12rambau@users.noreply.github.com>
Co-authored-by: Daniel McCloy <dan@mccloy.info>

* fix: make table background transparent (#1546)

* fix: make table background transparent

* fix: make table background transparent

* fix: add color-theme option to html tag (#1536)

* Silence warnings (#1542)

* avoid webpack warning during asset compile

* avoid frozen modules warning during import

* try to make jupyterlite quieter

* add config option to silence warnings

* fix tests

* add docs

* hide conditional warning logic in utils

* bump: 0.14.2 → 0.14.3

* chore: back to dev

* docs: add the list of component using a directive (#1476)

* fix: create the component list automatically

* fix: read the first comment as documentation

* docs: add disclaimer on .html suffix

* docs: document every component with a simple one liner

* fix: use regex to identify comments

* update component branch (#15)

* Change default logo alt text (#1472)

* Default logo alt text only if no extra text

* change default logo

* use docstitle as default logo alt text

* update docs to reflect change

* Apply suggestions from code review

Co-authored-by: Daniel McCloy <dan@mccloy.info>

* use string formatting operator

* Update docs/user_guide/branding.rst

* docs fixes

* Update docs/user_guide/branding.rst

* add test

* Update pyproject.toml

* revert to original

---------

Co-authored-by: Daniel McCloy <dan@mccloy.info>
Co-authored-by: Rambaud Pierrick <12rambau@users.noreply.github.com>

* chore(i18n) catalan (#1488)

i18n: Translate sphinx.po in ca

100% translated source file: 'sphinx.po'
on 'ca'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>

* Build(deps): Bump postcss and css-loader (#1494)

Bumps [postcss](https://github.com/postcss/postcss) to 8.4.31 and updates ancestor dependency [css-loader](https://github.com/webpack-contrib/css-loader). These dependencies need to be updated together.


Updates `postcss` from 8.4.21 to 8.4.31
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.21...8.4.31)

Updates `css-loader` from 3.6.0 to 6.8.1
- [Release notes](https://github.com/webpack-contrib/css-loader/releases)
- [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/css-loader/compare/v3.6.0...v6.8.1)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: indirect
- dependency-name: css-loader
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Revert "Build(deps): Bump postcss and css-loader" (#1509)

Revert "Build(deps): Bump postcss and css-loader (#1494)"

This reverts commit 185a37aa36820f77bffa4c87a772092e9e7cc380.

* Update pst docs buttons (#1502)

* call them button-links

* copy edit

* docs: link back to GitHub from PyPI metadata (#1504)

This will add a "Source" link in the PyPI page.

* navigation_with_keys = False (#1503)

* navigation_with_keys = False

* None -> False

* Apply suggestions from code review

---------

Co-authored-by: Daniel McCloy <dan@mccloy.info>

* fix: convert "stable" to actual version number (#1512)

* convert "stable" to actual version number

* fix tests re: navigation_with_keys

* try bumping autoapi

* refactor: use nbsphinx as the default execution lib (#1482)

* refactor: use nbsphinx as the default execution lib

* add nbstripout to the pre-commits'

* add pandoc to the readthedocs deps

* refactor: clean the notebook

* move the example to the correct folder

* fix: solve link issue

* install pandoc in the test environment

* fix: display of large table in executed cells

* avoid Userwarnings from matplotlib

* hide the matplotlib wrning management cell

* Update readthedocs.yml

* build: use pandoc_binary to install pandoc

* docs: add reference to pandoc in the setup

* update docs

* remove pypandoc_binary

* Update pyproject.toml

Co-authored-by: gabalafou <gabriel@fouasnon.com>

* ci: use back setup-pandoc

* Trigger CI build

---------

Co-authored-by: Gabriel Fouasnon <gabriel@fouasnon.com>

* BUG - Clear alt_text in conf.py (#1471)

* comment out alt_text in conf.py

* set alt_text to empty string

* remove alt_text from conf.py

* fix: use 12rambau fork until it's merged with nikeee repo (#1517)

* deps: drop support for Sphinx 5 (#1516)

* remove ref to myst-nb

* update minimal supported version of sphinx

* Fix: (webpack.config.js) css-loader API change (#1508)

* Fix: (webpack.config.js) css-loader API change

The build was broken in
<https://github.com/pydata/pydata-sphinx-theme/commit/185a37aa36820f77bffa4c87a772092e9e7cc380>/<https://github.com/pydata/pydata-sphinx-theme/pull/1494>.

This change fixes the build, and it seems to be in accordance with the
current API as described at <https://github.com/webpack-contrib/css-loader/blob/c6f36cf91ac61743a70e81cfb077faa0f8730ebe/README.md#boolean>.

Closes <https://github.com/pydata/pydata-sphinx-theme/issues/1507>.

* dedup

* restore version bump

---------

Co-authored-by: Daniel McCloy <dan@mccloy.info>

* Fix duplicate HTML IDs (#1425)

* Fix duplicate HTML IDs

* fix tests

* Do not animate the version admonitions colors. (#1424)

Otherwise a delay has to be added to the accessibility color
contrast checks, to wait for the colors to fully transition.

* BUG - Remove redundant ARIA in breadcrumb navigation (#1426)

* style(i18n): French Typo fixed (#1430)

* Add the ability to add a center section to the footer (#1432)

* Add a center section for the footer

* Add docs for footer_center

* Add a test site for the center footer

* test it in our own docs

* remove new test site

* add footer test

---------

Co-authored-by: Daniel McCloy <dan@mccloy.info>

* Build(deps): Bump actions/checkout from 3 to 4 (#1433)

Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add dropdown_text argument to generate_header_nav_html (#1423)

* Add dropdown_text argument to generate_header_nav_html

* Add a test, fix typo in theme.conf and remove header_dropdown_text from docs/conf.py

* fixed?

---------

Co-authored-by: Daniel McCloy <dan@mccloy.info>

* fix: rollback ref and Id changes (#1438)

* bump: version 0.13.3 → 0.14.0  (#1440)

* bump version

* update version switcher

* back to dev

* fix: change the z-index of the dropdown (#1442)

In order to be on top of the primary sidebar on small screens.

* fix: set the same background for dark/light (#1443)

* fix: set the same background for dark/light
et the same background color for all state of the search field. It is currently only applied when hovered

* fix: wrong css selector

* Update src/pydata_sphinx_theme/assets/styles/components/_search.scss

* Update src/pydata_sphinx_theme/assets/styles/components/_search.scss

* Fix duplicate HTML IDs

* fix tests

* unique_html_id

* backwards-compat generate_header_nav_html

* feedback review

* update fixture

* ughhhh...caching

* code cleanup

* fix test snapshot

* put comment inside def

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Denis Bitouzé <dbitouze@wanadoo.fr>
Co-authored-by: Stuart Mumford <stuart@cadair.com>
Co-authored-by: Daniel McCloy <dan@mccloy.info>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alenka Frim <AlenkaF@users.noreply.github.com>
Co-authored-by: Rambaud Pierrick <12rambau@users.noreply.github.com>

* chore: build the devcontainer automatically in codespace (#1483)

* chore: build the devcontainer automaticallyin codespace

* refactor: lint

* add pandoc to the environment

* Fix font color in search input box (#1524)

* Fix color

* Use --pst-color-text-base

* docs: add DecentralChain (#1528)

Co-authored-by: jourlez <josuecr.288@gmail.com>

* Updates for file src/pydata_sphinx_theme/locale/en/LC_MESSAGES/sphinx.po in ru [Manual Sync] (#1527)

i18n: Translate sphinx.po in ru [Manual Sync]

96% of minimum 20% translated source file: 'sphinx.po'
on 'ru'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>

* ignore transient errors in windows build CI (#1520)

* use warning list

* clean up notebook

* refactor to pass on all platforms?

* simplify

* fix logic

* iterate backwards

* fix plaform detection? also don't log unnecessarily�[H

* ignore empty string warnings

* remove notebook metawarning

* Revert "remove notebook metawarning"

This reverts commit 42f46723eb9eeea7603efb91fbfb6bdfa1de28b3.

* try again

* debug the mysterious empty warning

* escape color codes

* import

* triage by intermittency, not by platform; better var names

* simplify

* fix list.remove

* undo what I broke

* Update tests/utils/check_warnings.py

* refactor: remove extention on component set-up (#1529)

* use event.key for search shortcut (#1525)

* use event.key for search shortcut

* suggestions from review

* caps lock

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: gabalafou <gabriel@fouasnon.com>
Co-authored-by: Daniel McCloy <dan@mccloy.info>
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ned Batchelder <ned@nedbatchelder.com>
Co-authored-by: Adam Porter <adam@alphapapa.net>
Co-authored-by: Denis Bitouzé <dbitouze@wanadoo.fr>
Co-authored-by: Stuart Mumford <stuart@cadair.com>
Co-authored-by: Alenka Frim <AlenkaF@users.noreply.github.com>
Co-authored-by: Harutaka Kawamura <hkawamura0130@gmail.com>
Co-authored-by: jourlez <josuecr.288@gmail.com>

* fix: use a directive instead of raw html

* fix: make links externals

* fix: set reference in paragraphs

* fix: missing parameter

* fix: use the stem for the component name

* refactor: remove never used variables

* standardize component descriptions

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: gabalafou <gabriel@fouasnon.com>
Co-authored-by: Daniel McCloy <dan@mccloy.info>
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ned Batchelder <ned@nedbatchelder.com>
Co-authored-by: Adam Porter <adam@alphapapa.net>
Co-authored-by: Denis Bitouzé <dbitouze@wanadoo.fr>
Co-authored-by: Stuart Mumford <stuart@cadair.com>
Co-authored-by: Alenka Frim <AlenkaF@users.noreply.github.com>
Co-authored-by: Harutaka Kawamura <hkawamura0130@gmail.com>
Co-authored-by: jourlez <josuecr.288@gmail.com>

* fix: primer link in docs (#1556)

* docs: add data-content (#1559)

Reproduce the change made in Sphinx 7
https://github.com/sphinx-doc/sphinx/commit/8e730ae303ae686705ea12f44ef11da926a87cf5#diff-a5066e933cbf65adc46e0d1ab9a0b44e0a53ca64cc95dca7e6aa902aed6bd468R105

* Obviate background-from-color-variable (#1558)

* Obviate background-from-color-variable

* backwards compatibility

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: gresavage <tomgresavage@gmail.com>
Co-authored-by: tgresavage <thomas.gresavage.ext@afresearchlab.com>
Co-authored-by: Daniel McCloy <dan@mccloy.info>
Co-authored-by: gabalafou <gabriel@fouasnon.com>
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ned Batchelder <ned@nedbatchelder.com>
Co-authored-by: Adam Porter <adam@alphapapa.net>
Co-authored-by: Denis Bitouzé <dbitouze@wanadoo.fr>
Co-authored-by: Stuart Mumford <stuart@cadair.com>
Co-authored-by: Alenka Frim <AlenkaF@users.noreply.github.com>
Co-authored-by: Harutaka Kawamura <hkawamura0130@gmail.com>
Co-authored-by: jourlez <josuecr.288@gmail.com>
Co-authored-by: Chris Holdgraf <choldgraf@berkeley.edu>

* simplify (do not change  state of hover)

* fix icon links

* forgot to add pydata-icon.js

* Restore hover styles to sidebar toggles

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Daniel McCloy <dan@mccloy.info>
Co-authored-by: Rambaud Pierrick <12rambau@users.noreply.github.com>
Co-authored-by: gresavage <tomgresavage@gmail.com>
Co-authored-by: tgresavage <thomas.gresavage.ext@afresearchlab.com>
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ned Batchelder <ned@nedbatchelder.com>
Co-authored-by: Adam Porter <adam@alphapapa.net>
Co-authored-by: Denis Bitouzé <dbitouze@wanadoo.fr>
Co-authored-by: Stuart Mumford <stuart@cadair.com>
Co-authored-by: Alenka Frim <AlenkaF@users.noreply.github.com>
Co-authored-by: Harutaka Kawamura <hkawamura0130@gmail.com>
Co-authored-by: jourlez <josuecr.288@gmail.com>
Co-authored-by: Chris Holdgraf <choldgraf@berkeley.edu>

* Buttons meet WCAG criteria (#1589)

* Match buttons to design system

* back to top button

* switch to stable version button

* remove sd-sphinx-override class which seems to do nothing

* underline

* center

* Update src/pydata_sphinx_theme/assets/styles/extensions/_sphinx_design.scss

Co-authored-by: Tania Allard <taniar.allard@gmail.com>

* don't forget outline buttons

---------

Co-authored-by: Tania Allard <taniar.allard@gmail.com>

* Up/down chevrons and "expand"/"collapse" for Sphinx-togglebutton (#1605)

* Up/down chevrons and "expand"/"collapse" text for Sphinx-togglebutton

* Add translation strings

* Keyboard handlers to open and close mobile sidebars (#1585)

* Consistent focus ring (first pass) (#1549)

* wip

* Style focus state in header nav

* update focus ring style on all focussable elements

* simplify

* fix links in mobile sidebar overlay

* put focus rings around a few more focusable elements

* polish

* update comment

* review

* better align focus ring on collapsible admonitions

* comment and simplify sphinx-togglebutton focus ring

* make css override more explicit

* Fix SD link-card focus ring and on homepage, bring links inside card

* Update docs/index.md

---------

Co-authored-by: Daniel McCloy <dan@mccloy.info>

* Resolve current sidebar link notch and focus ring (#1561)

* Fix sidebar current notch

* focus-ring-radius

* missed a spot 0.125rem

* keep focus ring on top

* Restyle Sphinx Design tabs (#1555)

* restyle sphinx design tabs

* increase panel border radius

* increase line height, zero padding-y

* use shadow variable

* Update src/pydata_sphinx_theme/assets/styles/extensions/_sphinx_design.scss

* Update src/pydata_sphinx_theme/assets/styles/extensions/_sphinx_design.scss

* Fix tabbed panel colors (#1567)

* update feature focus (#1569)

* docs: add instructions for custom SVG icons (#1490)

* docs: add instructions for custom SVG icons

* docs: minor tweaks in SVG icon instructions

* docs: some more tweaks to SVG icon instructions

* Update docs/user_guide/header-links.rst

Co-authored-by: Rambaud Pierrick <12rambau@users.noreply.github.com>

* Change literalinclude to code-block in header links

* Update docs/user_guide/header-links.rst

Co-authored-by: Daniel McCloy <dan@mccloy.info>

* Update docs/user_guide/header-links.rst

* Update docs/user_guide/header-links.rst

* Update docs/user_guide/header-links.rst

* Update docs/user_guide/header-links.rst

* Update docs/user_guide/header-links.rst

---------

Co-authored-by: tgresavage <thomas.gresavage.ext@afresearchlab.com>
Co-authored-by: Rambaud Pierrick <12rambau@users.noreply.github.com>
Co-authored-by: Daniel McCloy <dan@mccloy.info>

* fix: make table background transparent (#1546)

* fix: make table background transparent

* fix: make table background transparent

* fix: add color-theme option to html tag (#1536)

* Silence warnings (#1542)

* avoid webpack warning during asset compile

* avoid frozen modules warning during import

* try to make jupyterlite quieter

* add config option to silence warnings

* fix tests

* add docs

* hide conditional warning logic in utils

* bump: 0.14.2 → 0.14.3

* chore: back to dev

* docs: add the list of component using a directive (#1476)

* fix: create the component list automatically

* fix: read the first comment as documentation

* docs: add disclaimer on .html suffix

* docs: document every component with a simple one liner

* fix: use regex to identify comments

* update component branch (#15)

* Change default logo alt text (#1472)

* Default logo alt text only if no extra text

* change default logo

* use docstitle as default logo alt text

* update docs to reflect change

* Apply suggestions from code review

Co-authored-by: Daniel McCloy <dan@mccloy.info>

* use string formatting operator

* Update docs/user_guide/branding.rst

* docs fixes

* Update docs/user_guide/branding.rst

* add test

* Update pyproject.toml

* revert to original

---------

Co-authored-by: Daniel McCloy <dan@mccloy.info>
Co-authored-by: Rambaud Pierrick <12rambau@users.noreply.github.com>

* chore(i18n) catalan (#1488)

i18n: Translate sphinx.po in ca

100% translated source file: 'sphinx.po'
on 'ca'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>

* Build(deps): Bump postcss and css-loader (#1494)

Bumps [postcss](https://github.com/postcss/postcss) to 8.4.31 and updates ancestor dependency [css-loader](https://github.com/webpack-contrib/css-loader). These dependencies need to be updated together.


Updates `postcss` from 8.4.21 to 8.4.31
- [Release notes](https://github.com/postcss/postcss/releases)
- [Changelog](https://github.com/postcss/postcss/blob/main/CHANGELOG.md)
- [Commits](https://github.com/postcss/postcss/compare/8.4.21...8.4.31)

Updates `css-loader` from 3.6.0 to 6.8.1
- [Release notes](https://github.com/webpack-contrib/css-loader/releases)
- [Changelog](https://github.com/webpack-contrib/css-loader/blob/master/CHANGELOG.md)
- [Commits](https://github.com/webpack-contrib/css-loader/compare/v3.6.0...v6.8.1)

---
updated-dependencies:
- dependency-name: postcss
  dependency-type: indirect
- dependency-name: css-loader
  dependency-type: direct:development
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Revert "Build(deps): Bump postcss and css-loader" (#1509)

Revert "Build(deps): Bump postcss and css-loader (#1494)"

This reverts commit 185a37aa36820f77bffa4c87a772092e9e7cc380.

* Update pst docs buttons (#1502)

* call them button-links

* copy edit

* docs: link back to GitHub from PyPI metadata (#1504)

This will add a "Source" link in the PyPI page.

* navigation_with_keys = False (#1503)

* navigation_with_keys = False

* None -> False

* Apply suggestions from code review

---------

Co-authored-by: Daniel McCloy <dan@mccloy.info>

* fix: convert "stable" to actual version number (#1512)

* convert "stable" to actual version number

* fix tests re: navigation_with_keys

* try bumping autoapi

* refactor: use nbsphinx as the default execution lib (#1482)

* refactor: use nbsphinx as the default execution lib

* add nbstripout to the pre-commits'

* add pandoc to the readthedocs deps

* refactor: clean the notebook

* move the example to the correct folder

* fix: solve link issue

* install pandoc in the test environment

* fix: display of large table in executed cells

* avoid Userwarnings from matplotlib

* hide the matplotlib wrning management cell

* Update readthedocs.yml

* build: use pandoc_binary to install pandoc

* docs: add reference to pandoc in the setup

* update docs

* remove pypandoc_binary

* Update pyproject.toml

Co-authored-by: gabalafou <gabriel@fouasnon.com>

* ci: use back setup-pandoc

* Trigger CI build

---------

Co-authored-by: Gabriel Fouasnon <gabriel@fouasnon.com>

* BUG - Clear alt_text in conf.py (#1471)

* comment out alt_text in conf.py

* set alt_text to empty string

* remove alt_text from conf.py

* fix: use 12rambau fork until it's merged with nikeee repo (#1517)

* deps: drop support for Sphinx 5 (#1516)

* remove ref to myst-nb

* update minimal supported version of sphinx

* Fix: (webpack.config.js) css-loader API change (#1508)

* Fix: (webpack.config.js) css-loader API change

The build was broken in
<https://github.com/pydata/pydata-sphinx-theme/commit/185a37aa36820f77bffa4c87a772092e9e7cc380>/<https://github.com/pydata/pydata-sphinx-theme/pull/1494>.

This change fixes the build, and it seems to be in accordance with the
current API as described at <https://github.com/webpack-contrib/css-loader/blob/c6f36cf91ac61743a70e81cfb077faa0f8730ebe/README.md#boolean>.

Closes <https://github.com/pydata/pydata-sphinx-theme/issues/1507>.

* dedup

* restore version bump

---------

Co-authored-by: Daniel McCloy <dan@mccloy.info>

* Fix duplicate HTML IDs (#1425)

* Fix duplicate HTML IDs

* fix tests

* Do not animate the version admonitions colors. (#1424)

Otherwise a delay has to be added to the accessibility color
contrast checks, to wait for the colors to fully transition.

* BUG - Remove redundant ARIA in breadcrumb navigation (#1426)

* style(i18n): French Typo fixed (#1430)

* Add the ability to add a center section to the footer (#1432)

* Add a center section for the footer

* Add docs for footer_center

* Add a test site for the center footer

* test it in our own docs

* remove new test site

* add footer test

---------

Co-authored-by: Daniel McCloy <dan@mccloy.info>

* Build(deps): Bump actions/checkout from 3 to 4 (#1433)

Bumps [actions/checkout](https://github.com/actions/checkout) from 3 to 4.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Add dropdown_text argument to generate_header_nav_html (#1423)

* Add dropdown_text argument to generate_header_nav_html

* Add a test, fix typo in theme.conf and remove header_dropdown_text from docs/conf.py

* fixed?

---------

Co-authored-by: Daniel McCloy <dan@mccloy.info>

* fix: rollback ref and Id changes (#1438)

* bump: version 0.13.3 → 0.14.0  (#1440)

* bump version

* update version switcher

* back to dev

* fix: change the z-index of the dropdown (#1442)

In order to be on top of the primary sidebar on small screens.

* fix: set the same background for dark/light (#1443)

* fix: set the same background for dark/light
et the same background color for all state of the search field. It is currently only applied when hovered

* fix: wrong css selector

* Update src/pydata_sphinx_theme/assets/styles/components/_search.scss

* Update src/pydata_sphinx_theme/assets/styles/components/_search.scss

* Fix duplicate HTML IDs

* fix tests

* unique_html_id

* backwards-compat generate_header_nav_html

* feedback review

* update fixture

* ughhhh...caching

* code cleanup

* fix test snapshot

* put comment inside def

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Denis Bitouzé <dbitouze@wanadoo.fr>
Co-authored-by: Stuart Mumford <stuart@cadair.com>
Co-authored-by: Daniel McCloy <dan@mccloy.info>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Alenka Frim <AlenkaF@users.noreply.github.com>
Co-authored-by: Rambaud Pierrick <12rambau@users.noreply.github.com>

* chore: build the devcontainer automatically in codespace (#1483)

* chore: build the devcontainer automaticallyin codespace

* refactor: lint

* add pandoc to the environment

* Fix font color in search input box (#1524)

* Fix color

* Use --pst-color-text-base

* docs: add DecentralChain (#1528)

Co-authored-by: jourlez <josuecr.288@gmail.com>

* Updates for file src/pydata_sphinx_theme/locale/en/LC_MESSAGES/sphinx.po in ru [Manual Sync] (#1527)

i18n: Translate sphinx.po in ru [Manual Sync]

96% of minimum 20% translated source file: 'sphinx.po'
on 'ru'.

Sync of partially translated files: 
untranslated content is included with an empty translation 
or source language content depending on file format

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>

* ignore transient errors in windows build CI (#1520)

* use warning list

* clean up notebook

* refactor to pass on all platforms?

* simplify

* fix logic

* iterate backwards

* fix plaform detection? also don't log unnecessarily�[H

* ignore empty string warnings

* remove notebook metawarning

* Revert "remove notebook metawarning"

This reverts commit 42f46723eb9eeea7603efb91fbfb6bdfa1de28b3.

* try again

* debug the mysterious empty warning

* escape color codes

* import

* triage by intermittency, not by platform; better var names

* simplify

* fix list.remove

* undo what I broke

* Update tests/utils/check_warnings.py

* refactor: remove extention on component set-up (#1529)

* use event.key for search shortcut (#1525)

* use event.key for search shortcut

* suggestions from review

* caps lock

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: gabalafou <gabriel@fouasnon.com>
Co-authored-by: Daniel McCloy <dan@mccloy.info>
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ned Batchelder <ned@nedbatchelder.com>
Co-authored-by: Adam Porter <adam@alphapapa.net>
Co-authored-by: Denis Bitouzé <dbitouze@wanadoo.fr>
Co-authored-by: Stuart Mumford <stuart@cadair.com>
Co-authored-by: Alenka Frim <AlenkaF@users.noreply.github.com>
Co-authored-by: Harutaka Kawamura <hkawamura0130@gmail.com>
Co-authored-by: jourlez <josuecr.288@gmail.com>

* fix: use a directive instead of raw html

* fix: make links externals

* fix: set reference in paragraphs

* fix: missing parameter

* fix: use the stem for the component name

* refactor: remove never used variables

* standardize component descriptions

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: gabalafou <gabriel@fouasnon.com>
Co-authored-by: Daniel McCloy <dan@mccloy.info>
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ned Batchelder <ned@nedbatchelder.com>
Co-authored-by: Adam Porter <adam@alphapapa.net>
Co-authored-by: Denis Bitouzé <dbitouze@wanadoo.fr>
Co-authored-by: Stuart Mumford <stuart@cadair.com>
Co-authored-by: Alenka Frim <AlenkaF@users.noreply.github.com>
Co-authored-by: Harutaka Kawamura <hkawamura0130@gmail.com>
Co-authored-by: jourlez <josuecr.288@gmail.com>

* fix: primer link in docs (#1556)

* docs: add data-content (#1559)

Reproduce the change made in Sphinx 7
https://github.com/sphinx-doc/sphinx/commit/8e730ae303ae686705ea12f44ef11da926a87cf5#diff-a5066e933cbf65adc46e0d1ab9a0b44e0a53ca64cc95dca7e6aa902aed6bd468R105

* Obviate background-from-color-variable (#1558)

* Obviate background-from-color-variable

* backwards compatibility

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: gresavage <tomgresavage@gmail.com>
Co-authored-by: tgresavage <thomas.gresavage.ext@afresearchlab.com>
Co-authored-by: Daniel McCloy <dan@mccloy.info>
Co-authored-by: gabalafou <gabriel@fouasnon.com>
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ned Batchelder <ned@nedbatchelder.com>
Co-authored-by: Adam Porter <adam@alphapapa.net>
Co-authored-by: Denis Bitouzé <dbitouze@wanadoo.fr>
Co-authored-by: Stuart Mumford <stuart@cadair.com>
Co-authored-by: Alenka Frim <AlenkaF@users.noreply.github.com>
Co-authored-by: Harutaka Kawamura <hkawamura0130@gmail.com>
Co-authored-by: jourlez <josuecr.288@gmail.com>
Co-authored-by: Chris Holdgraf <choldgraf@berkeley.edu>

* Keyboard handlers to open and close mobile sidebars

* Update src/pydata_sphinx_theme/__init__.py

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: Daniel McCloy <dan@mccloy.info>
Co-authored-by: Rambaud Pierrick <12rambau@users.noreply.github.com>
Co-authored-by: gresavage <tomgresavage@gmail.com>
Co-authored-by: tgresavage <thomas.gresavage.ext@afresearchlab.com>
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ned Batchelder <ned@nedbatchelder.com>
Co-authored-by: Adam Porter <adam@alphapapa.net>
Co-authored-by: Denis Bitouzé <dbitouze@wanadoo.fr>
Co-authored-by: Stuart Mumford <stuart@cadair.com>
Co-authored-by: Alenka Frim <AlenkaF@users.noreply.github.com>
Co-authored-by: Harutaka Kawamura <hkawamura0130@gmail.com>
Co-authored-by: jourlez <josuecr.288@gmail.com>
Co-authored-by: Chris Holdgraf <choldgraf@berkeley.edu>

* Merge main into feature-focus (#1685)

* Build(deps): Bump actions/setup-python from 4 to 5 (#1590)

Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Use pytest-regressions to mark expected a11y test failures (#1501)

* Use pytest-regressions with a11y tests to mark expected failures

* Update tests/test_a11y.py

* frozen data class

* Revert "frozen data class"

This reverts commit 3b0c73e93d1f1b52f45b4918015c66fe5142c294.

---------

Co-authored-by: Daniel McCloy <dan@mccloy.info>

* FIX: avoid implicit string comparison in Sphinx 7.26 (#1592)

* FIX: avoid implicit string comparison in Sphinx 7.26

* lint

---------

Co-authored-by: Daniel McCloy <dan@mccloy.info>

* Build(deps): Bump actions/upload-artifact from 3 to 4 (#1598)

Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update fontawesome from 6.1.2 to 6.5.1 (#1600)

* Fix landmark-unique error due to in-page TOC (#1607)

* landmark unique error due to in-page TOC

* Apply suggestions from code review

Co-authored-by: Tania Allard <taniar.allard@gmail.com>

* fix lint?

---------

Co-authored-by: Tania Allard <taniar.allard@gmail.com>

* Feature: Add support for per-page secondary sidebar content (#1572)

* Add ability to set per-page secondary sidebars

* Add additional secondary sidebar content tests; expanded utils docstring

* Update translation files (#1606)

* Bump minimum Python from 3.8 to 3.9; add 3.12 to CIs (#1610)

drop py3.8, add py3.12

* Fix: more efficient determination of when to hide primary sidebar (#1609)

* minor refactors suggested by Ruff

* move TOC generation from layout.html to sidebar-primary.html

* replace @lru_cache(None) with plain @cache

* get sidebar TOC length without rendering it

* fixup rebase/stash snafu

* bugfix

* Fix "More" links in mobile sidebar (#1604)

Fix #1603

* bump: 0.14.4 → 0.15.0rc0

* Updates for file src/pydata_sphinx_theme/locale/en/LC_MESSAGES/sphinx.po in fr (#1618)

i18n: Translate sphinx.po in fr

100% translated source file: 'sphinx.po'
on 'fr'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>

* bump: 0.14.4 → 0.15.0

* fix: drop the dev test (#1623)

* fix: remove Site navigation header (#1615)

* fix: remove Site navigation header

* test: edit the test suit

* fix: align all breadcrumb elements (#1619)

* fix: log information when warnings are disabled (#1617)

* bump: 0.15.0 → 0.15.1

* back to dev

* fix: align the search button with other icons (#1620)

* test: display the search button for demo purposes

* fix: only display the search icon

* fix: remove needless adjustements

* fix: rollback to default search

* chore: trigger CI

* Fix sticky header (#1630)

* Fix sticky header

* regression test

* maybe fix missing sidebar? (#1632)

* maybe fix missing sidebar?

* simplify

* purge internal defaults & use theme config setting

* formatting

* refactor and simplify toctree code

* DOC: Add missing "footer_center" in layout overview diagram (#1640)

* Make bootstrap globally available (#1639)

* Make bootstrap globally available

* Include docs about bootstrap programmatic API

* Add Brightway to Featured Example Gallery Grid (#1580)

* initial commit

* test: the png images are not build during tests

---------

Co-authored-by: Rambaud Pierrick <12rambau@users.noreply.github.com>

* fix: move the release instructions to the repository (#1621)

* fix: update text and links

* fix: add code highlight

* fix: wire correct file in our documentation

* chore: trigger CI

* remove mention of semantic versioning

Co-authored-by: Daniel McCloy <dan@mccloy.info>

* refactor: lint

* Update RELEASE.md

---------

Co-authored-by: Daniel McCloy <dan@mccloy.info>

* Make search event listener only trigger with “K”/“k” (#1646)

* More speedups to section TOC rendering (#1642)

* small refactor, comments, cleanup

* docstring cleanups

* mark as unsafe for parallel write

* Update src/pydata_sphinx_theme/toctree.py

* Allow only theme_footer_center to be set (#1653)

* fix: allow user to control the back-to-top button presence (#1616)

* fix: put the btt button closer to age bottom

* test: remove the btt button to check

* test: fallback to default behaviour

* refactor: rollback to previous state

* use proper variable name

* Update src/pydata_sphinx_theme/theme/pydata_sphinx_theme/layout.html

---------

Co-authored-by: Daniel McCloy <dan@mccloy.info>

* remove toggle button for secondary sidebar if empty (#1637)

* in CIs, pin sphinx dev temporarily

* bump: 0.15.1 -> 0.15.2

* bump version to dev

* FIX make theme switcher have consistent widths (#1651)

* unpin sphinx in CI (#1665)

* FIX make search button closer to other icons in topbar (#1659)

* Build(deps): Bump actions/cache from 3 to 4 (#1667)

Bumps [actions/cache](https://github.com/actions/cache) from 3 to 4.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* update dependabot labels (#1668)

* only do security updates for NPM (#1674)

* Restore search snippet highlights in search results page (#1678)

* Apply default_mode to the html data-theme attribute (#1663)

* Don't try to populate version switcher w/ relative path on local static site (#1660)

* Don't try to populate version switcher on static sites

* Fix comment spelling

* Update src/pydata_sphinx_theme/assets/scripts/pydata-sphinx-theme.js

---------

Co-authored-by: Daniel McCloy <dan@mccloy.info>

* handle null result from queryselector (#1683)

fix queryselector

* Add pst-header-nav-item id to fix tests

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Daniel McCloy <dan@mccloy.info>
Co-authored-by: Angus Hollands <goosey15@gmail.com>
Co-authored-by: Sebastiaan Huber <mail@sphuber.net>
Co-authored-by: Tania Allard <taniar.allard@gmail.com>
Co-authored-by: Peyton Murray <peynmurray@gmail.com>
Co-authored-by: Rambaud Pierrick <12rambau@users.noreply.github.com>
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
Co-authored-by: Joris Van den Bossche <jorisvandenbossche@gmail.com>
Co-authored-by: Michael Wisely <108433848+michael-wisely-gravwell@users.noreply.github.com>
Co-authored-by: Michael Weinold <23102087+michaelweinold@users.noreply.github.com>
Co-authored-by: Philipp A <flying-sheep@web.de>
Co-authored-by: Colin Marquardt <cmarqu42@gmail.com>
Co-authored-by: Pierre Marchand <PierreMarchand20@users.noreply.github.com>
Co-authored-by: Yao Xiao <108576690+Charlie-XIAO@users.noreply.github.com>
Co-authored-by: Charles <peacech@gmail.com>
Co-authored-by: David Stansby <dstansby@gmail.com>

* Merge main into feature-focus (#1708)

* Build(deps): Bump actions/setup-python from 4 to 5 (#1590)

Bumps [actions/setup-python](https://github.com/actions/setup-python) from 4 to 5.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v4...v5)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Use pytest-regressions to mark expected a11y test failures (#1501)

* Use pytest-regressions with a11y tests to mark expected failures

* Update tests/test_a11y.py

* frozen data class

* Revert "frozen data class"

This reverts commit 3b0c73e93d1f1b52f45b4918015c66fe5142c294.

---------

Co-authored-by: Daniel McCloy <dan@mccloy.info>

* FIX: avoid implicit string comparison in Sphinx 7.26 (#1592)

* FIX: avoid implicit string comparison in Sphinx 7.26

* lint

---------

Co-authored-by: Daniel McCloy <dan@mccloy.info>

* Build(deps): Bump actions/upload-artifact from 3 to 4 (#1598)

Bumps [actions/upload-artifact](https://github.com/actions/upload-artifact) from 3 to 4.
- [Release notes](https://github.com/actions/upload-artifact/releases)
- [Commits](https://github.com/actions/upload-artifact/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/upload-artifact
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Update fontawesome from 6.1.2 to 6.5.1 (#1600)

* Fix landmark-unique error due to in-page TOC (#1607)

* landmark unique error due to in-page TOC

* Apply suggestions from code review

Co-authored-by: Tania Allard <taniar.allard@gmail.com>

* fix lint?

---------

Co-authored-by: Tania Allard <taniar.allard@gmail.com>

* Feature: Add support for per-page secondary sidebar content (#1572)

* Add ability to set per-page secondary sidebars

* Add additional secondary sidebar content tests; expanded utils docstring

* Update translation files (#1606)

* Bump minimum Python from 3.8 to 3.9; add 3.12 to CIs (#1610)

drop py3.8, add py3.12

* Fix: more efficient determination of when to hide primary sidebar (#1609)

* minor refactors suggested by Ruff

* move TOC generation from layout.html to sidebar-primary.html

* replace @lru_cache(None) with plain @cache

* get sidebar TOC length without rendering it

* fixup rebase/stash snafu

* bugfix

* Fix "More" links in mobile sidebar (#1604)

Fix #1603

* bump: 0.14.4 → 0.15.0rc0

* Updates for file src/pydata_sphinx_theme/locale/en/LC_MESSAGES/sphinx.po in fr (#1618)

i18n: Translate sphinx.po in fr

100% translated source file: 'sphinx.po'
on 'fr'.

Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>

* bump: 0.14.4 → 0.15.0

* fix: drop the dev test (#1623)

* fix: remove Site navigation header (#1615)

* fix: remove Site navigation header

* test: edit the test suit

* fix: align all breadcrumb elements (#1619)

* fix: log information when warnings are disabled (#1617)

* bump: 0.15.0 → 0.15.1

* back to dev

* fix: align the search button with other icons (#1620)

* test: display the search button for demo purposes

* fix: only display the search icon

* fix: remove needless adjustements

* fix: rollback to default search

* chore: trigger CI

* Fix sticky header (#1630)

* Fix sticky header

* regression test

* maybe fix missing sidebar? (#1632)

* maybe fix missing sidebar?

* simplify

* purge internal defaults & use theme config setting

* formatting

* refactor and simplify toctree code

* DOC: Add missing "footer_center" in layout overview diagram (#1640)

* Make bootstrap globally available (#1639)

* Make bootstrap globally available

* Include docs about bootstrap programmatic API

* Add Brightway to Featured Example Gallery Grid (#1580)

* initial commit

* test: the png images are not build during tests

---------

Co-authored-by: Rambaud Pierrick <12rambau@users.noreply.github.com>

* fix: move the release instructions to the repository (#1621)

* fix: update text and links

* fix: add code highlight

* fix: wire correct file in our documentation

* chore: trigger CI

* remove mention of semantic versioning

Co-authored-by: Daniel McCloy <dan@mccloy.info>

* refactor: lint

* Update RELEASE.md

---------

Co-authored-by: Daniel McCloy <dan@mccloy.info>

* Make search event listener only trigger with “K”/“k” (#1646)

* More speedups to section TOC rendering (#1642)

* small refactor, comments, cleanup

* docstring cleanups

* mark as unsafe for parallel write

* Update src/pydata_sphinx_theme/toctree.py

* Allow only theme_footer_center to be set (#1653)

* fix: allow user to control the back-to-top button presence (#1616)

* fix: put the btt button closer to age bottom

* test: remove the btt button to check

* test: fallback to default behaviour

* refactor: rollback to previous state

* use proper variable name

* Update src/pydata_sphinx_theme/theme/pydata_sphinx_theme/layout.html

---------

Co-authored-by: Daniel McCloy <dan@mccloy.info>

* remove toggle button for secondary sidebar if empty (#1637)

* in CIs, pin sphinx dev temporarily

* bump: 0.15.1 -> 0.15.2

* bump version to dev

* FIX make theme switcher have consistent widths (#1651)

* unpin sphinx in CI (#1665)

* FIX make search button closer to other icons in topbar (#1659)

* Build(deps): Bump actions/cache from 3 to 4 (#1667)

Bumps [actions/cache](https://github.com/actions/cache) from 3 to 4.
- [Release notes](https://github.com/actions/cache/releases)
- [Changelog](https://github.com/actions/cache/blob/main/RELEASES.md)
- [Commits](https://github.com/actions/cache/compare/v3...v4)

---
updated-dependencies:
- dependency-name: actions/cache
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* update dependabot labels (#1668)

* only do security updates for NPM (#1674)

* Restore search snippet highlights in search results page (#1678)

* Apply default_mode to the html data-theme attribute (#1663)

* Don't try to populate version switcher w/ relative path on local static site (#1660)

* Don't try to populate version switcher on static sites

* Fix comment spelling

* Update src/pydata_sphinx_theme/assets/scripts/pydata-sphinx-theme.js

---------

Co-authored-by: Daniel McCloy <dan@mccloy.info>

* handle null result from queryselector (#1683)

fix queryselector

* ENH make search result heading a bit away from the search input box (#1690)

ENH make search result heading a bit away from the search box

* ENH animation for the top banner (#1693)

* ENH animation for the top banner

* unset forcefully set styles to let css take over; animation also added for version warning banner

* make transition a bit longer

* resolve conversations

* retrigger CI

* Update src/pydata_sphinx_theme/assets/scripts/pydata-sphinx-theme.js

---------

Co-authored-by: Daniel McCloy <dan@mccloy.info>

* docs: typo in a link in the release instructions (#1704)

* Build(deps): Bump codecov/codecov-action from 3 to 4 (#1706)

Bumps [codecov/codecov-action](https://github.com/codecov/codecov-action) from 3 to 4.
- [Release notes](https://github.com/codecov/codecov-action/releases)
- [Changelog](https://github.com/codecov/codecov-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/codecov/codecov-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: codecov/codecov-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps): Bump treosh/lighthouse-ci-action from 10 to 11 (#1705)

Bumps [treosh/lighthouse-ci-action](https://github.com/treosh/lighthouse-ci-action) from 10 to 11.
- [Release notes](https://github.com/treosh/lighthouse-ci-action/releases)
- [Commits](https://github.com/treosh/lighthouse-ci-action/compare/v10...v11)

---
updated-dependencies:
- dependency-name: treosh/lighthouse-ci-action
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Daniel McCloy <dan@mccloy.info>
Co-authored-by: Angus Hollands <goosey15@gmail.com>
Co-authored-by: Sebastiaan Huber <mail@sphuber.net>
Co-authored-by: Tania Allard <taniar.allard@gmail.com>
Co-authored-by: Peyton Murray <peynmurray@gmail.com>
Co-authored-by: Rambaud Pierrick <12rambau@users.noreply.github.com>
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
Co-authored-by: Joris Van den Bossche <jorisvandenbossche@gmail.com>
Co-authored-by: Michael Wisely <108433848+michael-wisely-gravwell@users.noreply.github.com>
Co-authored-by: Michael Weinold <23102087+michaelweinold@users.noreply.github.com>
Co-authored-by: Philipp A <flying-sheep@web.de>
Co-authored-by: Colin Marquardt <cmarqu42@gmail.com>
Co-authored-by: Pierre Marchand <PierreMarchand20@users.noreply.github.com>
Co-authored-by: Yao Xiao <108576690+Charlie-XIAO@users.noreply.github.com>
Co-authored-by: Charles <peacech@gmail.com>
Co-authored-by: David Stansby <dstansby@gmail.com>

* Make TOC sections expandable and collapsible by keyboard (#1582)

* Consistent focus ring (first pass) (#1549)

* wip

* Style focus state in header nav

* update focus ring style on all focussable elements

* simplify

* fix links in mobile sidebar overlay

* put focus rings around a few more focusable elements

* polish

* update comment

* review

* better align focus ring on collapsible admonitions

* comment and simplify sphinx-togglebutton focus ring

* make css override more explicit

* Fix SD link-card focus ring and on homepage, bring links inside card

* Update docs/index.md

---------

Co-authored-by: Daniel McCloy <dan@mccloy.info>

* Resolve current sidebar link notch and focus ring (#1561)

* Fix sidebar current notch

* focus-ring-radius

* missed a spot 0.125rem

* keep focus ring on top

* Restyle Sphinx Design tabs (#1555)

* restyle sphinx design tabs

* increase panel border radius

* increase line height, zero padding-y

* use shadow variable

* Update src/pydata_sphinx_theme/assets/styles/extensions/_sphinx_design.scss

* Update src/pydata_sphinx_theme/assets/styles/extensions/_sphinx_design.scss

* Fix tabbed panel colors (#1567)

* aria attributes do not update if user uses mouse instead of keyboard

* details/summary, no checkbox

* clean up

* details["open"]

* make it work for nav level 0

* pull link outside of details tag

* make it work with show nav level 0

* make level 0 heading clickable

* comments

* restore .current notches to toc parents

* fix tests

* clean up

* more comments

* make toggle icon bigger at level 0

* comments

* clarify comment

* remove list-captions class from in-page toc styles

* Update tests/test_build.py

* Update src/pydata_sphinx_theme/toctree.py

Co-authored-by: Tania Allard <taniar.allard@gmail.com>

* update test for verbose HTML boolean attribute

* more HTML boolean attribute notation updates

* Update comment about link vs non-link HTML structure

---------

Co-authored-by: Daniel McCloy <dan@mccloy.info>
Co-authored-by: Tania Allard <taniar.allard@gmail.com>

* Independently style "Switch to stable version" link (#1721)

* Independently style switch to stable version link

* hover and focus

* docs and css cleanup

* Use focus ring Sass variables

* text-wrap class

* Update docs/user_guide/web-components.rst

Co-authored-by: Tania Allard <taniar.allard@gmail.com>

* Update docs/user_guide/web-components.rst

Co-authored-by: Tania Allard <taniar.allard@gmail.com>

* Update src/pydata_sphinx_theme/assets/scripts/pydata-sphinx-theme.js

Co-authored-by: Tania Allard <taniar.allard@gmail.com>

* Update src/pydata_sphinx_theme/assets/styles/sections/_announcement.scss

Co-authored-by: Tania Allard <taniar.allard@gmail.com>

* use var --pst-color-danger-text

---------

Co-authored-by: Tania Allard <taniar.allard@gmail.com>

* Ensure old test files are removed

* Run pre-commit

* Add to the accessibility support section of the docs (#1730)

* add entry to the docs

* Apply suggestions from code review

Co-authored-by: Daniel McCloy <dan@mccloy.info>

---------

Co-authored-by: Tania Allard <taniar.allard@gmail.com>
Co-authored-by: Daniel McCloy <dan@mccloy.info>

* Feature focus review fixes (#1736)

* fix search bar hover

* fix overlapping focus and hover rings on More dropdown toggle

* point chevron up

* fix translations

* conf.py fixes

* Revert changes to horizontal spacing in header nav (#1738)

* revert changes to horizontal spacing in header nav

* keep outline offset at 3px

* set Codecov verbose flag to true (#1743)

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: gabalafou <gabriel@fouasnon.com>
Co-authored-by: Daniel McCloy <dan@mccloy.info>
Co-authored-by: Rambaud Pierrick <12rambau@users.noreply.github.com>
Co-authored-by: gresavage <tomgresavage@gmail.com>
Co-authored-by: tgresavage <thomas.gresavage.ext@afresearchlab.com>
Co-authored-by: transifex-integration[bot] <43880903+transifex-integration[bot]@users.noreply.github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ned Batchelder <ned@nedbatchelder.com>
Co-authored-by: Adam Porter <adam@alphapapa.net>
Co-authored-by: Denis Bitouzé <dbitouze@wanadoo.fr>
Co-authored-by: Stuart Mumford <stuart@cadair.com>
Co-authored-by: Alenka Frim <AlenkaF@users.noreply.github.com>
Co-authored-by: Harutaka Kawamura <hkawamura0130@gmail.com>
Co-authored-by: jourlez <josuecr.288@gmail.com>
Co-authored-by: Chris Holdgraf <choldgraf@berkeley.edu>
Co-authored-by: Angus Hollands <goosey15@gmail.com>
Co-authored-by: Sebastiaan Huber <mail@sphuber.net>
Co-authored-by: Peyton Murray <peynmurray@gmail.com>
Co-authored-by: Joris Van den Bossche <jorisvandenbossche@gmail.com>
Co-authored-by: Michael Wisely <108433848+michael-wisely-gravwell@users.noreply.github.com>
Co-authored-by: Michael Weinold <23102087+michaelweinold@users.noreply.github.com>
Co-authored-by: Philipp A <flying-sheep@web.de>
Co-authored-by: Colin Marquardt <cmarqu42@gmail.com>
Co-authored-by: Pierre Marchand <PierreMarchand20@users.noreply.github.com>
Co-authored-by: Yao Xiao <108576690+Charlie-XIAO@users.noreply.github.com>
Co-authored-by: Charles <peacech@gmail.com>
Co-authored-by: David Stansby <dstansby@gmail.com>
  • Loading branch information
1 parent 1beade8 commit daaab21
Show file tree
Hide file tree
Showing 48 changed files with 1,031 additions and 363 deletions.
1 change: 1 addition & 0 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -97,6 +97,7 @@ jobs:
uses: codecov/codecov-action@v4
with:
fail_ci_if_error: true
verbose: true
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}

Expand Down
3 changes: 2 additions & 1 deletion babel.cfg
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
# See https://github.com/sphinx-doc/sphinx/blob/6.1.x/babel.cfg
# See https://github.com/python-babel/babel/blob/2a1709a7768f6f07c3d2dbfdb03d3c8a6bd80aef/docs/messages.rst#extraction-method-mapping-and-configuration
[python: **.py]
[jinja2: **.html]
encoding = utf-8
ignore_tags = script,style
Expand Down
16 changes: 16 additions & 0 deletions docs/_static/pydata-icon.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
/*******************************************************************************
* Set a custom icon for PyData
*/
FontAwesome.library.add(
(faListOldStyle = {
prefix: "fa-custom",
iconName: "pydata",
icon: [
24, // viewBox width
24, // viewBox height
[], // ligature
"e002", // unicode codepoint - private use area
"M12.1,17.8v5.8l-5-2.9v-5.8L12.1,17.8z M12.1,12v5.8l-5-2.9V9.1L12.1,12z M17,9.1L12.1,12v5.8l4.9-2.9V9.1z M12.1,6.2L7,9.1l5,2.9L17,9.1L12.1,6.2z M17,9.1V3.3l-4.9-2.8v5.8L17,9.1z",
],
})
);
Binary file removed docs/_static/pydata-logo.png
Binary file not shown.
12 changes: 8 additions & 4 deletions docs/conf.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@

import pydata_sphinx_theme
from sphinx.application import Sphinx
from sphinx.locale import _

sys.path.append(str(Path(".").resolve()))

Expand Down Expand Up @@ -89,6 +90,11 @@
"jupyter": ("Jupyter", "https://jupyter.org"),
}

# -- sphinx_togglebutton options ---------------------------------------------
togglebutton_hint = str(_("Click to expand"))
togglebutton_hint_hide = str(_("Click to collapse"))


# -- Options for HTML output -------------------------------------------------

html_theme = "pydata_sphinx_theme"
Expand Down Expand Up @@ -153,9 +159,7 @@
{
"name": "PyData",
"url": "https://pydata.org",
"icon": "_static/pydata-logo.png",
"type": "local",
"attributes": {"target": "_blank"},
"icon": "fa-custom fa-pydata",
},
],
# alternative way to set twitter and github header icons
Expand Down Expand Up @@ -228,7 +232,7 @@
# so a file named "default.css" will overwrite the builtin "default.css".
html_static_path = ["_static"]
html_css_files = ["custom.css"]
html_js_files = ["custom-icon.js"]
html_js_files = ["pydata-icon.js", "custom-icon.js"]
todo_include_todos = True

# -- favicon options ---------------------------------------------------------
Expand Down
4 changes: 2 additions & 2 deletions docs/examples/gallery.md
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,8 @@ Thanks for your support!
- title: Feature-engine
link-alt: Feature-engine docs
link: https://feature-engine.readthedocs.io/
- title: idtracker.ai
link-alt: idtracker.ai docs
- title: idtracker&period;ai
link-alt: idtracker&period;ai docs
link: https://idtracker.ai/
- title: MegEngine
link-alt: MegEngine docs
Expand Down
8 changes: 3 additions & 5 deletions docs/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,11 @@ A clean, Bootstrap-based Sphinx theme by and for [the PyData community](https://
- header: "{fas}`circle-half-stroke;pst-color-primary` Light / Dark theme"
content: "Users can toggle between light and dark themes interactively."
- header: "{fas}`palette;pst-color-primary` Customizable UI and themes"
content: "Customize colors and branding with CSS variables, and build custom UIs with [Sphinx Design](user_guide/web-components)."
content: "Customize colors and branding with CSS variables, and build custom UIs with [Sphinx Design components](user_guide/web-components)."
- header: "{fab}`python;pst-color-primary` Supports PyData and Jupyter"
content: "CSS and UI support for Jupyter extensions and PyData execution outputs."
link: "examples/pydata.html"
content: "CSS and UI support for [Jupyter extensions](examples/execution) and [PyData execution outputs](examples/pydata.ipynb)."
- header: "{fas}`lightbulb;pst-color-primary` Example Gallery"
content: "See our gallery of projects that use this theme."
link: "examples/gallery.html"
content: "See [our gallery](examples/gallery.md) of projects that use this theme."
```

```{seealso}
Expand Down
8 changes: 8 additions & 0 deletions docs/user_guide/accessibility.md
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,14 @@ page that lacks metadata, please open a pull request to add it!
- We have improved how we assign text colors to interactive elements such as buttons and dropdowns to ensure that they meet
WCAG 2 AA or AAA contrast requirements.

### Keyboard Navigation Support

For all buttons, dropdowns, tabbed panels, hamburger menus, modals, overlays,
links and other interactive elements, we have worked to ensure they:

- Have a visible focus indicator (WCAG 2.4.7)
- Can be accessed via keyboard navigation (WCAG 2.1.1)

## What You Can Do

### Site configuration
Expand Down
24 changes: 12 additions & 12 deletions docs/user_guide/styling.rst
Original file line number Diff line number Diff line change
Expand Up @@ -117,18 +117,18 @@ Here is an overview of the colors available in the theme (change theme mode to s
</style>

<p>
<span class="sd-sphinx-override sd-badge pst-badge pst-primary sd-bg-text-primary">primary</span>
<span class="sd-sphinx-override sd-badge pst-badge pst-secondary sd-bg-text-secondary">secondary</span>
<span class="sd-sphinx-override sd-badge pst-badge pst-accent sd-bg-text-secondary">accent</span>
<span class="sd-sphinx-override sd-badge pst-badge pst-success sd-bg-text-success">success</span>
<span class="sd-sphinx-override sd-badge pst-badge pst-info sd-bg-text-info">info</span>
<span class="sd-sphinx-override sd-badge pst-badge pst-warning sd-bg-text-warning">warning</span>
<span class="sd-sphinx-override sd-badge pst-badge pst-danger sd-bg-text-danger">danger</span>
<span class="sd-sphinx-override sd-badge pst-badge pst-background">background</span>
<span class="sd-sphinx-override sd-badge pst-badge pst-on-background">on-background</span>
<span class="sd-sphinx-override sd-badge pst-badge pst-surface">surface</span>
<span class="sd-sphinx-override sd-badge pst-badge pst-on-surface sd-bg-text-primary">on-surface</span>
<span class="sd-sphinx-override sd-badge pst-badge pst-target">target</span>
<span class="sd-badge pst-badge pst-primary sd-bg-text-primary">primary</span>
<span class="sd-badge pst-badge pst-secondary sd-bg-text-secondary">secondary</span>
<span class="sd-badge pst-badge pst-accent sd-bg-text-secondary">accent</span>
<span class="sd-badge pst-badge pst-success sd-bg-text-success">success</span>
<span class="sd-badge pst-badge pst-info sd-bg-text-info">info</span>
<span class="sd-badge pst-badge pst-warning sd-bg-text-warning">warning</span>
<span class="sd-badge pst-badge pst-danger sd-bg-text-danger">danger</span>
<span class="sd-badge pst-badge pst-background">background</span>
<span class="sd-badge pst-badge pst-on-background">on-background</span>
<span class="sd-badge pst-badge pst-surface">surface</span>
<span class="sd-badge pst-badge pst-on-surface sd-bg-text-primary">on-surface</span>
<span class="sd-badge pst-badge pst-target">target</span>
</p>


Expand Down
27 changes: 21 additions & 6 deletions docs/user_guide/web-components.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,31 @@
Sphinx Design Components
========================

The PyData Sphinx Theme uses `sphinx-design <https://sphinx-design.readthedocs.io/en/latest/index.html>`__
to add several UI components and provide extra flexibility for content creation.
These include badges, buttons, cards, and tabs, among other components.
This theme provides custom CSS to ensure that `sphinx-design <https://sphinx-design.readthedocs.io/en/latest/index.html>`__ elements look and feel consistent with this theme.
On this page, you will find user interface components such as badges, buttons,
cards, and tabs.

The components on this page are **not provided by PyData Theme**. They are
provided by `Sphinx Design <https://sphinx-design.readthedocs.io/en/pydata-theme/index.html>_` (a Sphinx extension). This means that if you wish
to use the components on this page, you must install Sphinx Design separately and add it to your `conf.py`.

.. seealso::

For more information about how to use these extensions, see `the sphinx-design documentation <https://sphinx-design.readthedocs.io/en/latest/index.html>`_.
To add the Sphinx Design extension to your Sphinx project, refer to `Sphinx
Design - Getting Started
<https://sphinx-design.readthedocs.io/en/pydata-theme/get_started.html>`_.

Contributors to both projects have worked to ensure compatible styling so that
Sphinx Design components look and feel consistent with the PyData Theme.

This page shows you how the Sphinx Design components would look on your site if
you were to use them in combination with the PyData Theme. Sphinx Design also
provides a `PyData-themed version of the Sphinx Design site
<https://sphinx-design.readthedocs.io/en/pydata-theme/>`__; however, their site
use an older version of this theme.

Below you can find some examples of the components created with the :code:`sphinx-design` extension.
Any customizations you make to the theme could affect how these components
appear on your site. So what you see on this page might not match exactly what
you see on your site even if your site uses this theme.

.. _badges-buttons:

Expand Down
12 changes: 12 additions & 0 deletions src/pydata_sphinx_theme/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -194,6 +194,18 @@ def update_and_remove_templates(
if asset_path == theme_css_name:
del context["css_files"][i]
break
# Add links for favicons in the topbar
for favicon in context.get("theme_favicons", []):
icon_type = Path(favicon["href"]).suffix.strip(".")
opts = {
"rel": favicon.get("rel", "icon"),
"sizes": favicon.get("sizes", "16x16"),
"type": f"image/{icon_type}",
}
if "color" in favicon:
opts["color"] = favicon["color"]
# Sphinx will auto-resolve href if it's a local file
app.add_css_file(favicon["href"], **opts)

# Add metadata to DOCUMENTATION_OPTIONS so that we can re-use later
# Pagename to current page
Expand Down
86 changes: 85 additions & 1 deletion src/pydata_sphinx_theme/assets/scripts/pydata-sphinx-theme.js
Original file line number Diff line number Diff line change
Expand Up @@ -489,7 +489,7 @@ function showVersionWarningBanner(data) {
middle.classList = "bd-header-announcement__content";
inner.classList = "sidebar-message";
button.classList =
"sd-btn sd-btn-danger sd-shadow-sm sd-text-wrap font-weight-bold ms-3 my-1 align-baseline";
"btn text-wrap font-weight-bold ms-3 my-1 align-baseline pst-button-link-to-stable-version";
button.href = `${preferredURL}${DOCUMENTATION_OPTIONS.pagename}.html`;
button.innerText = "Switch to stable version";
button.onclick = checkPageExistsAndRedirect;
Expand Down Expand Up @@ -609,6 +609,89 @@ function fixMoreLinksInMobileSidebar() {
}
}

/*******************************************************************************
* Add keyboard functionality to mobile sidebars.
*
* Wire up the hamburger-style buttons using the click event which (on buttons)
* handles both mouse clicks and the space and enter keys.
*/
function setupMobileSidebarKeyboardHandlers() {
// These are hidden checkboxes at the top of the page whose :checked property
// allows the mobile sidebars to be hidden or revealed via CSS.
const primaryToggle = document.getElementById("pst-primary-sidebar-checkbox");
const secondaryToggle = document.getElementById(
"pst-secondary-sidebar-checkbox"
);
const primarySidebar = document.querySelector(".bd-sidebar-primary");
const secondarySidebar = document.querySelector(".bd-sidebar-secondary");

// Toggle buttons -
//
// These are the hamburger-style buttons in the header nav bar. When the user
// clicks, the button transmits the click to the hidden checkboxes used by the
// CSS to control whether the sidebar is open or closed.
const primaryClickTransmitter = document.querySelector(".primary-toggle");
const secondaryClickTransmitter = document.querySelector(".secondary-toggle");
[
[primaryClickTransmitter, primaryToggle, primarySidebar],
[secondaryClickTransmitter, secondaryToggle, secondarySidebar],
].forEach(([clickTransmitter, toggle, sidebar]) => {
if (!clickTransmitter) {
return;
}
clickTransmitter.addEventListener("click", (event) => {
event.preventDefault();
event.stopPropagation();
toggle.checked = !toggle.checked;

// If we are opening the sidebar, move focus to the first focusable item
// in the sidebar
if (toggle.checked) {
// Note: this selector is not exhaustive, and we may need to update it
// in the future
const tabStop = sidebar.querySelector("a, button");
// use setTimeout because you cannot move focus synchronously during a
// click in the handler for the click event
setTimeout(() => tabStop.focus(), 100);
}
});
});

// Escape key -
//
// When sidebar is open, user should be able to press escape key to close the
// sidebar.
[
[primarySidebar, primaryToggle, primaryClickTransmitter],
[secondarySidebar, secondaryToggle, secondaryClickTransmitter],
].forEach(([sidebar, toggle, transmitter]) => {
if (!sidebar) {
return;
}
sidebar.addEventListener("keydown", (event) => {
if (event.key === "Escape") {
event.preventDefault();
event.stopPropagation();
toggle.checked = false;
transmitter.focus();
}
});
});

// When the <label> overlay is clicked to close the sidebar, return focus to
// the opener button in the nav bar.
[
[primaryToggle, primaryClickTransmitter],
[secondaryToggle, secondaryClickTransmitter],
].forEach(([toggle, transmitter]) => {
toggle.addEventListener("change", (event) => {
if (!event.currentTarget.checked) {
transmitter.focus();
}
});
});
}

/*******************************************************************************
* Call functions after document loading.
*/
Expand All @@ -618,4 +701,5 @@ documentReady(scrollToActive);
documentReady(addTOCInteractivity);
documentReady(setupSearchButtons);
documentReady(initRTDObserver);
documentReady(setupMobileSidebarKeyboardHandlers);
documentReady(fixMoreLinksInMobileSidebar);
Loading

0 comments on commit daaab21

Please sign in to comment.