@makeswift/runtime 0.1.6 → 0.1.9

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 (104) hide show
  1. package/dist/Box.cjs.js +4 -3
  2. package/dist/Box.cjs.js.map +1 -1
  3. package/dist/Box.es.js +5 -4
  4. package/dist/Box.es.js.map +1 -1
  5. package/dist/Button.cjs.js +5 -3
  6. package/dist/Button.cjs.js.map +1 -1
  7. package/dist/Button.es.js +16 -14
  8. package/dist/Button.es.js.map +1 -1
  9. package/dist/Carousel.cjs.js +4 -3
  10. package/dist/Carousel.cjs.js.map +1 -1
  11. package/dist/Carousel.es.js +5 -4
  12. package/dist/Carousel.es.js.map +1 -1
  13. package/dist/Countdown.cjs.js +4 -3
  14. package/dist/Countdown.cjs.js.map +1 -1
  15. package/dist/Countdown.es.js +5 -4
  16. package/dist/Countdown.es.js.map +1 -1
  17. package/dist/Divider.cjs.js +4 -3
  18. package/dist/Divider.cjs.js.map +1 -1
  19. package/dist/Divider.es.js +5 -4
  20. package/dist/Divider.es.js.map +1 -1
  21. package/dist/Embed.cjs.js +4 -3
  22. package/dist/Embed.cjs.js.map +1 -1
  23. package/dist/Embed.es.js +5 -4
  24. package/dist/Embed.es.js.map +1 -1
  25. package/dist/Form.cjs.js +7 -3
  26. package/dist/Form.cjs.js.map +1 -1
  27. package/dist/Form.es.js +9 -5
  28. package/dist/Form.es.js.map +1 -1
  29. package/dist/Image.cjs2.js +6 -4
  30. package/dist/Image.cjs2.js.map +1 -1
  31. package/dist/Image.es2.js +10 -8
  32. package/dist/Image.es2.js.map +1 -1
  33. package/dist/Navigation.cjs.js +4 -3
  34. package/dist/Navigation.cjs.js.map +1 -1
  35. package/dist/Navigation.es.js +5 -4
  36. package/dist/Navigation.es.js.map +1 -1
  37. package/dist/SocialLinks.cjs.js +3 -2
  38. package/dist/SocialLinks.cjs.js.map +1 -1
  39. package/dist/SocialLinks.es.js +4 -3
  40. package/dist/SocialLinks.es.js.map +1 -1
  41. package/dist/Text.cjs.js +7 -3
  42. package/dist/Text.cjs.js.map +1 -1
  43. package/dist/Text.es.js +9 -5
  44. package/dist/Text.es.js.map +1 -1
  45. package/dist/Video.cjs.js +4 -3
  46. package/dist/Video.cjs.js.map +1 -1
  47. package/dist/Video.es.js +5 -4
  48. package/dist/Video.es.js.map +1 -1
  49. package/dist/components.cjs.js +1 -1
  50. package/dist/components.es.js +1 -1
  51. package/dist/cssMediaRules.es.js +1 -1
  52. package/dist/index.cjs.js +8 -29
  53. package/dist/index.cjs.js.map +1 -1
  54. package/dist/index.cjs3.js +27 -11
  55. package/dist/index.cjs3.js.map +1 -1
  56. package/dist/index.es.js +9 -29
  57. package/dist/index.es.js.map +1 -1
  58. package/dist/index.es2.js +1 -1
  59. package/dist/index.es3.js +28 -12
  60. package/dist/index.es3.js.map +1 -1
  61. package/dist/next.es.js +1 -1
  62. package/dist/react-builder-preview.es.js +1 -1
  63. package/dist/react-page.cjs.js +3 -3
  64. package/dist/react-page.cjs.js.map +1 -1
  65. package/dist/react-page.es.js +3 -3
  66. package/dist/react-page.es.js.map +1 -1
  67. package/dist/types/components/builtin/Box/Box.d.ts +2 -2
  68. package/dist/types/components/builtin/Box/Box.d.ts.map +1 -1
  69. package/dist/types/components/builtin/Button/Button.d.ts +2 -1
  70. package/dist/types/components/builtin/Button/Button.d.ts.map +1 -1
  71. package/dist/types/components/builtin/Carousel/Carousel.d.ts +2 -2
  72. package/dist/types/components/builtin/Carousel/Carousel.d.ts.map +1 -1
  73. package/dist/types/components/builtin/Carousel/register.d.ts.map +1 -1
  74. package/dist/types/components/builtin/Countdown/Countdown.d.ts +2 -2
  75. package/dist/types/components/builtin/Countdown/Countdown.d.ts.map +1 -1
  76. package/dist/types/components/builtin/Countdown/register.d.ts.map +1 -1
  77. package/dist/types/components/builtin/Divider/Divider.d.ts +2 -2
  78. package/dist/types/components/builtin/Divider/Divider.d.ts.map +1 -1
  79. package/dist/types/components/builtin/Divider/register.d.ts.map +1 -1
  80. package/dist/types/components/builtin/Embed/Embed.d.ts +2 -2
  81. package/dist/types/components/builtin/Embed/Embed.d.ts.map +1 -1
  82. package/dist/types/components/builtin/Form/Form.d.ts +2 -2
  83. package/dist/types/components/builtin/Form/Form.d.ts.map +1 -1
  84. package/dist/types/components/builtin/Form/components/Placeholder/index.d.ts +2 -1
  85. package/dist/types/components/builtin/Form/components/Placeholder/index.d.ts.map +1 -1
  86. package/dist/types/components/builtin/Form/register.d.ts.map +1 -1
  87. package/dist/types/components/builtin/Image/Image.d.ts.map +1 -1
  88. package/dist/types/components/builtin/Navigation/Navigation.d.ts +2 -2
  89. package/dist/types/components/builtin/Navigation/Navigation.d.ts.map +1 -1
  90. package/dist/types/components/builtin/Navigation/register.d.ts.map +1 -1
  91. package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts +2 -2
  92. package/dist/types/components/builtin/SocialLinks/SocialLinks.d.ts.map +1 -1
  93. package/dist/types/components/builtin/SocialLinks/register.d.ts.map +1 -1
  94. package/dist/types/components/builtin/Text/Text.d.ts +2 -2
  95. package/dist/types/components/builtin/Text/Text.d.ts.map +1 -1
  96. package/dist/types/components/builtin/Text/components/RichTextEditor/index.d.ts.map +1 -1
  97. package/dist/types/components/builtin/Text/register.d.ts.map +1 -1
  98. package/dist/types/components/builtin/Video/Video.d.ts +2 -2
  99. package/dist/types/components/builtin/Video/Video.d.ts.map +1 -1
  100. package/dist/types/components/builtin/Video/register.d.ts.map +1 -1
  101. package/dist/types/components/shared/Link/index.d.ts.map +1 -1
  102. package/dist/useBoxShadow.es.js +1 -1
  103. package/dist/useMediaQuery.es.js +1 -1
  104. package/package.json +1 -1
package/dist/Text.es.js CHANGED
@@ -33,13 +33,12 @@ import { forwardRef, useMemo, useState, useImperativeHandle, useEffect, useRef,
33
33
  import styled, { css } from "styled-components";
34
34
  import { Value } from "slate";
35
35
  import Hotkeys from "slate-hotkeys";
36
- import { cx } from "@emotion/css";
37
36
  import { isHotkey } from "is-hotkey";
38
- import { c as cssMediaRules, b as cssMargin } from "./cssMediaRules.es.js";
37
+ import { c as cssMediaRules, a as cssWidth, b as cssMargin } from "./cssMediaRules.es.js";
39
38
  import { g as getBox } from "./box-models.es.js";
40
39
  import { Editor } from "slate-react";
41
40
  import Lists from "@convertkit/slate-lists";
42
- import { w as useQuery, F as TYPOGRAPHIES_BY_ID, G as SWATCHES_BY_ID, B as findDeviceOverride, H as shallowMergeFallbacks, p as colorToString, u as useIsInBuilder } from "./index.es.js";
41
+ import { v as useQuery, B as TYPOGRAPHIES_BY_ID, F as SWATCHES_BY_ID, z as findDeviceOverride, G as shallowMergeFallbacks, p as colorToString, u as useIsInBuilder } from "./index.es.js";
43
42
  import { jsx } from "react/jsx-runtime";
44
43
  import { L as Link } from "./index.es3.js";
45
44
  import "css-box-model";
@@ -55,6 +54,7 @@ import "./image.es.js";
55
54
  import "next/dynamic";
56
55
  import "next/document";
57
56
  import "@emotion/server/create-instance";
57
+ import "@emotion/css";
58
58
  import "@apollo/client";
59
59
  import "@apollo/client/link/batch-http";
60
60
  import "./graphql.es.js";
@@ -340,6 +340,9 @@ const RichTextEditor = styled(forwardRef(function RichTextEditor2(_e, ref) {
340
340
  ]);
341
341
  const plugins = useMemo(() => [Lists(), LinkPlugin(), Inlines(), DeviceOverridesBlockPlugin(), DeviceOverridesMarksPlugin()], []);
342
342
  return /* @__PURE__ */ jsx(Editor, __spreadProps(__spreadValues({}, restOfProps), {
343
+ style: {
344
+ WebkitUserModify: void 0
345
+ },
343
346
  ref,
344
347
  autoFocus: false,
345
348
  plugins,
@@ -352,8 +355,9 @@ const RichTextEditor = styled(forwardRef(function RichTextEditor2(_e, ref) {
352
355
  }
353
356
  `;
354
357
  const StyledRichTextEditor = styled(RichTextEditor).withConfig({
355
- shouldForwardProp: (prop) => !["margin"].includes(prop.toString())
358
+ shouldForwardProp: (prop) => !["width", "margin"].includes(prop.toString())
356
359
  })`
360
+ ${cssWidth()}
357
361
  ${cssMargin()}
358
362
  `;
359
363
  const defaultText = {
@@ -453,7 +457,7 @@ const Text = forwardRef(function Text2({
453
457
  return /* @__PURE__ */ jsx(StyledRichTextEditor, {
454
458
  id,
455
459
  ref: setEditor,
456
- className: cx(width),
460
+ width,
457
461
  readOnly: !isInBuilder,
458
462
  margin,
459
463
  value,
@@ -1 +1 @@
1
- {"version":3,"file":"Text.es.js","sources":["../src/components/hooks/useTypography.ts","../src/components/builtin/Text/components/RichTextEditor/components/Mark/hooks/useTypographyMark.ts","../src/components/builtin/Text/components/RichTextEditor/components/Mark/index.tsx","../src/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesMarks.tsx","../src/components/builtin/Text/components/RichTextEditor/components/Block/index.tsx","../src/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesBlocks.tsx","../src/components/builtin/Text/components/RichTextEditor/plugins/Link.tsx","../src/components/builtin/Text/components/RichTextEditor/plugins/Inlines.tsx","../src/components/builtin/Text/components/RichTextEditor/index.tsx","../src/components/builtin/Text/Text.tsx"],"sourcesContent":["import type { ColorValue } from '../utils/types'\nimport type { Length as LengthValue } from '../../prop-controllers'\nimport { DeviceOverride } from '../../prop-controllers'\nimport { TYPOGRAPHIES_BY_ID } from '../utils/queries'\nimport { useQuery } from '../../api/react'\n\nexport type TypographyStyleValue = {\n fontFamily?: string\n fontWeight?: number\n fontSize?: LengthValue\n color?: ColorValue\n textAlign?: string\n lineHeight?: number\n letterSpacing?: number\n uppercase?: boolean\n underline?: boolean\n strikethrough?: boolean\n italic?: boolean\n}\n\nexport type TypographyStyle = Array<DeviceOverride<TypographyStyleValue>>\n\nexport type Typography = {\n id: string\n name: string\n style: TypographyStyle\n}\n\nexport function useTypography(\n typographyId: string | null | undefined,\n): Typography | null | undefined {\n const { error, data } = useQuery(TYPOGRAPHIES_BY_ID, {\n skip: typographyId == null,\n variables: { ids: typographyId != null ? [typographyId] : [] },\n })\n\n if (typographyId == null || error != null) return null\n\n return data?.typographies[0] as Typography | null\n}\n","import { Length as LengthValue } from '../../../../../../../../prop-controllers'\nimport { ColorValue as Color } from '../../../../../../../utils/types'\nimport { findDeviceOverride } from '../../../../../../../utils/devices'\nimport type { DeviceOverride } from '../../../../../../../../prop-controllers'\nimport { SWATCHES_BY_ID } from '../../../../../../../utils/queries'\nimport { useTypography, TypographyStyle } from '../../../../../../../hooks/useTypography'\nimport { useQuery } from '../../../../../../../../api/react'\n\nexport type TypographyMarkDataValue = {\n fontWeight?: number\n fontSize?: LengthValue\n fontFamily?: string\n color?: Color\n textAlign?: string\n lineHeight?: number\n letterSpacing?: number\n uppercase?: boolean\n italic?: boolean\n underline?: boolean\n strikethrough?: boolean\n}\n\nexport type TypographyMarkValue = {\n id: string | null | undefined\n style: TypographyStyle\n}\n\nexport type TypographyMarkData = Array<DeviceOverride<TypographyMarkDataValue>>\n\nconst concat = <A extends unknown[], B extends unknown[]>(a: A, b: B) => a.concat(b)\nconst getSwatchId = ({ value: { color } }: any) => color && color.swatchId\nconst getDeviceId = ({ deviceId }: any) => deviceId\n\nconst withColor =\n (swatches: any) =>\n ({ value: { color, ...restOfValue }, ...rest }: any) => ({\n ...rest,\n value: {\n ...restOfValue,\n ...(color\n ? {\n color: {\n swatch: swatches.find((s: any) => s && s.id === color.swatchId),\n alpha: color.alpha,\n },\n }\n : {}),\n },\n })\n\nexport const overrideTypographyStyle = <A>(\n source: Array<DeviceOverride<A>>,\n override: Array<DeviceOverride<A>>,\n): Array<DeviceOverride<A>> => {\n const devices = [...new Set(source.map(getDeviceId).concat(override.map(getDeviceId)))]\n\n return devices.map((deviceId: any) => ({\n deviceId,\n value: {\n ...(findDeviceOverride(source, deviceId) || { value: {} }).value,\n ...(findDeviceOverride(override, deviceId, v => v) || { value: {} }).value,\n },\n })) as DeviceOverride<A>[]\n}\n\nexport default function useTypographyMark(\n value: TypographyMarkValue | null | undefined,\n): TypographyMarkData | null | undefined {\n const typography = useTypography(value && value.id)\n\n const swatchIds = [\n (typography && typography.style.map(getSwatchId)) || [],\n (value && value.style.map(getSwatchId)) || [],\n ]\n .reduce(concat)\n .filter(Boolean)\n\n const { error: colorError, data: colorData = {} } = useQuery(SWATCHES_BY_ID, {\n skip: swatchIds == null || swatchIds.length === 0,\n variables: { ids: swatchIds },\n })\n\n const { swatches = [] } = colorData\n\n if (colorError != null) return null\n\n return overrideTypographyStyle(\n (typography && typography.style.map(withColor(swatches))) || [],\n (value && value.style.map(withColor(swatches))) || [],\n )\n}\n","import { ComponentPropsWithoutRef } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport useTypographyMark, {\n TypographyMarkValue,\n TypographyMarkData,\n overrideTypographyStyle,\n TypographyMarkDataValue,\n} from './hooks/useTypographyMark'\nimport { cssMediaRules } from '../../../../../../utils/cssMediaRules'\nimport { colorToString } from '../../../../../../utils/colorToString'\nimport { shallowMergeFallbacks } from '../../../../../../utils/devices'\n\nexport type { TypographyMarkValue }\nexport { overrideTypographyStyle }\n\nconst Span = styled.span<{ typographyStyle: TypographyMarkData | null | undefined }>`\n ${p =>\n cssMediaRules(\n [p.typographyStyle] as const,\n ([\n {\n color,\n fontFamily,\n fontSize,\n fontWeight,\n lineHeight,\n letterSpacing,\n uppercase,\n underline,\n strikethrough,\n italic,\n } = {} as TypographyMarkDataValue,\n ]) => css`\n ${color == null\n ? ''\n : css`\n color: ${colorToString(color)};\n `}\n\n ${fontFamily == null\n ? ''\n : css`\n font-family: '${fontFamily}';\n `}\n\n ${fontSize == null || fontSize.value == null || fontSize.unit == null\n ? ''\n : css`\n font-size: ${`${fontSize.value}${fontSize.unit}`};\n `}\n\n ${fontWeight == null\n ? ''\n : css`\n font-weight: ${fontWeight};\n `}\n\n ${lineHeight == null\n ? ''\n : css`\n line-height: ${lineHeight};\n `}\n\n ${letterSpacing == null\n ? ''\n : css`\n letter-spacing: ${letterSpacing / 10}em;\n `}\n\n ${underline == null && strikethrough == null\n ? ''\n : css`\n text-decoration: ${[\n Boolean(underline) && 'underline',\n Boolean(strikethrough) && 'line-through',\n ]\n .filter(Boolean)\n .join(' ')};\n `}\n\n ${uppercase == null\n ? ''\n : css`\n text-transform: ${uppercase === true ? 'uppercase' : 'initial'};\n `}\n\n ${italic == null\n ? ''\n : css`\n font-style: ${italic === true ? 'italic' : 'initial'};\n `}\n `,\n shallowMergeFallbacks,\n )}\n`\n\ntype BaseProps = { value: TypographyMarkValue }\n\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<typeof Span>, keyof BaseProps>\n\nexport default function Mark({ value, ...restOfProps }: Props): JSX.Element {\n const typographyStyle = useTypographyMark(value)\n\n return <Span {...restOfProps} typographyStyle={typographyStyle} />\n}\n","import type { Plugin } from 'slate-react'\n\nimport Mark from '../components/Mark'\n\nconst TYPOGRAPHY_TYPE = 'typography'\n\nexport default function DeviceOverridesMarksPlugin(): Plugin {\n return {\n renderMark({ mark, children }, _editor, next) {\n if (mark.type === TYPOGRAPHY_TYPE) {\n return <Mark value={mark.data.get('value')}>{children}</Mark>\n }\n\n return next()\n },\n }\n}\n","import { forwardRef, ElementType, ComponentPropsWithoutRef } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport { cssMediaRules } from '../../../../../../utils/cssMediaRules'\nimport type { ResponsiveValue } from '../../../../../../../prop-controllers'\n\ntype StyledBlockProps = {\n textAlign?: ResponsiveValue<'left' | 'center' | 'right' | 'justify'>\n as?: ElementType\n}\n\nconst StyledBlock = styled.div<StyledBlockProps>`\n margin: 0;\n ${p =>\n cssMediaRules([p.textAlign] as const, ([textAlign]) =>\n textAlign == null\n ? css``\n : css`\n text-align: ${textAlign};\n `,\n )}\n\n ${p =>\n p.as === 'blockquote'\n ? css`\n padding: 0.5em 10px;\n font-size: 1.25em;\n font-weight: 300;\n border-left: 5px solid rgba(0, 0, 0, 0.1);\n `\n : ''}\n`\n\ntype Props = ComponentPropsWithoutRef<typeof StyledBlock>\n\nexport default forwardRef<HTMLDivElement, Props>(function Block(\n { textAlign, ...restOfProps }: Props,\n ref,\n) {\n return <StyledBlock {...restOfProps} ref={ref} textAlign={textAlign} />\n})\n","import { Plugin } from 'slate-react'\n\nimport Block from '../components/Block'\n\nexport default function DeviceOverridesBlockPlugin(): Plugin {\n return {\n renderBlock(props, _editor, next): JSX.Element {\n const { node, attributes, children } = props\n const blockProps = { textAlign: node.data.get('textAlign') }\n\n switch (node.type) {\n case 'paragraph':\n return (\n <Block {...attributes} {...blockProps} as=\"p\">\n {children}\n </Block>\n )\n\n case 'heading-one':\n return (\n <Block {...attributes} {...blockProps} as=\"h1\">\n {children}\n </Block>\n )\n\n case 'heading-two':\n return (\n <Block {...attributes} {...blockProps} as=\"h2\">\n {children}\n </Block>\n )\n\n case 'heading-three':\n return (\n <Block {...attributes} {...blockProps} as=\"h3\">\n {children}\n </Block>\n )\n\n case 'heading-four':\n return (\n <Block {...attributes} {...blockProps} as=\"h4\">\n {children}\n </Block>\n )\n\n case 'heading-five':\n return (\n <Block {...attributes} {...blockProps} as=\"h5\">\n {children}\n </Block>\n )\n\n case 'heading-six':\n return (\n <Block {...attributes} {...blockProps} as=\"h6\">\n {children}\n </Block>\n )\n\n case 'blockquote':\n return (\n <Block {...attributes} {...blockProps} as=\"blockquote\">\n {children}\n </Block>\n )\n\n default:\n return next()\n }\n },\n }\n}\n","import { Plugin } from 'slate-react'\nimport styled from 'styled-components'\n\nimport { Link } from '../../../../../shared/Link'\n\nconst StyledLink = styled(Link)`\n text-decoration: none;\n`\n\nexport default function LinkPlugin(): Plugin {\n return {\n renderInline(props, _editor, next) {\n const { attributes, children, node } = props\n\n switch (node.type) {\n case 'link': {\n const { data } = node\n\n return (\n <StyledLink {...attributes} link={data.toJS()}>\n {children}\n </StyledLink>\n )\n }\n\n default: {\n return next()\n }\n }\n },\n }\n}\n","import { Plugin } from 'slate-react'\n\nexport default function Inlines(): Plugin {\n return {\n renderInline(props, _editor, next) {\n const { attributes, children, node } = props\n\n switch (node.type) {\n case 'code': {\n return <code {...attributes}>{children}</code>\n }\n\n case 'superscript': {\n return <sup {...attributes}>{children}</sup>\n }\n\n case 'subscript': {\n return <sub {...attributes}>{children}</sub>\n }\n\n default: {\n return next()\n }\n }\n },\n }\n}\n","import { ComponentPropsWithoutRef, forwardRef, useMemo } from 'react'\n\nimport { Editor as SlateEditor } from 'slate-react'\n\n// @ts-expect-error: no types for '@convertkit/slate-lists'\nimport Lists from '@convertkit/slate-lists'\nimport styled from 'styled-components'\n\nimport DeviceOverridesMarks from './plugins/DeviceOverridesMarks'\nimport DeviceOverridesBlocks from './plugins/DeviceOverridesBlocks'\nimport Link from './plugins/Link'\nimport Inlines from './plugins/Inlines'\n\nexport { overrideTypographyStyle } from './components/Mark'\n\ntype Props = ComponentPropsWithoutRef<typeof SlateEditor>\n\nexport const RichTextEditor = styled(\n forwardRef<SlateEditor, Props>(function RichTextEditor(\n { placeholder = 'Write some text...', ...restOfProps }: Props,\n ref,\n ) {\n const plugins = useMemo(\n () => [Lists(), Link(), Inlines(), DeviceOverridesBlocks(), DeviceOverridesMarks()],\n [],\n )\n\n return (\n <SlateEditor\n {...restOfProps}\n ref={ref}\n autoFocus={false}\n plugins={plugins}\n placeholder={placeholder}\n />\n )\n }),\n)`\n ul,\n ol {\n margin: 0;\n }\n`\n","import {\n useState,\n Ref,\n useImperativeHandle,\n forwardRef,\n useEffect,\n useCallback,\n useRef,\n KeyboardEvent as ReactKeyboardEvent,\n FocusEvent as ReactFocusEvent,\n} from 'react'\nimport styled from 'styled-components'\nimport { Editor, OnChangeParam } from 'slate-react'\nimport { Value, ValueJSON } from 'slate'\n// @ts-expect-error: no types for 'slate-hotkeys'\nimport Hotkeys from 'slate-hotkeys'\nimport { cx } from '@emotion/css'\nimport { isHotkey } from 'is-hotkey'\n\nimport {\n ElementIDValue,\n MarginValue,\n RichTextDescriptor,\n RichTextValue,\n} from '../../../prop-controllers/descriptors'\nimport { cssMargin } from '../../utils/cssMediaRules'\nimport { BoxModelHandle, getBox } from '../../../box-model'\nimport { PropControllersHandle } from '../../../state/modules/prop-controller-handles'\nimport { RichTextEditor } from './components/RichTextEditor'\nimport { useIsInBuilder } from '../../../runtimes/react'\nimport { DescriptorsPropControllers } from '../../../prop-controllers/instances'\n\ntype Props = {\n id?: ElementIDValue\n text?: RichTextValue\n width?: string\n margin?: MarginValue\n}\n\nconst StyledRichTextEditor = styled(RichTextEditor).withConfig({\n shouldForwardProp: prop => !['margin'].includes(prop.toString()),\n})<{ margin: Props['margin'] }>`\n ${cssMargin()}\n`\n\nconst defaultText: ValueJSON = {\n document: { nodes: [{ object: 'block' as const, type: 'paragraph' as const, nodes: [] }] },\n data: {},\n}\n\nconst COMMIT_DEBOUNCE_DELAY = 500\n\ntype Descriptors = { text?: RichTextDescriptor }\n\nconst Text = forwardRef(function Text(\n { id, text, width, margin }: Props,\n ref: Ref<BoxModelHandle & PropControllersHandle<Descriptors>>,\n) {\n const [editor, setEditor] = useState<Editor | null>(null)\n const [propControllers, setPropControllers] =\n useState<DescriptorsPropControllers<Descriptors> | null>(null)\n const controller = propControllers?.text\n\n useImperativeHandle(\n ref,\n () => ({\n getBoxModel() {\n const el = editor?.findDOMNode([])\n\n return el instanceof Element ? getBox(el) : null\n },\n setPropControllers,\n }),\n [editor, setPropControllers],\n )\n\n useEffect(() => {\n if (editor) controller?.setSlateEditor(editor)\n }, [controller, editor])\n\n /**\n * We must keep local state so that we can reflect the user's typed changes immediately. At the\n * same time, though, the source of truth for the data is the prop data. This presents a\n * challenge: how do we keep local state in sync with the prop data without mangling user input as\n * data comes in?\n *\n * Consider, for example, that the user types \"Hello\". If at a later time, when the user is trying\n * to type \", world\" the component re-renders with prop data \"H\", \"He\", \"Hel\", \"Hell\", \"Hello\", it\n * will disrupt the user's typing. This could also happen as a result of the prop data changing\n * for other reasons, like collaborators changing the prop data concurrently. We want to avoid to\n * disrupt the user's typing, while at the same time display the \"true\" value as quickly as\n * possible.\n *\n * The approach we take here is to commit the prop data at an opportune time: as the user is\n * typing we avoid to commit prop data. But once they've stopped typing, we commit it as soon as\n * possible. This is known as a debounce.\n */\n const [value, setValue] = useState(() => {\n const { selection, ...textWithoutSelection } = text ?? defaultText\n\n return Value.fromJSON(textWithoutSelection)\n })\n const [shouldCommit, setShouldCommit] = useState(true)\n\n useEffect(() => {\n if (shouldCommit) {\n const nextValue = Value.fromJSON(text ?? defaultText)\n\n setValue(currentValue =>\n currentValue.selection.isBlurred\n ? Value.fromJSON(nextValue.toJSON({ preserveSelection: false }))\n : nextValue,\n )\n }\n }, [shouldCommit, text])\n\n useEffect(() => {\n if (shouldCommit) return\n\n const timeoutId = window.setTimeout(() => {\n setShouldCommit(true)\n }, COMMIT_DEBOUNCE_DELAY)\n\n return () => {\n window.clearTimeout(timeoutId)\n }\n }, [shouldCommit])\n\n function handleChange(change: OnChangeParam) {\n setValue(change.value as Value)\n\n if (change.value !== value) {\n setShouldCommit(false)\n\n controller?.onChange(change)\n }\n }\n\n // HACK: Slate holds on to the very first DOM event handlers passed in and doesn't update them\n // even if they change. Since `controller` is first `undefined` then we must use a ref.\n const lastController = useRef(controller)\n if (lastController.current !== controller) lastController.current = controller\n const handleFocus = useCallback(() => {\n lastController.current?.focus()\n }, [])\n const handleKeyDown = useCallback(\n (event: ReactKeyboardEvent, _editor: Editor, next: () => any) => {\n if (Hotkeys.isUndo(event)) {\n lastController.current?.undo()\n\n return true\n }\n\n if (Hotkeys.isRedo(event)) {\n lastController.current?.redo()\n\n return true\n }\n\n if (isHotkey('escape')(event)) {\n lastController.current?.blur()\n\n return true\n }\n\n return next()\n },\n [],\n )\n const handleBlur = useCallback((event: ReactFocusEvent, _editor: Editor, next: () => any) => {\n // Normally, after a user highlight a text, clicking on the panel will remove the text selection.\n // This line is a workaround for that. Because the panel is not in the iframe, relatedTarget\n // would be null, and we return early so we don't remove the selection.\n if (event.relatedTarget == null) return true\n\n // Blur the selection if the user is clicking on other text.\n return next()\n }, [])\n\n const isInBuilder = useIsInBuilder()\n\n return (\n <StyledRichTextEditor\n // @ts-expect-error: types don't allow for 'id' prop even though it's used.\n id={id}\n ref={setEditor}\n className={cx(width)}\n readOnly={!isInBuilder}\n margin={margin}\n value={value}\n onChange={handleChange}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n onBlur={handleBlur}\n />\n )\n})\n\nexport default Text\n"],"names":["Span","styled","span","p","cssMediaRules","typographyStyle","color","fontFamily","fontSize","fontWeight","lineHeight","letterSpacing","uppercase","underline","strikethrough","italic","css","colorToString","value","unit","Boolean","filter","join","shallowMergeFallbacks","restOfProps","useTypographyMark","TYPOGRAPHY_TYPE","renderMark","mark","children","_editor","next","type","data","get","StyledBlock","div","textAlign","as","forwardRef","ref","renderBlock","props","node","attributes","blockProps","StyledLink","Link","renderInline","toJS","RichTextEditor","placeholder","plugins","useMemo","Lists","Inlines","DeviceOverridesBlocks","DeviceOverridesMarks","SlateEditor","StyledRichTextEditor","withConfig","shouldForwardProp","prop","includes","toString","cssMargin","defaultText","document","nodes","object","COMMIT_DEBOUNCE_DELAY","Text","id","text","width","margin","editor","setEditor","useState","propControllers","setPropControllers","controller","useImperativeHandle","getBoxModel","el","findDOMNode","Element","getBox","useEffect","setSlateEditor","setValue","selection","textWithoutSelection","Value","fromJSON","shouldCommit","setShouldCommit","nextValue","currentValue","isBlurred","toJSON","preserveSelection","timeoutId","window","setTimeout","clearTimeout","change","onChange","lastController","useRef","current","handleFocus","useCallback","focus","handleKeyDown","event","Hotkeys","isUndo","undo","isRedo","redo","isHotkey","blur","handleBlur","relatedTarget","isInBuilder","useIsInBuilder","cx","handleChange"],"mappings":"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"}
1
+ {"version":3,"file":"Text.es.js","sources":["../src/components/hooks/useTypography.ts","../src/components/builtin/Text/components/RichTextEditor/components/Mark/hooks/useTypographyMark.ts","../src/components/builtin/Text/components/RichTextEditor/components/Mark/index.tsx","../src/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesMarks.tsx","../src/components/builtin/Text/components/RichTextEditor/components/Block/index.tsx","../src/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesBlocks.tsx","../src/components/builtin/Text/components/RichTextEditor/plugins/Link.tsx","../src/components/builtin/Text/components/RichTextEditor/plugins/Inlines.tsx","../src/components/builtin/Text/components/RichTextEditor/index.tsx","../src/components/builtin/Text/Text.tsx"],"sourcesContent":["import type { ColorValue } from '../utils/types'\nimport type { Length as LengthValue } from '../../prop-controllers'\nimport { DeviceOverride } from '../../prop-controllers'\nimport { TYPOGRAPHIES_BY_ID } from '../utils/queries'\nimport { useQuery } from '../../api/react'\n\nexport type TypographyStyleValue = {\n fontFamily?: string\n fontWeight?: number\n fontSize?: LengthValue\n color?: ColorValue\n textAlign?: string\n lineHeight?: number\n letterSpacing?: number\n uppercase?: boolean\n underline?: boolean\n strikethrough?: boolean\n italic?: boolean\n}\n\nexport type TypographyStyle = Array<DeviceOverride<TypographyStyleValue>>\n\nexport type Typography = {\n id: string\n name: string\n style: TypographyStyle\n}\n\nexport function useTypography(\n typographyId: string | null | undefined,\n): Typography | null | undefined {\n const { error, data } = useQuery(TYPOGRAPHIES_BY_ID, {\n skip: typographyId == null,\n variables: { ids: typographyId != null ? [typographyId] : [] },\n })\n\n if (typographyId == null || error != null) return null\n\n return data?.typographies[0] as Typography | null\n}\n","import { Length as LengthValue } from '../../../../../../../../prop-controllers'\nimport { ColorValue as Color } from '../../../../../../../utils/types'\nimport { findDeviceOverride } from '../../../../../../../utils/devices'\nimport type { DeviceOverride } from '../../../../../../../../prop-controllers'\nimport { SWATCHES_BY_ID } from '../../../../../../../utils/queries'\nimport { useTypography, TypographyStyle } from '../../../../../../../hooks/useTypography'\nimport { useQuery } from '../../../../../../../../api/react'\n\nexport type TypographyMarkDataValue = {\n fontWeight?: number\n fontSize?: LengthValue\n fontFamily?: string\n color?: Color\n textAlign?: string\n lineHeight?: number\n letterSpacing?: number\n uppercase?: boolean\n italic?: boolean\n underline?: boolean\n strikethrough?: boolean\n}\n\nexport type TypographyMarkValue = {\n id: string | null | undefined\n style: TypographyStyle\n}\n\nexport type TypographyMarkData = Array<DeviceOverride<TypographyMarkDataValue>>\n\nconst concat = <A extends unknown[], B extends unknown[]>(a: A, b: B) => a.concat(b)\nconst getSwatchId = ({ value: { color } }: any) => color && color.swatchId\nconst getDeviceId = ({ deviceId }: any) => deviceId\n\nconst withColor =\n (swatches: any) =>\n ({ value: { color, ...restOfValue }, ...rest }: any) => ({\n ...rest,\n value: {\n ...restOfValue,\n ...(color\n ? {\n color: {\n swatch: swatches.find((s: any) => s && s.id === color.swatchId),\n alpha: color.alpha,\n },\n }\n : {}),\n },\n })\n\nexport const overrideTypographyStyle = <A>(\n source: Array<DeviceOverride<A>>,\n override: Array<DeviceOverride<A>>,\n): Array<DeviceOverride<A>> => {\n const devices = [...new Set(source.map(getDeviceId).concat(override.map(getDeviceId)))]\n\n return devices.map((deviceId: any) => ({\n deviceId,\n value: {\n ...(findDeviceOverride(source, deviceId) || { value: {} }).value,\n ...(findDeviceOverride(override, deviceId, v => v) || { value: {} }).value,\n },\n })) as DeviceOverride<A>[]\n}\n\nexport default function useTypographyMark(\n value: TypographyMarkValue | null | undefined,\n): TypographyMarkData | null | undefined {\n const typography = useTypography(value && value.id)\n\n const swatchIds = [\n (typography && typography.style.map(getSwatchId)) || [],\n (value && value.style.map(getSwatchId)) || [],\n ]\n .reduce(concat)\n .filter(Boolean)\n\n const { error: colorError, data: colorData = {} } = useQuery(SWATCHES_BY_ID, {\n skip: swatchIds == null || swatchIds.length === 0,\n variables: { ids: swatchIds },\n })\n\n const { swatches = [] } = colorData\n\n if (colorError != null) return null\n\n return overrideTypographyStyle(\n (typography && typography.style.map(withColor(swatches))) || [],\n (value && value.style.map(withColor(swatches))) || [],\n )\n}\n","import { ComponentPropsWithoutRef } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport useTypographyMark, {\n TypographyMarkValue,\n TypographyMarkData,\n overrideTypographyStyle,\n TypographyMarkDataValue,\n} from './hooks/useTypographyMark'\nimport { cssMediaRules } from '../../../../../../utils/cssMediaRules'\nimport { colorToString } from '../../../../../../utils/colorToString'\nimport { shallowMergeFallbacks } from '../../../../../../utils/devices'\n\nexport type { TypographyMarkValue }\nexport { overrideTypographyStyle }\n\nconst Span = styled.span<{ typographyStyle: TypographyMarkData | null | undefined }>`\n ${p =>\n cssMediaRules(\n [p.typographyStyle] as const,\n ([\n {\n color,\n fontFamily,\n fontSize,\n fontWeight,\n lineHeight,\n letterSpacing,\n uppercase,\n underline,\n strikethrough,\n italic,\n } = {} as TypographyMarkDataValue,\n ]) => css`\n ${color == null\n ? ''\n : css`\n color: ${colorToString(color)};\n `}\n\n ${fontFamily == null\n ? ''\n : css`\n font-family: '${fontFamily}';\n `}\n\n ${fontSize == null || fontSize.value == null || fontSize.unit == null\n ? ''\n : css`\n font-size: ${`${fontSize.value}${fontSize.unit}`};\n `}\n\n ${fontWeight == null\n ? ''\n : css`\n font-weight: ${fontWeight};\n `}\n\n ${lineHeight == null\n ? ''\n : css`\n line-height: ${lineHeight};\n `}\n\n ${letterSpacing == null\n ? ''\n : css`\n letter-spacing: ${letterSpacing / 10}em;\n `}\n\n ${underline == null && strikethrough == null\n ? ''\n : css`\n text-decoration: ${[\n Boolean(underline) && 'underline',\n Boolean(strikethrough) && 'line-through',\n ]\n .filter(Boolean)\n .join(' ')};\n `}\n\n ${uppercase == null\n ? ''\n : css`\n text-transform: ${uppercase === true ? 'uppercase' : 'initial'};\n `}\n\n ${italic == null\n ? ''\n : css`\n font-style: ${italic === true ? 'italic' : 'initial'};\n `}\n `,\n shallowMergeFallbacks,\n )}\n`\n\ntype BaseProps = { value: TypographyMarkValue }\n\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<typeof Span>, keyof BaseProps>\n\nexport default function Mark({ value, ...restOfProps }: Props): JSX.Element {\n const typographyStyle = useTypographyMark(value)\n\n return <Span {...restOfProps} typographyStyle={typographyStyle} />\n}\n","import type { Plugin } from 'slate-react'\n\nimport Mark from '../components/Mark'\n\nconst TYPOGRAPHY_TYPE = 'typography'\n\nexport default function DeviceOverridesMarksPlugin(): Plugin {\n return {\n renderMark({ mark, children }, _editor, next) {\n if (mark.type === TYPOGRAPHY_TYPE) {\n return <Mark value={mark.data.get('value')}>{children}</Mark>\n }\n\n return next()\n },\n }\n}\n","import { forwardRef, ElementType, ComponentPropsWithoutRef } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport { cssMediaRules } from '../../../../../../utils/cssMediaRules'\nimport type { ResponsiveValue } from '../../../../../../../prop-controllers'\n\ntype StyledBlockProps = {\n textAlign?: ResponsiveValue<'left' | 'center' | 'right' | 'justify'>\n as?: ElementType\n}\n\nconst StyledBlock = styled.div<StyledBlockProps>`\n margin: 0;\n ${p =>\n cssMediaRules([p.textAlign] as const, ([textAlign]) =>\n textAlign == null\n ? css``\n : css`\n text-align: ${textAlign};\n `,\n )}\n\n ${p =>\n p.as === 'blockquote'\n ? css`\n padding: 0.5em 10px;\n font-size: 1.25em;\n font-weight: 300;\n border-left: 5px solid rgba(0, 0, 0, 0.1);\n `\n : ''}\n`\n\ntype Props = ComponentPropsWithoutRef<typeof StyledBlock>\n\nexport default forwardRef<HTMLDivElement, Props>(function Block(\n { textAlign, ...restOfProps }: Props,\n ref,\n) {\n return <StyledBlock {...restOfProps} ref={ref} textAlign={textAlign} />\n})\n","import { Plugin } from 'slate-react'\n\nimport Block from '../components/Block'\n\nexport default function DeviceOverridesBlockPlugin(): Plugin {\n return {\n renderBlock(props, _editor, next): JSX.Element {\n const { node, attributes, children } = props\n const blockProps = { textAlign: node.data.get('textAlign') }\n\n switch (node.type) {\n case 'paragraph':\n return (\n <Block {...attributes} {...blockProps} as=\"p\">\n {children}\n </Block>\n )\n\n case 'heading-one':\n return (\n <Block {...attributes} {...blockProps} as=\"h1\">\n {children}\n </Block>\n )\n\n case 'heading-two':\n return (\n <Block {...attributes} {...blockProps} as=\"h2\">\n {children}\n </Block>\n )\n\n case 'heading-three':\n return (\n <Block {...attributes} {...blockProps} as=\"h3\">\n {children}\n </Block>\n )\n\n case 'heading-four':\n return (\n <Block {...attributes} {...blockProps} as=\"h4\">\n {children}\n </Block>\n )\n\n case 'heading-five':\n return (\n <Block {...attributes} {...blockProps} as=\"h5\">\n {children}\n </Block>\n )\n\n case 'heading-six':\n return (\n <Block {...attributes} {...blockProps} as=\"h6\">\n {children}\n </Block>\n )\n\n case 'blockquote':\n return (\n <Block {...attributes} {...blockProps} as=\"blockquote\">\n {children}\n </Block>\n )\n\n default:\n return next()\n }\n },\n }\n}\n","import { Plugin } from 'slate-react'\nimport styled from 'styled-components'\n\nimport { Link } from '../../../../../shared/Link'\n\nconst StyledLink = styled(Link)`\n text-decoration: none;\n`\n\nexport default function LinkPlugin(): Plugin {\n return {\n renderInline(props, _editor, next) {\n const { attributes, children, node } = props\n\n switch (node.type) {\n case 'link': {\n const { data } = node\n\n return (\n <StyledLink {...attributes} link={data.toJS()}>\n {children}\n </StyledLink>\n )\n }\n\n default: {\n return next()\n }\n }\n },\n }\n}\n","import { Plugin } from 'slate-react'\n\nexport default function Inlines(): Plugin {\n return {\n renderInline(props, _editor, next) {\n const { attributes, children, node } = props\n\n switch (node.type) {\n case 'code': {\n return <code {...attributes}>{children}</code>\n }\n\n case 'superscript': {\n return <sup {...attributes}>{children}</sup>\n }\n\n case 'subscript': {\n return <sub {...attributes}>{children}</sub>\n }\n\n default: {\n return next()\n }\n }\n },\n }\n}\n","import { ComponentPropsWithoutRef, forwardRef, useMemo } from 'react'\n\nimport { Editor as SlateEditor } from 'slate-react'\n\n// @ts-expect-error: no types for '@convertkit/slate-lists'\nimport Lists from '@convertkit/slate-lists'\nimport styled from 'styled-components'\n\nimport DeviceOverridesMarks from './plugins/DeviceOverridesMarks'\nimport DeviceOverridesBlocks from './plugins/DeviceOverridesBlocks'\nimport Link from './plugins/Link'\nimport Inlines from './plugins/Inlines'\n\nexport { overrideTypographyStyle } from './components/Mark'\n\ntype Props = ComponentPropsWithoutRef<typeof SlateEditor>\n\nexport const RichTextEditor = styled(\n forwardRef<SlateEditor, Props>(function RichTextEditor(\n { placeholder = 'Write some text...', ...restOfProps }: Props,\n ref,\n ) {\n const plugins = useMemo(\n () => [Lists(), Link(), Inlines(), DeviceOverridesBlocks(), DeviceOverridesMarks()],\n [],\n )\n\n return (\n <SlateEditor\n {...restOfProps}\n // Workaround because our Slate editor is broken on Chrome 105\n // Problem: https://linear.app/makeswift/issue/PRD-434/our-rich-text-component-breaks-in-the-latest-version-of-chrome\n // Workaround: https://github.com/ianstormtaylor/slate/issues/5110#issuecomment-1234951122\n style={{ WebkitUserModify: undefined }}\n ref={ref}\n autoFocus={false}\n plugins={plugins}\n placeholder={placeholder}\n />\n )\n }),\n)`\n ul,\n ol {\n margin: 0;\n }\n`\n","import {\n useState,\n Ref,\n useImperativeHandle,\n forwardRef,\n useEffect,\n useCallback,\n useRef,\n KeyboardEvent as ReactKeyboardEvent,\n FocusEvent as ReactFocusEvent,\n} from 'react'\nimport styled from 'styled-components'\nimport { Editor, OnChangeParam } from 'slate-react'\nimport { Value, ValueJSON } from 'slate'\n// @ts-expect-error: no types for 'slate-hotkeys'\nimport Hotkeys from 'slate-hotkeys'\nimport { isHotkey } from 'is-hotkey'\n\nimport {\n ElementIDValue,\n MarginValue,\n RichTextDescriptor,\n RichTextValue,\n WidthValue,\n} from '../../../prop-controllers/descriptors'\nimport { cssMargin, cssWidth } from '../../utils/cssMediaRules'\nimport { BoxModelHandle, getBox } from '../../../box-model'\nimport { PropControllersHandle } from '../../../state/modules/prop-controller-handles'\nimport { RichTextEditor } from './components/RichTextEditor'\nimport { useIsInBuilder } from '../../../runtimes/react'\nimport { DescriptorsPropControllers } from '../../../prop-controllers/instances'\n\ntype Props = {\n id?: ElementIDValue\n text?: RichTextValue\n width?: WidthValue\n margin?: MarginValue\n}\n\nconst StyledRichTextEditor = styled(RichTextEditor).withConfig({\n shouldForwardProp: prop => !['width', 'margin'].includes(prop.toString()),\n})<{ width: Props['width']; margin: Props['margin'] }>`\n ${cssWidth()}\n ${cssMargin()}\n`\n\nconst defaultText: ValueJSON = {\n document: { nodes: [{ object: 'block' as const, type: 'paragraph' as const, nodes: [] }] },\n data: {},\n}\n\nconst COMMIT_DEBOUNCE_DELAY = 500\n\ntype Descriptors = { text?: RichTextDescriptor }\n\nconst Text = forwardRef(function Text(\n { id, text, width, margin }: Props,\n ref: Ref<BoxModelHandle & PropControllersHandle<Descriptors>>,\n) {\n const [editor, setEditor] = useState<Editor | null>(null)\n const [propControllers, setPropControllers] =\n useState<DescriptorsPropControllers<Descriptors> | null>(null)\n const controller = propControllers?.text\n\n useImperativeHandle(\n ref,\n () => ({\n getBoxModel() {\n const el = editor?.findDOMNode([])\n\n return el instanceof Element ? getBox(el) : null\n },\n setPropControllers,\n }),\n [editor, setPropControllers],\n )\n\n useEffect(() => {\n if (editor) controller?.setSlateEditor(editor)\n }, [controller, editor])\n\n /**\n * We must keep local state so that we can reflect the user's typed changes immediately. At the\n * same time, though, the source of truth for the data is the prop data. This presents a\n * challenge: how do we keep local state in sync with the prop data without mangling user input as\n * data comes in?\n *\n * Consider, for example, that the user types \"Hello\". If at a later time, when the user is trying\n * to type \", world\" the component re-renders with prop data \"H\", \"He\", \"Hel\", \"Hell\", \"Hello\", it\n * will disrupt the user's typing. This could also happen as a result of the prop data changing\n * for other reasons, like collaborators changing the prop data concurrently. We want to avoid to\n * disrupt the user's typing, while at the same time display the \"true\" value as quickly as\n * possible.\n *\n * The approach we take here is to commit the prop data at an opportune time: as the user is\n * typing we avoid to commit prop data. But once they've stopped typing, we commit it as soon as\n * possible. This is known as a debounce.\n */\n const [value, setValue] = useState(() => {\n const { selection, ...textWithoutSelection } = text ?? defaultText\n\n return Value.fromJSON(textWithoutSelection)\n })\n const [shouldCommit, setShouldCommit] = useState(true)\n\n useEffect(() => {\n if (shouldCommit) {\n const nextValue = Value.fromJSON(text ?? defaultText)\n\n setValue(currentValue =>\n currentValue.selection.isBlurred\n ? Value.fromJSON(nextValue.toJSON({ preserveSelection: false }))\n : nextValue,\n )\n }\n }, [shouldCommit, text])\n\n useEffect(() => {\n if (shouldCommit) return\n\n const timeoutId = window.setTimeout(() => {\n setShouldCommit(true)\n }, COMMIT_DEBOUNCE_DELAY)\n\n return () => {\n window.clearTimeout(timeoutId)\n }\n }, [shouldCommit])\n\n function handleChange(change: OnChangeParam) {\n setValue(change.value as Value)\n\n if (change.value !== value) {\n setShouldCommit(false)\n\n controller?.onChange(change)\n }\n }\n\n // HACK: Slate holds on to the very first DOM event handlers passed in and doesn't update them\n // even if they change. Since `controller` is first `undefined` then we must use a ref.\n const lastController = useRef(controller)\n if (lastController.current !== controller) lastController.current = controller\n const handleFocus = useCallback(() => {\n lastController.current?.focus()\n }, [])\n const handleKeyDown = useCallback(\n (event: ReactKeyboardEvent, _editor: Editor, next: () => any) => {\n if (Hotkeys.isUndo(event)) {\n lastController.current?.undo()\n\n return true\n }\n\n if (Hotkeys.isRedo(event)) {\n lastController.current?.redo()\n\n return true\n }\n\n if (isHotkey('escape')(event)) {\n lastController.current?.blur()\n\n return true\n }\n\n return next()\n },\n [],\n )\n const handleBlur = useCallback((event: ReactFocusEvent, _editor: Editor, next: () => any) => {\n // Normally, after a user highlight a text, clicking on the panel will remove the text selection.\n // This line is a workaround for that. Because the panel is not in the iframe, relatedTarget\n // would be null, and we return early so we don't remove the selection.\n if (event.relatedTarget == null) return true\n\n // Blur the selection if the user is clicking on other text.\n return next()\n }, [])\n\n const isInBuilder = useIsInBuilder()\n\n return (\n <StyledRichTextEditor\n // @ts-expect-error: types don't allow for 'id' prop even though it's used.\n id={id}\n ref={setEditor}\n width={width}\n readOnly={!isInBuilder}\n margin={margin}\n value={value}\n onChange={handleChange}\n onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n onBlur={handleBlur}\n />\n )\n})\n\nexport default Text\n"],"names":["Span","styled","span","p","cssMediaRules","typographyStyle","color","fontFamily","fontSize","fontWeight","lineHeight","letterSpacing","uppercase","underline","strikethrough","italic","css","colorToString","value","unit","Boolean","filter","join","shallowMergeFallbacks","restOfProps","useTypographyMark","TYPOGRAPHY_TYPE","renderMark","mark","children","_editor","next","type","data","get","StyledBlock","div","textAlign","as","forwardRef","ref","renderBlock","props","node","attributes","blockProps","StyledLink","Link","renderInline","toJS","RichTextEditor","placeholder","plugins","useMemo","Lists","Inlines","DeviceOverridesBlocks","DeviceOverridesMarks","SlateEditor","WebkitUserModify","undefined","StyledRichTextEditor","withConfig","shouldForwardProp","prop","includes","toString","cssWidth","cssMargin","defaultText","document","nodes","object","COMMIT_DEBOUNCE_DELAY","Text","id","text","width","margin","editor","setEditor","useState","propControllers","setPropControllers","controller","useImperativeHandle","getBoxModel","el","findDOMNode","Element","getBox","useEffect","setSlateEditor","setValue","selection","textWithoutSelection","Value","fromJSON","shouldCommit","setShouldCommit","nextValue","currentValue","isBlurred","toJSON","preserveSelection","timeoutId","window","setTimeout","clearTimeout","change","onChange","lastController","useRef","current","handleFocus","useCallback","focus","handleKeyDown","event","Hotkeys","isUndo","undo","isRedo","redo","isHotkey","blur","handleBlur","relatedTarget","isInBuilder","useIsInBuilder","handleChange"],"mappings":"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"}
package/dist/Video.cjs.js CHANGED
@@ -22,7 +22,6 @@ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
22
22
  var React = require("react");
23
23
  var styled = require("styled-components");
24
24
  var ReactPlayer = require("react-player");
25
- var css = require("@emotion/css");
26
25
  var cssMediaRules = require("./cssMediaRules.cjs.js");
27
26
  var placeholders = require("./placeholders.cjs.js");
28
27
  var jsxRuntime = require("react/jsx-runtime");
@@ -40,6 +39,7 @@ require("next/dynamic");
40
39
  require("next/document");
41
40
  require("slate");
42
41
  require("@emotion/server/create-instance");
42
+ require("@emotion/css");
43
43
  require("@apollo/client");
44
44
  require("@apollo/client/link/batch-http");
45
45
  require("./graphql.cjs.js");
@@ -58,11 +58,12 @@ function _interopDefaultLegacy(e) {
58
58
  var styled__default = /* @__PURE__ */ _interopDefaultLegacy(styled);
59
59
  var ReactPlayer__default = /* @__PURE__ */ _interopDefaultLegacy(ReactPlayer);
60
60
  const Container = styled__default["default"].div.withConfig({
61
- shouldForwardProp: (prop) => !["margin", "borderRadius"].includes(prop.toString())
61
+ shouldForwardProp: (prop) => !["width", "margin", "borderRadius"].includes(prop.toString())
62
62
  })`
63
63
  display: flex;
64
64
  flex-direction: column;
65
65
  overflow: hidden;
66
+ ${cssMediaRules.cssWidth("560px")}
66
67
  ${cssMediaRules.cssMargin()}
67
68
  ${cssMediaRules.cssBorderRadius()}
68
69
  `;
@@ -78,7 +79,7 @@ const Video = React.forwardRef(function Video2({
78
79
  return /* @__PURE__ */ jsxRuntime.jsx(Container, {
79
80
  ref,
80
81
  id,
81
- className: css.cx(width),
82
+ width,
82
83
  margin,
83
84
  borderRadius,
84
85
  children: /* @__PURE__ */ jsxRuntime.jsx("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"Video.cjs.js","sources":["../src/components/builtin/Video/Video.tsx"],"sourcesContent":["import { forwardRef, Ref } from 'react'\nimport styled from 'styled-components'\nimport ReactPlayer from 'react-player'\nimport { cx } from '@emotion/css'\n\nimport {\n BorderRadiusValue,\n ElementIDValue,\n MarginValue,\n VideoValue,\n} from '../../../prop-controllers/descriptors'\nimport { cssBorderRadius, cssMargin } from '../../utils/cssMediaRules'\nimport { placeholders } from '../../utils/placeholders'\n\ntype Props = {\n id?: ElementIDValue\n video?: VideoValue\n width?: string\n margin?: MarginValue\n borderRadius?: BorderRadiusValue\n}\n\nconst Container = styled.div.withConfig({\n shouldForwardProp: prop => !['margin', 'borderRadius'].includes(prop.toString()),\n})<{ margin: Props['margin']; borderRadius: Props['borderRadius'] }>`\n display: flex;\n flex-direction: column;\n overflow: hidden;\n ${cssMargin()}\n ${cssBorderRadius()}\n`\n\nconst ASPECT_RATIO = 16 / 9\n\nconst Video = forwardRef(function Video(\n { id, video, width, margin, borderRadius }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n const canPlayUrl = video && video.url != null && ReactPlayer.canPlay(video.url)\n\n return (\n <Container ref={ref} id={id} className={cx(width)} margin={margin} borderRadius={borderRadius}>\n <div style={{ position: 'relative', paddingTop: `${100 / ASPECT_RATIO}%` }}>\n <div style={{ position: 'absolute', top: 0, left: 0, right: 0, bottom: 0 }}>\n {canPlayUrl === true ? (\n <ReactPlayer\n {...video}\n width=\"100%\"\n height=\"100%\"\n config={{\n vimeo: { playerOptions: { background: video != null && !video.controls } },\n wistia: {\n options: {\n endVideoBehavior: video != null && video.loop === true ? 'loop' : 'default',\n },\n },\n }}\n />\n ) : (\n <img width=\"100%\" src={placeholders.video.src} alt=\"Video Placeholder\" />\n )}\n </div>\n </div>\n </Container>\n )\n})\n\nexport default Video\n"],"names":["Container","styled","div","withConfig","shouldForwardProp","prop","includes","toString","cssMargin","cssBorderRadius","ASPECT_RATIO","Video","forwardRef","id","video","width","margin","borderRadius","ref","canPlayUrl","url","ReactPlayer","canPlay","cx","position","paddingTop","top","left","right","bottom","_jsx","vimeo","playerOptions","background","controls","wistia","options","endVideoBehavior","loop","placeholders","src"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA,MAAMA,YAAYC,gBAAAA,WAAOC,IAAIC,WAAW;AAAA,EACtCC,mBAAmBC,CAAQ,SAAA,CAAC,CAAC,UAAU,cAAX,EAA2BC,SAASD,KAAKE,UAAzC;AADU,CAAtB;AAAA;AAAA;AAAA;AAAA,IAMdC,cAAY,UAAA;AAAA,IACZC,cAAkB,gBAAA;AAAA;AAGtB,MAAMC,eAAe,KAAK;AAEpBC,MAAAA,QAAQC,MAAAA,WAAW,gBACvB;AAAA,EAAEC;AAAAA,EAAIC;AAAAA,EAAOC;AAAAA,EAAOC;AAAAA,EAAQC;AAAAA,GAC5BC,KACA;AACMC,QAAAA,aAAaL,SAASA,MAAMM,OAAO,QAAQC,qBAAAA,WAAYC,QAAQR,MAAMM,GAA1B;AAEjD,wCACG,WAAD;AAAA,IAAW;AAAA,IAAU;AAAA,IAAQ,WAAWG,OAAGR,KAAD;AAAA,IAAS;AAAA,IAAgB;AAAA,IACjE,yCAAA,OAAA;AAAA,MAAK,OAAO;AAAA,QAAES,UAAU;AAAA,QAAYC,YAAa,GAAE,MAAMf;AAAAA,MAAzD;AAAA,MACE,yCAAA,OAAA;AAAA,QAAK,OAAO;AAAA,UAAEc,UAAU;AAAA,UAAYE,KAAK;AAAA,UAAGC,MAAM;AAAA,UAAGC,OAAO;AAAA,UAAGC,QAAQ;AAAA,QAAvE;AAAA,QAAA,UACGV,eAAe,OACdW,2BAAAA,IAACT,qBAAAA,6CACKP;UACJ,OAAM;AAAA,UACN,QAAO;AAAA,UACP,QAAQ;AAAA,YACNiB,OAAO;AAAA,cAAEC,eAAe;AAAA,gBAAEC,YAAYnB,SAAS,QAAQ,CAACA,MAAMoB;AAAAA,cAAtC;AAAA,YADlB;AAAA,YAENC,QAAQ;AAAA,cACNC,SAAS;AAAA,gBACPC,kBAAkBvB,SAAS,QAAQA,MAAMwB,SAAS,OAAO,SAAS;AAAA,cAD3D;AAAA,YADH;AAAA,UAFF;AAAA,QAAA,EAJV,IAcAR,2BAAA,IAAA,OAAA;AAAA,UAAK,OAAM;AAAA,UAAO,KAAKS,aAAAA,aAAazB,MAAM0B;AAAAA,UAAK,KAAI;AAAA,QAAA,CAAnD;AAAA,MAAA,CAhBJ;AAAA,IAAA,CADF;AAAA,EAAA,CAFJ;AAyBD,CA/BuB;;"}
1
+ {"version":3,"file":"Video.cjs.js","sources":["../src/components/builtin/Video/Video.tsx"],"sourcesContent":["import { forwardRef, Ref } from 'react'\nimport styled from 'styled-components'\nimport ReactPlayer from 'react-player'\n\nimport {\n BorderRadiusValue,\n ElementIDValue,\n MarginValue,\n VideoValue,\n WidthValue,\n} from '../../../prop-controllers/descriptors'\nimport { cssBorderRadius, cssMargin, cssWidth } from '../../utils/cssMediaRules'\nimport { placeholders } from '../../utils/placeholders'\n\ntype Props = {\n id?: ElementIDValue\n video?: VideoValue\n width?: WidthValue\n margin?: MarginValue\n borderRadius?: BorderRadiusValue\n}\n\nconst Container = styled.div.withConfig({\n shouldForwardProp: prop => !['width', 'margin', 'borderRadius'].includes(prop.toString()),\n})<{ width: Props['width']; margin: Props['margin']; borderRadius: Props['borderRadius'] }>`\n display: flex;\n flex-direction: column;\n overflow: hidden;\n ${cssWidth('560px')}\n ${cssMargin()}\n ${cssBorderRadius()}\n`\n\nconst ASPECT_RATIO = 16 / 9\n\nconst Video = forwardRef(function Video(\n { id, video, width, margin, borderRadius }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n const canPlayUrl = video && video.url != null && ReactPlayer.canPlay(video.url)\n\n return (\n <Container ref={ref} id={id} width={width} margin={margin} borderRadius={borderRadius}>\n <div style={{ position: 'relative', paddingTop: `${100 / ASPECT_RATIO}%` }}>\n <div style={{ position: 'absolute', top: 0, left: 0, right: 0, bottom: 0 }}>\n {canPlayUrl === true ? (\n <ReactPlayer\n {...video}\n width=\"100%\"\n height=\"100%\"\n config={{\n vimeo: { playerOptions: { background: video != null && !video.controls } },\n wistia: {\n options: {\n endVideoBehavior: video != null && video.loop === true ? 'loop' : 'default',\n },\n },\n }}\n />\n ) : (\n <img width=\"100%\" src={placeholders.video.src} alt=\"Video Placeholder\" />\n )}\n </div>\n </div>\n </Container>\n )\n})\n\nexport default Video\n"],"names":["Container","styled","div","withConfig","shouldForwardProp","prop","includes","toString","cssWidth","cssMargin","cssBorderRadius","ASPECT_RATIO","Video","forwardRef","id","video","width","margin","borderRadius","ref","canPlayUrl","url","ReactPlayer","canPlay","position","paddingTop","top","left","right","bottom","_jsx","vimeo","playerOptions","background","controls","wistia","options","endVideoBehavior","loop","placeholders","src"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA,MAAMA,YAAYC,gBAAAA,WAAOC,IAAIC,WAAW;AAAA,EACtCC,mBAAmBC,CAAQ,SAAA,CAAC,CAAC,SAAS,UAAU,cAApB,EAAoCC,SAASD,KAAKE,UAAlD;AADU,CAAtB;AAAA;AAAA;AAAA;AAAA,IAMdC,cAAAA,SAAS,OAAD;AAAA,IACRC,cAAY,UAAA;AAAA,IACZC,cAAkB,gBAAA;AAAA;AAGtB,MAAMC,eAAe,KAAK;AAEpBC,MAAAA,QAAQC,MAAAA,WAAW,gBACvB;AAAA,EAAEC;AAAAA,EAAIC;AAAAA,EAAOC;AAAAA,EAAOC;AAAAA,EAAQC;AAAAA,GAC5BC,KACA;AACMC,QAAAA,aAAaL,SAASA,MAAMM,OAAO,QAAQC,qBAAAA,WAAYC,QAAQR,MAAMM,GAA1B;AAEjD,wCACG,WAAD;AAAA,IAAW;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAc;AAAA,IAAgB;AAAA,IACzD,yCAAA,OAAA;AAAA,MAAK,OAAO;AAAA,QAAEG,UAAU;AAAA,QAAYC,YAAa,GAAE,MAAMd;AAAAA,MAAzD;AAAA,MACE,yCAAA,OAAA;AAAA,QAAK,OAAO;AAAA,UAAEa,UAAU;AAAA,UAAYE,KAAK;AAAA,UAAGC,MAAM;AAAA,UAAGC,OAAO;AAAA,UAAGC,QAAQ;AAAA,QAAvE;AAAA,QAAA,UACGT,eAAe,OACdU,2BAAAA,IAACR,qBAAAA,6CACKP;UACJ,OAAM;AAAA,UACN,QAAO;AAAA,UACP,QAAQ;AAAA,YACNgB,OAAO;AAAA,cAAEC,eAAe;AAAA,gBAAEC,YAAYlB,SAAS,QAAQ,CAACA,MAAMmB;AAAAA,cAAtC;AAAA,YADlB;AAAA,YAENC,QAAQ;AAAA,cACNC,SAAS;AAAA,gBACPC,kBAAkBtB,SAAS,QAAQA,MAAMuB,SAAS,OAAO,SAAS;AAAA,cAD3D;AAAA,YADH;AAAA,UAFF;AAAA,QAAA,EAJV,IAcAR,2BAAA,IAAA,OAAA;AAAA,UAAK,OAAM;AAAA,UAAO,KAAKS,aAAAA,aAAaxB,MAAMyB;AAAAA,UAAK,KAAI;AAAA,QAAA,CAAnD;AAAA,MAAA,CAhBJ;AAAA,IAAA,CADF;AAAA,EAAA,CAFJ;AAyBD,CA/BuB;;"}
package/dist/Video.es.js CHANGED
@@ -20,8 +20,7 @@ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
20
  import { forwardRef } from "react";
21
21
  import styled from "styled-components";
22
22
  import ReactPlayer from "react-player";
23
- import { cx } from "@emotion/css";
24
- import { b as cssMargin, f as cssBorderRadius } from "./cssMediaRules.es.js";
23
+ import { a as cssWidth, b as cssMargin, f as cssBorderRadius } from "./cssMediaRules.es.js";
25
24
  import { p as placeholders } from "./placeholders.es.js";
26
25
  import { jsx } from "react/jsx-runtime";
27
26
  import "./index.es.js";
@@ -38,6 +37,7 @@ import "next/dynamic";
38
37
  import "next/document";
39
38
  import "slate";
40
39
  import "@emotion/server/create-instance";
40
+ import "@emotion/css";
41
41
  import "@apollo/client";
42
42
  import "@apollo/client/link/batch-http";
43
43
  import "./graphql.es.js";
@@ -51,11 +51,12 @@ import "next/head";
51
51
  import "uuid/v4";
52
52
  import "corporate-ipsum";
53
53
  const Container = styled.div.withConfig({
54
- shouldForwardProp: (prop) => !["margin", "borderRadius"].includes(prop.toString())
54
+ shouldForwardProp: (prop) => !["width", "margin", "borderRadius"].includes(prop.toString())
55
55
  })`
56
56
  display: flex;
57
57
  flex-direction: column;
58
58
  overflow: hidden;
59
+ ${cssWidth("560px")}
59
60
  ${cssMargin()}
60
61
  ${cssBorderRadius()}
61
62
  `;
@@ -71,7 +72,7 @@ const Video = forwardRef(function Video2({
71
72
  return /* @__PURE__ */ jsx(Container, {
72
73
  ref,
73
74
  id,
74
- className: cx(width),
75
+ width,
75
76
  margin,
76
77
  borderRadius,
77
78
  children: /* @__PURE__ */ jsx("div", {
@@ -1 +1 @@
1
- {"version":3,"file":"Video.es.js","sources":["../src/components/builtin/Video/Video.tsx"],"sourcesContent":["import { forwardRef, Ref } from 'react'\nimport styled from 'styled-components'\nimport ReactPlayer from 'react-player'\nimport { cx } from '@emotion/css'\n\nimport {\n BorderRadiusValue,\n ElementIDValue,\n MarginValue,\n VideoValue,\n} from '../../../prop-controllers/descriptors'\nimport { cssBorderRadius, cssMargin } from '../../utils/cssMediaRules'\nimport { placeholders } from '../../utils/placeholders'\n\ntype Props = {\n id?: ElementIDValue\n video?: VideoValue\n width?: string\n margin?: MarginValue\n borderRadius?: BorderRadiusValue\n}\n\nconst Container = styled.div.withConfig({\n shouldForwardProp: prop => !['margin', 'borderRadius'].includes(prop.toString()),\n})<{ margin: Props['margin']; borderRadius: Props['borderRadius'] }>`\n display: flex;\n flex-direction: column;\n overflow: hidden;\n ${cssMargin()}\n ${cssBorderRadius()}\n`\n\nconst ASPECT_RATIO = 16 / 9\n\nconst Video = forwardRef(function Video(\n { id, video, width, margin, borderRadius }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n const canPlayUrl = video && video.url != null && ReactPlayer.canPlay(video.url)\n\n return (\n <Container ref={ref} id={id} className={cx(width)} margin={margin} borderRadius={borderRadius}>\n <div style={{ position: 'relative', paddingTop: `${100 / ASPECT_RATIO}%` }}>\n <div style={{ position: 'absolute', top: 0, left: 0, right: 0, bottom: 0 }}>\n {canPlayUrl === true ? (\n <ReactPlayer\n {...video}\n width=\"100%\"\n height=\"100%\"\n config={{\n vimeo: { playerOptions: { background: video != null && !video.controls } },\n wistia: {\n options: {\n endVideoBehavior: video != null && video.loop === true ? 'loop' : 'default',\n },\n },\n }}\n />\n ) : (\n <img width=\"100%\" src={placeholders.video.src} alt=\"Video Placeholder\" />\n )}\n </div>\n </div>\n </Container>\n )\n})\n\nexport default Video\n"],"names":["Container","styled","div","withConfig","shouldForwardProp","prop","includes","toString","cssMargin","cssBorderRadius","ASPECT_RATIO","Video","forwardRef","id","video","width","margin","borderRadius","ref","canPlayUrl","url","ReactPlayer","canPlay","cx","position","paddingTop","top","left","right","bottom","_jsx","vimeo","playerOptions","background","controls","wistia","options","endVideoBehavior","loop","placeholders","src"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA,MAAMA,YAAYC,OAAOC,IAAIC,WAAW;AAAA,EACtCC,mBAAmBC,CAAQ,SAAA,CAAC,CAAC,UAAU,cAAX,EAA2BC,SAASD,KAAKE,UAAzC;AADU,CAAtB;AAAA;AAAA;AAAA;AAAA,IAMdC,UAAY;AAAA,IACZC,gBAAkB;AAAA;AAGtB,MAAMC,eAAe,KAAK;AAEpBC,MAAAA,QAAQC,WAAW,gBACvB;AAAA,EAAEC;AAAAA,EAAIC;AAAAA,EAAOC;AAAAA,EAAOC;AAAAA,EAAQC;AAAAA,GAC5BC,KACA;AACMC,QAAAA,aAAaL,SAASA,MAAMM,OAAO,QAAQC,YAAYC,QAAQR,MAAMM,GAA1B;AAEjD,6BACG,WAAD;AAAA,IAAW;AAAA,IAAU;AAAA,IAAQ,WAAWG,GAAGR,KAAD;AAAA,IAAS;AAAA,IAAgB;AAAA,IACjE,8BAAA,OAAA;AAAA,MAAK,OAAO;AAAA,QAAES,UAAU;AAAA,QAAYC,YAAa,GAAE,MAAMf;AAAAA,MAAzD;AAAA,MACE,8BAAA,OAAA;AAAA,QAAK,OAAO;AAAA,UAAEc,UAAU;AAAA,UAAYE,KAAK;AAAA,UAAGC,MAAM;AAAA,UAAGC,OAAO;AAAA,UAAGC,QAAQ;AAAA,QAAvE;AAAA,QAAA,UACGV,eAAe,OACdW,oBAAC,8CACKhB;UACJ,OAAM;AAAA,UACN,QAAO;AAAA,UACP,QAAQ;AAAA,YACNiB,OAAO;AAAA,cAAEC,eAAe;AAAA,gBAAEC,YAAYnB,SAAS,QAAQ,CAACA,MAAMoB;AAAAA,cAAtC;AAAA,YADlB;AAAA,YAENC,QAAQ;AAAA,cACNC,SAAS;AAAA,gBACPC,kBAAkBvB,SAAS,QAAQA,MAAMwB,SAAS,OAAO,SAAS;AAAA,cAD3D;AAAA,YADH;AAAA,UAFF;AAAA,QAAA,EAJV,IAcAR,oBAAA,OAAA;AAAA,UAAK,OAAM;AAAA,UAAO,KAAKS,aAAazB,MAAM0B;AAAAA,UAAK,KAAI;AAAA,QAAA,CAAnD;AAAA,MAAA,CAhBJ;AAAA,IAAA,CADF;AAAA,EAAA,CAFJ;AAyBD,CA/BuB;;"}
1
+ {"version":3,"file":"Video.es.js","sources":["../src/components/builtin/Video/Video.tsx"],"sourcesContent":["import { forwardRef, Ref } from 'react'\nimport styled from 'styled-components'\nimport ReactPlayer from 'react-player'\n\nimport {\n BorderRadiusValue,\n ElementIDValue,\n MarginValue,\n VideoValue,\n WidthValue,\n} from '../../../prop-controllers/descriptors'\nimport { cssBorderRadius, cssMargin, cssWidth } from '../../utils/cssMediaRules'\nimport { placeholders } from '../../utils/placeholders'\n\ntype Props = {\n id?: ElementIDValue\n video?: VideoValue\n width?: WidthValue\n margin?: MarginValue\n borderRadius?: BorderRadiusValue\n}\n\nconst Container = styled.div.withConfig({\n shouldForwardProp: prop => !['width', 'margin', 'borderRadius'].includes(prop.toString()),\n})<{ width: Props['width']; margin: Props['margin']; borderRadius: Props['borderRadius'] }>`\n display: flex;\n flex-direction: column;\n overflow: hidden;\n ${cssWidth('560px')}\n ${cssMargin()}\n ${cssBorderRadius()}\n`\n\nconst ASPECT_RATIO = 16 / 9\n\nconst Video = forwardRef(function Video(\n { id, video, width, margin, borderRadius }: Props,\n ref: Ref<HTMLDivElement>,\n) {\n const canPlayUrl = video && video.url != null && ReactPlayer.canPlay(video.url)\n\n return (\n <Container ref={ref} id={id} width={width} margin={margin} borderRadius={borderRadius}>\n <div style={{ position: 'relative', paddingTop: `${100 / ASPECT_RATIO}%` }}>\n <div style={{ position: 'absolute', top: 0, left: 0, right: 0, bottom: 0 }}>\n {canPlayUrl === true ? (\n <ReactPlayer\n {...video}\n width=\"100%\"\n height=\"100%\"\n config={{\n vimeo: { playerOptions: { background: video != null && !video.controls } },\n wistia: {\n options: {\n endVideoBehavior: video != null && video.loop === true ? 'loop' : 'default',\n },\n },\n }}\n />\n ) : (\n <img width=\"100%\" src={placeholders.video.src} alt=\"Video Placeholder\" />\n )}\n </div>\n </div>\n </Container>\n )\n})\n\nexport default Video\n"],"names":["Container","styled","div","withConfig","shouldForwardProp","prop","includes","toString","cssWidth","cssMargin","cssBorderRadius","ASPECT_RATIO","Video","forwardRef","id","video","width","margin","borderRadius","ref","canPlayUrl","url","ReactPlayer","canPlay","position","paddingTop","top","left","right","bottom","_jsx","vimeo","playerOptions","background","controls","wistia","options","endVideoBehavior","loop","placeholders","src"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsBA,MAAMA,YAAYC,OAAOC,IAAIC,WAAW;AAAA,EACtCC,mBAAmBC,CAAQ,SAAA,CAAC,CAAC,SAAS,UAAU,cAApB,EAAoCC,SAASD,KAAKE,UAAlD;AADU,CAAtB;AAAA;AAAA;AAAA;AAAA,IAMdC,SAAS,OAAD;AAAA,IACRC,UAAY;AAAA,IACZC,gBAAkB;AAAA;AAGtB,MAAMC,eAAe,KAAK;AAEpBC,MAAAA,QAAQC,WAAW,gBACvB;AAAA,EAAEC;AAAAA,EAAIC;AAAAA,EAAOC;AAAAA,EAAOC;AAAAA,EAAQC;AAAAA,GAC5BC,KACA;AACMC,QAAAA,aAAaL,SAASA,MAAMM,OAAO,QAAQC,YAAYC,QAAQR,MAAMM,GAA1B;AAEjD,6BACG,WAAD;AAAA,IAAW;AAAA,IAAU;AAAA,IAAQ;AAAA,IAAc;AAAA,IAAgB;AAAA,IACzD,8BAAA,OAAA;AAAA,MAAK,OAAO;AAAA,QAAEG,UAAU;AAAA,QAAYC,YAAa,GAAE,MAAMd;AAAAA,MAAzD;AAAA,MACE,8BAAA,OAAA;AAAA,QAAK,OAAO;AAAA,UAAEa,UAAU;AAAA,UAAYE,KAAK;AAAA,UAAGC,MAAM;AAAA,UAAGC,OAAO;AAAA,UAAGC,QAAQ;AAAA,QAAvE;AAAA,QAAA,UACGT,eAAe,OACdU,oBAAC,8CACKf;UACJ,OAAM;AAAA,UACN,QAAO;AAAA,UACP,QAAQ;AAAA,YACNgB,OAAO;AAAA,cAAEC,eAAe;AAAA,gBAAEC,YAAYlB,SAAS,QAAQ,CAACA,MAAMmB;AAAAA,cAAtC;AAAA,YADlB;AAAA,YAENC,QAAQ;AAAA,cACNC,SAAS;AAAA,gBACPC,kBAAkBtB,SAAS,QAAQA,MAAMuB,SAAS,OAAO,SAAS;AAAA,cAD3D;AAAA,YADH;AAAA,UAFF;AAAA,QAAA,EAJV,IAcAR,oBAAA,OAAA;AAAA,UAAK,OAAM;AAAA,UAAO,KAAKS,aAAaxB,MAAMyB;AAAAA,UAAK,KAAI;AAAA,QAAA,CAAnD;AAAA,MAAA,CAhBJ;AAAA,IAAA,CADF;AAAA,EAAA,CAFJ;AAyBD,CA/BuB;;"}
@@ -21,7 +21,6 @@ var useMediaQuery = require("./useMediaQuery.cjs.js");
21
21
  require("react");
22
22
  require("styled-components");
23
23
  require("framer-motion");
24
- require("@emotion/css");
25
24
  require("react/jsx-runtime");
26
25
  require("./box-models.cjs.js");
27
26
  require("css-box-model");
@@ -38,6 +37,7 @@ require("next/dynamic");
38
37
  require("next/document");
39
38
  require("slate");
40
39
  require("@emotion/server/create-instance");
40
+ require("@emotion/css");
41
41
  require("@apollo/client");
42
42
  require("@apollo/client/link/batch-http");
43
43
  require("./graphql.cjs.js");
@@ -19,7 +19,6 @@ export { u as useMediaQuery } from "./useMediaQuery.es.js";
19
19
  import "react";
20
20
  import "styled-components";
21
21
  import "framer-motion";
22
- import "@emotion/css";
23
22
  import "react/jsx-runtime";
24
23
  import "./box-models.es.js";
25
24
  import "css-box-model";
@@ -36,6 +35,7 @@ import "next/dynamic";
36
35
  import "next/document";
37
36
  import "slate";
38
37
  import "@emotion/server/create-instance";
38
+ import "@emotion/css";
39
39
  import "@apollo/client";
40
40
  import "@apollo/client/link/batch-http";
41
41
  import "./graphql.es.js";
@@ -1,5 +1,5 @@
1
1
  import { css } from "styled-components";
2
- import { I as join, J as getDevice, K as getDeviceMediaQuery, p as colorToString } from "./index.es.js";
2
+ import { H as join, I as getDevice, J as getDeviceMediaQuery, p as colorToString } from "./index.es.js";
3
3
  const getIndexes = (spans, index) => {
4
4
  const flattened = spans.reduce((a, s) => a.concat(s), []);
5
5
  if (index < 0 || index > flattened.length)
package/dist/index.cjs.js CHANGED
@@ -1129,7 +1129,7 @@ function registerComponent$c(runtime) {
1129
1129
  props: {
1130
1130
  id: descriptors.ElementID(),
1131
1131
  backgrounds: descriptors.Backgrounds(),
1132
- width: descriptors.Width({ format: descriptors.Width.Formats.ClassName }),
1132
+ width: descriptors.Width(),
1133
1133
  height: descriptors.ResponsiveIconRadioGroup({
1134
1134
  label: "Height",
1135
1135
  options: [
@@ -1337,10 +1337,7 @@ function registerComponent$a(runtime) {
1337
1337
  { key: uuid__default["default"](), props: {} }
1338
1338
  ]
1339
1339
  }),
1340
- width: descriptors.Width({
1341
- format: descriptors.Width.Formats.ClassName,
1342
- defaultValue: { value: 400, unit: "px" }
1343
- }),
1340
+ width: descriptors.Width({ defaultValue: { value: 400, unit: "px" } }),
1344
1341
  margin: descriptors.Margin(),
1345
1342
  pageSize: descriptors.ResponsiveNumber((props) => {
1346
1343
  var _a;
@@ -1492,10 +1489,7 @@ function registerComponent$9(runtime) {
1492
1489
  label: "Label color",
1493
1490
  placeholder: "black"
1494
1491
  }),
1495
- width: descriptors.Width({
1496
- format: descriptors.Width.Formats.ClassName,
1497
- defaultValue: { value: 560, unit: "px" }
1498
- }),
1492
+ width: descriptors.Width({ defaultValue: { value: 560, unit: "px" } }),
1499
1493
  margin: descriptors.Margin(),
1500
1494
  daysLabel: descriptors.TextInput({ label: "Days label", placeholder: "Days" }),
1501
1495
  hoursLabel: descriptors.TextInput({ label: "Hours label", placeholder: "Hours" }),
@@ -1536,10 +1530,7 @@ function registerComponent$8(runtime) {
1536
1530
  options: [{ value: "px", label: "Pixels", icon: "Px16" }]
1537
1531
  }),
1538
1532
  color: descriptors.ResponsiveColor({ placeholder: "black" }),
1539
- width: descriptors.Width({
1540
- format: descriptors.Width.Formats.ClassName,
1541
- defaultValue: { value: 100, unit: "%" }
1542
- }),
1533
+ width: descriptors.Width({ defaultValue: { value: 100, unit: "%" } }),
1543
1534
  margin: descriptors.Margin()
1544
1535
  }
1545
1536
  });
@@ -1554,7 +1545,7 @@ function registerComponent$7(runtime) {
1554
1545
  props: {
1555
1546
  id: descriptors.ElementID(),
1556
1547
  html: descriptors.TextArea({ label: "Code", rows: 20 }),
1557
- width: descriptors.Width({ format: descriptors.Width.Formats.ClassName }),
1548
+ width: descriptors.Width({}),
1558
1549
  margin: descriptors.Margin()
1559
1550
  }
1560
1551
  });
@@ -1693,7 +1684,6 @@ function registerComponent$6(runtime) {
1693
1684
  hidden: props.tableId == null
1694
1685
  })),
1695
1686
  width: descriptors.Width({
1696
- format: descriptors.Width.Formats.ClassName,
1697
1687
  preset: [{ deviceId: "desktop", value: { value: 550, unit: "px" } }],
1698
1688
  defaultValue: { value: 100, unit: "%" }
1699
1689
  }),
@@ -1811,10 +1801,7 @@ function registerComponent$4(runtime) {
1811
1801
  hidden
1812
1802
  };
1813
1803
  }),
1814
- width: descriptors.Width({
1815
- format: descriptors.Width.Formats.ClassName,
1816
- defaultValue: { value: 100, unit: "%" }
1817
- }),
1804
+ width: descriptors.Width({ defaultValue: { value: 100, unit: "%" } }),
1818
1805
  margin: descriptors.Margin()
1819
1806
  }
1820
1807
  });
@@ -1938,10 +1925,7 @@ function registerComponent$2(runtime) {
1938
1925
  step: 1,
1939
1926
  defaultValue: { value: 0, unit: "px" }
1940
1927
  }),
1941
- width: descriptors.Width({
1942
- format: descriptors.Width.Formats.ClassName,
1943
- defaultValue: { value: 100, unit: "%" }
1944
- }),
1928
+ width: descriptors.Width({ defaultValue: { value: 100, unit: "%" } }),
1945
1929
  margin: descriptors.Margin({
1946
1930
  preset: [
1947
1931
  {
@@ -2010,7 +1994,6 @@ function registerComponent$1(runtime) {
2010
1994
  }
2011
1995
  })),
2012
1996
  width: descriptors.Width({
2013
- format: descriptors.Width.Formats.ClassName,
2014
1997
  preset: [{ deviceId: "desktop", value: { value: 700, unit: "px" } }],
2015
1998
  defaultValue: { value: 100, unit: "%" }
2016
1999
  }),
@@ -2040,10 +2023,7 @@ function registerComponent(runtime) {
2040
2023
  props: {
2041
2024
  id: descriptors.ElementID(),
2042
2025
  video: descriptors.Video({ preset: { controls: true } }),
2043
- width: descriptors.Width({
2044
- format: descriptors.Width.Formats.ClassName,
2045
- defaultValue: { value: 560, unit: "px" }
2046
- }),
2026
+ width: descriptors.Width({ defaultValue: { value: 560, unit: "px" } }),
2047
2027
  margin: descriptors.Margin(),
2048
2028
  borderRadius: descriptors.BorderRadius()
2049
2029
  }
@@ -3182,7 +3162,6 @@ exports.getStaticPaths = getStaticPaths;
3182
3162
  exports.getStaticProps = getStaticProps;
3183
3163
  exports.isNonNullable = isNonNullable;
3184
3164
  exports.join = join;
3185
- exports.responsiveWidth = responsiveWidth;
3186
3165
  exports.shallowMergeFallbacks = shallowMergeFallbacks;
3187
3166
  exports.useBorder = useBorder;
3188
3167
  exports.useElementId = useElementId;