@quadrats/react 0.7.7 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/accordion/accordion.css +1 -0
- package/accordion/accordion.scss +81 -0
- package/accordion/components/Accordion.d.ts +9 -0
- package/accordion/components/Accordion.js +22 -0
- package/accordion/components/AccordionContent.d.ts +8 -0
- package/accordion/components/AccordionContent.js +24 -0
- package/accordion/components/AccordionTitle.d.ts +8 -0
- package/accordion/components/AccordionTitle.js +20 -0
- package/accordion/contexts/AccordionContext.d.ts +2 -0
- package/accordion/contexts/AccordionContext.js +5 -0
- package/accordion/createReactAccordion.d.ts +4 -0
- package/accordion/createReactAccordion.js +144 -0
- package/accordion/defaultRenderAccordionElements.d.ts +2 -0
- package/accordion/defaultRenderAccordionElements.js +12 -0
- package/accordion/hooks/useAccordion.d.ts +1 -0
- package/accordion/hooks/useAccordion.js +8 -0
- package/accordion/index.cjs.js +212 -0
- package/accordion/index.d.ts +8 -0
- package/accordion/index.js +10 -0
- package/accordion/jsx-serializer/createJsxSerializeAccordion.d.ts +5 -0
- package/accordion/jsx-serializer/createJsxSerializeAccordion.js +48 -0
- package/accordion/jsx-serializer/defaultRenderAccordionElements.d.ts +2 -0
- package/accordion/jsx-serializer/defaultRenderAccordionElements.js +16 -0
- package/accordion/jsx-serializer/index.cjs.js +64 -0
- package/accordion/jsx-serializer/index.d.ts +3 -0
- package/accordion/jsx-serializer/index.js +2 -0
- package/accordion/jsx-serializer/package.json +7 -0
- package/accordion/jsx-serializer/typings.d.ts +4 -0
- package/accordion/package.json +10 -0
- package/accordion/toolbar/AccordionToolbarIcon.d.ts +8 -0
- package/accordion/toolbar/AccordionToolbarIcon.js +12 -0
- package/accordion/toolbar/index.cjs.js +22 -0
- package/accordion/toolbar/index.d.ts +2 -0
- package/accordion/toolbar/index.js +2 -0
- package/accordion/toolbar/package.json +7 -0
- package/accordion/toolbar/useAccordionTool.d.ts +4 -0
- package/accordion/toolbar/useAccordionTool.js +10 -0
- package/accordion/typings.d.ts +25 -0
- package/align/constants.d.ts +8 -0
- package/align/constants.js +10 -0
- package/align/createReactAlign.d.ts +2 -0
- package/align/createReactAlign.js +26 -0
- package/align/index.cjs.js +39 -0
- package/align/index.d.ts +3 -0
- package/align/index.js +2 -0
- package/align/package.json +7 -0
- package/align/toolbar/AlignToolbarIcon.d.ts +10 -0
- package/align/toolbar/AlignToolbarIcon.js +12 -0
- package/align/toolbar/index.cjs.js +30 -0
- package/align/toolbar/index.d.ts +2 -0
- package/align/toolbar/index.js +2 -0
- package/align/toolbar/package.json +7 -0
- package/align/toolbar/useAlignTool.d.ts +6 -0
- package/align/toolbar/useAlignTool.js +18 -0
- package/align/typings.d.ts +17 -0
- package/blockquote/blockquote.css +1 -0
- package/blockquote/blockquote.scss +23 -0
- package/blockquote/defaultRenderBlockquoteElement.js +3 -1
- package/blockquote/index.cjs.js +3 -1
- package/blockquote/package.json +4 -1
- package/card/card.css +1 -0
- package/card/card.scss +243 -0
- package/card/components/Card.d.ts +15 -0
- package/card/components/Card.js +101 -0
- package/card/components/CardContents.d.ts +9 -0
- package/card/components/CardContents.js +18 -0
- package/card/components/CardImage.d.ts +9 -0
- package/card/components/CardImage.js +13 -0
- package/card/components/CardPlaceholder.d.ts +4 -0
- package/card/components/CardPlaceholder.js +21 -0
- package/card/createReactCard.d.ts +4 -0
- package/card/createReactCard.js +82 -0
- package/card/defaultRenderCardElements.d.ts +3 -0
- package/card/defaultRenderCardElements.js +14 -0
- package/card/index.cjs.js +234 -0
- package/card/index.d.ts +7 -0
- package/card/index.js +6 -0
- package/card/jsx-serializer/createJsxSerializeCard.d.ts +5 -0
- package/card/jsx-serializer/createJsxSerializeCard.js +48 -0
- package/card/jsx-serializer/defaultRenderCardElements.d.ts +2 -0
- package/card/jsx-serializer/defaultRenderCardElements.js +10 -0
- package/card/jsx-serializer/index.cjs.js +58 -0
- package/card/jsx-serializer/index.d.ts +3 -0
- package/card/jsx-serializer/index.js +2 -0
- package/card/jsx-serializer/package.json +7 -0
- package/card/jsx-serializer/typings.d.ts +9 -0
- package/card/package.json +10 -0
- package/card/toolbar/CardToolbarIcon.d.ts +8 -0
- package/card/toolbar/CardToolbarIcon.js +12 -0
- package/card/toolbar/index.cjs.js +66 -0
- package/card/toolbar/index.d.ts +2 -0
- package/card/toolbar/index.js +2 -0
- package/card/toolbar/package.json +7 -0
- package/card/toolbar/useCardTool.d.ts +4 -0
- package/card/toolbar/useCardTool.js +55 -0
- package/card/typings.d.ts +24 -0
- package/carousel/carousel.css +1 -0
- package/carousel/carousel.scss +356 -0
- package/carousel/components/Carousel.d.ts +15 -0
- package/carousel/components/Carousel.js +62 -0
- package/carousel/components/CarouselCaption.d.ts +9 -0
- package/carousel/components/CarouselCaption.js +12 -0
- package/carousel/components/CarouselImages.d.ts +9 -0
- package/carousel/components/CarouselImages.js +52 -0
- package/carousel/components/CarouselPlaceholder.d.ts +4 -0
- package/carousel/components/CarouselPlaceholder.js +17 -0
- package/carousel/contexts/CarouselContext.d.ts +2 -0
- package/carousel/contexts/CarouselContext.js +5 -0
- package/carousel/createReactCarousel.d.ts +4 -0
- package/carousel/createReactCarousel.js +82 -0
- package/carousel/defaultRenderCarouselElements.d.ts +3 -0
- package/carousel/defaultRenderCarouselElements.js +14 -0
- package/carousel/hooks/useCarousel.d.ts +1 -0
- package/carousel/hooks/useCarousel.js +8 -0
- package/carousel/index.cjs.js +232 -0
- package/carousel/index.d.ts +9 -0
- package/carousel/index.js +8 -0
- package/carousel/jsx-serializer/createJsxSerializeCarousel.d.ts +5 -0
- package/carousel/jsx-serializer/createJsxSerializeCarousel.js +48 -0
- package/carousel/jsx-serializer/defaultRenderCarouselElements.d.ts +2 -0
- package/carousel/jsx-serializer/defaultRenderCarouselElements.js +10 -0
- package/carousel/jsx-serializer/index.cjs.js +58 -0
- package/carousel/jsx-serializer/index.d.ts +3 -0
- package/carousel/jsx-serializer/index.js +2 -0
- package/carousel/jsx-serializer/package.json +7 -0
- package/carousel/jsx-serializer/typings.d.ts +9 -0
- package/carousel/package.json +10 -0
- package/carousel/toolbar/CarouselToolbarIcon.d.ts +8 -0
- package/carousel/toolbar/CarouselToolbarIcon.js +12 -0
- package/carousel/toolbar/index.cjs.js +57 -0
- package/carousel/toolbar/index.d.ts +2 -0
- package/carousel/toolbar/index.js +2 -0
- package/carousel/toolbar/package.json +7 -0
- package/carousel/toolbar/useCarouselTool.d.ts +4 -0
- package/carousel/toolbar/useCarouselTool.js +46 -0
- package/carousel/typings.d.ts +27 -0
- package/components/BaseField/index.d.ts +11 -0
- package/components/BaseField/index.js +17 -0
- package/components/Button/index.d.ts +14 -0
- package/components/Button/index.js +12 -0
- package/components/Hint/index.d.ts +15 -0
- package/components/Hint/index.js +30 -0
- package/components/ImageUploader/index.d.ts +25 -0
- package/components/ImageUploader/index.js +174 -0
- package/components/Input/index.d.ts +14 -0
- package/components/Input/index.js +24 -0
- package/components/Message/index.d.ts +18 -0
- package/components/Message/index.js +72 -0
- package/components/Modal/index.d.ts +28 -0
- package/components/Modal/index.js +61 -0
- package/components/Notifier/NotifierManager.d.ts +17 -0
- package/components/Notifier/NotifierManager.js +24 -0
- package/components/Notifier/createNotifier.d.ts +21 -0
- package/components/Notifier/createNotifier.js +60 -0
- package/components/Notifier/typings.d.ts +28 -0
- package/components/Progress/index.d.ts +1 -1
- package/components/Progress/index.js +12 -8
- package/components/SegmentedControl/index.d.ts +13 -0
- package/components/SegmentedControl/index.js +14 -0
- package/components/Textarea/index.d.ts +15 -0
- package/components/Textarea/index.js +24 -0
- package/components/Toggle/index.d.ts +8 -0
- package/components/Toggle/index.js +15 -0
- package/components/Transition/SlideFade.d.ts +20 -0
- package/components/Transition/SlideFade.js +91 -0
- package/components/Transition/Transition.d.ts +98 -0
- package/components/Transition/Transition.js +27 -0
- package/components/Transition/getTransitionStyleProps.d.ts +16 -0
- package/components/Transition/getTransitionStyleProps.js +25 -0
- package/components/Transition/useSetNodeTransition.d.ts +7 -0
- package/components/Transition/useSetNodeTransition.js +35 -0
- package/components/baseField.css +1 -0
- package/components/baseField.scss +34 -0
- package/components/button.css +1 -0
- package/components/button.scss +254 -0
- package/components/components.css +1 -0
- package/components/components.scss +12 -0
- package/components/hint.css +1 -0
- package/components/hint.scss +59 -0
- package/components/index.cjs.js +647 -11
- package/components/index.d.ts +12 -0
- package/components/index.js +11 -0
- package/components/input.css +1 -0
- package/components/input.scss +102 -0
- package/components/message.css +1 -0
- package/components/message.scss +57 -0
- package/components/modal.css +1 -0
- package/components/modal.scss +200 -0
- package/components/progress.css +1 -1
- package/components/progress.scss +32 -20
- package/components/segmentedControl.css +1 -0
- package/components/segmentedControl.scss +63 -0
- package/components/textarea.css +1 -0
- package/components/textarea.scss +104 -0
- package/components/toggle.css +1 -0
- package/components/toggle.scss +55 -0
- package/components/tooltip.css +1 -1
- package/components/tooltip.scss +1 -1
- package/core/components/Editable.js +22 -3
- package/core/components/Quadrats.d.ts +4 -1
- package/core/components/Quadrats.js +6 -2
- package/core/constants.d.ts +1 -0
- package/core/constants.js +3 -0
- package/core/contexts/composition/CompositionProvider.d.ts +8 -0
- package/core/contexts/composition/CompositionProvider.js +8 -0
- package/core/contexts/composition/composition.d.ts +7 -0
- package/core/contexts/composition/composition.js +11 -0
- package/core/contexts/message/MessageProvider.d.ts +5 -0
- package/core/contexts/message/MessageProvider.js +35 -0
- package/core/contexts/message/message.d.ts +10 -0
- package/core/contexts/message/message.js +10 -0
- package/core/contexts/modal/CardModal/CardModal.d.ts +28 -0
- package/core/contexts/modal/CardModal/CardModal.js +103 -0
- package/core/contexts/modal/CarouselModal/CarouselItem.d.ts +15 -0
- package/core/contexts/modal/CarouselModal/CarouselItem.js +56 -0
- package/core/contexts/modal/CarouselModal/CarouselModal.d.ts +11 -0
- package/core/contexts/modal/CarouselModal/CarouselModal.js +174 -0
- package/core/contexts/modal/CarouselModal/FilesDropZone.d.ts +13 -0
- package/core/contexts/modal/CarouselModal/FilesDropZone.js +64 -0
- package/core/contexts/modal/ConfirmModal/ConfirmModal.d.ts +14 -0
- package/core/contexts/modal/ConfirmModal/ConfirmModal.js +21 -0
- package/core/contexts/modal/EmbedModal/EmbedModal.d.ts +11 -0
- package/core/contexts/modal/EmbedModal/EmbedModal.js +25 -0
- package/core/contexts/modal/ModalProvider.d.ts +8 -0
- package/core/contexts/modal/ModalProvider.js +66 -0
- package/core/contexts/modal/modal.d.ts +24 -0
- package/core/contexts/modal/modal.js +15 -0
- package/core/index.d.ts +8 -1
- package/divider/defaultRenderDividerElement.d.ts +1 -1
- package/divider/defaultRenderDividerElement.js +2 -3
- package/divider/divider.css +1 -0
- package/divider/divider.scss +9 -0
- package/divider/index.cjs.js +2 -3
- package/divider/jsx-serializer/defaultRenderDividerElement.js +2 -1
- package/divider/jsx-serializer/index.cjs.js +2 -1
- package/divider/package.json +4 -1
- package/editable.css +1 -1
- package/editable.scss +5 -6
- package/embed/components/VideoIframe.d.ts +3 -2
- package/embed/components/VideoIframe.js +2 -1
- package/embed/createReactEmbed.js +4 -1
- package/embed/createRenderEmbedElementBase.js +3 -1
- package/embed/embed.css +1 -0
- package/embed/embed.scss +234 -0
- package/embed/index.cjs.js +8 -2
- package/embed/jsx-serializer/youtube/index.cjs.js +1 -10
- package/embed/jsx-serializer/youtube/index.d.ts +1 -1
- package/embed/jsx-serializer/youtube/index.js +1 -1
- package/embed/package.json +4 -1
- package/embed/renderers/base/components/BaseEmbedElement.d.ts +21 -0
- package/embed/renderers/base/components/BaseEmbedElement.js +62 -0
- package/embed/renderers/base/index.cjs.js +65 -0
- package/embed/renderers/base/index.d.ts +1 -0
- package/embed/renderers/base/index.js +1 -0
- package/embed/renderers/base/package.json +7 -0
- package/embed/renderers/facebook/components/Facebook.d.ts +3 -2
- package/embed/renderers/facebook/components/Facebook.js +18 -11
- package/embed/renderers/facebook/defaultRenderFacebookEmbedElement.d.ts +2 -0
- package/embed/renderers/facebook/defaultRenderFacebookEmbedElement.js +42 -2
- package/embed/renderers/facebook/index.cjs.js +61 -12
- package/embed/renderers/facebook/index.d.ts +1 -1
- package/embed/renderers/facebook/index.js +1 -1
- package/embed/renderers/instagram/components/Instagram.d.ts +3 -2
- package/embed/renderers/instagram/components/Instagram.js +22 -11
- package/embed/renderers/instagram/defaultRenderInstagramEmbedElement.d.ts +2 -0
- package/embed/renderers/instagram/defaultRenderInstagramEmbedElement.js +42 -2
- package/embed/renderers/instagram/index.cjs.js +65 -12
- package/embed/renderers/instagram/index.d.ts +1 -1
- package/embed/renderers/instagram/index.js +1 -1
- package/embed/renderers/podcast-apple/components/PodcastApple.d.ts +3 -2
- package/embed/renderers/podcast-apple/components/PodcastApple.js +2 -1
- package/embed/renderers/podcast-apple/defaultRenderPodcastAppleEmbedElement.d.ts +2 -0
- package/embed/renderers/podcast-apple/defaultRenderPodcastAppleEmbedElement.js +35 -2
- package/embed/renderers/podcast-apple/index.cjs.js +38 -2
- package/embed/renderers/podcast-apple/index.d.ts +1 -1
- package/embed/renderers/podcast-apple/index.js +1 -1
- package/embed/renderers/spotify/components/Spotify.d.ts +3 -2
- package/embed/renderers/spotify/components/Spotify.js +3 -1
- package/embed/renderers/spotify/defaultRenderSpotifyEmbedElement.d.ts +2 -0
- package/embed/renderers/spotify/defaultRenderSpotifyEmbedElement.js +32 -2
- package/embed/renderers/spotify/index.cjs.js +36 -2
- package/embed/renderers/spotify/index.d.ts +1 -1
- package/embed/renderers/spotify/index.js +1 -1
- package/embed/renderers/twitter/components/Twitter.d.ts +3 -2
- package/embed/renderers/twitter/components/Twitter.js +14 -2
- package/embed/renderers/twitter/defaultRenderTwitterEmbedElement.d.ts +2 -0
- package/embed/renderers/twitter/defaultRenderTwitterEmbedElement.js +42 -2
- package/embed/renderers/twitter/index.cjs.js +57 -3
- package/embed/renderers/twitter/index.d.ts +1 -1
- package/embed/renderers/twitter/index.js +1 -1
- package/embed/renderers/vimeo/defaultRenderVimeoEmbedElement.d.ts +2 -0
- package/embed/renderers/vimeo/defaultRenderVimeoEmbedElement.js +26 -2
- package/embed/renderers/vimeo/index.cjs.js +27 -1
- package/embed/renderers/vimeo/index.d.ts +1 -1
- package/embed/renderers/vimeo/index.js +1 -1
- package/embed/renderers/youtube/defaultRenderYoutubeEmbedElement.d.ts +2 -0
- package/embed/renderers/youtube/defaultRenderYoutubeEmbedElement.js +26 -2
- package/embed/renderers/youtube/index.cjs.js +27 -1
- package/embed/renderers/youtube/index.d.ts +1 -1
- package/embed/renderers/youtube/index.js +1 -1
- package/embed/toolbar/EmbedToolbarIcon.d.ts +3 -6
- package/embed/toolbar/EmbedToolbarIcon.js +2 -2
- package/embed/toolbar/index.cjs.js +98 -13
- package/embed/toolbar/useEmbedTool.d.ts +1 -3
- package/embed/toolbar/useEmbedTool.js +96 -11
- package/embed/typings.d.ts +1 -0
- package/file-uploader/components/FileUploader.js +1 -2
- package/file-uploader/createReactFileUploader.js +4 -1
- package/file-uploader/defaultRenderFileUploaderElement.js +1 -1
- package/file-uploader/file-uploader.css +1 -1
- package/file-uploader/file-uploader.scss +0 -20
- package/file-uploader/index.cjs.js +5 -3
- package/file-uploader/toolbar/index.cjs.js +4 -1
- package/file-uploader/toolbar/useFileUploaderTool.d.ts +1 -1
- package/file-uploader/toolbar/useFileUploaderTool.js +4 -1
- package/file-uploader/typings.d.ts +6 -1
- package/footnote/defaultRenderFootnoteElement.js +1 -1
- package/footnote/index.cjs.js +1 -1
- package/footnote/jsx-serializer/defaultRenderFootnoteElement.js +1 -1
- package/footnote/jsx-serializer/index.cjs.js +1 -1
- package/footnote/toolbar/index.cjs.js +1 -1
- package/footnote/toolbar/useFootnoteTool.js +1 -1
- package/heading/defaultRenderHeadingElement.js +2 -1
- package/heading/heading.css +1 -0
- package/heading/heading.scss +53 -0
- package/heading/index.cjs.js +2 -1
- package/heading/package.json +4 -1
- package/image/components/Image.js +51 -10
- package/image/components/ImageCaption.js +6 -4
- package/image/components/ImagePlaceholder.d.ts +4 -0
- package/image/components/ImagePlaceholder.js +11 -0
- package/image/createReactImage.js +13 -13
- package/image/image.css +1 -1
- package/image/image.scss +61 -6
- package/image/index.cjs.js +97 -45
- package/image/index.d.ts +1 -0
- package/image/index.js +1 -0
- package/image/jsx-serializer/defaultRenderImageElements.js +2 -1
- package/image/jsx-serializer/index.cjs.js +2 -1
- package/image/jsx-serializer/typings.d.ts +2 -0
- package/image/typings.d.ts +2 -0
- package/index.cjs.js +555 -6
- package/index.js +9 -3
- package/input-block/components/InputBlock.js +19 -9
- package/input-block/defaultRenderInputBlockElement.js +1 -1
- package/input-block/hooks/useInputBlock.d.ts +2 -0
- package/input-block/hooks/useInputBlock.js +16 -8
- package/input-block/index.cjs.js +35 -17
- package/input-block/input-block.css +1 -0
- package/input-block/input-block.scss +38 -0
- package/input-block/package.json +4 -1
- package/line-break/line-break.scss +0 -2
- package/list/createReactList.js +11 -1
- package/list/index.cjs.js +15 -5
- package/list/list.css +1 -0
- package/list/list.scss +43 -0
- package/list/package.json +4 -1
- package/package.json +11 -8
- package/paragraph/createReactParagraph.d.ts +2 -0
- package/paragraph/createReactParagraph.js +8 -0
- package/paragraph/createRenderParagraphElement.d.ts +1 -1
- package/paragraph/defaultRenderParagraphElement.d.ts +3 -1
- package/paragraph/defaultRenderParagraphElement.js +4 -1
- package/paragraph/index.cjs.js +15 -2
- package/paragraph/index.d.ts +1 -0
- package/paragraph/index.js +1 -0
- package/paragraph/paragraph.css +1 -1
- package/paragraph/paragraph.scss +7 -2
- package/paragraph/renderParagraphElementWithSymbol.d.ts +3 -1
- package/paragraph/renderParagraphElementWithSymbol.js +4 -1
- package/paragraph/toolbar/ParagraphToolbarIcon.d.ts +8 -0
- package/paragraph/toolbar/ParagraphToolbarIcon.js +12 -0
- package/paragraph/toolbar/index.cjs.js +23 -0
- package/paragraph/toolbar/index.d.ts +2 -0
- package/paragraph/toolbar/index.js +2 -0
- package/paragraph/toolbar/package.json +7 -0
- package/paragraph/toolbar/useToggleParagraphTool.d.ts +5 -0
- package/paragraph/toolbar/useToggleParagraphTool.js +11 -0
- package/read-more/components/ReadMore.js +5 -3
- package/read-more/index.cjs.js +5 -3
- package/read-more/read-more.css +1 -1
- package/read-more/read-more.scss +27 -20
- package/toolbar/components/InlineToolbar.d.ts +18 -0
- package/toolbar/components/InlineToolbar.js +27 -0
- package/toolbar/components/Toolbar.js +23 -6
- package/toolbar/components/ToolbarGroupIcon.d.ts +7 -0
- package/toolbar/components/ToolbarGroupIcon.js +80 -0
- package/toolbar/components/ToolbarIcon.d.ts +3 -1
- package/toolbar/components/ToolbarIcon.js +24 -6
- package/toolbar/components/toolbarIconName.d.ts +2 -0
- package/toolbar/components/toolbarIconName.js +86 -0
- package/toolbar/contexts/toolbar.d.ts +7 -0
- package/toolbar/contexts/toolbar.js +10 -0
- package/toolbar/contexts/toolbarMenu.d.ts +6 -0
- package/toolbar/contexts/toolbarMenu.js +11 -0
- package/toolbar/hooks/useAutoGroupIcons.d.ts +12 -0
- package/toolbar/hooks/useAutoGroupIcons.js +68 -0
- package/toolbar/index.cjs.js +300 -12
- package/toolbar/index.d.ts +2 -0
- package/toolbar/index.js +2 -0
- package/toolbar/toolbar.css +1 -1
- package/toolbar/toolbar.scss +191 -43
- package/utils/index.cjs.js +153 -0
- package/utils/index.d.ts +6 -0
- package/utils/index.js +6 -0
- package/utils/removePreviousElement.d.ts +9 -0
- package/utils/removePreviousElement.js +38 -0
- package/utils/upload.d.ts +11 -0
- package/utils/upload.js +57 -0
- package/utils/useClickAway.d.ts +5 -0
- package/utils/useClickAway.js +23 -0
- package/utils/useDocumentEvents.d.ts +5 -0
- package/utils/useDocumentEvents.js +21 -0
- package/utils/useIsomorphicLayoutEffect.d.ts +2 -0
- package/utils/useIsomorphicLayoutEffect.js +9 -0
- package/utils/usePreviousValue.d.ts +1 -0
- package/utils/usePreviousValue.js +11 -0
- package/core/index.js +0 -11
|
@@ -2,12 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
4
|
var utils = require('@quadrats/react/utils');
|
|
5
|
+
var core = require('@quadrats/core');
|
|
6
|
+
var react = require('@quadrats/react');
|
|
7
|
+
var components = require('@quadrats/react/components');
|
|
8
|
+
var icons = require('@quadrats/icons');
|
|
9
|
+
var spotify = require('@quadrats/common/embed/strategies/spotify');
|
|
10
|
+
var base = require('@quadrats/react/embed/renderers/base');
|
|
5
11
|
|
|
6
|
-
|
|
12
|
+
/* eslint-disable react/no-unknown-property */
|
|
13
|
+
function Spotify({ attributes, children, data: src, toolbarElement }) {
|
|
7
14
|
const containerRef = React.useRef(null);
|
|
8
15
|
const composedRef = utils.composeRefs([attributes === null || attributes === void 0 ? void 0 : attributes.ref, containerRef]);
|
|
9
16
|
const higher = React.useMemo(() => (!!src.match(/\/playlist/)), [src]);
|
|
10
17
|
return (React.createElement("div", Object.assign({}, attributes, { ref: composedRef, className: "qdr-embed-spotify", contentEditable: false }),
|
|
18
|
+
toolbarElement,
|
|
11
19
|
React.createElement("iframe", { title: src, src: src, frameBorder: "0", width: "100%", allow: "autoplay", "clipboard-write": "true", "encrypted-media": "true", "picture-in-picture": "true", height: higher ? '400px' : '152px', style: {
|
|
12
20
|
maxHeight: '100%',
|
|
13
21
|
height: higher ? '400px' : '152px',
|
|
@@ -15,7 +23,33 @@ function Spotify({ attributes, children, data: src }) {
|
|
|
15
23
|
attributes ? children : undefined));
|
|
16
24
|
}
|
|
17
25
|
|
|
18
|
-
const defaultRenderSpotifyEmbedElement = (props) =>
|
|
26
|
+
const defaultRenderSpotifyEmbedElement = (props) => {
|
|
27
|
+
const { element } = props;
|
|
28
|
+
const locale = react.useLocale();
|
|
29
|
+
return (React.createElement(base.BaseEmbedElement, { element: element, placeholder: locale.editor.spotify.inputPlaceholder, hint: locale.editor.spotify.hint, confirmText: locale.editor.spotify.confirmText, onConfirm: (editor, path, value) => {
|
|
30
|
+
var _a, _b;
|
|
31
|
+
core.Transforms.setNodes(editor, Object.assign(Object.assign({}, props.element), { embedType: (_a = spotify.SpotifyEmbedStrategy.serialize(value)) === null || _a === void 0 ? void 0 : _a.embedType, contextId: (_b = spotify.SpotifyEmbedStrategy.serialize(value)) === null || _b === void 0 ? void 0 : _b.contextId }), { at: path });
|
|
32
|
+
} }, toolbarElement => React.createElement(Spotify, Object.assign({}, props, { toolbarElement: toolbarElement }))));
|
|
33
|
+
};
|
|
34
|
+
const defaultRenderSpotifyEmbedPlaceholderElement = () => {
|
|
35
|
+
const locale = react.useLocale();
|
|
36
|
+
return (React.createElement("div", { className: "qdr-embed-spotify__placeholder" },
|
|
37
|
+
React.createElement("div", { style: { width: 120 }, className: "qdr-embed__placeholder__body qdr-embed__placeholder__body--square" }),
|
|
38
|
+
React.createElement("div", { className: "qdr-embed-spotify__placeholder__title-wrapper" },
|
|
39
|
+
React.createElement("p", { className: "qdr-embed__placeholder__title" }, locale.editor.spotify.blockPlaceholder),
|
|
40
|
+
React.createElement("div", { className: "qdr-embed__placeholder__line" }),
|
|
41
|
+
React.createElement("div", { className: "qdr-embed__placeholder__line", style: { marginRight: 'var(--qdr-spacing-21)' } })),
|
|
42
|
+
React.createElement("div", { className: "qdr-embed-spotify__placeholder__icon-wrapper" },
|
|
43
|
+
React.createElement(components.Icon, { className: "qdr-embed__placeholder__icon", icon: icons.Spotify, width: 36, height: 36 }),
|
|
44
|
+
React.createElement("div", { className: "qdr-embed__placeholder__dot", style: { width: 30, height: 30 } }))));
|
|
45
|
+
};
|
|
46
|
+
const defaultRenderSpotifyEmbedJsxSerializer = (props) => {
|
|
47
|
+
const { element } = props;
|
|
48
|
+
return (React.createElement(base.BaseEmbedElementWithoutToolbar, { element: element },
|
|
49
|
+
React.createElement(Spotify, Object.assign({}, props))));
|
|
50
|
+
};
|
|
19
51
|
|
|
20
52
|
exports.Spotify = Spotify;
|
|
21
53
|
exports.defaultRenderSpotifyEmbedElement = defaultRenderSpotifyEmbedElement;
|
|
54
|
+
exports.defaultRenderSpotifyEmbedJsxSerializer = defaultRenderSpotifyEmbedJsxSerializer;
|
|
55
|
+
exports.defaultRenderSpotifyEmbedPlaceholderElement = defaultRenderSpotifyEmbedPlaceholderElement;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { SpotifyProps, default as Spotify } from './components/Spotify';
|
|
2
|
-
export
|
|
2
|
+
export * from './defaultRenderSpotifyEmbedElement';
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export { default as Spotify } from './components/Spotify.js';
|
|
2
|
-
export { defaultRenderSpotifyEmbedElement } from './defaultRenderSpotifyEmbedElement.js';
|
|
2
|
+
export { defaultRenderSpotifyEmbedElement, defaultRenderSpotifyEmbedJsxSerializer, defaultRenderSpotifyEmbedPlaceholderElement } from './defaultRenderSpotifyEmbedElement.js';
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { ReactNode } from 'react';
|
|
2
2
|
import { TwitterEmbedElement } from '@quadrats/common/embed/strategies/twitter';
|
|
3
3
|
import { RenderElementProps } from '@quadrats/react';
|
|
4
4
|
export interface TwitterProps {
|
|
@@ -6,6 +6,7 @@ export interface TwitterProps {
|
|
|
6
6
|
children?: any;
|
|
7
7
|
data: string;
|
|
8
8
|
element: TwitterEmbedElement;
|
|
9
|
+
toolbarElement: ReactNode;
|
|
9
10
|
}
|
|
10
|
-
declare function Twitter({ attributes, children, data: tweetId }: TwitterProps): React.JSX.Element;
|
|
11
|
+
declare function Twitter({ attributes, children, data: tweetId, element: { align }, toolbarElement }: TwitterProps): React.JSX.Element;
|
|
11
12
|
export default Twitter;
|
|
@@ -1,12 +1,24 @@
|
|
|
1
1
|
import React, { useRef } from 'react';
|
|
2
|
+
import clsx from 'clsx';
|
|
2
3
|
import { composeRefs } from '@quadrats/react/utils';
|
|
3
4
|
import { useLoadTwitterEmbedApi } from '../hooks/useLoadTwitterEmbedApi.js';
|
|
4
5
|
|
|
5
|
-
function Twitter({ attributes, children, data: tweetId }) {
|
|
6
|
+
function Twitter({ attributes, children, data: tweetId, element: { align }, toolbarElement }) {
|
|
6
7
|
const tweetContainerRef = useRef(null);
|
|
7
8
|
const composedRef = composeRefs([attributes === null || attributes === void 0 ? void 0 : attributes.ref, tweetContainerRef]);
|
|
8
9
|
useLoadTwitterEmbedApi(tweetId, tweetContainerRef);
|
|
9
|
-
return (React.createElement("div", Object.assign({}, attributes, {
|
|
10
|
+
return (React.createElement("div", Object.assign({}, attributes, { className: clsx('qdr-embed-twitter', {
|
|
11
|
+
'qdr-embed-twitter--left': align === 'left' || !align,
|
|
12
|
+
'qdr-embed-twitter--center': align === 'center',
|
|
13
|
+
'qdr-embed-twitter--right': align === 'right',
|
|
14
|
+
}), contentEditable: false }),
|
|
15
|
+
React.createElement("div", { className: "qdr-embed__inline-toolbar-wrapper", style: {
|
|
16
|
+
width: '100%',
|
|
17
|
+
maxWidth: 550,
|
|
18
|
+
} },
|
|
19
|
+
toolbarElement,
|
|
20
|
+
React.createElement("div", { ref: composedRef, className: "qdr-embed-twitter__container" }),
|
|
21
|
+
attributes ? children : undefined)));
|
|
10
22
|
}
|
|
11
23
|
|
|
12
24
|
export { Twitter as default };
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { TwitterProps } from './components/Twitter';
|
|
3
3
|
export declare const defaultRenderTwitterEmbedElement: (props: TwitterProps) => React.JSX.Element;
|
|
4
|
+
export declare const defaultRenderTwitterEmbedPlaceholderElement: () => React.JSX.Element;
|
|
5
|
+
export declare const defaultRenderTwitterEmbedJsxSerializer: (props: TwitterProps) => React.JSX.Element;
|
|
@@ -1,6 +1,46 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { Transforms } from '@quadrats/core';
|
|
3
|
+
import { useLocale } from '@quadrats/react';
|
|
4
|
+
import { Icon } from '@quadrats/react/components';
|
|
5
|
+
import { Twitter as Twitter$1 } from '@quadrats/icons';
|
|
6
|
+
import { TwitterEmbedStrategy } from '@quadrats/common/embed/strategies/twitter';
|
|
2
7
|
import Twitter from './components/Twitter.js';
|
|
8
|
+
import { BaseEmbedElement, BaseEmbedElementWithoutToolbar } from '@quadrats/react/embed/renderers/base';
|
|
3
9
|
|
|
4
|
-
const defaultRenderTwitterEmbedElement = (props) =>
|
|
10
|
+
const defaultRenderTwitterEmbedElement = (props) => {
|
|
11
|
+
const { element } = props;
|
|
12
|
+
const locale = useLocale();
|
|
13
|
+
return (React.createElement(BaseEmbedElement, { element: element, placeholder: locale.editor.twitter.tweet.inputPlaceholder, hint: locale.editor.twitter.tweet.hint, confirmText: locale.editor.twitter.tweet.confirmText, onConfirm: (editor, path, value) => {
|
|
14
|
+
var _a, _b;
|
|
15
|
+
Transforms.setNodes(editor, Object.assign(Object.assign({}, props.element), { embedType: (_a = TwitterEmbedStrategy.serialize(value)) === null || _a === void 0 ? void 0 : _a.embedType, tweetId: (_b = TwitterEmbedStrategy.serialize(value)) === null || _b === void 0 ? void 0 : _b.tweetId }), { at: path });
|
|
16
|
+
} }, toolbarElement => React.createElement(Twitter, Object.assign({}, props, { toolbarElement: toolbarElement }))));
|
|
17
|
+
};
|
|
18
|
+
const defaultRenderTwitterEmbedPlaceholderElement = () => {
|
|
19
|
+
const locale = useLocale();
|
|
20
|
+
return (React.createElement("div", { className: "qdr-embed-twitter__placeholder" },
|
|
21
|
+
React.createElement("div", { className: "qdr-embed-twitter__placeholder__title-wrapper" },
|
|
22
|
+
React.createElement(Icon, { className: "qdr-embed__placeholder__icon", icon: Twitter$1, width: 48, height: 48 }),
|
|
23
|
+
React.createElement("p", { className: "qdr-embed__placeholder__title" }, locale.editor.twitter.tweet.blockPlaceholder)),
|
|
24
|
+
React.createElement("div", { className: "qdr-embed-twitter__placeholder__line-wrapper" },
|
|
25
|
+
React.createElement("div", { className: "qdr-embed__placeholder__line", style: { marginRight: 'var(--qdr-spacing-28)' } }),
|
|
26
|
+
React.createElement("div", { className: "qdr-embed__placeholder__line" }),
|
|
27
|
+
React.createElement("div", { className: "qdr-embed__placeholder__line", style: { marginRight: 'var(--qdr-spacing-21)' } })),
|
|
28
|
+
React.createElement("div", { className: "qdr-embed__placeholder__body" }),
|
|
29
|
+
React.createElement("div", { className: "qdr-embed-twitter__placeholder__set-wrapper" },
|
|
30
|
+
React.createElement("div", { className: "qdr-embed-twitter__placeholder__tools-set" },
|
|
31
|
+
React.createElement("div", { className: "qdr-embed__placeholder__dot" }),
|
|
32
|
+
React.createElement("div", { className: "qdr-embed__placeholder__line qdr-embed__placeholder__line--shortest" })),
|
|
33
|
+
React.createElement("div", { className: "qdr-embed-twitter__placeholder__tools-set" },
|
|
34
|
+
React.createElement("div", { className: "qdr-embed__placeholder__dot" }),
|
|
35
|
+
React.createElement("div", { className: "qdr-embed__placeholder__line qdr-embed__placeholder__line--shortest" })),
|
|
36
|
+
React.createElement("div", { className: "qdr-embed-twitter__placeholder__tools-set" },
|
|
37
|
+
React.createElement("div", { className: "qdr-embed__placeholder__dot" }),
|
|
38
|
+
React.createElement("div", { className: "qdr-embed__placeholder__line qdr-embed__placeholder__line--shortest" })))));
|
|
39
|
+
};
|
|
40
|
+
const defaultRenderTwitterEmbedJsxSerializer = (props) => {
|
|
41
|
+
const { element } = props;
|
|
42
|
+
return (React.createElement(BaseEmbedElementWithoutToolbar, { element: element },
|
|
43
|
+
React.createElement(Twitter, Object.assign({}, props))));
|
|
44
|
+
};
|
|
5
45
|
|
|
6
|
-
export { defaultRenderTwitterEmbedElement };
|
|
46
|
+
export { defaultRenderTwitterEmbedElement, defaultRenderTwitterEmbedJsxSerializer, defaultRenderTwitterEmbedPlaceholderElement };
|
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
|
+
var clsx = require('clsx');
|
|
4
5
|
var utils = require('@quadrats/react/utils');
|
|
6
|
+
var core = require('@quadrats/core');
|
|
7
|
+
var react = require('@quadrats/react');
|
|
8
|
+
var components = require('@quadrats/react/components');
|
|
9
|
+
var icons = require('@quadrats/icons');
|
|
10
|
+
var twitter = require('@quadrats/common/embed/strategies/twitter');
|
|
11
|
+
var base = require('@quadrats/react/embed/renderers/base');
|
|
5
12
|
|
|
6
13
|
function getTwitterEmbedApi() {
|
|
7
14
|
return window.twttr;
|
|
@@ -33,15 +40,62 @@ function useLoadTwitterEmbedApi(tweetId, tweetContainerRef) {
|
|
|
33
40
|
}, [tweetId, tweetContainerRef]);
|
|
34
41
|
}
|
|
35
42
|
|
|
36
|
-
function Twitter({ attributes, children, data: tweetId }) {
|
|
43
|
+
function Twitter({ attributes, children, data: tweetId, element: { align }, toolbarElement }) {
|
|
37
44
|
const tweetContainerRef = React.useRef(null);
|
|
38
45
|
const composedRef = utils.composeRefs([attributes === null || attributes === void 0 ? void 0 : attributes.ref, tweetContainerRef]);
|
|
39
46
|
useLoadTwitterEmbedApi(tweetId, tweetContainerRef);
|
|
40
|
-
return (React.createElement("div", Object.assign({}, attributes, {
|
|
47
|
+
return (React.createElement("div", Object.assign({}, attributes, { className: clsx('qdr-embed-twitter', {
|
|
48
|
+
'qdr-embed-twitter--left': align === 'left' || !align,
|
|
49
|
+
'qdr-embed-twitter--center': align === 'center',
|
|
50
|
+
'qdr-embed-twitter--right': align === 'right',
|
|
51
|
+
}), contentEditable: false }),
|
|
52
|
+
React.createElement("div", { className: "qdr-embed__inline-toolbar-wrapper", style: {
|
|
53
|
+
width: '100%',
|
|
54
|
+
maxWidth: 550,
|
|
55
|
+
} },
|
|
56
|
+
toolbarElement,
|
|
57
|
+
React.createElement("div", { ref: composedRef, className: "qdr-embed-twitter__container" }),
|
|
58
|
+
attributes ? children : undefined)));
|
|
41
59
|
}
|
|
42
60
|
|
|
43
|
-
const defaultRenderTwitterEmbedElement = (props) =>
|
|
61
|
+
const defaultRenderTwitterEmbedElement = (props) => {
|
|
62
|
+
const { element } = props;
|
|
63
|
+
const locale = react.useLocale();
|
|
64
|
+
return (React.createElement(base.BaseEmbedElement, { element: element, placeholder: locale.editor.twitter.tweet.inputPlaceholder, hint: locale.editor.twitter.tweet.hint, confirmText: locale.editor.twitter.tweet.confirmText, onConfirm: (editor, path, value) => {
|
|
65
|
+
var _a, _b;
|
|
66
|
+
core.Transforms.setNodes(editor, Object.assign(Object.assign({}, props.element), { embedType: (_a = twitter.TwitterEmbedStrategy.serialize(value)) === null || _a === void 0 ? void 0 : _a.embedType, tweetId: (_b = twitter.TwitterEmbedStrategy.serialize(value)) === null || _b === void 0 ? void 0 : _b.tweetId }), { at: path });
|
|
67
|
+
} }, toolbarElement => React.createElement(Twitter, Object.assign({}, props, { toolbarElement: toolbarElement }))));
|
|
68
|
+
};
|
|
69
|
+
const defaultRenderTwitterEmbedPlaceholderElement = () => {
|
|
70
|
+
const locale = react.useLocale();
|
|
71
|
+
return (React.createElement("div", { className: "qdr-embed-twitter__placeholder" },
|
|
72
|
+
React.createElement("div", { className: "qdr-embed-twitter__placeholder__title-wrapper" },
|
|
73
|
+
React.createElement(components.Icon, { className: "qdr-embed__placeholder__icon", icon: icons.Twitter, width: 48, height: 48 }),
|
|
74
|
+
React.createElement("p", { className: "qdr-embed__placeholder__title" }, locale.editor.twitter.tweet.blockPlaceholder)),
|
|
75
|
+
React.createElement("div", { className: "qdr-embed-twitter__placeholder__line-wrapper" },
|
|
76
|
+
React.createElement("div", { className: "qdr-embed__placeholder__line", style: { marginRight: 'var(--qdr-spacing-28)' } }),
|
|
77
|
+
React.createElement("div", { className: "qdr-embed__placeholder__line" }),
|
|
78
|
+
React.createElement("div", { className: "qdr-embed__placeholder__line", style: { marginRight: 'var(--qdr-spacing-21)' } })),
|
|
79
|
+
React.createElement("div", { className: "qdr-embed__placeholder__body" }),
|
|
80
|
+
React.createElement("div", { className: "qdr-embed-twitter__placeholder__set-wrapper" },
|
|
81
|
+
React.createElement("div", { className: "qdr-embed-twitter__placeholder__tools-set" },
|
|
82
|
+
React.createElement("div", { className: "qdr-embed__placeholder__dot" }),
|
|
83
|
+
React.createElement("div", { className: "qdr-embed__placeholder__line qdr-embed__placeholder__line--shortest" })),
|
|
84
|
+
React.createElement("div", { className: "qdr-embed-twitter__placeholder__tools-set" },
|
|
85
|
+
React.createElement("div", { className: "qdr-embed__placeholder__dot" }),
|
|
86
|
+
React.createElement("div", { className: "qdr-embed__placeholder__line qdr-embed__placeholder__line--shortest" })),
|
|
87
|
+
React.createElement("div", { className: "qdr-embed-twitter__placeholder__tools-set" },
|
|
88
|
+
React.createElement("div", { className: "qdr-embed__placeholder__dot" }),
|
|
89
|
+
React.createElement("div", { className: "qdr-embed__placeholder__line qdr-embed__placeholder__line--shortest" })))));
|
|
90
|
+
};
|
|
91
|
+
const defaultRenderTwitterEmbedJsxSerializer = (props) => {
|
|
92
|
+
const { element } = props;
|
|
93
|
+
return (React.createElement(base.BaseEmbedElementWithoutToolbar, { element: element },
|
|
94
|
+
React.createElement(Twitter, Object.assign({}, props))));
|
|
95
|
+
};
|
|
44
96
|
|
|
45
97
|
exports.Twitter = Twitter;
|
|
46
98
|
exports.defaultRenderTwitterEmbedElement = defaultRenderTwitterEmbedElement;
|
|
99
|
+
exports.defaultRenderTwitterEmbedJsxSerializer = defaultRenderTwitterEmbedJsxSerializer;
|
|
100
|
+
exports.defaultRenderTwitterEmbedPlaceholderElement = defaultRenderTwitterEmbedPlaceholderElement;
|
|
47
101
|
exports.useLoadTwitterEmbedApi = useLoadTwitterEmbedApi;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { useLoadTwitterEmbedApi } from './hooks/useLoadTwitterEmbedApi';
|
|
2
2
|
export { TwitterProps, default as Twitter } from './components/Twitter';
|
|
3
|
-
export
|
|
3
|
+
export * from './defaultRenderTwitterEmbedElement';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export { useLoadTwitterEmbedApi } from './hooks/useLoadTwitterEmbedApi.js';
|
|
2
2
|
export { default as Twitter } from './components/Twitter.js';
|
|
3
|
-
export { defaultRenderTwitterEmbedElement } from './defaultRenderTwitterEmbedElement.js';
|
|
3
|
+
export { defaultRenderTwitterEmbedElement, defaultRenderTwitterEmbedJsxSerializer, defaultRenderTwitterEmbedPlaceholderElement } from './defaultRenderTwitterEmbedElement.js';
|
|
@@ -2,3 +2,5 @@ import React from 'react';
|
|
|
2
2
|
import { VimeoEmbedElement } from '@quadrats/common/embed/strategies/vimeo';
|
|
3
3
|
import { VideoIframeProps } from '@quadrats/react/embed';
|
|
4
4
|
export declare const defaultRenderVimeoEmbedElement: (props: VideoIframeProps<VimeoEmbedElement>) => React.JSX.Element;
|
|
5
|
+
export declare const defaultRenderVimeoEmbedPlaceholderElement: () => React.JSX.Element;
|
|
6
|
+
export declare const defaultRenderVimeoEmbedJsxSerializer: (props: VideoIframeProps<VimeoEmbedElement>) => React.JSX.Element;
|
|
@@ -1,6 +1,30 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { Transforms } from '@quadrats/core';
|
|
3
|
+
import { useLocale } from '@quadrats/react';
|
|
4
|
+
import { Icon } from '@quadrats/react/components';
|
|
5
|
+
import { Vimeo } from '@quadrats/icons';
|
|
6
|
+
import { VimeoEmbedStrategy } from '@quadrats/common/embed/strategies/vimeo';
|
|
2
7
|
import { VideoIframe } from '@quadrats/react/embed';
|
|
8
|
+
import { BaseEmbedElement, BaseEmbedElementWithoutToolbar } from '@quadrats/react/embed/renderers/base';
|
|
3
9
|
|
|
4
|
-
const defaultRenderVimeoEmbedElement = (props) =>
|
|
10
|
+
const defaultRenderVimeoEmbedElement = (props) => {
|
|
11
|
+
const { element } = props;
|
|
12
|
+
const locale = useLocale();
|
|
13
|
+
return (React.createElement(BaseEmbedElement, { element: element, placeholder: locale.editor.vimeo.inputPlaceholder, hint: locale.editor.vimeo.hint, confirmText: locale.editor.vimeo.confirmText, onConfirm: (editor, path, value) => {
|
|
14
|
+
var _a;
|
|
15
|
+
Transforms.setNodes(editor, Object.assign(Object.assign({}, props.element), { videoId: (_a = VimeoEmbedStrategy.serialize(value)) === null || _a === void 0 ? void 0 : _a.videoId }), { at: path });
|
|
16
|
+
} }, toolbarElement => React.createElement(VideoIframe, Object.assign({}, props, { toolbarElement: toolbarElement }))));
|
|
17
|
+
};
|
|
18
|
+
const defaultRenderVimeoEmbedPlaceholderElement = () => {
|
|
19
|
+
const locale = useLocale();
|
|
20
|
+
return (React.createElement("div", { className: "qdr-embed-vimeo__placeholder" },
|
|
21
|
+
React.createElement(Icon, { className: "qdr-embed__placeholder__icon", icon: Vimeo, width: 48, height: 48 }),
|
|
22
|
+
React.createElement("p", { className: "qdr-embed__placeholder__title" }, locale.editor.vimeo.blockPlaceholder)));
|
|
23
|
+
};
|
|
24
|
+
const defaultRenderVimeoEmbedJsxSerializer = (props) => {
|
|
25
|
+
const { element } = props;
|
|
26
|
+
return (React.createElement(BaseEmbedElementWithoutToolbar, { element: element },
|
|
27
|
+
React.createElement(VideoIframe, Object.assign({}, props))));
|
|
28
|
+
};
|
|
5
29
|
|
|
6
|
-
export { defaultRenderVimeoEmbedElement };
|
|
30
|
+
export { defaultRenderVimeoEmbedElement, defaultRenderVimeoEmbedJsxSerializer, defaultRenderVimeoEmbedPlaceholderElement };
|
|
@@ -1,8 +1,34 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
|
+
var core = require('@quadrats/core');
|
|
5
|
+
var react = require('@quadrats/react');
|
|
6
|
+
var components = require('@quadrats/react/components');
|
|
7
|
+
var icons = require('@quadrats/icons');
|
|
8
|
+
var vimeo = require('@quadrats/common/embed/strategies/vimeo');
|
|
4
9
|
var embed = require('@quadrats/react/embed');
|
|
10
|
+
var base = require('@quadrats/react/embed/renderers/base');
|
|
5
11
|
|
|
6
|
-
const defaultRenderVimeoEmbedElement = (props) =>
|
|
12
|
+
const defaultRenderVimeoEmbedElement = (props) => {
|
|
13
|
+
const { element } = props;
|
|
14
|
+
const locale = react.useLocale();
|
|
15
|
+
return (React.createElement(base.BaseEmbedElement, { element: element, placeholder: locale.editor.vimeo.inputPlaceholder, hint: locale.editor.vimeo.hint, confirmText: locale.editor.vimeo.confirmText, onConfirm: (editor, path, value) => {
|
|
16
|
+
var _a;
|
|
17
|
+
core.Transforms.setNodes(editor, Object.assign(Object.assign({}, props.element), { videoId: (_a = vimeo.VimeoEmbedStrategy.serialize(value)) === null || _a === void 0 ? void 0 : _a.videoId }), { at: path });
|
|
18
|
+
} }, toolbarElement => React.createElement(embed.VideoIframe, Object.assign({}, props, { toolbarElement: toolbarElement }))));
|
|
19
|
+
};
|
|
20
|
+
const defaultRenderVimeoEmbedPlaceholderElement = () => {
|
|
21
|
+
const locale = react.useLocale();
|
|
22
|
+
return (React.createElement("div", { className: "qdr-embed-vimeo__placeholder" },
|
|
23
|
+
React.createElement(components.Icon, { className: "qdr-embed__placeholder__icon", icon: icons.Vimeo, width: 48, height: 48 }),
|
|
24
|
+
React.createElement("p", { className: "qdr-embed__placeholder__title" }, locale.editor.vimeo.blockPlaceholder)));
|
|
25
|
+
};
|
|
26
|
+
const defaultRenderVimeoEmbedJsxSerializer = (props) => {
|
|
27
|
+
const { element } = props;
|
|
28
|
+
return (React.createElement(base.BaseEmbedElementWithoutToolbar, { element: element },
|
|
29
|
+
React.createElement(embed.VideoIframe, Object.assign({}, props))));
|
|
30
|
+
};
|
|
7
31
|
|
|
8
32
|
exports.defaultRenderVimeoEmbedElement = defaultRenderVimeoEmbedElement;
|
|
33
|
+
exports.defaultRenderVimeoEmbedJsxSerializer = defaultRenderVimeoEmbedJsxSerializer;
|
|
34
|
+
exports.defaultRenderVimeoEmbedPlaceholderElement = defaultRenderVimeoEmbedPlaceholderElement;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export * from './defaultRenderVimeoEmbedElement';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { defaultRenderVimeoEmbedElement } from './defaultRenderVimeoEmbedElement.js';
|
|
1
|
+
export { defaultRenderVimeoEmbedElement, defaultRenderVimeoEmbedJsxSerializer, defaultRenderVimeoEmbedPlaceholderElement } from './defaultRenderVimeoEmbedElement.js';
|
|
@@ -2,3 +2,5 @@ import React from 'react';
|
|
|
2
2
|
import { YoutubeEmbedElement } from '@quadrats/common/embed/strategies/youtube';
|
|
3
3
|
import { VideoIframeProps } from '@quadrats/react/embed';
|
|
4
4
|
export declare const defaultRenderYoutubeEmbedElement: (props: VideoIframeProps<YoutubeEmbedElement>) => React.JSX.Element;
|
|
5
|
+
export declare const defaultRenderYoutubeEmbedPlaceholderElement: () => React.JSX.Element;
|
|
6
|
+
export declare const defaultRenderYoutubeEmbedJsxSerializer: (props: VideoIframeProps<YoutubeEmbedElement>) => React.JSX.Element;
|
|
@@ -1,6 +1,30 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
+
import { Transforms } from '@quadrats/core';
|
|
3
|
+
import { useLocale } from '@quadrats/react';
|
|
4
|
+
import { Icon } from '@quadrats/react/components';
|
|
5
|
+
import { Youtube } from '@quadrats/icons';
|
|
6
|
+
import { YoutubeEmbedStrategy } from '@quadrats/common/embed/strategies/youtube';
|
|
2
7
|
import { VideoIframe } from '@quadrats/react/embed';
|
|
8
|
+
import { BaseEmbedElement, BaseEmbedElementWithoutToolbar } from '@quadrats/react/embed/renderers/base';
|
|
3
9
|
|
|
4
|
-
const defaultRenderYoutubeEmbedElement = (props) =>
|
|
10
|
+
const defaultRenderYoutubeEmbedElement = (props) => {
|
|
11
|
+
const { element } = props;
|
|
12
|
+
const locale = useLocale();
|
|
13
|
+
return (React.createElement(BaseEmbedElement, { element: element, placeholder: locale.editor.youtube.inputPlaceholder, hint: locale.editor.youtube.hint, confirmText: locale.editor.youtube.confirmText, onConfirm: (editor, path, value) => {
|
|
14
|
+
var _a;
|
|
15
|
+
Transforms.setNodes(editor, Object.assign(Object.assign({}, props.element), { videoId: (_a = YoutubeEmbedStrategy.serialize(value)) === null || _a === void 0 ? void 0 : _a.videoId }), { at: path });
|
|
16
|
+
} }, toolbarElement => React.createElement(VideoIframe, Object.assign({}, props, { toolbarElement: toolbarElement }))));
|
|
17
|
+
};
|
|
18
|
+
const defaultRenderYoutubeEmbedPlaceholderElement = () => {
|
|
19
|
+
const locale = useLocale();
|
|
20
|
+
return (React.createElement("div", { className: "qdr-embed-youtube__placeholder" },
|
|
21
|
+
React.createElement(Icon, { className: "qdr-embed__placeholder__icon", icon: Youtube, width: 48, height: 48 }),
|
|
22
|
+
React.createElement("p", { className: "qdr-embed__placeholder__title" }, locale.editor.youtube.blockPlaceholder)));
|
|
23
|
+
};
|
|
24
|
+
const defaultRenderYoutubeEmbedJsxSerializer = (props) => {
|
|
25
|
+
const { element } = props;
|
|
26
|
+
return (React.createElement(BaseEmbedElementWithoutToolbar, { element: element },
|
|
27
|
+
React.createElement(VideoIframe, Object.assign({}, props))));
|
|
28
|
+
};
|
|
5
29
|
|
|
6
|
-
export { defaultRenderYoutubeEmbedElement };
|
|
30
|
+
export { defaultRenderYoutubeEmbedElement, defaultRenderYoutubeEmbedJsxSerializer, defaultRenderYoutubeEmbedPlaceholderElement };
|
|
@@ -1,8 +1,34 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var React = require('react');
|
|
4
|
+
var core = require('@quadrats/core');
|
|
5
|
+
var react = require('@quadrats/react');
|
|
6
|
+
var components = require('@quadrats/react/components');
|
|
7
|
+
var icons = require('@quadrats/icons');
|
|
8
|
+
var youtube = require('@quadrats/common/embed/strategies/youtube');
|
|
4
9
|
var embed = require('@quadrats/react/embed');
|
|
10
|
+
var base = require('@quadrats/react/embed/renderers/base');
|
|
5
11
|
|
|
6
|
-
const defaultRenderYoutubeEmbedElement = (props) =>
|
|
12
|
+
const defaultRenderYoutubeEmbedElement = (props) => {
|
|
13
|
+
const { element } = props;
|
|
14
|
+
const locale = react.useLocale();
|
|
15
|
+
return (React.createElement(base.BaseEmbedElement, { element: element, placeholder: locale.editor.youtube.inputPlaceholder, hint: locale.editor.youtube.hint, confirmText: locale.editor.youtube.confirmText, onConfirm: (editor, path, value) => {
|
|
16
|
+
var _a;
|
|
17
|
+
core.Transforms.setNodes(editor, Object.assign(Object.assign({}, props.element), { videoId: (_a = youtube.YoutubeEmbedStrategy.serialize(value)) === null || _a === void 0 ? void 0 : _a.videoId }), { at: path });
|
|
18
|
+
} }, toolbarElement => React.createElement(embed.VideoIframe, Object.assign({}, props, { toolbarElement: toolbarElement }))));
|
|
19
|
+
};
|
|
20
|
+
const defaultRenderYoutubeEmbedPlaceholderElement = () => {
|
|
21
|
+
const locale = react.useLocale();
|
|
22
|
+
return (React.createElement("div", { className: "qdr-embed-youtube__placeholder" },
|
|
23
|
+
React.createElement(components.Icon, { className: "qdr-embed__placeholder__icon", icon: icons.Youtube, width: 48, height: 48 }),
|
|
24
|
+
React.createElement("p", { className: "qdr-embed__placeholder__title" }, locale.editor.youtube.blockPlaceholder)));
|
|
25
|
+
};
|
|
26
|
+
const defaultRenderYoutubeEmbedJsxSerializer = (props) => {
|
|
27
|
+
const { element } = props;
|
|
28
|
+
return (React.createElement(base.BaseEmbedElementWithoutToolbar, { element: element },
|
|
29
|
+
React.createElement(embed.VideoIframe, Object.assign({}, props))));
|
|
30
|
+
};
|
|
7
31
|
|
|
8
32
|
exports.defaultRenderYoutubeEmbedElement = defaultRenderYoutubeEmbedElement;
|
|
33
|
+
exports.defaultRenderYoutubeEmbedJsxSerializer = defaultRenderYoutubeEmbedJsxSerializer;
|
|
34
|
+
exports.defaultRenderYoutubeEmbedPlaceholderElement = defaultRenderYoutubeEmbedPlaceholderElement;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export
|
|
1
|
+
export * from './defaultRenderYoutubeEmbedElement';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
export { defaultRenderYoutubeEmbedElement } from './defaultRenderYoutubeEmbedElement.js';
|
|
1
|
+
export { defaultRenderYoutubeEmbedElement, defaultRenderYoutubeEmbedJsxSerializer, defaultRenderYoutubeEmbedPlaceholderElement } from './defaultRenderYoutubeEmbedElement.js';
|
|
@@ -1,15 +1,12 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { Editor } from '@quadrats/react';
|
|
3
|
-
import { InputWidgetConfig } from '@quadrats/common/input-widget';
|
|
4
2
|
import { ReactEmbed } from '@quadrats/react/embed';
|
|
5
3
|
import { ToolbarIconProps } from '@quadrats/react/toolbar';
|
|
6
|
-
export interface EmbedToolbarIconProps<Provider extends string> extends Omit<ToolbarIconProps, 'active' | 'onClick'
|
|
4
|
+
export interface EmbedToolbarIconProps<Provider extends string> extends Omit<ToolbarIconProps, 'active' | 'onClick'> {
|
|
7
5
|
controller: ReactEmbed<Provider>;
|
|
8
6
|
/**
|
|
9
|
-
* The
|
|
7
|
+
* The provider supported by this icon.
|
|
10
8
|
*/
|
|
11
|
-
|
|
12
|
-
startToolInput?: (editor: Editor, inputConfig: InputWidgetConfig) => void;
|
|
9
|
+
provider: Provider;
|
|
13
10
|
}
|
|
14
11
|
declare function EmbedToolbarIcon<Provider extends string>(props: EmbedToolbarIconProps<Provider>): React.JSX.Element;
|
|
15
12
|
export default EmbedToolbarIcon;
|
|
@@ -4,8 +4,8 @@ import { ToolbarIcon } from '@quadrats/react/toolbar';
|
|
|
4
4
|
import { useEmbedTool } from './useEmbedTool.js';
|
|
5
5
|
|
|
6
6
|
function EmbedToolbarIcon(props) {
|
|
7
|
-
const { controller,
|
|
8
|
-
const { onClick } = useEmbedTool(controller,
|
|
7
|
+
const { controller, provider } = props, rest = __rest(props, ["controller", "provider"]);
|
|
8
|
+
const { onClick } = useEmbedTool(controller, provider);
|
|
9
9
|
return React.createElement(ToolbarIcon, Object.assign({}, rest, { onClick: onClick }));
|
|
10
10
|
}
|
|
11
11
|
|
|
@@ -1,27 +1,112 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
+
var React = require('react');
|
|
4
|
+
var core = require('@quadrats/core');
|
|
3
5
|
var react = require('@quadrats/react');
|
|
4
|
-
var
|
|
6
|
+
var embed = require('@quadrats/common/embed');
|
|
5
7
|
var tslib = require('tslib');
|
|
6
|
-
var
|
|
8
|
+
var toolbar = require('@quadrats/react/toolbar');
|
|
7
9
|
|
|
8
|
-
function useEmbedTool(controller,
|
|
10
|
+
function useEmbedTool(controller, provider) {
|
|
11
|
+
const locale = react.useLocale();
|
|
9
12
|
const editor = react.useSlateStatic();
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
|
|
13
|
+
const { setEmbedModalConfig, isModalClosed, setIsModalClosed } = react.useModal();
|
|
14
|
+
const config = React.useMemo(() => {
|
|
15
|
+
switch (provider) {
|
|
16
|
+
case 'youtube':
|
|
17
|
+
return {
|
|
18
|
+
type: 'input',
|
|
19
|
+
placeholder: locale.editor.youtube.inputPlaceholder,
|
|
20
|
+
confirmText: locale.editor.youtube.confirmText,
|
|
21
|
+
hint: locale.editor.youtube.hint,
|
|
22
|
+
};
|
|
23
|
+
case 'vimeo':
|
|
24
|
+
return {
|
|
25
|
+
type: 'input',
|
|
26
|
+
placeholder: locale.editor.vimeo.inputPlaceholder,
|
|
27
|
+
confirmText: locale.editor.vimeo.confirmText,
|
|
28
|
+
hint: locale.editor.vimeo.hint,
|
|
29
|
+
};
|
|
30
|
+
case 'instagram':
|
|
31
|
+
return {
|
|
32
|
+
type: 'input',
|
|
33
|
+
placeholder: locale.editor.instagram.inputPlaceholder,
|
|
34
|
+
confirmText: locale.editor.instagram.confirmText,
|
|
35
|
+
hint: locale.editor.instagram.hint,
|
|
36
|
+
};
|
|
37
|
+
case 'facebook':
|
|
38
|
+
return {
|
|
39
|
+
type: 'textarea',
|
|
40
|
+
placeholder: locale.editor.facebook.inputPlaceholder,
|
|
41
|
+
confirmText: locale.editor.facebook.confirmText,
|
|
42
|
+
hint: locale.editor.facebook.hint,
|
|
43
|
+
};
|
|
44
|
+
case 'twitter':
|
|
45
|
+
return {
|
|
46
|
+
type: 'input',
|
|
47
|
+
placeholder: locale.editor.twitter.tweet.inputPlaceholder,
|
|
48
|
+
confirmText: locale.editor.twitter.tweet.confirmText,
|
|
49
|
+
hint: locale.editor.twitter.tweet.hint,
|
|
50
|
+
};
|
|
51
|
+
case 'podcastApple':
|
|
52
|
+
return {
|
|
53
|
+
type: 'input',
|
|
54
|
+
placeholder: locale.editor.podcastApple.inputPlaceholder,
|
|
55
|
+
confirmText: locale.editor.podcastApple.confirmText,
|
|
56
|
+
hint: locale.editor.podcastApple.hint,
|
|
57
|
+
};
|
|
58
|
+
case 'spotify':
|
|
59
|
+
return {
|
|
60
|
+
type: 'input',
|
|
61
|
+
placeholder: locale.editor.spotify.inputPlaceholder,
|
|
62
|
+
confirmText: locale.editor.spotify.confirmText,
|
|
63
|
+
hint: locale.editor.spotify.hint,
|
|
64
|
+
};
|
|
65
|
+
default:
|
|
66
|
+
return {
|
|
67
|
+
type: 'input',
|
|
68
|
+
placeholder: '',
|
|
69
|
+
confirmText: '',
|
|
70
|
+
hint: '',
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
}, [locale, provider]);
|
|
74
|
+
React.useEffect(() => {
|
|
75
|
+
const [match] = core.Editor.nodes(editor, {
|
|
76
|
+
at: [],
|
|
77
|
+
match: (node) => {
|
|
78
|
+
const placeholderElement = node;
|
|
79
|
+
return (core.Element.isElement(placeholderElement) &&
|
|
80
|
+
placeholderElement.type === embed.EMBED_PLACEHOLDER_TYPE &&
|
|
81
|
+
placeholderElement.provider === provider);
|
|
82
|
+
},
|
|
83
|
+
});
|
|
84
|
+
if (match) {
|
|
85
|
+
setEmbedModalConfig(Object.assign({ onConfirm: (value) => {
|
|
86
|
+
controller.removeEmbedPlaceholder(editor);
|
|
87
|
+
controller.insertEmbed(editor, provider, value);
|
|
88
|
+
} }, config));
|
|
89
|
+
}
|
|
90
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
91
|
+
}, [config, controller, editor, provider]);
|
|
92
|
+
React.useEffect(() => {
|
|
93
|
+
if (isModalClosed) {
|
|
94
|
+
setTimeout(() => {
|
|
95
|
+
controller.removeEmbedPlaceholder(editor);
|
|
96
|
+
setIsModalClosed(false);
|
|
97
|
+
}, 250);
|
|
98
|
+
}
|
|
99
|
+
}, [controller, editor, isModalClosed, setIsModalClosed]);
|
|
14
100
|
return {
|
|
15
|
-
onClick: () =>
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
}),
|
|
101
|
+
onClick: () => {
|
|
102
|
+
controller.insertEmbedPlaceholder(editor, provider);
|
|
103
|
+
},
|
|
19
104
|
};
|
|
20
105
|
}
|
|
21
106
|
|
|
22
107
|
function EmbedToolbarIcon(props) {
|
|
23
|
-
const { controller,
|
|
24
|
-
const { onClick } = useEmbedTool(controller,
|
|
108
|
+
const { controller, provider } = props, rest = tslib.__rest(props, ["controller", "provider"]);
|
|
109
|
+
const { onClick } = useEmbedTool(controller, provider);
|
|
25
110
|
return React.createElement(toolbar.ToolbarIcon, Object.assign({}, rest, { onClick: onClick }));
|
|
26
111
|
}
|
|
27
112
|
|
|
@@ -1,6 +1,4 @@
|
|
|
1
|
-
import { InputWidgetConfig } from '@quadrats/common/input-widget';
|
|
2
|
-
import { Editor } from '@quadrats/react';
|
|
3
1
|
import { ReactEmbed } from '@quadrats/react/embed';
|
|
4
|
-
export declare function useEmbedTool<P extends string>(controller: ReactEmbed<P>,
|
|
2
|
+
export declare function useEmbedTool<P extends string>(controller: ReactEmbed<P>, provider: P): {
|
|
5
3
|
onClick: () => void;
|
|
6
4
|
};
|