@makeswift/runtime 0.7.14 → 0.7.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ReadOnlyText.cjs.js +52 -5
- package/dist/ReadOnlyText.cjs.js.map +1 -1
- package/dist/ReadOnlyText.es.js +52 -5
- package/dist/ReadOnlyText.es.js.map +1 -1
- package/dist/controls.es.js +1 -1
- package/dist/index.cjs.js +23 -17
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.es.js +22 -16
- package/dist/index.es.js.map +1 -1
- package/dist/rich-text.cjs.js +76 -49
- package/dist/rich-text.cjs.js.map +1 -1
- package/dist/rich-text.es.js +77 -50
- package/dist/rich-text.es.js.map +1 -1
- package/dist/types/src/components/builtin/Text/ReadOnlyText.d.ts +1 -2
- package/dist/types/src/components/builtin/Text/ReadOnlyText.d.ts.map +1 -1
- package/dist/types/src/controls/control.d.ts +4 -3
- package/dist/types/src/controls/control.d.ts.map +1 -1
- package/dist/types/src/controls/list.d.ts +1 -1
- package/dist/types/src/controls/list.d.ts.map +1 -1
- package/dist/types/src/controls/rich-text/rich-text.d.ts +1 -1
- package/dist/types/src/controls/rich-text/rich-text.d.ts.map +1 -1
- package/dist/types/src/controls/shape.d.ts +1 -1
- package/dist/types/src/controls/shape.d.ts.map +1 -1
- package/dist/types/src/controls/slot.d.ts +1 -1
- package/dist/types/src/controls/slot.d.ts.map +1 -1
- package/dist/types/src/prop-controllers/instances.d.ts +3 -3
- package/dist/types/src/prop-controllers/instances.d.ts.map +1 -1
- package/dist/types/src/runtimes/react/controls/control.d.ts +3 -2
- package/dist/types/src/runtimes/react/controls/control.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/ReadOnlyText.cjs.js
CHANGED
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
3
|
var css = require("@emotion/css");
|
|
4
4
|
var React = require("react");
|
|
5
|
-
var slate = require("slate");
|
|
6
5
|
var richText = require("./rich-text.cjs.js");
|
|
6
|
+
require("slate");
|
|
7
7
|
require("slate-react");
|
|
8
8
|
var next = require("./index.cjs.js");
|
|
9
9
|
var index = require("./index.cjs3.js");
|
|
@@ -44,12 +44,13 @@ const ReadOnlyText = React.forwardRef(function ReadOnlyText2({
|
|
|
44
44
|
width,
|
|
45
45
|
margin
|
|
46
46
|
}, ref) {
|
|
47
|
-
const descendants = text == null ?
|
|
47
|
+
const descendants = text == null ? [] : richText.richTextDTOtoDAO(text);
|
|
48
|
+
const descendantsAsString = getText(descendants);
|
|
48
49
|
return /* @__PURE__ */ jsxRuntime.jsx("div", {
|
|
49
50
|
ref,
|
|
50
51
|
id,
|
|
51
52
|
className: css.cx(width, margin),
|
|
52
|
-
children:
|
|
53
|
+
children: descendantsAsString === "" ? /* @__PURE__ */ jsxRuntime.jsx(Placeholder, {}) : /* @__PURE__ */ jsxRuntime.jsx(Descendants, {
|
|
53
54
|
descendants
|
|
54
55
|
})
|
|
55
56
|
});
|
|
@@ -76,7 +77,7 @@ function TextElement({
|
|
|
76
77
|
const typographyClassName = leaf.useTypographyClassName(enhancedTypography);
|
|
77
78
|
return /* @__PURE__ */ jsxRuntime.jsx("span", {
|
|
78
79
|
className: typographyClassName,
|
|
79
|
-
children: descendant.text
|
|
80
|
+
children: descendant.text === "" ? "\uFEFF" : descendant.text
|
|
80
81
|
});
|
|
81
82
|
}
|
|
82
83
|
function InlineElement({
|
|
@@ -225,7 +226,7 @@ function Descendants({
|
|
|
225
226
|
}) {
|
|
226
227
|
return /* @__PURE__ */ jsxRuntime.jsx(jsxRuntime.Fragment, {
|
|
227
228
|
children: descendants.map((descendant, index2) => {
|
|
228
|
-
if (
|
|
229
|
+
if ("text" in descendant) {
|
|
229
230
|
return /* @__PURE__ */ jsxRuntime.jsx(TextElement, {
|
|
230
231
|
descendant
|
|
231
232
|
}, index2);
|
|
@@ -256,6 +257,52 @@ function Descendants({
|
|
|
256
257
|
})
|
|
257
258
|
});
|
|
258
259
|
}
|
|
260
|
+
function isBlock(descendant) {
|
|
261
|
+
if ("text" in descendant)
|
|
262
|
+
return false;
|
|
263
|
+
switch (descendant.type) {
|
|
264
|
+
case richText.BlockType.Heading1:
|
|
265
|
+
case richText.BlockType.Heading2:
|
|
266
|
+
case richText.BlockType.Heading3:
|
|
267
|
+
case richText.BlockType.BlockQuote:
|
|
268
|
+
case richText.BlockType.Paragraph:
|
|
269
|
+
case richText.BlockType.OrderedList:
|
|
270
|
+
case richText.BlockType.UnorderedList:
|
|
271
|
+
case richText.BlockType.ListItem:
|
|
272
|
+
case richText.BlockType.ListItemChild:
|
|
273
|
+
return true;
|
|
274
|
+
default:
|
|
275
|
+
return false;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
function getTextByDescendant(descendant) {
|
|
279
|
+
var _a, _b, _c;
|
|
280
|
+
if ("text" in descendant) {
|
|
281
|
+
return (_a = descendant.text) != null ? _a : "";
|
|
282
|
+
}
|
|
283
|
+
switch (descendant.type) {
|
|
284
|
+
case richText.InlineType.Link:
|
|
285
|
+
case richText.InlineType.Code:
|
|
286
|
+
case richText.InlineType.SubScript:
|
|
287
|
+
case richText.InlineType.SuperScript:
|
|
288
|
+
return (_b = descendant.children.map((descendant2) => getTextByDescendant(descendant2)).join("")) != null ? _b : "";
|
|
289
|
+
case richText.BlockType.Heading1:
|
|
290
|
+
case richText.BlockType.Heading2:
|
|
291
|
+
case richText.BlockType.Heading3:
|
|
292
|
+
case richText.BlockType.BlockQuote:
|
|
293
|
+
case richText.BlockType.Paragraph:
|
|
294
|
+
case richText.BlockType.OrderedList:
|
|
295
|
+
case richText.BlockType.UnorderedList:
|
|
296
|
+
case richText.BlockType.ListItem:
|
|
297
|
+
case richText.BlockType.ListItemChild:
|
|
298
|
+
return (_c = descendant.children.map((descendant2) => getTextByDescendant(descendant2)).join(descendant.children.every(isBlock) ? "\n" : "")) != null ? _c : "";
|
|
299
|
+
default:
|
|
300
|
+
return "";
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
function getText(descendant) {
|
|
304
|
+
return descendant.map(getTextByDescendant).join("\n");
|
|
305
|
+
}
|
|
259
306
|
exports.BlockElement = BlockElement;
|
|
260
307
|
exports.TextElement = TextElement;
|
|
261
308
|
exports["default"] = ReadOnlyText;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReadOnlyText.cjs.js","sources":["../src/components/builtin/Text/ReadOnlyText.tsx"],"sourcesContent":["import { cx } from '@emotion/css'\nimport { ForwardedRef, forwardRef } from 'react'\nimport { Descendant, Text } from 'slate'\nimport { Block, BlockType, Inline, InlineType, richTextDTOtoDAO } from '../../../controls'\nimport type { ElementIDValue, RichTextValue } from '../../../prop-controllers/descriptors'\nimport { useStyle } from '../../../runtimes/react/use-style'\nimport { Link } from '../../shared/Link'\nimport { responsiveStyle } from '../../utils/responsive-style'\nimport { useTypographyClassName } from './components'\nimport useEnhancedTypography from './components/Leaf/leaf'\n\ntype Props = {\n id?: ElementIDValue\n text?: RichTextValue\n width?: string\n margin?: string\n}\n\nconst ReadOnlyText = forwardRef(function ReadOnlyText(\n { id, text, width, margin }: Props,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const descendants = text == null ? '' : richTextDTOtoDAO(text)\n return (\n <div ref={ref} id={id} className={cx(width, margin)}>\n {descendants === '' ? <Placeholder /> : <Descendants descendants={descendants} />}\n </div>\n )\n})\n\nexport default ReadOnlyText\n\nfunction Placeholder({ text = 'Write some text...' }: { text?: string }) {\n return (\n <span\n className={useStyle({\n display: 'inline-block',\n width: 0,\n maxWidth: '100%',\n whiteSpace: 'nowrap',\n opacity: 0.333,\n verticalAlign: 'text-top',\n })}\n >\n {text}\n </span>\n )\n}\n\nexport interface TextProps {\n descendant: Text\n}\n\nexport function TextElement({ descendant }: TextProps) {\n const enhancedTypography = useEnhancedTypography(descendant.typography)\n const typographyClassName = useTypographyClassName(enhancedTypography)\n\n return <span className={typographyClassName}>{descendant.text}</span>\n}\n\nexport interface InlineProps {\n descendant: Inline\n}\n\nfunction InlineElement({ descendant }: InlineProps) {\n const linkClassName = useStyle({ textDecoration: 'none' })\n\n switch (descendant.type) {\n case InlineType.Code:\n return (\n <code>\n <Descendants descendants={descendant.children} />\n </code>\n )\n\n case InlineType.SuperScript:\n return (\n <sup>\n <Descendants descendants={descendant.children} />\n </sup>\n )\n\n case InlineType.SubScript:\n return (\n <sub>\n <Descendants descendants={descendant.children} />\n </sub>\n )\n\n case InlineType.Link:\n return (\n <Link className={linkClassName} link={descendant.link}>\n <Descendants descendants={descendant.children} />\n </Link>\n )\n }\n}\n\nexport interface BlockProps {\n descendant: Block\n}\n\nexport function BlockElement({ descendant }: BlockProps) {\n const blockStyles = [\n useStyle({ margin: 0 }),\n useStyle(responsiveStyle([descendant.textAlign], ([textAlign = 'left']) => ({ textAlign }))),\n ]\n\n switch (descendant.type) {\n case BlockType.Paragraph:\n return (\n <p className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </p>\n )\n case BlockType.Heading1:\n return (\n <h1 className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </h1>\n )\n case BlockType.Heading2:\n return (\n <h2 className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </h2>\n )\n case BlockType.Heading3:\n return (\n <h3 className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </h3>\n )\n case BlockType.Heading4:\n return (\n <h4 className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </h4>\n )\n case BlockType.Heading5:\n return (\n <h5 className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </h5>\n )\n case BlockType.Heading6:\n return (\n <h6 className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </h6>\n )\n case BlockType.BlockQuote:\n return (\n <blockquote\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 <Descendants descendants={descendant.children} />\n </blockquote>\n )\n case BlockType.OrderedList:\n return (\n <ol className={cx(...blockStyles)} style={{ listStylePosition: 'inside' }}>\n <Descendants descendants={descendant.children} />\n </ol>\n )\n case BlockType.UnorderedList:\n return (\n <ul className={cx(...blockStyles)} style={{ listStylePosition: 'inside' }}>\n <Descendants descendants={descendant.children} />\n </ul>\n )\n case BlockType.ListItem:\n return (\n <li className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </li>\n )\n case BlockType.ListItemChild:\n return (\n <span className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </span>\n )\n }\n}\n\nfunction Descendants({ descendants }: { descendants: Descendant[] }) {\n return (\n <>\n {descendants.map((descendant, index) => {\n if (Text.isText(descendant)) {\n return <TextElement key={index} descendant={descendant} />\n }\n\n switch (descendant.type) {\n case InlineType.Link:\n case InlineType.Code:\n case InlineType.SubScript:\n case InlineType.SuperScript:\n return <InlineElement key={index} descendant={descendant} />\n case BlockType.Heading1:\n case BlockType.Heading2:\n case BlockType.Heading3:\n case BlockType.BlockQuote:\n case BlockType.Paragraph:\n case BlockType.OrderedList:\n case BlockType.UnorderedList:\n case BlockType.ListItem:\n case BlockType.ListItemChild:\n return <BlockElement key={index} descendant={descendant} />\n default:\n return null\n }\n })}\n </>\n )\n}\n"],"names":["ReadOnlyText","forwardRef","id","text","width","margin","ref","descendants","richTextDTOtoDAO","cx","_jsx","useStyle","display","maxWidth","whiteSpace","opacity","verticalAlign","descendant","enhancedTypography","useEnhancedTypography","typography","typographyClassName","useTypographyClassName","linkClassName","textDecoration","type","InlineType","Code","children","SuperScript","SubScript","Link","link","blockStyles","responsiveStyle","textAlign","BlockType","Paragraph","Heading1","Heading2","Heading3","Heading4","Heading5","Heading6","BlockQuote","padding","fontSize","fontWeight","borderLeft","OrderedList","listStylePosition","UnorderedList","ListItem","ListItemChild","_Fragment","map","index","Text","isText"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ReadOnlyText.cjs.js","sources":["../src/components/builtin/Text/ReadOnlyText.tsx"],"sourcesContent":["import { cx } from '@emotion/css'\nimport { ForwardedRef, forwardRef } from 'react'\nimport {\n Block,\n BlockType,\n Inline,\n InlineType,\n richTextDTOtoDAO,\n Text,\n Element,\n} from '../../../controls'\nimport type { ElementIDValue, RichTextValue } from '../../../prop-controllers/descriptors'\nimport { useStyle } from '../../../runtimes/react/use-style'\nimport { Link } from '../../shared/Link'\nimport { responsiveStyle } from '../../utils/responsive-style'\nimport { useTypographyClassName } from './components'\nimport useEnhancedTypography from './components/Leaf/leaf'\n\ntype Props = {\n id?: ElementIDValue\n text?: RichTextValue\n width?: string\n margin?: string\n}\n\nconst ReadOnlyText = forwardRef(function ReadOnlyText(\n { id, text, width, margin }: Props,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const descendants = text == null ? [] : richTextDTOtoDAO(text)\n const descendantsAsString = getText(descendants)\n\n return (\n <div ref={ref} id={id} className={cx(width, margin)}>\n {descendantsAsString === '' ? <Placeholder /> : <Descendants descendants={descendants} />}\n </div>\n )\n})\n\nexport default ReadOnlyText\n\nfunction Placeholder({ text = 'Write some text...' }: { text?: string }) {\n return (\n <span\n className={useStyle({\n display: 'inline-block',\n width: 0,\n maxWidth: '100%',\n whiteSpace: 'nowrap',\n opacity: 0.333,\n verticalAlign: 'text-top',\n })}\n >\n {text}\n </span>\n )\n}\n\nexport interface TextProps {\n descendant: Text\n}\n\nexport function TextElement({ descendant }: TextProps) {\n const enhancedTypography = useEnhancedTypography(descendant.typography)\n const typographyClassName = useTypographyClassName(enhancedTypography)\n\n return (\n <span className={typographyClassName}>\n {descendant.text === '' ? '\\uFEFF' : descendant.text}\n </span>\n )\n}\n\nexport interface InlineProps {\n descendant: Inline\n}\n\nfunction InlineElement({ descendant }: InlineProps) {\n const linkClassName = useStyle({ textDecoration: 'none' })\n\n switch (descendant.type) {\n case InlineType.Code:\n return (\n <code>\n <Descendants descendants={descendant.children} />\n </code>\n )\n\n case InlineType.SuperScript:\n return (\n <sup>\n <Descendants descendants={descendant.children} />\n </sup>\n )\n\n case InlineType.SubScript:\n return (\n <sub>\n <Descendants descendants={descendant.children} />\n </sub>\n )\n\n case InlineType.Link:\n return (\n <Link className={linkClassName} link={descendant.link}>\n <Descendants descendants={descendant.children} />\n </Link>\n )\n }\n}\n\nexport interface BlockProps {\n descendant: Block\n}\n\nexport function BlockElement({ descendant }: BlockProps) {\n const blockStyles = [\n useStyle({ margin: 0 }),\n useStyle(responsiveStyle([descendant.textAlign], ([textAlign = 'left']) => ({ textAlign }))),\n ]\n\n switch (descendant.type) {\n case BlockType.Paragraph:\n return (\n <p className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </p>\n )\n case BlockType.Heading1:\n return (\n <h1 className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </h1>\n )\n case BlockType.Heading2:\n return (\n <h2 className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </h2>\n )\n case BlockType.Heading3:\n return (\n <h3 className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </h3>\n )\n case BlockType.Heading4:\n return (\n <h4 className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </h4>\n )\n case BlockType.Heading5:\n return (\n <h5 className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </h5>\n )\n case BlockType.Heading6:\n return (\n <h6 className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </h6>\n )\n case BlockType.BlockQuote:\n return (\n <blockquote\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 <Descendants descendants={descendant.children} />\n </blockquote>\n )\n case BlockType.OrderedList:\n return (\n <ol className={cx(...blockStyles)} style={{ listStylePosition: 'inside' }}>\n <Descendants descendants={descendant.children} />\n </ol>\n )\n case BlockType.UnorderedList:\n return (\n <ul className={cx(...blockStyles)} style={{ listStylePosition: 'inside' }}>\n <Descendants descendants={descendant.children} />\n </ul>\n )\n case BlockType.ListItem:\n return (\n <li className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </li>\n )\n case BlockType.ListItemChild:\n return (\n <span className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </span>\n )\n }\n}\n\nfunction Descendants({ descendants }: { descendants: (Element | Text)[] }) {\n return (\n <>\n {descendants.map((descendant, index) => {\n if ('text' in descendant) {\n return <TextElement key={index} descendant={descendant} />\n }\n\n switch (descendant.type) {\n case InlineType.Link:\n case InlineType.Code:\n case InlineType.SubScript:\n case InlineType.SuperScript:\n return <InlineElement key={index} descendant={descendant} />\n case BlockType.Heading1:\n case BlockType.Heading2:\n case BlockType.Heading3:\n case BlockType.BlockQuote:\n case BlockType.Paragraph:\n case BlockType.OrderedList:\n case BlockType.UnorderedList:\n case BlockType.ListItem:\n case BlockType.ListItemChild:\n return <BlockElement key={index} descendant={descendant} />\n default:\n return null\n }\n })}\n </>\n )\n}\n\nfunction isBlock(descendant: Element | Text): descendant is Block {\n if ('text' in descendant) return false\n\n switch (descendant.type) {\n case BlockType.Heading1:\n case BlockType.Heading2:\n case BlockType.Heading3:\n case BlockType.BlockQuote:\n case BlockType.Paragraph:\n case BlockType.OrderedList:\n case BlockType.UnorderedList:\n case BlockType.ListItem:\n case BlockType.ListItemChild:\n return true\n\n default:\n return false\n }\n}\n\n/**\n * I am using `Element | Text` here to ensure that nothing from Slate \n * is imported so that the RichText maintains it's slim bundle size \n */\nfunction getTextByDescendant(descendant: Element | Text): string {\n if ('text' in descendant) {\n return descendant.text ?? ''\n }\n\n switch (descendant.type) {\n case InlineType.Link:\n case InlineType.Code:\n case InlineType.SubScript:\n case InlineType.SuperScript:\n return descendant.children.map(descendant => getTextByDescendant(descendant)).join('') ?? ''\n case BlockType.Heading1:\n case BlockType.Heading2:\n case BlockType.Heading3:\n case BlockType.BlockQuote:\n case BlockType.Paragraph:\n case BlockType.OrderedList:\n case BlockType.UnorderedList:\n case BlockType.ListItem:\n case BlockType.ListItemChild:\n return (\n descendant.children\n .map(descendant => getTextByDescendant(descendant))\n .join(descendant.children.every(isBlock) ? '\\n' : '') ?? ''\n )\n default:\n return ''\n }\n}\n\nfunction getText(descendant: (Element | Text)[]): string {\n return descendant.map(getTextByDescendant).join('\\n')\n}\n"],"names":["ReadOnlyText","forwardRef","id","text","width","margin","ref","descendants","richTextDTOtoDAO","descendantsAsString","getText","cx","_jsx","useStyle","display","maxWidth","whiteSpace","opacity","verticalAlign","descendant","enhancedTypography","useEnhancedTypography","typography","typographyClassName","useTypographyClassName","linkClassName","textDecoration","type","InlineType","Code","children","SuperScript","SubScript","Link","link","blockStyles","responsiveStyle","textAlign","BlockType","Paragraph","Heading1","Heading2","Heading3","Heading4","Heading5","Heading6","BlockQuote","padding","fontSize","fontWeight","borderLeft","OrderedList","listStylePosition","UnorderedList","ListItem","ListItemChild","_Fragment","map","index","getTextByDescendant","join","every","isBlock"],"mappings":"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"}
|
package/dist/ReadOnlyText.es.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { cx } from "@emotion/css";
|
|
2
2
|
import { forwardRef } from "react";
|
|
3
|
-
import { Text } from "slate";
|
|
4
3
|
import { ar as richTextDTOtoDAO, au as BlockType, av as InlineType } from "./rich-text.es.js";
|
|
4
|
+
import "slate";
|
|
5
5
|
import "slate-react";
|
|
6
6
|
import { o as useStyle, r as responsiveStyle } from "./index.es.js";
|
|
7
7
|
import { L as Link } from "./index.es3.js";
|
|
@@ -42,12 +42,13 @@ const ReadOnlyText = forwardRef(function ReadOnlyText2({
|
|
|
42
42
|
width,
|
|
43
43
|
margin
|
|
44
44
|
}, ref) {
|
|
45
|
-
const descendants = text == null ?
|
|
45
|
+
const descendants = text == null ? [] : richTextDTOtoDAO(text);
|
|
46
|
+
const descendantsAsString = getText(descendants);
|
|
46
47
|
return /* @__PURE__ */ jsx("div", {
|
|
47
48
|
ref,
|
|
48
49
|
id,
|
|
49
50
|
className: cx(width, margin),
|
|
50
|
-
children:
|
|
51
|
+
children: descendantsAsString === "" ? /* @__PURE__ */ jsx(Placeholder, {}) : /* @__PURE__ */ jsx(Descendants, {
|
|
51
52
|
descendants
|
|
52
53
|
})
|
|
53
54
|
});
|
|
@@ -74,7 +75,7 @@ function TextElement({
|
|
|
74
75
|
const typographyClassName = useTypographyClassName(enhancedTypography);
|
|
75
76
|
return /* @__PURE__ */ jsx("span", {
|
|
76
77
|
className: typographyClassName,
|
|
77
|
-
children: descendant.text
|
|
78
|
+
children: descendant.text === "" ? "\uFEFF" : descendant.text
|
|
78
79
|
});
|
|
79
80
|
}
|
|
80
81
|
function InlineElement({
|
|
@@ -223,7 +224,7 @@ function Descendants({
|
|
|
223
224
|
}) {
|
|
224
225
|
return /* @__PURE__ */ jsx(Fragment, {
|
|
225
226
|
children: descendants.map((descendant, index) => {
|
|
226
|
-
if (
|
|
227
|
+
if ("text" in descendant) {
|
|
227
228
|
return /* @__PURE__ */ jsx(TextElement, {
|
|
228
229
|
descendant
|
|
229
230
|
}, index);
|
|
@@ -254,5 +255,51 @@ function Descendants({
|
|
|
254
255
|
})
|
|
255
256
|
});
|
|
256
257
|
}
|
|
258
|
+
function isBlock(descendant) {
|
|
259
|
+
if ("text" in descendant)
|
|
260
|
+
return false;
|
|
261
|
+
switch (descendant.type) {
|
|
262
|
+
case BlockType.Heading1:
|
|
263
|
+
case BlockType.Heading2:
|
|
264
|
+
case BlockType.Heading3:
|
|
265
|
+
case BlockType.BlockQuote:
|
|
266
|
+
case BlockType.Paragraph:
|
|
267
|
+
case BlockType.OrderedList:
|
|
268
|
+
case BlockType.UnorderedList:
|
|
269
|
+
case BlockType.ListItem:
|
|
270
|
+
case BlockType.ListItemChild:
|
|
271
|
+
return true;
|
|
272
|
+
default:
|
|
273
|
+
return false;
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
function getTextByDescendant(descendant) {
|
|
277
|
+
var _a, _b, _c;
|
|
278
|
+
if ("text" in descendant) {
|
|
279
|
+
return (_a = descendant.text) != null ? _a : "";
|
|
280
|
+
}
|
|
281
|
+
switch (descendant.type) {
|
|
282
|
+
case InlineType.Link:
|
|
283
|
+
case InlineType.Code:
|
|
284
|
+
case InlineType.SubScript:
|
|
285
|
+
case InlineType.SuperScript:
|
|
286
|
+
return (_b = descendant.children.map((descendant2) => getTextByDescendant(descendant2)).join("")) != null ? _b : "";
|
|
287
|
+
case BlockType.Heading1:
|
|
288
|
+
case BlockType.Heading2:
|
|
289
|
+
case BlockType.Heading3:
|
|
290
|
+
case BlockType.BlockQuote:
|
|
291
|
+
case BlockType.Paragraph:
|
|
292
|
+
case BlockType.OrderedList:
|
|
293
|
+
case BlockType.UnorderedList:
|
|
294
|
+
case BlockType.ListItem:
|
|
295
|
+
case BlockType.ListItemChild:
|
|
296
|
+
return (_c = descendant.children.map((descendant2) => getTextByDescendant(descendant2)).join(descendant.children.every(isBlock) ? "\n" : "")) != null ? _c : "";
|
|
297
|
+
default:
|
|
298
|
+
return "";
|
|
299
|
+
}
|
|
300
|
+
}
|
|
301
|
+
function getText(descendant) {
|
|
302
|
+
return descendant.map(getTextByDescendant).join("\n");
|
|
303
|
+
}
|
|
257
304
|
export { BlockElement, TextElement, ReadOnlyText as default };
|
|
258
305
|
//# sourceMappingURL=ReadOnlyText.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReadOnlyText.es.js","sources":["../src/components/builtin/Text/ReadOnlyText.tsx"],"sourcesContent":["import { cx } from '@emotion/css'\nimport { ForwardedRef, forwardRef } from 'react'\nimport { Descendant, Text } from 'slate'\nimport { Block, BlockType, Inline, InlineType, richTextDTOtoDAO } from '../../../controls'\nimport type { ElementIDValue, RichTextValue } from '../../../prop-controllers/descriptors'\nimport { useStyle } from '../../../runtimes/react/use-style'\nimport { Link } from '../../shared/Link'\nimport { responsiveStyle } from '../../utils/responsive-style'\nimport { useTypographyClassName } from './components'\nimport useEnhancedTypography from './components/Leaf/leaf'\n\ntype Props = {\n id?: ElementIDValue\n text?: RichTextValue\n width?: string\n margin?: string\n}\n\nconst ReadOnlyText = forwardRef(function ReadOnlyText(\n { id, text, width, margin }: Props,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const descendants = text == null ? '' : richTextDTOtoDAO(text)\n return (\n <div ref={ref} id={id} className={cx(width, margin)}>\n {descendants === '' ? <Placeholder /> : <Descendants descendants={descendants} />}\n </div>\n )\n})\n\nexport default ReadOnlyText\n\nfunction Placeholder({ text = 'Write some text...' }: { text?: string }) {\n return (\n <span\n className={useStyle({\n display: 'inline-block',\n width: 0,\n maxWidth: '100%',\n whiteSpace: 'nowrap',\n opacity: 0.333,\n verticalAlign: 'text-top',\n })}\n >\n {text}\n </span>\n )\n}\n\nexport interface TextProps {\n descendant: Text\n}\n\nexport function TextElement({ descendant }: TextProps) {\n const enhancedTypography = useEnhancedTypography(descendant.typography)\n const typographyClassName = useTypographyClassName(enhancedTypography)\n\n return <span className={typographyClassName}>{descendant.text}</span>\n}\n\nexport interface InlineProps {\n descendant: Inline\n}\n\nfunction InlineElement({ descendant }: InlineProps) {\n const linkClassName = useStyle({ textDecoration: 'none' })\n\n switch (descendant.type) {\n case InlineType.Code:\n return (\n <code>\n <Descendants descendants={descendant.children} />\n </code>\n )\n\n case InlineType.SuperScript:\n return (\n <sup>\n <Descendants descendants={descendant.children} />\n </sup>\n )\n\n case InlineType.SubScript:\n return (\n <sub>\n <Descendants descendants={descendant.children} />\n </sub>\n )\n\n case InlineType.Link:\n return (\n <Link className={linkClassName} link={descendant.link}>\n <Descendants descendants={descendant.children} />\n </Link>\n )\n }\n}\n\nexport interface BlockProps {\n descendant: Block\n}\n\nexport function BlockElement({ descendant }: BlockProps) {\n const blockStyles = [\n useStyle({ margin: 0 }),\n useStyle(responsiveStyle([descendant.textAlign], ([textAlign = 'left']) => ({ textAlign }))),\n ]\n\n switch (descendant.type) {\n case BlockType.Paragraph:\n return (\n <p className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </p>\n )\n case BlockType.Heading1:\n return (\n <h1 className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </h1>\n )\n case BlockType.Heading2:\n return (\n <h2 className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </h2>\n )\n case BlockType.Heading3:\n return (\n <h3 className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </h3>\n )\n case BlockType.Heading4:\n return (\n <h4 className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </h4>\n )\n case BlockType.Heading5:\n return (\n <h5 className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </h5>\n )\n case BlockType.Heading6:\n return (\n <h6 className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </h6>\n )\n case BlockType.BlockQuote:\n return (\n <blockquote\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 <Descendants descendants={descendant.children} />\n </blockquote>\n )\n case BlockType.OrderedList:\n return (\n <ol className={cx(...blockStyles)} style={{ listStylePosition: 'inside' }}>\n <Descendants descendants={descendant.children} />\n </ol>\n )\n case BlockType.UnorderedList:\n return (\n <ul className={cx(...blockStyles)} style={{ listStylePosition: 'inside' }}>\n <Descendants descendants={descendant.children} />\n </ul>\n )\n case BlockType.ListItem:\n return (\n <li className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </li>\n )\n case BlockType.ListItemChild:\n return (\n <span className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </span>\n )\n }\n}\n\nfunction Descendants({ descendants }: { descendants: Descendant[] }) {\n return (\n <>\n {descendants.map((descendant, index) => {\n if (Text.isText(descendant)) {\n return <TextElement key={index} descendant={descendant} />\n }\n\n switch (descendant.type) {\n case InlineType.Link:\n case InlineType.Code:\n case InlineType.SubScript:\n case InlineType.SuperScript:\n return <InlineElement key={index} descendant={descendant} />\n case BlockType.Heading1:\n case BlockType.Heading2:\n case BlockType.Heading3:\n case BlockType.BlockQuote:\n case BlockType.Paragraph:\n case BlockType.OrderedList:\n case BlockType.UnorderedList:\n case BlockType.ListItem:\n case BlockType.ListItemChild:\n return <BlockElement key={index} descendant={descendant} />\n default:\n return null\n }\n })}\n </>\n )\n}\n"],"names":["ReadOnlyText","forwardRef","id","text","width","margin","ref","descendants","richTextDTOtoDAO","cx","_jsx","useStyle","display","maxWidth","whiteSpace","opacity","verticalAlign","descendant","enhancedTypography","useEnhancedTypography","typography","typographyClassName","useTypographyClassName","linkClassName","textDecoration","type","InlineType","Code","children","SuperScript","SubScript","Link","link","blockStyles","responsiveStyle","textAlign","BlockType","Paragraph","Heading1","Heading2","Heading3","Heading4","Heading5","Heading6","BlockQuote","padding","fontSize","fontWeight","borderLeft","OrderedList","listStylePosition","UnorderedList","ListItem","ListItemChild","_Fragment","map","index","Text","isText"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ReadOnlyText.es.js","sources":["../src/components/builtin/Text/ReadOnlyText.tsx"],"sourcesContent":["import { cx } from '@emotion/css'\nimport { ForwardedRef, forwardRef } from 'react'\nimport {\n Block,\n BlockType,\n Inline,\n InlineType,\n richTextDTOtoDAO,\n Text,\n Element,\n} from '../../../controls'\nimport type { ElementIDValue, RichTextValue } from '../../../prop-controllers/descriptors'\nimport { useStyle } from '../../../runtimes/react/use-style'\nimport { Link } from '../../shared/Link'\nimport { responsiveStyle } from '../../utils/responsive-style'\nimport { useTypographyClassName } from './components'\nimport useEnhancedTypography from './components/Leaf/leaf'\n\ntype Props = {\n id?: ElementIDValue\n text?: RichTextValue\n width?: string\n margin?: string\n}\n\nconst ReadOnlyText = forwardRef(function ReadOnlyText(\n { id, text, width, margin }: Props,\n ref: ForwardedRef<HTMLDivElement>,\n) {\n const descendants = text == null ? [] : richTextDTOtoDAO(text)\n const descendantsAsString = getText(descendants)\n\n return (\n <div ref={ref} id={id} className={cx(width, margin)}>\n {descendantsAsString === '' ? <Placeholder /> : <Descendants descendants={descendants} />}\n </div>\n )\n})\n\nexport default ReadOnlyText\n\nfunction Placeholder({ text = 'Write some text...' }: { text?: string }) {\n return (\n <span\n className={useStyle({\n display: 'inline-block',\n width: 0,\n maxWidth: '100%',\n whiteSpace: 'nowrap',\n opacity: 0.333,\n verticalAlign: 'text-top',\n })}\n >\n {text}\n </span>\n )\n}\n\nexport interface TextProps {\n descendant: Text\n}\n\nexport function TextElement({ descendant }: TextProps) {\n const enhancedTypography = useEnhancedTypography(descendant.typography)\n const typographyClassName = useTypographyClassName(enhancedTypography)\n\n return (\n <span className={typographyClassName}>\n {descendant.text === '' ? '\\uFEFF' : descendant.text}\n </span>\n )\n}\n\nexport interface InlineProps {\n descendant: Inline\n}\n\nfunction InlineElement({ descendant }: InlineProps) {\n const linkClassName = useStyle({ textDecoration: 'none' })\n\n switch (descendant.type) {\n case InlineType.Code:\n return (\n <code>\n <Descendants descendants={descendant.children} />\n </code>\n )\n\n case InlineType.SuperScript:\n return (\n <sup>\n <Descendants descendants={descendant.children} />\n </sup>\n )\n\n case InlineType.SubScript:\n return (\n <sub>\n <Descendants descendants={descendant.children} />\n </sub>\n )\n\n case InlineType.Link:\n return (\n <Link className={linkClassName} link={descendant.link}>\n <Descendants descendants={descendant.children} />\n </Link>\n )\n }\n}\n\nexport interface BlockProps {\n descendant: Block\n}\n\nexport function BlockElement({ descendant }: BlockProps) {\n const blockStyles = [\n useStyle({ margin: 0 }),\n useStyle(responsiveStyle([descendant.textAlign], ([textAlign = 'left']) => ({ textAlign }))),\n ]\n\n switch (descendant.type) {\n case BlockType.Paragraph:\n return (\n <p className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </p>\n )\n case BlockType.Heading1:\n return (\n <h1 className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </h1>\n )\n case BlockType.Heading2:\n return (\n <h2 className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </h2>\n )\n case BlockType.Heading3:\n return (\n <h3 className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </h3>\n )\n case BlockType.Heading4:\n return (\n <h4 className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </h4>\n )\n case BlockType.Heading5:\n return (\n <h5 className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </h5>\n )\n case BlockType.Heading6:\n return (\n <h6 className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </h6>\n )\n case BlockType.BlockQuote:\n return (\n <blockquote\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 <Descendants descendants={descendant.children} />\n </blockquote>\n )\n case BlockType.OrderedList:\n return (\n <ol className={cx(...blockStyles)} style={{ listStylePosition: 'inside' }}>\n <Descendants descendants={descendant.children} />\n </ol>\n )\n case BlockType.UnorderedList:\n return (\n <ul className={cx(...blockStyles)} style={{ listStylePosition: 'inside' }}>\n <Descendants descendants={descendant.children} />\n </ul>\n )\n case BlockType.ListItem:\n return (\n <li className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </li>\n )\n case BlockType.ListItemChild:\n return (\n <span className={cx(...blockStyles)}>\n <Descendants descendants={descendant.children} />\n </span>\n )\n }\n}\n\nfunction Descendants({ descendants }: { descendants: (Element | Text)[] }) {\n return (\n <>\n {descendants.map((descendant, index) => {\n if ('text' in descendant) {\n return <TextElement key={index} descendant={descendant} />\n }\n\n switch (descendant.type) {\n case InlineType.Link:\n case InlineType.Code:\n case InlineType.SubScript:\n case InlineType.SuperScript:\n return <InlineElement key={index} descendant={descendant} />\n case BlockType.Heading1:\n case BlockType.Heading2:\n case BlockType.Heading3:\n case BlockType.BlockQuote:\n case BlockType.Paragraph:\n case BlockType.OrderedList:\n case BlockType.UnorderedList:\n case BlockType.ListItem:\n case BlockType.ListItemChild:\n return <BlockElement key={index} descendant={descendant} />\n default:\n return null\n }\n })}\n </>\n )\n}\n\nfunction isBlock(descendant: Element | Text): descendant is Block {\n if ('text' in descendant) return false\n\n switch (descendant.type) {\n case BlockType.Heading1:\n case BlockType.Heading2:\n case BlockType.Heading3:\n case BlockType.BlockQuote:\n case BlockType.Paragraph:\n case BlockType.OrderedList:\n case BlockType.UnorderedList:\n case BlockType.ListItem:\n case BlockType.ListItemChild:\n return true\n\n default:\n return false\n }\n}\n\n/**\n * I am using `Element | Text` here to ensure that nothing from Slate \n * is imported so that the RichText maintains it's slim bundle size \n */\nfunction getTextByDescendant(descendant: Element | Text): string {\n if ('text' in descendant) {\n return descendant.text ?? ''\n }\n\n switch (descendant.type) {\n case InlineType.Link:\n case InlineType.Code:\n case InlineType.SubScript:\n case InlineType.SuperScript:\n return descendant.children.map(descendant => getTextByDescendant(descendant)).join('') ?? ''\n case BlockType.Heading1:\n case BlockType.Heading2:\n case BlockType.Heading3:\n case BlockType.BlockQuote:\n case BlockType.Paragraph:\n case BlockType.OrderedList:\n case BlockType.UnorderedList:\n case BlockType.ListItem:\n case BlockType.ListItemChild:\n return (\n descendant.children\n .map(descendant => getTextByDescendant(descendant))\n .join(descendant.children.every(isBlock) ? '\\n' : '') ?? ''\n )\n default:\n return ''\n }\n}\n\nfunction getText(descendant: (Element | Text)[]): string {\n return descendant.map(getTextByDescendant).join('\\n')\n}\n"],"names":["ReadOnlyText","forwardRef","id","text","width","margin","ref","descendants","richTextDTOtoDAO","descendantsAsString","getText","cx","_jsx","useStyle","display","maxWidth","whiteSpace","opacity","verticalAlign","descendant","enhancedTypography","useEnhancedTypography","typography","typographyClassName","useTypographyClassName","linkClassName","textDecoration","type","InlineType","Code","children","SuperScript","SubScript","Link","link","blockStyles","responsiveStyle","textAlign","BlockType","Paragraph","Heading1","Heading2","Heading3","Heading4","Heading5","Heading6","BlockQuote","padding","fontSize","fontWeight","borderLeft","OrderedList","listStylePosition","UnorderedList","ListItem","ListItemChild","_Fragment","map","index","getTextByDescendant","join","every","isBlock"],"mappings":"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"}
|
package/dist/controls.es.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { b as Checkbox, C as CheckboxControlType, c as Number, N as NumberControlType, d as Select, S as SelectControlType, e as TextArea, T as TextAreaControlType, f as TextInput, a as TextInputControlType } from "./text-input.es.js";
|
|
2
|
-
export { aw as BlockTextAlignment, au as BlockType, a2 as Color, C as ColorControlType, a4 as Image, I as ImageControlType, O as ImageControlValueFormat, av as InlineType, a6 as Link,
|
|
2
|
+
export { aw as BlockTextAlignment, au as BlockType, a2 as Color, C as ColorControlType, a4 as Image, I as ImageControlType, O as ImageControlValueFormat, av as InlineType, a6 as Link, U as LinkControlType, a8 as List, aa as ListControl, a9 as ListControlMessageType, L as ListControlType, am as ObjectType, an as RichText, ap as RichTextControl, ao as RichTextControlMessageType, Q as RichTextControlType, ac as Shape, ae as ShapeControl, ad as ShapeControlMessageType, S as ShapeControlType, ag as Slot, ai as SlotControl, ah as SlotControlMessageType, b as SlotControlType, ak as Style, K as StyleControlProperty, a1 as StyleControlType, a as copy, a3 as copyColorData, a5 as copyImageData, a7 as copyLinkData, ab as copyListData, af as copyShapeData, aj as copySlotData, al as copyStyleData, at as richTextDAOToDTO, ar as richTextDTOtoDAO, aq as richTextDTOtoSelection, as as toSelectionDTO } from "./rich-text.es.js";
|
|
3
3
|
export { a as Combobox, C as ComboboxControlType } from "./combobox.es.js";
|
|
4
4
|
import "./actions.es.js";
|
|
5
5
|
import "slate";
|
package/dist/index.cjs.js
CHANGED
|
@@ -1002,7 +1002,7 @@ function useCachedSite(siteId) {
|
|
|
1002
1002
|
const site = shim.useSyncExternalStore(client.subscribe, getSnapshot, getSnapshot);
|
|
1003
1003
|
return site;
|
|
1004
1004
|
}
|
|
1005
|
-
const version = "0.7.
|
|
1005
|
+
const version = "0.7.16";
|
|
1006
1006
|
class Makeswift {
|
|
1007
1007
|
constructor(apiKey, { apiOrigin = "https://api.makeswift.com" } = {}) {
|
|
1008
1008
|
__publicField(this, "apiKey");
|
|
@@ -3437,6 +3437,22 @@ function ListControlValue({
|
|
|
3437
3437
|
function useNumber(numberControlData, controlDefinition) {
|
|
3438
3438
|
return numberControlData != null ? numberControlData : controlDefinition.config.defaultValue;
|
|
3439
3439
|
}
|
|
3440
|
+
const Text = forwardNextDynamicRef((patch) => dynamic__default["default"](() => patch(Promise.resolve().then(function() {
|
|
3441
|
+
return require("./index.cjs5.js");
|
|
3442
|
+
}))));
|
|
3443
|
+
function useRichText(data, control) {
|
|
3444
|
+
const textCallbackRef = React.useCallback((handle) => {
|
|
3445
|
+
var _a;
|
|
3446
|
+
if (constants.isPropControllersHandle(handle))
|
|
3447
|
+
(_a = handle == null ? void 0 : handle.setPropControllers) == null ? void 0 : _a.call(handle, control == null ? null : {
|
|
3448
|
+
text: control
|
|
3449
|
+
});
|
|
3450
|
+
}, [control]);
|
|
3451
|
+
return /* @__PURE__ */ jsxRuntime.jsx(Text, {
|
|
3452
|
+
text: data,
|
|
3453
|
+
ref: textCallbackRef
|
|
3454
|
+
});
|
|
3455
|
+
}
|
|
3440
3456
|
function useSelectControlValue(data, definition) {
|
|
3441
3457
|
return data != null ? data : definition == null ? void 0 : definition.config.defaultValue;
|
|
3442
3458
|
}
|
|
@@ -3704,26 +3720,16 @@ function ControlValue({
|
|
|
3704
3720
|
parameters: [data, control],
|
|
3705
3721
|
children: (value) => children(value)
|
|
3706
3722
|
}, definition.type);
|
|
3723
|
+
case richText.RichTextControlType:
|
|
3724
|
+
return /* @__PURE__ */ jsxRuntime.jsx(RenderHook, {
|
|
3725
|
+
hook: useRichText,
|
|
3726
|
+
parameters: [data, control],
|
|
3727
|
+
children: (value) => children(value)
|
|
3728
|
+
}, definition.type);
|
|
3707
3729
|
default:
|
|
3708
3730
|
return children(data);
|
|
3709
3731
|
}
|
|
3710
3732
|
}
|
|
3711
|
-
const Text = forwardNextDynamicRef((patch) => dynamic__default["default"](() => patch(Promise.resolve().then(function() {
|
|
3712
|
-
return require("./index.cjs5.js");
|
|
3713
|
-
}))));
|
|
3714
|
-
function useRichText(data, control) {
|
|
3715
|
-
const textCallbackRef = React.useCallback((handle) => {
|
|
3716
|
-
var _a;
|
|
3717
|
-
if (constants.isPropControllersHandle(handle))
|
|
3718
|
-
(_a = handle == null ? void 0 : handle.setPropControllers) == null ? void 0 : _a.call(handle, control == null ? null : {
|
|
3719
|
-
text: control
|
|
3720
|
-
});
|
|
3721
|
-
}, [control]);
|
|
3722
|
-
return /* @__PURE__ */ jsxRuntime.jsx(Text, {
|
|
3723
|
-
text: data,
|
|
3724
|
-
ref: textCallbackRef
|
|
3725
|
-
});
|
|
3726
|
-
}
|
|
3727
3733
|
function useWidthStyle(value, descriptor) {
|
|
3728
3734
|
return useStyle(responsiveWidth(value, descriptor.options.defaultValue));
|
|
3729
3735
|
}
|