Commit graph

307 commits

Author SHA1 Message Date
abaevbog
bbf91d65f9
Citation dialog: move locator label lower (#5096)
So it aligns with inputs a bit better. Positioning
is tricky with native select elements but with a bit extra
margins, it looks better.

Fixes: #5091
2025-03-13 23:48:10 -04:00
Tom Najdek
38188ff7d0
Fix huge buttons in banner on Linux 2025-03-12 13:45:00 +01:00
Bogdan Abaev
4a00304925 Redesigned citation dialog (#4872)
Implemented redesigned citation dialog with library
and list modes one can switch between. This dialog is
a direct replacement of quickFormat and classic citation
dialogs.

In Library Mode:
- items table has a new + button column to add items from the
citation and rows of selected items are highlighted
- open, cited and selected items appear in a section
between the items table and bubbleInput. When there are no
matches, a message is shown.
- only top-level items are shown when citing
items and only notes/notes' parents - when adding a note
- selected items are gathered in a collapsible deck to save space.
Click on the deck will expand it. All selected items can be
added via "Add all" button.
- when an item is added, bubble-input may increase in height and
push itemTree lower. To try to preserve relative positioning
of the mouse, itemTree will scroll to be over the row that was just clicked

In List mode:
- arrow up/down from the input will change the selected item
with the focus remaining in the input
- selected items are a collapsible list section

Other behaviors and fixes:
- one can add any locator (not just pages) by typing its full or short name
in an input and pressing Enter (e.g. line 10, or l. 10, or chap. "test chapter")
- Added a new preference to select if the citation dialog
should always open in list mode, library mode or in the last
mode that was used
- bubbles whose items are selected in library or list mode
are highlighted
- arrow up/down from a bubble will focus the bubble
above/below it for easier navigation across bubble-input
- multi-select is supported on items in list mode or item cards in
library mode via Shift-arrow or Cmd+click to select multiple items
- Cmd/Ctrl + Enter will always accept the dialog no matter what
is focused
- when there are no bubbles, accept button is disabled
- after an item is added, bubble-input is always refocused
- added suppressed property to itemTreeMenubar to be able to
hide if in list mode, where it is not relevant. Fixed menubar
getting stuck or re-appearing on Alt keypress on Linux by setting
height: 0 vs hiding it via hidden.
- added initialFolder and onActivate prop to collectionTree to set which collection
should be reopened when dialog opens and to be able to set a custom
onActivate handler.
- added getExtraField prop to itemTree to get data on if
an item is in a citation or not

Implementation details:
- citationDialog.js is the main file. It relies on a number of
helper files in citationDialog/* directory to keep the main
file less cluttered. popupHandler.js contains the logic of
opening/closing the item details popup to add locator/prefix/suffix/etc.
keyboardHandler.js is responsible for overall keyboard navigation
throughout the dialog. searchHandler.js contains the logic
for running the search based on user's query. Finally, Helpers.js
has general helper functions that don't handle any actual logic.
- SearchHandler is set to run search in two ways: for cited/selected/open
items (which are cached and do not involve any actual SQL query) and
general search for items across all libraries. When layout.search
runs, firstly cited/selected/open items are updated after which the
SQL search runs.
- bubbleInput.js is a customElement responsible for bubbles interface.
bubbleInput.refresh takes a list of items and handles adding/removing/reordering
of bubbles as needed. It always has two inputs on each side of
a bubble, as opposed to having inputs inserted dynamically. It
allows keyboardHandler.js to handle navigation with arrows within
bubbleInput.
- when user interacts with bubbleInput, it emits custom events that are
handled by IOManager singleton in citationDialog.js, which
may update the items information and pass them back to bubbleInput.refresh
to have the list of bubbles updated
- CitationDataManager singleton is responsible for storing
items added into the citation in CitationDataManager.items
in an object with both Zotero.Item and the actual citation item.
It is easier to pass both items to other components
and helpers, as opposed to sharing functions to convert
items back and forth.
2025-03-10 22:40:43 -04:00
Adomas Venčkauskas
a3654652b2 Adds a Citation Explorer dialog for document integration (#3468) 2025-03-10 22:40:43 -04:00
Adomas Ven
8dbc6177ce
Macos integration progress bar (#5016)
* Display the progress bar on macOS integration commands more

Avoid displaying before Add/Edit Citations, Add Note and Doc Prefs
since that brings Zotero window to the foreground along with the
relevant dialog, but display the progress bar after confirming those
dialogs, which will bring Zotero to the front, but is still better than
no progress indication.

Display the progress bar for Refresh, Doc Prefs, Unlink and Add/Edit
Bibliography

* Fix progress bar indeterminate state not being visible and not working.

- Update _progressMeter.scss for fx115+
- Some adjustments/resizing to progress bar display in quick format
2025-02-12 08:43:11 +02:00
Dan Stillman
71d697801e Fix banner style issues
- Fix background color on post-upgrade banner
- Add drop shadow between stacked banners (e.g., post-upgrade banner and
  Mac Word banner, which will generally appear together on an upgrade
  and have the same background color)
- Align right edge of buttons in post-upgrade and Mac Word
- Unify other spacing and font sizes
2025-01-27 07:34:31 -05:00
Dan Stillman
aaf7984a8e Fix alignment of tag rows in long tag fixer
Rows were center-aligned
2025-01-22 03:09:31 -05:00
Dan Stillman
39b92d6cdb Fix incorrect spacing around link in Z7 post-upgrade banner
Regression from 564b1766aa

Fixes #4926
2025-01-22 03:07:36 -05:00
Dan Stillman
d2952d3e71 Remove duplicate padding rule 2025-01-22 03:07:19 -05:00
Dan Stillman
9e569c33f8 Adjust nesting of #post-upgrade-banner SCSS 2025-01-22 03:06:40 -05:00
Tom Najdek
a4414cc2f0
Remove last few legacy icons #3691 (#4996) 2025-01-21 05:37:56 -05:00
windingwind
42b97d8fcd fx128: dialog window background (#4921)
fix: #4917
2024-12-14 01:16:06 -05:00
Abe Jellinek
b858645957 fx128: -moz-nativehyperlinktext -> LinkText (#4902) 2024-12-14 01:16:03 -05:00
Dan Stillman
884a62d526 Fix swapped creator-field-mode icons 2024-10-30 21:42:28 -04:00
windingwind
c75119324c
Fix item pane width jumping in stacked mode (#4757)
fix: #4755
2024-10-16 00:34:12 -04:00
abaevbog
15ccf28fb4
vpat 16: context menu as a drag-drop alternative to change parent item of attachment/note (#4423)
- added "Change Parent Item…" context menu option to
itemTree as a non-drag-drop alternative to changing the
parent of attachments or notes
- context menu option appears only when all selected
items are notes or attachments
- upon activation, a dialog to select the new parent
will appear. Added a tweak to the dialog to disable
the "accept" button if a selected item is not top level
- minor edit to itemTree to set the multiselect property
based on a prop, since we do not want to have multiselect
enabled in this instance
- hide all virtual collections in selectItemsDialog via new
io.hideCollections parameter
- "Convert to Standalone Attachment" button in dialog if
child attachment is selected
2024-10-10 16:56:34 -04:00
Dan Stillman
fc7307fd84 Unify banner padding 2024-10-05 02:01:48 -04:00
Dan Stillman
2ca1389b43 Adjustments to Mac Word installation banner (#4660)
- Use real buttons and other tweaks from design
- Use existing .properties string for "Don't Ask Again" for now
- Remove close button
- Update submodule for reminder after 24 hours instead of 7
2024-09-15 23:20:01 +02:00
Adomas Venčkauskas
564b1766aa Add a Mac Word plugin Sequoia permissions warning banner (#4660)
Also refactor some banner rules.
2024-09-15 23:19:47 +02:00
windingwind
78077fab9d
Fix main window layout and window resizing (#4676)
- Replace flex attribute with flex-shrink and flex-grow style
  to allow elements to be resized by splitter and window resizing.
- Set the max-width on collections pane to prevent it from pushing
  other panes outside window border
- Set the min-width on window according to the size of both library
   and reader tabs
- Use stacked layout when window width is small

fix: #4669
2024-09-12 06:26:31 -04:00
Tom Najdek
6b7834876f
Fix a couple of issues related to dark mode icons (#4655)
- Fixed missing dark mode icons in the advanced search dialog.
- Corrected inconsistent icon shading in some menus.
2024-09-01 15:48:36 -04:00
windingwind
a0a8cceda4
Checkbox-and-radio-redesign-on-Windows (#4609) 2024-08-30 07:20:52 -04:00
Abe Jellinek
cb6e1e3e59 Lookup Engine Manager: Contain richlistbox
Fixes #4635
2024-08-27 11:20:33 -04:00
Tom Najdek
b350613770
Fix progress bar ignores color scheme. Resolve #4589 (#4599) 2024-08-26 08:00:18 -04:00
Abe Jellinek
1f26b64519
RTL: Small item tree tag display fixes (#4576) 2024-08-16 02:10:52 -04:00
Tom Najdek
596703b21b
Fix inverted tag colors order. Resolve #4569 2024-08-15 11:15:51 +02:00
windingwind
69b4789c17
Unify richlistitem styling rules (#4511)
Unify richlistitem styling rules

- Fix richlistitem unwanted focus ring on Linux
fix: #4510
- Simplify richlistbox styling rules and do not follow Mozilla code
- Use --default-focusring-width for v-table
2024-08-09 15:57:56 +03:00
Abe Jellinek
2d32efbccd
Apply tag text color to ellipsis (#4536) 2024-08-08 22:54:10 -04:00
Bogdan Abaev
7450622047 itembox: switch creator mode button (#4535)
- added button to switch mode to creator rows
- removed that option from options menu
- extra tweak to avoid cursor flickering during re-render after
clicking on the button
- increased itemPane min-width to 320px

Fixes: #3959
2024-08-08 22:50:26 -04:00
Tom Najdek
083ad9ee05
Fix missing margin between colored and emoji tags
In the item tree, emojis are spaced 4px apart, but there was no space
between the colored circles and the first emoji, making it look crowded.
2024-08-08 18:09:19 +02:00
windingwind
6f6444dc12
Fix tab bar scroll arrow button click not working (#4529)
fix: #4527
2024-08-08 04:19:41 -04:00
abaevbog
35da1187b3
prefs: fix text-link not clicking on space/enter (#4522)
Fix regression after 117197e11d
where space or enter would not trigger a click on
link outside of the main window.

".keyboard-clickable" is handled by listener in ZoteroPane,
so links outside of it (e.g. preferences) are not affected by it.
For now, just explicitly handle "keypress" event by the
zotero-text-link component.

Also, added a focus-ring around the link so it is visible
when it is focused.

Fixes: #4521
2024-08-08 00:24:19 -04:00
Abe Jellinek
531f55120c
Feed settings: Make disclosure triangle focusable, extract SCSS (#4513)
- <hbox> -> <button>, <toolbarbutton> -> <dropmarker>
- Extract styles to SCSS and use focus-ring mixin

Fixes #4512
2024-08-08 00:22:09 -04:00
windingwind
55017926b5
Fix window background overflow when no native titlebar (#4516) 2024-08-07 03:01:59 -04:00
Tom Najdek
7c3d04e03a
Warn users running non-ARM version on ARM CPU (#4473) 2024-08-01 01:22:03 -04:00
windingwind
98d1f84263 Fix banner style on Windows (#4466)
fix: #4449
2024-07-31 03:23:51 -04:00
Abe Jellinek
15fa86410d Update Advanced Search styles (#4464) 2024-07-31 01:35:48 -04:00
Abe Jellinek
74b86a7033 Make macOS control normalization into a mixin (#4464)
And include in stylesheets that have been updated.

Have to make sure not to include this mixin in the global scope in
stylesheets that are themselves imported elsewhere (i.e., filename
begins with an underscore).
2024-07-31 01:35:31 -04:00
Abe Jellinek
c836fb3448 Move negative margin on checkboxes/radios (#4458)
Move it from the parent element (<checkbox>, <radio>) to the first child
(.checkbox-check, .radio-check). This way, margins set by classes like
.indented-pref don't negate our global styles.
2024-07-30 01:29:12 -04:00
Abe Jellinek
9d8845b961 Locate manager: Fix button spacing (#3807) 2024-07-28 03:26:39 -04:00
Abe Jellinek
1573d251e0 Advanced Search: Fix button spacing (#3807) 2024-07-28 03:26:36 -04:00
Abe Jellinek
75cb9d44bd Add global button/radio/checkbox styles (#3807) 2024-07-28 03:26:24 -04:00
Abe Jellinek
5f717d3bde Show first-run banner on upgrade (#3807) 2024-07-28 03:26:12 -04:00
Abe Jellinek
7020d60351 Generalize Find Available PDF -> Find Full Text (#4397) 2024-07-27 02:11:22 -04:00
Abe Jellinek
7c7d8c1433
Implement Select Items dialog redesign (#4406) 2024-07-26 02:55:43 -04:00
Abe Jellinek
38391f356c
Restore autoscroll support in reader (#4405)
- Mozilla's ActorManagerParent was only being imported when devtools
  were initialized (either by opening the Error Console or by connecting
  via remote debugging). Import it in our ActorManager so Mozilla
  actors, including AutoScroll, are always registered.
   - This may have other effects! I'm assuming most of us test with
     the error console visible, though, so we would've had Mozilla
     actors, while users running without devtools wouldn't have. We
     definitely want those actors. (Most of them, at least.)
- Don't override autoscroller styles with our panel customizations.
2024-07-19 01:57:45 -04:00
abaevbog
e6b5ba60dd
fix tab not scrolling into view (#4404)
After react 18 update, the tab node may not yet be rendered
by tabBar.jsx when we try to scroll it into view in Zotero_Tabs.select.

- To make sure scrolling happens when rendering is done, move scroll-related
logic into a useEffect of tabBar.jxs. It also makes sure that we'll scroll to
a selected tab if it is moved via context menu to the very beginning or the end.

- Added a small scroll-padding to tabs container to make sure the border
does not get cutoff after the tab is scrolled into view instead of
JS code accounting for the border.

- Fixed a glitch where the pinned library tab would not get selected
on shift-tab from opened tabs menu.

Fixes: #4382
2024-07-18 02:19:07 -04:00
Bogdan Abaev
a73035c848 vpat 66-68: fix focus within tagsBox popup (#4231)
- focus will always enter the tagsBox popup opened from the reader
- escape from within the popup with tagsBox will close the popup (vpat
  67)
- one should not be able to collapse the tagsBox. Added `collapsible`
  getter and setters to the collapsible panel to prevent the section
  from changing its open status. This may be also used in other cases,
  such as to prevent itemBox from being collapsed in duplicates mode.
- patched a glitch where tab from the last empty tab input would loose
  focus.
- changed the `menupopup` for `panel` to display the `tagsbox` because
  `menupopup` has implicit `role="menu"` which is not meant to contain
  inputs, so voiceover completely looses cursor when inputs are focused
  inside of the popup. Also, tweaked spacing a bit to avoid the
  focus-ring getting cutoff.

Addresses: #4222
Fixes: #4230
Fixes: #4226
Addresses: #4388
2024-07-16 02:35:53 -04:00
windingwind
b16bbc4a8a Fix richlistitem inner element style
fix: https://github.com/zotero/zotero/pull/4339#issuecomment-2225908561
2024-07-13 23:51:56 +08:00
Tom Najdek
260709969e Improve RTF Scan UI
* Multiple accessiblity fixes
* Increase font size
* Nicer layout of the welcome screen
* Fix description in the welcome screen
* Add stripes to the table in citations matching screen
* Change icons for accept and resolve manually buttons
2024-07-11 01:46:16 -04:00