anki/ts/components
Matthias Metelka 5f6ac1a916
Field redesign (#2002)
* Adjust size of legacy buttons

* Revert "Adjust size of legacy buttons"

This reverts commit fb888fe1db9050c34b1a7b0820e6da5ac91ccee6.

* Remove unused function from #1476

* Use outline version for tag icon

* Add chevron icons

* Remove code icons, keep one pin icon version

* Add code-bg color

* Redesign fields

* Remove unused import

* Fix imports

* Move PlainTextBadge between editing inputs

where it belongs :)

* Make whole separator line clickable

* Fix transition

and format

* Don't show toggle when field is collapsed

* Show toggle only on hover

for mobile I'd like to implement a swipe mechanism.

* Use tweened SVG for triangle instead of CSS hack

* Implement more obvious HTML toggle on bottom right

* Reduce field height by a few pixels

* Reduce field height by two pixels

* Show HTML toggle when PlainTextInput is active, regardless of hover/focus

* Remove RichTextBadge.svelte

* Create separate collapsed field state

this means users can collapse fields with the HTML editor open and it will stay open when the field is expanded again.

* Add slide out animation to EditingArea, RichTextInput and PlainTextInput

only for collapsing, because it is choppy on expansion (common issue with Svelte transitions).

* Fix aliasing issue on focused field corners

* Make StickyBadge feel more responsive

* Move StickyBadge closer to field border

* Adjust field gutter/margins

* Make LabelContainer sticky

to make field operations accessible on fields with a lot of content.

* Add back html icons, remove visual editor icons

* Revert "Add code-bg color"

This reverts commit 4200f354193710b3acd9bcf84b67958e200ddcdb.

* Add rich text icon, remove strikethrough code icon

* Revert PlainTextBadge to original position

* Adjust margins in FieldState

* Rename PlainTextBadge to SecondaryInputBadge

in preparation for #1987

* Run eslint and prettier

* Make whole LabelContainer clickable area for collapse/expand

* Revert "Add slide out animation to EditingArea, RichTextInput and PlainTextInput"

This reverts commit 9a2b3410d0ead37ae1da408d68e14507a058a613.

* Fix error on collapse/expansion

this was caused by the {#if} blocks, which resulted in the deletion of original EditingAreas.

* Refocus when toggling chevron and secondary input badge

* Revert "Revert "Add code-bg color""

This reverts commit 1cfd3bda65354ab90c1ab4cbbef47596a1be8754.

* Use single rotating chevron icon and make it RTL-compatible

* Remove redundant CSS transition rule

* Introduce animated Collapsible component and fix refocus on toggle

* Do not try to force repaint, as it is not required

* Remove RTL store from LabelContainer

the direction is already applied globally.

* Collapse secondary input with field

* Add focusedField to NoteEditorAPI

* Replace :global CSS selector with class .visible

thus removing the assumption that the component is used inside an EditorField.

https://github.com/ankitects/anki/pull/2002#discussion_r944876448

* Use named function syntax instead of function expressions

* Add explanation comment

* Remove unnecessary :bind directive

* Create CollapseBadge component

* Move :global selector into .plain-text-input

* Add comment explaining box-shadow pseudo-element

* Move Collapsible from EditingArea, PlainTextInput and RichTextInput into user components

* Rename SecondaryInputBadge to PlainTextBadge and remove generalization logic

I kept the rich text icon inside icons.ts for future use.

* Sort imports

* Fix background-color for duplicates not showing

with yet another pseudo-element :)

The pseudo-element that covers up field borders on scroll caused this issue. Fighting fire with fire here.

* Increase size of plain text toggle to original value again

This makes the clickable area a bit bigger and looks slightly more consistent with StickyBadge.

* Scrap pseudo-element mess in LabelContainer and tackle the actual issue

* Add class .visible to StickyBadge too

This introduces a peculiar bug: The active prop of StickyBadge resets to false when the mouse leaves the field - regardless of the actual back-end value.

* Fix sticky badge resetting on mouseleave/blur

* Apply overflow: hidden only during transition

fixes MathJax handle getting cut off by fields

* Remove unused variable

* Fix visual bug caused by overflow:hidden not applying in time

I tried several asynchronous approaches, but they all caused issues: either they prevented the CSS transition or they made field inputs lose focus.

In the end I resorted to direct, synchronous DOM-manipulation and added an explanatory comment.

* Decrease Collapsible load time by blocking first transition

I noticed the sliding animation has a hefty performance impact when a large number of fields is loaded simultaneously.

Blocking the first transition (which isn't even visible) results in a big boost in load time.

* Replace usages of gap with margins for children

* Revert unnecessary removal of grid-gap definition

* Correct comments about flex-gap property

mistook that for grid-gap.

* Resolve style issues

* Add minimum targets to gap comment

Co-authored-by: Henrik Giesel <hengiesel@gmail.com>
2022-08-19 10:02:28 +10:00
..
Absolute.svelte Translate Editor entirely to Svelte (#1403) 2021-10-18 22:01:15 +10:00
Badge.svelte Use eslint for sorting our imports (#1637) 2022-02-04 18:36:34 +10:00
BUILD.bazel Replace (some) Bootstrap dropdowns with Floating UI (#1695) 2022-03-02 14:21:19 +10:00
ButtonDropdown.svelte Use eslint for sorting our imports (#1637) 2022-02-04 18:36:34 +10:00
ButtonGroup.svelte Improved add-on extension API (#1626) 2022-02-03 14:52:11 +10:00
ButtonGroupItem.svelte Use eslint for sorting our imports (#1637) 2022-02-04 18:36:34 +10:00
ButtonToolbar.svelte Improved add-on extension API (#1626) 2022-02-03 14:52:11 +10:00
CheckBox.svelte Move all buttons to our custom inline surrounding (#1682) 2022-02-22 22:17:22 +10:00
Col.svelte Introduce our own Container, Row, and Col components (#1495) 2021-11-17 13:49:52 +10:00
Collapsible.svelte Field redesign (#2002) 2022-08-19 10:02:28 +10:00
Container.svelte Improved add-on extension API (#1626) 2022-02-03 14:52:11 +10:00
context-keys.ts Live theme changes (#1497) 2021-11-25 07:17:41 +10:00
dropdown.ts handle changed aria-expanded typing 2021-09-29 12:20:27 +10:00
DropdownDivider.svelte WIP: Use our components in deckoptions sticky bar 2021-05-18 16:32:29 +02:00
DropdownItem.svelte Move all buttons to our custom inline surrounding (#1682) 2022-02-22 22:17:22 +10:00
DropdownMenu.svelte Use eslint for sorting our imports (#1637) 2022-02-04 18:36:34 +10:00
DynamicallySlottable.svelte Use eslint for sorting our imports (#1637) 2022-02-04 18:36:34 +10:00
helpers.ts Use trailingComma: all setting in .prettierrc (#1435) 2021-10-19 09:06:00 +10:00
IconButton.svelte Use eslint for sorting our imports (#1637) 2022-02-04 18:36:34 +10:00
IconConstrain.svelte Translate Editor entirely to Svelte (#1403) 2021-10-18 22:01:15 +10:00
Item.svelte Improved add-on extension API (#1626) 2022-02-03 14:52:11 +10:00
LabelButton.svelte Use eslint for sorting our imports (#1637) 2022-02-04 18:36:34 +10:00
Popover.svelte Fix outstanding tag editor issues (#1717) 2022-03-11 15:48:49 +10:00
Row.svelte Improved add-on extension API (#1626) 2022-02-03 14:52:11 +10:00
SelectButton.svelte Use eslint for sorting our imports (#1637) 2022-02-04 18:36:34 +10:00
SelectOption.svelte Several CSS fixes - Editor Cleanup (#1470) 2021-10-31 08:29:22 +10:00
Shortcut.svelte Allow using keyup with registerShortcut (#1755) 2022-03-29 09:28:44 +10:00
Spacer.svelte Space out Sticky Bottom with Spacer component 2021-09-09 15:37:58 +02:00
StickyContainer.svelte Improved add-on extension API (#1626) 2022-02-03 14:52:11 +10:00
Switch.svelte Plaintext import/export (#1850) 2022-06-01 20:26:16 +10:00
tsconfig.json update to latest rules_nodejs & switch to ts_project 2021-10-01 12:52:53 +10:00
types.ts Introduce our own Container, Row, and Col components (#1495) 2021-11-17 13:49:52 +10:00
WithContext.svelte Use eslint for sorting our imports (#1637) 2022-02-04 18:36:34 +10:00
WithDropdown.svelte Use eslint for sorting our imports (#1637) 2022-02-04 18:36:34 +10:00
WithFloating.svelte Fix outstanding tag editor issues (#1717) 2022-03-11 15:48:49 +10:00
WithState.svelte Move all buttons to our custom inline surrounding (#1682) 2022-02-22 22:17:22 +10:00
WithTooltip.svelte Default input setting in fields dialog (#1987) 2022-08-18 12:30:18 +10:00