Commit Graph

762 Commits

Author SHA1 Message Date
Kevin Ansfield
192c983975 First pass at custom thumbnail upload for video card
refs https://github.com/TryGhost/Team/issues/1229

- adds uploader to setting panel
- currently replaces the single/auto-generated thumbnail image
2021-12-09 14:58:28 +00:00
Thibaut Patel
7e48fcd06d Fixed a visual bug in the cards using KoenigBasicHtmlInput
refs https://github.com/TryGhost/Team/issues/1245

- When pressing backspace on an empty `KoenigBasicHtmlInput` that don't use `p` as the default tag, an empty paragraph was created by e21bde39e1/lib/koenig-editor/addon/options/key-commands.js (L171-L176), messing with the style while in edit mode.
- This was fixed by normalizing the tag to be the `defaultTag` in the `didUpdatePost` hook
- Because of this new normalization, we could remove the same normalization from `handlePaste`
2021-12-09 14:08:17 +01:00
djordje vlaisavljevic
24eeaf68ff Updated the product card menu icon
refs https://github.com/TryGhost/Team/issues/1209
2021-12-09 10:18:19 +01:00
Rishabh
f37c0f91d4 Added metadata extraction for audio file in card
refs https://github.com/TryGhost/Team/issues/1230

- extracts audio duration and mimeType metadata for uploaded file
2021-12-09 13:12:45 +05:30
Rishabh
4df58bb022 Fixed thumbnail replace not working on drop for audio cards
refs https://github.com/TryGhost/Team/issues/1230
2021-12-09 00:08:43 +05:30
djordje vlaisavljevic
e9c2942de5 Updated editor styles and template for product card
refs https://github.com/TryGhost/Team/issues/1209
2021-12-08 19:33:55 +01:00
Sanne de Vries
049fe97e7e Updated video card
Refs https://github.com/TryGhost/Team/issues/1229
2021-12-08 17:29:22 +00:00
Thibaut Patel
16d242f763 Added image drag and drop to the product card
refs https://github.com/TryGhost/Team/issues/1245

- followed the pattern from the video card as the image card uses an older ember syntax
2021-12-08 18:28:42 +01:00
Thibaut Patel
b1d0c33c09 Added hover-over on product card stars in edit mode
refs https://github.com/TryGhost/Team/issues/1245

- Used onmouseover because a CSS-only approach wouldn't work
- CSS can only highligh next siblings on hover, while we want to highlight previous sibling in our case
- This adds a hover class on mouseover to the right stars and removes it onmouseout
2021-12-08 17:18:45 +01:00
Sanne de Vries
ed3b5e462f Updated audio card
Refs https://github.com/TryGhost/Team/issues/1230
2021-12-08 15:34:25 +00:00
Kevin Ansfield
9218c72b86 Added an additional blockquote style
refs https://github.com/TryGhost/Team/issues/1239

Repeatedly clicking the quote icon in the editor toolbar or using the <kbd>Ctrl+Q</kbd> keyboard shortcut will cycle through standard-blockquote -> alternative-blockquot -> standard paragraph.
2021-12-08 15:19:39 +00:00
Kevin Ansfield
e21bde39e1 Updated CTRL+Q blockquote keyboard shortcut to cycle through alt style
refs https://github.com/TryGhost/Team/issues/1239

- updates keyboard shortcut behavior to match the quote icon behavior where it cycles through blockquote->aside->p
2021-12-08 15:19:39 +00:00
Thibaut Patel
811ca6d08e Allow multiple paragraphs in the product card description
refs https://github.com/TryGhost/Team/issues/1245
2021-12-08 16:00:49 +01:00
Thibaut Patel
b157bf7c34 Added enter/tab support to the product card title field
refs https://github.com/TryGhost/Team/issues/1245

- Enables keyboard-only title+description input
2021-12-08 15:08:40 +01:00
Thibaut Patel
120deae9b1 Allowed line-breaks in product card description
refs https://github.com/TryGhost/Team/issues/1245
2021-12-08 14:42:00 +01:00
Thibaut Patel
b03f72c59e 🐛 Fixed pasting html into a KoenigBasicHtmlInput
refs https://github.com/TryGhost/Team/issues/1245

- Several inputs where dismissing the content when pasting HTML without the expected input tag
- The inputs where: the caption of the feature image; the email footer; the caption in the bookmark, code, embed, gallery, image, video cards; the callout card title; the product card header and description; the toggle header
- This makes sure the wrapper html tag is the expected one.

Co-authored-by:
- Kevin Ansfield (@kevinansfield)
2021-12-08 14:22:33 +01:00
djordje vlaisavljevic
50516e47d5 Updated editor template and styles for product card
refs https://github.com/TryGhost/Team/issues/1245
2021-12-08 13:55:18 +01:00
Rishabh
e2db69d265 Updated file name handling for audio card
refs https://github.com/TryGhost/Team/issues/1230

- adds a method to prettify filename from the audio file
- cleanup
2021-12-08 17:17:47 +05:30
Thibaut Patel
52530c2949 Updated the product card button in the editor
refs https://github.com/TryGhost/Team/issues/1245

- Disabled the button link to avoid leaving the editor
- Added disabled states when the button is incomplete
2021-12-08 12:07:46 +01:00
Thibaut Patel
3f16cec396 Fixed the image deletion action in the product card
refs https://github.com/TryGhost/Team/issues/1245

- The property `previewSrc` wasn't tracked so it wasn't updated when set to null
2021-12-08 11:29:53 +01:00
Thibaut Patel
6c81e9a182 Added the image placeholder for the product card
refs https://github.com/TryGhost/Team/issues/1245
2021-12-08 11:10:24 +01:00
Thibaut Patel
9a94dbe000 Enable the product card button when editing it
refs https://github.com/TryGhost/Team/issues/1245

- When editing the button text or url, the button is enabled
2021-12-08 10:36:24 +01:00
djordje vlaisavljevic
3b019b3b05 Updated editor template and styles for product card
refs https://github.com/TryGhost/Team/issues/1245
2021-12-07 22:34:15 +01:00
Rishabh
2b2edf48ef Refined audio card player UI in edit mode
refs https://github.com/TryGhost/Team/issues/1230

- updates player ui in audio card to use same html as theme
- removes setting panel for audio card
2021-12-08 00:44:58 +05:30
Kevin Ansfield
c29adfb441 🐛 Fixed pasted image files appearing twice in editor
closes https://github.com/TryGhost/Team/issues/1254

- when switching over to a more generic file paste handling the prevention of the default paste behaviour was missed meaning an additional image element was added to the contenteditable area which was not rendered on the front-end and disappeared when reloading the post
2021-12-07 18:08:00 +00:00
Kevin Ansfield
59ee50735a 🐛 Fixed initial paste of Twitter URL not triggering full script load
no issue

- pasted URLs that are converted into an embed card were triggering the `convertUrl` task twice, once on insertion and then again on the immediate deselection that happens whilst the caret is adjusted
- a change in browsers or in Twitter's script meant that the double-fetch and iframe population started to become unreliable with the script not triggering, or the iframe contents being replaced interfering with script timing, resulting in un-styled Twitter embeds immediately after pasting a URL
- added `.drop()` to the `convertUrl` task so the second deselection call is ignored whilst the first call is still in progress
2021-12-07 17:26:58 +00:00
djordje vlaisavljevic
40fad51d05 Updated editor template for product card
refs https://github.com/TryGhost/Team/issues/1245
2021-12-07 17:38:15 +01:00
Thibaut Patel
8e14a23fea Fixed the star rating in the product card
refs https://github.com/TryGhost/Team/issues/1245

- It wasn't hidden in the editor preview when disabled
2021-12-07 16:17:13 +01:00
djordje vlaisavljevic
9abe330714 Updated editor styles for product card
refs https://github.com/TryGhost/Team/issues/1245
2021-12-07 15:39:42 +01:00
djordje vlaisavljevic
1d1b1fe79a Added the menu icon for product card
refs https://github.com/TryGhost/Team/issues/1245
2021-12-07 15:39:42 +01:00
Thibaut Patel
636907f8f1 Removed duplicated star rating in product card
refs https://github.com/TryGhost/Team/issues/1245
2021-12-07 14:24:21 +01:00
Rishabh
3889163c8e Fixed caching of audio thumbnail when replaced
refs https://github.com/TryGhost/Team/issues/1230

- when updating a thumbnail for audio card, the thumbnail url doesn't change as its tied to the audio src. this can cause the old thumbnail to show in frontend due to browser caching
- this change adds a cache busting param at the end of url for each thumbnail upload, thus bypassing cache and showing the right thumbnail
2021-12-07 18:15:35 +05:30
djordje vlaisavljevic
9fd8ba431c Updated editor product card styles
refs https://github.com/TryGhost/Team/issues/1245
2021-12-07 13:14:37 +01:00
Thibaut Patel
cbf7e1a740 Fixed unsued variable
refs 53ed578140
2021-12-07 11:39:12 +01:00
djordje vlaisavljevic
d46a94f6ba Added a star icon
refs https://github.com/TryGhost/Team/issues/1245
2021-12-07 11:17:43 +01:00
Thibaut Patel
53ed578140 Updated the product card to allow rating and button toggles
refs https://github.com/TryGhost/Team/issues/1245
2021-12-07 10:40:28 +01:00
djordje vlaisavljevic
fc00dc1abc Updated editor product card styles
refs https://github.com/TryGhost/Team/issues/1245
2021-12-07 01:16:41 +01:00
Rishabh
a18b3ac369 Fixed thumbnail override bug for audio cards
refs https://github.com/TryGhost/Team/issues/1230

- replacing an existing thumbnail in audio card was broken and prevented updating thumbnails for audio file
2021-12-07 00:20:30 +05:30
Thibaut Patel
824d4f2f51 Updated the product card star rating
refs https://github.com/TryGhost/Team/issues/1245

- Moved away from using only checkboxes and css because we need to use SVGs to display the stars
- Made it simple to keep CSS to the minimum and enable flexibility
2021-12-06 16:53:04 +01:00
djordje vlaisavljevic
9c8cb742d3 Updated toggle editor styles
refs https://github.com/TryGhost/Team/issues/1209
2021-12-03 20:15:38 +01:00
djordje vlaisavljevic
3dd1a12e0c Changed placeholders for inputs
refs https://github.com/TryGhost/Team/issues/1209
2021-12-03 10:43:20 +01:00
Rishabh
c5d9e27a07 Cleaned tab/enter behavior for toggle heading
refs https://github.com/TryGhost/Team/issues/1209

- updates tab/enter behavior for toggle heading -> content to use editor keyboard commands instead of overriding html input component
2021-12-03 01:39:21 +05:30
Rishabh Garg
6c837599d1 Allowed tab switch for heading to content input in toggle card (#2165)
refs https://github.com/TryGhost/Team/issues/1209

- allows switching to content input from heading by pressing tab
2021-12-03 01:14:05 +05:30
Rishabh
628150fd32 Renamed accordion usages to toggle for toggle card
refs https://github.com/TryGhost/Team/issues/1209
2021-12-03 00:52:46 +05:30
Rishabh
a5b0f75486 Updated audio card edit mode to include audio element
refs https://github.com/TryGhost/Team/issues/1230
2021-12-03 00:26:58 +05:30
James Morris
6eff87bf9c Editor changes for multiple quotes 2021-12-02 12:53:07 +00:00
Sanne de Vries
9ad920e985 Updated media card descriptions in cardmenu 2021-12-01 15:00:59 +00:00
Sanne de Vries
9fcaae4475 Updated callout card class for consistency
No ref

- Swapped "kg-card-callout" for "kg-callout-card"
2021-12-01 14:23:47 +00:00
Sanne de Vries
48742a1b15 Updated audio card placeholder 2021-12-01 14:07:05 +00:00
Kevin Ansfield
a7cf374566 Added "Gifs" card to the editor
refs https://github.com/TryGhost/Team/issues/1225

When inserted opens a searchable gif selector, creating an image card when a gif is chosen.

Includes keyboard navigation once open:
- `Tab`/`Shift+Tab` cycles highlighted gif through search result order
- `Up` / `Down` / `Left` / `Right` moves highlight in the respective direction
- `Enter` inserts highlighted gif

For the gifs card to be activated it's necessary to add a Tenor API key (obtained freely from https://tenor.com/gifapi) via your config.production.json file:

```
  ...
  "tenor": {
    "publicReadOnlyApiKey": "YOUR_KEY"
  }
}
```
2021-12-01 12:19:10 +00:00
Kevin Ansfield
cbdf3bfa28 Added "Button" card to the editor
refs https://github.com/TryGhost/Team/issues/1210

The button card lets you add a center or left-aligned button-styled link to your posts.
2021-12-01 12:01:46 +00:00
Sanne de Vries
80148c64db Updated file card icon in cardmenu 2021-12-01 10:29:17 +00:00
Rishabh
e0eff4436c Updated audio card with basic upload behavior
refs https://github.com/TryGhost/Team/issues/1230

- adds thumbnail upload on audio card
- cleans up card design in edit mode
2021-12-01 14:34:40 +05:30
Peter Zimon
fecbbdd2e7 Updated button URL suggestion copy 2021-11-30 17:10:24 -04:00
Peter Zimon
0a700cd10a Gif browser UI refinements 2021-11-30 17:07:07 -04:00
Kevin Ansfield
927a977257 Fixed focus not fully returning to editor after pressing escape in caption input
no issue

- forced card deselection+reselection so that keys such as `Enter` and `Backspace` work as expected when the card is shown as selected
2021-11-30 18:06:17 +00:00
Kevin Ansfield
ba532aa815 Reverted insertion of blank paragraph when selecting unsplash/gif image
refs e419e4e99f

- the behaviour wasn't desirable in all cases, reverting to the previous behaviour of selecting the card after image selection
2021-11-30 18:02:58 +00:00
Kevin Ansfield
024b27c8dd Fixed error when pressing enter inside a caption
refs e419e4e99f

- added an optional options param to `addParagraphAfterCard` but was missing a default value meaning the destructuring errored when the param wasn't provided
2021-11-30 18:02:58 +00:00
Thibaut Patel
1dac565dbc Fixed the product card bold/italic rendering
refs https://github.com/TryGhost/Team/issues/1233

- The content is html so it shouldn't be escaped by handlebars
2021-11-30 18:04:44 +01:00
Thibaut Patel
fc208558dd Added a star-rating input for the product card
refs https://github.com/TryGhost/Team/issues/1245

- This is a proof-of-concept as there are so many ways to implement a star-rating component
- The component is only available when editing the product card
- Uses the unicode star character: ★
- The inspiration is an old article from Lea Verou: https://lea.verou.me/2011/08/accessible-star-rating-widget-with-pure-css/ (minus the clever use of :not(:checked) on something that's not an input to filter-out IE)
- There is currently no way to remove the star rating as it'll get designed this week
2021-11-30 18:02:44 +01:00
djordje vlaisavljevic
f07e5b8c9c Updated product card editor look for 🛹 refs https://github.com/TryGhost/Team/issues/1233 2021-11-30 17:32:02 +01:00
Sanne de Vries
b3e84bfbd8 Updated media card icons in cardmenu 2021-11-30 16:01:40 +00:00
Kevin Ansfield
691308c34e Fixed video card settings panel position when card width changes
closes https://github.com/TryGhost/Team/issues/1244

- moved the `<KoenigSettingsPanel>` usage outside of the `<KoenigCard>` contents so it gets positioned relative to the outer card container rather than the inner card container so it's not affected by the inner card changing width/breaking out of the outer container
2021-11-30 15:32:21 +00:00
Kevin Ansfield
e419e4e99f Added blank paragraph insertion when selecting unsplash/gif image
refs https://github.com/TryGhost/Team/issues/1225

- provides a more obvious continuation point after selecting an image
- added `scrollIntoView` option to `addParagraphAfterCard()` because for large images the cursor in the new paragraph could be pushed out of the visible area
2021-11-30 15:05:41 +00:00
Kevin Ansfield
8e66f6ead5 Fixed editor not having focus after selecting an unsplash/gif image
refs https://github.com/TryGhost/Team/issues/1225

After selecting an image you were left in a state where it looked like the image card is inserted and selected but pressing Cmd+Z, Delete, Enter, etc had no effect.

- added a manual deselect/reselect of the card to make sure it's properly selected and editor has focus
- added a scrollToCard call so the newly inserted card position feels more natural
2021-11-30 13:06:57 +00:00
Kevin Ansfield
9223d0237c Added scroll-into-view behavior when opening gif selector
refs https://github.com/TryGhost/Team/issues/1225

When the gif selector is activated we want to scroll as much of the picker into view as possible.

- updated `scroll-into-view` modifier so it can work on bounding rects as well as offsets for those situations where a scroll parent is not the offset parent
  - only implemented "off bottom" behavior for now as that's all we need for this use-case
  - if the scroll adjustment would mean the top is cut off we readjust so that the top of the element is always visible
2021-11-30 12:51:56 +00:00
Kevin Ansfield
79d9ea82d9 Changed tenor config API key name
refs https://github.com/TryGhost/Team/issues/1237#issuecomment-981770688

- API key names for external services now follow a standard pattern
  - top-level key of the service name
  - public/private and read/write perms inside the name, eg. `publicReadOnlyApiKey`
- updated test to match expected API key name
2021-11-30 11:29:16 +00:00
Kevin Ansfield
506d925462 Fixed syntax error
refs 5b90fe87ad

- closing bracket was accidentally deleted in final post-push cleanup
2021-11-30 10:59:37 +00:00
Kevin Ansfield
5b90fe87ad Adjusted keyboard nav in gif selector to reduce vertical scroll jumps
refs https://github.com/TryGhost/Team/issues/1225

- `TAB` / `SHIFT+TAB` now cycle through gifs in the search return order. It means the highlight gif will not always be in the next column over but it drastically reduces the vertical scroll jumping
- `LEFT` / `RIGHT` now select the gif to the left/right that visually lines up with the top third of the currently highlighted gif and will stop at the grid edges. The result is `UP` / `DOWN` / `LEFT` / `RIGHT` act more like spatial navigation with no unexpected scroll jumps
- switching to only storing the highlighted gif and relying on indexes added to each gif by the `tenor` service when assigning to columns means that column number changes when resizing the viewport are automatically handled
2021-11-30 10:52:47 +00:00
Rishabh
a45e345a95 Added basic version for audio card UI
refs https://github.com/TryGhost/Team/issues/1230

- adds basic audio card edit mode UI with upload functionality
2021-11-30 13:52:14 +05:30
Kevin Ansfield
fccfcc3320 Added scroll-into-view behavior for highlighted gifs
refs https://github.com/TryGhost/Team/issues/1225

- added `scroll-into-view` modifier that will scroll an element into view putting it at the top or bottom of the viewport depending on which direction scroll is required
- used the `scroll-into-view` modifier to scroll the highlighted gif into view
2021-11-29 19:33:35 +00:00
Kevin Ansfield
66e6502cd2 Added first iteration of gif selector keyboard navigation
refs https://github.com/TryGhost/Team/issues/1225

Behaviour:
- `TAB`
  - highlights first gif if pressed whist search has focus
  - moves highlight to right, wrapping to next row, stops at final gif
- `SHIFT+TAB`
  - moves highlight to the left, wrapping to previous row
  - focuses the search bar if pressed whilst first gif is highlighted
- `ENTER`
  - highlights first gif if pressed whilst search has focus
  - inserts the highlighted gif
- `UP`
  - moves highlight up through current column
  - focuses the search bar if pressed when gif in top row is highlighted
- `DOWN`
  - highlights first gif if pressed whilst search has focus
  - moves highlight down through current column, stops at final gif in column
- `LEFT`
  - moves highlight to the left, wrapping to previous row
  - focuses the search bar if pressed whilst first gif is highlighted
- `RIGHT`
  - moves highlight to the right, wrapping to next row, stops at final gif
2021-11-29 18:28:19 +00:00
Kevin Ansfield
aa9a9c9598 Removed unused tenor components from earlier iterations
refs https://github.com/TryGhost/Team/issues/1225

- iterations of earlier approaches (modal-image-selector, and kg-media-selector) for the gif selector were kept around whilst we narrowed down the interaction patterns, we've settled on the inline-image-selector pattern introduced in 3f3b66b668 meaning the others are no longer needed
2021-11-29 18:28:19 +00:00
Thibaut Patel
ad90ad0236 Updated the product card first version
refs https://github.com/TryGhost/Team/issues/1233

- added a way to remove the product image
2021-11-29 18:29:33 +01:00
Thibaut Patel
93dba3cb9a Updated the first version of the product card
refs https://github.com/TryGhost/Team/issues/1233

- Moved to in-line editing for the title/description
- Only the button is clickable. The button dissapears if the text/href isn't defined
- Added an image (the image can't be deleted for now)
2021-11-29 17:50:56 +01:00
Kevin Ansfield
09cae883a8 Added drag/drop and paste support for video files
refs https://github.com/TryGhost/Team/issues/1229

- generalized `insertImageCards()` to `insertCardsFromFiles()` and added support for video cards
- added `canInsertCardsFromFiles()` function so the editor can check before starting an editor run loop and generating an undo point
2021-11-29 13:38:31 +00:00
Kevin Ansfield
7e4a277163 Extracted insertImageCards function into utils file
no issue

- preparation for adding additional files->cards utility functions for video/audio/file cards
2021-11-29 13:13:07 +00:00
Kevin Ansfield
d3bd7e8767 Added mimeType to video metadata extraction
refs https://github.com/TryGhost/Team/issues/1229

- `mimeType` was specified in the payload but it had been missed when extracting/setting the video metadata
2021-11-29 13:09:39 +00:00
Kevin Ansfield
3231abd0ae Added beginnings of the video card
refs https://github.com/TryGhost/Team/issues/1229

- mostly mirrors image card functionality but rebuilt with more modern syntax
- when uploading a video the size and duration is extracted along with a screen capture of the video from 0.5s in, the screen capture is uploaded once the video finishes because we need to use the uploaded video url as a reference to attach it as a thumbnail via the API
- the captured screenshot is currently what's shown in the card

To be implemented:
- "incomplete" state when video has been uploaded but not a thumbnail
- uploader in settings panel to change the video thumbnail
- play button overlay _or_ switch to `<video>` so it can be previewed
2021-11-29 09:28:10 +00:00
Kevin Ansfield
30b9718359 Added insertOnSpace attribute to card definitions
refs https://github.com/TryGhost/Team/issues/1225

- if set, typing `/card-name<space>` will instantly insert the card. Useful for cards that will trigger a media browser or similar where continuing to type will search with card-specific autocomplete
2021-11-25 16:13:55 +00:00
Kevin Ansfield
91191fea48 Added toggling between blockquote/aside/p via quote toolbar button
refs https://github.com/TryGhost/Team/issues/1239

- added new action for toggling quote sections that will loop through blockquote/aside/p when clicked
- copied `kg-quote.svg` to `kg-quote-2.svg` ready for alternate icon designs
2021-11-25 10:22:44 +00:00
Kevin Ansfield
7ff73753c8 🐛 Fixed /unsplash search term not including all words
no issue

- card definitions allow multiple params split by spaces in /menu commands but that meant for search terms that included spaces only the first word was being captured
- updated the param handling so the last param specified includes all remaining words in the slash command
2021-11-24 22:41:18 +00:00
Kevin Ansfield
0f517ad4e6 Added scroll-into-view behaviour for inline image selector
refs https://github.com/TryGhost/Team/issues/1225

- added `scrollToCard` action to `koenig-editor` and passed it through to all card components curried to already include the card as an argument
  - action selects the card which places the cursor on it, then triggers our existing cursor scroll-into-view behaviour with an option to allow scrolling a card into view
- updated our cursor scroll-into-view behaviour so if the cursor is large (eg, when it covers a card's height) we make sure the top of the cursor is kept in view rather than the bottom
  - ensures that on small-height screens, opening the gif selector doesn't result in it's search bar being scrolled off screen
2021-11-24 20:02:10 +00:00
Kevin Ansfield
5116c86557 Fixed error when cleaning up empty image card
refs https://github.com/TryGhost/Team/issues/1225

- deleting an empty image card in the initial cleanup phase triggers the `onDeselect` action in the card but at that point the card's section no longer exists in the editor post model which was causing errors when attempting to replace it's section with an empty paragraph
2021-11-24 19:55:40 +00:00
Kevin Ansfield
c1cae814e2 Fixed hover outline on inline image selector
refs https://github.com/TryGhost/Team/issues/1225

- static outline was removed but we were still showing an outline when hovered
- added `media-card-placeholder` kg-style case that is the same as `media-card` but without the `kg-card-hover` class
2021-11-24 19:30:20 +00:00
Kevin Ansfield
bfa90a3b2b Removed selected-card outline from inline gif selector
refs https://github.com/TryGhost/Team/issues/1225

- when we're showing a placeholder style image selector we shouldn't show the extra green border around the browser, they should have their own borders and not look exactly like a card
2021-11-24 18:51:46 +00:00
Kevin Ansfield
dbf242a149 Fixed gif selection through inline gif selector
refs https://github.com/TryGhost/Team/issues/1225

- updated `selector-tenor` component to use the correct passed-in action
- fixed focus moving to top of the editor after selecting a gif or unsplash image
2021-11-24 18:48:49 +00:00
Kevin Ansfield
8996bf62a2 Fixed linting error 2021-11-24 16:20:09 +00:00
Kevin Ansfield
3f3b66b668 Added image card placeholder-style image selector and switched gifs card
refs https://github.com/TryGhost/Team/issues/1225

- the `imageSelector` options in the image card have been expanded to have both a `component` and a `type` property. If the `type` is set to "placeholder" the related image selector component will be rendered in place of the default upload placeholder
  - updated `isEmpty()` so the card is always cleaned up if no src has been selected - prevents image selectors popping up when opening a post if it was saved whilst the image selector was open
  - updated close-selector behaviour to exit back to a blank paragraph so a different image embed type can be selected easily instead of leaving an image card that you then have to delete, create a new paragraph, and choose the embed type
- added `koenig-image-card/selector-tenor` child component
  - the same as `koenig-media-selector-tenor` except with the "Escape" key handling added
  - added as a separate component for now to allow for easy switching until we're settled on the selector type we want
2021-11-24 16:17:02 +00:00
Kevin Ansfield
67a10184dc Added scroll-into-view when opening media selector
refs https://github.com/TryGhost/Team/issues/1225

- when opening the media selector and the bottom is cut off, scroll the whole selector into view so it's bottom is 20px away from the viewport bottom
- if the adjusted scroll would hide the top of the selector, make sure the top is 20px from the viewport top leaving the bottom cut off
2021-11-23 16:35:44 +00:00
Peter Zimon
591d5442e5 GIF browser refinements 2021-11-23 16:03:53 +01:00
Kevin Ansfield
d510883be5 Fixed scroll jump when media selector opens
refs https://github.com/TryGhost/Team/issues/1225

- if there's not enough space at the end of the editor canvas to fit the selector the browser adds extra space and pushes the scroll up making things feel janky
- added a scroll position reset as soon as the selector renders so nothing jumps around, the canvas just extends so it's possible to scroll the full selector into view
2021-11-23 09:20:30 +00:00
Kevin Ansfield
516ad8297a Added media selector pattern to editor and used it for gifs
refs https://github.com/TryGhost/Team/issues/1225

Re-using the existing pattern of creating an image card and having it launch an image selector was proving to have a lot of edge cases when we wanted a more streamlined in-line image selector for gifs.

- added a new `'selector'` type to card definitions
  - requires a `selectorComponent` argument that is the name of a component that renders the media and handles search
  - updated card components to open the selector component when respective menu item is activated
  - updated slash menu to instantly trigger the selector component when the slash command matches a card and is followed by a space so that searches continue inside the selector
- added `<KoenigMediaSelector>` component that wraps the card-definition provided component and handles escape key, clicks outside of the editor, and provides a stripped down API to the child component for selecting/closing
- added `<KoenigMediaSelectorTenor>` which mostly replicates the `<GhTenor>` component but has different styling and uses the provided media selector API
2021-11-23 09:20:30 +00:00
Kevin Ansfield
ddc799cdc1 Fixed selecting emoji in callout card deselecting card
no issue

emoji-button uses focus-trap (https://www.npmjs.com/package/focus-trap) to gain/keep focus and allow clicks on the background to close the picker. Unfortunately when deactivating the focus-trap it attempts to return focus but it ends up putting the cursor back at the beginning of the post, deselecting the card and causing scroll jump.

- changed the `<div>` we were using as a button to trigger the emoji picker to `<button>` so that it's focusable meaning `focus-trap` returns focus there when the picker closes keeping focus inside the card
2021-11-23 00:30:21 +00:00
Thibaut Patel
0285f02fb6 Added first pass of product card
refs https://github.com/TryGhost/Team/issues/1233

- adds card that contains a a title, description wrapped in a link
- this hasn't been designed yet so I didn't add any css
2021-11-22 12:38:46 +01:00
Peter Zimon
59e1fc5b6d Fixed copy for GIF card menu 2021-11-19 17:33:25 +01:00
Rishabh
0f460a646b Fixed lint 2021-11-19 19:41:02 +05:30
Rishabh
3b49732cbb Added first pass of upload cards
refs https://github.com/TryGhost/Team/issues/1229
refs https://github.com/TryGhost/Team/issues/1230
refs https://github.com/TryGhost/Team/issues/1231
2021-11-19 19:34:17 +05:30
Kevin Ansfield
c35cdae491 Fixed callout card emoji picker clicks exiting card's edit mode
refs https://github.com/TryGhost/Team/issues/1206

Clicking inside the emoji picker was causing focus to be lost which then deselected the card causing an annoying jump between rendered/edit mode whilst working on the card's content. A secondary issue was the picker sticking around after you intentionally clicked elsewhere in the document to leave edit mode.

- before initiating the emoji-button instance, create a container that's appended at the bottom of the document body and that prevents any click events on elements inside the container from bubbling up and causing focus changes. Updated the emoji-button instance to render the picker inside that container
- added a call to hide the picker any time the card leaves edit mode
2021-11-19 12:16:08 +00:00
Kevin Ansfield
34e34618c3 Added soft-break support to callout card editor
refs https://github.com/TryGhost/Team/issues/1206

- added `@allowBr` argument to `<KoenigBasicHtmlInput>` and used it in the callout card
  - when enabled, adds `soft-break` atom and parser, enables `<br>` support in `cleanBasicHtml()`
2021-11-19 10:10:23 +00:00