UNPKG

pomljs

Version:

Prompt Orchestration Markup Language

1 lines 14 kB
{"version":3,"file":"utils.cjs","sources":["../../.build/components/utils.js"],"sourcesContent":["import * as React from 'react';\nimport { component, ReadError, trimChildrenWhiteSpace } from \"../base\";\nimport { Text, Paragraph, Header, Bold, computeSyntaxContext, SubContent, Newline, Inline } from \"../essentials\";\n// Helper components for caption text.\n// Try not to use it in syntaxes other than markup.\nconst CaptionText = component('CaptionText')((props) => {\n const { caption, captionTextTransform = 'none', captionStyle = 'header', captionEnding, ...others } = props;\n let captionText = caption;\n switch (captionTextTransform) {\n case 'upper':\n captionText = captionText.toUpperCase();\n break;\n case 'lower':\n captionText = captionText.toLowerCase();\n break;\n case 'capitalize':\n captionText =\n captionText.length >= 1\n ? captionText.charAt(0).toUpperCase() + captionText.slice(1)\n : captionText;\n break;\n case 'none':\n break;\n default:\n throw ReadError.fromProps(`Unsupported caption text transform: ${captionTextTransform}`, others);\n }\n const computedCaptionEnding = captionEnding === undefined\n ? captionStyle === 'bold' || captionStyle === 'plain'\n ? 'colon'\n : 'none'\n : captionEnding;\n if (computedCaptionEnding.includes('colon')) {\n return React.createElement(React.Fragment, null,\n captionText,\n \":\");\n }\n else {\n return React.createElement(React.Fragment, null, captionText);\n }\n});\nexport const Caption = component('Caption', {\n requiredProps: ['caption']\n})((props) => {\n const presentation = computeSyntaxContext(props);\n if (presentation === 'markup') {\n const { caption, captionStyle = 'header', captionEnding, captionTailingSpace, ...others } = props;\n if (captionStyle === 'header') {\n return (React.createElement(Header, { ...others },\n React.createElement(CaptionText, { caption: caption, captionStyle: captionStyle, captionEnding: captionEnding, ...others })));\n }\n else if (captionStyle === 'bold') {\n const result = (React.createElement(Bold, { ...others },\n React.createElement(CaptionText, { caption: caption, captionStyle: captionStyle, captionEnding: captionEnding, ...others })));\n if (captionTailingSpace === undefined || captionTailingSpace) {\n if (captionEnding?.includes('newline')) {\n return (React.createElement(React.Fragment, null,\n result,\n React.createElement(Newline, null)));\n }\n else {\n return React.createElement(React.Fragment, null,\n result,\n \" \");\n }\n }\n else {\n return result;\n }\n }\n else if (captionStyle === 'plain') {\n const result = (React.createElement(Inline, null,\n React.createElement(CaptionText, { caption: caption, captionStyle: captionStyle, captionEnding: captionEnding, ...others })));\n if (captionTailingSpace === undefined || captionTailingSpace) {\n if (captionEnding?.includes('newline')) {\n return (React.createElement(React.Fragment, null,\n result,\n React.createElement(Newline, null)));\n }\n else {\n return React.createElement(React.Fragment, null,\n result,\n \" \");\n }\n }\n else {\n return result;\n }\n }\n else {\n return null;\n }\n }\n else {\n // this should seldom happen\n const { caption, captionSerialized, name, type, ...others } = props;\n if (presentation === 'serialize') {\n return (React.createElement(Text, { name: name, type: type, ...others }, captionSerialized));\n }\n else {\n return React.createElement(Text, null, caption);\n }\n }\n});\n/**\n * CaptionedParagraph (`<cp>` for short) creates a paragraph with a customized caption title.\n *\n * @param caption - The title or label for the paragraph. Required.\n * @param captionSerialized - The serialized version of the caption when using \"serializer\" syntaxes.\n * By default, it's same as `caption`.\n * @param {'header'|'bold'|'plain'|'hidden'} captionStyle - Determines the style of the caption,\n * applicable only for \"markup\" syntaxes. Default is `header`.\n * @param {'upper'|'level'|'capitalize'|'none'} captionTextTransform -\n * Specifies text transformation for the caption, applicable only for \"markup\" syntaxes. Default is `none`.\n * @param {'colon'|'newline'|'colon-newline'|'none'} captionEnding - A caption can ends with a colon, a newline or simply nothing.\n * If not specified, it defaults to `colon` for `bold` or `plain` captionStyle, and `none` otherwise.\n *\n * @see {@link Paragraph} for other props available.\n *\n * @example\n * ```xml\n * <cp caption=\"Constraints\">\n * <list>\n * <item>Do not exceed 1000 tokens.</item>\n * <item>Please use simple words.</item>\n * </list>\n * </cp>\n * ```\n */\nexport const CaptionedParagraph = component('CaptionedParagraph', {\n aliases: ['cp'],\n requiredProps: ['caption']\n})((props) => {\n const presentation = computeSyntaxContext(props);\n if (presentation === 'markup') {\n const { captionStyle = 'header', children, ...others } = props;\n const trimmedChildren = trimChildrenWhiteSpace(children, props);\n const hasContent = React.Children.count(trimmedChildren) > 0;\n if (captionStyle === 'header') {\n return (React.createElement(Paragraph, { ...others },\n React.createElement(Caption, { captionStyle: captionStyle, captionTailingSpace: hasContent, ...others }),\n React.createElement(SubContent, null, trimmedChildren)));\n }\n else if (captionStyle === 'bold' || captionStyle === 'plain') {\n return (React.createElement(Paragraph, { ...others },\n React.createElement(Caption, { captionStyle: captionStyle, captionTailingSpace: hasContent, ...others }),\n trimmedChildren));\n }\n else if (captionStyle === 'hidden') {\n return React.createElement(Paragraph, { ...others }, trimmedChildren);\n }\n else {\n throw ReadError.fromProps(`Unsupported caption style: ${captionStyle}`, props);\n }\n }\n else if (presentation === 'serialize') {\n const { children, captionSerialized, caption, ...others } = props;\n return (React.createElement(Text, { name: captionSerialized || caption, ...others }, children));\n }\n else {\n const { children } = props;\n return React.createElement(Text, null, children);\n }\n});\nexport const parsePythonStyleSlice = (slice, totalLength) => {\n // slices could be like :3, 3:5, 5:, 5:-1\n if (slice === ':') {\n return [0, totalLength];\n }\n else if (slice.endsWith(':')) {\n return [parseInt(slice.slice(0, -1)), totalLength];\n }\n else if (slice.startsWith(':')) {\n return [0, parseInt(slice.slice(1))];\n }\n else if (slice.includes(':')) {\n const [start, end] = slice.split(':').map(Number);\n return [start, end];\n }\n else {\n const index = parseInt(slice);\n return [index, index + 1];\n }\n};\n//# sourceMappingURL=utils.js.map"],"names":["component","ReadError","React","computeSyntaxContext","Header","Bold","Newline","Inline","Text","trimChildrenWhiteSpace","Paragraph","SubContent"],"mappings":"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"}