@quadrats/react 0.7.6 → 0.7.7

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.
Files changed (89) hide show
  1. package/_internal/renderer/composeRenderElementsBase.d.ts +1 -1
  2. package/_internal/renderer/composeRenderLeafsBase.d.ts +1 -1
  3. package/_internal/renderer/createRenderElementBase.d.ts +1 -1
  4. package/_internal/renderer/createRenderElementsBase.d.ts +1 -1
  5. package/_internal/renderer/createRenderMarkBase.d.ts +1 -1
  6. package/_internal/renderer/typings.d.ts +1 -1
  7. package/blockquote/defaultRenderBlockquoteElement.d.ts +2 -8
  8. package/blockquote/jsx-serializer/createJsxSerializeBlockquote.d.ts +1 -2
  9. package/blockquote/typings.d.ts +1 -1
  10. package/bold/jsx-serializer/createJsxSerializeBold.d.ts +1 -2
  11. package/components/Tooltip/index.js +3 -2
  12. package/components/index.cjs.js +3 -2
  13. package/configs/locale.d.ts +0 -1
  14. package/core/components/Editable.d.ts +2 -2
  15. package/core/composeRenderElements.d.ts +1 -1
  16. package/core/composeRenderLeafs.d.ts +1 -1
  17. package/core/createRenderElement.d.ts +1 -2
  18. package/core/createRenderElements.d.ts +1 -2
  19. package/core/createRenderMark.d.ts +1 -2
  20. package/core/typings/renderer.d.ts +1 -1
  21. package/divider/jsx-serializer/createJsxSerializeDivider.d.ts +1 -2
  22. package/divider/typings.d.ts +1 -1
  23. package/embed/createRenderEmbedElementBase.d.ts +1 -1
  24. package/embed/hooks/useVideoIframeSize.d.ts +1 -2
  25. package/embed/jsx-serializer/createJsxSerializeEmbed.d.ts +2 -2
  26. package/embed/jsx-serializer/facebook/index.cjs.js +7 -0
  27. package/embed/jsx-serializer/index.cjs.js +4 -4
  28. package/embed/jsx-serializer/instagram/index.cjs.js +7 -0
  29. package/embed/jsx-serializer/twitter/index.cjs.js +7 -0
  30. package/embed/jsx-serializer/vimeo/index.cjs.js +7 -0
  31. package/embed/jsx-serializer/youtube/index.cjs.js +7 -0
  32. package/embed/renderers/instagram/components/Instagram.js +19 -1
  33. package/embed/renderers/instagram/index.cjs.js +18 -0
  34. package/embed/typings.d.ts +1 -1
  35. package/file-uploader/typings.d.ts +1 -1
  36. package/footnote/defaultRenderFootnoteElement.d.ts +3 -3
  37. package/footnote/jsx-serializer/createJsxSerializeFootnote.d.ts +1 -2
  38. package/footnote/jsx-serializer/defaultRenderFootnoteElement.d.ts +3 -1
  39. package/footnote/jsx-serializer/defaultRenderFootnoteElement.js +4 -2
  40. package/footnote/jsx-serializer/index.cjs.js +4 -2
  41. package/footnote/typings.d.ts +1 -1
  42. package/heading/defaultRenderHeadingElement.d.ts +2 -8
  43. package/heading/jsx-serializer/createJsxSerializeHeading.d.ts +1 -2
  44. package/heading/typings.d.ts +1 -1
  45. package/highlight/jsx-serializer/createJsxSerializeHighlight.d.ts +1 -2
  46. package/image/createReactImage.d.ts +6 -2
  47. package/image/createReactImage.js +17 -1
  48. package/image/hooks/useImageResizer.d.ts +1 -2
  49. package/image/index.cjs.js +17 -1
  50. package/image/jsx-serializer/createJsxSerializeImage.d.ts +1 -2
  51. package/image/jsx-serializer/typings.d.ts +1 -1
  52. package/image/typings.d.ts +1 -1
  53. package/index.cjs.js +7 -0
  54. package/input-block/createReactInputBlock.js +1 -1
  55. package/input-block/hooks/useInputBlock.d.ts +1 -1
  56. package/input-block/index.cjs.js +1 -1
  57. package/input-block/typings.d.ts +1 -1
  58. package/italic/jsx-serializer/createJsxSerializeItalic.d.ts +1 -2
  59. package/jsx-serializer/createJsxSerializeElement.d.ts +1 -2
  60. package/jsx-serializer/createJsxSerializeElements.d.ts +1 -2
  61. package/jsx-serializer/createJsxSerializeMark.d.ts +1 -2
  62. package/jsx-serializer/createJsxSerializer.d.ts +1 -1
  63. package/line-break/createOnKeyDownBreak.js +1 -1
  64. package/line-break/jsx-serializer/createJsxSerializeLineBreak.d.ts +1 -2
  65. package/line-break/typings.d.ts +1 -1
  66. package/link/defaultRenderLinkElement.d.ts +3 -3
  67. package/link/jsx-serializer/createJsxSerializeLink.d.ts +1 -2
  68. package/link/toolbar/index.cjs.js +6 -1
  69. package/link/toolbar/useLinkTool.js +6 -1
  70. package/link/typings.d.ts +1 -1
  71. package/list/defaultRenderListElements.d.ts +1 -1
  72. package/list/jsx-serializer/createJsxSerializeList.d.ts +1 -2
  73. package/list/typings.d.ts +1 -1
  74. package/package.json +9 -8
  75. package/paragraph/createRenderParagraphElement.d.ts +2 -2
  76. package/paragraph/defaultRenderParagraphElement.d.ts +1 -7
  77. package/paragraph/jsx-serializer/createJsxSerializeParagraph.d.ts +1 -2
  78. package/paragraph/renderParagraphElementWithSymbol.d.ts +1 -7
  79. package/read-more/jsx-serializer/createJsxSerializeReadMore.d.ts +1 -2
  80. package/read-more/typings.d.ts +1 -1
  81. package/strikethrough/jsx-serializer/createJsxSerializeStrikethrough.d.ts +1 -2
  82. package/toggle-mark/jsx-serializer/createJsxSerializeToggleMarkCreator.d.ts +1 -2
  83. package/toolbar/components/Toolbar.d.ts +10 -2
  84. package/toolbar/components/Toolbar.js +24 -17
  85. package/toolbar/contexts/StartToolInputContext.d.ts +0 -1
  86. package/toolbar/index.cjs.js +23 -16
  87. package/toolbar/toolbar.css +1 -1
  88. package/toolbar/toolbar.scss +26 -11
  89. package/underline/jsx-serializer/createJsxSerializeUnderline.d.ts +1 -2
@@ -1,3 +1,3 @@
1
- /// <reference types="react" />
1
+ import { JSX } from 'react';
2
2
  import { RenderElementPropsBase } from './typings';
3
3
  export declare function composeRenderElementsBase<P extends RenderElementPropsBase>(renderDefault: (props: P) => JSX.Element, renderElements: ((props: P) => JSX.Element | null | undefined)[]): (props: P) => JSX.Element;
@@ -1,3 +1,3 @@
1
- /// <reference types="react" />
1
+ import { JSX } from 'react';
2
2
  import { RenderLeafPropsBase } from './typings';
3
3
  export declare function composeRenderLeafsBase<P extends RenderLeafPropsBase>(renderDefault: (props: P) => JSX.Element, renderLeafs: ((props: P) => JSX.Element)[]): (props: P) => JSX.Element;
@@ -1,3 +1,3 @@
1
- /// <reference types="react" />
1
+ import { JSX } from 'react';
2
2
  import { CreateRenderElementOptionsBase, RenderElementPropsBase } from './typings';
3
3
  export declare function createRenderElementBase<P extends RenderElementPropsBase, RP extends RenderElementPropsBase>({ type, render, }: CreateRenderElementOptionsBase<P>): (props: RP) => JSX.Element | null | undefined;
@@ -1,3 +1,3 @@
1
- /// <reference types="react" />
1
+ import { JSX } from 'react';
2
2
  import { CreateRenderElementOptionsBase, RenderElementPropsBase } from './typings';
3
3
  export declare function createRenderElementsBase<P extends RenderElementPropsBase, RP extends RenderElementPropsBase>(options: CreateRenderElementOptionsBase<P>[]): (props: RP) => JSX.Element | null | undefined;
@@ -1,3 +1,3 @@
1
- /// <reference types="react" />
1
+ import { JSX } from 'react';
2
2
  import { CreateRenderMarkOptionsBase, RenderLeafPropsBase, RenderMarkPropsBase } from './typings';
3
3
  export declare function createRenderMarkBase<M, P extends RenderMarkPropsBase<M>>(options: CreateRenderMarkOptionsBase<M, P>): (props: Omit<P, Exclude<keyof RenderMarkPropsBase<M>, keyof RenderLeafPropsBase>>) => JSX.Element;
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import { JSX } from 'react';
2
2
  import { QuadratsElement, Text, WithElementType, WithMarkType } from '@quadrats/core';
3
3
  export interface RenderLeafPropsBase {
4
4
  children: any;
@@ -1,12 +1,6 @@
1
1
  import React from 'react';
2
2
  import { RenderElementProps } from '@quadrats/react';
3
3
  export declare const defaultRenderBlockquoteElement: ({ attributes, children, }: {
4
- attributes?: {
5
- 'data-slate-node': "element";
6
- 'data-slate-inline'?: true | undefined;
7
- 'data-slate-void'?: true | undefined;
8
- dir?: "rtl" | undefined;
9
- ref: any;
10
- } | undefined;
11
- children: RenderElementProps['children'];
4
+ attributes?: RenderElementProps["attributes"];
5
+ children: RenderElementProps["children"];
12
6
  }) => React.JSX.Element;
@@ -1,5 +1,4 @@
1
- /// <reference types="react" />
2
1
  import { CreateJsxSerializeElementOptions } from '@quadrats/react/jsx-serializer';
3
2
  import { JsxSerializeBlockquoteElementProps } from './typings';
4
3
  export type CreateJsxSerializeBlockquoteOptions = Partial<CreateJsxSerializeElementOptions<JsxSerializeBlockquoteElementProps>>;
5
- export declare function createJsxSerializeBlockquote(options?: CreateJsxSerializeBlockquoteOptions): (props: import("@quadrats/react/jsx-serializer").JsxSerializeElementProps) => JSX.Element | null | undefined;
4
+ export declare function createJsxSerializeBlockquote(options?: CreateJsxSerializeBlockquoteOptions): (props: import("@quadrats/react/jsx-serializer").JsxSerializeElementProps) => import("react").JSX.Element | null | undefined;
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import { JSX } from 'react';
2
2
  import { BlockquoteElement, Blockquote } from '@quadrats/common/blockquote';
3
3
  import { Editor } from '@quadrats/core';
4
4
  import { WithCreateHandlers, WithCreateRenderElement, RenderElementProps } from '@quadrats/react';
@@ -1,2 +1 @@
1
- /// <reference types="react" />
2
- export declare const createJsxSerializeBold: (options?: Partial<import("@quadrats/react/toggle-mark/jsx-serializer").CreateJsxSerializeToggleMarkCreatorOptions> | undefined) => (props: Omit<import("@quadrats/react/jsx-serializer").JsxSerializeMarkProps<boolean>, "mark">) => JSX.Element;
1
+ export declare const createJsxSerializeBold: (options?: import("@quadrats/react/toggle-mark/jsx-serializer").CreateJsxSerializeToggleMarkOptions) => (props: Omit<import("@quadrats/react/jsx-serializer").JsxSerializeMarkProps<boolean>, "mark">) => import("react").JSX.Element;
@@ -24,6 +24,7 @@ function Tooltip({ children, triggers = defaultTriggers, popup, getContainer = d
24
24
  const { props: themeProps } = useContext(ThemeContext);
25
25
  const [visible, setVisible] = useState(false);
26
26
  const delayTimer = useRef(NaN);
27
+ const nodeRef = useRef(null);
27
28
  const clearDelayTimer = useCallback(() => {
28
29
  if (delayTimer.current) {
29
30
  window.clearTimeout(delayTimer.current);
@@ -107,8 +108,8 @@ function Tooltip({ children, triggers = defaultTriggers, popup, getContainer = d
107
108
  }, [visible]);
108
109
  return (React.createElement(React.Fragment, null,
109
110
  React.createElement(Portal, { getContainer: getContainer },
110
- React.createElement(CSSTransition, { in: visible, classNames: transitionClassNames, timeout: 200, unmountOnExit: true },
111
- React.createElement("div", { className: `${clsPrefix}__mask` },
111
+ React.createElement(CSSTransition, { nodeRef: nodeRef, in: visible, classNames: transitionClassNames, timeout: 200, unmountOnExit: true },
112
+ React.createElement("div", { ref: nodeRef, className: `${clsPrefix}__mask` },
112
113
  React.createElement("div", Object.assign({ className: clsx(themeProps.className, `${clsPrefix}__popup`, `${clsPrefix}__popup--${firstPlacement}`), ref: popupRef, style: themeProps.style }, popupProps),
113
114
  React.createElement("div", { className: clsx(`${clsPrefix}__arrow`, `${clsPrefix}__arrow--${firstPlacement}`, {
114
115
  [`${clsPrefix}__arrow--${placement}`]: secondPlacement,
@@ -128,6 +128,7 @@ function Tooltip({ children, triggers = defaultTriggers, popup, getContainer = d
128
128
  const { props: themeProps } = React.useContext(configs.ThemeContext);
129
129
  const [visible, setVisible] = React.useState(false);
130
130
  const delayTimer = React.useRef(NaN);
131
+ const nodeRef = React.useRef(null);
131
132
  const clearDelayTimer = React.useCallback(() => {
132
133
  if (delayTimer.current) {
133
134
  window.clearTimeout(delayTimer.current);
@@ -211,8 +212,8 @@ function Tooltip({ children, triggers = defaultTriggers, popup, getContainer = d
211
212
  }, [visible]);
212
213
  return (React.createElement(React.Fragment, null,
213
214
  React.createElement(Portal, { getContainer: getContainer },
214
- React.createElement(reactTransitionGroup.CSSTransition, { in: visible, classNames: transitionClassNames, timeout: 200, unmountOnExit: true },
215
- React.createElement("div", { className: `${clsPrefix}__mask` },
215
+ React.createElement(reactTransitionGroup.CSSTransition, { nodeRef: nodeRef, in: visible, classNames: transitionClassNames, timeout: 200, unmountOnExit: true },
216
+ React.createElement("div", { ref: nodeRef, className: `${clsPrefix}__mask` },
216
217
  React.createElement("div", Object.assign({ className: clsx(themeProps.className, `${clsPrefix}__popup`, `${clsPrefix}__popup--${firstPlacement}`), ref: popupRef, style: themeProps.style }, popupProps),
217
218
  React.createElement("div", { className: clsx(`${clsPrefix}__arrow`, `${clsPrefix}__arrow--${firstPlacement}`, {
218
219
  [`${clsPrefix}__arrow--${placement}`]: secondPlacement,
@@ -1,4 +1,3 @@
1
- /// <reference types="react" />
2
1
  import { LocaleDefinition } from '@quadrats/locales';
3
2
  export declare const LocaleContext: import("react").Context<LocaleDefinition>;
4
3
  export declare function useLocale(): LocaleDefinition;
@@ -1,9 +1,9 @@
1
- import React from 'react';
1
+ import { JSX } from 'react';
2
2
  import { EditableProps as SlateEditableProps } from 'slate-react/dist/components/editable';
3
3
  import { RenderElementProps, RenderLeafProps } from '../typings/renderer';
4
4
  export type EditableProps = Omit<SlateEditableProps, 'renderLeaf' | 'renderElement'> & {
5
5
  renderLeaf?: (props: RenderLeafProps) => JSX.Element;
6
6
  renderElement?: (props: RenderElementProps) => JSX.Element;
7
7
  };
8
- declare function Editable(props: EditableProps): React.JSX.Element;
8
+ declare function Editable(props: EditableProps): JSX.Element;
9
9
  export default Editable;
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import { JSX } from 'react';
2
2
  import { RenderElementProps } from './typings/renderer';
3
3
  /**
4
4
  * To compose sequential `renderElement`s to single.
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import { JSX } from 'react';
2
2
  import { RenderLeafProps } from './typings/renderer';
3
3
  /**
4
4
  * To compose sequential `renderLeaf`s or `renderMark`s to single.
@@ -1,3 +1,2 @@
1
- /// <reference types="react" />
2
1
  import { CreateRenderElementOptions, RenderElementProps } from './typings/renderer';
3
- export declare function createRenderElement<P extends RenderElementProps>(options: CreateRenderElementOptions<P>): (props: RenderElementProps) => JSX.Element | null | undefined;
2
+ export declare function createRenderElement<P extends RenderElementProps>(options: CreateRenderElementOptions<P>): (props: RenderElementProps) => import("react").JSX.Element | null | undefined;
@@ -1,3 +1,2 @@
1
- /// <reference types="react" />
2
1
  import { CreateRenderElementOptions, RenderElementProps } from './typings/renderer';
3
- export declare function createRenderElements<P extends RenderElementProps>(options: CreateRenderElementOptions<P>[]): (props: RenderElementProps) => JSX.Element | null | undefined;
2
+ export declare function createRenderElements<P extends RenderElementProps>(options: CreateRenderElementOptions<P>[]): (props: RenderElementProps) => import("react").JSX.Element | null | undefined;
@@ -1,3 +1,2 @@
1
- /// <reference types="react" />
2
1
  import { CreateRenderMarkOptions } from './typings/renderer';
3
- export declare function createRenderMark<M>(options: CreateRenderMarkOptions<M>): (props: Omit<import("./typings/renderer").RenderMarkProps<M>, "mark">) => JSX.Element;
2
+ export declare function createRenderMark<M>(options: CreateRenderMarkOptions<M>): (props: Omit<import("./typings/renderer").RenderMarkProps<M>, "mark">) => import("react").JSX.Element;
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import { JSX } from 'react';
2
2
  import { RenderElementProps as SlateReactRenderElementProps, RenderLeafProps as SlateRenderLeafProps } from 'slate-react';
3
3
  import { QuadratsElement } from '@quadrats/core';
4
4
  import { CreateRenderElementOptionsBase, CreateRenderMarkOptionsBase, RenderElementPropsBase, RenderLeafPropsBase, RenderMarkPropsBase } from '@quadrats/react/_internal';
@@ -1,5 +1,4 @@
1
- /// <reference types="react" />
2
1
  import { CreateJsxSerializeElementOptions } from '@quadrats/react/jsx-serializer';
3
2
  import { JsxSerializeDividerProps } from './typings';
4
3
  export type CreateJsxSerializeDividerOptions = Partial<CreateJsxSerializeElementOptions<JsxSerializeDividerProps>>;
5
- export declare function createJsxSerializeDivider(options?: CreateJsxSerializeDividerOptions): (props: import("@quadrats/react/jsx-serializer").JsxSerializeElementProps) => JSX.Element | null | undefined;
4
+ export declare function createJsxSerializeDivider(options?: CreateJsxSerializeDividerOptions): (props: import("@quadrats/react/jsx-serializer").JsxSerializeElementProps) => import("react").JSX.Element | null | undefined;
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import { JSX } from 'react';
2
2
  import { Divider, DividerElement } from '@quadrats/common/divider';
3
3
  import { Editor } from '@quadrats/core';
4
4
  import { WithCreateRenderElement, RenderElementProps } from '@quadrats/react';
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import { JSX } from 'react';
2
2
  import { EmbedElement, EmbedStrategies } from '@quadrats/common/embed';
3
3
  import { RenderElementPropsBase } from '@quadrats/react/_internal';
4
4
  import { WithEmbedRenderData } from './typings';
@@ -1,6 +1,5 @@
1
- /// <reference types="react" />
2
1
  export declare function useVideoIframeSize<E extends HTMLElement>(): {
3
- ref: import("react").RefObject<E>;
2
+ ref: import("react").RefObject<E | null>;
4
3
  size: {
5
4
  width: number;
6
5
  height: number;
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import { JSX } from 'react';
2
2
  import { EmbedStrategies } from '@quadrats/common/embed';
3
3
  import { JsxSerializeEmbedElementProps } from './typings';
4
4
  export interface CreateJsxSerializeEmbedOptions<Provider extends string> {
@@ -6,4 +6,4 @@ export interface CreateJsxSerializeEmbedOptions<Provider extends string> {
6
6
  strategies: EmbedStrategies<Provider>;
7
7
  renderers: Record<Provider, (props: JsxSerializeEmbedElementProps<any, any>) => JSX.Element | null | undefined>;
8
8
  }
9
- export declare function createJsxSerializeEmbed<Provider extends string>(options: CreateJsxSerializeEmbedOptions<Provider>): (props: import("@quadrats/react/jsx-serializer").JsxSerializeElementProps) => JSX.Element | null | undefined;
9
+ export declare function createJsxSerializeEmbed<Provider extends string>(options: CreateJsxSerializeEmbedOptions<Provider>): (props: import("@quadrats/react/jsx-serializer").JsxSerializeElementProps) => import("react").JSX.Element | null | undefined;
@@ -4,6 +4,13 @@ var facebook = require('@quadrats/react/embed/renderers/facebook');
4
4
 
5
5
 
6
6
 
7
+ Object.prototype.hasOwnProperty.call(facebook, '__proto__') &&
8
+ !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&
9
+ Object.defineProperty(exports, '__proto__', {
10
+ enumerable: true,
11
+ value: facebook['__proto__']
12
+ });
13
+
7
14
  Object.keys(facebook).forEach(function (k) {
8
15
  if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = facebook[k];
9
16
  });
@@ -1,14 +1,14 @@
1
1
  'use strict';
2
2
 
3
- var embed$1 = require('@quadrats/common/embed');
4
- var embed = require('@quadrats/react/embed');
3
+ var embed = require('@quadrats/common/embed');
4
+ var embed$1 = require('@quadrats/react/embed');
5
5
  var jsxSerializer = require('@quadrats/react/jsx-serializer');
6
6
 
7
7
  function createJsxSerializeEmbed(options) {
8
- const { type = embed$1.EMBED_TYPE, strategies, renderers } = options;
8
+ const { type = embed.EMBED_TYPE, strategies, renderers } = options;
9
9
  return jsxSerializer.createJsxSerializeElement({
10
10
  type,
11
- render: embed.createRenderEmbedElementBase({ strategies, renderers }),
11
+ render: embed$1.createRenderEmbedElementBase({ strategies, renderers }),
12
12
  });
13
13
  }
14
14
 
@@ -4,6 +4,13 @@ var instagram = require('@quadrats/react/embed/renderers/instagram');
4
4
 
5
5
 
6
6
 
7
+ Object.prototype.hasOwnProperty.call(instagram, '__proto__') &&
8
+ !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&
9
+ Object.defineProperty(exports, '__proto__', {
10
+ enumerable: true,
11
+ value: instagram['__proto__']
12
+ });
13
+
7
14
  Object.keys(instagram).forEach(function (k) {
8
15
  if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = instagram[k];
9
16
  });
@@ -4,6 +4,13 @@ var twitter = require('@quadrats/react/embed/renderers/twitter');
4
4
 
5
5
 
6
6
 
7
+ Object.prototype.hasOwnProperty.call(twitter, '__proto__') &&
8
+ !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&
9
+ Object.defineProperty(exports, '__proto__', {
10
+ enumerable: true,
11
+ value: twitter['__proto__']
12
+ });
13
+
7
14
  Object.keys(twitter).forEach(function (k) {
8
15
  if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = twitter[k];
9
16
  });
@@ -4,6 +4,13 @@ var vimeo = require('@quadrats/react/embed/renderers/vimeo');
4
4
 
5
5
 
6
6
 
7
+ Object.prototype.hasOwnProperty.call(vimeo, '__proto__') &&
8
+ !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&
9
+ Object.defineProperty(exports, '__proto__', {
10
+ enumerable: true,
11
+ value: vimeo['__proto__']
12
+ });
13
+
7
14
  Object.keys(vimeo).forEach(function (k) {
8
15
  if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = vimeo[k];
9
16
  });
@@ -4,6 +4,13 @@ var youtube = require('@quadrats/react/embed/renderers/youtube');
4
4
 
5
5
 
6
6
 
7
+ Object.prototype.hasOwnProperty.call(youtube, '__proto__') &&
8
+ !Object.prototype.hasOwnProperty.call(exports, '__proto__') &&
9
+ Object.defineProperty(exports, '__proto__', {
10
+ enumerable: true,
11
+ value: youtube['__proto__']
12
+ });
13
+
7
14
  Object.keys(youtube).forEach(function (k) {
8
15
  if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = youtube[k];
9
16
  });
@@ -1,8 +1,26 @@
1
- import React from 'react';
1
+ import React, { useEffect } from 'react';
2
2
  import { useLoadInstagramEmbedApi } from '../hooks/useLoadInstagramEmbedApi.js';
3
3
 
4
4
  function Instagram({ attributes, children, data: permalink }) {
5
5
  useLoadInstagramEmbedApi(permalink);
6
+ useEffect(() => {
7
+ const observer = new MutationObserver((mutations) => {
8
+ mutations.forEach((mutation) => {
9
+ mutation.addedNodes.forEach((node) => {
10
+ if (node.tagName === 'IFRAME') {
11
+ const iframeNode = node;
12
+ if (iframeNode.src.includes('instagram.com')) {
13
+ iframeNode.setAttribute('title', 'Instagram 貼文');
14
+ }
15
+ }
16
+ });
17
+ });
18
+ });
19
+ observer.observe(document.body, { childList: true, subtree: true });
20
+ return () => {
21
+ observer.disconnect();
22
+ };
23
+ }, []);
6
24
  return (React.createElement("div", Object.assign({}, attributes, { className: "qdr-embed-instagram", contentEditable: false, style: {
7
25
  display: 'flex',
8
26
  marginBottom: -12,
@@ -28,6 +28,24 @@ function useLoadInstagramEmbedApi(permalink) {
28
28
 
29
29
  function Instagram({ attributes, children, data: permalink }) {
30
30
  useLoadInstagramEmbedApi(permalink);
31
+ React.useEffect(() => {
32
+ const observer = new MutationObserver((mutations) => {
33
+ mutations.forEach((mutation) => {
34
+ mutation.addedNodes.forEach((node) => {
35
+ if (node.tagName === 'IFRAME') {
36
+ const iframeNode = node;
37
+ if (iframeNode.src.includes('instagram.com')) {
38
+ iframeNode.setAttribute('title', 'Instagram 貼文');
39
+ }
40
+ }
41
+ });
42
+ });
43
+ });
44
+ observer.observe(document.body, { childList: true, subtree: true });
45
+ return () => {
46
+ observer.disconnect();
47
+ };
48
+ }, []);
31
49
  return (React.createElement("div", Object.assign({}, attributes, { className: "qdr-embed-instagram", contentEditable: false, style: {
32
50
  display: 'flex',
33
51
  marginBottom: -12,
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import { JSX } from 'react';
2
2
  import { Embed, EmbedElement } from '@quadrats/common/embed';
3
3
  import { WithCreateRenderElement, RenderElementProps, Editor } from '@quadrats/react';
4
4
  export interface WithEmbedRenderData<RenderData> {
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import { JSX } from 'react';
2
2
  import { FileUploader, FileUploaderElement } from '@quadrats/common/file-uploader';
3
3
  import { Editor, RenderElementProps, WithCreateRenderElement } from '@quadrats/react';
4
4
  export type RenderFileUploaderElementProps = RenderElementProps<FileUploaderElement>;
@@ -3,7 +3,7 @@ import { RenderFootnoteElementProps } from './typings';
3
3
  /**
4
4
  * Set placement of tooltip to `bottom` to avoid conflicting w/ toolbar.
5
5
  */
6
- export declare const defaultRenderFootnoteElement: ({ attributes, children, element, placement, }: import("@quadrats/react/_internal").RenderElementPropsBase<import("@quadrats/common/footnote").FootnoteElement> & Pick<import("slate-react").RenderElementProps, "attributes"> & {
7
- placement?: "top" | "bottom" | undefined;
8
- target?: string | undefined;
6
+ export declare const defaultRenderFootnoteElement: ({ attributes, children, element, placement, }: RenderFootnoteElementProps & {
7
+ placement?: "top" | "bottom";
8
+ target?: string;
9
9
  }) => React.JSX.Element;
@@ -1,5 +1,4 @@
1
- /// <reference types="react" />
2
1
  import { CreateJsxSerializeElementOptions } from '@quadrats/react/jsx-serializer';
3
2
  import { JsxSerializeFootnoteElementProps } from './typings';
4
3
  export type CreateJsxSerializeFootnoteOptions = Partial<CreateJsxSerializeElementOptions<JsxSerializeFootnoteElementProps>>;
5
- export declare function createJsxSerializeFootnote(options?: CreateJsxSerializeFootnoteOptions): (props: import("@quadrats/react/jsx-serializer").JsxSerializeElementProps) => JSX.Element | null | undefined;
4
+ export declare function createJsxSerializeFootnote(options?: CreateJsxSerializeFootnoteOptions): (props: import("@quadrats/react/jsx-serializer").JsxSerializeElementProps) => import("react").JSX.Element | null | undefined;
@@ -1,3 +1,5 @@
1
1
  import React from 'react';
2
2
  import { JsxSerializeFootnoteElementProps } from './typings';
3
- export declare const defaultRenderFootnoteElement: ({ children, element }: JsxSerializeFootnoteElementProps) => React.JSX.Element;
3
+ export declare const defaultRenderFootnoteElement: ({ children, element, placement }: JsxSerializeFootnoteElementProps & {
4
+ placement?: "top" | "bottom";
5
+ }) => React.JSX.Element;
@@ -1,9 +1,11 @@
1
1
  import React from 'react';
2
+ import { Tooltip } from '@quadrats/react/components';
2
3
 
3
- const defaultRenderFootnoteElement = ({ children, element }) => {
4
+ const defaultRenderFootnoteElement = ({ children, element, placement = 'bottom' }) => {
4
5
  var _a;
5
6
  return (React.createElement(React.Fragment, null,
6
- React.createElement("span", { className: "qdr-footnote-text", style: { textDecoration: 'underline' } }, children),
7
+ React.createElement(Tooltip, { placement: placement, popup: element.footnote },
8
+ React.createElement("span", { className: "qdr-footnote-text", style: { textDecoration: 'underline' } }, children)),
7
9
  React.createElement("sup", { className: "qdr-footnote-sup", style: { color: 'var(--qdr-sup)' } }, `[${(_a = element.index) !== null && _a !== void 0 ? _a : 1}]`)));
8
10
  };
9
11
 
@@ -1,13 +1,15 @@
1
1
  'use strict';
2
2
 
3
3
  var React = require('react');
4
+ var components = require('@quadrats/react/components');
4
5
  var jsxSerializer = require('@quadrats/react/jsx-serializer');
5
6
  var footnote = require('@quadrats/common/footnote');
6
7
 
7
- const defaultRenderFootnoteElement = ({ children, element }) => {
8
+ const defaultRenderFootnoteElement = ({ children, element, placement = 'bottom' }) => {
8
9
  var _a;
9
10
  return (React.createElement(React.Fragment, null,
10
- React.createElement("span", { className: "qdr-footnote-text", style: { textDecoration: 'underline' } }, children),
11
+ React.createElement(components.Tooltip, { placement: placement, popup: element.footnote },
12
+ React.createElement("span", { className: "qdr-footnote-text", style: { textDecoration: 'underline' } }, children)),
11
13
  React.createElement("sup", { className: "qdr-footnote-sup", style: { color: 'var(--qdr-sup)' } }, `[${(_a = element.index) !== null && _a !== void 0 ? _a : 1}]`)));
12
14
  };
13
15
 
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import { JSX } from 'react';
2
2
  import { Footnote, FootnoteElement } from '@quadrats/common/footnote';
3
3
  import { RenderElementProps, ReactWithable, WithCreateRenderElement, Editor } from '@quadrats/react';
4
4
  export type RenderFootnoteElementProps = RenderElementProps<FootnoteElement>;
@@ -10,13 +10,7 @@ export declare const HEADING_COMPONENTS: {
10
10
  readonly 6: "h6";
11
11
  };
12
12
  export declare const defaultRenderHeadingElement: ({ attributes, children, element, }: {
13
- attributes?: {
14
- 'data-slate-node': "element";
15
- 'data-slate-inline'?: true | undefined;
16
- 'data-slate-void'?: true | undefined;
17
- dir?: "rtl" | undefined;
18
- ref: any;
19
- } | undefined;
20
- children: RenderElementProps['children'];
13
+ attributes?: RenderElementProps["attributes"];
14
+ children: RenderElementProps["children"];
21
15
  element: HeadingElement;
22
16
  }) => React.JSX.Element | null;
@@ -1,5 +1,4 @@
1
- /// <reference types="react" />
2
1
  import { CreateJsxSerializeElementOptions } from '@quadrats/react/jsx-serializer';
3
2
  import { JsxSerializeHeadingElementProps } from './typings';
4
3
  export type CreateJsxSerializeHeadingOptions = Partial<CreateJsxSerializeElementOptions<JsxSerializeHeadingElementProps>>;
5
- export declare function createJsxSerializeHeading(options?: CreateJsxSerializeHeadingOptions): (props: import("@quadrats/react/jsx-serializer").JsxSerializeElementProps) => JSX.Element | null | undefined;
4
+ export declare function createJsxSerializeHeading(options?: CreateJsxSerializeHeadingOptions): (props: import("@quadrats/react/jsx-serializer").JsxSerializeElementProps) => import("react").JSX.Element | null | undefined;
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
1
+ import { JSX } from 'react';
2
2
  import { Heading, HeadingElement, HeadingLevel } from '@quadrats/common/heading';
3
3
  import { WithCreateHandlers, WithCreateRenderElement, RenderElementProps, Editor } from '@quadrats/react';
4
4
  export type RenderHeadingElementProps = RenderElementProps<HeadingElement>;
@@ -1,2 +1 @@
1
- /// <reference types="react" />
2
- export declare const createJsxSerializeHighlight: (variant?: string) => (props: Omit<import("@quadrats/react/jsx-serializer").JsxSerializeMarkProps<boolean>, "mark">) => JSX.Element;
1
+ export declare const createJsxSerializeHighlight: (variant?: string) => (props: Omit<import("@quadrats/react/jsx-serializer").JsxSerializeMarkProps<boolean>, "mark">) => import("react").JSX.Element;
@@ -1,4 +1,8 @@
1
- import { CreateImageOptions } from '@quadrats/common/image';
1
+ import { CreateImageOptions, Image } from '@quadrats/common/image';
2
+ import { FileUploaderUploadOptions } from '@quadrats/common/file-uploader';
3
+ import { QuadratsReactEditor } from '@quadrats/react';
2
4
  import { ReactImage } from './typings';
3
5
  export type CreateReactImageOptions<Hosting extends string> = CreateImageOptions<Hosting>;
4
- export declare function createReactImage<Hosting extends string>(options?: CreateReactImageOptions<Hosting>): ReactImage<Hosting>;
6
+ export declare function createReactImage<Hosting extends string>(options?: CreateReactImageOptions<Hosting>, getUploadOptions?: (image: Image<Hosting, QuadratsReactEditor>) => FileUploaderUploadOptions & {
7
+ type?: string;
8
+ }): ReactImage<Hosting>;
@@ -3,11 +3,13 @@ import isHotkey from 'is-hotkey';
3
3
  import { readFileAsDataURL } from '@quadrats/utils';
4
4
  import { Transforms } from '@quadrats/core';
5
5
  import { createImage, getImageFigureElementCommonProps, getImageElementCommonProps } from '@quadrats/common/image';
6
+ import { createFileUploaderElementByType, FILE_UPLOADER_TYPE, insertFileUploaderElement } from '@quadrats/common/file-uploader';
6
7
  import { createRenderElements } from '@quadrats/react';
7
8
  import { defaultRenderImageElements } from './defaultRenderImageElements.js';
8
9
 
9
- function createReactImage(options = {}) {
10
+ function createReactImage(options = {}, getUploadOptions) {
10
11
  const core = createImage(options);
12
+ const uploadOptions = getUploadOptions === null || getUploadOptions === void 0 ? void 0 : getUploadOptions(core);
11
13
  const { types } = core;
12
14
  return Object.assign(Object.assign({}, core), { createHandlers: () => ({
13
15
  onKeyDown(event, editor, next) {
@@ -63,8 +65,22 @@ function createReactImage(options = {}) {
63
65
  }, with(editor) {
64
66
  const { insertData } = editor;
65
67
  editor.insertData = (data) => {
68
+ var _a;
66
69
  const text = data.getData('text');
67
70
  const { files } = data;
71
+ /**
72
+ * Insert each image when upload options are set.
73
+ */
74
+ if (uploadOptions) {
75
+ const createFileUploaderElement = createFileUploaderElementByType((_a = uploadOptions.type) !== null && _a !== void 0 ? _a : FILE_UPLOADER_TYPE);
76
+ Array.from(files).reduce((prev, file) => __awaiter(this, void 0, void 0, function* () {
77
+ yield prev;
78
+ return createFileUploaderElement(editor, file, uploadOptions).then((fileUploaderElement) => {
79
+ insertFileUploaderElement(editor, fileUploaderElement);
80
+ });
81
+ }), Promise.resolve());
82
+ return;
83
+ }
68
84
  /**
69
85
  * Insert image if inserted text is image url.
70
86
  */
@@ -1,8 +1,7 @@
1
- /// <reference types="react" />
2
1
  import { ImageElement } from '@quadrats/common/image';
3
2
  import { ReactImage } from '../typings';
4
3
  export declare function useImageResizer(element: ImageElement, resizeImage: ReactImage<any>['resizeImage']): {
5
- imageRef: import("react").RefObject<HTMLImageElement>;
4
+ imageRef: import("react").RefObject<HTMLImageElement | null>;
6
5
  focusedAndSelected: boolean;
7
6
  onResizeStart: (event: React.MouseEvent | React.TouchEvent) => void;
8
7
  };
@@ -8,6 +8,7 @@ var tslib = require('tslib');
8
8
  var isHotkey = require('is-hotkey');
9
9
  var utils = require('@quadrats/utils');
10
10
  var image = require('@quadrats/common/image');
11
+ var fileUploader = require('@quadrats/common/file-uploader');
11
12
 
12
13
  function ImageFigure(props) {
13
14
  const { attributes, children, style } = props;
@@ -144,8 +145,9 @@ const defaultRenderImageElements = {
144
145
  caption: props => React.createElement(ImageCaption, Object.assign({}, props)),
145
146
  };
146
147
 
147
- function createReactImage(options = {}) {
148
+ function createReactImage(options = {}, getUploadOptions) {
148
149
  const core$1 = image.createImage(options);
150
+ const uploadOptions = getUploadOptions === null || getUploadOptions === void 0 ? void 0 : getUploadOptions(core$1);
149
151
  const { types } = core$1;
150
152
  return Object.assign(Object.assign({}, core$1), { createHandlers: () => ({
151
153
  onKeyDown(event, editor, next) {
@@ -201,8 +203,22 @@ function createReactImage(options = {}) {
201
203
  }, with(editor) {
202
204
  const { insertData } = editor;
203
205
  editor.insertData = (data) => {
206
+ var _a;
204
207
  const text = data.getData('text');
205
208
  const { files } = data;
209
+ /**
210
+ * Insert each image when upload options are set.
211
+ */
212
+ if (uploadOptions) {
213
+ const createFileUploaderElement = fileUploader.createFileUploaderElementByType((_a = uploadOptions.type) !== null && _a !== void 0 ? _a : fileUploader.FILE_UPLOADER_TYPE);
214
+ Array.from(files).reduce((prev, file) => tslib.__awaiter(this, void 0, void 0, function* () {
215
+ yield prev;
216
+ return createFileUploaderElement(editor, file, uploadOptions).then((fileUploaderElement) => {
217
+ fileUploader.insertFileUploaderElement(editor, fileUploaderElement);
218
+ });
219
+ }), Promise.resolve());
220
+ return;
221
+ }
206
222
  /**
207
223
  * Insert image if inserted text is image url.
208
224
  */