Commit graph

1814 commits

Author SHA1 Message Date
Henrik Giesel
29d6d524d0 Introduce HandleControl 2021-09-06 21:15:37 +10:00
Henrik Giesel
fce34cafd9 Introduce HandleSelection.svelte 2021-09-06 21:15:37 +10:00
Henrik Giesel
b501326c89 Change SizeSelect.images back to const: no reactivity needed here 2021-09-06 21:15:37 +10:00
Henrik Giesel
598d3bfbc5 Also check for sizeSelect.includes 2021-09-06 21:15:37 +10:00
Henrik Giesel
76d56d73a7 Make images in SizeSelect variable again 2021-09-06 21:15:37 +10:00
Henrik Giesel
f7a99063a8 Only allow ImageHandle on valid pictures (determined in SizeSelect) 2021-09-06 21:15:37 +10:00
Henrik Giesel
299892c40f Fix resetting image-handle-bg on no activeImage 2021-09-06 21:15:37 +10:00
Henrik Giesel
480138f8e3 Set max-width of images in the reviewer to 100% 2021-09-06 21:15:37 +10:00
Henrik Giesel
1c8d5d3fa7 Make first adjustment of size dimensions wait for setting of dimensions label 2021-09-06 21:15:37 +10:00
Henrik Giesel
55b63b9a45 Better algorithmus for minimum resize + prevent overflow of dimensions 2021-09-06 21:15:37 +10:00
Henrik Giesel
62639f3108 Constrain with proportions in SizeSelect 2021-09-06 21:15:37 +10:00
Henrik Giesel
ac182473ac Show custom dimensions again 2021-09-06 21:15:37 +10:00
Henrik Giesel
a7d117b6bc Detect active status again 2021-09-06 21:15:37 +10:00
Henrik Giesel
027db43664 Implement new resizing algorithm
* resizes against the original parameters
2021-09-06 21:15:37 +10:00
Henrik Giesel
e2d345bfd2 Manage CSSStyleSheet from within SizeSelect where each image has one rule 2021-09-06 21:15:37 +10:00
Henrik Giesel
16a394fa7d Hide Float icons when width too small + Avoid too small resizing 2021-09-06 21:15:37 +10:00
Henrik Giesel
ccc44d1632 Revert "During resizing, make the smaller dimension decide the new dimensions"
This reverts commit 5bad9a913ce7b4a4cc58106936203fddec37d6da.

The previous behavior was the one you can observe in most graphical editors:
The bigger dimension (width or height) will decide the size, not the smaller one.
2021-09-06 21:15:37 +10:00
Henrik Giesel
0ffa5030e5 During resizing, make the smaller dimension decide the new dimensions 2021-09-06 21:15:37 +10:00
Henrik Giesel
a7fa217306 Reset height, so it defaults to "auto"
* This allows more flexible dynamic resizing for the image in the (p)reviewer
2021-09-06 21:15:37 +10:00
Henrik Giesel
3fe1180f39 Add margin to other side of dimensions 2021-09-06 21:15:37 +10:00
Henrik Giesel
63fed87b48 Do not allow for resizing when in constrained mode 2021-09-06 21:15:37 +10:00
Henrik Giesel
c4f47be673 Don't show same dimensions twice if there are no custom dimensions 2021-09-06 21:15:37 +10:00
Henrik Giesel
db558c869d Change position of float buttons and dimension
* So we can show dimensions at lower image sizes
2021-09-06 21:15:37 +10:00
Henrik Giesel
fce63ed718 Deal with case where no style.{width,height} is set for size dimensions 2021-09-06 21:15:37 +10:00
Henrik Giesel
460b6f33c9 Dispaly "actualHeight / actualWidth" even in constrained mode 2021-09-06 21:15:37 +10:00
Henrik Giesel
2a548f2ebd Turn off no-explicit-warning for editing-area 2021-09-06 21:15:36 +10:00
Henrik Giesel
e8ec6b61a7 Use ResizeObserver to resize overlay if necessary 2021-09-06 21:15:36 +10:00
Henrik Giesel
2224d1c287 Reset image handle on keydown and blur 2021-09-06 21:15:36 +10:00
Henrik Giesel
796037649a Better RTL support 2021-09-06 21:15:36 +10:00
Henrik Giesel
9342d19504 Move selector / active logic up to ImageHandle 2021-09-06 21:15:36 +10:00
Henrik Giesel
47cd308251 Do not use width/height auto important to avoid enlarging smaller images 2021-09-06 21:15:36 +10:00
Henrik Giesel
7696a181f3 Implement Maximum image size mechanism 2021-09-06 21:15:36 +10:00
Henrik Giesel
a6b071d849 Add float tooltips 2021-09-06 21:15:36 +10:00
Henrik Giesel
5257a4db26 Allow SW resize 2021-09-06 21:15:36 +10:00
Henrik Giesel
5e91108a79 Bind to style properties instead of events 2021-09-06 21:15:36 +10:00
Henrik Giesel
b919b9cb7f Add functionality to set float of image 2021-09-06 21:15:36 +10:00
Henrik Giesel
2a81273115 Image resizes preserves ratio 2021-09-06 21:15:36 +10:00
Henrik Giesel
9b97320438 Add image-handle-dimensions to show dimensions directly on image 2021-09-06 21:15:36 +10:00
Henrik Giesel
53d1435aa7 First implementation of ImageHandle 2021-09-06 21:15:36 +10:00
Damien Elmes
3e5a2a92c7 Introduce editable-container
Contains the shadow root, and references to the styles.
Is ignorant of Editable.
Is necessary, so our we editable.scss does not need to contain
information about Codable, ImageHandle or all those other things which
have nothing to do with Editable
2021-09-06 21:15:36 +10:00
Damien Elmes
f07b72a708 Merge pull request #1332 from hgiesel/svelteexportcontext
Shorten CSS references for `@import` or `@use`
2021-09-06 21:10:27 +10:00
Henrik Giesel
dc9a65bd8b Disallow setting, deleting or defining properties on packages 2021-09-03 00:52:39 +02:00
Henrik Giesel
7cb3c4a996 Add ts/sass/anki, a symlink to ts/sass for add-ons 2021-09-03 00:18:17 +02:00
Henrik Giesel
269b75ef4e Fix for svelte_check 2021-09-02 23:37:17 +02:00
Henrik Giesel
1f34b666b9 Uniformly shorten SCSS imports/uses 2021-09-02 23:37:17 +02:00
Henrik Giesel
c521568303 Directly include CSS from bootstrap and codemirror packages 2021-09-02 23:37:16 +02:00
Henrik Giesel
0667706d60 Add source for block level elements 2021-09-02 22:31:25 +10:00
Henrik Giesel
f7954af1be Remove special treatment of empty anki-editable 2021-09-02 22:31:25 +10:00
Henrik Giesel
47252983c5 Check for non-existence of block tags instead of exclusive existence of inline tags in editable 2021-09-02 22:31:25 +10:00
Damien Elmes
f5bbeba218 Merge pull request #1350 from hgiesel/exportshortcuts
Implement register-package and export some packages
2021-09-02 22:23:12 +10:00
Damien Elmes
575ddb6cc6 Merge pull request #1351 from hgiesel/fontisinline
Add FONT as an inline tag
2021-09-02 22:22:19 +10:00
Damien Elmes
3fc1ead668 don't allow | in generic family 2021-09-02 21:05:17 +10:00
Henrik Giesel
bafbdb3835 Add FONT as an inline tag 2021-08-31 13:59:07 +02:00
Henrik Giesel
76ca1356ac Implement register-package and export some packages
Exported packages are:
* anki/packages
* anki/shortcuts
* anki/bridgecommand
2021-08-30 14:41:40 +02:00
Damien Elmes
481a87367c fix incorrect calendar day labels
https://forums.ankiweb.net/t/day-of-the-week-legend-on-heatmap/9450/7
2021-08-24 12:17:35 +10:00
Damien Elmes
aaa6ecb7e6 Merge pull request #1340 from hgiesel/exportinternal
Export Svelte internals
2021-08-24 10:42:17 +10:00
Damien Elmes
875fd62264 expose require() instead of the svelte global
- Means add-on authors should not need to inject any code in their build
- Should be more flexible - we can export multiple libraries if we wish,
and don't have to worry about require() being clobbered by old add-ons.
2021-08-24 10:22:07 +10:00
Henrik Giesel
119d2e0eb4 Rename cross-unit to export-internal 2021-08-23 23:45:50 +02:00
Henrik Giesel
8f8914f3c7 Update Svelte to 3.42.2 2021-08-23 23:38:16 +02:00
Henrik Giesel
0585a5da3e Export WithShortcut 2021-08-23 21:23:04 +02:00
Henrik Giesel
5c987896cf Export svelte_internal as library on window object
Closes https://github.com/ankitects/anki/issues/1328.
2021-08-23 21:16:15 +02:00
Damien Elmes
21c2fe7b2d add note about interday learning cards being fetched preferentially
+ priority->order
2021-08-22 15:32:46 +10:00
Damien Elmes
0aae073056 adding options to sort by ascending/descending ease 2021-08-22 15:32:46 +10:00
Damien Elmes
3ec3b4242f Merge pull request #1335 from hikaru-y/fix-editor-fontfamily
Quote font family names
2021-08-20 14:39:29 +10:00
Damien Elmes
104a24bc1d add options to v3 to preserve new card gather order
Allows cards to be presented in deck order when gather priority is set
to 'deck'.
2021-08-20 12:03:32 +10:00
hikaru-y
0331da21e6 Quote font family names, except for generic families
Fixes https://forums.ankiweb.net/t/font-script-is-not-changing-in-the-anki-windows/12465
2021-08-20 04:31:11 +09:00
Damien Elmes
6ddbe8fd3e put reviews at bottom of reviews graph
https://forums.ankiweb.net/t/new-reviews-graph-design-is-worse-than-it-was-in-2-1-40/9807
2021-08-19 21:43:00 +10:00
Damien Elmes
6410e66857 filtered decks w/ scheduling disabled in v3 now log reviews 2021-08-19 20:25:29 +10:00
Damien Elmes
fb7eabcb80 fix mutateNextCardStates being exported into global namespace
https://forums.ankiweb.net/t/v3-custom-scheduler-not-working/12441
2021-08-19 10:21:04 +10:00
hikaru-y
e23737fb6c Use <template> element instead of Range.createContextualFragment()
https://forums.ankiweb.net/t/audio-in-back-template-is-played-on-front-template-on-desktop-2-1-46/12399

Unlike when using <template> element, if a DocumentFragment is created
using Range.createContextualFragment(), <audio>/<video> elements
with `aotoplay` will play immediately even before they are inserted into
the actual document, which will cause audio or video on the answer side
to be played on the question side.
2021-08-18 00:04:02 +09:00
Damien Elmes
37ed7f9bae fix inverted 'skip question when replaying answer' option
I'd intended to add a new string but overlooked it.

https://forums.ankiweb.net/t/bug-always-include-question-side-when-replaying-audio/12273/2
2021-08-15 16:15:14 +10:00
Damien Elmes
eae17ffbff use alphanumeric keyboard in SpinBoxFloat
https://forums.ankiweb.net/t/error-setting-hard-interval-on-ios/12105/3
2021-08-09 14:15:16 +10:00
Henrik Giesel
b396ef558c Satisfy eslint 2021-08-03 06:12:04 +02:00
Henrik Giesel
00b990b79e Add tooltip for Toggly sticky icon 2021-08-03 06:02:29 +02:00
Henrik Giesel
485460870c Increase inactive opacity a little for better discoverability 2021-08-03 05:52:57 +02:00
Henrik Giesel
2649dc0ad7 Add toggle sticky shortcuts F9 and Shift+F9 2021-08-03 05:52:07 +02:00
Damien Elmes
9a809af6ab Merge pull request #1320 from hgiesel/colorpickerplus
Remember last text and highlight color again
2021-08-03 09:07:46 +10:00
Henrik Giesel
39566638f3 Remember last text and highlight color again 2021-08-02 23:12:00 +02:00
Damien Elmes
bd146fa4fb update congrats screen periodically; automatically move back to study 2021-08-02 16:05:18 +10:00
Damien Elmes
86d5d7e020 don't hide learning count on congrats screen when learning is overdue
The v3 scheduler will delay the final card from being shown twice in
a row, but the overdue case was being treated the same as the no-learning
case, leading to the message being hidden.
2021-08-02 15:57:09 +10:00
Damien Elmes
b5808eea9e fix inability to map fields from larger to smaller notetype
We were using the new item count instead of the old one.

https://forums.ankiweb.net/t/issue-changing-note-type-on-2-1-45/11822
2021-07-31 18:30:50 +10:00
Henrik Giesel
94eff9a864 Install Ctrl+Shfit+V paste only on Apple platforms 2021-07-31 03:43:10 +02:00
Henrik Giesel
8c6df4461d Remove registerShortcut for Ctrl+C/V/A/X from editor/index.ts 2021-07-30 22:28:40 +02:00
Damien Elmes
7513f9789f export jQuery, not just $
https://github.com/ankitects/anki/pull/1314#issuecomment-889597619
2021-07-30 18:30:37 +10:00
Damien Elmes
d511f2bd18 Merge pull request #1314 from hgiesel/fixjqueryreviewer
Export jquery correctly
2021-07-29 23:26:05 +10:00
Henrik Giesel
652e4e6368 Export jquery correctly 2021-07-29 15:18:51 +02:00
Damien Elmes
83a4e510da Merge pull request #1312 from hgiesel/smalleditorrefactors
Use :host instead of :host-context
2021-07-28 13:19:04 +10:00
Damien Elmes
cd784dd652 show warning when trying to indent plain text
https://forums.ankiweb.net/t/2-1-45-release-candidate/11362/55
2021-07-28 12:18:04 +10:00
Damien Elmes
e3b970961f add reviewer_extras.js back 2021-07-27 15:13:39 +10:00
Henrik Giesel
f682cdf755 Use :host instead of :host-context 2021-07-26 16:06:50 +02:00
Henrik Giesel
8335f81396 Use event object in createShortcut, fix F8 for highlight 2021-07-26 06:15:30 +02:00
Henrik Giesel
78f3aff987 Rename to text color and text color highlight 2021-07-26 05:28:28 +02:00
Henrik Giesel
380ba8a5cc Use new for-loop 2021-07-19 01:34:14 +02:00
Henrik Giesel
07e07aa6da Catch hook errors in two ways:
- try/catch for catching synchronous errors
- Promise.allSettled will allow for rejected promises without fast-failing other promises
2021-07-19 01:23:41 +02:00
Damien Elmes
2f56b43859 expose _queueAction
https://github.com/ankitects/anki/pull/1292#issuecomment-881795577
2021-07-17 12:12:07 +10:00
Damien Elmes
a1f0287d4a css_browser_selector was logging to the console 2021-07-17 09:25:05 +10:00
Damien Elmes
e80d539f87 keep _updateQA exposed for now, as some add-ons use it 2021-07-17 09:11:05 +10:00
Henrik Giesel
36ebcd8bd8 Allow any in reviewer/index.ts 2021-07-16 17:28:31 +02:00
Henrik Giesel
45fa549540 Add back opacity change 2021-07-16 17:26:04 +02:00
Henrik Giesel
170bc5c25e Revert to MathJax through script tag 2021-07-16 16:56:57 +02:00
Henrik Giesel
4888f5ee79 Add copyright header 2021-07-16 16:56:57 +02:00
Henrik Giesel
0695638ed8 Satisfy formatter 2021-07-16 16:56:57 +02:00
Henrik Giesel
0bb6f56c74 Satisfy eslint 2021-07-16 16:56:56 +02:00
Henrik Giesel
28e2f62793 Remove protobuf important from reiewer (no longer necessary (?)) 2021-07-16 16:56:56 +02:00
Henrik Giesel
cb890b849b Do not set opacity to 0 in reviewer 2021-07-16 16:56:56 +02:00
Henrik Giesel
70040d508e Include MathJax over ts/reviewer 2021-07-16 16:56:56 +02:00
Henrik Giesel
dbbb590c2f Simplify some reviewer code 2021-07-16 16:56:56 +02:00
Henrik Giesel
6ef8e17f60 Create reviewer/images.ts 2021-07-16 16:56:56 +02:00
Henrik Giesel
c62d2dc033 Export jquery via ts/reviewer 2021-07-16 16:56:56 +02:00
Henrik Giesel
8ee6eb71eb Include css-browser-selector via ts/reviewer 2021-07-16 16:56:56 +02:00
Henrik Giesel
2536063784 Export getTypedAnswer 2021-07-16 16:56:56 +02:00
Henrik Giesel
791d7f2f4b Move reviewer to ts/reviewer 2021-07-16 16:56:55 +02:00
Damien Elmes
1d4fb0ca50 add note about display order using current deck 2021-07-13 15:58:06 +10:00
Damien Elmes
314df22e1e move bury options below display order
Causes the timer settings to appear at the bottom left, which is a bit neater.
2021-07-13 15:45:08 +10:00
Damien Elmes
e7f249f4b7 Merge pull request #1286 from ankitects/proto
Split backend.proto into multiple files
2021-07-11 19:53:04 +10:00
Damien Elmes
f0ce1cfc9d rename workspace
I'd forgotten that Bazel "helpfully" adds __init__.py files into folders
that match the workspace name, breaking imports.
2021-07-10 23:58:53 +10:00
Damien Elmes
e3b53fc078 split out remaining tags, stats, media and rendering 2021-07-10 23:16:18 +10:00
Damien Elmes
673955de5b split out sync, search, scheduler & config 2021-07-10 21:33:12 +10:00
Damien Elmes
1fb86d499d split out decks, deckconfig, notes, notetypes 2021-07-10 20:44:22 +10:00
Damien Elmes
c43674762e split out cards and collection 2021-07-10 19:52:31 +10:00
Damien Elmes
5255409093 refactor protobuf handling for split/import
In order to split backend.proto into a more manageable size, the protobuf
handling needed to be updated. This took more time than I would have
liked, as each language handles protobuf differently:

- The Python Protobuf code ignores "package" directives, and relies
solely on how the files are laid out on disk. While it would have been
nice to keep the generated files in a private subpackage, Protobuf gets
confused if the files are located in a location that does not match
their original .proto layout, so the old approach of storing them in
_backend/ will not work. They now clutter up pylib/anki instead. I'm
rather annoyed by that, but alternatives seem to be having to add an extra
level to the Protobuf path, making the other languages suffer, or trying
to hack around the issue by munging sys.modules.
- Protobufjs fails to expose packages if they don't start with a capital
letter, despite the fact that lowercase packages are the norm in most
languages :-( This required a patch to fix.
- Rust was the easiest, as Prost is relatively straightforward compared
to Google's tools.

The Protobuf files are now stored in /proto/anki, with a separate package
for each file. I've split backend.proto into a few files as a test, but
the majority of that work is still to come.

The Python Protobuf building is a bit of a hack at the moment, hard-coding
"proto" as the top level folder, but it seems to get the job done for now.

Also changed the workspace name, as there seems to be a number of Bazel
repos moving away from the more awkward reverse DNS naming style.
2021-07-10 19:17:05 +10:00
Damien Elmes
3ca4ca397a add workaround for protobufjs requiring uppercase package names
I mourn the time lost trying to track this down :-(

https://github.com/protobufjs/protobuf.js/issues/1014

We can't patch the minified file in dist without essentially duplicating
it, so this change also switches from the external file to including
the src file as part of the bundle.
2021-07-10 15:24:01 +10:00
abdo
f9e86ccf6f Tweak deck options tooltips for RTL languages 2021-07-10 00:45:10 +03:00
Damien Elmes
14263c7a79 move protobuf into separate folder in preparation for multiple files 2021-07-09 21:02:40 +10:00
hikaru-y
d7ec723f4b Set lineWiseCopyCut option to false
Fixes https://forums.ankiweb.net/t/anki-2-1-45-beta/10664/103
Related: https://github.com/codemirror/CodeMirror/issues/3169
2021-07-08 01:19:19 +09:00
Damien Elmes
0043910ae7 Merge pull request #1280 from hgiesel/addonimprov2
Export via components for Deck Options
2021-07-07 09:53:05 +10:00
Damien Elmes
13dcc9636e Merge pull request #1279 from hgiesel/addonimprov
Remove disabled / Export via Components
2021-07-07 09:31:00 +10:00
Henrik Giesel
30a50b746b Export editor globals under anki namespace 2021-07-06 03:48:33 +02:00
Henrik Giesel
a3a558159b Don't use containers components within Container
- dynamic componets will be placed outside of the inner container
2021-07-06 03:43:40 +02:00
Henrik Giesel
f323f96a85 Export under anki.components 2021-07-06 03:36:02 +02:00
Henrik Giesel
9546c49f93 Remove WithShortcut for now - it does not work 2021-07-05 22:32:19 +02:00
Henrik Giesel
fb3545545c disabledKey => fieldFocusedKey 2021-07-05 18:15:03 +02:00
Henrik Giesel
57fe9f91c2 Fix issues with sometimes cause assignment of wrong position value 2021-07-05 17:17:58 +02:00
Henrik Giesel
9e415344ae Use Components.svelte instead of exporting from EditorToolbar.svelte 2021-07-05 16:19:03 +02:00
Damien Elmes
42514dd008 add comment about the use of linear-gradient
Otherwise one of us is likely to return to the code in a few years,
think it could be made simpler, and then break things again. :-)
2021-07-05 11:09:22 +10:00
hikaru-y
22e036a129 Prevent #dupe bgcolor from being carried over when copying text
use 'background-image' instead of 'background-color'
to prevent the background-color from being carried over
when copying text to another field in day mode
2021-07-05 04:11:03 +09:00
Damien Elmes
447bd2671c Merge pull request #1273 from hgiesel/macshortcuts
Execute Ctrl+C/V/X/A via execCommand in editor
2021-07-04 16:02:52 +10:00
Henrik Giesel
5b2290f868 Execute Ctrl+C/V/X/A through execCommand in editor (so we can customize it) 2021-07-03 01:48:49 +02:00
Henrik Giesel
76f432c94f Allow non-null assertion in focus-handlers 2021-07-03 01:14:59 +02:00
Henrik Giesel
1968972c1c Move selection into editable, if it's not there after focus 2021-07-03 01:00:52 +02:00
Damien Elmes
f4b15e1351 Merge pull request #1266 from hgiesel/renamelib
More uniform file naming
2021-07-02 09:31:52 +10:00
Henrik Giesel
db4cbfcb26 More uniform file naming
kebap-case for .ts, .scss, .html, and directories
2021-07-01 12:24:16 +02:00
Henrik Giesel
2680ffb969 Use better cloze button icon 2021-07-01 11:46:39 +02:00
Henrik Giesel
27335e1d33 Refactor WithDropdown to be more versatile and cause less bugs 2021-06-30 14:01:33 +02:00
Damien Elmes
dc0c8c217f unpin bootstrap now that 5.0.1 is out
4d51a13259
2021-06-29 11:25:14 +10:00
Damien Elmes
fdfcfee5d6 Merge pull request #1262 from hgiesel/visibledeckpreset
Make input in TextInputModal in dark mode visible
2021-06-29 11:24:21 +10:00
Henrik Giesel
48afafb04e Make input in TextInputModal in dark mode visible 2021-06-29 03:20:15 +02:00
Damien Elmes
e26f461ada use css columns instead of grid
Alternative approach to #1255

thanks to Hikaru and Henrik for the margin fix, and Matthias for
the initial idea and prototypes!
2021-06-29 11:19:56 +10:00
Damien Elmes
50e7d6ea00 disable cloze&math buttons in html mode
Following on from 35777bb0ca
Keeping them active seems to encourage users to experiment:
https://forums.ankiweb.net/t/cloze-deleting-html-svg/11011
2021-06-25 10:31:47 +10:00
Henrik Giesel
1599526726 Make Codable abstract more over its textarea v codemirror when using fieldHTML 2021-06-24 19:55:50 +02:00
Henrik Giesel
9f0343f591 Make EditingArea intialize this.fieldHTML, not Editable.fieldHTML 2021-06-24 19:15:07 +02:00
Damien Elmes
4ba0c8d169 mobile fixes for js field
Without the overflow change, the page viewport gets messed up.
And for some reason specifying the font size as 1rem does not work;
it needs to be explicitly set to 16px to prevent zoom in.
2021-06-24 18:06:22 +10:00
Damien Elmes
04d6a89216 disable smart quotes and capitalization in js field
+ use bootstrap styling
2021-06-24 18:00:06 +10:00
Damien Elmes
b959feb6e5 expose scheduler js option in deck config 2021-06-24 14:38:10 +10:00
Damien Elmes
841250533d gear -> revert icon
https://forums.ankiweb.net/t/anki-2-1-45-beta/10664/30
2021-06-24 13:07:03 +10:00
Damien Elmes
a277dc96ba Merge pull request #1248 from ankitects/revert-on-right
Move deck options revert button to right; hide when inactive
2021-06-24 13:01:57 +10:00
Henrik Giesel
e5709ec90c Adapt use of createDropdown for editor buttons 2021-06-22 17:31:06 +02:00
Damien Elmes
7416660c59 move revert button to the right
With a confirmation step now, accidental taps when scrolling shouldn't
be an issue, and it leaves more room for the text.
2021-06-22 09:41:31 +10:00
Damien Elmes
7e96005d54 hide revert button when not active 2021-06-22 09:38:28 +10:00
Damien Elmes
15825f5629 fix svelte-check error by tweaking formatting
🤷
2021-06-22 09:27:37 +10:00
Henrik Giesel
40058b49b2 Have swithes be blue when checked in night mode 2021-06-21 22:37:37 +02:00
Henrik Giesel
b89fbe1aa5 Replace dash with underscore for night_mode_lib 2021-06-21 21:51:15 +02:00
Henrik Giesel
4ee66fb742 Add night_mode_lib as SCSS target 2021-06-21 21:44:23 +02:00
Henrik Giesel
447f50724a Always show spinning reverse icon on mobile 2021-06-21 21:35:20 +02:00
Henrik Giesel
7b01dd1719 Remove use of bootstrap-dark.night-mode for deckoptions
The CSS for the Switch component had a conflict regarding background color
Also generally it makes sense to put the CSS into the components
2021-06-21 21:16:40 +02:00
Henrik Giesel
28bab1f7a1 Position Revert/Gear button on the left of the label
+ Make the reverse arrow spin
2021-06-21 20:48:33 +02:00
Henrik Giesel
69ec04190c Make gear button show dropdown menu 2021-06-21 20:24:15 +02:00
Henrik Giesel
ad6577d88c Revert button with gear icon, that shows revert dropdown item 2021-06-21 19:11:10 +02:00
Henrik Giesel
60f0ad4093 Associate Switch labels with their respective switches 2021-06-21 18:15:41 +02:00
Henrik Giesel
c99330990a Put tooltip only on the info badge 2021-06-21 17:48:18 +02:00
Damien Elmes
f695fac40b remove explicit line-height
It was causing text in dropdowns to be slightly truncated
(eg "Tag Only")
2021-06-21 17:02:48 +02:00
Damien Elmes
eda359d652 remove left pad on switches 2021-06-21 17:02:48 +02:00
Damien Elmes
db48fe2124 decrease margins in deck options top sticky bar 2021-06-21 17:02:48 +02:00
Henrik Giesel
00fb0e7395 Add g-1 class to DeckoptionsPage. Include transitions.scss
* Modal misbehaved before
2021-06-21 17:02:48 +02:00
Henrik Giesel
2d3f967899 Disable RevertButton tooltip on touch devices
The tooltip will show after you clicked Revert. There's no sensible way
to show the tooltip, without also triggering the functionality
2021-06-21 17:02:48 +02:00
Henrik Giesel
e20a5bf2f0 Make TriggerType an input argument for WithTooltip 2021-06-21 17:02:48 +02:00
Henrik Giesel
e131f23037 Increase padding on tooltips + Remove erroneous closing angle bracket 2021-06-21 17:02:48 +02:00
Henrik Giesel
708feac2a2 Implement Switch and SwitchRow 2021-06-21 17:02:48 +02:00
Henrik Giesel
bce4c4d393 Properly dispose of tooltip resources when unmounting 2021-06-21 17:02:48 +02:00
Henrik Giesel
024517e864 Reverse RevertButton being on the right side 2021-06-21 17:02:48 +02:00
Henrik Giesel
827ca7efe5 Alternative solution to markdown tooltips creating bottom margin 2021-06-21 17:02:48 +02:00
Henrik Giesel
f67b9b75da Update RevertButton to use Badge and WithTooltip 2021-06-21 17:02:48 +02:00
Henrik Giesel
01f074785c Add a tooltip showing delay of a quarter second 2021-06-21 17:02:48 +02:00
Henrik Giesel
94c24c0f44 Add back info circles, remove underlines 2021-06-21 17:02:48 +02:00
Henrik Giesel
895bb454ef Update NotetypeSelector to use Item instead of ButtonToolbarItem 2021-06-21 17:02:48 +02:00
Henrik Giesel
6c9de074b6 Fix tooltip regression 2021-06-21 17:02:48 +02:00
Henrik Giesel
13accfa840 Have decimal keyboard for SpinBoxFloat 2021-06-21 17:02:48 +02:00
Henrik Giesel
77cfebcccc Have numeric keyboard for SpinBox 2021-06-21 17:02:48 +02:00
Henrik Giesel
99caaf8d71 Switch Revert button and input element position 2021-06-21 17:02:48 +02:00
Henrik Giesel
e4e6dd3a39 Implement WithTooltip 2021-06-21 17:02:48 +02:00
Henrik Giesel
74ebf7e9ad Wrap label and HelpPopup into span
Avoids HelpPopup in a differnt column upon label wrapping
2021-06-21 17:02:48 +02:00
Henrik Giesel
9acf6af355 Make revert button horizontal padding smaller 2021-06-21 17:02:48 +02:00
Henrik Giesel
18f33e117d Have colors inherit for badges 2021-06-21 17:02:48 +02:00
Henrik Giesel
73e66d6dd0 Add down-arrow SASS function 2021-06-21 17:02:48 +02:00
Henrik Giesel
6462643328 Use custom down arrow for both SelectButton and EnumSelector 2021-06-21 17:02:48 +02:00
Henrik Giesel
745f940890 Put Col types into col.ts 2021-06-21 17:02:48 +02:00
Henrik Giesel
bf7efa19c1 Fix formatting 2021-06-21 17:02:48 +02:00
Henrik Giesel
191684c1b0 Rename SectionItem to just Item and use across option sections 2021-06-21 17:02:46 +02:00
Henrik Giesel
d54b21db7a Import API from all option sections 2021-06-21 17:01:45 +02:00
Henrik Giesel
0e0bdccba7 Add Container.svelte 2021-06-21 17:01:45 +02:00
Henrik Giesel
695fa09619 Remove SCSS from ConfigEditor 2021-06-21 17:01:45 +02:00
Henrik Giesel
b684101d9b Implement CheckBoxRow and SpinBoxFloatRow 2021-06-21 17:01:45 +02:00
Henrik Giesel
019d41d01d Implement EnumSelectorRow and StepsInputRow 2021-06-21 17:01:45 +02:00
Henrik Giesel
d43d7b10e0 Implement SpinBoxRow 2021-06-21 17:01:45 +02:00
Henrik Giesel
cf89d89dc2 Add breakpoint for Bury EnumSelector 2021-06-21 17:01:44 +02:00
Henrik Giesel
9e3d955502 Use Row and Col in favor of ConfigEntry 2021-06-21 17:01:44 +02:00
Henrik Giesel
7d0a02fe56 Remove ConfigEntryFull 2021-06-21 17:01:44 +02:00
Henrik Giesel
4e11cade23 Factor RevertButton out of components 2021-06-21 17:01:44 +02:00
Henrik Giesel
a07dc2bd7a Change margin and gutters off rows 2021-06-21 17:01:44 +02:00
Henrik Giesel
d8e285ba69 Move the remaining Options to new ConfigEntry layout 2021-06-21 17:01:44 +02:00
Henrik Giesel
a89e048259 Update DailyLimits and NewOptions to new format 2021-06-21 17:01:44 +02:00
Henrik Giesel
8bab61c62c Wrap input and revert button into one col 2021-06-21 17:01:44 +02:00
Henrik Giesel
b02d14dcbd Introduce TitledContainer 2021-06-21 17:01:44 +02:00
Henrik Giesel
26c4753c38 Allow for gutters between rows 2021-06-21 17:01:44 +02:00
Henrik Giesel
af3f65188f Vertically align text + Remove bottom margin from alerts 2021-06-21 17:01:44 +02:00
Henrik Giesel
2ddc22f6c2 Turn icons into Bootstrap badges in deckoptions 2021-06-21 17:01:44 +02:00
Henrik Giesel
588faf5f50 Start using Bootstrap grid for deckoptions 2021-06-21 17:01:44 +02:00
Henrik Giesel
cb14011410 Use Bootstrap containers instead of CSS in base for deckoptions 2021-06-21 17:01:44 +02:00
Henrik Giesel
43b5ba42ba Add container scss to deckoptions-base 2021-06-21 17:01:44 +02:00
Henrik Giesel
9def4075b5 Make API argument required in ConfigEditor 2021-06-21 17:01:44 +02:00
Henrik Giesel
d2360869b3 Add Section and SectionItem for the deckoptions 2021-06-21 17:01:44 +02:00
Henrik Giesel
0061d61db5 Generalize ButtonToolbarItem to SectionItem 2021-06-21 17:01:42 +02:00
Damien Elmes
16e37c5537 Merge pull request #1244 from hgiesel/colorpickersetcolor
Make Color Pickers also format with colors
2021-06-20 15:58:58 +10:00
Damien Elmes
d89c538c48 in/out -> request/response
The saved characters weren't worth the increased difficulty when
reading, and the fact that we were deviating from protobuf norms.
2021-06-20 15:49:20 +10:00
Henrik Giesel
b1414c188d Add type hint in WithColorHelper 2021-06-19 16:31:35 +02:00
Henrik Giesel
0a7697596d Make Color Pickers also format with colors 2021-06-19 16:27:09 +02:00
Damien Elmes
5715a28c76 support jsdom tests
Alternative would be to switch to jsdom for everything, but TextEncoder
is currently missing from jsdom, and jsdom mode is slower IIRC.
2021-06-19 09:43:09 +10:00
Henrik Giesel
cac802872c Cannot create Jest jsdom tests (?) 2021-06-18 20:41:54 +02:00
Damien Elmes
22f073d29c Merge pull request #1242 from hgiesel/codable
In-line HTML-Editing for Editor
2021-06-18 17:18:35 +10:00
Henrik Giesel
c74d486120 Satisfy svelte_check 2021-06-18 03:12:02 +02:00
Henrik Giesel
44ed54a20f Remove components from editor BUILD.bazel again 2021-06-18 02:59:45 +02:00
Henrik Giesel
519cc78c66 Disable function dropdown when no field selected 2021-06-18 02:51:42 +02:00
Henrik Giesel
8ca7dc589c Satisfy linter 2021-06-18 02:44:15 +02:00
Henrik Giesel
f06b709a66 Make text wrapper buttons work with Codable 2021-06-18 02:33:56 +02:00
Henrik Giesel
35777bb0ca Disable Media button for Codable, but keep wrapping and cloze key for now 2021-06-18 02:02:01 +02:00
Henrik Giesel
5992910fe8 Disable ColorButtons for Codable 2021-06-18 01:44:15 +02:00
Henrik Giesel
2de2e7ccf5 Allow Tab and Shift+Tab on Codable 2021-06-18 01:32:46 +02:00
Henrik Giesel
dee7be2323 Disable FormatBlock buttons for Codable 2021-06-18 01:17:43 +02:00
Henrik Giesel
dd1344d7f0 Disable Bold button in Codable 2021-06-18 00:27:07 +02:00
Henrik Giesel
0315aeefd7 Make different onPaste behavior for Editable and Codable 2021-06-17 23:12:15 +02:00
Henrik Giesel
32b3702d3c Have correct enter behavior in for Editable and Codable 2021-06-17 22:02:06 +02:00
Henrik Giesel
e773d75f6d Add autoclosetag addon for CodeMirror 2021-06-17 21:45:11 +02:00
Henrik Giesel
b1414376e4 Make it so you don't have to close the HTML mode for html to be written back 2021-06-17 21:36:56 +02:00
Henrik Giesel
bf9cbcd527 Only toggle the current field, not all 2021-06-17 20:57:20 +02:00
Henrik Giesel
7687a030ff Make Codable enter behavior the same as Editable 2021-06-17 20:47:33 +02:00
Henrik Giesel
7530121314 Match and fold tags 2021-06-17 20:27:34 +02:00
Henrik Giesel
44e2560c8b Make editable hide correctly when activating codable 2021-06-17 19:08:14 +02:00
Henrik Giesel
df32f60029 Successfully add monokai theming 2021-06-17 18:36:12 +02:00
Henrik Giesel
751747a693 Make DOMParser correctly return innerHTML 2021-06-17 17:52:27 +02:00
Henrik Giesel
d2b697fc1b Make Codable correctly update the editable state and its button 2021-06-17 17:49:50 +02:00
Henrik Giesel
6ce9d18e4c Apply the Monokai theme 2021-06-17 17:18:00 +02:00
Henrik Giesel
e895f85cbc Setup toggleHtmlEdit on editingArea 2021-06-17 17:08:33 +02:00
Henrik Giesel
c6cee3bf31 Connect HtmlEditButton to codable 2021-06-17 15:30:05 +02:00
Henrik Giesel
48c8f89a11 Display CodeMirror in editingArea 2021-06-17 14:44:03 +02:00
Henrik Giesel
96e549e0d4 Add codable element 2021-06-17 13:46:25 +02:00
Damien Elmes
532ac8b511 Merge pull request #1230 from RumovZ/fields-check
Check for misplaced or missing clozes when adding and in the editor
2021-06-17 21:26:16 +10:00
Damien Elmes
48cffca7a9 update js deps; pin marked
marked 2.1.0 fails to run on node 12
2021-06-16 16:47:32 +10:00
RumovZ
be54c4352a Merge cloze hint divs into one 2021-06-15 08:43:18 +02:00
RumovZ
3572f0a0c6 Add editor hints for cloze errors 2021-06-12 17:35:40 +02:00
hikaru-y
d6370d13bf Disable color picker buttons when a field is not focused 2021-06-11 23:36:06 +09:00
Damien Elmes
cd303de619 specific encoding of strings.json
https://forums.ankiweb.net/t/win10-build-error-unicodedecodeerror-gbk-codec-cant-decode-byte-0x91/10714
2021-06-11 20:12:38 +10:00
Damien Elmes
548f62c6df Merge pull request #1225 from kelciour/segoe-ui-font-fix
Fix  Segoe UI got replaced with Arial on Windows
2021-06-10 22:29:06 +10:00
Damien Elmes
153e1e8d41 new change notetype implementation for the frontend
- changes can now be undone
- the same field can now be mapped to multiple target fields, allowing
fields to be cloned
- the old Qt dialog has been removed
- the old col.models.change() API calls the new code, to avoid
breaking existing consumers. It requires the field map to always
be passed in, but that appears to have been the common case.
- closes #1175
2021-06-10 22:19:24 +10:00
kelciour
8a81533336 fix default font family
Probably a regression introduced with 818fe75721
2021-06-10 12:07:52 +03:00
Damien Elmes
95151f5025 add LIFO sorting options for new cards 2021-06-08 14:01:46 +10:00
Damien Elmes
33cecaa618 use different toolbar size on Mac
see discussion on 8c8bf26488
2021-06-05 11:28:36 +10:00
Damien Elmes
e03cb50915 tooltip styling fix
Thanks Matthias!

https://forums.ankiweb.net/t/anki-2-1-45-alpha/10061/88
2021-06-04 15:27:27 +10:00
Damien Elmes
8c8bf26488 try toolbar size of 1.85rem
https://forums.ankiweb.net/t/anki-2-1-45-alpha/10061/97
2021-06-04 15:11:34 +10:00
Damien Elmes
5f44bf503e make _vars.scss public 2021-06-04 14:39:53 +10:00
Damien Elmes
d38f57cf3c Merge pull request #1213 from RumovZ/new-flags
Add pink, turquoise and purple flags
2021-06-02 11:22:26 +10:00
RumovZ
9e43c91a62 Tweak flag colors 2021-06-01 18:14:54 +02:00
Damien Elmes
b26385420e Merge pull request #1211 from hgiesel/bettercolor
Implement new text color / highlight color buttons
2021-06-01 17:55:57 +10:00
Damien Elmes
170a177c60 ensure changes to current field are saved before saving deck opts
https://forums.ankiweb.net/t/anki-2-1-45-alpha/10061/70
2021-06-01 15:54:07 +10:00
Damien Elmes
9a76565101 add options to sort reviews by deck
https://forums.ankiweb.net/t/is-studying-subdeck-by-subdeck-broken-in-2-1-44-mac/10458/2
2021-06-01 13:22:39 +10:00
RumovZ
9e56a4421b Add violet, turquoise and purple flags 2021-05-31 12:03:30 +02:00
Henrik Giesel
ecc8fed5a9 Change default icon size of IconButtons 2021-05-31 00:31:10 +02:00
Henrik Giesel
d358d0eb1e Remove rainbow SCSS 2021-05-31 00:20:41 +02:00
Henrik Giesel
973cd59b29 Make ColorPicker buttons halfwidth 2021-05-31 00:17:06 +02:00
Henrik Giesel
6d72e7bc49 Implement new ColorPicker 2021-05-30 22:58:40 +02:00
Henrik Giesel
93c0770cd0 Implement WithColorHelper.svelte 2021-05-30 21:44:05 +02:00
Henrik Giesel
dcdca0ac7a Implement new way to way to display icons in IconButtons
* allows for multiple icons overlay
* allows to make individual icons smaller/bigger
2021-05-30 21:05:16 +02:00
Henrik Giesel
794f9db637 Add new color icons 2021-05-30 20:09:09 +02:00
Damien Elmes
7108d8615b Merge pull request #1202 from hgiesel/nowrapdeckoptionstoolbar
Uniformly use properties to Button{Toolbar,Group} for setting button properties
2021-05-29 10:39:11 +10:00
Henrik Giesel
1caf7ada72 Add overflow-x: hidden for SelectButton 2021-05-28 21:33:34 +02:00
Damien Elmes
098acaf665 round to whole seconds
the steps are serialized as f32, and the resulting imprecision was
leading to decimal values

closes #1203
2021-05-28 19:34:25 +10:00
Damien Elmes
8ca1360f38 allow running test with 'bazel run jest' 2021-05-28 19:24:58 +10:00
Henrik Giesel
054f96b726 Uniformly use variables to Button{Toolbar,Group} for setting button properties
Instead of using WithTheming around ButtonToolbar/ButtonGroup
2021-05-27 17:13:36 +02:00
Damien Elmes
4a575dbe0a hook up some missing translations in deck options screen 2021-05-26 14:41:18 +10:00
Damien Elmes
6a823e53a1 add option to clone current config 2021-05-26 13:20:24 +10:00
Damien Elmes
ce9e1c3370 roll back sass for now to quieten deprecation warnings
https://github.com/twbs/bootstrap/issues/34051
2021-05-26 10:20:34 +10:00
Damien Elmes
3489257f41 update ts deps
- prettier's formatting has changed, so files needed to be reformatted
- dart is spitting out deprecation warnings like:

254 │   2: $spacer / 2,
    │      ^^^^^^^^^^^
    ╵
    bazel-out/darwin-fastbuild/bin/ts/sass/bootstrap/_variables.scss 254:6  @import
    ts/sass/button_mixins.scss 2:9                                          @use
    ts/components/ColorPicker.svelte 2:5                                    root stylesheet

DEPRECATION WARNING: Using / for division is deprecated and will be removed in Dart Sass 2.0.0.

Recommendation: math.div($grid-gutter-width, 2)
2021-05-26 09:37:40 +10:00
Damien Elmes
87cfd51cfa update rules_nodejs 2021-05-26 09:12:23 +10:00
Henrik Giesel
a819fa6abe Satisfy svelte_check 2021-05-26 08:46:12 +10:00
Henrik Giesel
e21947956f Fix TextInputModal preset value 2021-05-26 08:46:12 +10:00
Henrik Giesel
9e02d3a92c Use TextInputModal directly from svelte component
* the only important thing is that it is not positioned within elements
  with display: none
* I think we can treat the existence of the modal to be a kind of
  "precondition" that has to be met for the component to be used
2021-05-26 08:46:12 +10:00
Henrik Giesel
a55ab8e03a Inline some bootstrap-dark styling 2021-05-26 08:40:00 +10:00
Henrik Giesel
ba1abf0353 Use min-{width,height} for legacy buttons 2021-05-25 20:29:42 +02:00
Henrik Giesel
e7f9eaf1ce Restructure legacy scss / remove button_mixin import 2021-05-25 13:57:09 +02:00
Henrik Giesel
5b6fbad5bb Base width/height off on --toolbar-size for legacy buttons 2021-05-25 13:29:55 +02:00
Damien Elmes
4b011c40ff Merge pull request #1190 from kleinerpirat/main
Make legacy buttons look and feel like Svelte buttons
2021-05-25 14:20:47 +10:00
Henrik Giesel
1647538d63 Fix background on DropdownItem + make transitions on buttons quicker 2021-05-24 19:53:30 +02:00
Matthias M
3d50972489 Restrict inversion to images 2021-05-24 19:46:51 +02:00
Matthias M
3ecc7add82 Adjust active:hover behaviour
so it behaves like Svelte buttons, when clicking and dragging the mouse away from the button.
2021-05-24 13:11:50 +02:00
Matthias M
ee1fbf2a8f Use !important instead of :not() selector
!important cannot be used with the radius mixin, so I had to state them explicitly.
2021-05-24 11:21:42 +02:00
Damien Elmes
c29c883e7c mention new limit bound by reviews in tooltip 2021-05-24 19:04:00 +10:00
Matthias M
afd6e47799 Merge branch 'ankitects:main' into main 2021-05-24 10:59:02 +02:00
Matthias M
af75129974 Revert changes, add exceptions
to keep the PR changes as contained as possible without the use of !important.
2021-05-24 10:37:43 +02:00
Damien Elmes
822a360b40 round floats before comparing against default values
tabbing through the Advanced section was marking things like
'easy bonus' as modified
2021-05-24 18:26:01 +10:00
Damien Elmes
267e287c30 hard-code code color, as the tooltip background is always dark 2021-05-24 18:25:19 +10:00
Damien Elmes
5f8e895f3e move v3 options into separate section; more description/section tweaks 2021-05-24 18:25:17 +10:00
Damien Elmes
120659fc22 Merge pull request #1183 from hgiesel/keykey
Switch to event.key for keyboard sequences
2021-05-24 10:53:24 +10:00
Matthias M
066eb57283 Remove background-color transition from .button
but keep color, border-color and box-shadow transition as it is.
2021-05-23 19:41:45 +02:00
Matthias M
a2980e04b0 Remove CSS variable button-bg again
The variable is not as useful as I thought, since night mode uses a gradient anyway (and day mode is simply white).
2021-05-23 19:39:57 +02:00
Matthias M
84670cc1c2 Exclude dropdown items from night mode style
Makes dropdown menu look cleaner.

:not() selector did not work because the color selector button would be affected for some reason.
2021-05-23 15:58:22 +02:00
Matthias M
6cefa0f1bf Remove transition from .linkb to fix blinking 2021-05-23 15:55:22 +02:00
Matthias M
98788ca52e Merge branch 'ankitects:main' into main 2021-05-23 01:45:42 +02:00
Matthias M
0063dcb3c8 Add CSS variable --button-bg
might be useful for add-on developers.
2021-05-23 01:18:00 +02:00
Matthias M
c612c41023 Make legacy buttons look like Svelte buttons
with extra night mode handling.
2021-05-23 00:50:02 +02:00
Matthias M
95cfd7e0b5 Invert legacy button content in night mode
for better visibility.
2021-05-22 22:40:21 +02:00
Matthias M
39aeaa141e Remove unnecessary Linux .button styling 2021-05-22 22:33:24 +02:00
Matthias M
8db2a4cf11 Remove hard-coded values from .button
so that dynamic border-radius gets used instead.
2021-05-22 22:29:50 +02:00
Henrik Giesel
6f31ab5990 Prefer event.which over event.{key,code}
It works better with alternative Latin-based keyboard layouts
2021-05-22 17:50:23 +02:00
Damien Elmes
cf1da4b264 fix missing cumulative overlays in graphs 2021-05-22 10:19:13 +10:00
Henrik Giesel
5cbda88605 Base shortcuts with letters no event.key, with symbols/numbers on event.code 2021-05-21 22:45:55 +02:00
Henrik Giesel
cc15145a0b Make numpad keys also cancel current shortcut sequence 2021-05-21 19:03:06 +02:00
Henrik Giesel
21cf99d612 Capitalize keyboard shortcut letters 2021-05-20 18:46:22 +02:00
Henrik Giesel
3145e4884f Instead of timeouts, make non-related keypresses cancel shortcut sequences 2021-05-20 18:32:53 +02:00
Henrik Giesel
abf1418695 Switch to keyboard shortcuts based on event.key 2021-05-20 18:28:59 +02:00
Damien Elmes
4849ca17e7 add a hack to handle sass resolution in svelte in external workspace 2021-05-20 15:32:06 +10:00
Damien Elmes
e8fa170bab experiment with bottom border on deck option headings 2021-05-20 14:54:07 +10:00
Damien Elmes
4fc701eb1b fix fields/cards font size & too-large toolbar on high DPI Windows
- enable default_css on editor again, so that the html element
is set to the system font size. If this is bringing in unwanted styling,
maybe we can come up with a different solution that just adjusts the
fonts
- make toolbar size relative to html font size, instead of hard-coding
it
2021-05-20 13:15:17 +10:00
Damien Elmes
3f232b6ba1 make sticky bar border a bit fainter 2021-05-20 12:49:07 +10:00
Damien Elmes
2ecd91eeb2 fix invisible dropdown arrow in night mode; use bootstrap styling in top 2021-05-20 12:43:47 +10:00
Damien Elmes
878131d201 apply the left padding in one place 2021-05-19 20:02:04 +10:00
Damien Elmes
991695b7f6 use standard toolbar colors for legacy items 2021-05-19 19:58:12 +10:00
Damien Elmes
5036e25399 fix broken night mode styling
#1172 removed the select styling, but EnumSelector has not been updated
yet
2021-05-19 19:48:31 +10:00
Damien Elmes
5c9f483cdc move deck name into window title; v-center sticky bar 2021-05-19 19:34:15 +10:00
Damien Elmes
f93075628a increase toolbar size by 5px and use the default font sizes
Workaround for #1174 for now
2021-05-19 19:23:32 +10:00
Damien Elmes
818fe75721 simplify previous patch
The default 1 rem is fine, but we need to apply the default font size
to the html element instead of the body for the definition of rem to
update.

Fixes #1174
2021-05-19 19:06:20 +10:00
Damien Elmes
45edc42959 fix inconsistent font sizes
fixes #1174
2021-05-19 19:00:09 +10:00
Damien Elmes
0804771626 indent headings and bold them to match graph style 2021-05-19 17:20:01 +10:00
Damien Elmes
c7e401d687 tweak left margin, and checkbox top margin 2021-05-19 17:18:28 +10:00
Damien Elmes
2135cbd001 left align input boxes; decrease width 2021-05-19 16:41:19 +10:00
Damien Elmes
60ef1c35eb show note about old options screen if any add-ons are installed 2021-05-19 16:20:25 +10:00
Damien Elmes
390379ed62 disable svelte-check on Windows for now 2021-05-19 11:45:02 +10:00
Henrik Giesel
20d117e315 Add back global CSS for input 2021-05-18 19:30:43 +02:00
Henrik Giesel
5eabcdc987 Allow any in deckoptions/index until typing is provided 2021-05-18 19:21:25 +02:00
Henrik Giesel
8779a8a025 Make blur a proper event listener 2021-05-18 19:19:05 +02:00
Henrik Giesel
a602561612 Make SaveButton functional 2021-05-18 18:55:22 +02:00
Henrik Giesel
1582bdb31e Make styling on select button behave correctly 2021-05-18 17:50:18 +02:00
Henrik Giesel
30d246d74b WIP: Use our components in deckoptions sticky bar 2021-05-18 16:32:29 +02:00
Henrik Giesel
777d774545 Use StickyBar in deckoptions 2021-05-18 14:13:11 +02:00
Damien Elmes
43f1750eac update jsdoc
https://github.com/jsdoc/jsdoc/issues/1908
2021-05-18 09:22:57 +10:00
Damien Elmes
5bd3884a71 support card state mutator in test scheduler
Documentation to come
2021-05-17 16:59:02 +10:00
Damien Elmes
957202a704 fix review sort order being shown in v2 scheduler options 2021-05-16 21:50:51 +10:00
Damien Elmes
a345ba1347 support markdown in JS tooltips
`marked` adds about 44k to the bundle size unfortunately :-(
2021-05-16 21:43:58 +10:00
Damien Elmes
fe5dee2a67 rework various aspects of the test scheduler
- Daily limits are no longer inherited - each deck limits its own
cards, and the selected deck enforces a maximum limit.
- Fetching of review cards now uses a single query, and sorts in advance.
In collections with a large number of overdue cards and decks, this is
faster than iterating over each deck in turn.
- Include interday learning count in review count & review limit, and
allow them to be buried.
- Warn when parent review limit is lower than child deck in deck options.
- Cap the new card limit to the review limit.
- Add option to control whether new card fetching short-circuits.
2021-05-16 20:23:07 +10:00
Damien Elmes
5f7590c4b4 expose new sorting options in test scheduler options; move things around 2021-05-13 15:23:16 +10:00
Damien Elmes
9ff8727e68 pass sort options into test scheduler
- split new card fetch order and subsequent sort order; use latter
when building queues
- default to spacing siblings when burying is off, with options to
show each sibling in turn, and shuffle the fetched cards
2021-05-13 15:21:20 +10:00
Damien Elmes
4d51a13259 roll back bootstrap until 5.0.1 comes out
Modals are currently broken:
https://github.com/twbs/bootstrap/issues/33840
2021-05-11 13:06:03 +10:00
Damien Elmes
2dab3f0487 disable broken svelte_check test on Windows for now
Likely caused by a lack of sandboxing on Windows, causing the generated
.d.ts files to be visible to svelte_check, and being picked up in
preference over the .svelte file.
2021-05-08 12:15:49 +10:00
Damien Elmes
6dd78b0ea5 Merge pull request #1159 from hgiesel/newapproach
Prefer idiomatic Svelte features over dynamic components
2021-05-08 11:35:31 +10:00
Henrik Giesel
755b39b59e Check for id when inserting dynamic elements
* I'm not sure it behaved, if there were multiple elements
  inserted by different add-ons into the same container
2021-05-07 16:50:17 +02:00
Henrik Giesel
c894d32c14 Fix remaining errors in editor/*.svelte files 2021-05-07 15:10:28 +02:00
Henrik Giesel
9379477e09 Use MouseEvent instead of KeyboardEvent in WithShortcut
* otherwise the disabled button will allow it to pass through
2021-05-07 14:46:08 +02:00
Henrik Giesel
3d4224a886 Rename Detachable.detach to detached 2021-05-07 14:31:08 +02:00
Damien Elmes
7f5972c080 update license checker for security issue in dependency 2021-05-07 18:50:25 +10:00
Damien Elmes
5213ff8dbb update JS deps
Unfortunately we're still stuck with a security alert about underscore,
because the latest jsdoc uses an old underscore, and protobufjs depends
on it.

https://github.com/jsdoc/jsdoc/issues/1908
2021-05-07 18:03:22 +10:00
Damien Elmes
4fe03e1f22 tweak hover css to work with latest js deps 2021-05-07 17:57:28 +10:00
Henrik Giesel
cd6599c301 Fix module name formatting 2021-05-07 02:14:54 +02:00
Henrik Giesel
1e5feffba0 Fix Preview tooltip 2021-05-07 02:04:44 +02:00
Henrik Giesel
8a558eb297 Fix unused CSS selector issue in graphs introduced by updating Svelte 2021-05-07 02:04:44 +02:00
Henrik Giesel
fbc9c8a250 Use any in toolbar.ts for using context as parameter 2021-05-07 02:04:44 +02:00
Henrik Giesel
8f2c5a0c1c Turn on editor:eslint 2021-05-07 02:04:44 +02:00
Henrik Giesel
147617dff2 Add copyright header 2021-05-07 02:04:44 +02:00
Henrik Giesel
17bca7be6e Add ts-expect-error for module import in EditorToolbar 2021-05-07 02:04:44 +02:00
Henrik Giesel
bb2fb8e9f5 Fix ButtonDropdown 2021-05-07 02:04:44 +02:00
Henrik Giesel
0a979d789a Make LabelButtons support active notion 2021-05-07 02:04:44 +02:00
Henrik Giesel
95b6b386dc Only initialize extension apis if necessary 2021-05-07 02:04:44 +02:00
Henrik Giesel
d92a0c44c7 Add lefttopbtns as AddonButtons 2021-05-07 02:04:44 +02:00
Henrik Giesel
d3bec1a584 Add ButtonToolbarItem as interface for modifying button groups 2021-05-07 02:04:44 +02:00
Henrik Giesel
55e8256f0e Clean up ButtonGroup and factor out extension logic 2021-05-07 02:04:44 +02:00
Henrik Giesel
dd99524ae0 Enable setting of PreviewButton and hiding of cloze button again 2021-05-07 02:04:42 +02:00
Henrik Giesel
0612c3428b Fix typing issues 2021-05-07 02:03:55 +02:00
Henrik Giesel
47edde0d00 Set tooltip for buttons correctly 2021-05-07 02:03:55 +02:00
Henrik Giesel
74dad42df3 Use ButtonGroupItem for all buttons in editor 2021-05-07 02:03:55 +02:00
Henrik Giesel
68339ab0b0 Set ButtonPosition via ButtonGroupItem 2021-05-07 02:03:55 +02:00
Henrik Giesel
f724b45ae1 Add hiding functionality in ButtonGroup 2021-05-07 02:03:55 +02:00
Henrik Giesel
da5756822f Add API for adding new buttons, updating existing ones in ButtonGroup 2021-05-07 02:03:55 +02:00
Henrik Giesel
5f8f4c06f8 Fix issue with dropdowns 2021-05-07 02:03:55 +02:00
Henrik Giesel
deafb0925c Add .dropdown-menu class to DropdownMenu 2021-05-07 02:03:55 +02:00
Henrik Giesel
099325f407 Add back ColorButtons 2021-05-07 02:03:55 +02:00
Henrik Giesel
af7b1f7d7f Activate FormatBlockButtons 2021-05-07 02:03:55 +02:00
Henrik Giesel
805ef26e20 Add all format inline buttons 2021-05-07 02:03:55 +02:00
Henrik Giesel
35267f30c9 Export module functions from EditorToolbar 2021-05-07 02:03:55 +02:00
Henrik Giesel
e7706bac6d Refactor {CommandIcon,Icon,Square}Button into IconButton and WithState 2021-05-07 02:03:55 +02:00
Henrik Giesel
76ea48fade Make StickyBar flex 2021-05-07 02:03:55 +02:00
Henrik Giesel
45c52f75aa Translate ts files in ts/editor to svelte files 2021-05-07 02:03:55 +02:00
Henrik Giesel
8238ec5727 Rename editor-toolbar to components 2021-05-07 02:03:55 +02:00
Henrik Giesel
1515e07ea6 Add StickyBar.svelte WithTheming.svelte 2021-05-07 02:03:55 +02:00
Henrik Giesel
138e69bcf1 Move Notetype buttons to using slots instead of dynamic components 2021-05-07 02:03:55 +02:00
Henrik Giesel
a51eb42e7b Simplify structure of EditorToolbar and ButtonGroup in editor HTML file 2021-05-07 02:03:55 +02:00
Damien Elmes
a24456d96f fix missing keyboard modifier translations on Linux/Windows
https://forums.ankiweb.net/t/card-browser-hotkeys-semi-broken/9815
2021-05-07 09:30:06 +10:00
Damien Elmes
b4cb2baa0e fix properties missing from generated Svelte .d.ts files
They're currently being set to 'any', as we're not providing the dependencies
to the tsc invocation. Older Anki versions had the same issue, and we'll
want to fix that as well, but for now this at least restores the missing
props.
2021-05-04 18:55:58 +10:00
Damien Elmes
0d113fd447 i18n deckoptions; move some options into separate 'advanced' section 2021-04-26 23:34:58 +10:00
Damien Elmes
7999682f6d defer bounds checking in SpinBox to focus loss
The previous behaviour was preventing a backspace to remove the
current text when a minimum of 1 or greater was supplied
2021-04-26 20:17:48 +10:00
Henrik Giesel
b0988e43e1 Move EditorToolbar API into EditorToolbar.svelte 2021-04-25 19:15:00 +02:00
Henrik Giesel
a21a4d330b Initialize editor toolbar via function, not web component 2021-04-25 18:32:01 +02:00
Damien Elmes
bd45967129 add translations for deck option warnings
+ cap maximum recommended review limit to 9999, since we don't allow
the user to set it higher
2021-04-25 23:06:35 +10:00
Damien Elmes
7aceb9fd3f subLabel->tooltip 2021-04-25 21:37:21 +10:00
Damien Elmes
9a25f8480d slide warnings in/out 2021-04-25 21:10:53 +10:00
Damien Elmes
e5264c909b use lodash instead of json in RevertButton 2021-04-25 19:34:07 +10:00
Damien Elmes
d8ca46e6e9 experimental support for extending add-ons screen with Svelte 2021-04-25 19:33:18 +10:00
Damien Elmes
fdb814cbcd deckconfig->deckoptions 2021-04-25 19:02:30 +10:00
Damien Elmes
863fa972ef RevertIcon->RevertButton 2021-04-25 19:02:30 +10:00
Damien Elmes
d5c1f19521 basic support for add-ons in new deck config screen
- expose the data as a writable store
- currently only supports raw HTML; example to come
- fix changes not marking a deck config as modified
- the data is currently packed into the deckconfig object, but we
may move these to a separate store in the collection config in the
future, like is done with decks/notetypes
2021-04-24 11:08:01 +10:00
Damien Elmes
fcd1582adb Merge pull request #1150 from hgiesel/notetypechoose
Editor Toolbar cleanup
2021-04-24 11:04:24 +10:00
Henrik Giesel
6209731cd0 Prefer slicing and splicing 2021-04-24 01:48:22 +02:00
Henrik Giesel
f94c7f380f Fix typing typo 2021-04-24 01:15:16 +02:00
Henrik Giesel
438fcae263 Add addMenu and updateMenu, avoid using {buttons,menus}Promise outside of class 2021-04-24 01:08:55 +02:00
Henrik Giesel
9346e007c9 Add mostly working addcards topbar 2021-04-24 00:00:32 +02:00
Henrik Giesel
667db3c12e Simplify Handling of margins and padding of ButtonGroup & ButtonDropdown 2021-04-23 22:22:53 +02:00
Henrik Giesel
bf0ea46536 Simplify tag structure in ButtonGroup 2021-04-23 21:42:44 +02:00
Henrik Giesel
da230fbb24 Add simple version of Chooser buttons 2021-04-23 21:25:44 +02:00
Henrik Giesel
01b53a6be8 Make update algorithm in editor-toolbar/index.ts recursive 2021-04-23 20:50:09 +02:00
Henrik Giesel
e66edd3887 Reduce typing overhead in ts/editor-toolbar/index.ts and export buttonGroup 2021-04-23 19:05:43 +02:00
Henrik Giesel
aebaaf1a70 Add IterableToolbarItem interface for easier typing 2021-04-23 18:53:52 +02:00
Henrik Giesel
14d3877bb4 Fix regression from eefdd564e2
Negative indices were not treated correctly (as offset from end)
2021-04-23 18:21:03 +02:00
Henrik Giesel
5acf330414 Add withLabel component 2021-04-23 17:20:52 +02:00
Henrik Giesel
59f0a2dd70 Make dynamicComponents usable for addons, rather than the components directly
rawButton({ html: ... })

instead of

{ component: RawButton, html: ... }
2021-04-23 16:43:36 +02:00
Damien Elmes
68d35835de onDestroy must be called from top level 2021-04-23 20:25:47 +10:00
Damien Elmes
c78bcebcf6 make return value match mergeTooltipAndShortcut() signature 2021-04-23 19:48:36 +10:00
Damien Elmes
eefdd564e2 remove nested terneries and enable lint
@hgiesel would you mind quickly checking I've correctly captured
the logic here?
2021-04-23 13:00:18 +10:00
Damien Elmes
5e37cb7561 move isApplePlatform() into lib/shortcuts, and remove sveltelib file 2021-04-23 11:22:30 +10:00
Damien Elmes
fba4b7ac24 use new registerShortcut() fuction in DeckConfigPage 2021-04-23 11:20:12 +10:00
Damien Elmes
61dfa02b88 update remaining anki/ references 2021-04-23 10:16:40 +10:00
Henrik Giesel
31eaeef09b Rename anki/ to lib/ for export
import _ from "anki/x";

will become

import _ from "lib/x";

to fit the directory name.
2021-04-23 10:02:28 +10:00
Damien Elmes
628f337c3c Merge pull request #1148 from hgiesel/updatetypescript
Update Typescript to 4.2.4
2021-04-23 09:48:34 +10:00
Damien Elmes
ca74b25481 Merge pull request #1146 from hgiesel/shortcuts
Shortcut API for Editor
2021-04-23 09:44:01 +10:00
Henrik Giesel
ed602146df Update eslint to 4.22.0 2021-04-22 19:19:39 +02:00
Henrik Giesel
4b7e7bbdb1 Import createPatch in ts/sql_format directly 2021-04-22 18:43:35 +02:00
Henrik Giesel
697fa4ed9a Update Typescript to 4.2.4 2021-04-22 18:33:42 +02:00
Henrik Giesel
90a6024dff Separate type import for WithShortcut 2021-04-22 18:19:09 +02:00
Henrik Giesel
d4e6fe6a34 Prefer optionalModifiers over register multiple shortcuts 2021-04-22 18:15:25 +02:00
Henrik Giesel
4ebad6f173 Add optionalModifiers parameter to registerShortcut 2021-04-22 17:28:38 +02:00
Henrik Giesel
33fc648695 Add license headers 2021-04-22 16:49:30 +02:00
Henrik Giesel
363469dc36 Satisfy formatter 2021-04-22 15:24:27 +02:00
Henrik Giesel
0abcb86007 Use registerShortcut in inputHandlers + Avoid focus on color picker 2021-04-22 15:09:09 +02:00
Henrik Giesel
2477684e1c Fix typo deregisters 2021-04-22 14:54:29 +02:00
Henrik Giesel
469c138ec1 Add shortcut labels for ColorPicker and Latex items 2021-04-22 14:35:44 +02:00
Henrik Giesel
e68d019b19 Add better better shortcutLabel support for buttons 2021-04-22 14:18:48 +02:00
Damien Elmes
c7c81c8f15 override some bootstrap styles for night mode
There's probably a better way to accomplish this - fixes welcome!

Also fix the page reloading when enter hit inside the modal.
2021-04-22 21:57:32 +10:00
Henrik Giesel
ffb0fd67e5 Add editing fluent strings without attached keyboard shortcuts 2021-04-22 13:38:37 +02:00
Henrik Giesel
7c2ac1fd37 Add getPlatformString for making shortcuts to platform string 2021-04-22 13:04:24 +02:00
Damien Elmes
d3d083651f catch ctrl/cmd+enter to save settings 2021-04-22 19:54:57 +10:00
Damien Elmes
80689d319a move top padding into sticky area to prevent movement 2021-04-22 19:54:50 +10:00
Damien Elmes
6d4c9994a8 disable overscroll on html as well 2021-04-22 19:54:44 +10:00
Damien Elmes
84eea8dbb9 more layout tweaks
- reduce maximum width
- de-emphasise revert and info buttons
- reduce grid margin
2021-04-22 18:11:27 +10:00
Damien Elmes
fcf6ad954f add a workaround for bad save button in rtl mode
Bootstrap provides a different set of CSS for RTL languages, but having
to deal with two separate sets of css files depending on the language
would be a PITA.
2021-04-22 17:45:16 +10:00
Damien Elmes
d0ade13654 fix add/rename dialog right-aligning, and RTL issue 2021-04-22 17:31:33 +10:00
Damien Elmes
3b86fbe454 fill width when steps exceed 2; add bottom margin 2021-04-22 17:28:14 +10:00
Damien Elmes
1a8da843c6 allow checkboxes and select entries to take up whole line 2021-04-22 16:47:10 +10:00
Damien Elmes
779bc4953a switch config to a grid; move info to popups 2021-04-22 15:39:50 +10:00
Damien Elmes
ab5c32abfd fix select appearance inside webview 2021-04-22 11:41:41 +10:00
Henrik Giesel
3cbddf3e8c Move up cloze id 2021-04-22 03:37:01 +02:00
Damien Elmes
b175ba9d72 minor layout tweaks to deck conf screen
- more space for dropdown
- limit width of main area so popups wrap correctly
- experiment with different colour dropdown
2021-04-22 11:33:27 +10:00
Henrik Giesel
7ab5f736df Move other buttons to WithShortcut 2021-04-22 03:25:31 +02:00
Damien Elmes
a7ef410615 hook new deck config screen up behind an env var 2021-04-22 10:59:16 +10:00
Henrik Giesel
b0ddae0f6c Add first shortcuts for bold, italic, underline, removeFormat 2021-04-22 02:37:04 +02:00
Henrik Giesel
e2e1b4d37b Use registerShortcut within WithShortcut 2021-04-22 01:15:38 +02:00
Henrik Giesel
3b52bf6cb8 Add lib/shortcuts 2021-04-22 01:15:38 +02:00
Henrik Giesel
20f17a962a Add WithShortcut 2021-04-22 01:15:38 +02:00
Henrik Giesel
b66699355c Fix isBlockElement() 2021-04-21 14:40:16 +02:00
Henrik Giesel
099ca563e3 Remove paragraph button 2021-04-21 14:36:24 +02:00
Henrik Giesel
ae801729ec Prefer exec over matchAll 2021-04-21 14:18:44 +02:00
Henrik Giesel
18efdcac67 Gather editor-toolbar svelte components into filegroup 2021-04-21 13:18:31 +02:00
Henrik Giesel
29fef178d8 Add copyright headers 2021-04-20 15:43:59 +02:00
Henrik Giesel
282d9df02e Remove last ts-expect-error 2021-04-20 15:41:26 +02:00
Henrik Giesel
6e2f2fc3a6 Move toolbar initialization into toolbar.ts 2021-04-20 15:32:02 +02:00
Henrik Giesel
f11db5579e Move dynamic component initialization logic from editor to editor-toolbar 2021-04-20 14:23:28 +02:00
Henrik Giesel
94eb3af662 Improve behavior of paragraph command and add tooltip 2021-04-20 13:46:01 +02:00
Henrik Giesel
973b7008b7 Make indent outdent only work for list items
+ make paragraph show its active state
2021-04-20 13:44:44 +02:00
Henrik Giesel
5e978b28d4 Move button implementations from editor-toolbar to editor 2021-04-20 13:44:44 +02:00
Henrik Giesel
93136030e9 Include editor-toolbar as a library in editor 2021-04-20 13:44:44 +02:00
Henrik Giesel
85ea209d06 Generalize commandIconButton functionality of setting active state 2021-04-20 13:44:44 +02:00
Henrik Giesel
96bd5c7b20 Add paragraph button 2021-04-20 13:44:44 +02:00
Henrik Giesel
3adcad4ca3 Don't use <br>s when inside of paragraph 2021-04-20 13:44:44 +02:00
Henrik Giesel
ece4f75592 Generalize inListItem to getAnchorElement 2021-04-20 13:44:43 +02:00
Henrik Giesel
a3a085249d Add CSS for making empty paragraph elements visible 2021-04-20 13:44:43 +02:00
Damien Elmes
f61920e7ed Merge pull request #1139 from hgiesel/toolbarfixes
Fix ButtonDropdown not hiding when closed
2021-04-20 19:54:51 +10:00
Damien Elmes
48fc9251bd implement deck config saving on JS end 2021-04-20 19:50:05 +10:00
Damien Elmes
de5f892807 allow postrequest to send a binary body; fix WithGraphData
As far as I can tell, the existing code was transforming the encoded
protobuf data into UTF8, and we're just lucky it wasn't causing problems
with the small message we were sending.
2021-04-20 17:47:52 +10:00
Damien Elmes
c5cecabdd4 include sourcemaps for pages/* in dev builds 2021-04-20 17:33:46 +10:00
Damien Elmes
05f75c6194 implement deck config updating 2021-04-20 14:57:44 +10:00
Henrik Giesel
5550dc8e44 Hide ButtonDropdown when closed
Otherwise ul.{svelte-class} in ButtonGroup has higher priority then .show from Bootstrap
2021-04-19 14:47:10 +02:00
Damien Elmes
fc419e3b81 tweak deckconfig top area formatting
I suspect there's a better way to ensure selector and save button are
shown on the same line on both large and small widths; PRs are welcome.
2021-04-18 17:33:12 +10:00
Damien Elmes
1f0ff0f22d add schema change prompt to removal, tweak return struct 2021-04-18 17:33:12 +10:00
Damien Elmes
3aa1d8bab9 move daily limits into separate section; add extra warning+tweak formatting 2021-04-18 00:04:02 +10:00
Damien Elmes
75205948b3 apply spinbox limits on each keystroke 2021-04-18 00:03:02 +10:00
Damien Elmes
20d1a3d1b1 avoid showing the strings twice
While it can help to show the link between the settings, having multiple
sections change at once feels a bit over the top
2021-04-17 22:56:55 +10:00
Damien Elmes
0f741912b6 add text to describe deckconfig warnings 2021-04-17 22:53:47 +10:00
Damien Elmes
e825a77ddd update config automatically, and update parent limits at same time 2021-04-17 21:44:33 +10:00
Damien Elmes
dbf31d6748 add some unit tests to deckconfig 2021-04-17 21:00:10 +10:00
Damien Elmes
f89d7b2b1e add a hack to avoid Long.js in Jest tests 2021-04-17 17:05:48 +10:00
Damien Elmes
c0e615ddde support es6 imports in Jest tests
Switching to lodash-es caused Jest to fail. The standard Jest workflow
would be to transpile things with Bazel, but we can do it faster by
bundling with esbuild.

the log in lib.test.ts has revealed numbers are being set as Long instead
of JS numbers, and the published workaround for it is not working :-(
2021-04-17 16:38:45 +10:00
Damien Elmes
0645cb29b7 fix parent limit handling
We can't calculate it on the backend, as adjusting a config may alter
the parent limit.

Also fix hidden deck name and missing separator.
2021-04-17 12:53:59 +10:00
Damien Elmes
2ea5f5abde Merge pull request #1134 from hgiesel/formatblock
Add block formatting options to Editor
2021-04-17 09:40:52 +10:00
Henrik Giesel
05c36ef205 Satisfy svelte_check 2021-04-16 19:00:36 +02:00
Henrik Giesel
b5e3156f6a Color ButtonDropdown background in var(--bg-color) regardless of theme 2021-04-16 18:36:54 +02:00
Henrik Giesel
65442c5a84 Make clearer which parts of ButtonGroup css are theming related 2021-04-16 18:24:43 +02:00
Henrik Giesel
b102d0bbd2 Change style for Dropdown{Menu,Item} to match Button{Group,Dropdown} 2021-04-16 18:14:09 +02:00
Henrik Giesel
01870e68fa Adjust ButtonDropdown for night mode 2021-04-16 17:14:47 +02:00
Henrik Giesel
6ce61de27c Mark indent / outdent as non activatable 2021-04-16 16:11:53 +02:00
Henrik Giesel
11ace2f489 Add Fluent translations 2021-04-16 16:08:00 +02:00
Damien Elmes
168af33aa8 add macro for invoking Jest 2021-04-16 23:46:31 +10:00
Damien Elmes
72193c45ec more experimental updates to deck config screen
- try out bootstrap modals - they're not perfect, but let's see how
they go for now. Won't be hard to switch to bridge commands if required.
- handle adding/renaming/removing
- add a class to manage the state
2021-04-16 23:29:21 +10:00
Henrik Giesel
7e47c918ee Add justify and indentation menu 2021-04-16 15:26:49 +02:00
Damien Elmes
cc5cfb06fb support passing @types/... into svelte-check 2021-04-16 23:18:33 +10:00
Damien Elmes
f474803146 switch to full lodash library
Individual packages are going away in v5, and we can rely on tree
shaking to only get what we need.
2021-04-16 20:14:17 +10:00
Damien Elmes
c1ed56d748 Merge pull request #1131 from glutanimate/fix-asyncreactivedata-typo
Fix minor typo
2021-04-16 11:58:58 +10:00
Henrik Giesel
ef4ea3db23 Add ol and ul buttons, rename previous format to formatInline 2021-04-16 03:46:37 +02:00
Henrik Giesel
a6f74a387a Satisfy ./script/svelte-check 2021-04-16 03:10:39 +02:00
Henrik Giesel
190a863b4b Remove unnecessary comments / dead code 2021-04-16 02:51:03 +02:00
Damien Elmes
8b336eeaa7 quiet esbuild output and format file 2021-04-16 10:27:09 +10:00
Henrik Giesel
cc2bd542af Solve the race conditions of button insertion by operating on promises in EditorToolbar 2021-04-16 02:04:38 +02:00
Henrik Giesel
9cc05389fb Abandon btn-secondary and btn-light in favor our own definitions btn-night and btn-day 2021-04-15 18:35:46 +02:00
Glutanimate
0a67445522 Fix minor typo 2021-04-15 18:30:53 +02:00
Henrik Giesel
a71311b65e Make fields square again
This was an experiment, to adjust the field border-radius to the
buttons, but I think it looks cleaner if the fields are square
2021-04-15 16:44:07 +02:00
Henrik Giesel
a6b102fadd Add license headers 2021-04-15 15:59:52 +02:00
Henrik Giesel
fce70c3ad1 Use bootstrap types for editor-toolbar svelte_check 2021-04-15 15:51:56 +02:00
Henrik Giesel
dc037c5aec Experimental: Add bootstrap to svelte_check dependencies 2021-04-15 15:47:02 +02:00
Henrik Giesel
70d2c93222 Pass svelte_check for editor-toolbar 2021-04-15 15:33:47 +02:00
Henrik Giesel
1a04ca32fe Add Latex formatting options to menu
*  Format shortcuts in monospace font and increase padding a little bit
2021-04-15 15:20:37 +02:00
Henrik Giesel
ac768a464a Satisfy prettier 2021-04-15 14:58:13 +02:00
Henrik Giesel
d9d2dddd4f Use new bootstrap library paths 2021-04-15 14:04:41 +02:00
Henrik Giesel
e221050bc6 Use new bootstrap dep 2021-04-15 13:30:19 +02:00
Henrik Giesel
e032c8f6a0 Add shortcut labels for mathjax menu 2021-04-15 13:09:51 +02:00
Henrik Giesel
42d59a4af7 Explicitly name file in output_css for esbuild 2021-04-15 13:09:51 +02:00
Henrik Giesel
aca20bd3da Make editor-toolbar pass eslint 2021-04-15 13:09:51 +02:00
Henrik Giesel
5c601db45f Fix most of svelte-check issues for editor-toolbar 2021-04-15 13:09:51 +02:00
Henrik Giesel
1e5b2a06a3 Pass the svelte check for graphs 2021-04-15 13:09:50 +02:00
Henrik Giesel
36c031a0ca Inline GraphData/GraphPreferences getters/setters into WithGraphData 2021-04-15 13:09:50 +02:00
Henrik Giesel
eebbf71256 Generalize ts/graphs/preferences to ts/sveltelib/preferences 2021-04-15 13:09:50 +02:00
Henrik Giesel
f4afb3e823 Style light mode button bar with borders
- whereas night mode toolbar has no visible borders
2021-04-15 13:09:50 +02:00
Henrik Giesel
5c84b1636b Use padding for extended colorpicker background "border" 2021-04-15 13:09:50 +02:00
Henrik Giesel
a225accac3 Give light mode effects on hover/active/focus as well 2021-04-15 13:09:50 +02:00
Henrik Giesel
350ef044f2 Add theming support for DropdownItem and DropdownMenu 2021-04-15 13:09:50 +02:00
Henrik Giesel
b862c3ecea Improve looks of color picker button 2021-04-15 13:09:50 +02:00
Henrik Giesel
b425d09ac6 Update CSS for ColorPicker and forecolor button 2021-04-15 13:09:50 +02:00
Henrik Giesel
a0de8bef55 Switch from core to base CSS for editor view 2021-04-15 13:09:50 +02:00
Henrik Giesel
5c37ac1640 Correctly check for night mode 2021-04-15 13:09:50 +02:00
Henrik Giesel
639cfa57a3 Rely more heavily on bootstrap provided types for editor-toolbar 2021-04-15 13:09:50 +02:00
Henrik Giesel
b95ccb99c2 Make mdi also use renamed pkg_from_name 2021-04-15 13:09:50 +02:00
Henrik Giesel
0d63ffcaeb Add buttons_mixins.scss for sharing SCSS across components 2021-04-15 13:09:50 +02:00
Henrik Giesel
de5b9d551d Also add Bootstrap buttons.scss 2021-04-15 13:09:50 +02:00
Henrik Giesel
05affd313f Include Dropdown directly from bootstrap, required installing popperjs 2021-04-15 13:09:50 +02:00
Henrik Giesel
ef90924f91 Use compile_sass and add flag to make editor-toolbar compile again 2021-04-15 13:09:50 +02:00
Henrik Giesel
7bf675d75e Remove $$restProps and make explicit dropdown support in buttons
* Currently LabelButton, CommandIconButtton, and IconButton support dropdowns
2021-04-15 13:09:50 +02:00
Henrik Giesel
fa6ac2b27b Add RawButton and hook old python hooks up to it 2021-04-15 13:09:50 +02:00
Henrik Giesel
98dc8a56f2 Introduce ToolbarItem as a better base type instead of DynamicSvelteComponent 2021-04-15 13:09:50 +02:00
Henrik Giesel
0e0f33022f Switch from lazy loading of properties to wrapping the buttons in a function 2021-04-15 13:09:50 +02:00
Henrik Giesel
42e580430a Add a button / buttonGroup insertion API 2021-04-15 13:09:50 +02:00
Henrik Giesel
d93aefdaaa Fix sticky toolbar which was broken when introducing var(--toolbar-size) 2021-04-15 13:09:50 +02:00
Henrik Giesel
d1374d4b58 Show/Hide Cloze button depending on whether cloze type 2021-04-15 13:09:50 +02:00
Henrik Giesel
e8fb17c1eb Move cloze logic and wrapping logic editor-toolbar 2021-04-15 13:09:50 +02:00
Henrik Giesel
fa00dbc01e Make buttons and button groups easily toggleable through hidden web component 2021-04-15 13:09:50 +02:00
Henrik Giesel
8ba2b383eb Remove props property in favor of $$restProps 2021-04-15 13:09:50 +02:00
Henrik Giesel
64fbbbfcd0 Get rid of types.d.ts in favor of DynamicSvelteComponent 2021-04-15 13:09:50 +02:00
Henrik Giesel
7646a81b7c Pass button groups as actual button groups, not arrays 2021-04-15 13:09:50 +02:00
Henrik Giesel
5520863278 Pass wraps more similiar to how size is passed via CSS variables 2021-04-15 13:09:50 +02:00
Henrik Giesel
9ff521126d Make wraps a passable prop to EditorToolbar
Can be set to nowrap via document.getElementByID("editorToolbar").component.$set({ wraps: false })
2021-04-15 13:09:50 +02:00
Henrik Giesel
fc3a272327 Give clearer type names to dynamicComponent 2021-04-15 13:09:50 +02:00
Henrik Giesel
38fe270937 Rename title to tooltip across editor toolbar components 2021-04-15 13:09:50 +02:00
Henrik Giesel
2b252d8b41 Rename types.ts to types.d.ts 2021-04-15 13:09:50 +02:00
Henrik Giesel
5d2d9396f9 Change overflow of button groups to overflow-y auto
Avoids erratic creation of scrollbars
2021-04-15 13:09:50 +02:00
Henrik Giesel
3fb052d736 Use dynamicComponent instead of withLazyProps 2021-04-15 13:09:50 +02:00
Henrik Giesel
c432831a19 Move enabled/disabled logic to EditorToolbar 2021-04-15 13:09:50 +02:00
Henrik Giesel
5bc7132a4f Fix clicking the bold button immediately showing the updated button state
- rather than only after typing
2021-04-15 13:09:49 +02:00
Henrik Giesel
3c84e31bf4 Support building as external repo 2021-04-15 13:09:49 +02:00
Henrik Giesel
115757c327 Remove lazyProperties -> we use withLazyProperties instead 2021-04-15 13:09:49 +02:00
Henrik Giesel
cfb9376e5e Fix some code quality issues 2021-04-15 13:09:49 +02:00
Henrik Giesel
90825cc95b Pass in buttons and menus directly as stores 2021-04-15 13:09:49 +02:00
Henrik Giesel
77b45835f4 Make --toolbar-size a parameter 2021-04-15 13:09:49 +02:00
Henrik Giesel
162f13fee1 Add ButtonDropdown for dropdowns like the MathJax dropdown on AnkiMobile 2021-04-15 13:09:49 +02:00
Henrik Giesel
cd69c7ffa3 Add exports for add-ons 2021-04-15 13:09:49 +02:00
Henrik Giesel
c1aa8d7bf7 Make it easier to update buttons and menus 2021-04-15 13:09:49 +02:00
Henrik Giesel
b002994d30 Add labels and titles to all buttons 2021-04-15 13:09:49 +02:00
Henrik Giesel
5cecde34ed Add titles to buttons with lazyProperties 2021-04-15 13:09:49 +02:00
Henrik Giesel
04aebbd7fe Move logic from index.ts to their individual files 2021-04-15 13:09:49 +02:00
Henrik Giesel
cdb3221f82 Add first lazily loaded i18n strings 2021-04-15 13:09:49 +02:00
Henrik Giesel
a1d11edbdf Give select an effect on :hover 2021-04-15 13:09:49 +02:00
Henrik Giesel
4544025fc2 Make select display inline-block 2021-04-15 13:09:49 +02:00
Henrik Giesel
bdcdcc7a56 Make Toolbar resizable through a single CSS variable --toolbar-size 2021-04-15 13:09:49 +02:00
Henrik Giesel
f033672045 Add SelectButton 2021-04-15 13:09:49 +02:00
Henrik Giesel
675ffca1fa Add dropdown menu to mathjax button 2021-04-15 13:09:49 +02:00
Henrik Giesel
c61d5a501d Make it so you can include DropdownMenus on all kinds of buttons 2021-04-15 13:09:49 +02:00
Henrik Giesel
a053332421 WIP: Turn DropdownMenu into a _decorator_ usable with all other button types 2021-04-15 13:09:49 +02:00
Henrik Giesel
ef9eb38d26 Utilize enableButtons disableButtons from Svelte component 2021-04-15 13:09:49 +02:00
Henrik Giesel
90c176c180 Display .active:active as :hover buttons 2021-04-15 13:09:49 +02:00
Henrik Giesel
95be25a2eb Add active shadow on ColorPicker 2021-04-15 13:09:49 +02:00
Henrik Giesel
934b426541 Move display:flex from outer div to ButtonGroup ul 2021-04-15 13:09:49 +02:00
Henrik Giesel
9a0ae77db6 Add negative tabindex 2021-04-15 13:09:49 +02:00
Henrik Giesel
62198b29a0 Add mathjaxButton and htmlButton instead of more button 2021-04-15 13:09:49 +02:00
Henrik Giesel
91a5a20684 Make icons slightly smaller, so they are the same size as before 2021-04-15 13:09:49 +02:00
Henrik Giesel
6fbeeff1c5 Make all buttons functional 2021-04-15 13:09:49 +02:00
Henrik Giesel
904aa3d45a Move initialization logic from EditorToolbar to index.ts 2021-04-15 13:09:49 +02:00
Henrik Giesel
d976dd711c Simplify General Toolbar structure 2021-04-15 13:09:49 +02:00
Henrik Giesel
fefd2e5008 Merge buttons to one OuterButtonGroup
- keeping up the concept of left / right buttons might not be necessary anymore
- This might make it easier to display them on mobile, and simplifies the logic
2021-04-15 13:09:49 +02:00
Henrik Giesel
27188bef29 Make all Leaf buttons 30px high and give same vertical-align 2021-04-15 13:09:49 +02:00
Henrik Giesel
5290bc7d86 Rename IconButtonInner to InnerButton, as it does not necessarily contain an Icon 2021-04-15 13:09:49 +02:00
Henrik Giesel
87ab416bb3 Add hover and active effects 2021-04-15 13:09:49 +02:00
Henrik Giesel
14577c07ed Display ButtonGroups inline-block 2021-04-15 13:09:49 +02:00
Henrik Giesel
50a2929e93 Add ButtonGroup for grouping of toolbar items 2021-04-15 13:09:49 +02:00
Henrik Giesel
9a52d0f345 Add CommandIconButton functionality 2021-04-15 13:09:49 +02:00
Henrik Giesel
9330a0bd47 Add color.ts for foreground color and color picker 2021-04-15 13:09:49 +02:00
Henrik Giesel
9c19c85f79 Add remaining icons for toolbar 2021-04-15 13:09:49 +02:00
Henrik Giesel
c06d500f0c Include icons directly in ts lib 2021-04-15 13:09:49 +02:00
Henrik Giesel
e175c9348e First implementation 2021-04-15 13:09:48 +02:00
Henrik Giesel
e1da2d0e01 Add ts/editor-toolbar 2021-04-15 13:09:48 +02:00
Damien Elmes
c046ce1c26 move bootstrap into ts/sass 2021-04-15 16:10:01 +10:00
Damien Elmes
130e960262 support external building of sass; node_modules->ts/bootstrap 2021-04-15 15:59:17 +10:00
Damien Elmes
9e0e3edb04 allow passing sass deps to svelte compile/check 2021-04-15 14:27:53 +10:00
Damien Elmes
59d6e15d50 update other ts deps 2021-04-15 10:59:29 +10:00
Damien Elmes
74c917239f remove unused esbuild package, and update rules_nodejs packages 2021-04-15 10:57:19 +10:00
Damien Elmes
cc91868092 move esbuild into separate repo
Most of our changes have been upstreamed, but the toolchain change
probably won't be merged soon, and a separate git repo will make it
easier to track upstream changes.

@hgiesel output_css=True will need to be changed to output_css="foo.css"
instead
2021-04-15 10:53:49 +10:00
Damien Elmes
ac045e9e3f fix initial ease not being updated 2021-04-14 23:01:03 +10:00
Damien Elmes
57a1651113 deck config prototype work in progress
Still in the early stages, and not hooked up yet.
2021-04-14 22:33:10 +10:00
Damien Elmes
64818290fc Merge pull request #1128 from hgiesel/webviewcss3
Remove unnecessary exports from sass/BUILD.bazel
2021-04-14 21:28:25 +10:00
Damien Elmes
6523fed84c experiment with making bootstrap scss available as a library
This will allow us to import the local sass lib, then use something
like the following in our sass:

@import "ts/bootstrap/functions";
@import "ts/bootstrap/variables";
@import "ts/bootstrap/mixins";
@import "ts/bootstrap/helpers";
@import "ts/bootstrap/dropdown";
@import "ts/bootstrap/forms";
@import "ts/bootstrap/buttons";
@import "ts/bootstrap/button-group";
 
I'm currently trialing it out on a prototype reimplementation of the
deck options screen. Unfortunately bootstrap don't seem to support the
@use syntax, so we need to @import everything
2021-04-14 21:27:34 +10:00
Henrik Giesel
d055bfa3c7 Remove unnecessary exports from sass/BUILD.bazel
I think these were just part of an unsuccessful experiment
Partially reverses fb26361274
2021-04-14 12:31:42 +02:00
Damien Elmes
cd4326c77e run prettier on some sass files 2021-04-14 18:22:33 +10:00
Damien Elmes
2a43d42323 run black/isort on Python scripts 2021-04-14 18:22:02 +10:00
Damien Elmes
898b8d2e09 Merge pull request #1125 from hgiesel/scrollbarcorner
Color Scrollbar bottom right corner
2021-04-14 12:43:34 +10:00
Henrik Giesel
082fd8d28f Color in the Scrollbar corner at the bottom right into the appropriate color 2021-04-13 21:41:15 +02:00
Henrik Giesel
fb26361274 Create explicit dependencies for the congrats,editor,graphs scss files 2021-04-13 19:47:03 +02:00
Henrik Giesel
19903986f9 Move compile_sass.bzl to /ts + Remove core.css from data/web (unused?) 2021-04-13 19:47:03 +02:00
Henrik Giesel
5bcb2f080f Declare dependencies in data/web/css 2021-04-13 19:47:03 +02:00
Henrik Giesel
9cba0c2d29 Make h1 explicitly bold in Graph.svelte 2021-04-13 19:47:03 +02:00
Henrik Giesel
630ee9c6bb Use graphs-base and congrats-base 2021-04-13 19:47:03 +02:00
Henrik Giesel
8efbcddbb4 Do not include webview.css for editor 2021-04-13 19:47:03 +02:00
Henrik Giesel
b14dc3f7cb Move card_counts and split off fusion_vars 2021-04-13 19:47:03 +02:00
Henrik Giesel
c944eeb5f6 Add base.scss 2021-04-13 19:47:03 +02:00
Damien Elmes
eb6502bd6e add missing copyright headers to *.svelte 2021-04-13 19:02:41 +10:00
Damien Elmes
1f475a1709 add missing copyright headers to *.ts 2021-04-13 18:57:08 +10:00
Damien Elmes
c6da01c4aa disable Jest tests on Windows again
It looks like the templated_args change only masked the error last time;
Jest seems broken on Windows with both the patched .24 version, latest
stable, and the new beta version too, presumably because symlinks are
being handled differently on Windows somehow. It might be possible to
hack around the issue by patching the following file, but I'm not sure:

https://github.com/facebook/jest/blob/master/packages/jest-haste-map/src/crawlers/node.ts
2021-04-12 15:39:46 +10:00
Damien Elmes
9d03e266e3 add naturalWholeUnit() and basic tests to lib/time.ts
naturalWholeUnit() is not currently used
2021-04-12 14:42:06 +10:00
Damien Elmes
3c3258251d force number in protobuf generation
Anki's object IDs and millisecond timestamps fit within MAX_SAFE_INTEGER.
2021-04-12 14:33:20 +10:00
Damien Elmes
43a8b8fec3 stop Svelte warnings from failing the build
+ check for them at test time
2021-04-12 14:28:09 +10:00
Damien Elmes
8c64cc38d7 fix jest
- templated_args was missing --node_modules= prefix, and was causing
tests to pass unconditionally
- update to beta of jest 27, which introduces an option to fix the
symlink handling, and is approx twice as fast to start up
2021-04-12 09:43:31 +10:00
Damien Elmes
dc8c0a2e73 switch esbuild to a toolchain 2021-04-07 15:19:23 +10:00
Damien Elmes
fb1111623f update to latest esbuild 2021-04-07 14:54:40 +10:00
abdo
a6bdde68db Fix graph labels display in RTL layout 2021-04-02 06:25:38 +03:00
Damien Elmes
188a8891fd add docstring to forEditorField 2021-03-29 18:13:45 +10:00
Damien Elmes
efb8a4e61c Merge pull request #1101 from Arthur-Milchior/TS_type
NF: add type ts
2021-03-29 18:09:56 +10:00
Damien Elmes
2e1104c724 move loader arg into esbuild() invocation
upstream.bzl should be kept as close to upstream as possible, so that
it's easier to send changes upstream and pull in future changes
2021-03-29 17:59:06 +10:00
Arthur Milchior
cfa2ee6774 NF: add type ts 2021-03-28 23:59:16 +02:00
Henrik Giesel
d01aa0de6f Add copy_bootstrap_icons macro 2021-03-28 18:50:37 +02:00
Henrik Giesel
77c396c2a8 Include pin-angle icon via inline SVG 2021-03-28 16:15:30 +02:00
Damien Elmes
fb222149af define file extension in .d.ts so typescript doesn't complain 2021-03-28 16:15:28 +02:00
Henrik Giesel
443ee54f7e Unsuccessfully try to add text loader for .svg files 2021-03-28 16:14:52 +02:00
Henrik Giesel
9d64508bd1 Remove bootstrap-icons from css folder 2021-03-28 16:14:52 +02:00
Damien Elmes
d279ca4cac move back to latest Jest
Patch is no longer required after previous change
2021-03-28 21:44:55 +10:00
Damien Elmes
9a75392f54 fix Jest on Windows 2021-03-28 20:59:51 +10:00
Damien Elmes
e2963e54f8 Revert "disable Jest tests on Windows for now"
This reverts commit 819f87df42.
2021-03-28 20:59:31 +10:00
Damien Elmes
819f87df42 disable Jest tests on Windows for now 2021-03-28 20:34:10 +10:00
Damien Elmes
ad47b68255 add Jest for TS unit tests
@hgiesel the reason no files were being found is because Jest ignores
symlinks by default. The Bazel example includes a patch we can use
to work around it, and Jest plan to add symlink support in a future
update.

https://github.com/bazelbuild/rules_nodejs/blob/stable/examples/jest/patches/jest-haste-map%2B24.9.0.patch

https://github.com/facebook/jest/pull/9351
2021-03-28 19:41:20 +10:00
Henrik Giesel
ac46f6cb27 Utilize ts/tsconfig.js from ts/{editor,html-filter} 2021-03-28 19:41:20 +10:00
Henrik Giesel
d346ae6feb No need to explicitly import from index 2021-03-28 19:41:20 +10:00
Henrik Giesel
722adec915 Satisfy formatter 2021-03-28 19:41:20 +10:00
Henrik Giesel
c99d91c283 Avoid using outerHTML + Fix regression 2021-03-28 19:41:20 +10:00
Henrik Giesel
f432da5af7 Change filter logic in html-filter/element: predicate true, means it stays in 2021-03-28 19:41:20 +10:00
Henrik Giesel
1aefab95f8 Move html-filter into its own directory 2021-03-28 19:41:20 +10:00
Henrik Giesel
127b46d240 Insert break statements into switch 2021-03-28 19:41:20 +10:00
Henrik Giesel
4baa87348e Create htmlFilter{Node,Styling} for better separation of concerns 2021-03-28 19:41:20 +10:00
Henrik Giesel
6822c56e53 Put filterElement logic completely into its own file 2021-03-28 19:41:20 +10:00
Henrik Giesel
a9fa7cd0db Move most of tags allowed to its own file 2021-03-28 19:41:20 +10:00
Henrik Giesel
f4e3a9202f Refactor htmlFilter to use function declarations 2021-03-28 19:41:20 +10:00
Damien Elmes
0edbd3fc4b use relative link to sass file
links relative to workspace root break when invoked from an external
repo
2021-03-28 12:37:21 +10:00
Damien Elmes
3761693be2 add links to pending PRs 2021-03-28 12:32:40 +10:00
Damien Elmes
0b2c3e1c3b fix(esbuild): files not being found when building external repo
An esbuild rule that ran fine in a local repo (eg bazel build //:my_esbuild_rule)
fails when built externally (eg bazel build @other_workspace//:my_esbuild_rule).
By prepending the workspace root to the bin path, the resulting base
URL works correctly in both local and remote repo invocations, allowing
esbuild output to be consumed by a different repo.

This change fixes remote repos in Bazel 4.0.0. 3.7.0 seems to require a
workspace_root.replace("external/", "") call first in order
to get the correct location. So while this patch should not break anything
that was not already broken, it only fixes/adds support for remote repos
in 4.0+.
2021-03-28 11:30:15 +10:00
Damien Elmes
061c7e60fc add esbuild/helpers.bzl in from upstream 2021-03-28 11:12:23 +10:00
Damien Elmes
b8b2be3f9f update $(location ...) in esbuild inject lines 2021-03-28 09:35:46 +10:00
Damien Elmes
7500a2765f support expanding locations in esbuild arguments 2021-03-28 09:35:27 +10:00
Damien Elmes
16632c90df update TS deps 2021-03-27 15:02:02 +10:00
Damien Elmes
125dcee811 remove obsolete comment 2021-03-26 21:47:23 +10:00
Damien Elmes
0006a385e1 allow js to request specific i18n modules
Brings the payload on the congrats page with a non-English language
down from about 150k to 15k
2021-03-26 21:43:36 +10:00
Damien Elmes
5ef9282f9b fix handling of variables that don't match ts naming style 2021-03-26 21:34:24 +10:00
Damien Elmes
00eb89c2ec use singleton + free functions for i18n in ts
This allows for tree shaking, and reduces the congrats page from 150k
with the old enum solution to about 80k.
2021-03-26 20:38:44 +10:00
Damien Elmes
b145b04ddf drop legacy enum from ts/ 2021-03-26 19:26:35 +10:00
Damien Elmes
6cde7ff536 update remaining TR references in ts/ 2021-03-26 19:24:48 +10:00
Damien Elmes
7a7cb7402d update most no-arg TR references in *.svelte 2021-03-26 19:13:30 +10:00
Damien Elmes
1ed1902933 update TR references with args in *.svelte 2021-03-26 19:13:30 +10:00
Damien Elmes
0e50259e6b update TR references with args in *.ts; fix average answer time 2021-03-26 19:10:39 +10:00
Damien Elmes
2ab7a30b7b convert no-arg TR references to method invocations in *.ts 2021-03-26 19:10:27 +10:00
Damien Elmes
efb92d5ee9 generate ts methods for translations 2021-03-26 18:11:58 +10:00
Damien Elmes
0c63a7c8c4 rework translation handling
Instead of generating a fluent.proto file with a giant enum, create
a .json file representing the translations that downstream consumers
can use for code generation.

This enables the generation of a separate method for each translation,
with a docstring that shows the actual text, and any required arguments
listed in the function signature.

The codebase is still using the old enum for now; updating it will need
to come in future commits, and the old enum will need to be kept
around, as add-ons are referencing it.

Other changes:

- move translation code into a separate crate
- store the translations on a per-file/module basis, which will allow
us to avoid sending 1000+ strings on each JS page load in the future
- drop the undocumented support for external .ftl files, that we weren't
using
- duplicate strings in translation files are now checked for at build
time
- fix i18n test failing when run outside Bazel
- drop slog dependency in i18n module
2021-03-26 09:41:32 +10:00
Henrik Giesel
730d75a6c4 Satisfy svelte_check 2021-03-22 15:41:43 +01:00
Henrik Giesel
0a882175e5 Add type signatures to asyncReactive 2021-03-22 15:30:35 +01:00
Henrik Giesel
8bf68ea7ca Satisfy formatter 2021-03-22 15:25:49 +01:00
Henrik Giesel
e973b555f3 Fix asyncReactive detection of loading
- Removed `success` store as it wouldn't work
- We should check for a value in error instead
2021-03-22 15:23:48 +01:00
Henrik Giesel
b52d05431d Partially revert "Make sure RangeBox does not trigger update on stores on creation"
This reverts commit 8232e2f5ed.
2021-03-22 15:11:36 +01:00
Henrik Giesel
12123fc68b Remove assignment to preferencesPromise: getPreferences will only be called once 2021-03-22 04:03:52 +01:00
Henrik Giesel
0368bac9be Move async and asyncReactive to sveltelib
- sveltelib is a lib for component-agnostic svelte utils
2021-03-22 03:06:53 +01:00
Henrik Giesel
c44340e761 Avoid duplicate initial fetching with asyncReactive 2021-03-22 02:58:19 +01:00
Henrik Giesel
8232e2f5ed Make sure RangeBox does not trigger update on stores on creation 2021-03-22 02:50:16 +01:00
Henrik Giesel
8cb7d4a8ad Create search and days writable in GraphsPage to allow browserSearch to work 2021-03-22 02:44:08 +01:00
Henrik Giesel
c7a6665307 Fix syntax error introduced by rebase 2021-03-22 01:44:07 +01:00
Henrik Giesel
1e5bb2f226 Create BrowserSearch component, because we cannot read from stores within slotted content 2021-03-22 01:42:23 +01:00
Henrik Giesel
abdf8a464f Remove pending, and resort to checking for value
- once value is set, it won't be unset
2021-03-22 01:42:23 +01:00
Henrik Giesel
6d2d40472d Use preferencesPromise, as refreshing is handled over stores 2021-03-22 01:42:23 +01:00
Henrik Giesel
4468938dfd Use $-assignments instead of store.set 2021-03-22 01:42:23 +01:00
Henrik Giesel
fbf2c6f6fc Rename search and days to initialSearch and intitialDays in GraphsPage 2021-03-22 01:42:23 +01:00
Henrik Giesel
4ef0b3c977 Get it to work, if you change the input
- there's still an issue on initial load
2021-03-22 01:42:23 +01:00
Henrik Giesel
26d4854502 Compiles with WithGraphData 2021-03-22 01:42:23 +01:00
Henrik Giesel
c6ba8f779e Move Graph-specific html from GraphsPage to Graph.svelte 2021-03-22 01:42:21 +01:00
Henrik Giesel
cfaf0e587b Add WithGraphData 2021-03-22 01:40:51 +01:00
Henrik Giesel
aebb665164 Rename asyncRefresh to asyncReactive 2021-03-22 01:40:51 +01:00
Henrik Giesel
92658495ad Improve implementation of asyncRefresh 2021-03-22 01:40:51 +01:00
Henrik Giesel
b0116aa3a9 Add (probably non-working) asyncRefresh 2021-03-22 01:40:51 +01:00
Henrik Giesel
159f6dc4e1 Add Svelte async hook 2021-03-22 01:40:51 +01:00
Henrik Giesel
5b1eb98b86 Add comment where to find global styles 2021-03-21 16:04:38 +01:00
Henrik Giesel
794642b2f2 Move ticks.scss directly into Graph.svelte 2021-03-21 15:59:11 +01:00
Damien Elmes
7c76693618 merge in Henrik's TS/Svelte refactor with some changes
- The previous commits moved the majority of the remaining global css
into components; move the remaining @emotion/css references into
ticks.scss and the styling of the Graph.svelte. This is not as elegant
as the emotion solution, but builds a whole lot faster, and most of
our styling can be scoped to a component anyway.
- Leave the .html files in ts/ for now. AnkiMobile uses them, and
AnkiDroid likely will in the future too. In the long run we'll likely
move to loading the JS into an existing page instead of loading a
separate page, but at that point we can just exclude the .html file from
copy_files_into_group() without affecting other clients.

Closes #1074
2021-03-21 23:01:18 +10:00
Damien Elmes
13afaaa770 move some cumulative-overlay-specific styling out of shared css 2021-03-21 20:18:05 +10:00
Damien Elmes
ba4e5d834c add HoverColumns.svelte for hoverzone styling 2021-03-21 19:58:39 +10:00
Damien Elmes
cdf326d45d add CumulativeOverlay.svelte for area styling 2021-03-21 19:50:35 +10:00
Damien Elmes
d4f0661e16 add Tooltip.svelte so we can encapsulating styling 2021-03-21 19:35:38 +10:00
Damien Elmes
c02823b488 bundle all Svelte css into separate file
- svelte compilation outputs a separate .css file for each component
- compilation also adds an "import foo.css" to the top of each generated
.mjs file
- when the .mjs files are bundled into app.js, esbuild creates an app.css
as well
- graphs.scss was renamed to graphs_shared.scss and imported in the
top level GraphsPage. Henrik's style refactoring would be a better path
forward, but I needed to make this change for now, as the filenames were
conflicting.
2021-03-21 16:06:36 +10:00
Damien Elmes
2ffb210ca4 add support for declaring css output in esbuild call 2021-03-21 16:06:36 +10:00
Damien Elmes
d5c088175f add upstream esbuild impl so we can add css output support
Taken from 4a26898023/packages/esbuild/esbuild.bzl
2021-03-21 16:06:36 +10:00
Damien Elmes
460a071fe4 switch from rollup to esbuild
brings the 2+ second bundle on a module like the graphs down to 90ms
2021-03-21 16:06:36 +10:00
Damien Elmes
e1233ac156 ESM import issue on Windows came back again
Not sure if I just missed this in the previous change, or whether
the patch_resolver change broke things again.

Previous issue:
7ae6837cfa
2021-03-21 16:06:07 +10:00
Damien Elmes
27feb0688a output embedded Svelte css into separate .css file for bundling 2021-03-21 16:06:01 +10:00
Damien Elmes
b6f95c0e5e fixes for Svelte compilation
- enable resolver patch on worker binary to ensure js imports work
on subsequent worker requests
- cache ts library content, and use unified interface for cache
- prepare for separate css outputs
2021-03-21 16:05:46 +10:00
Damien Elmes
cf68717830 avoid temporary .ts file due to lack of sandbox on Windows
Just a quick hack for now to store it in memory, as the temp file
conflicts on Windows due to the lack of a sandbox, and we don't really
have a need to write it to the filesystem anyway.
2021-03-21 00:17:09 +10:00
Damien Elmes
63b621ce9f use ts language service for much faster Svelte compiles 2021-03-20 23:49:10 +10:00
Damien Elmes
52551b629d convert svelte worker to ts
Should make it easier to maintain, and ironically it also fixes
the issue with .mjs files from this morning.
2021-03-20 23:13:27 +10:00
Damien Elmes
b025e92d26 switch Svelte compilation to worker model
based on changes from upstream rules_svelte

Their code was using run_node() instead of ctx.actions.run(), which
seems to create a new worker for every CPU core, instead of respecting
the standard limit of 4.
2021-03-20 22:52:35 +10:00
Damien Elmes
e99c8b8a81 clarify comment 2021-03-20 16:25:50 +10:00
Damien Elmes
7ae6837cfa update Svelte and fix Windows build
Svelte 3.25.0 and onwards bundle compiler.mjs, which seems to be
preferentially used over the .js file. Presumably this is only breaking
on Windows due to the lack of a sandbox. Resolve by explicitly requesting
the .js file.
2021-03-20 16:13:20 +10:00
Damien Elmes
06b0b4d68b vendor Svelte rules
The separate repo made it difficult to update the rules, and made things
more complicated than they needed to be.
2021-03-20 15:04:19 +10:00
Damien Elmes
7840d773ef update rules_nodejs 2021-03-20 10:54:18 +10:00
Damien Elmes
72885bc710 move to new rules_nodejs protobuf example to unblock upgrade
@hgiesel the tag editor will need to add the following to the rollup
deps:

        "//ts/lib:backend_proto",
        "//ts/lib:fluent_proto",
2021-03-20 10:24:32 +10:00
Damien Elmes
ebd3bba91b fade out webview when pending updates; do some reviewer updates immediately
Issues that need fixing:
- when the editor saves the note with perform_op(), if it isn't modified,
no new undo entry is created, and perform_op then returns the changes
made by the previous operation instead
- the approach of fetching the last action in a subsequent backend
method is unsound, as another queued operation may sneak in first before
we have a chance to query the result - it would be better if it were
returned in a single atomic action
- redrawing the current card while editing is likely to make sound
autoplay annoyingly, and it has an unpleasant redraw. We may be better off
fading it out instead

Side note: the editor cursor moves to the start of the field when the
note is updated in another window - it might be nicer to have it move
the cursor to the end instead.
2021-03-19 19:45:21 +10:00
Henrik Giesel
f5bf50ed02 Fix bug with initially enabled toolbar in browser 2021-03-10 19:28:08 +01:00
Henrik Giesel
f56c510e86 Fix another import 2021-03-09 14:02:41 +01:00
Henrik Giesel
4424ae864b Fix reversed sticky icon logic 2021-03-09 13:44:06 +01:00
Henrik Giesel
1ae13b7217 Satisfy formatter 2021-03-09 13:43:11 +01:00
Henrik Giesel
df20381a9e Change to pin icon 2021-03-09 13:43:11 +01:00
Henrik Giesel
2ea0602347 Switch to bi-sticky icons, toggle opacity for state indiciation 2021-03-09 13:43:11 +01:00