alistair3149
325f22f0dd
fix(core): 🐛 fire input event when search query is cleared
2023-08-28 18:36:51 -07:00
alistair3149
29d0f4b1ff
fix(core): 🐛 incorrect value for aria-controls
2023-08-04 17:31:11 -04:00
alistair3149
e866edc3a5
fix(toc): 🐛 add null check for link
2023-07-30 19:44:34 -04:00
alistair3149
739fa8504c
fix(core): 🐛 enter key should not clear search input
...
Use span instead of button element. As button element will make
enter key triggering the clear button.
2023-07-16 16:48:14 -04:00
alistair3149
1aba52b870
fix(core): 🐛 inconsistent search focus behavior
2023-07-16 03:50:43 -04:00
alistair3149
aef94e31cb
fix(toc): 🐛 init observer only when there are headlines
2023-07-11 22:01:04 -04:00
alistair3149
0b65a05556
refactor(core): ♻️ break down main function in skin.js
2023-07-11 21:44:34 -04:00
alistair3149
6cddf85131
feat(search): ✨ add clear button to search box
2023-07-10 16:23:48 -04:00
沈澄心
2891d042cc
fix(core): skin preference support for Safari on iOS < 12.2 ( #680 )
...
* Update skins.citizen.preferences.js
* Update skins.citizen.preferences.js
* Update inline.js
* Update SkinHooks.php
* Update skins.citizen.preferences.less
* Update variables.less
* Update theme.less
* Update theme.less
* Update skins.citizen.preferences.js
* Update skins.citizen.preferences.js
* Update skins.citizen.preferences.js
* Update skin.js
2023-07-03 08:48:41 -04:00
H. C. Kruse
a1139e7797
fix(Tables): Check if element.parentNode
is null ( #681 )
...
Happened on the recent changes table. While the added line in TableNowrapClasses also fixes this, I've left it in as a safeguard.
2023-07-03 08:48:15 -04:00
沈澄心
89a9957cd4
refactor(core): avoid using ES2020+ methods ( #669 )
...
Replace ??, ?., and replaceChildren() for better compatibility; hide pref panel in unsupported browsers
* Update mixins.less
* Update Sections.less
* Update TableOfContents.less
* Update interface-edit-section-links.less
* Update mixins.less
* Update Sections.less
* Update TableOfContents.less
* Update interface-edit-section-links.less
* Update sections.js
* Update tableOfContents.js
* Update mwRestApi.js
* Update mwRestApi.js
* Update skins.citizen.preferences.js
* Update mwActionApi.js
* Update typeahead.js
2023-06-21 14:30:45 -04:00
github-actions
14db25faac
ci: 👷 lint code to MediaWiki standards
...
Check commit and GitHub actions for more details
2023-06-20 18:30:08 +00:00
沈澄心
07d7a730b8
fix(core): prevent propagation of click event on .mw-editsection, .mw-editsection-like ( #667 )
...
* Update sections.js
* Update sections.js
2023-06-20 14:29:37 -04:00
Simon Stier
a7b99d11f0
feat(core): add config var 'wgCitizenTableNowrapClasses' ( #621 )
...
* add config var 'wgCitizenTableNowrapClasses'
* refactor: load config via require
2023-05-18 13:53:58 -04:00
alistair3149
09ffed668d
fix(core): 🐛 ensure loading indicator is removed when script is loaded
2023-05-06 17:51:41 -04:00
alistair3149
cd93b3d679
feat(core): ✨ ignore cargo dynamic table for table wrapper
2023-05-02 01:09:54 -04:00
alistair3149
79daca474a
feat(core): ✨ ignore dataTable for table wrapper
...
It seems that dataTable collide with the wrapper for some reason.
Looking for help on this one if anyone knows.
2023-05-02 00:32:07 -04:00
alistair3149
661fbf0b8f
feat(core): ✨ do not wrap changelist tables
2023-05-01 23:34:18 -04:00
alistair3149
587cea1ee9
feat(core): ✨ check parent container for table nowrap class
2023-05-01 14:50:48 -04:00
alistair3149
3d14f9cf0b
feat(core): ✨ do not wrap nested tables
2023-05-01 14:45:08 -04:00
alistair3149
c10dd046c3
refactor(core): ♻️ minor variable name cleanup
2023-05-01 03:08:08 -04:00
github-actions
8d044aea95
ci: 👷 lint code to MediaWiki standards
...
Check commit and GitHub actions for more details
2023-05-01 06:38:27 +00:00
alistair3149
81affb88f1
feat(core): ✨ ignore infobox class for table wrapper
2023-05-01 02:37:32 -04:00
github-actions
8bd678a180
ci: 👷 lint code to MediaWiki standards
...
Check commit and GitHub actions for more details
2023-05-01 06:24:37 +00:00
alistair3149
d1d49e62d5
feat(core): ✨ inherit float classes to table wrapper
...
So that table would have the correct float style
2023-05-01 02:23:40 -04:00
github-actions
ee90992a89
ci: 👷 lint code to MediaWiki standards
...
Check commit and GitHub actions for more details
2023-05-01 06:06:54 +00:00
alistair3149
b2eaf0a41a
feat(core): ✨ add HTML class to disable table wrapper
...
Adding the class `.citizen-table-nowrap` will stop Citizen from adding wrapper to the table
2023-05-01 02:05:58 -04:00
alistair3149
e45af9bbbe
feat(core): ✨ add scroll affordance to tables
2023-04-30 19:54:31 -04:00
alistair3149
ce9963467d
refactor(core): ♻️ load content scripts using wikipage.content hook
2023-04-30 18:01:53 -04:00
github-actions
1945988d6f
ci: 👷 lint code to MediaWiki standards
...
Check commit and GitHub actions for more details
2023-04-30 21:02:42 +00:00
alistair3149
8c888a7e1f
feat(core): ✨ make tables responsive without breaking table layout
...
Instead of a CSS solution used previously, switch to a JS solution to wrap tables.
This should ensure the table renders correctly and also scrollable.
This lays the groundwork for making table more user-friendly in the future.
2023-04-30 17:01:29 -04:00
alistair3149
90890de53f
feat(core): ✨ add config flag to disable preferences menu
2023-03-27 14:08:38 -04:00
alistair3149
015b1e1b9a
fix(core): 🐛 respect config flag for default theme
...
This should fix the issue where CitizenThemeDefault is not working
2023-03-20 12:21:46 -04:00
alistair3149
e06ed54c83
feat(search): ✨ support MW default search shortcut key
...
It is added as an alternative of the slash key shortcut.
Closes : #582
2023-02-15 16:08:39 -05:00
alistair3149
ee4a7eda4f
refactor(core): ♻️ rename mw-checkbox-hack class to citizen-menu-checkbox
2023-01-25 20:25:40 -05:00
alistair3149
ef955c28a0
feat(core): ✨ use MW core checkboxHack instead
...
We no longer need to emulate the same feature when it is in core
2023-01-25 19:40:52 -05:00
alistair3149
a7406d8e32
fix(core): 🐛 default to auto theme unless set
2023-01-20 20:18:58 -05:00
alistair3149
685a3ad1c4
refactor(core): ♻️ reduce the number of RL modules
...
It will improve the performance in module registration and also caching
2022-12-09 14:48:17 -05:00
alistair3149
48cb80aaa3
refactor(search): ♻️ make renderSuggestions more digestible
2022-12-03 13:42:01 -05:00
github-actions
568405cd5d
ci: 👷 lint code to MediaWiki standards
...
Check commit and GitHub actions for more details
2022-12-02 23:00:32 +00:00
alistair3149
391266c0a7
feat(core): ✨ allow the use of custom search suggestion module
...
defines the search suggestion ResourceLoader module
used by the skin. It deprecates the config
2022-12-02 17:59:45 -05:00
github-actions
57d50ea5c5
ci: 👷 lint code to MediaWiki standards
...
Check commit and GitHub actions for more details
2022-12-02 22:39:05 +00:00
alistair3149
1939850369
feat(core): ✨ allow multiple search components on the same page
...
This will allow the search suggestion to hook up to multiple search
boxes with `.citizen-search-box` as container. Do note that the default
Citizen suggestion is hardcoded for the primary search, so it only
works for the old core search suggestion module.
This is also a prereq for implementing the Codex search like the one
from Vector.
2022-12-02 17:35:23 -05:00
alistair3149
9652d4f8ed
refactor(core): ♻️ prepare for heading structure changes
2022-11-24 21:46:23 -05:00
alistair3149
f70d410779
feat(core): ✨ reduce scroll up header delay
2022-11-23 14:11:48 -05:00
alistair3149
6b13da3318
feat(core): ✨ hide navigation on scroll down
2022-11-21 17:46:09 -05:00
alistair3149
b5ddd26de7
perf(core): ⚡ ️ only add beforeunload listener once
2022-11-21 17:46:04 -05:00
alistair3149
9c871764c3
style: 🎨 fix some eslint issues
2022-11-21 17:45:50 -05:00
alistair3149
31c43fa33b
refactor(core): ♻️ do not init observer when not needed
...
Do not init scroll observer if sentinel is set to display:none
2022-11-21 17:45:42 -05:00
github-actions
159bd8a7d2
ci: 👷 lint code to MediaWiki standards
...
Check commit and GitHub actions for more details
2022-11-21 17:42:28 -05:00
alistair3149
969cd787d6
feat(core): ✨ use different font weight in different themes
...
The same font weight do not provide the same contrast in different themes.
We should be able to change the scaling
2022-11-21 17:42:26 -05:00
alistair3149
ceaf3ed844
feat(core): ✨ tweak responsive layout
2022-11-21 17:42:22 -05:00
alistair3149
a1ce408e43
feat(core): ✨ re-implement responsive toc
2022-11-21 17:42:05 -05:00
alistair3149
3eaeaa15f7
refactor(core): ♻️ pre-work to allow Citizen to render ToC
2022-11-21 17:41:40 -05:00
alistair3149
4f651b41ca
feat(pwa): ✨ add basic support for service worker
...
This is super basic and experimental.
It will be expanded upon in the future, but for now it will satisfy the
requirement for PWA
2022-10-23 16:37:43 -04:00
alistair3149
e72d7c00a3
feat(core): ✨ add sticky body header
2022-09-29 22:33:06 -04:00
alistair3149
e53afa51dc
fix(core): config CitizenThemeDefault should set theme correctly
...
Previously the config did set the theme correctly but get overridden by the inline
script to auto, this will fix it.
Closes : #418
2022-06-29 15:29:44 -04:00
alistair3149
eba22354e5
fix(core): run script when DOM is ready
...
Sometimes the scripts start to run before DOM is fully ready. It causes things
like #475 where the checkbox is not in DOM yet but the script is already asking for it.
2022-06-04 17:44:03 -04:00
alistair3149
da619c793b
refactor(core): remove duplicated auto theme handling
...
Refactor auto theme handling into inline script since theme.js is basically duplicated code
at this point. Also add the event listener whenever auto theme is set.
Closes : #461
2022-05-20 17:33:10 -04:00
alistair3149
9d711d4ee2
refactor(core): use scroll-padding-top
for top margin
2022-05-17 15:35:04 -04:00
alistair3149
1be7f5faaf
refactor(core): rewrite ToC scrollspy based on Vector
2022-05-17 15:11:16 -04:00
alistair3149
c978bb1320
refactor(core): rename title hidden class
2022-05-13 00:30:46 -04:00
alistair3149
d59ca5c83a
refactor(core): move intersection observer into a module
...
* We will likely use it for other things in the future
* Based on Vector's implementation
* Also do not get toc element twice
2022-05-13 00:26:53 -04:00
alistair3149
23795e05e3
chore(ci): disable mediawiki/class-doc
2022-05-13 00:20:05 -04:00
alistair3149
13a2b710ea
refactor(core): remove duplicated check for ToC
2022-05-12 23:24:32 -04:00
alistair3149
194c73d5bb
style(core): use arrow function
2022-05-12 22:44:17 -04:00
alistair3149
86150d492d
refactor(core): clean up checkboxHack implementation
...
Mostly based on Vector 2022. Now we target checkbox hacks by the HTML classes
.mw-checkbox-hack-TYPE instead of defining each individually, which would
make it more scalable.
2022-05-12 22:37:28 -04:00
alistair3149
508c96ae9d
refactor(core): merge ToC script into core scripts
2022-05-12 17:18:39 -04:00
alistair3149
e0d5eb9657
feat(core): set toc-enabled through Mustache template
...
Since somewhere around MW 1.37, buildSkinFeatures() no longer have access to OutputPage.
That causes $out->isTOCenabled always return null, which makes ToC
broken for any wikis since 1.37. This should fix the issue for now.
More optimizations on the loading behavior will come soon.
2022-05-12 17:01:01 -04:00
github-actions
a2577db3c8
ci: lint code to MediaWiki standards
...
Check commit and GitHub actions for more details
2022-05-12 01:41:40 +00:00
alistair3149
b73357cf7c
feat(core): update checkboxHack API
2022-05-11 21:32:36 -04:00
alistair3149
da26d4bc7f
refactor(core): add null check search button checkbox
2022-05-11 19:08:51 -04:00
alistair3149
cae7deb945
refactor(core): clean up header icon styles
2022-05-10 11:59:43 -04:00
alistair3149
6e35212007
refactor(core): clean up search box implementation
...
* Clean up DOM structure
* Clean up HTML classes
* Use relative units
* Remove unnessecary CSS
2022-05-10 10:52:36 -04:00
alistair3149
5ccfbcfdeb
refactor(core): clean up drawer implementation
...
This is a part of the site header refactor
* Use relative units
* Add title to toggle button
* Remove unnessecary CSS
* Rewrite HTML classes
* Temporary remove drawer subsearch, it will be re-explored in a later patch
2022-05-10 10:52:36 -04:00
alistair3149
96013bb126
feat: deprecate --background-color-dp-XX in favor of --color-surface-X
...
--background-color-dp-XX is now fully deprecated in favor of a simpler 4 color surface system. It can be accessed through the --color-surface-X CSS var.
2022-04-25 22:27:52 -04:00
alistair3149
fed5369847
fix: add null check for checkboxObj.target
...
It should no longer throw an exception which causes other script to fail
Closes #432
2022-04-25 21:48:52 -04:00
alistair3149
2c79c061c4
feat: pass styles as style element instead of inline
2022-04-25 20:34:40 -04:00
alistair3149
047f830d1a
fix: FOUC of light theme when user is using auto theme and prefer dark
...
The prefer-dark script was previously deferred which causes a delay to detect and switch theme for the user. It is now inlined to prevent the delay.
2022-04-19 18:17:53 -04:00
alistair3149
7ecf3a81eb
feat: depreciate theme preferences in MW user preferences
...
Just local storage is good enough
2022-04-19 17:31:23 -04:00
alistair3149
f5c5c996fa
fix: fix eslint no-shadow error
2021-12-15 22:19:39 -05:00
alistair3149
f7e73cf171
feat: add security header deprecation message for upcoming version
2021-08-05 11:41:31 -04:00
alistair3149
f5a2a831d1
feat: add user customizable line height
2021-08-05 11:24:52 -04:00
alistair3149
7dc0d14c70
feat: simplify background color variables in core styles
...
--background-color-dp-XX is soft depreciated, please use --color-surface-X instead
2021-07-25 19:16:05 -04:00
alistair3149
63d21cf318
fix: add additional check for ToC elements
...
that should fix the null querySelector bug:
2021-07-12 15:11:11 -04:00
alistair3149
5f168f03ee
feat: add page load progress bar
2021-06-12 09:54:47 -04:00
alistair3149
19119f2b5d
feat: add auto theme to preferences
2021-06-09 14:40:44 -04:00
alistair3149
b2bd79196d
feat: rework search module ( #386 )
...
* feat: rewrite search module (WIP)
There are some caveats because it is a WIP
- Messages are not i18n yet
- Missing placeholder suggestion thumbnail
- Only REST mode works
- Missing greeting message when there is no search query
- Code might look like a mess (I learned JS not long ago)
* refactor: remove old search module
* feat: clean up search suggestion styles
* feat: hide overflow for suggestion text
* feat: add action API and various cleanup
* feat: re-add abort controller
* feat: add message support and tweaks
* feat: use virtual config instead of ResourceLoader hook
* fix: missing comma in const definition
* feat: add ARIA attributes
2021-05-17 16:34:14 -04:00
alistair3149
3202c1d9e6
fix: prevent Firefox quickfind overriding the search toggle shortcut
2021-05-10 13:36:44 -04:00
github-actions
fef76149d1
ci: lint code to MediaWiki standards
...
Check commit and GitHub actions for more details
2021-05-10 17:27:36 +00:00
alistair3149
74873da01f
refactor: better detection for slash toggle
2021-05-10 13:26:39 -04:00
alistair3149
e79e707ce3
fix: disable search shortcut when VE is activated
2021-04-30 13:28:51 -04:00
alistair3149
51ac47691e
feat: implement reading preferences
...
allow visitor to adjust theme, font size, and page width
2021-04-27 13:51:03 -04:00
alistair3149
e2b4a4e49a
feat: show page title on header after scroll
...
The page header also acts as a jump to top link
2021-04-26 11:39:27 -04:00
alistair3149
4bbb59f978
refactor: improve search loading indicator behavior
2021-04-22 12:09:14 -04:00
alistair3149
546fa36d33
refactor: drop dependency for mediawiki.page.ready
2021-04-22 11:44:48 -04:00
alistair3149
38882334c8
refactor: use checkboxHack module for search script
2021-04-21 18:47:03 -04:00
alistair3149
8129ca0e5b
feat: use MW core checkboxHack scripts instead
...
Cloned and tweaked to a local file as the core file can be different across MW builds
2021-04-21 16:45:52 -04:00
alistair3149
f44aaa4e4c
refactor: refactor skins.citizen.scripts to ES6
2021-04-21 13:44:28 -04:00
alistair3149
117d839f00
doc: fix lettercase for Window and Document object
2021-04-21 11:32:44 -04:00