Commit graph

708 commits

Author SHA1 Message Date
Henrik Giesel
8a6067958f Reimplement tagjoin with tick() 2021-09-09 15:37:38 +02:00
Henrik Giesel
766270a7bf Start implemention tagmove 2021-09-09 15:37:38 +02:00
Henrik Giesel
a8b002acee Set caret correctly after tagjoin 2021-09-09 15:37:38 +02:00
Henrik Giesel
e6bd66b894 Show Autocomplete on keydown, hide on blur 2021-09-09 15:37:38 +02:00
Henrik Giesel
2629afe6b0 Adjust padding of TagInput a little 2021-09-09 15:37:37 +02:00
Henrik Giesel
a0c44f55db Fix some WithDropdownMenu logic 2021-09-09 15:37:37 +02:00
Henrik Giesel
e368cf09a8 Factor out ButtonToolbar from TagAutocomplete 2021-09-09 15:37:37 +02:00
Henrik Giesel
0d394814e7 Decouple TagInput from TagAutocomplete completely 2021-09-09 15:37:37 +02:00
Henrik Giesel
7b6f49577a Add tabbable option to DropdownItem 2021-09-09 15:37:37 +02:00
Henrik Giesel
68509995d5 Make tags stand less out in dark mode 2021-09-09 15:37:36 +02:00
Henrik Giesel
178062fc2d Make styling of DropdownMenu easier by introducing dropdown-content 2021-09-09 15:37:36 +02:00
Henrik Giesel
e287b396f9 Decouple Autocomplete from TagInput:
Allows to only have one autocompletion for all tags, rather than every
tag having its own
2021-09-09 15:37:36 +02:00
Henrik Giesel
59ef4259f5 Remove dead code from TagAutocomplete 2021-09-09 15:37:36 +02:00
Henrik Giesel
b778653851 Implement tagjoin events 2021-09-09 15:37:36 +02:00
Henrik Giesel
bbb4084f03 Delete tag when update reveals its a duplicate 2021-09-09 15:37:35 +02:00
Henrik Giesel
9706b1e15c Enable keyed blocks in TagEditor for tags 2021-09-09 15:37:35 +02:00
Henrik Giesel
0fcead4843 Rewrite paste behavior 2021-09-09 15:37:35 +02:00
Henrik Giesel
a4f52f82d8 Delete when updating tagname to empty text 2021-09-09 15:37:35 +02:00
Henrik Giesel
3869db8c86 Connect Bootstrap dropdown with trigger via classes/props 2021-09-09 15:37:34 +02:00
Henrik Giesel
6e563ddf49 Use our DropdownMenu component for TagAutocomplete 2021-09-09 15:37:34 +02:00
Henrik Giesel
3d594c1883 Allow correctly adding tags
+ Make taginput unfocusable via Tab => prefer Ctrl+Shift+T
2021-09-09 15:37:34 +02:00
Henrik Giesel
2a30eccfa4 Make caret cursor more discoverable 2021-09-09 15:37:34 +02:00
Henrik Giesel
eff5df2c69 Remove TagInputEdit and TagInputNew 2021-09-09 15:37:34 +02:00
Henrik Giesel
d89a6af45f Port Focus tags shortcut to webview 2021-09-09 15:37:34 +02:00
Henrik Giesel
f047441c18 Behave correctly upon Enter on TagInputEdit 2021-09-09 15:37:34 +02:00
Henrik Giesel
cecbafcec8 Create AddTagBadge component 2021-09-09 15:37:33 +02:00
Henrik Giesel
2b9e32fb08 Make Tag icon an add tag icon 2021-09-09 15:37:33 +02:00
Henrik Giesel
bcd6e037f2 Adjust offsets and sizes to make tag input smaller 2021-09-09 15:37:33 +02:00
Henrik Giesel
4aaba0875f Enable tag delete icon 2021-09-09 15:37:33 +02:00
Henrik Giesel
016d815ee1 Port most components from first tageditor PR 2021-09-09 15:37:33 +02:00
Henrik Giesel
7f6e7235f1 Display a tag-outline icon in the bottom left 2021-09-09 15:37:33 +02:00
Henrik Giesel
9919cf2b47 Add Tag DeleteIcon 2021-09-09 15:37:33 +02:00
Henrik Giesel
8b92ba7fa4 Add Tag.svelte 2021-09-09 15:37:33 +02:00
Henrik Giesel
37fdefaf40 Mount TagEditor 2021-09-09 15:37:33 +02:00
Henrik Giesel
6b633fc275 However bubble up when clicking on label container itself 2021-09-07 15:02:59 +02:00
Henrik Giesel
828cf80f68 Put sticky tooltip on icon, not label container 2021-09-07 14:33:15 +02:00
Henrik Giesel
26e9fa1c01 Prevent sticky bubbling and saveField before toggling sticky 2021-09-07 14:33:05 +02:00
Henrik Giesel
90dc1a0b40 Fix Float buttons in rtl 2021-09-06 21:15:37 +10:00
Henrik Giesel
803bf1b9d4 Fix ButtonDropdown disappearing when mouseupping on HandleBackground 2021-09-06 21:15:37 +10:00
Henrik Giesel
912fb0d94d Fix Tab not moving caret to end 2021-09-06 21:15:37 +10:00
Henrik Giesel
57eb988068 Make clicking on labelcontainer move focus to field 2021-09-06 21:15:37 +10:00
Henrik Giesel
997e28384d Decrease margin of the pin icon on the right 2021-09-06 21:15:37 +10:00
Henrik Giesel
b7ca721a2c Have a uniform border-radius for buttons and fields 2021-09-06 21:15:37 +10:00
Henrik Giesel
212fd00405 Add a dashed border around pictures when image-editing 2021-09-06 21:15:37 +10:00
Henrik Giesel
63bc3f823b Make focus highlight artificial and based on :focus-within 2021-09-06 21:15:37 +10:00
Henrik Giesel
b40f7ef262 Remove comma 2021-09-06 21:15:37 +10:00
Henrik Giesel
214b674cad Prevent overflow of sizeDimensions or image handle buttons 2021-09-06 21:15:37 +10:00
Henrik Giesel
abf0eb1c16 Fix automatic positioning of ButtonDropdown after changing float property 2021-09-06 21:15:37 +10:00
Henrik Giesel
620f9cb765 Introduce WithImageConstrained 2021-09-06 21:15:37 +10:00
Henrik Giesel
732886ea7e Parameterize overlay handle offsets 2021-09-06 21:15:37 +10:00
Henrik Giesel
02413acd88 Move more logic into HandleSelection 2021-09-06 21:15:37 +10:00
Henrik Giesel
b7d2791e92 Remove unused import tick 2021-09-06 21:15:37 +10:00
Henrik Giesel
ce8abfb1d0 Implement HandleLabel 2021-09-06 21:15:37 +10:00
Henrik Giesel
e59d02178c Implement HandleBackground 2021-09-06 21:15:37 +10:00
Henrik Giesel
384bb70fd5 Remove unused nightMode from ImageHandle 2021-09-06 21:15:37 +10:00
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
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
Henrik Giesel
1f34b666b9 Uniformly shorten SCSS imports/uses 2021-09-02 23:37:17 +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
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
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
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
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
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
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
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
28e2f62793 Remove protobuf important from reiewer (no longer necessary (?)) 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
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
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
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
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
Henrik Giesel
e5709ec90c Adapt use of createDropdown for editor buttons 2021-06-22 17:31:06 +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
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
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
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
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
33cecaa618 use different toolbar size on Mac
see discussion on 8c8bf26488
2021-06-05 11:28:36 +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
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
794f9db637 Add new color icons 2021-05-30 20:09:09 +02: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
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
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
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
Matthias M
afd6e47799 Merge branch 'ankitects:main' into main 2021-05-24 10:59:02 +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
6cefa0f1bf Remove transition from .linkb to fix blinking 2021-05-23 15:55:22 +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
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
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
abf1418695 Switch to keyboard shortcuts based on event.key 2021-05-20 18:28:59 +02: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
991695b7f6 use standard toolbar colors for legacy items 2021-05-19 19:58:12 +10:00
Damien Elmes
390379ed62 disable svelte-check on Windows for now 2021-05-19 11:45:02 +10: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
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
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
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
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
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
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
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
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
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
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
0abcb86007 Use registerShortcut in inputHandlers + Avoid focus on color picker 2021-04-22 15:09:09 +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
Henrik Giesel
ffb0fd67e5 Add editing fluent strings without attached keyboard shortcuts 2021-04-22 13:38:37 +02:00
Henrik Giesel
3cbddf3e8c Move up cloze id 2021-04-22 03:37:01 +02:00
Henrik Giesel
7ab5f736df Move other buttons to WithShortcut 2021-04-22 03:25:31 +02:00
Henrik Giesel
b0ddae0f6c Add first shortcuts for bold, italic, underline, removeFormat 2021-04-22 02:37:04 +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
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
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
a0de8bef55 Switch from core to base CSS for editor view 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
ef9eb38d26 Utilize enableButtons disableButtons from Svelte component 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
e175c9348e First implementation 2021-04-15 13:09:48 +02: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
Henrik Giesel
fb26361274 Create explicit dependencies for the congrats,editor,graphs scss files 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
Damien Elmes
1f475a1709 add missing copyright headers to *.ts 2021-04-13 18:57:08 +10:00
Damien Elmes
fb1111623f update to latest esbuild 2021-04-07 14:54:40 +10: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
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
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
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
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
Henrik Giesel
e72b5d6e14 Switch back to pin icons, use fill/unfilled versions 2021-03-09 13:43:11 +01:00
Henrik Giesel
df562c7c4c Place sticky icons at the far right end of the labelContainer 2021-03-09 13:43:11 +01:00
Henrik Giesel
3a8fad5dc5 Make sure topleft buttons are rounded too, prefer Bootstrap's rounded class 2021-03-09 13:43:11 +01:00
Henrik Giesel
59c69bd8dd Replace pin icon with lock icon
Credit goes out to @kleinerpirat
2021-03-09 13:43:11 +01:00
Henrik Giesel
f98ba1e412 Remove button highlight on disabling button (i.e. blur) 2021-03-09 13:43:09 +01:00
Henrik Giesel
5bba8cbfd9 Remove "true" return value from event handler
* this does not change any semantics
2021-03-09 13:41:39 +01:00
Henrik Giesel
e94fbdbc38 Separate index.ts into editable/editingArea/editorField/labelContainer.ts 2021-03-09 13:40:47 +01:00
Henrik Giesel
3f96290214 Connect icons to sticky fields values 2021-03-09 13:37:56 +01:00
Henrik Giesel
07e3812072 Add visual elements for pinned fields 2021-03-09 13:37:56 +01:00
Henrik Giesel
6f05c6eb85 Change font-size in topbar buttons
Bootstrap sets font-size to inherit, so it's not inherited from top.
Before, it defaulted to 13, so this should prevent add-ons, which
feature text in their buttons (like <select> buttons).
2021-03-09 13:37:56 +01:00
Henrik Giesel
adfe645966 Fix positioning of buttons 2021-03-09 13:37:56 +01:00
Henrik Giesel
a9ded7cc3c Fix highlight for topright buttons 2021-03-09 13:37:56 +01:00
Henrik Giesel
261b93ea36 Remove field margins
* Bootstrap solves it more elegantly with line-height
* body { margin: 0 } is also defined by bootstrap
2021-03-09 13:37:56 +01:00
Henrik Giesel
dbcf0ffee1 Include bootstrap in editor 2021-03-09 13:37:56 +01:00
Damien Elmes
26a4e7b355 Merge pull request #1062 from abdnh/strip-html-comments
Strip HTML comments from external pastes
2021-03-09 11:55:59 +10:00
Damien Elmes
94795b9392 Merge pull request #1060 from hgiesel/focusplus
Fix focus handling by moving caretToEnd logic
2021-03-09 11:53:09 +10:00
abdo
45b4be4dd3 Strip HTML comments from external pastes
Fix a regression caused by 2efc2030f6
2021-03-09 03:15:08 +03:00
Henrik Giesel
b4a2f9930b Satisfy formatter 2021-03-08 20:55:04 +01:00
Henrik Giesel
4dd565065f Move caretToEnd logic out of focus handling 2021-03-08 20:40:23 +01:00
Henrik Giesel
eff90085ea Improve focus handling
* Ported from #1046:

* disabling buttons will clear button highlight
* enabling button will set button highlight
* move caret to end executed before enabling buttons (so button highlight will be for actual position of caret)
* move caret to end will also be executed if previousActiveElement is null, which will only be the case before the first onBlur was executed:
  * so that caret will be moved to end on opening editor
2021-03-08 14:20:06 +01:00
abdo
5af6a63e20 Fix editor RTL check 2021-03-07 18:12:42 +03:00
Henrik Giesel
41c3c3ecf3 Do not execute caretToEnd when Alt-tabbing back to application 2021-03-06 17:57:04 +01:00
Henrik Giesel
e87d951a74 Fix focus handling when coming from top left buttons 2021-03-01 12:28:45 +01:00
Damien Elmes
7c03d184de Merge pull request #1038 from hgiesel/imgmaxwidth
Fix scrollbar issue in anki-editable component in two ways
2021-02-24 10:16:12 +10:00
Henrik Giesel
e2bda7273e Fix scrollbar issue in anki-editable component in two ways
- using :host-context(.nightMode) allows for applying the nightmode
  scroll bar inside the component
- apply max-width: 100% to all element within editable, not just images
2021-02-23 15:52:20 +01:00
Henrik Giesel
561dbbb718 Satisfy formatter 2021-02-23 13:34:41 +01:00
Henrik Giesel
eed8fb06c6 Remove logic for pulling editor field in view 2021-02-23 12:55:04 +01:00
Henrik Giesel
7c31e7f09d Increase the padding in the editable to 6px 2021-02-16 18:40:58 +01:00
Henrik Giesel
70e09bf70a Add max-width: 100% to editable.scss 2021-02-16 18:28:40 +01:00
Damien Elmes
51ea2a14e8 add missing license headers 2021-02-09 13:38:04 +10:00
Henrik Giesel
c521ac1e94 Rework focusing code to fix two issues:
1. Clicking away from the editor window, and back on it should not focus old field
2. Clicking on a field, which is not fully visible, should scroll it into view
2021-02-09 01:09:16 +01:00
Henrik Giesel
f72bcc679d Use mouseup intead of click for updateButtonState 2021-02-08 22:18:06 +01:00
Henrik Giesel
572aae1ae8 Refactor wrap code 2021-02-08 22:13:49 +01:00
Henrik Giesel
94ca6c0ffe Give toolbar items a bottom margin to separate the rows when they wrap 2021-02-08 21:26:37 +01:00
Henrik Giesel
22e098f5c9 Put wrapping code into its own file 2021-02-08 21:02:46 +01:00
Henrik Giesel
c721e2fa2f updateButtonState on clicking editor field 2021-02-08 20:49:33 +01:00
Henrik Giesel
de3b120031 Export saveNow 2021-02-08 20:28:02 +01:00
Henrik Giesel
3c9f3e7baa Split up index.ts into several more files
This is to provide minimal closures for the mutable file-local variables:
- changeTimer
- previousActiveElement
- currentNoteId

This makes it clear, that they should not be used, but rather the
functions which wrap them in an API
2021-02-08 19:48:42 +01:00
Henrik Giesel
3287f61b75 Avoid making currentField a global 2021-02-08 17:00:27 +01:00
Henrik Giesel
d509bf6d3c Export current field for editor 2021-02-08 15:44:56 +01:00
Henrik Giesel
c554d4ac28 Remove usage of window.event in onPaste 2021-02-05 13:42:49 +01:00
Henrik Giesel
e9f8ba14f9 Remove dead code kept for compatibility 2021-02-05 13:41:35 +01:00
Henrik Giesel
72259ed629 Export getEditorField and forEditorField 2021-01-31 20:56:28 +01:00
Henrik Giesel
8699c25bc5 Turn off eslint check for now 2021-01-31 20:55:36 +01:00
Henrik Giesel
9f3403d704 Move editor css to editor directory 2021-01-31 19:03:40 +01:00
Henrik Giesel
978258067b Move editor to /ts/editor 2021-01-31 14:15:03 +01:00