@makeswift/runtime 0.9.2 → 0.9.3

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 (153) hide show
  1. package/dist/Box.cjs.js +0 -2
  2. package/dist/Box.cjs.js.map +1 -1
  3. package/dist/Box.es.js +0 -2
  4. package/dist/Box.es.js.map +1 -1
  5. package/dist/Button.cjs.js +0 -2
  6. package/dist/Button.cjs.js.map +1 -1
  7. package/dist/Button.es.js +0 -2
  8. package/dist/Button.es.js.map +1 -1
  9. package/dist/Carousel.cjs.js +0 -2
  10. package/dist/Carousel.cjs.js.map +1 -1
  11. package/dist/Carousel.es.js +0 -2
  12. package/dist/Carousel.es.js.map +1 -1
  13. package/dist/Countdown.cjs.js +0 -2
  14. package/dist/Countdown.cjs.js.map +1 -1
  15. package/dist/Countdown.es.js +0 -2
  16. package/dist/Countdown.es.js.map +1 -1
  17. package/dist/Divider.cjs.js +0 -2
  18. package/dist/Divider.cjs.js.map +1 -1
  19. package/dist/Divider.es.js +0 -2
  20. package/dist/Divider.es.js.map +1 -1
  21. package/dist/Form.cjs.js +0 -2
  22. package/dist/Form.cjs.js.map +1 -1
  23. package/dist/Form.es.js +0 -2
  24. package/dist/Form.es.js.map +1 -1
  25. package/dist/Image.cjs.js +0 -2
  26. package/dist/Image.cjs.js.map +1 -1
  27. package/dist/Image.es.js +0 -2
  28. package/dist/Image.es.js.map +1 -1
  29. package/dist/LiveProvider.cjs.js +0 -2
  30. package/dist/LiveProvider.cjs.js.map +1 -1
  31. package/dist/LiveProvider.es.js +1 -3
  32. package/dist/LiveProvider.es.js.map +1 -1
  33. package/dist/Navigation.cjs.js +0 -2
  34. package/dist/Navigation.cjs.js.map +1 -1
  35. package/dist/Navigation.es.js +0 -2
  36. package/dist/Navigation.es.js.map +1 -1
  37. package/dist/PreviewProvider.cjs.js +2 -4
  38. package/dist/PreviewProvider.cjs.js.map +1 -1
  39. package/dist/PreviewProvider.es.js +1 -3
  40. package/dist/PreviewProvider.es.js.map +1 -1
  41. package/dist/ReadOnlyText.cjs.js +1 -3
  42. package/dist/ReadOnlyText.cjs.js.map +1 -1
  43. package/dist/ReadOnlyText.es.js +2 -4
  44. package/dist/ReadOnlyText.es.js.map +1 -1
  45. package/dist/ReadOnlyTextV2.cjs.js +1 -3
  46. package/dist/ReadOnlyTextV2.cjs.js.map +1 -1
  47. package/dist/ReadOnlyTextV2.es.js +2 -4
  48. package/dist/ReadOnlyTextV2.es.js.map +1 -1
  49. package/dist/Root.cjs.js +0 -2
  50. package/dist/Root.cjs.js.map +1 -1
  51. package/dist/Root.es.js +0 -2
  52. package/dist/Root.es.js.map +1 -1
  53. package/dist/SocialLinks.cjs.js +0 -2
  54. package/dist/SocialLinks.cjs.js.map +1 -1
  55. package/dist/SocialLinks.es.js +0 -2
  56. package/dist/SocialLinks.es.js.map +1 -1
  57. package/dist/Text.cjs.js +1 -3
  58. package/dist/Text.cjs.js.map +1 -1
  59. package/dist/Text.es.js +1 -3
  60. package/dist/Text.es.js.map +1 -1
  61. package/dist/components.cjs.js +0 -2
  62. package/dist/components.cjs.js.map +1 -1
  63. package/dist/components.es.js +0 -2
  64. package/dist/components.es.js.map +1 -1
  65. package/dist/controls.cjs.js +5 -6
  66. package/dist/controls.cjs.js.map +1 -1
  67. package/dist/controls.es.js +1 -2
  68. package/dist/controls.es.js.map +1 -1
  69. package/dist/index.cjs.js +49 -13
  70. package/dist/index.cjs.js.map +1 -1
  71. package/dist/index.cjs10.js +248 -171
  72. package/dist/index.cjs10.js.map +1 -1
  73. package/dist/index.cjs6.js +23 -700
  74. package/dist/index.cjs6.js.map +1 -1
  75. package/dist/index.cjs7.js +13 -37
  76. package/dist/index.cjs7.js.map +1 -1
  77. package/dist/index.cjs8.js +39 -17
  78. package/dist/index.cjs8.js.map +1 -1
  79. package/dist/index.cjs9.js +268 -15
  80. package/dist/index.cjs9.js.map +1 -1
  81. package/dist/index.es.js +42 -7
  82. package/dist/index.es.js.map +1 -1
  83. package/dist/index.es10.js +249 -172
  84. package/dist/index.es10.js.map +1 -1
  85. package/dist/index.es6.js +23 -695
  86. package/dist/index.es6.js.map +1 -1
  87. package/dist/index.es7.js +14 -33
  88. package/dist/index.es7.js.map +1 -1
  89. package/dist/index.es8.js +37 -17
  90. package/dist/index.es8.js.map +1 -1
  91. package/dist/index.es9.js +263 -14
  92. package/dist/index.es9.js.map +1 -1
  93. package/dist/leaf.es.js +1 -1
  94. package/dist/next.cjs.js +0 -2
  95. package/dist/next.cjs.js.map +1 -1
  96. package/dist/next.es.js +1 -3
  97. package/dist/next.es.js.map +1 -1
  98. package/dist/react-page.cjs.js +0 -1
  99. package/dist/react-page.cjs.js.map +1 -1
  100. package/dist/react-page.es.js +1 -2
  101. package/dist/react-page.es.js.map +1 -1
  102. package/dist/react.cjs.js +0 -2
  103. package/dist/react.cjs.js.map +1 -1
  104. package/dist/react.es.js +0 -2
  105. package/dist/react.es.js.map +1 -1
  106. package/dist/slate.cjs.js +257 -41
  107. package/dist/slate.cjs.js.map +1 -1
  108. package/dist/slate.es.js +249 -38
  109. package/dist/slate.es.js.map +1 -1
  110. package/dist/text-input.cjs.js +22 -0
  111. package/dist/text-input.cjs.js.map +1 -1
  112. package/dist/text-input.es.js +18 -1
  113. package/dist/text-input.es.js.map +1 -1
  114. package/dist/types/src/controls/icon-radio-group.d.ts +5 -2
  115. package/dist/types/src/controls/icon-radio-group.d.ts.map +1 -1
  116. package/dist/types/src/controls/style-v2.d.ts.map +1 -1
  117. package/dist/types/src/slate/InlinePlugin/getValue.d.ts +5 -0
  118. package/dist/types/src/slate/InlinePlugin/getValue.d.ts.map +1 -0
  119. package/dist/types/src/slate/InlinePlugin/index.d.ts +16 -0
  120. package/dist/types/src/slate/InlinePlugin/index.d.ts.map +1 -0
  121. package/dist/types/src/slate/InlinePlugin/onChange.d.ts +4 -0
  122. package/dist/types/src/slate/InlinePlugin/onChange.d.ts.map +1 -0
  123. package/dist/types/src/slate/InlinePlugin/types.d.ts +9 -0
  124. package/dist/types/src/slate/InlinePlugin/types.d.ts.map +1 -0
  125. package/dist/types/src/slate/LinkPlugin/getValue.d.ts +5 -0
  126. package/dist/types/src/slate/LinkPlugin/getValue.d.ts.map +1 -0
  127. package/dist/types/src/slate/LinkPlugin/index.d.ts +15 -0
  128. package/dist/types/src/slate/LinkPlugin/index.d.ts.map +1 -0
  129. package/dist/types/src/slate/LinkPlugin/onChange.d.ts +4 -0
  130. package/dist/types/src/slate/LinkPlugin/onChange.d.ts.map +1 -0
  131. package/dist/types/src/slate/LinkPlugin/types.d.ts +5 -0
  132. package/dist/types/src/slate/LinkPlugin/types.d.ts.map +1 -0
  133. package/dist/types/src/slate/TextAlignPlugin/index.d.ts +2 -0
  134. package/dist/types/src/slate/TextAlignPlugin/index.d.ts.map +1 -1
  135. package/dist/types/src/slate/index.d.ts +2 -0
  136. package/dist/types/src/slate/index.d.ts.map +1 -1
  137. package/dist/types.cjs2.js +753 -0
  138. package/dist/types.cjs2.js.map +1 -0
  139. package/dist/types.es2.js +736 -0
  140. package/dist/types.es2.js.map +1 -0
  141. package/package.json +1 -1
  142. package/dist/deepEqual.cjs.js +0 -40
  143. package/dist/deepEqual.cjs.js.map +0 -1
  144. package/dist/deepEqual.es.js +0 -39
  145. package/dist/deepEqual.es.js.map +0 -1
  146. package/dist/index.cjs11.js +0 -375
  147. package/dist/index.cjs11.js.map +0 -1
  148. package/dist/index.es11.js +0 -368
  149. package/dist/index.es11.js.map +0 -1
  150. package/dist/select.cjs.js +0 -21
  151. package/dist/select.cjs.js.map +0 -1
  152. package/dist/select.es.js +0 -16
  153. package/dist/select.es.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.cjs11.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/useSyncDOMSelection.tsx","../src/components/builtin/Text/EditableText/editable-text.tsx"],"sourcesContent":["import { cx } from '@emotion/css'\nimport { RenderElementProps } from 'slate-react'\nimport { useStyle } from '../../../../../runtimes/react/use-style'\nimport { useResponsiveStyle } from '../../../../utils/responsive-style'\nimport { Block, BlockType } from '../../../../../slate'\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(useResponsiveStyle([element.textAlign], ([textAlign = 'left']) => ({ textAlign }))),\n ]\n\n const quoteStyles = 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 switch (element.type) {\n case BlockType.Text:\n return (\n <span {...attributes} className={cx(...blockStyles)}>\n {children}\n </span>\n )\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 {...attributes} className={cx(...blockStyles, quoteStyles)}>\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 default:\n return null\n }\n}\n","import { cx } from '@emotion/css'\nimport { ComponentPropsWithoutRef } from 'react'\nimport { RenderElementProps } from 'slate-react'\nimport { useStyle } from '../../../../../runtimes/react/use-style'\nimport { Link } from '../../../../shared/Link'\nimport { Inline, InlineType } from '../../../../../slate'\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 { BlockElement } from './block'\nimport { InlineElement } from './inline'\nimport { InlineType, BlockType } from '../../../../../slate'\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'\nimport { useIsInBuilder } from '../../../../runtimes/react'\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 const isInBuilder = useIsInBuilder()\n\n useEffect(() => {\n if (shouldCommit && text && isInBuilder) {\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 { ReactEditor } from 'slate-react'\nimport { useIsomorphicLayoutEffect } from '../../../hooks/useIsomorphicLayoutEffect'\nimport { Editor, Range as SlateRange } from 'slate'\n\n/**\n * Clicking outside of the host blurs our `<Editable />`.\n * `<Editable />` only updates the DOM's selection to match slate when it is focused.\n * In the case of a panel being clicked this hook updates the DOM selection to match slate.\n */\nexport function useSyncDOMSelection(editor: Editor, isEnabled: boolean) {\n useIsomorphicLayoutEffect(() => {\n if (!isEnabled || editor.selection == null || ReactEditor.isFocused(editor)) return\n try {\n const root = ReactEditor.findDocumentOrShadowRoot(editor) as Document\n const domSelection = root.getSelection()\n const newDomRange: Range | null = ReactEditor.toDOMRange(editor, editor.selection)\n\n if (newDomRange) {\n if (SlateRange.isBackward(editor.selection!)) {\n domSelection?.setBaseAndExtent(\n newDomRange.endContainer,\n newDomRange.endOffset,\n newDomRange.startContainer,\n newDomRange.startOffset,\n )\n } else {\n domSelection?.setBaseAndExtent(\n newDomRange.startContainer,\n newDomRange.startOffset,\n newDomRange.endContainer,\n newDomRange.endOffset,\n )\n }\n } else {\n domSelection?.removeAllRanges()\n }\n } catch (e) {\n console.error(e)\n }\n })\n}\n","import {\n FocusEvent,\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 { 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, withTypography, withBuilder } from '../../../../slate'\nimport { pollBoxModel } from '../../../../runtimes/react/poll-box-model'\nimport { useSyncDOMSelection } from './useSyncDOMSelection'\nimport { RichTextDAO, BlockType } from '../../../../slate'\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(withBuilder(withReact(createEditor())))))\n const [isPreservingDOMSElection, setIsPreservingDOMSelection] = useState(false)\n useSyncDOMSelection(editor, isPreservingDOMSElection)\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 setIsPreservingDOMSelection(true)\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 const handleBlur = useCallback((e: FocusEvent) => {\n // When clicking outside of the iframe (`relatedTarget` is null) we want to preserve the DOM selection.\n if (e.relatedTarget == null) return\n // Otherwise we want to deselect on blur and stop preserving selection.\n setIsPreservingDOMSelection(false)\n ReactEditor.deselect(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 onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n onBlur={handleBlur}\n className={cx(width, margin)}\n readOnly={editMode !== BuilderEditMode.CONTENT}\n placeholder=\"Write some text...\"\n />\n </Slate>\n )\n})\n\nexport default EditableText\n"],"names":["element","attributes","children","blockStyles","useStyle","margin","useResponsiveStyle","textAlign","quoteStyles","padding","fontSize","fontWeight","borderLeft","type","BlockType","Text","cx","Paragraph","Heading1","Heading2","Heading3","Heading4","Heading5","Heading6","BlockQuote","OrderedList","listStylePosition","UnorderedList","ListItem","ListItemChild","className","restOfProps","Link","textDecoration","InlineType","Code","SuperScript","SubScript","link","props","COMMIT_DEBOUNCE_DELAY","editor","text","shouldCommit","setShouldCommit","useState","isInBuilder","useIsInBuilder","useEffect","nextValue","richTextDTOtoDAO","nextSelection","richTextDTOtoSelection","deepEqual","selection","onChange","timeoutId","window","setTimeout","clearTimeout","useCallback","isEnabled","useIsomorphicLayoutEffect","ReactEditor","isFocused","root","findDocumentOrShadowRoot","domSelection","getSelection","newDomRange","toDOMRange","SlateRange","isBackward","setBaseAndExtent","endContainer","endOffset","startContainer","startOffset","removeAllRanges","e","console","error","defaultText","EditableText","forwardRef","id","width","ref","withBlock","withTypography","withBuilder","withReact","createEditor","isPreservingDOMSElection","setIsPreservingDOMSelection","useSyncDOMSelection","delaySync","useSyncWithBuilder","editMode","useBuilderEditMode","propControllers","setPropControllers","controller","toDOMNode","pollBoxModel","onBoxModelChange","boxModel","changeBoxModel","useImperativeHandle","getDomNode","getBoxModel","getBox","initialValue","useMemo","setSlateEditor","handleFocus","focus","handleKeyDown","isHotkey","redo","undo","blur","onKeyDown","handleBlur","relatedTarget","deselect","Slate","Editable","Leaf","Element","BuilderEditMode","CONTENT"],"mappings":"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"}
@@ -1,368 +0,0 @@
1
- var __defProp = Object.defineProperty;
2
- var __defProps = Object.defineProperties;
3
- var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
- var __hasOwnProp = Object.prototype.hasOwnProperty;
6
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
- var __spreadValues = (a, b) => {
9
- for (var prop in b || (b = {}))
10
- if (__hasOwnProp.call(b, prop))
11
- __defNormalProp(a, prop, b[prop]);
12
- if (__getOwnPropSymbols)
13
- for (var prop of __getOwnPropSymbols(b)) {
14
- if (__propIsEnum.call(b, prop))
15
- __defNormalProp(a, prop, b[prop]);
16
- }
17
- return a;
18
- };
19
- var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
- var __objRest = (source, exclude) => {
21
- var target = {};
22
- for (var prop in source)
23
- if (__hasOwnProp.call(source, prop) && exclude.indexOf(prop) < 0)
24
- target[prop] = source[prop];
25
- if (source != null && __getOwnPropSymbols)
26
- for (var prop of __getOwnPropSymbols(source)) {
27
- if (exclude.indexOf(prop) < 0 && __propIsEnum.call(source, prop))
28
- target[prop] = source[prop];
29
- }
30
- return target;
31
- };
32
- import { useCallback, useState, useEffect, forwardRef, useImperativeHandle, useMemo } from "react";
33
- import { Range, createEditor } from "slate";
34
- import { ReactEditor, withReact, Slate, Editable } from "slate-react";
35
- import { cx } from "@emotion/css";
36
- import { g as getBox } from "./box-models.es.js";
37
- import { Z as useStyle, bb as BlockType, bc as InlineType, b2 as richTextDTOtoDAO, b1 as richTextDTOtoSelection, bk as BuilderEditMode } from "./react-page.es.js";
38
- import "@emotion/serialize";
39
- import "@emotion/utils";
40
- import { L as Leaf } from "./leaf.es.js";
41
- import { n as useResponsiveStyle, u as useIsInBuilder, O as useBuilderEditMode, Q as pollBoxModel } from "./index.es.js";
42
- import "./state/breakpoints.es.js";
43
- import { w as withBlock, o as onKeyDown } from "./index.es6.js";
44
- import isHotkey from "is-hotkey";
45
- import { jsx } from "react/jsx-runtime";
46
- import { L as Link } from "./index.es3.js";
47
- import { d as deepEqual } from "./deepEqual.es.js";
48
- import { w as withTypography } from "./index.es5.js";
49
- import { w as withBuilder } from "./index.es8.js";
50
- import { u as useIsomorphicLayoutEffect } from "./useIsomorphicLayoutEffect.es.js";
51
- import "css-box-model";
52
- import "./actions.es.js";
53
- import "redux";
54
- import "redux-thunk";
55
- import "use-sync-external-store/shim/with-selector";
56
- import "next/dynamic";
57
- import "./text-input.es.js";
58
- import "./combobox.es.js";
59
- import "./select.es.js";
60
- import "use-sync-external-store/shim";
61
- import "./types.es.js";
62
- import "color";
63
- import "scroll-into-view-if-needed";
64
- import "react-dom";
65
- import "html-react-parser";
66
- import "next/head";
67
- import "zod";
68
- import "@emotion/server/create-instance";
69
- import "next/document";
70
- import "cors";
71
- import "path-to-regexp";
72
- import "cookie";
73
- import "http-proxy";
74
- import "set-cookie-parser";
75
- import "./constants.es.js";
76
- import "uuid";
77
- import "corporate-ipsum";
78
- import "next/link";
79
- function BlockElement({
80
- element,
81
- attributes,
82
- children
83
- }) {
84
- const blockStyles = [useStyle({
85
- margin: 0
86
- }), useStyle(useResponsiveStyle([element.textAlign], ([textAlign = "left"]) => ({
87
- textAlign
88
- })))];
89
- const quoteStyles = useStyle({
90
- padding: "0.5em 10px",
91
- fontSize: "1.25em",
92
- fontWeight: "300",
93
- borderLeft: "5px solid rgba(0, 0, 0, 0.1)"
94
- });
95
- switch (element.type) {
96
- case BlockType.Text:
97
- return /* @__PURE__ */ jsx("span", __spreadProps(__spreadValues({}, attributes), {
98
- className: cx(...blockStyles),
99
- children
100
- }));
101
- case BlockType.Paragraph:
102
- return /* @__PURE__ */ jsx("p", __spreadProps(__spreadValues({}, attributes), {
103
- className: cx(...blockStyles),
104
- children
105
- }));
106
- case BlockType.Heading1:
107
- return /* @__PURE__ */ jsx("h1", __spreadProps(__spreadValues({}, attributes), {
108
- className: cx(...blockStyles),
109
- children
110
- }));
111
- case BlockType.Heading2:
112
- return /* @__PURE__ */ jsx("h2", __spreadProps(__spreadValues({}, attributes), {
113
- className: cx(...blockStyles),
114
- children
115
- }));
116
- case BlockType.Heading3:
117
- return /* @__PURE__ */ jsx("h3", __spreadProps(__spreadValues({}, attributes), {
118
- className: cx(...blockStyles),
119
- children
120
- }));
121
- case BlockType.Heading4:
122
- return /* @__PURE__ */ jsx("h4", __spreadProps(__spreadValues({}, attributes), {
123
- className: cx(...blockStyles),
124
- children
125
- }));
126
- case BlockType.Heading5:
127
- return /* @__PURE__ */ jsx("h5", __spreadProps(__spreadValues({}, attributes), {
128
- className: cx(...blockStyles),
129
- children
130
- }));
131
- case BlockType.Heading6:
132
- return /* @__PURE__ */ jsx("h6", __spreadProps(__spreadValues({}, attributes), {
133
- className: cx(...blockStyles),
134
- children
135
- }));
136
- case BlockType.BlockQuote:
137
- return /* @__PURE__ */ jsx("blockquote", __spreadProps(__spreadValues({}, attributes), {
138
- className: cx(...blockStyles, quoteStyles),
139
- children
140
- }));
141
- case BlockType.OrderedList:
142
- return /* @__PURE__ */ jsx("ol", __spreadProps(__spreadValues({}, attributes), {
143
- className: cx(...blockStyles),
144
- style: {
145
- listStylePosition: "inside"
146
- },
147
- children
148
- }));
149
- case BlockType.UnorderedList:
150
- return /* @__PURE__ */ jsx("ul", __spreadProps(__spreadValues({}, attributes), {
151
- className: cx(...blockStyles),
152
- style: {
153
- listStylePosition: "inside"
154
- },
155
- children
156
- }));
157
- case BlockType.ListItem:
158
- return /* @__PURE__ */ jsx("li", __spreadProps(__spreadValues({}, attributes), {
159
- className: cx(...blockStyles),
160
- children
161
- }));
162
- case BlockType.ListItemChild:
163
- return /* @__PURE__ */ jsx("span", __spreadProps(__spreadValues({}, attributes), {
164
- className: cx(...blockStyles),
165
- children
166
- }));
167
- default:
168
- return null;
169
- }
170
- }
171
- function StyledLink(_a) {
172
- var _b = _a, {
173
- className
174
- } = _b, restOfProps = __objRest(_b, [
175
- "className"
176
- ]);
177
- return /* @__PURE__ */ jsx(Link, __spreadProps(__spreadValues({}, restOfProps), {
178
- className: cx(useStyle({
179
- textDecoration: "none"
180
- }), className)
181
- }));
182
- }
183
- function InlineElement({
184
- element,
185
- attributes,
186
- children
187
- }) {
188
- switch (element.type) {
189
- case InlineType.Code:
190
- return /* @__PURE__ */ jsx("code", __spreadProps(__spreadValues({}, attributes), {
191
- children
192
- }));
193
- case InlineType.SuperScript:
194
- return /* @__PURE__ */ jsx("sup", __spreadProps(__spreadValues({}, attributes), {
195
- children
196
- }));
197
- case InlineType.SubScript:
198
- return /* @__PURE__ */ jsx("sub", __spreadProps(__spreadValues({}, attributes), {
199
- children
200
- }));
201
- case InlineType.Link:
202
- return /* @__PURE__ */ jsx(StyledLink, __spreadProps(__spreadValues({}, attributes), {
203
- link: element.link,
204
- children
205
- }));
206
- }
207
- }
208
- function Element(_c) {
209
- var _d = _c, {
210
- element
211
- } = _d, props = __objRest(_d, [
212
- "element"
213
- ]);
214
- switch (element.type) {
215
- case InlineType.Code:
216
- case InlineType.SuperScript:
217
- case InlineType.SubScript:
218
- case InlineType.Link:
219
- return /* @__PURE__ */ jsx(InlineElement, __spreadValues({
220
- element
221
- }, props));
222
- case BlockType.Paragraph:
223
- case BlockType.Heading1:
224
- case BlockType.Heading2:
225
- case BlockType.Heading3:
226
- case BlockType.BlockQuote:
227
- case BlockType.OrderedList:
228
- case BlockType.UnorderedList:
229
- case BlockType.ListItem:
230
- case BlockType.ListItemChild:
231
- return /* @__PURE__ */ jsx(BlockElement, __spreadValues({
232
- element
233
- }, props));
234
- default:
235
- return /* @__PURE__ */ jsx("span", __spreadProps(__spreadValues({}, props.attributes), {
236
- children: props.children
237
- }));
238
- }
239
- }
240
- const COMMIT_DEBOUNCE_DELAY = 500;
241
- function useSyncWithBuilder(editor, text) {
242
- const [shouldCommit, setShouldCommit] = useState(true);
243
- const isInBuilder = useIsInBuilder();
244
- useEffect(() => {
245
- if (shouldCommit && text && isInBuilder) {
246
- const nextValue = richTextDTOtoDAO(text);
247
- const nextSelection = richTextDTOtoSelection(text);
248
- if (!deepEqual(editor.children, nextValue) || !deepEqual(editor.selection, nextSelection)) {
249
- editor.children = nextValue;
250
- editor.selection = nextSelection;
251
- editor.onChange();
252
- }
253
- }
254
- }, [editor, shouldCommit, text]);
255
- useEffect(() => {
256
- if (shouldCommit)
257
- return;
258
- const timeoutId = window.setTimeout(() => {
259
- setShouldCommit(true);
260
- }, COMMIT_DEBOUNCE_DELAY);
261
- return () => {
262
- window.clearTimeout(timeoutId);
263
- };
264
- }, [shouldCommit]);
265
- return useCallback(() => setShouldCommit(false), []);
266
- }
267
- function useSyncDOMSelection(editor, isEnabled) {
268
- useIsomorphicLayoutEffect(() => {
269
- if (!isEnabled || editor.selection == null || ReactEditor.isFocused(editor))
270
- return;
271
- try {
272
- const root = ReactEditor.findDocumentOrShadowRoot(editor);
273
- const domSelection = root.getSelection();
274
- const newDomRange = ReactEditor.toDOMRange(editor, editor.selection);
275
- if (newDomRange) {
276
- if (Range.isBackward(editor.selection)) {
277
- domSelection == null ? void 0 : domSelection.setBaseAndExtent(newDomRange.endContainer, newDomRange.endOffset, newDomRange.startContainer, newDomRange.startOffset);
278
- } else {
279
- domSelection == null ? void 0 : domSelection.setBaseAndExtent(newDomRange.startContainer, newDomRange.startOffset, newDomRange.endContainer, newDomRange.endOffset);
280
- }
281
- } else {
282
- domSelection == null ? void 0 : domSelection.removeAllRanges();
283
- }
284
- } catch (e) {
285
- console.error(e);
286
- }
287
- });
288
- }
289
- const defaultText = [{
290
- type: BlockType.Paragraph,
291
- children: [{
292
- text: ""
293
- }]
294
- }];
295
- const EditableText = forwardRef(function EditableText2({
296
- id,
297
- text,
298
- width,
299
- margin
300
- }, ref) {
301
- const [editor] = useState(() => withBlock(withTypography(withBuilder(withReact(createEditor())))));
302
- const [isPreservingDOMSElection, setIsPreservingDOMSelection] = useState(false);
303
- useSyncDOMSelection(editor, isPreservingDOMSElection);
304
- const delaySync = useSyncWithBuilder(editor, text);
305
- const editMode = useBuilderEditMode();
306
- const [propControllers, setPropControllers] = useState(null);
307
- const controller = propControllers == null ? void 0 : propControllers.text;
308
- useEffect(() => {
309
- if (controller == null)
310
- return;
311
- const element = ReactEditor.toDOMNode(editor, editor);
312
- return pollBoxModel({
313
- element,
314
- onBoxModelChange: (boxModel) => controller.changeBoxModel(boxModel)
315
- });
316
- }, [editor, controller]);
317
- useImperativeHandle(ref, () => ({
318
- getDomNode() {
319
- return ReactEditor.toDOMNode(editor, editor);
320
- },
321
- getBoxModel() {
322
- return getBox(ReactEditor.toDOMNode(editor, editor));
323
- },
324
- setPropControllers
325
- }), [editor, setPropControllers]);
326
- const initialValue = useMemo(() => text ? richTextDTOtoDAO(text) : defaultText, [text]);
327
- useEffect(() => {
328
- controller == null ? void 0 : controller.setSlateEditor(editor);
329
- }, [controller, editor]);
330
- const handleFocus = useCallback(() => {
331
- controller == null ? void 0 : controller.focus();
332
- setIsPreservingDOMSelection(true);
333
- }, [controller]);
334
- const handleKeyDown = useCallback((e) => {
335
- if (isHotkey("mod+shift+z", e))
336
- return controller == null ? void 0 : controller.redo();
337
- if (isHotkey("mod+z", e))
338
- return controller == null ? void 0 : controller.undo();
339
- if (isHotkey("escape")(e))
340
- return controller == null ? void 0 : controller.blur();
341
- onKeyDown(e, editor);
342
- }, [controller, editor]);
343
- const handleBlur = useCallback((e) => {
344
- if (e.relatedTarget == null)
345
- return;
346
- setIsPreservingDOMSelection(false);
347
- ReactEditor.deselect(editor);
348
- }, []);
349
- return /* @__PURE__ */ jsx(Slate, {
350
- editor,
351
- value: initialValue,
352
- onChange: delaySync,
353
- children: /* @__PURE__ */ jsx(Editable, {
354
- id,
355
- renderLeaf: Leaf,
356
- renderElement: Element,
357
- onFocus: handleFocus,
358
- onKeyDown: handleKeyDown,
359
- onBlur: handleBlur,
360
- className: cx(width, margin),
361
- readOnly: editMode !== BuilderEditMode.CONTENT,
362
- placeholder: "Write some text..."
363
- })
364
- });
365
- });
366
- var EditableText$1 = EditableText;
367
- export { EditableText, EditableText$1 as default };
368
- //# sourceMappingURL=index.es11.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.es11.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/useSyncDOMSelection.tsx","../src/components/builtin/Text/EditableText/editable-text.tsx"],"sourcesContent":["import { cx } from '@emotion/css'\nimport { RenderElementProps } from 'slate-react'\nimport { useStyle } from '../../../../../runtimes/react/use-style'\nimport { useResponsiveStyle } from '../../../../utils/responsive-style'\nimport { Block, BlockType } from '../../../../../slate'\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(useResponsiveStyle([element.textAlign], ([textAlign = 'left']) => ({ textAlign }))),\n ]\n\n const quoteStyles = 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 switch (element.type) {\n case BlockType.Text:\n return (\n <span {...attributes} className={cx(...blockStyles)}>\n {children}\n </span>\n )\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 {...attributes} className={cx(...blockStyles, quoteStyles)}>\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 default:\n return null\n }\n}\n","import { cx } from '@emotion/css'\nimport { ComponentPropsWithoutRef } from 'react'\nimport { RenderElementProps } from 'slate-react'\nimport { useStyle } from '../../../../../runtimes/react/use-style'\nimport { Link } from '../../../../shared/Link'\nimport { Inline, InlineType } from '../../../../../slate'\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 { BlockElement } from './block'\nimport { InlineElement } from './inline'\nimport { InlineType, BlockType } from '../../../../../slate'\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'\nimport { useIsInBuilder } from '../../../../runtimes/react'\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 const isInBuilder = useIsInBuilder()\n\n useEffect(() => {\n if (shouldCommit && text && isInBuilder) {\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 { ReactEditor } from 'slate-react'\nimport { useIsomorphicLayoutEffect } from '../../../hooks/useIsomorphicLayoutEffect'\nimport { Editor, Range as SlateRange } from 'slate'\n\n/**\n * Clicking outside of the host blurs our `<Editable />`.\n * `<Editable />` only updates the DOM's selection to match slate when it is focused.\n * In the case of a panel being clicked this hook updates the DOM selection to match slate.\n */\nexport function useSyncDOMSelection(editor: Editor, isEnabled: boolean) {\n useIsomorphicLayoutEffect(() => {\n if (!isEnabled || editor.selection == null || ReactEditor.isFocused(editor)) return\n try {\n const root = ReactEditor.findDocumentOrShadowRoot(editor) as Document\n const domSelection = root.getSelection()\n const newDomRange: Range | null = ReactEditor.toDOMRange(editor, editor.selection)\n\n if (newDomRange) {\n if (SlateRange.isBackward(editor.selection!)) {\n domSelection?.setBaseAndExtent(\n newDomRange.endContainer,\n newDomRange.endOffset,\n newDomRange.startContainer,\n newDomRange.startOffset,\n )\n } else {\n domSelection?.setBaseAndExtent(\n newDomRange.startContainer,\n newDomRange.startOffset,\n newDomRange.endContainer,\n newDomRange.endOffset,\n )\n }\n } else {\n domSelection?.removeAllRanges()\n }\n } catch (e) {\n console.error(e)\n }\n })\n}\n","import {\n FocusEvent,\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 { 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, withTypography, withBuilder } from '../../../../slate'\nimport { pollBoxModel } from '../../../../runtimes/react/poll-box-model'\nimport { useSyncDOMSelection } from './useSyncDOMSelection'\nimport { RichTextDAO, BlockType } from '../../../../slate'\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(withBuilder(withReact(createEditor())))))\n const [isPreservingDOMSElection, setIsPreservingDOMSelection] = useState(false)\n useSyncDOMSelection(editor, isPreservingDOMSElection)\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 setIsPreservingDOMSelection(true)\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 const handleBlur = useCallback((e: FocusEvent) => {\n // When clicking outside of the iframe (`relatedTarget` is null) we want to preserve the DOM selection.\n if (e.relatedTarget == null) return\n // Otherwise we want to deselect on blur and stop preserving selection.\n setIsPreservingDOMSelection(false)\n ReactEditor.deselect(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 onFocus={handleFocus}\n onKeyDown={handleKeyDown}\n onBlur={handleBlur}\n className={cx(width, margin)}\n readOnly={editMode !== BuilderEditMode.CONTENT}\n placeholder=\"Write some text...\"\n />\n </Slate>\n )\n})\n\nexport default EditableText\n"],"names":["element","attributes","children","blockStyles","useStyle","margin","useResponsiveStyle","textAlign","quoteStyles","padding","fontSize","fontWeight","borderLeft","type","BlockType","Text","cx","Paragraph","Heading1","Heading2","Heading3","Heading4","Heading5","Heading6","BlockQuote","OrderedList","listStylePosition","UnorderedList","ListItem","ListItemChild","className","restOfProps","textDecoration","InlineType","Code","SuperScript","SubScript","Link","link","props","COMMIT_DEBOUNCE_DELAY","editor","text","shouldCommit","setShouldCommit","useState","isInBuilder","useIsInBuilder","useEffect","nextValue","richTextDTOtoDAO","nextSelection","richTextDTOtoSelection","deepEqual","selection","onChange","timeoutId","window","setTimeout","clearTimeout","useCallback","isEnabled","useIsomorphicLayoutEffect","ReactEditor","isFocused","root","findDocumentOrShadowRoot","domSelection","getSelection","newDomRange","toDOMRange","SlateRange","isBackward","setBaseAndExtent","endContainer","endOffset","startContainer","startOffset","removeAllRanges","e","console","error","defaultText","EditableText","forwardRef","id","width","ref","withBlock","withTypography","withBuilder","withReact","createEditor","isPreservingDOMSElection","setIsPreservingDOMSelection","useSyncDOMSelection","delaySync","useSyncWithBuilder","editMode","useBuilderEditMode","propControllers","setPropControllers","controller","toDOMNode","pollBoxModel","onBoxModelChange","boxModel","changeBoxModel","useImperativeHandle","getDomNode","getBoxModel","getBox","initialValue","useMemo","setSlateEditor","handleFocus","focus","handleKeyDown","isHotkey","redo","undo","blur","onKeyDown","handleBlur","relatedTarget","deselect","Leaf","Element","BuilderEditMode","CONTENT"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAU6B,sBAAA;AAAA,EAAEA;AAAAA,EAASC;AAAAA,EAAYC;AAAAA,GAAsC;AAClFC,QAAAA,cAAc,CAClBC,SAAS;AAAA,IAAEC,QAAQ;AAAA,EAAA,CAAX,GACRD,SAASE,mBAAmB,CAACN,QAAQO,SAAT,GAAqB,CAAC,CAACA,YAAY,YAAa;AAAA,IAAEA;AAAAA,EAAAA,EAAnD,CAAnB,CAFU;AAKdC,QAAAA,cAAcJ,SAAS;AAAA,IAC3BK,SAAS;AAAA,IACTC,UAAU;AAAA,IACVC,YAAY;AAAA,IACZC,YAAY;AAAA,EAAA,CAJc;AAOpBZ,UAAAA,QAAQa;AAAAA,SACTC,UAAUC;AACb,0EACYd;QAAY,WAAWe,GAAG,GAAGb,WAAJ;AAAA,QAChCD;AAAAA,MAAAA,EAFL;AAAA,SAKGY,UAAUG;AACb,uEACShB;QAAY,WAAWe,GAAG,GAAGb,WAAJ;AAAA,QAC7BD;AAAAA,MAAAA,EAFL;AAAA,SAKGY,UAAUI;AACb,wEACUjB;QAAY,WAAWe,GAAG,GAAGb,WAAJ;AAAA,QAC9BD;AAAAA,MAAAA,EAFL;AAAA,SAKGY,UAAUK;AACb,wEACUlB;QAAY,WAAWe,GAAG,GAAGb,WAAJ;AAAA,QAC9BD;AAAAA,MAAAA,EAFL;AAAA,SAKGY,UAAUM;AACb,wEACUnB;QAAY,WAAWe,GAAG,GAAGb,WAAJ;AAAA,QAC9BD;AAAAA,MAAAA,EAFL;AAAA,SAKGY,UAAUO;AACb,wEACUpB;QAAY,WAAWe,GAAG,GAAGb,WAAJ;AAAA,QAC9BD;AAAAA,MAAAA,EAFL;AAAA,SAKGY,UAAUQ;AACb,wEACUrB;QAAY,WAAWe,GAAG,GAAGb,WAAJ;AAAA,QAC9BD;AAAAA,MAAAA,EAFL;AAAA,SAKGY,UAAUS;AACb,wEACUtB;QAAY,WAAWe,GAAG,GAAGb,WAAJ;AAAA,QAC9BD;AAAAA,MAAAA,EAFL;AAAA,SAKGY,UAAUU;AACb,gFACkBvB;QAAY,WAAWe,GAAG,GAAGb,aAAaK,WAAjB;AAAA,QACtCN;AAAAA,MAAAA,EAFL;AAAA,SAKGY,UAAUW;AACb,wEACUxB;QAAY,WAAWe,GAAG,GAAGb,WAAJ;AAAA,QAAkB,OAAO;AAAA,UAAEuB,mBAAmB;AAAA,QAA/E;AAAA,QACGxB;AAAAA,MAAAA,EAFL;AAAA,SAKGY,UAAUa;AACb,wEACU1B;QAAY,WAAWe,GAAG,GAAGb,WAAJ;AAAA,QAAkB,OAAO;AAAA,UAAEuB,mBAAmB;AAAA,QAA/E;AAAA,QACGxB;AAAAA,MAAAA,EAFL;AAAA,SAKGY,UAAUc;AACb,wEACU3B;QAAY,WAAWe,GAAG,GAAGb,WAAJ;AAAA,QAC9BD;AAAAA,MAAAA,EAFL;AAAA,SAKGY,UAAUe;AACb,0EACY5B;QAAY,WAAWe,GAAG,GAAGb,WAAJ;AAAA,QAChCD;AAAAA,MAAAA,EAFL;AAAA;AAOO,aAAA;AAAA;AAEZ;ACnGD,oBAAoB,IAAsE;AAAtE,eAAE4B;AAAAA;AAAAA,MAAF,IAAgBC,wBAAhB,IAAgBA;AAAAA,IAAdD;AAAAA;AACb,6BAAC,MAAD,iCAAUC,cAAV;AAAA,IAAuB,WAAWf,GAAGZ,SAAS;AAAA,MAAE4B,gBAAgB;AAAA,IAAnB,CAAA,GAA8BF,SAAvC;AAAA,EAAA,EAA3C;AACD;AAM6B,uBAAA;AAAA,EAAE9B;AAAAA,EAASC;AAAAA,EAAYC;AAAAA,GAAsC;AACjFF,UAAAA,QAAQa;AAAAA,SACToB,WAAWC;AACd,0EAAiBjC;QAAaC;AAAAA,MAAAA,EAA9B;AAAA,SACG+B,WAAWE;AACd,yEAAgBlC;QAAaC;AAAAA,MAAAA,EAA7B;AAAA,SACG+B,WAAWG;AACd,yEAAgBnC;QAAaC;AAAAA,MAAAA,EAA7B;AAAA,SACG+B,WAAWI;AAEZ,iCAAC,YAAD,iCAAgBpC,aAAhB;AAAA,QAA4B,MAAMD,QAAQsC;AAAAA,QACvCpC;AAAAA,MAAAA,EAFL;AAAA;AAML;ACzBuB,iBAAA,IAA2C;AAA3C,eAAEF;AAAAA;AAAAA,MAAF,IAAcuC,kBAAd,IAAcA;AAAAA,IAAZvC;AAAAA;AAChBA,UAAAA,QAAQa;AAAAA,SACToB,WAAWC;AAAAA,SACXD,WAAWE;AAAAA,SACXF,WAAWG;AAAAA,SACXH,WAAWI;AACd,iCAAQ,eAAD;AAAA,QAAe;AAAA,SAAsBE,MAA5C;AAAA,SACGzB,UAAUG;AAAAA,SACVH,UAAUI;AAAAA,SACVJ,UAAUK;AAAAA,SACVL,UAAUM;AAAAA,SACVN,UAAUU;AAAAA,SACVV,UAAUW;AAAAA,SACVX,UAAUa;AAAAA,SACVb,UAAUc;AAAAA,SACVd,UAAUe;AACb,iCAAQ,cAAD;AAAA,QAAc;AAAA,SAAsBU,MAA3C;AAAA;AAEO,iCAAA,QAAA,iCAAUA,MAAMtC,aAAhB;AAAA,QAAA,UAA6BsC,MAAMrC;AAAAA,MAAAA,EAA1C;AAAA;AAEL;AClBD,MAAMsC,wBAAwB;AAMvB,4BAA4BC,QAAgBC,MAAsB;AACjE,QAAA,CAACC,cAAcC,mBAAmBC,SAAS,IAAD;AAC1CC,QAAAA,cAAcC;AAEpBC,YAAU,MAAM;AACVL,QAAAA,gBAAgBD,QAAQI,aAAa;AACjCG,YAAAA,YAAYC,iBAAiBR,IAAD;AAC5BS,YAAAA,gBAAgBC,uBAAuBV,IAAD;AACxC,UAAA,CAACW,UAAUZ,OAAOvC,UAAU+C,SAAlB,KAAgC,CAACI,UAAUZ,OAAOa,WAAWH,aAAnB,GAAmC;AACzFV,eAAOvC,WAAW+C;AAClBR,eAAOa,YAAYH;AACnBV,eAAOc,SAAP;AAAA,MACD;AAAA,IACF;AAAA,EACA,GAAA,CAACd,QAAQE,cAAcD,IAAvB,CAVM;AAYTM,YAAU,MAAM;AACVL,QAAAA;AAAc;AAEZa,UAAAA,YAAYC,OAAOC,WAAW,MAAM;AACxCd,sBAAgB,IAAD;AAAA,OACdJ,qBAFe;AAIlB,WAAO,MAAM;AACXiB,aAAOE,aAAaH,SAApB;AAAA,IAAA;AAAA,EADF,GAGC,CAACb,YAAD,CAVM;AAYFiB,SAAAA,YAAY,MAAMhB,gBAAgB,KAAD,GAAS,CAA/B,CAAA;AACnB;ACjCM,6BAA6BH,QAAgBoB,WAAoB;AACtEC,4BAA0B,MAAM;AAC9B,QAAI,CAACD,aAAapB,OAAOa,aAAa,QAAQS,YAAYC,UAAUvB,MAAtB;AAA+B;AACzE,QAAA;AACIwB,YAAAA,OAAOF,YAAYG,yBAAyBzB,MAArC;AACP0B,YAAAA,eAAeF,KAAKG;AAC1B,YAAMC,cAA4BN,YAAYO,WAAW7B,QAAQA,OAAOa,SAAtC;AAElC,UAAIe,aAAa;AACXE,YAAAA,MAAWC,WAAW/B,OAAOa,SAA7B,GAA0C;AAC9BmB,uDAAAA,iBACZJ,YAAYK,cACZL,YAAYM,WACZN,YAAYO,gBACZP,YAAYQ;AAAAA,QAJd,OAMK;AACSJ,uDAAAA,iBACZJ,YAAYO,gBACZP,YAAYQ,aACZR,YAAYK,cACZL,YAAYM;AAAAA,QAEf;AAAA,MAAA,OACI;AACLR,qDAAcW;AAAAA,MACf;AAAA,aACMC;AACPC,cAAQC,MAAMF,CAAd;AAAA,IACD;AAAA,EAAA,CA5BsB;AA8B1B;ACAD,MAAMG,cAA2B,CAAC;AAAA,EAAErE,MAAMC,UAAUG;AAAAA,EAAWf,UAAU,CAAC;AAAA,IAAEwC,MAAM;AAAA,EAAA,CAAT;AAAvC,CAAD;AAEpByC,MAAAA,eAAeC,WAAW,uBACrC;AAAA,EAAEC;AAAAA,EAAI3C;AAAAA,EAAM4C;AAAAA,EAAOjF;AAAAA,GACnBkF,KACA;AACM,QAAA,CAAC9C,UAAUI,SAAS,MAAM2C,UAAUC,eAAeC,YAAYC,UAAUC,aAAY,CAAb,CAAV,CAAZ,CAAf,CAAhB;AACnB,QAAA,CAACC,0BAA0BC,+BAA+BjD,SAAS,KAAD;AACxEkD,sBAAoBtD,QAAQoD,wBAAT;AACbG,QAAAA,YAAYC,mBAAmBxD,QAAQC,IAAT;AAC9BwD,QAAAA,WAAWC;AAEjB,QAAM,CAACC,iBAAiBC,sBACtBxD,SAAyD,IAAjD;AACV,QAAMyD,aAAaF,mDAAiB1D;AAEpCM,YAAU,MAAM;AACVsD,QAAAA,cAAc;AAAM;AAElBtG,UAAAA,UAAU+D,YAAYwC,UAAU9D,QAAQA,MAA9B;AAEhB,WAAO+D,aAAa;AAAA,MAClBxG;AAAAA,MACAyG,kBAAkBC,CAAAA,aAAYJ,WAAWK,eAAeD,QAA1B;AAAA,IAAA,CAFb;AAAA,EAAA,GAIlB,CAACjE,QAAQ6D,UAAT,CATM;AAWTM,sBACErB,KACA,MAAO;AAAA,IACLsB,aAAa;AACJ9C,aAAAA,YAAYwC,UAAU9D,QAAQA,MAA9B;AAAA,IAFJ;AAAA,IAILqE,cAAc;AACLC,aAAAA,OAAOhD,YAAYwC,UAAU9D,QAAQA,MAA9B,CAAD;AAAA,IALV;AAAA,IAOL4D;AAAAA,EAEF,IAAA,CAAC5D,QAAQ4D,kBAAT,CAXiB;AAcbW,QAAAA,eAAeC,QAAQ,MAAOvE,OAAOQ,iBAAiBR,IAAD,IAASwC,aAAc,CAACxC,IAAD,CAAtD;AAE5BM,YAAU,MAAM;AACdsD,6CAAYY,eAAezE;AAAAA,EAA3B,GACC,CAAC6D,YAAY7D,MAAb,CAFM;AAIH0E,QAAAA,cAAcvD,YAAY,MAAM;AACpC0C,6CAAYc;AACZtB,gCAA4B,IAAD;AAAA,EAAA,GAC1B,CAACQ,UAAD,CAH4B;AAKzBe,QAAAA,gBAAgBzD,YACpB,CAACmB,MAAqB;AAChBuC,QAAAA,SAAS,eAAevC,CAAhB;AAAoB,aAAOuB,yCAAYiB;AAC/CD,QAAAA,SAAS,SAASvC,CAAV;AAAc,aAAOuB,yCAAYkB;AACzCF,QAAAA,SAAS,QAAD,EAAWvC,CAAnB;AAAuB,aAAOuB,yCAAYmB;AAC9CC,cAAU3C,GAAGtC,MAAJ;AAAA,EAAA,GAEX,CAAC6D,YAAY7D,MAAb,CAP+B;AAU3BkF,QAAAA,aAAa/D,YAAY,CAACmB,MAAkB;AAEhD,QAAIA,EAAE6C,iBAAiB;AAAM;AAE7B9B,gCAA4B,KAAD;AAC3B/B,gBAAY8D,SAASpF,MAArB;AAAA,EAL4B,GAM3B,CAN2B,CAAA;AAQ9B,6BACG,OAAD;AAAA,IAAO;AAAA,IAAgB,OAAOuE;AAAAA,IAAc,UAAUhB;AAAAA,IAAtD,8BACG,UAAD;AAAA,MACE;AAAA,MACA,YAAY8B;AAAAA,MACZ,eAAeC;AAAAA,MACf,SAASZ;AAAAA,MACT,WAAWE;AAAAA,MACX,QAAQM;AAAAA,MACR,WAAW3G,GAAGsE,OAAOjF,MAAR;AAAA,MACb,UAAU6F,aAAa8B,gBAAgBC;AAAAA,MACvC,aAAY;AAAA,IAAA,CATd;AAAA,EAAA,CAFJ;AAeD,CAnFqC;AAqFtC,IAAA,iBAAe9C;;"}
@@ -1,21 +0,0 @@
1
- "use strict";
2
- const unstable_IconRadioGroupIcon = {
3
- TextAlignCenter: "TextAlignCenter",
4
- TextAlignJustify: "TextAlignJustify",
5
- TextAlignLeft: "TextAlignLeft",
6
- TextAlignRight: "TextAlignRight"
7
- };
8
- const IconRadioGroupControlType = "makeswift::controls::icon-radio-group";
9
- function unstable_IconRadioGroup(config) {
10
- return { type: IconRadioGroupControlType, config };
11
- }
12
- const SelectControlType = "makeswift::controls::select";
13
- function Select(config) {
14
- return { type: SelectControlType, config };
15
- }
16
- exports.IconRadioGroupControlType = IconRadioGroupControlType;
17
- exports.Select = Select;
18
- exports.SelectControlType = SelectControlType;
19
- exports.unstable_IconRadioGroup = unstable_IconRadioGroup;
20
- exports.unstable_IconRadioGroupIcon = unstable_IconRadioGroupIcon;
21
- //# sourceMappingURL=select.cjs.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"select.cjs.js","sources":["../src/controls/icon-radio-group.ts","../src/controls/select.ts"],"sourcesContent":["export const unstable_IconRadioGroupIcon = {\n TextAlignCenter: 'TextAlignCenter',\n TextAlignJustify: 'TextAlignJustify',\n TextAlignLeft: 'TextAlignLeft',\n TextAlignRight: 'TextAlignRight',\n} as const\n\nexport type IconRadioGroupIcon =\n (typeof unstable_IconRadioGroupIcon)[keyof typeof unstable_IconRadioGroupIcon]\n\nexport const IconRadioGroupControlType = 'makeswift::controls::icon-radio-group'\n\ntype IconRadioGroupOption<T extends string> = {\n value: T\n icon: IconRadioGroupIcon\n label: string\n}\n\ntype IconRadioGroupControlConfig<T extends string = string> = {\n label?: string\n defaultValue?: T\n options: IconRadioGroupOption<T>[]\n}\n\nexport type IconRadioGroupControlDefinition<\n C extends IconRadioGroupControlConfig = IconRadioGroupControlConfig,\n> = {\n type: typeof IconRadioGroupControlType\n config: C\n}\n\nexport type IconRadioGroupControlDefinitionOption<\n T extends IconRadioGroupControlDefinition = IconRadioGroupControlDefinition,\n> = T['config'] extends IconRadioGroupControlConfig<infer U> ? U : never\n\nexport type IconRadioGroupControlData<\n T extends IconRadioGroupControlDefinition = IconRadioGroupControlDefinition,\n> = IconRadioGroupControlDefinitionOption<T>\n\nexport function unstable_IconRadioGroup<T extends string, C extends IconRadioGroupControlConfig<T>>(\n config: C & { options: IconRadioGroupOption<T>[] },\n): IconRadioGroupControlDefinition<C> {\n return { type: IconRadioGroupControlType, config }\n}\n","export const SelectControlType = 'makeswift::controls::select'\n\ntype SelectControlOption<T extends string> = { value: T; label: string }\n\ntype SelectControlConfig<T extends string = string> = {\n label?: string\n labelOrientation?: 'horizontal' | 'vertical'\n options: SelectControlOption<T>[]\n defaultValue?: T\n}\n\nexport type SelectControlDefinition<C extends SelectControlConfig = SelectControlConfig> = {\n type: typeof SelectControlType\n config: C\n}\n\nexport type SelectControlDefinitionOption<T extends SelectControlDefinition> =\n T['config'] extends SelectControlConfig<infer U> ? U : never\n\nexport type SelectControlData<T extends SelectControlDefinition = SelectControlDefinition> =\n SelectControlDefinitionOption<T>\n\nexport function Select<T extends string, C extends SelectControlConfig<T>>(\n config: C & { options: SelectControlOption<T>[] },\n): SelectControlDefinition<C> {\n return { type: SelectControlType, config }\n}\n"],"names":[],"mappings":";AAAO,MAAM,8BAA8B;AAAA,EACzC,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,eAAe;AAAA,EACf,gBAAgB;AAClB;AAKO,MAAM,4BAA4B;AA6BlC,iCACL,QACoC;AAC7B,SAAA,EAAE,MAAM,2BAA2B;AAC5C;AC3CO,MAAM,oBAAoB;AAsB1B,gBACL,QAC4B;AACrB,SAAA,EAAE,MAAM,mBAAmB;AACpC;;;;;;"}
package/dist/select.es.js DELETED
@@ -1,16 +0,0 @@
1
- const unstable_IconRadioGroupIcon = {
2
- TextAlignCenter: "TextAlignCenter",
3
- TextAlignJustify: "TextAlignJustify",
4
- TextAlignLeft: "TextAlignLeft",
5
- TextAlignRight: "TextAlignRight"
6
- };
7
- const IconRadioGroupControlType = "makeswift::controls::icon-radio-group";
8
- function unstable_IconRadioGroup(config) {
9
- return { type: IconRadioGroupControlType, config };
10
- }
11
- const SelectControlType = "makeswift::controls::select";
12
- function Select(config) {
13
- return { type: SelectControlType, config };
14
- }
15
- export { IconRadioGroupControlType as I, SelectControlType as S, unstable_IconRadioGroup as a, Select as b, unstable_IconRadioGroupIcon as u };
16
- //# sourceMappingURL=select.es.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"select.es.js","sources":["../src/controls/icon-radio-group.ts","../src/controls/select.ts"],"sourcesContent":["export const unstable_IconRadioGroupIcon = {\n TextAlignCenter: 'TextAlignCenter',\n TextAlignJustify: 'TextAlignJustify',\n TextAlignLeft: 'TextAlignLeft',\n TextAlignRight: 'TextAlignRight',\n} as const\n\nexport type IconRadioGroupIcon =\n (typeof unstable_IconRadioGroupIcon)[keyof typeof unstable_IconRadioGroupIcon]\n\nexport const IconRadioGroupControlType = 'makeswift::controls::icon-radio-group'\n\ntype IconRadioGroupOption<T extends string> = {\n value: T\n icon: IconRadioGroupIcon\n label: string\n}\n\ntype IconRadioGroupControlConfig<T extends string = string> = {\n label?: string\n defaultValue?: T\n options: IconRadioGroupOption<T>[]\n}\n\nexport type IconRadioGroupControlDefinition<\n C extends IconRadioGroupControlConfig = IconRadioGroupControlConfig,\n> = {\n type: typeof IconRadioGroupControlType\n config: C\n}\n\nexport type IconRadioGroupControlDefinitionOption<\n T extends IconRadioGroupControlDefinition = IconRadioGroupControlDefinition,\n> = T['config'] extends IconRadioGroupControlConfig<infer U> ? U : never\n\nexport type IconRadioGroupControlData<\n T extends IconRadioGroupControlDefinition = IconRadioGroupControlDefinition,\n> = IconRadioGroupControlDefinitionOption<T>\n\nexport function unstable_IconRadioGroup<T extends string, C extends IconRadioGroupControlConfig<T>>(\n config: C & { options: IconRadioGroupOption<T>[] },\n): IconRadioGroupControlDefinition<C> {\n return { type: IconRadioGroupControlType, config }\n}\n","export const SelectControlType = 'makeswift::controls::select'\n\ntype SelectControlOption<T extends string> = { value: T; label: string }\n\ntype SelectControlConfig<T extends string = string> = {\n label?: string\n labelOrientation?: 'horizontal' | 'vertical'\n options: SelectControlOption<T>[]\n defaultValue?: T\n}\n\nexport type SelectControlDefinition<C extends SelectControlConfig = SelectControlConfig> = {\n type: typeof SelectControlType\n config: C\n}\n\nexport type SelectControlDefinitionOption<T extends SelectControlDefinition> =\n T['config'] extends SelectControlConfig<infer U> ? U : never\n\nexport type SelectControlData<T extends SelectControlDefinition = SelectControlDefinition> =\n SelectControlDefinitionOption<T>\n\nexport function Select<T extends string, C extends SelectControlConfig<T>>(\n config: C & { options: SelectControlOption<T>[] },\n): SelectControlDefinition<C> {\n return { type: SelectControlType, config }\n}\n"],"names":[],"mappings":"AAAO,MAAM,8BAA8B;AAAA,EACzC,iBAAiB;AAAA,EACjB,kBAAkB;AAAA,EAClB,eAAe;AAAA,EACf,gBAAgB;AAClB;AAKO,MAAM,4BAA4B;AA6BlC,iCACL,QACoC;AAC7B,SAAA,EAAE,MAAM,2BAA2B;AAC5C;AC3CO,MAAM,oBAAoB;AAsB1B,gBACL,QAC4B;AACrB,SAAA,EAAE,MAAM,mBAAmB;AACpC;;"}