@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.
Files changed (196) hide show
  1. package/dist/Box.cjs.js +14 -10
  2. package/dist/Box.cjs.js.map +1 -1
  3. package/dist/Box.es.js +9 -5
  4. package/dist/Box.es.js.map +1 -1
  5. package/dist/Button.cjs.js +40 -36
  6. package/dist/Button.cjs.js.map +1 -1
  7. package/dist/Button.es.js +15 -11
  8. package/dist/Button.es.js.map +1 -1
  9. package/dist/Carousel.cjs.js +38 -34
  10. package/dist/Carousel.cjs.js.map +1 -1
  11. package/dist/Carousel.es.js +13 -9
  12. package/dist/Carousel.es.js.map +1 -1
  13. package/dist/Countdown.cjs.js +30 -54
  14. package/dist/Countdown.cjs.js.map +1 -1
  15. package/dist/Countdown.es.js +5 -29
  16. package/dist/Countdown.es.js.map +1 -1
  17. package/dist/Divider.cjs.js +11 -35
  18. package/dist/Divider.cjs.js.map +1 -1
  19. package/dist/Divider.es.js +5 -29
  20. package/dist/Divider.es.js.map +1 -1
  21. package/dist/Embed.cjs.js +6 -30
  22. package/dist/Embed.cjs.js.map +1 -1
  23. package/dist/Embed.es.js +5 -29
  24. package/dist/Embed.es.js.map +1 -1
  25. package/dist/Form.cjs.js +76 -72
  26. package/dist/Form.cjs.js.map +1 -1
  27. package/dist/Form.es.js +14 -10
  28. package/dist/Form.es.js.map +1 -1
  29. package/dist/Image.cjs.js +22 -18
  30. package/dist/Image.cjs.js.map +1 -1
  31. package/dist/Image.es.js +15 -11
  32. package/dist/Image.es.js.map +1 -1
  33. package/dist/LiveProvider.cjs.js +14 -10
  34. package/dist/LiveProvider.cjs.js.map +1 -1
  35. package/dist/LiveProvider.es.js +14 -10
  36. package/dist/LiveProvider.es.js.map +1 -1
  37. package/dist/Navigation.cjs.js +41 -37
  38. package/dist/Navigation.cjs.js.map +1 -1
  39. package/dist/Navigation.es.js +15 -11
  40. package/dist/Navigation.es.js.map +1 -1
  41. package/dist/PreviewProvider.cjs.js +12 -8
  42. package/dist/PreviewProvider.cjs.js.map +1 -1
  43. package/dist/PreviewProvider.es.js +12 -8
  44. package/dist/PreviewProvider.es.js.map +1 -1
  45. package/dist/ReadOnlyText.cjs.js +71 -67
  46. package/dist/ReadOnlyText.cjs.js.map +1 -1
  47. package/dist/ReadOnlyText.es.js +15 -11
  48. package/dist/ReadOnlyText.es.js.map +1 -1
  49. package/dist/Root.cjs.js +13 -9
  50. package/dist/Root.cjs.js.map +1 -1
  51. package/dist/Root.es.js +11 -7
  52. package/dist/Root.es.js.map +1 -1
  53. package/dist/SocialLinks.cjs.js +16 -12
  54. package/dist/SocialLinks.cjs.js.map +1 -1
  55. package/dist/SocialLinks.es.js +9 -5
  56. package/dist/SocialLinks.es.js.map +1 -1
  57. package/dist/Text.cjs.js +7 -3
  58. package/dist/Text.cjs.js.map +1 -1
  59. package/dist/Text.es.js +8 -4
  60. package/dist/Text.es.js.map +1 -1
  61. package/dist/Video.cjs.js +6 -30
  62. package/dist/Video.cjs.js.map +1 -1
  63. package/dist/Video.es.js +5 -29
  64. package/dist/Video.es.js.map +1 -1
  65. package/dist/actions.cjs.js +0 -13
  66. package/dist/actions.cjs.js.map +1 -1
  67. package/dist/actions.es.js +1 -12
  68. package/dist/actions.es.js.map +1 -1
  69. package/dist/api.cjs.js +1 -1
  70. package/dist/api.es.js +1 -1
  71. package/dist/builder.cjs.js +1 -0
  72. package/dist/builder.cjs.js.map +1 -1
  73. package/dist/builder.es.js +1 -0
  74. package/dist/builder.es.js.map +1 -1
  75. package/dist/components.cjs.js +14 -10
  76. package/dist/components.cjs.js.map +1 -1
  77. package/dist/components.es.js +14 -10
  78. package/dist/components.es.js.map +1 -1
  79. package/dist/control-serialization.cjs.js +37 -36
  80. package/dist/control-serialization.cjs.js.map +1 -1
  81. package/dist/control-serialization.es.js +2 -1
  82. package/dist/control-serialization.es.js.map +1 -1
  83. package/dist/controls.cjs.js +22 -22
  84. package/dist/controls.es.js +2 -1
  85. package/dist/controls.es.js.map +1 -1
  86. package/dist/index.cjs.js +548 -1689
  87. package/dist/index.cjs.js.map +1 -1
  88. package/dist/index.cjs2.js +23 -21
  89. package/dist/index.cjs2.js.map +1 -1
  90. package/dist/index.cjs3.js +2 -1
  91. package/dist/index.cjs3.js.map +1 -1
  92. package/dist/index.cjs4.js +2 -2
  93. package/dist/index.cjs4.js.map +1 -1
  94. package/dist/index.cjs5.js +20 -20
  95. package/dist/index.cjs5.js.map +1 -1
  96. package/dist/index.cjs6.js +7 -3
  97. package/dist/index.cjs6.js.map +1 -1
  98. package/dist/index.cjs7.js +50 -46
  99. package/dist/index.cjs7.js.map +1 -1
  100. package/dist/index.es.js +329 -1450
  101. package/dist/index.es.js.map +1 -1
  102. package/dist/index.es2.js +5 -3
  103. package/dist/index.es2.js.map +1 -1
  104. package/dist/index.es3.js +2 -1
  105. package/dist/index.es3.js.map +1 -1
  106. package/dist/index.es4.js +1 -1
  107. package/dist/index.es5.js +3 -3
  108. package/dist/index.es5.js.map +1 -1
  109. package/dist/index.es6.js +7 -3
  110. package/dist/index.es6.js.map +1 -1
  111. package/dist/index.es7.js +16 -12
  112. package/dist/index.es7.js.map +1 -1
  113. package/dist/introspection.cjs.js +21 -23
  114. package/dist/introspection.cjs.js.map +1 -1
  115. package/dist/introspection.es.js +4 -5
  116. package/dist/introspection.es.js.map +1 -1
  117. package/dist/isNonNullable.cjs.js +6 -0
  118. package/dist/isNonNullable.cjs.js.map +1 -0
  119. package/dist/isNonNullable.es.js +5 -0
  120. package/dist/isNonNullable.es.js.map +1 -0
  121. package/dist/leaf.cjs.js +11 -11
  122. package/dist/leaf.cjs.js.map +1 -1
  123. package/dist/leaf.es.js +2 -2
  124. package/dist/main.cjs.js +2 -0
  125. package/dist/main.cjs.js.map +1 -1
  126. package/dist/main.es.js +2 -0
  127. package/dist/main.es.js.map +1 -1
  128. package/dist/next.cjs.js +9 -6
  129. package/dist/next.cjs.js.map +1 -1
  130. package/dist/next.es.js +10 -6
  131. package/dist/next.es.js.map +1 -1
  132. package/dist/prop-controllers.cjs.js +3 -1
  133. package/dist/prop-controllers.cjs.js.map +1 -1
  134. package/dist/prop-controllers.es.js +3 -1
  135. package/dist/prop-controllers.es.js.map +1 -1
  136. package/dist/react.cjs.js +7 -3
  137. package/dist/react.cjs.js.map +1 -1
  138. package/dist/react.es.js +7 -3
  139. package/dist/react.es.js.map +1 -1
  140. package/dist/responsive-style.cjs.js +917 -0
  141. package/dist/responsive-style.cjs.js.map +1 -0
  142. package/dist/responsive-style.es.js +853 -0
  143. package/dist/responsive-style.es.js.map +1 -0
  144. package/dist/rich-text.cjs.js +61 -1319
  145. package/dist/rich-text.cjs.js.map +1 -1
  146. package/dist/rich-text.es.js +17 -1217
  147. package/dist/rich-text.es.js.map +1 -1
  148. package/dist/slate.cjs.js +8 -28
  149. package/dist/slate.cjs.js.map +1 -1
  150. package/dist/slate.es.js +8 -28
  151. package/dist/slate.es.js.map +1 -1
  152. package/dist/types/src/api/graphql/documents/queries.d.ts +0 -2
  153. package/dist/types/src/api/graphql/documents/queries.d.ts.map +1 -1
  154. package/dist/types/src/api/graphql/generated/types.d.ts +0 -70
  155. package/dist/types/src/api/graphql/generated/types.d.ts.map +1 -1
  156. package/dist/types/src/api/react.d.ts +0 -3
  157. package/dist/types/src/api/react.d.ts.map +1 -1
  158. package/dist/types/src/controls/rich-text/types.d.ts +1 -16
  159. package/dist/types/src/controls/rich-text/types.d.ts.map +1 -1
  160. package/dist/types/src/next/api-handler/handlers/element-tree.d.ts +12 -0
  161. package/dist/types/src/next/api-handler/handlers/element-tree.d.ts.map +1 -0
  162. package/dist/types/src/next/api-handler/handlers/fonts.d.ts +18 -0
  163. package/dist/types/src/next/api-handler/handlers/fonts.d.ts.map +1 -0
  164. package/dist/types/src/next/api-handler/handlers/manifest.d.ts +17 -0
  165. package/dist/types/src/next/api-handler/handlers/manifest.d.ts.map +1 -0
  166. package/dist/types/src/next/api-handler/handlers/proxy-preview-mode.d.ts +8 -0
  167. package/dist/types/src/next/api-handler/handlers/proxy-preview-mode.d.ts.map +1 -0
  168. package/dist/types/src/next/api-handler/handlers/revalidate.d.ts +13 -0
  169. package/dist/types/src/next/api-handler/handlers/revalidate.d.ts.map +1 -0
  170. package/dist/types/src/next/api-handler/index.d.ts +19 -0
  171. package/dist/types/src/next/api-handler/index.d.ts.map +1 -0
  172. package/dist/types/src/next/client.d.ts +11 -35
  173. package/dist/types/src/next/client.d.ts.map +1 -1
  174. package/dist/types/src/next/index.d.ts +1 -6
  175. package/dist/types/src/next/index.d.ts.map +1 -1
  176. package/dist/types/src/state/actions.d.ts +2 -22
  177. package/dist/types/src/state/actions.d.ts.map +1 -1
  178. package/dist/types/src/state/makeswift-api-client.d.ts +4 -9
  179. package/dist/types/src/state/makeswift-api-client.d.ts.map +1 -1
  180. package/dist/types/src/state/modules/api-resources.d.ts +4 -4
  181. package/dist/types/src/state/modules/api-resources.d.ts.map +1 -1
  182. package/dist/types.cjs.js +1272 -10
  183. package/dist/types.cjs.js.map +1 -1
  184. package/dist/types.cjs2.js +14 -0
  185. package/dist/types.cjs2.js.map +1 -0
  186. package/dist/types.es.js +1207 -10
  187. package/dist/types.es.js.map +1 -1
  188. package/dist/types.es2.js +13 -0
  189. package/dist/types.es2.js.map +1 -0
  190. package/package.json +3 -2
  191. package/dist/types/src/api/introspection.d.ts +0 -11
  192. package/dist/types/src/api/introspection.d.ts.map +0 -1
  193. package/dist/types/src/next/api-handler.d.ts +0 -48
  194. package/dist/types/src/next/api-handler.d.ts.map +0 -1
  195. package/dist/types/src/next/snapshots.d.ts +0 -152
  196. 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 { av as BlockType, aw as InlineType, ar as richTextDTOtoDAO, aq as richTextDTOtoSelection, ay as BuilderEditMode } from "./rich-text.es.js";
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 { o as useStyle, r as responsiveStyle, Q as deepEqual, X as useBuilderEditMode, Y as pollBoxModel } from "./index.es.js";
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 "./introspection.es.js";
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 "redux";
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,
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAU6B,sBAAA;AAAA,EAAEA;AAAAA,EAASC;AAAAA,EAAYC;AAAAA,GAAsC;AAClFC,QAAAA,cAAc,CAClBC,SAAS;AAAA,IAAEC,QAAQ;AAAA,EAAA,CAAX,GACRD,SAASE,gBAAgB,CAACN,QAAQO,SAAT,GAAqB,CAAC,CAACA,YAAY,YAAa;AAAA,IAAEA;AAAAA,EAAAA,EAAnD,CAAhB,CAFU;AAKZP,UAAAA,QAAQQ;AAAAA,SACTC,UAAUC;AACb,uEACST;QAAY,WAAWU,GAAG,GAAGR,WAAJ;AAAA,QAC7BD;AAAAA,MAAAA,EAFL;AAAA,SAKGO,UAAUG;AACb,wEACUX;QAAY,WAAWU,GAAG,GAAGR,WAAJ;AAAA,QAC9BD;AAAAA,MAAAA,EAFL;AAAA,SAKGO,UAAUI;AACb,wEACUZ;QAAY,WAAWU,GAAG,GAAGR,WAAJ;AAAA,QAC9BD;AAAAA,MAAAA,EAFL;AAAA,SAKGO,UAAUK;AACb,wEACUb;QAAY,WAAWU,GAAG,GAAGR,WAAJ;AAAA,QAC9BD;AAAAA,MAAAA,EAFL;AAAA,SAKGO,UAAUM;AACb,wEACUd;QAAY,WAAWU,GAAG,GAAGR,WAAJ;AAAA,QAC9BD;AAAAA,MAAAA,EAFL;AAAA,SAKGO,UAAUO;AACb,wEACUf;QAAY,WAAWU,GAAG,GAAGR,WAAJ;AAAA,QAC9BD;AAAAA,MAAAA,EAFL;AAAA,SAKGO,UAAUQ;AACb,wEACUhB;QAAY,WAAWU,GAAG,GAAGR,WAAJ;AAAA,QAC9BD;AAAAA,MAAAA,EAFL;AAAA,SAKGO,UAAUS;AACb,gFAEQjB;QACJ,WAAWU,GACT,GAAGR,aACHC,SAAS;AAAA,UACPe,SAAS;AAAA,UACTC,UAAU;AAAA,UACVC,YAAY;AAAA,UACZC,YAAY;AAAA,QAAA,CAJN,CAFG;AAAA,QAUZpB;AAAAA,MAAAA,EAbL;AAAA,SAgBGO,UAAUc;AACb,wEACUtB;QAAY,WAAWU,GAAG,GAAGR,WAAJ;AAAA,QAAkB,OAAO;AAAA,UAAEqB,mBAAmB;AAAA,QAA/E;AAAA,QACGtB;AAAAA,MAAAA,EAFL;AAAA,SAKGO,UAAUgB;AACb,wEACUxB;QAAY,WAAWU,GAAG,GAAGR,WAAJ;AAAA,QAAkB,OAAO;AAAA,UAAEqB,mBAAmB;AAAA,QAA/E;AAAA,QACGtB;AAAAA,MAAAA,EAFL;AAAA,SAKGO,UAAUiB;AACb,wEACUzB;QAAY,WAAWU,GAAG,GAAGR,WAAJ;AAAA,QAC9BD;AAAAA,MAAAA,EAFL;AAAA,SAKGO,UAAUkB;AACb,0EACY1B;QAAY,WAAWU,GAAG,GAAGR,WAAJ;AAAA,QAChCD;AAAAA,MAAAA,EAFL;AAAA;AAML;AC9FD,oBAAoB,IAAsE;AAAtE,eAAE0B;AAAAA;AAAAA,MAAF,IAAgBC,wBAAhB,IAAgBA;AAAAA,IAAdD;AAAAA;AACb,6BAAC,MAAD,iCAAUC,cAAV;AAAA,IAAuB,WAAWlB,GAAGP,SAAS;AAAA,MAAE0B,gBAAgB;AAAA,IAAnB,CAAA,GAA8BF,SAAvC;AAAA,EAAA,EAA3C;AACD;AAM6B,uBAAA;AAAA,EAAE5B;AAAAA,EAASC;AAAAA,EAAYC;AAAAA,GAAsC;AACjFF,UAAAA,QAAQQ;AAAAA,SACTuB,WAAWC;AACd,0EAAiB/B;QAAaC;AAAAA,MAAAA,EAA9B;AAAA,SACG6B,WAAWE;AACd,yEAAgBhC;QAAaC;AAAAA,MAAAA,EAA7B;AAAA,SACG6B,WAAWG;AACd,yEAAgBjC;QAAaC;AAAAA,MAAAA,EAA7B;AAAA,SACG6B,WAAWI;AAEZ,iCAAC,YAAD,iCAAgBlC,aAAhB;AAAA,QAA4B,MAAMD,QAAQoC;AAAAA,QACvClC;AAAAA,MAAAA,EAFL;AAAA;AAML;ACzBuB,iBAAA,IAA2C;AAA3C,eAAEF;AAAAA;AAAAA,MAAF,IAAcqC,kBAAd,IAAcA;AAAAA,IAAZrC;AAAAA;AAChBA,UAAAA,QAAQQ;AAAAA,SACTuB,WAAWC;AAAAA,SACXD,WAAWE;AAAAA,SACXF,WAAWG;AAAAA,SACXH,WAAWI;AACd,iCAAQ,eAAD;AAAA,QAAe;AAAA,SAAsBE,MAA5C;AAAA,SACG5B,UAAUC;AAAAA,SACVD,UAAUG;AAAAA,SACVH,UAAUI;AAAAA,SACVJ,UAAUK;AAAAA,SACVL,UAAUS;AAAAA,SACVT,UAAUc;AAAAA,SACVd,UAAUgB;AAAAA,SACVhB,UAAUiB;AAAAA,SACVjB,UAAUkB;AACb,iCAAQ,cAAD;AAAA,QAAc;AAAA,SAAsBU,MAA3C;AAAA;AAEO,iCAAA,QAAA,iCAAUA,MAAMpC,aAAhB;AAAA,QAAA,UAA6BoC,MAAMnC;AAAAA,MAAAA,EAA1C;AAAA;AAEL;ACnBD,MAAMoC,wBAAwB;AAMvB,4BAA4BC,QAAgBC,MAAsB;AACjE,QAAA,CAACC,cAAcC,mBAAmBC,SAAS,IAAD;AAEhDC,YAAU,MAAM;AACVH,QAAAA,gBAAgBD,MAAM;AAClBK,YAAAA,YAAYC,iBAAiBN,IAAD;AAC5BO,YAAAA,gBAAgBC,uBAAuBR,IAAD;AACxC,UAAA,CAACS,UAAUV,OAAOrC,UAAU2C,SAAlB,KAAgC,CAACI,UAAUV,OAAOW,WAAWH,aAAnB,GAAmC;AACzFR,eAAOrC,WAAW2C;AAClBN,eAAOW,YAAYH;AACnBR,eAAOY,SAAP;AAAA,MACD;AAAA,IACF;AAAA,EACA,GAAA,CAACZ,QAAQE,cAAcD,IAAvB,CAVM;AAYTI,YAAU,MAAM;AACVH,QAAAA;AAAc;AAEZW,UAAAA,YAAYC,OAAOC,WAAW,MAAM;AACxCZ,sBAAgB,IAAD;AAAA,OACdJ,qBAFe;AAIlB,WAAO,MAAM;AACXe,aAAOE,aAAaH,SAApB;AAAA,IAAA;AAAA,EADF,GAGC,CAACX,YAAD,CAVM;AAYFe,SAAAA,YAAY,MAAMd,gBAAgB,KAAD,GAAS,CAA/B,CAAA;AACnB;ACHD,MAAMe,cAA2B,CAAC;AAAA,EAAEjD,MAAMC,UAAUC;AAAAA,EAAWR,UAAU,CAAC;AAAA,IAAEsC,MAAM;AAAA,EAAA,CAAT;AAAvC,CAAD;AAEpBkB,MAAAA,eAAeC,WAAW,uBACrC;AAAA,EAAEC;AAAAA,EAAIpB;AAAAA,EAAMqB;AAAAA,EAAOxD;AAAAA,GACnByD,KACA;AACM,QAAA,CAACvB,UAAUI,SAAS,MAAMoB,UAAUC,eAAeC,SAASC,UAAUC,aAAY,CAAb,CAAV,CAAT,CAAf,CAAhB;AACnBC,QAAAA,YAAYC,mBAAmB9B,QAAQC,IAAT;AAC9B8B,QAAAA,WAAWC;AAEjB,QAAM,CAACC,iBAAiBC,sBACtB9B,SAAyD,IAAjD;AACV,QAAM+B,aAAaF,mDAAiBhC;AAEpCI,YAAU,MAAM;AACV8B,QAAAA,cAAc;AAAM;AAElB1E,UAAAA,UAAU2E,YAAYC,UAAUrC,QAAQA,MAA9B;AAEhB,WAAOsC,aAAa;AAAA,MAClB7E;AAAAA,MACA8E,kBAAkBC,CAAAA,aAAYL,WAAWM,eAAeD,QAA1B;AAAA,IAAA,CAFb;AAAA,EAAA,GAIlB,CAACxC,QAAQmC,UAAT,CATM;AAWTO,sBACEnB,KACA,MAAO;AAAA,IACLoB,aAAa;AACJP,aAAAA,YAAYC,UAAUrC,QAAQA,MAA9B;AAAA,IAFJ;AAAA,IAIL4C,cAAc;AACLC,aAAAA,OAAOT,YAAYC,UAAUrC,QAAQA,MAA9B,CAAD;AAAA,IALV;AAAA,IAOLkC;AAAAA,EAEF,IAAA,CAAClC,QAAQkC,kBAAT,CAXiB;AAcbY,QAAAA,eAAeC,QAAQ,MAAO9C,OAAOM,iBAAiBN,IAAD,IAASiB,aAAc,CAACjB,IAAD,CAAtD;AAE5BI,YAAU,MAAM;AACd8B,6CAAYa,eAAehD;AAAAA,EAA3B,GACC,CAACmC,YAAYnC,MAAb,CAFM;AAIHiD,QAAAA,cAAchC,YAAY,MAAM;AACpCkB,6CAAYe;AAAAA,EAAZ,GACC,CAACf,UAAD,CAF4B;AAIzBgB,QAAAA,gBAAgBlC,YACpB,CAACmC,MAAqB;AAChBC,QAAAA,SAAS,eAAeD,CAAhB;AAAoB,aAAOjB,yCAAYmB;AAC/CD,QAAAA,SAAS,SAASD,CAAV;AAAc,aAAOjB,yCAAYoB;AACzCF,QAAAA,SAAS,QAAD,EAAWD,CAAnB;AAAuB,aAAOjB,yCAAYqB;AAC9CC,cAAUL,GAAGpD,MAAJ;AAAA,EAAA,GAEX,CAACmC,YAAYnC,MAAb,CAP+B;AAUjC,6BACG,OAAD;AAAA,IAAO;AAAA,IAAgB,OAAO8C;AAAAA,IAAc,UAAUjB;AAAAA,IAAtD,8BACG,UAAD;AAAA,MACE;AAAA,MACA,YAAY6B;AAAAA,MACZ,eAAeC;AAAAA,MACf,WAAWR;AAAAA,MACX,SAASF;AAAAA,MACT,WAAW7E,GAAGkD,OAAOxD,MAAR;AAAA,MACb,UAAUiE,aAAa6B,gBAAgBC;AAAAA,MACvC,aAAY;AAAA,IAAA,CARd;AAAA,EAAA,CAFJ;AAcD,CAvEqC;AAyEtC,IAAA,iBAAe1C;;"}
@@ -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
- function isNonNullable(value) {
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 richText.Types.Grid:
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 richText.Types.ElementID:
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 richText.Types.Backgrounds:
84
+ case types.Types.Backgrounds:
86
85
  return getBackgroundsSwatchIds(prop);
87
- case richText.Types.Border:
86
+ case types.Types.Border:
88
87
  return getBorderSwatchIds(prop);
89
- case richText.Types.NavigationLinks: {
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 richText.Types.ResponsiveColor:
102
+ case types.Types.ResponsiveColor:
104
103
  return getResponsiveColorSwatchIds(prop);
105
- case richText.Types.Shadows:
104
+ case types.Types.Shadows:
106
105
  return getBoxShadowsSwatchIds(prop);
107
- case richText.Types.RichText: {
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 richText.ColorControlType: {
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 richText.Types.Backgrounds:
152
+ case types.Types.Backgrounds:
154
153
  return getBackgroundsFileIds(prop);
155
- case richText.Types.Image: {
154
+ case types.Types.Image: {
156
155
  const value = prop;
157
156
  return value == null ? [] : [value];
158
157
  }
159
- case richText.Types.Images: {
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 richText.ImageControlType: {
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 richText.Types.RichText: {
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 richText.Types.Table: {
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 richText.Types.Link: {
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 richText.Types.NavigationLinks: {
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 richText.Types.RichText: {
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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"}
@@ -1,9 +1,8 @@
1
- import { S as ShapeControlType, L as ListControlType, b as SlotControlType, T as Types, C as ColorControlType, I as ImageControlType } from "./rich-text.es.js";
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
- function isNonNullable(value) {
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, isNonNullable as j, getBoxShadowsSwatchIds as k, getResponsiveColorSwatchIds as l, getBackgroundsFileIds as m, getBackgroundsSwatchIds as n };
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":";;;AAAO,uBAA0B,OAAmC;AAClE,SAAO,SAAS;AAClB;ACiCO,4BACL,YACA,MACW;AACX,MAAI,QAAQ;AAAM,WAAO;AAEzB,UAAQ,WAAW;AAAA,SACZ,MAAM;AACT,aAAQ,KAAmB;AAAA,SAExB;AACH,aAAQ,KAAyB;AAAA,SAE9B;AACK,aAAA,KAAyB,QAAQ,CAAC,EAAE,YAC1C,mBAAmB,WAAW,OAAO,MAAM,KAAK,CAClD;AAAA,SAEG,kBAAkB;AACrB,YAAM,mBAAmB;AAEzB,aAAO,OAAO,KAAK,gBAAgB,EAAE,QAAQ,CAAA,QAC3C,mBAAmB,WAAW,OAAO,KAAK,MAAM,iBAAiB,IAAI,CACvE;AAAA,IACF;AAAA;AAGE,aAAO;;AAEb;AAEO,sBACL,YACA,MACe;AACf,MAAI,QAAQ;AAAa,WAAA;AAEzB,UAAQ,WAAW;AAAA,SACZ,MAAM;AACF,aAAA;AAAA;AAGA,aAAA;AAAA;AAEb;AAEO,iCAAiC,OAAsD;;AAC5F,SACE,qCACI,QAAQ,CAAA,aAAY,SAAS,OAC9B,QAAQ,CAAkB,mBAAA;;AACzB,YAAQ,eAAe;AAAA,WAChB;AACI,eAAA,uBAAe,YAAf,oBAAwB,aAAY,OAAO,CAAK,IAAA,CAAC,eAAe,QAAQ,QAAQ;AAAA,WAEpF;AACH,eAAO,eAAe,QAAQ,MAAM,QAAQ,CAC1C,SAAA,KAAK,SAAS,OAAO,CAAC,IAAI,KAAK,MAAM,QACvC;AAAA;AAGA,eAAO;;EAEZ,OAfH,YAeQ,CAAA;AAEZ;AAEO,4BAA4B,OAAiD;;AAClF,SACE,qCACI,QAAQ,CAAA,aAAY,SAAS,OAC9B,QAAQ,CAAe,gBAAA;;AACf,WAAA;AAAA,MACL,yBAAY,cAAZ,oBAAuB,UAAvB,mBAA8B;AAAA,MAC9B,wBAAY,gBAAZ,mBAAyB,UAAzB,mBAAgC;AAAA,MAChC,wBAAY,iBAAZ,mBAA0B,UAA1B,mBAAiC;AAAA,MACjC,wBAAY,eAAZ,mBAAwB,UAAxB,mBAA+B;AAAA,IAC/B,EAAA,OAAO,CAAC,aAAuD,YAAY,IAAI;AAAA,EAClF,OATH,YASQ,CAAA;AAEZ;AAEO,gCAAgC,OAAkD;;AACvF,SACE,qCACI,QAAQ,CAAA,aAAY,SAAS,OAC9B,IAAI,CAAQ,SAAA;;AAAA,uBAAK,QAAQ,UAAb,oBAAoB;AAAA,KAChC,OAAO,CAAC,aAAuD,YAAY,UAH9E,YAGuF;AAE3F;AAEO,qCACL,OACU;;AACH,SAAA,qCAAO,IAAI,CAAA,aAAY,SAAS,OAAO,IAAI,CAAS,UAAA,MAAM,cAA1D,YAAuE,CAAA;AAChF;AAEO,qCACL,OACU;;AACV,SACE,qCACI,IAAI,CAAY,aAAA,SAAS,OAC1B,QAAQ,CAAmB,oBAAA;;AAAA,kCAAgB,UAAhB,oBAAuB;AAAA,KAClD,OAAO,mBAHV,YAG4B;AAEhC;AAEO,6BACL,YACA,MACU;;AACV,MAAI,QAAQ;AAAM,WAAO;AAEzB,UAAQ,WAAW;AAAA,SACZ,MAAM;AACT,aAAO,wBAAwB,IAAwB;AAAA,SAEpD,MAAM;AACT,aAAO,mBAAmB,IAAmB;AAAA,SAE1C,MAAM,iBAAiB;AAC1B,YAAM,QAAQ;AAEZ,aAAA,qCAAO,QAAQ,CAAQ,SAAA;;AACrB,gBAAQ,KAAK;AAAA,eACN;AAAA,eACA;AACI,mBAAA;AAAA,cACL,GAAI,kBAAK,QAAQ,UAAb,oBACA,IAAI,CAAY,aAAA,SAAS,OAC1B,IAAI,CAAA,UAAS,MAAM,cAFlB,YAE+B,CAAC;AAAA,cACpC,GAAI,iBAAK,QAAQ,cAAb,mBACA,IAAI,CAAY,aAAA,SAAS,OAC1B,IAAI,CAAA,UAAS,MAAM,cAFlB,YAE+B,CAAC;AAAA,YAAA;AAAA;AAAA,MAG3C,OAbD,YAaM,CAAA;AAAA,IAEV;AAAA,SAEK,MAAM;AACT,aAAO,4BAA4B,IAA4B;AAAA,SAE5D,MAAM;AACT,aAAO,uBAAuB,IAAoB;AAAA,SAE/C,MAAM,UAAU;AAOV,UAAA,mBAAT,SAA0B,MAA0B;;AAClD,gBAAQ,KAAK;AAAA,eACN;AAAA,eACA;AAAA,eACA;AACH,mBAAO,kBAAK,UAAL,oBAAY,QAAQ,sBAApB,YAAyC,CAAA;AAAA,eAE7C;AACH,mBAAO,iBAAK,UAAL,mBAAY,QAAQ,sBAApB,YAAyC,CAAA;AAAA;AAGhD,mBAAO;;MAAC,GAIL,mBAAT,SAA0B,MAA0B;;AAClD,eAAO,4BAA4B,kBAAK,SAAL,oBAAW,UAAX,mBAAkB,KAAK;AAAA,MAAA;AAtB5D,YAAM,QAAQ;AAEV,UAAA,SAAS,QAAQ,MAAM,YAAY;AAAM,eAAO;AAE7C,aAAA,iBAAiB,MAAM,QAAQ;AAAA,IAoBxC;AAAA,SAEK,kBAAkB;AACrB,YAAM,QAAQ;AACd,aAAO,gCAAO,aAAY,OAAO,CAAK,IAAA,CAAC,MAAM,QAAQ;AAAA,IACvD;AAAA;AAGE,aAAO;;AAEb;AAEO,+BAA+B,OAAsD;;AAC1F,SACE,qCACI,QAAQ,CAAA,aAAY,SAAS,OAC9B,QAAQ,CAAkB,mBAAA;AACzB,YAAQ,eAAe;AAAA,WAChB;AACI,eAAA,CAAC,eAAe,QAAQ,OAAO;AAAA;AAGtC,eAAO;;EAEZ,OAVH,YAUQ,CAAA;AAEZ;AAEO,oBACL,YACA,MACU;;AACV,MAAI,QAAQ;AAAM,WAAO;AAEzB,UAAQ,WAAW;AAAA,SACZ,MAAM;AACT,aAAO,sBAAsB,IAAwB;AAAA,SAElD,MAAM,OAAO;AAChB,YAAM,QAAQ;AACd,aAAO,SAAS,OAAO,KAAK,CAAC,KAAK;AAAA,IACpC;AAAA,SAEK,MAAM,QAAQ;AACjB,YAAM,QAAQ;AACd,aAAO,qCAAO,QAAQ,CAAS,SAAA,KAAK,MAAM,QAAQ,OAAO,CAAC,IAAI,CAAC,KAAK,MAAM,IAAI,OAAvE,YAA8E,CAAA;AAAA,IACvF;AAAA,SAEK,kBAAkB;AACrB,YAAM,QAAQ;AACd,aAAO,SAAS,OAAO,KAAK,CAAC,KAAK;AAAA,IACpC;AAAA;AAGE,aAAO;;AAEb;AAEO,0BACL,YACA,MACU;AACV,MAAI,QAAQ;AAAM,WAAO;AAEzB,UAAQ,WAAW;AAAA,SACZ,MAAM,UAAU;AAMV,UAAA,uBAAT,SAA8B,MAA0B;;AACtD,gBAAQ,KAAK;AAAA,eACN;AAAA,eACA;AAAA,eACA;AACH,mBAAO,iBAAK,UAAL,mBAAY,QAAQ,0BAApB,YAA6C,CAAA;AAAA,eAEjD;AACH,mBAAO,iBAAK,UAAL,mBAAY,QAAQ,0BAApB,YAA6C,CAAA;AAAA;AAGpD,mBAAO;;MAAC,GAIL,uBAAT,SAA8B,MAA0B;;AAC/C,eAAA,CAAC,iBAAK,SAAL,mBAAW,UAAX,mBAAkB,EAAE,EAAE,OAAO,CAAM,OAAA,MAAM,IAAI;AAAA,MAAA;AArBvD,YAAM,QAAQ;AACV,UAAA,SAAS,QAAQ,MAAM,YAAY;AAAM,eAAO;AAE7C,aAAA,qBAAqB,MAAM,QAAQ;AAAA,IAoB5C;AAAA;AAGE,aAAO;;AAEb;AAEO,qBACL,YACA,MACU;AACV,MAAI,QAAQ;AAAM,WAAO;AAEzB,UAAQ,WAAW;AAAA,SACZ,MAAM,OAAO;AAChB,YAAM,QAAQ;AACd,aAAO,SAAS,OAAO,KAAK,CAAC,KAAK;AAAA,IACpC;AAAA;AAGE,aAAO;;AAEb;AAEO,oBACL,YACA,MACU;;AACV,MAAI,QAAQ;AAAM,WAAO;AAEzB,UAAQ,WAAW;AAAA,SACZ,MAAM,MAAM;AACf,YAAM,QAAQ;AACd,UAAI,SAAS;AAAM,eAAO;AAE1B,cAAQ,MAAM;AAAA,aACP;AACI,iBAAA,MAAM,QAAQ,UAAU,OAAO,CAAK,IAAA,CAAC,MAAM,QAAQ,MAAM;AAAA;AAGhE,iBAAO;;IAEb;AAAA,SAEK,MAAM,iBAAiB;AAC1B,YAAM,QAAQ;AACd,UAAI,SAAS;AAAM,eAAO;AAGxB,aAAA,qCAAO,QAAQ,CAAQ,SAAA;;AACrB,gBAAQ,KAAK;AAAA,eACN,UAAU;AACT,gBAAA,KAAK,QAAQ,QAAQ;AAAM,qBAAO;AAE9B,oBAAA,KAAK,QAAQ,KAAK;AAAA,mBACnB;AACH,uBAAO,KAAK,QAAQ,KAAK,QAAQ,UAAU,OACvC,KACA,CAAC,KAAK,QAAQ,KAAK,QAAQ,MAAM;AAAA;AAGrC,uBAAO;;UAEb;AAAA,eAEK,YAAY;AACf,mBACE,kBAAK,QAAQ,UAAb,oBAAoB,QAAQ,CAAQ,SAAA;AAC9B,kBAAA,KAAK,QAAQ,QAAQ;AAAM,uBAAO;AAE9B,sBAAA,KAAK,QAAQ,KAAK;AAAA,qBACnB;AACH,yBAAO,KAAK,QAAQ,KAAK,QAAQ,UAAU,OACvC,KACA,CAAC,KAAK,QAAQ,KAAK,QAAQ,MAAM;AAAA;AAGrC,yBAAO;;YAEZ,OAZD,YAYM,CAAA;AAAA,UAEV;AAAA;AAAA,MAEH,OAlCD,YAkCM,CAAA;AAAA,IAEV;AAAA,SAEK,MAAM,UAAU;AAMV,UAAA,iBAAT,SAAwB,MAA0B;;AAChD,gBAAQ,KAAK;AAAA,eACN;AAAA,eACA;AACH,mBAAO,kBAAK,UAAL,oBAAY,QAAQ,oBAApB,YAAuC,CAAA;AAAA,eAE3C;AACH,mBAAO,iBAAiB,IAAI;AAAA;AAG5B,mBAAO;;MAAC,GAIL,mBAAT,SAA0B,QAA8B;;AACtD,gBAAQ,OAAO;AAAA,eACR,QAAQ;AACX,kBAAM,cAAc,oBAAO,UAAP,oBAAc,QAAQ,oBAAtB,YAAyC;AAC7D,kBAAM,cAAc,OAAO,OAAO,mBAAmB,OAAO,IAAiB,IAAI;AAEjF,mBAAO,CAAC,GAAG,aAAa,GAAG,WAAW;AAAA,UACxC;AAAA;AAGE,mBAAO,mBAAO,UAAP,mBAAc,QAAQ,oBAAtB,YAAyC,CAAA;AAAA;AAAA,MAAC,GAI9C,qBAAT,SAA4B,MAA2B;AACrD,gBAAQ,KAAK;AAAA,eACN;AACI,mBAAA,KAAK,QAAQ,UAAU,OAAO,CAAK,IAAA,CAAC,KAAK,QAAQ,MAAM;AAAA;AAG9D,mBAAO;;MAAC;AAvCd,YAAM,QAAQ;AACV,UAAA,SAAS,QAAQ,MAAM,YAAY;AAAM,eAAO;AAE7C,aAAA,eAAe,MAAM,QAAQ;AAAA,IAuCtC;AAAA;AAGE,aAAO;;AAEb;;;;;;;;;;;;;;;;;;"}
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":";;;;;AAmCO,4BACL,YACA,MACW;AACX,MAAI,QAAQ;AAAM,WAAO;AAEzB,UAAQ,WAAW;AAAA,SACZ,MAAM;AACT,aAAQ,KAAmB;AAAA,SAExB;AACH,aAAQ,KAAyB;AAAA,SAE9B;AACK,aAAA,KAAyB,QAAQ,CAAC,EAAE,YAC1C,mBAAmB,WAAW,OAAO,MAAM,KAAK,CAClD;AAAA,SAEG,kBAAkB;AACrB,YAAM,mBAAmB;AAEzB,aAAO,OAAO,KAAK,gBAAgB,EAAE,QAAQ,CAAA,QAC3C,mBAAmB,WAAW,OAAO,KAAK,MAAM,iBAAiB,IAAI,CACvE;AAAA,IACF;AAAA;AAGE,aAAO;;AAEb;AAEO,sBACL,YACA,MACe;AACf,MAAI,QAAQ;AAAa,WAAA;AAEzB,UAAQ,WAAW;AAAA,SACZ,MAAM;AACF,aAAA;AAAA;AAGA,aAAA;AAAA;AAEb;AAEO,iCAAiC,OAAsD;;AAC5F,SACE,qCACI,QAAQ,CAAA,aAAY,SAAS,OAC9B,QAAQ,CAAkB,mBAAA;;AACzB,YAAQ,eAAe;AAAA,WAChB;AACI,eAAA,uBAAe,YAAf,oBAAwB,aAAY,OAAO,CAAK,IAAA,CAAC,eAAe,QAAQ,QAAQ;AAAA,WAEpF;AACH,eAAO,eAAe,QAAQ,MAAM,QAAQ,CAC1C,SAAA,KAAK,SAAS,OAAO,CAAC,IAAI,KAAK,MAAM,QACvC;AAAA;AAGA,eAAO;;EAEZ,OAfH,YAeQ,CAAA;AAEZ;AAEO,4BAA4B,OAAiD;;AAClF,SACE,qCACI,QAAQ,CAAA,aAAY,SAAS,OAC9B,QAAQ,CAAe,gBAAA;;AACf,WAAA;AAAA,MACL,yBAAY,cAAZ,oBAAuB,UAAvB,mBAA8B;AAAA,MAC9B,wBAAY,gBAAZ,mBAAyB,UAAzB,mBAAgC;AAAA,MAChC,wBAAY,iBAAZ,mBAA0B,UAA1B,mBAAiC;AAAA,MACjC,wBAAY,eAAZ,mBAAwB,UAAxB,mBAA+B;AAAA,IAC/B,EAAA,OAAO,CAAC,aAAuD,YAAY,IAAI;AAAA,EAClF,OATH,YASQ,CAAA;AAEZ;AAEO,gCAAgC,OAAkD;;AACvF,SACE,qCACI,QAAQ,CAAA,aAAY,SAAS,OAC9B,IAAI,CAAQ,SAAA;;AAAA,uBAAK,QAAQ,UAAb,oBAAoB;AAAA,KAChC,OAAO,CAAC,aAAuD,YAAY,UAH9E,YAGuF;AAE3F;AAEO,qCACL,OACU;;AACH,SAAA,qCAAO,IAAI,CAAA,aAAY,SAAS,OAAO,IAAI,CAAS,UAAA,MAAM,cAA1D,YAAuE,CAAA;AAChF;AAEO,qCACL,OACU;;AACV,SACE,qCACI,IAAI,CAAY,aAAA,SAAS,OAC1B,QAAQ,CAAmB,oBAAA;;AAAA,kCAAgB,UAAhB,oBAAuB;AAAA,KAClD,OAAO,mBAHV,YAG4B;AAEhC;AAEO,6BACL,YACA,MACU;;AACV,MAAI,QAAQ;AAAM,WAAO;AAEzB,UAAQ,WAAW;AAAA,SACZ,MAAM;AACT,aAAO,wBAAwB,IAAwB;AAAA,SAEpD,MAAM;AACT,aAAO,mBAAmB,IAAmB;AAAA,SAE1C,MAAM,iBAAiB;AAC1B,YAAM,QAAQ;AAEZ,aAAA,qCAAO,QAAQ,CAAQ,SAAA;;AACrB,gBAAQ,KAAK;AAAA,eACN;AAAA,eACA;AACI,mBAAA;AAAA,cACL,GAAI,kBAAK,QAAQ,UAAb,oBACA,IAAI,CAAY,aAAA,SAAS,OAC1B,IAAI,CAAA,UAAS,MAAM,cAFlB,YAE+B,CAAC;AAAA,cACpC,GAAI,iBAAK,QAAQ,cAAb,mBACA,IAAI,CAAY,aAAA,SAAS,OAC1B,IAAI,CAAA,UAAS,MAAM,cAFlB,YAE+B,CAAC;AAAA,YAAA;AAAA;AAAA,MAG3C,OAbD,YAaM,CAAA;AAAA,IAEV;AAAA,SAEK,MAAM;AACT,aAAO,4BAA4B,IAA4B;AAAA,SAE5D,MAAM;AACT,aAAO,uBAAuB,IAAoB;AAAA,SAE/C,MAAM,UAAU;AAOV,UAAA,mBAAT,SAA0B,MAA0B;;AAClD,gBAAQ,KAAK;AAAA,eACN;AAAA,eACA;AAAA,eACA;AACH,mBAAO,kBAAK,UAAL,oBAAY,QAAQ,sBAApB,YAAyC,CAAA;AAAA,eAE7C;AACH,mBAAO,iBAAK,UAAL,mBAAY,QAAQ,sBAApB,YAAyC,CAAA;AAAA;AAGhD,mBAAO;;MAAC,GAIL,mBAAT,SAA0B,MAA0B;;AAClD,eAAO,4BAA4B,kBAAK,SAAL,oBAAW,UAAX,mBAAkB,KAAK;AAAA,MAAA;AAtB5D,YAAM,QAAQ;AAEV,UAAA,SAAS,QAAQ,MAAM,YAAY;AAAM,eAAO;AAE7C,aAAA,iBAAiB,MAAM,QAAQ;AAAA,IAoBxC;AAAA,SAEK,kBAAkB;AACrB,YAAM,QAAQ;AACd,aAAO,gCAAO,aAAY,OAAO,CAAK,IAAA,CAAC,MAAM,QAAQ;AAAA,IACvD;AAAA;AAGE,aAAO;;AAEb;AAEO,+BAA+B,OAAsD;;AAC1F,SACE,qCACI,QAAQ,CAAA,aAAY,SAAS,OAC9B,QAAQ,CAAkB,mBAAA;AACzB,YAAQ,eAAe;AAAA,WAChB;AACI,eAAA,CAAC,eAAe,QAAQ,OAAO;AAAA;AAGtC,eAAO;;EAEZ,OAVH,YAUQ,CAAA;AAEZ;AAEO,oBACL,YACA,MACU;;AACV,MAAI,QAAQ;AAAM,WAAO;AAEzB,UAAQ,WAAW;AAAA,SACZ,MAAM;AACT,aAAO,sBAAsB,IAAwB;AAAA,SAElD,MAAM,OAAO;AAChB,YAAM,QAAQ;AACd,aAAO,SAAS,OAAO,KAAK,CAAC,KAAK;AAAA,IACpC;AAAA,SAEK,MAAM,QAAQ;AACjB,YAAM,QAAQ;AACd,aAAO,qCAAO,QAAQ,CAAS,SAAA,KAAK,MAAM,QAAQ,OAAO,CAAC,IAAI,CAAC,KAAK,MAAM,IAAI,OAAvE,YAA8E,CAAA;AAAA,IACvF;AAAA,SAEK,kBAAkB;AACrB,YAAM,QAAQ;AACd,aAAO,SAAS,OAAO,KAAK,CAAC,KAAK;AAAA,IACpC;AAAA;AAGE,aAAO;;AAEb;AAEO,0BACL,YACA,MACU;AACV,MAAI,QAAQ;AAAM,WAAO;AAEzB,UAAQ,WAAW;AAAA,SACZ,MAAM,UAAU;AAMV,UAAA,uBAAT,SAA8B,MAA0B;;AACtD,gBAAQ,KAAK;AAAA,eACN;AAAA,eACA;AAAA,eACA;AACH,mBAAO,iBAAK,UAAL,mBAAY,QAAQ,0BAApB,YAA6C,CAAA;AAAA,eAEjD;AACH,mBAAO,iBAAK,UAAL,mBAAY,QAAQ,0BAApB,YAA6C,CAAA;AAAA;AAGpD,mBAAO;;MAAC,GAIL,uBAAT,SAA8B,MAA0B;;AAC/C,eAAA,CAAC,iBAAK,SAAL,mBAAW,UAAX,mBAAkB,EAAE,EAAE,OAAO,CAAM,OAAA,MAAM,IAAI;AAAA,MAAA;AArBvD,YAAM,QAAQ;AACV,UAAA,SAAS,QAAQ,MAAM,YAAY;AAAM,eAAO;AAE7C,aAAA,qBAAqB,MAAM,QAAQ;AAAA,IAoB5C;AAAA;AAGE,aAAO;;AAEb;AAEO,qBACL,YACA,MACU;AACV,MAAI,QAAQ;AAAM,WAAO;AAEzB,UAAQ,WAAW;AAAA,SACZ,MAAM,OAAO;AAChB,YAAM,QAAQ;AACd,aAAO,SAAS,OAAO,KAAK,CAAC,KAAK;AAAA,IACpC;AAAA;AAGE,aAAO;;AAEb;AAEO,oBACL,YACA,MACU;;AACV,MAAI,QAAQ;AAAM,WAAO;AAEzB,UAAQ,WAAW;AAAA,SACZ,MAAM,MAAM;AACf,YAAM,QAAQ;AACd,UAAI,SAAS;AAAM,eAAO;AAE1B,cAAQ,MAAM;AAAA,aACP;AACI,iBAAA,MAAM,QAAQ,UAAU,OAAO,CAAK,IAAA,CAAC,MAAM,QAAQ,MAAM;AAAA;AAGhE,iBAAO;;IAEb;AAAA,SAEK,MAAM,iBAAiB;AAC1B,YAAM,QAAQ;AACd,UAAI,SAAS;AAAM,eAAO;AAGxB,aAAA,qCAAO,QAAQ,CAAQ,SAAA;;AACrB,gBAAQ,KAAK;AAAA,eACN,UAAU;AACT,gBAAA,KAAK,QAAQ,QAAQ;AAAM,qBAAO;AAE9B,oBAAA,KAAK,QAAQ,KAAK;AAAA,mBACnB;AACH,uBAAO,KAAK,QAAQ,KAAK,QAAQ,UAAU,OACvC,KACA,CAAC,KAAK,QAAQ,KAAK,QAAQ,MAAM;AAAA;AAGrC,uBAAO;;UAEb;AAAA,eAEK,YAAY;AACf,mBACE,kBAAK,QAAQ,UAAb,oBAAoB,QAAQ,CAAQ,SAAA;AAC9B,kBAAA,KAAK,QAAQ,QAAQ;AAAM,uBAAO;AAE9B,sBAAA,KAAK,QAAQ,KAAK;AAAA,qBACnB;AACH,yBAAO,KAAK,QAAQ,KAAK,QAAQ,UAAU,OACvC,KACA,CAAC,KAAK,QAAQ,KAAK,QAAQ,MAAM;AAAA;AAGrC,yBAAO;;YAEZ,OAZD,YAYM,CAAA;AAAA,UAEV;AAAA;AAAA,MAEH,OAlCD,YAkCM,CAAA;AAAA,IAEV;AAAA,SAEK,MAAM,UAAU;AAMV,UAAA,iBAAT,SAAwB,MAA0B;;AAChD,gBAAQ,KAAK;AAAA,eACN;AAAA,eACA;AACH,mBAAO,kBAAK,UAAL,oBAAY,QAAQ,oBAApB,YAAuC,CAAA;AAAA,eAE3C;AACH,mBAAO,iBAAiB,IAAI;AAAA;AAG5B,mBAAO;;MAAC,GAIL,mBAAT,SAA0B,QAA8B;;AACtD,gBAAQ,OAAO;AAAA,eACR,QAAQ;AACX,kBAAM,cAAc,oBAAO,UAAP,oBAAc,QAAQ,oBAAtB,YAAyC;AAC7D,kBAAM,cAAc,OAAO,OAAO,mBAAmB,OAAO,IAAiB,IAAI;AAEjF,mBAAO,CAAC,GAAG,aAAa,GAAG,WAAW;AAAA,UACxC;AAAA;AAGE,mBAAO,mBAAO,UAAP,mBAAc,QAAQ,oBAAtB,YAAyC,CAAA;AAAA;AAAA,MAAC,GAI9C,qBAAT,SAA4B,MAA2B;AACrD,gBAAQ,KAAK;AAAA,eACN;AACI,mBAAA,KAAK,QAAQ,UAAU,OAAO,CAAK,IAAA,CAAC,KAAK,QAAQ,MAAM;AAAA;AAG9D,mBAAO;;MAAC;AAvCd,YAAM,QAAQ;AACV,UAAA,SAAS,QAAQ,MAAM,YAAY;AAAM,eAAO;AAE7C,aAAA,eAAe,MAAM,QAAQ;AAAA,IAuCtC;AAAA;AAGE,aAAO;;AAEb;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+ function isNonNullable(value) {
3
+ return value != null;
4
+ }
5
+ exports.isNonNullable = isNonNullable;
6
+ //# sourceMappingURL=isNonNullable.cjs.js.map
@@ -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,5 @@
1
+ function isNonNullable(value) {
2
+ return value != null;
3
+ }
4
+ export { isNonNullable as i };
5
+ //# sourceMappingURL=isNonNullable.es.js.map
@@ -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 next = require("./index.cjs.js");
34
- var introspection = require("./introspection.cjs.js");
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(introspection.isNonNullable)) != null ? _a : [];
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(next.useTypography((_a = value == null ? void 0 : value.id) != null ? _a : null));
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 = next.useSwatches(swatchIds).filter(introspection.isNonNullable);
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 = next.findDeviceOverride(enhancedSource, deviceId)) == null ? void 0 : _a2.value;
121
- const deviceOverride = (_b2 = next.findDeviceOverride(enhancedOverride, deviceId)) == null ? void 0 : _b2.value;
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(introspection.isNonNullable);
139
+ }).filter(isNonNullable.isNonNullable);
140
140
  }
141
141
  function useTypographyClassName(value) {
142
- return next.useStyle(next.responsiveStyle([value], ([value2]) => {
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 = next.colorToString(value2.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
- }, next.shallowMergeFallbacks));
165
+ }, responsiveStyle.shallowMergeFallbacks));
166
166
  }
167
167
  function Leaf(_a) {
168
168
  var _b = _a, {