@makeswift/runtime 0.0.0-20230407200421 → 0.0.0-20230410231005
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Box.cjs.js +14 -10
- package/dist/Box.cjs.js.map +1 -1
- package/dist/Box.es.js +9 -5
- package/dist/Box.es.js.map +1 -1
- package/dist/Button.cjs.js +40 -36
- package/dist/Button.cjs.js.map +1 -1
- package/dist/Button.es.js +15 -11
- package/dist/Button.es.js.map +1 -1
- package/dist/Carousel.cjs.js +38 -34
- package/dist/Carousel.cjs.js.map +1 -1
- package/dist/Carousel.es.js +13 -9
- package/dist/Carousel.es.js.map +1 -1
- package/dist/Countdown.cjs.js +30 -54
- package/dist/Countdown.cjs.js.map +1 -1
- package/dist/Countdown.es.js +5 -29
- package/dist/Countdown.es.js.map +1 -1
- package/dist/Divider.cjs.js +11 -35
- package/dist/Divider.cjs.js.map +1 -1
- package/dist/Divider.es.js +5 -29
- package/dist/Divider.es.js.map +1 -1
- package/dist/Embed.cjs.js +6 -30
- package/dist/Embed.cjs.js.map +1 -1
- package/dist/Embed.es.js +5 -29
- package/dist/Embed.es.js.map +1 -1
- package/dist/Form.cjs.js +76 -72
- package/dist/Form.cjs.js.map +1 -1
- package/dist/Form.es.js +14 -10
- package/dist/Form.es.js.map +1 -1
- package/dist/Image.cjs.js +22 -18
- package/dist/Image.cjs.js.map +1 -1
- package/dist/Image.es.js +15 -11
- package/dist/Image.es.js.map +1 -1
- package/dist/LiveProvider.cjs.js +14 -10
- package/dist/LiveProvider.cjs.js.map +1 -1
- package/dist/LiveProvider.es.js +14 -10
- package/dist/LiveProvider.es.js.map +1 -1
- package/dist/Navigation.cjs.js +41 -37
- package/dist/Navigation.cjs.js.map +1 -1
- package/dist/Navigation.es.js +15 -11
- package/dist/Navigation.es.js.map +1 -1
- package/dist/PreviewProvider.cjs.js +12 -8
- package/dist/PreviewProvider.cjs.js.map +1 -1
- package/dist/PreviewProvider.es.js +12 -8
- package/dist/PreviewProvider.es.js.map +1 -1
- package/dist/ReadOnlyText.cjs.js +71 -67
- package/dist/ReadOnlyText.cjs.js.map +1 -1
- package/dist/ReadOnlyText.es.js +15 -11
- package/dist/ReadOnlyText.es.js.map +1 -1
- package/dist/Root.cjs.js +13 -9
- package/dist/Root.cjs.js.map +1 -1
- package/dist/Root.es.js +11 -7
- package/dist/Root.es.js.map +1 -1
- package/dist/SocialLinks.cjs.js +16 -12
- package/dist/SocialLinks.cjs.js.map +1 -1
- package/dist/SocialLinks.es.js +9 -5
- package/dist/SocialLinks.es.js.map +1 -1
- package/dist/Text.cjs.js +7 -3
- package/dist/Text.cjs.js.map +1 -1
- package/dist/Text.es.js +8 -4
- package/dist/Text.es.js.map +1 -1
- package/dist/Video.cjs.js +6 -30
- package/dist/Video.cjs.js.map +1 -1
- package/dist/Video.es.js +5 -29
- package/dist/Video.es.js.map +1 -1
- package/dist/actions.cjs.js +0 -13
- package/dist/actions.cjs.js.map +1 -1
- package/dist/actions.es.js +1 -12
- package/dist/actions.es.js.map +1 -1
- package/dist/api.cjs.js +1 -1
- package/dist/api.es.js +1 -1
- package/dist/builder.cjs.js +1 -0
- package/dist/builder.cjs.js.map +1 -1
- package/dist/builder.es.js +1 -0
- package/dist/builder.es.js.map +1 -1
- package/dist/components.cjs.js +14 -10
- package/dist/components.cjs.js.map +1 -1
- package/dist/components.es.js +14 -10
- package/dist/components.es.js.map +1 -1
- package/dist/control-serialization.cjs.js +37 -36
- package/dist/control-serialization.cjs.js.map +1 -1
- package/dist/control-serialization.es.js +2 -1
- package/dist/control-serialization.es.js.map +1 -1
- package/dist/controls.cjs.js +22 -22
- package/dist/controls.es.js +2 -1
- package/dist/controls.es.js.map +1 -1
- package/dist/index.cjs.js +548 -1689
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.cjs2.js +23 -21
- package/dist/index.cjs2.js.map +1 -1
- package/dist/index.cjs3.js +2 -1
- package/dist/index.cjs3.js.map +1 -1
- package/dist/index.cjs4.js +2 -2
- package/dist/index.cjs4.js.map +1 -1
- package/dist/index.cjs5.js +20 -20
- package/dist/index.cjs5.js.map +1 -1
- package/dist/index.cjs6.js +7 -3
- package/dist/index.cjs6.js.map +1 -1
- package/dist/index.cjs7.js +50 -46
- package/dist/index.cjs7.js.map +1 -1
- package/dist/index.es.js +329 -1450
- package/dist/index.es.js.map +1 -1
- package/dist/index.es2.js +5 -3
- package/dist/index.es2.js.map +1 -1
- package/dist/index.es3.js +2 -1
- package/dist/index.es3.js.map +1 -1
- package/dist/index.es4.js +1 -1
- package/dist/index.es5.js +3 -3
- package/dist/index.es5.js.map +1 -1
- package/dist/index.es6.js +7 -3
- package/dist/index.es6.js.map +1 -1
- package/dist/index.es7.js +16 -12
- package/dist/index.es7.js.map +1 -1
- package/dist/introspection.cjs.js +21 -23
- package/dist/introspection.cjs.js.map +1 -1
- package/dist/introspection.es.js +4 -5
- package/dist/introspection.es.js.map +1 -1
- package/dist/isNonNullable.cjs.js +6 -0
- package/dist/isNonNullable.cjs.js.map +1 -0
- package/dist/isNonNullable.es.js +5 -0
- package/dist/isNonNullable.es.js.map +1 -0
- package/dist/leaf.cjs.js +11 -11
- package/dist/leaf.cjs.js.map +1 -1
- package/dist/leaf.es.js +2 -2
- package/dist/main.cjs.js +2 -0
- package/dist/main.cjs.js.map +1 -1
- package/dist/main.es.js +2 -0
- package/dist/main.es.js.map +1 -1
- package/dist/next.cjs.js +9 -6
- package/dist/next.cjs.js.map +1 -1
- package/dist/next.es.js +10 -6
- package/dist/next.es.js.map +1 -1
- package/dist/prop-controllers.cjs.js +3 -1
- package/dist/prop-controllers.cjs.js.map +1 -1
- package/dist/prop-controllers.es.js +3 -1
- package/dist/prop-controllers.es.js.map +1 -1
- package/dist/react.cjs.js +7 -3
- package/dist/react.cjs.js.map +1 -1
- package/dist/react.es.js +7 -3
- package/dist/react.es.js.map +1 -1
- package/dist/responsive-style.cjs.js +917 -0
- package/dist/responsive-style.cjs.js.map +1 -0
- package/dist/responsive-style.es.js +853 -0
- package/dist/responsive-style.es.js.map +1 -0
- package/dist/rich-text.cjs.js +61 -1319
- package/dist/rich-text.cjs.js.map +1 -1
- package/dist/rich-text.es.js +17 -1217
- package/dist/rich-text.es.js.map +1 -1
- package/dist/slate.cjs.js +8 -28
- package/dist/slate.cjs.js.map +1 -1
- package/dist/slate.es.js +8 -28
- package/dist/slate.es.js.map +1 -1
- package/dist/types/src/api/graphql/documents/queries.d.ts +0 -2
- package/dist/types/src/api/graphql/documents/queries.d.ts.map +1 -1
- package/dist/types/src/api/graphql/generated/types.d.ts +0 -70
- package/dist/types/src/api/graphql/generated/types.d.ts.map +1 -1
- package/dist/types/src/api/react.d.ts +0 -3
- package/dist/types/src/api/react.d.ts.map +1 -1
- package/dist/types/src/controls/rich-text/types.d.ts +1 -16
- package/dist/types/src/controls/rich-text/types.d.ts.map +1 -1
- package/dist/types/src/next/api-handler/handlers/element-tree.d.ts +12 -0
- package/dist/types/src/next/api-handler/handlers/element-tree.d.ts.map +1 -0
- package/dist/types/src/next/api-handler/handlers/fonts.d.ts +18 -0
- package/dist/types/src/next/api-handler/handlers/fonts.d.ts.map +1 -0
- package/dist/types/src/next/api-handler/handlers/manifest.d.ts +17 -0
- package/dist/types/src/next/api-handler/handlers/manifest.d.ts.map +1 -0
- package/dist/types/src/next/api-handler/handlers/proxy-preview-mode.d.ts +8 -0
- package/dist/types/src/next/api-handler/handlers/proxy-preview-mode.d.ts.map +1 -0
- package/dist/types/src/next/api-handler/handlers/revalidate.d.ts +13 -0
- package/dist/types/src/next/api-handler/handlers/revalidate.d.ts.map +1 -0
- package/dist/types/src/next/api-handler/index.d.ts +19 -0
- package/dist/types/src/next/api-handler/index.d.ts.map +1 -0
- package/dist/types/src/next/client.d.ts +11 -35
- package/dist/types/src/next/client.d.ts.map +1 -1
- package/dist/types/src/next/index.d.ts +1 -6
- package/dist/types/src/next/index.d.ts.map +1 -1
- package/dist/types/src/state/actions.d.ts +2 -22
- package/dist/types/src/state/actions.d.ts.map +1 -1
- package/dist/types/src/state/makeswift-api-client.d.ts +4 -9
- package/dist/types/src/state/makeswift-api-client.d.ts.map +1 -1
- package/dist/types/src/state/modules/api-resources.d.ts +4 -4
- package/dist/types/src/state/modules/api-resources.d.ts.map +1 -1
- package/dist/types.cjs.js +1272 -10
- package/dist/types.cjs.js.map +1 -1
- package/dist/types.cjs2.js +14 -0
- package/dist/types.cjs2.js.map +1 -0
- package/dist/types.es.js +1207 -10
- package/dist/types.es.js.map +1 -1
- package/dist/types.es2.js +13 -0
- package/dist/types.es2.js.map +1 -0
- package/package.json +3 -2
- package/dist/types/src/api/introspection.d.ts +0 -11
- package/dist/types/src/api/introspection.d.ts.map +0 -1
- package/dist/types/src/next/api-handler.d.ts +0 -48
- package/dist/types/src/next/api-handler.d.ts.map +0 -1
- package/dist/types/src/next/snapshots.d.ts +0 -152
- package/dist/types/src/next/snapshots.d.ts.map +0 -1
package/dist/index.es7.js
CHANGED
|
@@ -34,41 +34,45 @@ import { createEditor } from "slate";
|
|
|
34
34
|
import { withReact, ReactEditor, Slate, Editable } from "slate-react";
|
|
35
35
|
import { cx } from "@emotion/css";
|
|
36
36
|
import { g as getBox } from "./box-models.es.js";
|
|
37
|
-
import {
|
|
37
|
+
import { B as BlockType, n as InlineType } from "./types.es.js";
|
|
38
|
+
import { v as richTextDTOtoDAO, u as richTextDTOtoSelection, B as BuilderEditMode } from "./rich-text.es.js";
|
|
38
39
|
import { L as Leaf } from "./leaf.es.js";
|
|
39
|
-
import {
|
|
40
|
+
import { e as useStyle, r as responsiveStyle, d as deepEqual } from "./responsive-style.es.js";
|
|
40
41
|
import { jsx } from "react/jsx-runtime";
|
|
41
42
|
import { L as Link } from "./index.es3.js";
|
|
42
43
|
import isHotkey from "is-hotkey";
|
|
44
|
+
import { y as useBuilderEditMode, z as pollBoxModel } from "./index.es.js";
|
|
43
45
|
import { b as withBlock, a as withTypography, w as withList, o as onKeyDown } from "./index.es5.js";
|
|
44
46
|
import "css-box-model";
|
|
45
47
|
import "./actions.es.js";
|
|
46
|
-
import "./
|
|
48
|
+
import "./isNonNullable.es.js";
|
|
49
|
+
import "@emotion/serialize";
|
|
50
|
+
import "@emotion/utils";
|
|
51
|
+
import "use-sync-external-store/shim";
|
|
52
|
+
import "redux";
|
|
53
|
+
import "redux-thunk";
|
|
54
|
+
import "./types.es2.js";
|
|
55
|
+
import "scroll-into-view-if-needed";
|
|
56
|
+
import "next/link";
|
|
47
57
|
import "use-sync-external-store/shim/with-selector";
|
|
48
58
|
import "next/dynamic";
|
|
49
59
|
import "./constants.es.js";
|
|
50
|
-
import "
|
|
51
|
-
import "redux-thunk";
|
|
52
|
-
import "@emotion/serialize";
|
|
53
|
-
import "@emotion/utils";
|
|
60
|
+
import "./introspection.es.js";
|
|
54
61
|
import "./text-input.es.js";
|
|
55
62
|
import "./combobox.es.js";
|
|
56
|
-
import "use-sync-external-store/shim";
|
|
57
|
-
import "./types.es.js";
|
|
58
63
|
import "color";
|
|
59
|
-
import "scroll-into-view-if-needed";
|
|
60
64
|
import "react-dom";
|
|
61
65
|
import "html-react-parser";
|
|
62
66
|
import "next/head";
|
|
63
67
|
import "@emotion/server/create-instance";
|
|
64
68
|
import "next/document";
|
|
65
|
-
import "cookie";
|
|
66
69
|
import "cors";
|
|
70
|
+
import "path-to-regexp";
|
|
71
|
+
import "cookie";
|
|
67
72
|
import "http-proxy";
|
|
68
73
|
import "set-cookie-parser";
|
|
69
74
|
import "uuid";
|
|
70
75
|
import "corporate-ipsum";
|
|
71
|
-
import "next/link";
|
|
72
76
|
function BlockElement({
|
|
73
77
|
element,
|
|
74
78
|
attributes,
|
package/dist/index.es7.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.es7.js","sources":["../src/components/builtin/Text/components/Element/block.tsx","../src/components/builtin/Text/components/Element/inline.tsx","../src/components/builtin/Text/components/Element/element.tsx","../src/components/builtin/Text/EditableText/useSyncWithBuilder.tsx","../src/components/builtin/Text/EditableText/editable-text.tsx"],"sourcesContent":["import { cx } from '@emotion/css'\nimport { RenderElementProps } from 'slate-react'\nimport { Block, BlockType } from '../../../../../controls'\nimport { useStyle } from '../../../../../runtimes/react/use-style'\nimport { responsiveStyle } from '../../../../utils/responsive-style'\n\nexport interface InlineRenderElementProps extends RenderElementProps {\n element: Block\n}\n\nexport function BlockElement({ element, attributes, children }: InlineRenderElementProps) {\n const blockStyles = [\n useStyle({ margin: 0 }),\n useStyle(responsiveStyle([element.textAlign], ([textAlign = 'left']) => ({ textAlign }))),\n ]\n\n switch (element.type) {\n case BlockType.Paragraph:\n return (\n <p {...attributes} className={cx(...blockStyles)}>\n {children}\n </p>\n )\n case BlockType.Heading1:\n return (\n <h1 {...attributes} className={cx(...blockStyles)}>\n {children}\n </h1>\n )\n case BlockType.Heading2:\n return (\n <h2 {...attributes} className={cx(...blockStyles)}>\n {children}\n </h2>\n )\n case BlockType.Heading3:\n return (\n <h3 {...attributes} className={cx(...blockStyles)}>\n {children}\n </h3>\n )\n case BlockType.Heading4:\n return (\n <h4 {...attributes} className={cx(...blockStyles)}>\n {children}\n </h4>\n )\n case BlockType.Heading5:\n return (\n <h5 {...attributes} className={cx(...blockStyles)}>\n {children}\n </h5>\n )\n case BlockType.Heading6:\n return (\n <h6 {...attributes} className={cx(...blockStyles)}>\n {children}\n </h6>\n )\n case BlockType.BlockQuote:\n return (\n <blockquote\n {...attributes}\n className={cx(\n ...blockStyles,\n useStyle({\n padding: '0.5em 10px',\n fontSize: '1.25em',\n fontWeight: '300',\n borderLeft: '5px solid rgba(0, 0, 0, 0.1)',\n }),\n )}\n >\n {children}\n </blockquote>\n )\n case BlockType.OrderedList:\n return (\n <ol {...attributes} className={cx(...blockStyles)} style={{ listStylePosition: 'inside' }}>\n {children}\n </ol>\n )\n case BlockType.UnorderedList:\n return (\n <ul {...attributes} className={cx(...blockStyles)} style={{ listStylePosition: 'inside' }}>\n {children}\n </ul>\n )\n case BlockType.ListItem:\n return (\n <li {...attributes} className={cx(...blockStyles)}>\n {children}\n </li>\n )\n case BlockType.ListItemChild:\n return (\n <span {...attributes} className={cx(...blockStyles)}>\n {children}\n </span>\n )\n }\n}\n","import { cx } from '@emotion/css'\nimport { ComponentPropsWithoutRef } from 'react'\nimport { RenderElementProps } from 'slate-react'\nimport { Inline, InlineType } from '../../../../../controls'\nimport { useStyle } from '../../../../../runtimes/react/use-style'\nimport { Link } from '../../../../shared/Link'\n\nfunction StyledLink({ className, ...restOfProps }: ComponentPropsWithoutRef<typeof Link>) {\n return <Link {...restOfProps} className={cx(useStyle({ textDecoration: 'none' }), className)} />\n}\n\nexport interface InlineRenderElementProps extends RenderElementProps {\n element: Inline\n}\n\nexport function InlineElement({ element, attributes, children }: InlineRenderElementProps) {\n switch (element.type) {\n case InlineType.Code:\n return <code {...attributes}>{children}</code>\n case InlineType.SuperScript:\n return <sup {...attributes}>{children}</sup>\n case InlineType.SubScript:\n return <sub {...attributes}>{children}</sub>\n case InlineType.Link:\n return (\n <StyledLink {...attributes} link={element.link}>\n {children}\n </StyledLink>\n )\n }\n}\n","import { RenderElementProps } from 'slate-react'\nimport { BlockType, InlineType } from '../../../../../controls'\nimport { BlockElement } from './block'\nimport { InlineElement } from './inline'\n\nexport function Element({ element, ...props }: RenderElementProps) {\n switch (element.type) {\n case InlineType.Code:\n case InlineType.SuperScript:\n case InlineType.SubScript:\n case InlineType.Link:\n return <InlineElement element={element} {...props} />\n case BlockType.Paragraph:\n case BlockType.Heading1:\n case BlockType.Heading2:\n case BlockType.Heading3:\n case BlockType.BlockQuote:\n case BlockType.OrderedList:\n case BlockType.UnorderedList:\n case BlockType.ListItem:\n case BlockType.ListItemChild:\n return <BlockElement element={element} {...props} />\n default:\n return <span {...props.attributes}>{props.children}</span>\n }\n}\n","import { useState, useEffect, useCallback } from 'react'\nimport { Editor } from 'slate'\nimport { richTextDTOtoDAO, richTextDTOtoSelection } from '../../../../controls'\nimport { RichTextValue } from '../../../../prop-controllers'\nimport deepEqual from '../../../../utils/deepEqual'\n\nconst COMMIT_DEBOUNCE_DELAY = 500\n\n/**\n * Compare new prop value with current editor and update editor\n * if the values are not equal.\n */\nexport function useSyncWithBuilder(editor: Editor, text?: RichTextValue) {\n const [shouldCommit, setShouldCommit] = useState(true)\n\n useEffect(() => {\n if (shouldCommit && text) {\n const nextValue = richTextDTOtoDAO(text)\n const nextSelection = richTextDTOtoSelection(text)\n if (!deepEqual(editor.children, nextValue) || !deepEqual(editor.selection, nextSelection)) {\n editor.children = nextValue\n editor.selection = nextSelection\n editor.onChange()\n }\n }\n }, [editor, 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 return useCallback(() => setShouldCommit(false), [])\n}\n","import {\n forwardRef,\n KeyboardEvent,\n Ref,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useState,\n} from 'react'\n\nimport { createEditor } from 'slate'\nimport { Slate, Editable, withReact, ReactEditor } from 'slate-react'\n\nimport { ElementIDValue, RichTextValue } from '../../../../prop-controllers/descriptors'\nimport { cx } from '@emotion/css'\nimport { DescriptorsPropControllers } from '../../../../prop-controllers/instances'\nimport { Descriptors } from '../../../../runtimes/react/controls/rich-text'\nimport { getBox } from '../../../../box-model'\nimport { PropControllersHandle } from '../../../../state/modules/prop-controller-handles'\nimport { BlockType, RichTextDAO, richTextDTOtoDAO } from '../../../../controls'\nimport { Leaf } from '../components/Leaf'\nimport { Element } from '../components/Element'\nimport { useSyncWithBuilder } from './useSyncWithBuilder'\nimport isHotkey from 'is-hotkey'\nimport { useBuilderEditMode } from '../../../../runtimes/react'\nimport { BuilderEditMode } from '../../../../state/modules/builder-edit-mode'\nimport { onKeyDown, withBlock, withList, withTypography } from '../../../../slate'\nimport { pollBoxModel } from '../../../../runtimes/react/poll-box-model'\n\ntype Props = {\n id?: ElementIDValue\n text?: RichTextValue\n width?: string\n margin?: string\n}\n\nconst defaultText: RichTextDAO = [{ type: BlockType.Paragraph, children: [{ text: '' }] }]\n\nexport const EditableText = forwardRef(function EditableText(\n { id, text, width, margin }: Props,\n ref: Ref<PropControllersHandle<Descriptors>>,\n) {\n const [editor] = useState(() => withBlock(withTypography(withList(withReact(createEditor())))))\n const delaySync = useSyncWithBuilder(editor, text)\n const editMode = useBuilderEditMode()\n\n const [propControllers, setPropControllers] =\n useState<DescriptorsPropControllers<Descriptors> | null>(null)\n const controller = propControllers?.text\n\n useEffect(() => {\n if (controller == null) return\n\n const element = ReactEditor.toDOMNode(editor, editor)\n\n return pollBoxModel({\n element,\n onBoxModelChange: boxModel => controller.changeBoxModel(boxModel),\n })\n }, [editor, controller])\n\n useImperativeHandle(\n ref,\n () => ({\n getDomNode() {\n return ReactEditor.toDOMNode(editor, editor)\n },\n getBoxModel() {\n return getBox(ReactEditor.toDOMNode(editor, editor))\n },\n setPropControllers,\n }),\n [editor, setPropControllers],\n )\n\n const initialValue = useMemo(() => (text ? richTextDTOtoDAO(text) : defaultText), [text])\n\n useEffect(() => {\n controller?.setSlateEditor(editor)\n }, [controller, editor])\n\n const handleFocus = useCallback(() => {\n controller?.focus()\n }, [controller])\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent) => {\n if (isHotkey('mod+shift+z', e)) return controller?.redo()\n if (isHotkey('mod+z', e)) return controller?.undo()\n if (isHotkey('escape')(e)) return controller?.blur()\n onKeyDown(e, editor)\n },\n [controller, editor],\n )\n\n return (\n <Slate editor={editor} value={initialValue} onChange={delaySync}>\n <Editable\n id={id}\n renderLeaf={Leaf}\n renderElement={Element}\n onKeyDown={handleKeyDown}\n onFocus={handleFocus}\n className={cx(width, margin)}\n readOnly={editMode === BuilderEditMode.INTERACT}\n placeholder=\"Write some text...\"\n />\n </Slate>\n )\n})\n\nexport default EditableText\n"],"names":["element","attributes","children","blockStyles","useStyle","margin","responsiveStyle","textAlign","type","BlockType","Paragraph","cx","Heading1","Heading2","Heading3","Heading4","Heading5","Heading6","BlockQuote","padding","fontSize","fontWeight","borderLeft","OrderedList","listStylePosition","UnorderedList","ListItem","ListItemChild","className","restOfProps","textDecoration","InlineType","Code","SuperScript","SubScript","Link","link","props","COMMIT_DEBOUNCE_DELAY","editor","text","shouldCommit","setShouldCommit","useState","useEffect","nextValue","richTextDTOtoDAO","nextSelection","richTextDTOtoSelection","deepEqual","selection","onChange","timeoutId","window","setTimeout","clearTimeout","useCallback","defaultText","EditableText","forwardRef","id","width","ref","withBlock","withTypography","withList","withReact","createEditor","delaySync","useSyncWithBuilder","editMode","useBuilderEditMode","propControllers","setPropControllers","controller","ReactEditor","toDOMNode","pollBoxModel","onBoxModelChange","boxModel","changeBoxModel","useImperativeHandle","getDomNode","getBoxModel","getBox","initialValue","useMemo","setSlateEditor","handleFocus","focus","handleKeyDown","e","isHotkey","redo","undo","blur","onKeyDown","Leaf","Element","BuilderEditMode","INTERACT"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.es7.js","sources":["../src/components/builtin/Text/components/Element/block.tsx","../src/components/builtin/Text/components/Element/inline.tsx","../src/components/builtin/Text/components/Element/element.tsx","../src/components/builtin/Text/EditableText/useSyncWithBuilder.tsx","../src/components/builtin/Text/EditableText/editable-text.tsx"],"sourcesContent":["import { cx } from '@emotion/css'\nimport { RenderElementProps } from 'slate-react'\nimport { Block, BlockType } from '../../../../../controls'\nimport { useStyle } from '../../../../../runtimes/react/use-style'\nimport { responsiveStyle } from '../../../../utils/responsive-style'\n\nexport interface InlineRenderElementProps extends RenderElementProps {\n element: Block\n}\n\nexport function BlockElement({ element, attributes, children }: InlineRenderElementProps) {\n const blockStyles = [\n useStyle({ margin: 0 }),\n useStyle(responsiveStyle([element.textAlign], ([textAlign = 'left']) => ({ textAlign }))),\n ]\n\n switch (element.type) {\n case BlockType.Paragraph:\n return (\n <p {...attributes} className={cx(...blockStyles)}>\n {children}\n </p>\n )\n case BlockType.Heading1:\n return (\n <h1 {...attributes} className={cx(...blockStyles)}>\n {children}\n </h1>\n )\n case BlockType.Heading2:\n return (\n <h2 {...attributes} className={cx(...blockStyles)}>\n {children}\n </h2>\n )\n case BlockType.Heading3:\n return (\n <h3 {...attributes} className={cx(...blockStyles)}>\n {children}\n </h3>\n )\n case BlockType.Heading4:\n return (\n <h4 {...attributes} className={cx(...blockStyles)}>\n {children}\n </h4>\n )\n case BlockType.Heading5:\n return (\n <h5 {...attributes} className={cx(...blockStyles)}>\n {children}\n </h5>\n )\n case BlockType.Heading6:\n return (\n <h6 {...attributes} className={cx(...blockStyles)}>\n {children}\n </h6>\n )\n case BlockType.BlockQuote:\n return (\n <blockquote\n {...attributes}\n className={cx(\n ...blockStyles,\n useStyle({\n padding: '0.5em 10px',\n fontSize: '1.25em',\n fontWeight: '300',\n borderLeft: '5px solid rgba(0, 0, 0, 0.1)',\n }),\n )}\n >\n {children}\n </blockquote>\n )\n case BlockType.OrderedList:\n return (\n <ol {...attributes} className={cx(...blockStyles)} style={{ listStylePosition: 'inside' }}>\n {children}\n </ol>\n )\n case BlockType.UnorderedList:\n return (\n <ul {...attributes} className={cx(...blockStyles)} style={{ listStylePosition: 'inside' }}>\n {children}\n </ul>\n )\n case BlockType.ListItem:\n return (\n <li {...attributes} className={cx(...blockStyles)}>\n {children}\n </li>\n )\n case BlockType.ListItemChild:\n return (\n <span {...attributes} className={cx(...blockStyles)}>\n {children}\n </span>\n )\n }\n}\n","import { cx } from '@emotion/css'\nimport { ComponentPropsWithoutRef } from 'react'\nimport { RenderElementProps } from 'slate-react'\nimport { Inline, InlineType } from '../../../../../controls'\nimport { useStyle } from '../../../../../runtimes/react/use-style'\nimport { Link } from '../../../../shared/Link'\n\nfunction StyledLink({ className, ...restOfProps }: ComponentPropsWithoutRef<typeof Link>) {\n return <Link {...restOfProps} className={cx(useStyle({ textDecoration: 'none' }), className)} />\n}\n\nexport interface InlineRenderElementProps extends RenderElementProps {\n element: Inline\n}\n\nexport function InlineElement({ element, attributes, children }: InlineRenderElementProps) {\n switch (element.type) {\n case InlineType.Code:\n return <code {...attributes}>{children}</code>\n case InlineType.SuperScript:\n return <sup {...attributes}>{children}</sup>\n case InlineType.SubScript:\n return <sub {...attributes}>{children}</sub>\n case InlineType.Link:\n return (\n <StyledLink {...attributes} link={element.link}>\n {children}\n </StyledLink>\n )\n }\n}\n","import { RenderElementProps } from 'slate-react'\nimport { BlockType, InlineType } from '../../../../../controls'\nimport { BlockElement } from './block'\nimport { InlineElement } from './inline'\n\nexport function Element({ element, ...props }: RenderElementProps) {\n switch (element.type) {\n case InlineType.Code:\n case InlineType.SuperScript:\n case InlineType.SubScript:\n case InlineType.Link:\n return <InlineElement element={element} {...props} />\n case BlockType.Paragraph:\n case BlockType.Heading1:\n case BlockType.Heading2:\n case BlockType.Heading3:\n case BlockType.BlockQuote:\n case BlockType.OrderedList:\n case BlockType.UnorderedList:\n case BlockType.ListItem:\n case BlockType.ListItemChild:\n return <BlockElement element={element} {...props} />\n default:\n return <span {...props.attributes}>{props.children}</span>\n }\n}\n","import { useState, useEffect, useCallback } from 'react'\nimport { Editor } from 'slate'\nimport { richTextDTOtoDAO, richTextDTOtoSelection } from '../../../../controls'\nimport { RichTextValue } from '../../../../prop-controllers'\nimport deepEqual from '../../../../utils/deepEqual'\n\nconst COMMIT_DEBOUNCE_DELAY = 500\n\n/**\n * Compare new prop value with current editor and update editor\n * if the values are not equal.\n */\nexport function useSyncWithBuilder(editor: Editor, text?: RichTextValue) {\n const [shouldCommit, setShouldCommit] = useState(true)\n\n useEffect(() => {\n if (shouldCommit && text) {\n const nextValue = richTextDTOtoDAO(text)\n const nextSelection = richTextDTOtoSelection(text)\n if (!deepEqual(editor.children, nextValue) || !deepEqual(editor.selection, nextSelection)) {\n editor.children = nextValue\n editor.selection = nextSelection\n editor.onChange()\n }\n }\n }, [editor, 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 return useCallback(() => setShouldCommit(false), [])\n}\n","import {\n forwardRef,\n KeyboardEvent,\n Ref,\n useCallback,\n useEffect,\n useImperativeHandle,\n useMemo,\n useState,\n} from 'react'\n\nimport { createEditor } from 'slate'\nimport { Slate, Editable, withReact, ReactEditor } from 'slate-react'\n\nimport { ElementIDValue, RichTextValue } from '../../../../prop-controllers/descriptors'\nimport { cx } from '@emotion/css'\nimport { DescriptorsPropControllers } from '../../../../prop-controllers/instances'\nimport { Descriptors } from '../../../../runtimes/react/controls/rich-text'\nimport { getBox } from '../../../../box-model'\nimport { PropControllersHandle } from '../../../../state/modules/prop-controller-handles'\nimport { BlockType, RichTextDAO, richTextDTOtoDAO } from '../../../../controls'\nimport { Leaf } from '../components/Leaf'\nimport { Element } from '../components/Element'\nimport { useSyncWithBuilder } from './useSyncWithBuilder'\nimport isHotkey from 'is-hotkey'\nimport { useBuilderEditMode } from '../../../../runtimes/react'\nimport { BuilderEditMode } from '../../../../state/modules/builder-edit-mode'\nimport { onKeyDown, withBlock, withList, withTypography } from '../../../../slate'\nimport { pollBoxModel } from '../../../../runtimes/react/poll-box-model'\n\ntype Props = {\n id?: ElementIDValue\n text?: RichTextValue\n width?: string\n margin?: string\n}\n\nconst defaultText: RichTextDAO = [{ type: BlockType.Paragraph, children: [{ text: '' }] }]\n\nexport const EditableText = forwardRef(function EditableText(\n { id, text, width, margin }: Props,\n ref: Ref<PropControllersHandle<Descriptors>>,\n) {\n const [editor] = useState(() => withBlock(withTypography(withList(withReact(createEditor())))))\n const delaySync = useSyncWithBuilder(editor, text)\n const editMode = useBuilderEditMode()\n\n const [propControllers, setPropControllers] =\n useState<DescriptorsPropControllers<Descriptors> | null>(null)\n const controller = propControllers?.text\n\n useEffect(() => {\n if (controller == null) return\n\n const element = ReactEditor.toDOMNode(editor, editor)\n\n return pollBoxModel({\n element,\n onBoxModelChange: boxModel => controller.changeBoxModel(boxModel),\n })\n }, [editor, controller])\n\n useImperativeHandle(\n ref,\n () => ({\n getDomNode() {\n return ReactEditor.toDOMNode(editor, editor)\n },\n getBoxModel() {\n return getBox(ReactEditor.toDOMNode(editor, editor))\n },\n setPropControllers,\n }),\n [editor, setPropControllers],\n )\n\n const initialValue = useMemo(() => (text ? richTextDTOtoDAO(text) : defaultText), [text])\n\n useEffect(() => {\n controller?.setSlateEditor(editor)\n }, [controller, editor])\n\n const handleFocus = useCallback(() => {\n controller?.focus()\n }, [controller])\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent) => {\n if (isHotkey('mod+shift+z', e)) return controller?.redo()\n if (isHotkey('mod+z', e)) return controller?.undo()\n if (isHotkey('escape')(e)) return controller?.blur()\n onKeyDown(e, editor)\n },\n [controller, editor],\n )\n\n return (\n <Slate editor={editor} value={initialValue} onChange={delaySync}>\n <Editable\n id={id}\n renderLeaf={Leaf}\n renderElement={Element}\n onKeyDown={handleKeyDown}\n onFocus={handleFocus}\n className={cx(width, margin)}\n readOnly={editMode === BuilderEditMode.INTERACT}\n placeholder=\"Write some text...\"\n />\n </Slate>\n )\n})\n\nexport default EditableText\n"],"names":["element","attributes","children","blockStyles","useStyle","margin","responsiveStyle","textAlign","type","BlockType","Paragraph","cx","Heading1","Heading2","Heading3","Heading4","Heading5","Heading6","BlockQuote","padding","fontSize","fontWeight","borderLeft","OrderedList","listStylePosition","UnorderedList","ListItem","ListItemChild","className","restOfProps","textDecoration","InlineType","Code","SuperScript","SubScript","Link","link","props","COMMIT_DEBOUNCE_DELAY","editor","text","shouldCommit","setShouldCommit","useState","useEffect","nextValue","richTextDTOtoDAO","nextSelection","richTextDTOtoSelection","deepEqual","selection","onChange","timeoutId","window","setTimeout","clearTimeout","useCallback","defaultText","EditableText","forwardRef","id","width","ref","withBlock","withTypography","withList","withReact","createEditor","delaySync","useSyncWithBuilder","editMode","useBuilderEditMode","propControllers","setPropControllers","controller","ReactEditor","toDOMNode","pollBoxModel","onBoxModelChange","boxModel","changeBoxModel","useImperativeHandle","getDomNode","getBoxModel","getBox","initialValue","useMemo","setSlateEditor","handleFocus","focus","handleKeyDown","e","isHotkey","redo","undo","blur","onKeyDown","Leaf","Element","BuilderEditMode","INTERACT"],"mappings":"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"}
|
|
@@ -1,15 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var types = require("./types.cjs.js");
|
|
2
3
|
var richText = require("./rich-text.cjs.js");
|
|
3
4
|
require("slate");
|
|
4
5
|
require("slate-react");
|
|
5
|
-
|
|
6
|
-
return value != null;
|
|
7
|
-
}
|
|
6
|
+
var isNonNullable = require("./isNonNullable.cjs.js");
|
|
8
7
|
function getElementChildren(descriptor, prop) {
|
|
9
8
|
if (prop == null)
|
|
10
9
|
return [];
|
|
11
10
|
switch (descriptor.type) {
|
|
12
|
-
case
|
|
11
|
+
case types.Types.Grid:
|
|
13
12
|
return prop.elements;
|
|
14
13
|
case richText.SlotControlType:
|
|
15
14
|
return prop.elements;
|
|
@@ -27,7 +26,7 @@ function getElementId(descriptor, prop) {
|
|
|
27
26
|
if (prop == null)
|
|
28
27
|
return null;
|
|
29
28
|
switch (descriptor.type) {
|
|
30
|
-
case
|
|
29
|
+
case types.Types.ElementID:
|
|
31
30
|
return prop;
|
|
32
31
|
default:
|
|
33
32
|
return null;
|
|
@@ -75,18 +74,18 @@ function getTypographyStyleSwatchIds(style) {
|
|
|
75
74
|
return (_a = style == null ? void 0 : style.map((override) => override.value).flatMap((typographyStyle) => {
|
|
76
75
|
var _a2;
|
|
77
76
|
return (_a2 = typographyStyle.color) == null ? void 0 : _a2.swatchId;
|
|
78
|
-
}).filter(isNonNullable)) != null ? _a : [];
|
|
77
|
+
}).filter(isNonNullable.isNonNullable)) != null ? _a : [];
|
|
79
78
|
}
|
|
80
79
|
function getElementSwatchIds(descriptor, prop) {
|
|
81
80
|
var _a;
|
|
82
81
|
if (prop == null)
|
|
83
82
|
return [];
|
|
84
83
|
switch (descriptor.type) {
|
|
85
|
-
case
|
|
84
|
+
case types.Types.Backgrounds:
|
|
86
85
|
return getBackgroundsSwatchIds(prop);
|
|
87
|
-
case
|
|
86
|
+
case types.Types.Border:
|
|
88
87
|
return getBorderSwatchIds(prop);
|
|
89
|
-
case
|
|
88
|
+
case types.Types.NavigationLinks: {
|
|
90
89
|
const value = prop;
|
|
91
90
|
return (_a = value == null ? void 0 : value.flatMap((item) => {
|
|
92
91
|
var _a2, _b, _c, _d;
|
|
@@ -100,11 +99,11 @@ function getElementSwatchIds(descriptor, prop) {
|
|
|
100
99
|
}
|
|
101
100
|
})) != null ? _a : [];
|
|
102
101
|
}
|
|
103
|
-
case
|
|
102
|
+
case types.Types.ResponsiveColor:
|
|
104
103
|
return getResponsiveColorSwatchIds(prop);
|
|
105
|
-
case
|
|
104
|
+
case types.Types.Shadows:
|
|
106
105
|
return getBoxShadowsSwatchIds(prop);
|
|
107
|
-
case
|
|
106
|
+
case types.Types.RichText: {
|
|
108
107
|
let getNodeSwatchIds = function(node) {
|
|
109
108
|
var _a2, _b, _c, _d;
|
|
110
109
|
switch (node.object) {
|
|
@@ -126,7 +125,7 @@ function getElementSwatchIds(descriptor, prop) {
|
|
|
126
125
|
return [];
|
|
127
126
|
return getNodeSwatchIds(value.document);
|
|
128
127
|
}
|
|
129
|
-
case
|
|
128
|
+
case types.ColorControlType: {
|
|
130
129
|
const value = prop;
|
|
131
130
|
return (value == null ? void 0 : value.swatchId) == null ? [] : [value.swatchId];
|
|
132
131
|
}
|
|
@@ -150,17 +149,17 @@ function getFileIds(descriptor, prop) {
|
|
|
150
149
|
if (prop == null)
|
|
151
150
|
return [];
|
|
152
151
|
switch (descriptor.type) {
|
|
153
|
-
case
|
|
152
|
+
case types.Types.Backgrounds:
|
|
154
153
|
return getBackgroundsFileIds(prop);
|
|
155
|
-
case
|
|
154
|
+
case types.Types.Image: {
|
|
156
155
|
const value = prop;
|
|
157
156
|
return value == null ? [] : [value];
|
|
158
157
|
}
|
|
159
|
-
case
|
|
158
|
+
case types.Types.Images: {
|
|
160
159
|
const value = prop;
|
|
161
160
|
return (_a = value == null ? void 0 : value.flatMap((item) => item.props.file == null ? [] : [item.props.file])) != null ? _a : [];
|
|
162
161
|
}
|
|
163
|
-
case
|
|
162
|
+
case types.ImageControlType: {
|
|
164
163
|
const value = prop;
|
|
165
164
|
return value == null ? [] : [value];
|
|
166
165
|
}
|
|
@@ -172,7 +171,7 @@ function getTypographyIds(descriptor, prop) {
|
|
|
172
171
|
if (prop == null)
|
|
173
172
|
return [];
|
|
174
173
|
switch (descriptor.type) {
|
|
175
|
-
case
|
|
174
|
+
case types.Types.RichText: {
|
|
176
175
|
let getNodeTypographyIds = function(node) {
|
|
177
176
|
var _a, _b, _c, _d;
|
|
178
177
|
switch (node.object) {
|
|
@@ -202,7 +201,7 @@ function getTableIds(descriptor, prop) {
|
|
|
202
201
|
if (prop == null)
|
|
203
202
|
return [];
|
|
204
203
|
switch (descriptor.type) {
|
|
205
|
-
case
|
|
204
|
+
case types.Types.Table: {
|
|
206
205
|
const value = prop;
|
|
207
206
|
return value == null ? [] : [value];
|
|
208
207
|
}
|
|
@@ -215,7 +214,7 @@ function getPageIds(descriptor, prop) {
|
|
|
215
214
|
if (prop == null)
|
|
216
215
|
return [];
|
|
217
216
|
switch (descriptor.type) {
|
|
218
|
-
case
|
|
217
|
+
case types.Types.Link: {
|
|
219
218
|
const value = prop;
|
|
220
219
|
if (value == null)
|
|
221
220
|
return [];
|
|
@@ -226,7 +225,7 @@ function getPageIds(descriptor, prop) {
|
|
|
226
225
|
return [];
|
|
227
226
|
}
|
|
228
227
|
}
|
|
229
|
-
case
|
|
228
|
+
case types.Types.NavigationLinks: {
|
|
230
229
|
const value = prop;
|
|
231
230
|
if (value == null)
|
|
232
231
|
return [];
|
|
@@ -258,7 +257,7 @@ function getPageIds(descriptor, prop) {
|
|
|
258
257
|
}
|
|
259
258
|
})) != null ? _a : [];
|
|
260
259
|
}
|
|
261
|
-
case
|
|
260
|
+
case types.Types.RichText: {
|
|
262
261
|
let getNodePageIds = function(node) {
|
|
263
262
|
var _a2, _b;
|
|
264
263
|
switch (node.object) {
|
|
@@ -327,5 +326,4 @@ exports.getResponsiveColorSwatchIds = getResponsiveColorSwatchIds;
|
|
|
327
326
|
exports.getTableIds = getTableIds;
|
|
328
327
|
exports.getTypographyIds = getTypographyIds;
|
|
329
328
|
exports.introspection = introspection;
|
|
330
|
-
exports.isNonNullable = isNonNullable;
|
|
331
329
|
//# sourceMappingURL=introspection.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"introspection.cjs.js","sources":["../src/components/utils/isNonNullable.ts","../src/prop-controllers/introspection.ts"],"sourcesContent":["export function isNonNullable<T>(value: T): value is NonNullable<T> {\n return value != null\n}\n","import {\n BackgroundsValue,\n BorderValue,\n Descriptor,\n ElementIDValue,\n GridValue,\n ImagesValue,\n ImageValue,\n LinkValue,\n NavigationLinksValue,\n ResponsiveColorValue,\n RichTextValue,\n ShadowsValue,\n TableValue,\n Types,\n} from './descriptors'\nimport { Data, Element } from '../state/react-page'\nimport {\n ColorControlData,\n ColorControlType,\n ImageControlData,\n ImageControlType,\n InlineJSON,\n ListControlData,\n ListControlType,\n MarkJSON,\n NodeJSON,\n ShapeControlData,\n ShapeControlType,\n SlotControlData,\n SlotControlType,\n} from '../controls'\nimport { Typography } from '../api'\nimport { isNonNullable } from '../components/utils/isNonNullable'\n\nexport function getElementChildren<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): Element[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.Grid:\n return (prop as GridValue).elements\n\n case SlotControlType:\n return (prop as SlotControlData).elements\n\n case ListControlType:\n return (prop as ListControlData).flatMap(({ value }) =>\n getElementChildren(descriptor.config.type, value),\n )\n\n case ShapeControlType: {\n const shapeControlData = prop as ShapeControlData\n\n return Object.keys(shapeControlData).flatMap(key =>\n getElementChildren(descriptor.config.type[key], shapeControlData[key]),\n )\n }\n\n default:\n return []\n }\n}\n\nexport function getElementId<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string | null {\n if (prop == null) return null\n\n switch (descriptor.type) {\n case Types.ElementID:\n return prop as ElementIDValue\n\n default:\n return null\n }\n}\n\nexport function getBackgroundsSwatchIds(value: BackgroundsValue | null | undefined): string[] {\n return (\n value\n ?.flatMap(override => override.value)\n .flatMap(backgroundItem => {\n switch (backgroundItem.type) {\n case 'color':\n return backgroundItem.payload?.swatchId == null ? [] : [backgroundItem.payload.swatchId]\n\n case 'gradient':\n return backgroundItem.payload.stops.flatMap(stop =>\n stop.color == null ? [] : stop.color.swatchId,\n )\n\n default:\n return []\n }\n }) ?? []\n )\n}\n\nexport function getBorderSwatchIds(value: BorderValue | null | undefined): string[] {\n return (\n value\n ?.flatMap(override => override.value)\n .flatMap(borderValue => {\n return [\n borderValue.borderTop?.color?.swatchId,\n borderValue.borderRight?.color?.swatchId,\n borderValue.borderBottom?.color?.swatchId,\n borderValue.borderLeft?.color?.swatchId,\n ].filter((swatchId): swatchId is NonNullable<typeof swatchId> => swatchId != null)\n }) ?? []\n )\n}\n\nexport function getBoxShadowsSwatchIds(value: ShadowsValue | null | undefined): string[] {\n return (\n value\n ?.flatMap(override => override.value)\n .map(item => item.payload.color?.swatchId)\n .filter((swatchId): swatchId is NonNullable<typeof swatchId> => swatchId != null) ?? []\n )\n}\n\nexport function getResponsiveColorSwatchIds(\n value: ResponsiveColorValue | null | undefined,\n): string[] {\n return value?.map(override => override.value).map(color => color.swatchId) ?? []\n}\n\nexport function getTypographyStyleSwatchIds(\n style: Typography['style'] | null | undefined,\n): string[] {\n return (\n style\n ?.map(override => override.value)\n .flatMap(typographyStyle => typographyStyle.color?.swatchId)\n .filter(isNonNullable) ?? []\n )\n}\n\nexport function getElementSwatchIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.Backgrounds:\n return getBackgroundsSwatchIds(prop as BackgroundsValue)\n\n case Types.Border:\n return getBorderSwatchIds(prop as BorderValue)\n\n case Types.NavigationLinks: {\n const value = prop as NavigationLinksValue\n return (\n value?.flatMap(item => {\n switch (item.type) {\n case 'button':\n case 'dropdown':\n return [\n ...(item.payload.color\n ?.map(override => override.value)\n .map(color => color.swatchId) ?? []),\n ...(item.payload.textColor\n ?.map(override => override.value)\n .map(color => color.swatchId) ?? []),\n ]\n }\n }) ?? []\n )\n }\n\n case Types.ResponsiveColor:\n return getResponsiveColorSwatchIds(prop as ResponsiveColorValue)\n\n case Types.Shadows:\n return getBoxShadowsSwatchIds(prop as ShadowsValue)\n\n case Types.RichText: {\n const value = prop as RichTextValue\n\n if (value == null || value.document == null) return []\n\n return getNodeSwatchIds(value.document)\n\n function getNodeSwatchIds(node: NodeJSON): string[] {\n switch (node.object) {\n case 'document':\n case 'block':\n case 'inline':\n return node.nodes?.flatMap(getNodeSwatchIds) ?? []\n\n case 'text':\n return node.marks?.flatMap(getMarkSwatchIds) ?? []\n\n default:\n return []\n }\n }\n\n function getMarkSwatchIds(mark: MarkJSON): string[] {\n return getTypographyStyleSwatchIds(mark.data?.value?.style)\n }\n }\n\n case ColorControlType: {\n const value = prop as ColorControlData\n return value?.swatchId == null ? [] : [value.swatchId]\n }\n\n default:\n return []\n }\n}\n\nexport function getBackgroundsFileIds(value: BackgroundsValue | null | undefined): string[] {\n return (\n value\n ?.flatMap(override => override.value)\n .flatMap(backgroundItem => {\n switch (backgroundItem.type) {\n case 'image':\n return [backgroundItem.payload.imageId]\n\n default:\n return []\n }\n }) ?? []\n )\n}\n\nexport function getFileIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.Backgrounds:\n return getBackgroundsFileIds(prop as BackgroundsValue)\n\n case Types.Image: {\n const value = prop as ImageValue\n return value == null ? [] : [value]\n }\n\n case Types.Images: {\n const value = prop as ImagesValue\n return value?.flatMap(item => (item.props.file == null ? [] : [item.props.file])) ?? []\n }\n\n case ImageControlType: {\n const value = prop as ImageControlData\n return value == null ? [] : [value]\n }\n\n default:\n return []\n }\n}\n\nexport function getTypographyIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.RichText: {\n const value = prop as RichTextValue\n if (value == null || value.document == null) return []\n\n return getNodeTypographyIds(value.document)\n\n function getNodeTypographyIds(node: NodeJSON): string[] {\n switch (node.object) {\n case 'document':\n case 'block':\n case 'inline':\n return node.nodes?.flatMap(getNodeTypographyIds) ?? []\n\n case 'text':\n return node.marks?.flatMap(getMarkTypographyIds) ?? []\n\n default:\n return []\n }\n }\n\n function getMarkTypographyIds(mark: MarkJSON): string[] {\n return [mark.data?.value?.id].filter(id => id != null)\n }\n }\n\n default:\n return []\n }\n}\n\nexport function getTableIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.Table: {\n const value = prop as TableValue\n return value == null ? [] : [value]\n }\n\n default:\n return []\n }\n}\n\nexport function getPageIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.Link: {\n const value = prop as LinkValue\n if (value == null) return []\n\n switch (value.type) {\n case 'OPEN_PAGE':\n return value.payload.pageId == null ? [] : [value.payload.pageId]\n\n default:\n return []\n }\n }\n\n case Types.NavigationLinks: {\n const value = prop as NavigationLinksValue\n if (value == null) return []\n\n return (\n value?.flatMap(item => {\n switch (item.type) {\n case 'button': {\n if (item.payload.link == null) return []\n\n switch (item.payload.link.type) {\n case 'OPEN_PAGE':\n return item.payload.link.payload.pageId == null\n ? []\n : [item.payload.link.payload.pageId]\n\n default:\n return []\n }\n }\n\n case 'dropdown': {\n return (\n item.payload.links?.flatMap(link => {\n if (link.payload.link == null) return []\n\n switch (link.payload.link.type) {\n case 'OPEN_PAGE':\n return link.payload.link.payload.pageId == null\n ? []\n : [link.payload.link.payload.pageId]\n\n default:\n return []\n }\n }) ?? []\n )\n }\n }\n }) ?? []\n )\n }\n\n case Types.RichText: {\n const value = prop as RichTextValue\n if (value == null || value.document == null) return []\n\n return getNodePageIds(value.document)\n\n function getNodePageIds(node: NodeJSON): string[] {\n switch (node.object) {\n case 'document':\n case 'block':\n return node.nodes?.flatMap(getNodePageIds) ?? []\n\n case 'inline':\n return getInlinePageIds(node)\n\n default:\n return []\n }\n }\n\n function getInlinePageIds(inline: InlineJSON): string[] {\n switch (inline.type) {\n case 'link': {\n const nodePageIds = inline.nodes?.flatMap(getNodePageIds) ?? []\n const dataPageIds = inline.data ? getLinkDataPageIds(inline.data as LinkValue) : []\n\n return [...nodePageIds, ...dataPageIds]\n }\n\n default:\n return inline.nodes?.flatMap(getNodePageIds) ?? []\n }\n }\n\n function getLinkDataPageIds(link: LinkValue): string[] {\n switch (link.type) {\n case 'OPEN_PAGE':\n return link.payload.pageId == null ? [] : [link.payload.pageId]\n\n default:\n return []\n }\n }\n }\n\n default:\n return []\n }\n}\n"],"names":["Types","SlotControlType","ListControlType","ShapeControlType","ColorControlType","ImageControlType"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"introspection.cjs.js","sources":["../src/prop-controllers/introspection.ts"],"sourcesContent":["import {\n BackgroundsValue,\n BorderValue,\n Descriptor,\n ElementIDValue,\n GridValue,\n ImagesValue,\n ImageValue,\n LinkValue,\n NavigationLinksValue,\n ResponsiveColorValue,\n RichTextValue,\n ShadowsValue,\n TableValue,\n Types,\n} from './descriptors'\nimport { Data, Element } from '../state/react-page'\nimport {\n ColorControlData,\n ColorControlType,\n ImageControlData,\n ImageControlType,\n InlineJSON,\n ListControlData,\n ListControlType,\n MarkJSON,\n NodeJSON,\n ShapeControlData,\n ShapeControlType,\n SlotControlData,\n SlotControlType,\n} from '../controls'\nimport { Typography } from '../api'\nimport { isNonNullable } from '../components/utils/isNonNullable'\n\nexport function getElementChildren<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): Element[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.Grid:\n return (prop as GridValue).elements\n\n case SlotControlType:\n return (prop as SlotControlData).elements\n\n case ListControlType:\n return (prop as ListControlData).flatMap(({ value }) =>\n getElementChildren(descriptor.config.type, value),\n )\n\n case ShapeControlType: {\n const shapeControlData = prop as ShapeControlData\n\n return Object.keys(shapeControlData).flatMap(key =>\n getElementChildren(descriptor.config.type[key], shapeControlData[key]),\n )\n }\n\n default:\n return []\n }\n}\n\nexport function getElementId<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string | null {\n if (prop == null) return null\n\n switch (descriptor.type) {\n case Types.ElementID:\n return prop as ElementIDValue\n\n default:\n return null\n }\n}\n\nexport function getBackgroundsSwatchIds(value: BackgroundsValue | null | undefined): string[] {\n return (\n value\n ?.flatMap(override => override.value)\n .flatMap(backgroundItem => {\n switch (backgroundItem.type) {\n case 'color':\n return backgroundItem.payload?.swatchId == null ? [] : [backgroundItem.payload.swatchId]\n\n case 'gradient':\n return backgroundItem.payload.stops.flatMap(stop =>\n stop.color == null ? [] : stop.color.swatchId,\n )\n\n default:\n return []\n }\n }) ?? []\n )\n}\n\nexport function getBorderSwatchIds(value: BorderValue | null | undefined): string[] {\n return (\n value\n ?.flatMap(override => override.value)\n .flatMap(borderValue => {\n return [\n borderValue.borderTop?.color?.swatchId,\n borderValue.borderRight?.color?.swatchId,\n borderValue.borderBottom?.color?.swatchId,\n borderValue.borderLeft?.color?.swatchId,\n ].filter((swatchId): swatchId is NonNullable<typeof swatchId> => swatchId != null)\n }) ?? []\n )\n}\n\nexport function getBoxShadowsSwatchIds(value: ShadowsValue | null | undefined): string[] {\n return (\n value\n ?.flatMap(override => override.value)\n .map(item => item.payload.color?.swatchId)\n .filter((swatchId): swatchId is NonNullable<typeof swatchId> => swatchId != null) ?? []\n )\n}\n\nexport function getResponsiveColorSwatchIds(\n value: ResponsiveColorValue | null | undefined,\n): string[] {\n return value?.map(override => override.value).map(color => color.swatchId) ?? []\n}\n\nexport function getTypographyStyleSwatchIds(\n style: Typography['style'] | null | undefined,\n): string[] {\n return (\n style\n ?.map(override => override.value)\n .flatMap(typographyStyle => typographyStyle.color?.swatchId)\n .filter(isNonNullable) ?? []\n )\n}\n\nexport function getElementSwatchIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.Backgrounds:\n return getBackgroundsSwatchIds(prop as BackgroundsValue)\n\n case Types.Border:\n return getBorderSwatchIds(prop as BorderValue)\n\n case Types.NavigationLinks: {\n const value = prop as NavigationLinksValue\n return (\n value?.flatMap(item => {\n switch (item.type) {\n case 'button':\n case 'dropdown':\n return [\n ...(item.payload.color\n ?.map(override => override.value)\n .map(color => color.swatchId) ?? []),\n ...(item.payload.textColor\n ?.map(override => override.value)\n .map(color => color.swatchId) ?? []),\n ]\n }\n }) ?? []\n )\n }\n\n case Types.ResponsiveColor:\n return getResponsiveColorSwatchIds(prop as ResponsiveColorValue)\n\n case Types.Shadows:\n return getBoxShadowsSwatchIds(prop as ShadowsValue)\n\n case Types.RichText: {\n const value = prop as RichTextValue\n\n if (value == null || value.document == null) return []\n\n return getNodeSwatchIds(value.document)\n\n function getNodeSwatchIds(node: NodeJSON): string[] {\n switch (node.object) {\n case 'document':\n case 'block':\n case 'inline':\n return node.nodes?.flatMap(getNodeSwatchIds) ?? []\n\n case 'text':\n return node.marks?.flatMap(getMarkSwatchIds) ?? []\n\n default:\n return []\n }\n }\n\n function getMarkSwatchIds(mark: MarkJSON): string[] {\n return getTypographyStyleSwatchIds(mark.data?.value?.style)\n }\n }\n\n case ColorControlType: {\n const value = prop as ColorControlData\n return value?.swatchId == null ? [] : [value.swatchId]\n }\n\n default:\n return []\n }\n}\n\nexport function getBackgroundsFileIds(value: BackgroundsValue | null | undefined): string[] {\n return (\n value\n ?.flatMap(override => override.value)\n .flatMap(backgroundItem => {\n switch (backgroundItem.type) {\n case 'image':\n return [backgroundItem.payload.imageId]\n\n default:\n return []\n }\n }) ?? []\n )\n}\n\nexport function getFileIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.Backgrounds:\n return getBackgroundsFileIds(prop as BackgroundsValue)\n\n case Types.Image: {\n const value = prop as ImageValue\n return value == null ? [] : [value]\n }\n\n case Types.Images: {\n const value = prop as ImagesValue\n return value?.flatMap(item => (item.props.file == null ? [] : [item.props.file])) ?? []\n }\n\n case ImageControlType: {\n const value = prop as ImageControlData\n return value == null ? [] : [value]\n }\n\n default:\n return []\n }\n}\n\nexport function getTypographyIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.RichText: {\n const value = prop as RichTextValue\n if (value == null || value.document == null) return []\n\n return getNodeTypographyIds(value.document)\n\n function getNodeTypographyIds(node: NodeJSON): string[] {\n switch (node.object) {\n case 'document':\n case 'block':\n case 'inline':\n return node.nodes?.flatMap(getNodeTypographyIds) ?? []\n\n case 'text':\n return node.marks?.flatMap(getMarkTypographyIds) ?? []\n\n default:\n return []\n }\n }\n\n function getMarkTypographyIds(mark: MarkJSON): string[] {\n return [mark.data?.value?.id].filter(id => id != null)\n }\n }\n\n default:\n return []\n }\n}\n\nexport function getTableIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.Table: {\n const value = prop as TableValue\n return value == null ? [] : [value]\n }\n\n default:\n return []\n }\n}\n\nexport function getPageIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.Link: {\n const value = prop as LinkValue\n if (value == null) return []\n\n switch (value.type) {\n case 'OPEN_PAGE':\n return value.payload.pageId == null ? [] : [value.payload.pageId]\n\n default:\n return []\n }\n }\n\n case Types.NavigationLinks: {\n const value = prop as NavigationLinksValue\n if (value == null) return []\n\n return (\n value?.flatMap(item => {\n switch (item.type) {\n case 'button': {\n if (item.payload.link == null) return []\n\n switch (item.payload.link.type) {\n case 'OPEN_PAGE':\n return item.payload.link.payload.pageId == null\n ? []\n : [item.payload.link.payload.pageId]\n\n default:\n return []\n }\n }\n\n case 'dropdown': {\n return (\n item.payload.links?.flatMap(link => {\n if (link.payload.link == null) return []\n\n switch (link.payload.link.type) {\n case 'OPEN_PAGE':\n return link.payload.link.payload.pageId == null\n ? []\n : [link.payload.link.payload.pageId]\n\n default:\n return []\n }\n }) ?? []\n )\n }\n }\n }) ?? []\n )\n }\n\n case Types.RichText: {\n const value = prop as RichTextValue\n if (value == null || value.document == null) return []\n\n return getNodePageIds(value.document)\n\n function getNodePageIds(node: NodeJSON): string[] {\n switch (node.object) {\n case 'document':\n case 'block':\n return node.nodes?.flatMap(getNodePageIds) ?? []\n\n case 'inline':\n return getInlinePageIds(node)\n\n default:\n return []\n }\n }\n\n function getInlinePageIds(inline: InlineJSON): string[] {\n switch (inline.type) {\n case 'link': {\n const nodePageIds = inline.nodes?.flatMap(getNodePageIds) ?? []\n const dataPageIds = inline.data ? getLinkDataPageIds(inline.data as LinkValue) : []\n\n return [...nodePageIds, ...dataPageIds]\n }\n\n default:\n return inline.nodes?.flatMap(getNodePageIds) ?? []\n }\n }\n\n function getLinkDataPageIds(link: LinkValue): string[] {\n switch (link.type) {\n case 'OPEN_PAGE':\n return link.payload.pageId == null ? [] : [link.payload.pageId]\n\n default:\n return []\n }\n }\n }\n\n default:\n return []\n }\n}\n"],"names":["Types","SlotControlType","ListControlType","ShapeControlType","isNonNullable","ColorControlType","ImageControlType"],"mappings":"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"}
|
package/dist/introspection.es.js
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { T as Types, C as ColorControlType, I as ImageControlType } from "./types.es.js";
|
|
2
|
+
import { S as ShapeControlType, L as ListControlType, b as SlotControlType } from "./rich-text.es.js";
|
|
2
3
|
import "slate";
|
|
3
4
|
import "slate-react";
|
|
4
|
-
|
|
5
|
-
return value != null;
|
|
6
|
-
}
|
|
5
|
+
import { i as isNonNullable } from "./isNonNullable.es.js";
|
|
7
6
|
function getElementChildren(descriptor, prop) {
|
|
8
7
|
if (prop == null)
|
|
9
8
|
return [];
|
|
@@ -313,5 +312,5 @@ var introspection = /* @__PURE__ */ Object.freeze(/* @__PURE__ */ Object.defineP
|
|
|
313
312
|
getTableIds,
|
|
314
313
|
getPageIds
|
|
315
314
|
}, Symbol.toStringTag, { value: "Module" }));
|
|
316
|
-
export { getElementChildren as a, getElementSwatchIds as b, getFileIds as c, getTypographyIds as d, getTableIds as e, getPageIds as f, getElementId as g, getBorderSwatchIds as h, introspection as i,
|
|
315
|
+
export { getElementChildren as a, getElementSwatchIds as b, getFileIds as c, getTypographyIds as d, getTableIds as e, getPageIds as f, getElementId as g, getBorderSwatchIds as h, introspection as i, getBoxShadowsSwatchIds as j, getResponsiveColorSwatchIds as k, getBackgroundsFileIds as l, getBackgroundsSwatchIds as m };
|
|
317
316
|
//# sourceMappingURL=introspection.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"introspection.es.js","sources":["../src/components/utils/isNonNullable.ts","../src/prop-controllers/introspection.ts"],"sourcesContent":["export function isNonNullable<T>(value: T): value is NonNullable<T> {\n return value != null\n}\n","import {\n BackgroundsValue,\n BorderValue,\n Descriptor,\n ElementIDValue,\n GridValue,\n ImagesValue,\n ImageValue,\n LinkValue,\n NavigationLinksValue,\n ResponsiveColorValue,\n RichTextValue,\n ShadowsValue,\n TableValue,\n Types,\n} from './descriptors'\nimport { Data, Element } from '../state/react-page'\nimport {\n ColorControlData,\n ColorControlType,\n ImageControlData,\n ImageControlType,\n InlineJSON,\n ListControlData,\n ListControlType,\n MarkJSON,\n NodeJSON,\n ShapeControlData,\n ShapeControlType,\n SlotControlData,\n SlotControlType,\n} from '../controls'\nimport { Typography } from '../api'\nimport { isNonNullable } from '../components/utils/isNonNullable'\n\nexport function getElementChildren<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): Element[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.Grid:\n return (prop as GridValue).elements\n\n case SlotControlType:\n return (prop as SlotControlData).elements\n\n case ListControlType:\n return (prop as ListControlData).flatMap(({ value }) =>\n getElementChildren(descriptor.config.type, value),\n )\n\n case ShapeControlType: {\n const shapeControlData = prop as ShapeControlData\n\n return Object.keys(shapeControlData).flatMap(key =>\n getElementChildren(descriptor.config.type[key], shapeControlData[key]),\n )\n }\n\n default:\n return []\n }\n}\n\nexport function getElementId<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string | null {\n if (prop == null) return null\n\n switch (descriptor.type) {\n case Types.ElementID:\n return prop as ElementIDValue\n\n default:\n return null\n }\n}\n\nexport function getBackgroundsSwatchIds(value: BackgroundsValue | null | undefined): string[] {\n return (\n value\n ?.flatMap(override => override.value)\n .flatMap(backgroundItem => {\n switch (backgroundItem.type) {\n case 'color':\n return backgroundItem.payload?.swatchId == null ? [] : [backgroundItem.payload.swatchId]\n\n case 'gradient':\n return backgroundItem.payload.stops.flatMap(stop =>\n stop.color == null ? [] : stop.color.swatchId,\n )\n\n default:\n return []\n }\n }) ?? []\n )\n}\n\nexport function getBorderSwatchIds(value: BorderValue | null | undefined): string[] {\n return (\n value\n ?.flatMap(override => override.value)\n .flatMap(borderValue => {\n return [\n borderValue.borderTop?.color?.swatchId,\n borderValue.borderRight?.color?.swatchId,\n borderValue.borderBottom?.color?.swatchId,\n borderValue.borderLeft?.color?.swatchId,\n ].filter((swatchId): swatchId is NonNullable<typeof swatchId> => swatchId != null)\n }) ?? []\n )\n}\n\nexport function getBoxShadowsSwatchIds(value: ShadowsValue | null | undefined): string[] {\n return (\n value\n ?.flatMap(override => override.value)\n .map(item => item.payload.color?.swatchId)\n .filter((swatchId): swatchId is NonNullable<typeof swatchId> => swatchId != null) ?? []\n )\n}\n\nexport function getResponsiveColorSwatchIds(\n value: ResponsiveColorValue | null | undefined,\n): string[] {\n return value?.map(override => override.value).map(color => color.swatchId) ?? []\n}\n\nexport function getTypographyStyleSwatchIds(\n style: Typography['style'] | null | undefined,\n): string[] {\n return (\n style\n ?.map(override => override.value)\n .flatMap(typographyStyle => typographyStyle.color?.swatchId)\n .filter(isNonNullable) ?? []\n )\n}\n\nexport function getElementSwatchIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.Backgrounds:\n return getBackgroundsSwatchIds(prop as BackgroundsValue)\n\n case Types.Border:\n return getBorderSwatchIds(prop as BorderValue)\n\n case Types.NavigationLinks: {\n const value = prop as NavigationLinksValue\n return (\n value?.flatMap(item => {\n switch (item.type) {\n case 'button':\n case 'dropdown':\n return [\n ...(item.payload.color\n ?.map(override => override.value)\n .map(color => color.swatchId) ?? []),\n ...(item.payload.textColor\n ?.map(override => override.value)\n .map(color => color.swatchId) ?? []),\n ]\n }\n }) ?? []\n )\n }\n\n case Types.ResponsiveColor:\n return getResponsiveColorSwatchIds(prop as ResponsiveColorValue)\n\n case Types.Shadows:\n return getBoxShadowsSwatchIds(prop as ShadowsValue)\n\n case Types.RichText: {\n const value = prop as RichTextValue\n\n if (value == null || value.document == null) return []\n\n return getNodeSwatchIds(value.document)\n\n function getNodeSwatchIds(node: NodeJSON): string[] {\n switch (node.object) {\n case 'document':\n case 'block':\n case 'inline':\n return node.nodes?.flatMap(getNodeSwatchIds) ?? []\n\n case 'text':\n return node.marks?.flatMap(getMarkSwatchIds) ?? []\n\n default:\n return []\n }\n }\n\n function getMarkSwatchIds(mark: MarkJSON): string[] {\n return getTypographyStyleSwatchIds(mark.data?.value?.style)\n }\n }\n\n case ColorControlType: {\n const value = prop as ColorControlData\n return value?.swatchId == null ? [] : [value.swatchId]\n }\n\n default:\n return []\n }\n}\n\nexport function getBackgroundsFileIds(value: BackgroundsValue | null | undefined): string[] {\n return (\n value\n ?.flatMap(override => override.value)\n .flatMap(backgroundItem => {\n switch (backgroundItem.type) {\n case 'image':\n return [backgroundItem.payload.imageId]\n\n default:\n return []\n }\n }) ?? []\n )\n}\n\nexport function getFileIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.Backgrounds:\n return getBackgroundsFileIds(prop as BackgroundsValue)\n\n case Types.Image: {\n const value = prop as ImageValue\n return value == null ? [] : [value]\n }\n\n case Types.Images: {\n const value = prop as ImagesValue\n return value?.flatMap(item => (item.props.file == null ? [] : [item.props.file])) ?? []\n }\n\n case ImageControlType: {\n const value = prop as ImageControlData\n return value == null ? [] : [value]\n }\n\n default:\n return []\n }\n}\n\nexport function getTypographyIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.RichText: {\n const value = prop as RichTextValue\n if (value == null || value.document == null) return []\n\n return getNodeTypographyIds(value.document)\n\n function getNodeTypographyIds(node: NodeJSON): string[] {\n switch (node.object) {\n case 'document':\n case 'block':\n case 'inline':\n return node.nodes?.flatMap(getNodeTypographyIds) ?? []\n\n case 'text':\n return node.marks?.flatMap(getMarkTypographyIds) ?? []\n\n default:\n return []\n }\n }\n\n function getMarkTypographyIds(mark: MarkJSON): string[] {\n return [mark.data?.value?.id].filter(id => id != null)\n }\n }\n\n default:\n return []\n }\n}\n\nexport function getTableIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.Table: {\n const value = prop as TableValue\n return value == null ? [] : [value]\n }\n\n default:\n return []\n }\n}\n\nexport function getPageIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.Link: {\n const value = prop as LinkValue\n if (value == null) return []\n\n switch (value.type) {\n case 'OPEN_PAGE':\n return value.payload.pageId == null ? [] : [value.payload.pageId]\n\n default:\n return []\n }\n }\n\n case Types.NavigationLinks: {\n const value = prop as NavigationLinksValue\n if (value == null) return []\n\n return (\n value?.flatMap(item => {\n switch (item.type) {\n case 'button': {\n if (item.payload.link == null) return []\n\n switch (item.payload.link.type) {\n case 'OPEN_PAGE':\n return item.payload.link.payload.pageId == null\n ? []\n : [item.payload.link.payload.pageId]\n\n default:\n return []\n }\n }\n\n case 'dropdown': {\n return (\n item.payload.links?.flatMap(link => {\n if (link.payload.link == null) return []\n\n switch (link.payload.link.type) {\n case 'OPEN_PAGE':\n return link.payload.link.payload.pageId == null\n ? []\n : [link.payload.link.payload.pageId]\n\n default:\n return []\n }\n }) ?? []\n )\n }\n }\n }) ?? []\n )\n }\n\n case Types.RichText: {\n const value = prop as RichTextValue\n if (value == null || value.document == null) return []\n\n return getNodePageIds(value.document)\n\n function getNodePageIds(node: NodeJSON): string[] {\n switch (node.object) {\n case 'document':\n case 'block':\n return node.nodes?.flatMap(getNodePageIds) ?? []\n\n case 'inline':\n return getInlinePageIds(node)\n\n default:\n return []\n }\n }\n\n function getInlinePageIds(inline: InlineJSON): string[] {\n switch (inline.type) {\n case 'link': {\n const nodePageIds = inline.nodes?.flatMap(getNodePageIds) ?? []\n const dataPageIds = inline.data ? getLinkDataPageIds(inline.data as LinkValue) : []\n\n return [...nodePageIds, ...dataPageIds]\n }\n\n default:\n return inline.nodes?.flatMap(getNodePageIds) ?? []\n }\n }\n\n function getLinkDataPageIds(link: LinkValue): string[] {\n switch (link.type) {\n case 'OPEN_PAGE':\n return link.payload.pageId == null ? [] : [link.payload.pageId]\n\n default:\n return []\n }\n }\n }\n\n default:\n return []\n }\n}\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"introspection.es.js","sources":["../src/prop-controllers/introspection.ts"],"sourcesContent":["import {\n BackgroundsValue,\n BorderValue,\n Descriptor,\n ElementIDValue,\n GridValue,\n ImagesValue,\n ImageValue,\n LinkValue,\n NavigationLinksValue,\n ResponsiveColorValue,\n RichTextValue,\n ShadowsValue,\n TableValue,\n Types,\n} from './descriptors'\nimport { Data, Element } from '../state/react-page'\nimport {\n ColorControlData,\n ColorControlType,\n ImageControlData,\n ImageControlType,\n InlineJSON,\n ListControlData,\n ListControlType,\n MarkJSON,\n NodeJSON,\n ShapeControlData,\n ShapeControlType,\n SlotControlData,\n SlotControlType,\n} from '../controls'\nimport { Typography } from '../api'\nimport { isNonNullable } from '../components/utils/isNonNullable'\n\nexport function getElementChildren<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): Element[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.Grid:\n return (prop as GridValue).elements\n\n case SlotControlType:\n return (prop as SlotControlData).elements\n\n case ListControlType:\n return (prop as ListControlData).flatMap(({ value }) =>\n getElementChildren(descriptor.config.type, value),\n )\n\n case ShapeControlType: {\n const shapeControlData = prop as ShapeControlData\n\n return Object.keys(shapeControlData).flatMap(key =>\n getElementChildren(descriptor.config.type[key], shapeControlData[key]),\n )\n }\n\n default:\n return []\n }\n}\n\nexport function getElementId<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string | null {\n if (prop == null) return null\n\n switch (descriptor.type) {\n case Types.ElementID:\n return prop as ElementIDValue\n\n default:\n return null\n }\n}\n\nexport function getBackgroundsSwatchIds(value: BackgroundsValue | null | undefined): string[] {\n return (\n value\n ?.flatMap(override => override.value)\n .flatMap(backgroundItem => {\n switch (backgroundItem.type) {\n case 'color':\n return backgroundItem.payload?.swatchId == null ? [] : [backgroundItem.payload.swatchId]\n\n case 'gradient':\n return backgroundItem.payload.stops.flatMap(stop =>\n stop.color == null ? [] : stop.color.swatchId,\n )\n\n default:\n return []\n }\n }) ?? []\n )\n}\n\nexport function getBorderSwatchIds(value: BorderValue | null | undefined): string[] {\n return (\n value\n ?.flatMap(override => override.value)\n .flatMap(borderValue => {\n return [\n borderValue.borderTop?.color?.swatchId,\n borderValue.borderRight?.color?.swatchId,\n borderValue.borderBottom?.color?.swatchId,\n borderValue.borderLeft?.color?.swatchId,\n ].filter((swatchId): swatchId is NonNullable<typeof swatchId> => swatchId != null)\n }) ?? []\n )\n}\n\nexport function getBoxShadowsSwatchIds(value: ShadowsValue | null | undefined): string[] {\n return (\n value\n ?.flatMap(override => override.value)\n .map(item => item.payload.color?.swatchId)\n .filter((swatchId): swatchId is NonNullable<typeof swatchId> => swatchId != null) ?? []\n )\n}\n\nexport function getResponsiveColorSwatchIds(\n value: ResponsiveColorValue | null | undefined,\n): string[] {\n return value?.map(override => override.value).map(color => color.swatchId) ?? []\n}\n\nexport function getTypographyStyleSwatchIds(\n style: Typography['style'] | null | undefined,\n): string[] {\n return (\n style\n ?.map(override => override.value)\n .flatMap(typographyStyle => typographyStyle.color?.swatchId)\n .filter(isNonNullable) ?? []\n )\n}\n\nexport function getElementSwatchIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.Backgrounds:\n return getBackgroundsSwatchIds(prop as BackgroundsValue)\n\n case Types.Border:\n return getBorderSwatchIds(prop as BorderValue)\n\n case Types.NavigationLinks: {\n const value = prop as NavigationLinksValue\n return (\n value?.flatMap(item => {\n switch (item.type) {\n case 'button':\n case 'dropdown':\n return [\n ...(item.payload.color\n ?.map(override => override.value)\n .map(color => color.swatchId) ?? []),\n ...(item.payload.textColor\n ?.map(override => override.value)\n .map(color => color.swatchId) ?? []),\n ]\n }\n }) ?? []\n )\n }\n\n case Types.ResponsiveColor:\n return getResponsiveColorSwatchIds(prop as ResponsiveColorValue)\n\n case Types.Shadows:\n return getBoxShadowsSwatchIds(prop as ShadowsValue)\n\n case Types.RichText: {\n const value = prop as RichTextValue\n\n if (value == null || value.document == null) return []\n\n return getNodeSwatchIds(value.document)\n\n function getNodeSwatchIds(node: NodeJSON): string[] {\n switch (node.object) {\n case 'document':\n case 'block':\n case 'inline':\n return node.nodes?.flatMap(getNodeSwatchIds) ?? []\n\n case 'text':\n return node.marks?.flatMap(getMarkSwatchIds) ?? []\n\n default:\n return []\n }\n }\n\n function getMarkSwatchIds(mark: MarkJSON): string[] {\n return getTypographyStyleSwatchIds(mark.data?.value?.style)\n }\n }\n\n case ColorControlType: {\n const value = prop as ColorControlData\n return value?.swatchId == null ? [] : [value.swatchId]\n }\n\n default:\n return []\n }\n}\n\nexport function getBackgroundsFileIds(value: BackgroundsValue | null | undefined): string[] {\n return (\n value\n ?.flatMap(override => override.value)\n .flatMap(backgroundItem => {\n switch (backgroundItem.type) {\n case 'image':\n return [backgroundItem.payload.imageId]\n\n default:\n return []\n }\n }) ?? []\n )\n}\n\nexport function getFileIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.Backgrounds:\n return getBackgroundsFileIds(prop as BackgroundsValue)\n\n case Types.Image: {\n const value = prop as ImageValue\n return value == null ? [] : [value]\n }\n\n case Types.Images: {\n const value = prop as ImagesValue\n return value?.flatMap(item => (item.props.file == null ? [] : [item.props.file])) ?? []\n }\n\n case ImageControlType: {\n const value = prop as ImageControlData\n return value == null ? [] : [value]\n }\n\n default:\n return []\n }\n}\n\nexport function getTypographyIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.RichText: {\n const value = prop as RichTextValue\n if (value == null || value.document == null) return []\n\n return getNodeTypographyIds(value.document)\n\n function getNodeTypographyIds(node: NodeJSON): string[] {\n switch (node.object) {\n case 'document':\n case 'block':\n case 'inline':\n return node.nodes?.flatMap(getNodeTypographyIds) ?? []\n\n case 'text':\n return node.marks?.flatMap(getMarkTypographyIds) ?? []\n\n default:\n return []\n }\n }\n\n function getMarkTypographyIds(mark: MarkJSON): string[] {\n return [mark.data?.value?.id].filter(id => id != null)\n }\n }\n\n default:\n return []\n }\n}\n\nexport function getTableIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.Table: {\n const value = prop as TableValue\n return value == null ? [] : [value]\n }\n\n default:\n return []\n }\n}\n\nexport function getPageIds<T extends Data>(\n descriptor: Descriptor<T>,\n prop: T | undefined,\n): string[] {\n if (prop == null) return []\n\n switch (descriptor.type) {\n case Types.Link: {\n const value = prop as LinkValue\n if (value == null) return []\n\n switch (value.type) {\n case 'OPEN_PAGE':\n return value.payload.pageId == null ? [] : [value.payload.pageId]\n\n default:\n return []\n }\n }\n\n case Types.NavigationLinks: {\n const value = prop as NavigationLinksValue\n if (value == null) return []\n\n return (\n value?.flatMap(item => {\n switch (item.type) {\n case 'button': {\n if (item.payload.link == null) return []\n\n switch (item.payload.link.type) {\n case 'OPEN_PAGE':\n return item.payload.link.payload.pageId == null\n ? []\n : [item.payload.link.payload.pageId]\n\n default:\n return []\n }\n }\n\n case 'dropdown': {\n return (\n item.payload.links?.flatMap(link => {\n if (link.payload.link == null) return []\n\n switch (link.payload.link.type) {\n case 'OPEN_PAGE':\n return link.payload.link.payload.pageId == null\n ? []\n : [link.payload.link.payload.pageId]\n\n default:\n return []\n }\n }) ?? []\n )\n }\n }\n }) ?? []\n )\n }\n\n case Types.RichText: {\n const value = prop as RichTextValue\n if (value == null || value.document == null) return []\n\n return getNodePageIds(value.document)\n\n function getNodePageIds(node: NodeJSON): string[] {\n switch (node.object) {\n case 'document':\n case 'block':\n return node.nodes?.flatMap(getNodePageIds) ?? []\n\n case 'inline':\n return getInlinePageIds(node)\n\n default:\n return []\n }\n }\n\n function getInlinePageIds(inline: InlineJSON): string[] {\n switch (inline.type) {\n case 'link': {\n const nodePageIds = inline.nodes?.flatMap(getNodePageIds) ?? []\n const dataPageIds = inline.data ? getLinkDataPageIds(inline.data as LinkValue) : []\n\n return [...nodePageIds, ...dataPageIds]\n }\n\n default:\n return inline.nodes?.flatMap(getNodePageIds) ?? []\n }\n }\n\n function getLinkDataPageIds(link: LinkValue): string[] {\n switch (link.type) {\n case 'OPEN_PAGE':\n return link.payload.pageId == null ? [] : [link.payload.pageId]\n\n default:\n return []\n }\n }\n }\n\n default:\n return []\n }\n}\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isNonNullable.cjs.js","sources":["../src/components/utils/isNonNullable.ts"],"sourcesContent":["export function isNonNullable<T>(value: T): value is NonNullable<T> {\n return value != null\n}\n"],"names":[],"mappings":";AAAO,uBAA0B,OAAmC;AAClE,SAAO,SAAS;AAClB;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"isNonNullable.es.js","sources":["../src/components/utils/isNonNullable.ts"],"sourcesContent":["export function isNonNullable<T>(value: T): value is NonNullable<T> {\n return value != null\n}\n"],"names":[],"mappings":"AAAO,uBAA0B,OAAmC;AAClE,SAAO,SAAS;AAClB;;"}
|
package/dist/leaf.cjs.js
CHANGED
|
@@ -30,8 +30,8 @@ var __objRest = (source, exclude) => {
|
|
|
30
30
|
}
|
|
31
31
|
return target;
|
|
32
32
|
};
|
|
33
|
-
var
|
|
34
|
-
var
|
|
33
|
+
var responsiveStyle = require("./responsive-style.cjs.js");
|
|
34
|
+
var isNonNullable = require("./isNonNullable.cjs.js");
|
|
35
35
|
var jsxRuntime = require("react/jsx-runtime");
|
|
36
36
|
function typographyFragementToRichTextTypography(typography) {
|
|
37
37
|
if (typography == null)
|
|
@@ -70,7 +70,7 @@ function getTypographyStyleSwatchIds(style) {
|
|
|
70
70
|
return (_a = style == null ? void 0 : style.map((override) => override.value).flatMap((typographyStyle) => {
|
|
71
71
|
var _a2;
|
|
72
72
|
return (_a2 = typographyStyle.color) == null ? void 0 : _a2.swatchId;
|
|
73
|
-
}).filter(
|
|
73
|
+
}).filter(isNonNullable.isNonNullable)) != null ? _a : [];
|
|
74
74
|
}
|
|
75
75
|
const withColor = (swatches) => (deviceRawTypographyValue) => {
|
|
76
76
|
var _b, _c;
|
|
@@ -107,18 +107,18 @@ const getDeviceId = ({
|
|
|
107
107
|
}) => deviceId;
|
|
108
108
|
function useEnhancedTypography(value) {
|
|
109
109
|
var _a, _b, _c;
|
|
110
|
-
const typography = typographyFragementToRichTextTypography(
|
|
110
|
+
const typography = typographyFragementToRichTextTypography(responsiveStyle.useTypography((_a = value == null ? void 0 : value.id) != null ? _a : null));
|
|
111
111
|
const source = (_b = typography == null ? void 0 : typography.style.filter(isDeviceOverride)) != null ? _b : [];
|
|
112
112
|
const override = (_c = value == null ? void 0 : value.style.filter(isDeviceOverride)) != null ? _c : [];
|
|
113
113
|
const swatchIds = [...getTypographyStyleSwatchIds(value == null ? void 0 : value.style), ...getTypographyStyleSwatchIds(typography == null ? void 0 : typography.style)];
|
|
114
|
-
const swatches =
|
|
114
|
+
const swatches = responsiveStyle.useSwatches(swatchIds).filter(isNonNullable.isNonNullable);
|
|
115
115
|
const enhancedSource = source.map(withColor(swatches));
|
|
116
116
|
const enhancedOverride = override.map(withColor(swatches));
|
|
117
117
|
const devices = [...new Set(enhancedSource.map(getDeviceId).concat(enhancedOverride.map(getDeviceId)))];
|
|
118
118
|
return devices.map((deviceId) => {
|
|
119
119
|
var _a2, _b2;
|
|
120
|
-
const deviceSource = (_a2 =
|
|
121
|
-
const deviceOverride = (_b2 =
|
|
120
|
+
const deviceSource = (_a2 = responsiveStyle.findDeviceOverride(enhancedSource, deviceId)) == null ? void 0 : _a2.value;
|
|
121
|
+
const deviceOverride = (_b2 = responsiveStyle.findDeviceOverride(enhancedOverride, deviceId)) == null ? void 0 : _b2.value;
|
|
122
122
|
if (deviceSource && deviceOverride) {
|
|
123
123
|
return {
|
|
124
124
|
deviceId,
|
|
@@ -136,15 +136,15 @@ function useEnhancedTypography(value) {
|
|
|
136
136
|
};
|
|
137
137
|
}
|
|
138
138
|
return null;
|
|
139
|
-
}).filter(
|
|
139
|
+
}).filter(isNonNullable.isNonNullable);
|
|
140
140
|
}
|
|
141
141
|
function useTypographyClassName(value) {
|
|
142
|
-
return
|
|
142
|
+
return responsiveStyle.useStyle(responsiveStyle.responsiveStyle([value], ([value2]) => {
|
|
143
143
|
if (value2 === void 0)
|
|
144
144
|
return {};
|
|
145
145
|
let styles = {};
|
|
146
146
|
if (value2.color != null)
|
|
147
|
-
styles.color =
|
|
147
|
+
styles.color = responsiveStyle.colorToString(value2.color);
|
|
148
148
|
if (value2.fontFamily != null)
|
|
149
149
|
styles.fontFamily = value2.fontFamily;
|
|
150
150
|
if (value2.fontSize != null && value2.fontSize.value != null && value2.fontSize.unit != null)
|
|
@@ -162,7 +162,7 @@ function useTypographyClassName(value) {
|
|
|
162
162
|
if (value2.italic != null)
|
|
163
163
|
styles.fontStyle = value2.italic === true ? "italic" : "initial";
|
|
164
164
|
return styles;
|
|
165
|
-
},
|
|
165
|
+
}, responsiveStyle.shallowMergeFallbacks));
|
|
166
166
|
}
|
|
167
167
|
function Leaf(_a) {
|
|
168
168
|
var _b = _a, {
|