@makeswift/runtime 0.17.1 → 0.17.2-canary.1

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 (186) hide show
  1. package/README.md +13 -0
  2. package/dist/cjs/controls/control.js +10 -13
  3. package/dist/cjs/controls/control.js.map +1 -1
  4. package/dist/cjs/controls/image.js +0 -15
  5. package/dist/cjs/controls/image.js.map +1 -1
  6. package/dist/cjs/controls/index.js +3 -19
  7. package/dist/cjs/controls/index.js.map +1 -1
  8. package/dist/cjs/controls/list.js.map +1 -1
  9. package/dist/cjs/controls/rich-text/dto.js.map +1 -1
  10. package/dist/cjs/controls/rich-text-v2/introspection.js.map +1 -1
  11. package/dist/cjs/controls/shape.js.map +1 -1
  12. package/dist/cjs/controls/slot.js.map +1 -1
  13. package/dist/cjs/controls/style-v2.js.map +1 -1
  14. package/dist/cjs/controls/style.js +2 -2
  15. package/dist/cjs/controls/style.js.map +1 -1
  16. package/dist/cjs/next/api-handler/handlers/manifest.js +1 -1
  17. package/dist/cjs/prop-controllers/descriptors.js.map +1 -1
  18. package/dist/cjs/runtimes/react/controls/checkbox.js +1 -1
  19. package/dist/cjs/runtimes/react/controls/checkbox.js.map +1 -1
  20. package/dist/cjs/runtimes/react/controls/color.js.map +1 -1
  21. package/dist/cjs/runtimes/react/controls/control.js +18 -18
  22. package/dist/cjs/runtimes/react/controls/control.js.map +1 -1
  23. package/dist/cjs/runtimes/react/controls/icon-radio-group.js.map +1 -1
  24. package/dist/cjs/runtimes/react/controls/number.js +1 -1
  25. package/dist/cjs/runtimes/react/controls/number.js.map +1 -1
  26. package/dist/cjs/runtimes/react/controls/style-v2.js.map +1 -1
  27. package/dist/cjs/runtimes/react/controls/text-area.js +1 -1
  28. package/dist/cjs/runtimes/react/controls/text-area.js.map +1 -1
  29. package/dist/cjs/runtimes/react/controls/text-input.js +1 -1
  30. package/dist/cjs/runtimes/react/controls/text-input.js.map +1 -1
  31. package/dist/cjs/runtimes/react/controls.js +16 -16
  32. package/dist/cjs/runtimes/react/controls.js.map +1 -1
  33. package/dist/cjs/slate/InlinePlugin/types.js +4 -4
  34. package/dist/cjs/slate/InlinePlugin/types.js.map +1 -1
  35. package/dist/cjs/slate/LinkPlugin/index.js +2 -2
  36. package/dist/cjs/slate/LinkPlugin/index.js.map +1 -1
  37. package/dist/cjs/slate/LinkPlugin/linkPluginWithoutRenderElement.js +2 -2
  38. package/dist/cjs/slate/LinkPlugin/linkPluginWithoutRenderElement.js.map +1 -1
  39. package/dist/cjs/state/modules/breakpoints.js.map +1 -1
  40. package/dist/esm/controls/control.js +10 -7
  41. package/dist/esm/controls/control.js.map +1 -1
  42. package/dist/esm/controls/image.js +0 -12
  43. package/dist/esm/controls/image.js.map +1 -1
  44. package/dist/esm/controls/index.js +1 -9
  45. package/dist/esm/controls/index.js.map +1 -1
  46. package/dist/esm/controls/list.js.map +1 -1
  47. package/dist/esm/controls/rich-text/dto.js.map +1 -1
  48. package/dist/esm/controls/rich-text-v2/introspection.js.map +1 -1
  49. package/dist/esm/controls/shape.js.map +1 -1
  50. package/dist/esm/controls/slot.js.map +1 -1
  51. package/dist/esm/controls/style-v2.js.map +1 -1
  52. package/dist/esm/controls/style.js +1 -1
  53. package/dist/esm/controls/style.js.map +1 -1
  54. package/dist/esm/next/api-handler/handlers/manifest.js +1 -1
  55. package/dist/esm/prop-controllers/descriptors.js.map +1 -1
  56. package/dist/esm/runtimes/react/controls/checkbox.js +1 -1
  57. package/dist/esm/runtimes/react/controls/checkbox.js.map +1 -1
  58. package/dist/esm/runtimes/react/controls/color.js.map +1 -1
  59. package/dist/esm/runtimes/react/controls/control.js +6 -6
  60. package/dist/esm/runtimes/react/controls/control.js.map +1 -1
  61. package/dist/esm/runtimes/react/controls/icon-radio-group.js.map +1 -1
  62. package/dist/esm/runtimes/react/controls/number.js +1 -1
  63. package/dist/esm/runtimes/react/controls/number.js.map +1 -1
  64. package/dist/esm/runtimes/react/controls/style-v2.js.map +1 -1
  65. package/dist/esm/runtimes/react/controls/text-area.js +1 -1
  66. package/dist/esm/runtimes/react/controls/text-area.js.map +1 -1
  67. package/dist/esm/runtimes/react/controls/text-input.js +1 -1
  68. package/dist/esm/runtimes/react/controls/text-input.js.map +1 -1
  69. package/dist/esm/runtimes/react/controls.js +1 -5
  70. package/dist/esm/runtimes/react/controls.js.map +1 -1
  71. package/dist/esm/slate/InlinePlugin/types.js +1 -1
  72. package/dist/esm/slate/InlinePlugin/types.js.map +1 -1
  73. package/dist/esm/slate/LinkPlugin/index.js +1 -1
  74. package/dist/esm/slate/LinkPlugin/index.js.map +1 -1
  75. package/dist/esm/slate/LinkPlugin/linkPluginWithoutRenderElement.js +1 -1
  76. package/dist/esm/slate/LinkPlugin/linkPluginWithoutRenderElement.js.map +1 -1
  77. package/dist/esm/state/modules/breakpoints.js.map +1 -1
  78. package/dist/types/components/builtin/Button/Button.d.ts +2 -2
  79. package/dist/types/controls/__tests__/fixtures/shape.d.ts +3 -3
  80. package/dist/types/controls/__tests__/fixtures/shape.d.ts.map +1 -1
  81. package/dist/types/controls/control.d.ts +1 -9
  82. package/dist/types/controls/control.d.ts.map +1 -1
  83. package/dist/types/controls/image.d.ts +1 -38
  84. package/dist/types/controls/image.d.ts.map +1 -1
  85. package/dist/types/controls/index.d.ts +1 -9
  86. package/dist/types/controls/index.d.ts.map +1 -1
  87. package/dist/types/controls/list.d.ts +2 -11
  88. package/dist/types/controls/list.d.ts.map +1 -1
  89. package/dist/types/controls/shape.d.ts.map +1 -1
  90. package/dist/types/controls/slot.d.ts +1 -1
  91. package/dist/types/controls/slot.d.ts.map +1 -1
  92. package/dist/types/controls/style-v2.d.ts +1 -1
  93. package/dist/types/controls/style-v2.d.ts.map +1 -1
  94. package/dist/types/controls/style.d.ts +1 -1
  95. package/dist/types/controls/style.d.ts.map +1 -1
  96. package/dist/types/prop-controllers/descriptors.d.ts +2 -3
  97. package/dist/types/prop-controllers/descriptors.d.ts.map +1 -1
  98. package/dist/types/runtimes/react/controls/checkbox.d.ts +1 -1
  99. package/dist/types/runtimes/react/controls/checkbox.d.ts.map +1 -1
  100. package/dist/types/runtimes/react/controls/color.d.ts +1 -1
  101. package/dist/types/runtimes/react/controls/color.d.ts.map +1 -1
  102. package/dist/types/runtimes/react/controls/control.d.ts +2 -2
  103. package/dist/types/runtimes/react/controls/control.d.ts.map +1 -1
  104. package/dist/types/runtimes/react/controls/icon-radio-group.d.ts +1 -1
  105. package/dist/types/runtimes/react/controls/icon-radio-group.d.ts.map +1 -1
  106. package/dist/types/runtimes/react/controls/number.d.ts +1 -1
  107. package/dist/types/runtimes/react/controls/number.d.ts.map +1 -1
  108. package/dist/types/runtimes/react/controls/style-v2.d.ts.map +1 -1
  109. package/dist/types/runtimes/react/controls/text-area.d.ts +1 -1
  110. package/dist/types/runtimes/react/controls/text-area.d.ts.map +1 -1
  111. package/dist/types/runtimes/react/controls/text-input.d.ts +1 -1
  112. package/dist/types/runtimes/react/controls/text-input.d.ts.map +1 -1
  113. package/dist/types/runtimes/react/controls.d.ts.map +1 -1
  114. package/dist/types/slate/InlinePlugin/index.d.ts +2 -2
  115. package/dist/types/slate/InlinePlugin/types.d.ts +1 -1
  116. package/dist/types/slate/InlinePlugin/types.d.ts.map +1 -1
  117. package/dist/types/slate/LinkPlugin/getValue.d.ts +1 -1
  118. package/dist/types/slate/LinkPlugin/getValue.d.ts.map +1 -1
  119. package/dist/types/slate/LinkPlugin/index.d.ts +1 -1
  120. package/dist/types/slate/LinkPlugin/index.d.ts.map +1 -1
  121. package/dist/types/slate/LinkPlugin/linkPluginWithoutRenderElement.d.ts +1 -1
  122. package/dist/types/state/modules/breakpoints.d.ts +1 -1
  123. package/dist/types/state/modules/breakpoints.d.ts.map +1 -1
  124. package/dist/types/state/react-page.test.d.ts +0 -2
  125. package/dist/types/state/react-page.test.d.ts.map +1 -1
  126. package/package.json +2 -1
  127. package/dist/cjs/controls/checkbox.js +0 -41
  128. package/dist/cjs/controls/checkbox.js.map +0 -1
  129. package/dist/cjs/controls/color.js +0 -55
  130. package/dist/cjs/controls/color.js.map +0 -1
  131. package/dist/cjs/controls/combobox.js +0 -34
  132. package/dist/cjs/controls/combobox.js.map +0 -1
  133. package/dist/cjs/controls/control-data-type-key.js +0 -29
  134. package/dist/cjs/controls/control-data-type-key.js.map +0 -1
  135. package/dist/cjs/controls/icon-radio-group.js +0 -45
  136. package/dist/cjs/controls/icon-radio-group.js.map +0 -1
  137. package/dist/cjs/controls/link.js +0 -53
  138. package/dist/cjs/controls/link.js.map +0 -1
  139. package/dist/cjs/controls/number.js +0 -41
  140. package/dist/cjs/controls/number.js.map +0 -1
  141. package/dist/cjs/controls/text-area.js +0 -41
  142. package/dist/cjs/controls/text-area.js.map +0 -1
  143. package/dist/cjs/controls/text-input.js +0 -41
  144. package/dist/cjs/controls/text-input.js.map +0 -1
  145. package/dist/cjs/controls/types.js +0 -17
  146. package/dist/cjs/controls/types.js.map +0 -1
  147. package/dist/esm/controls/checkbox.js +0 -14
  148. package/dist/esm/controls/checkbox.js.map +0 -1
  149. package/dist/esm/controls/color.js +0 -27
  150. package/dist/esm/controls/color.js.map +0 -1
  151. package/dist/esm/controls/combobox.js +0 -9
  152. package/dist/esm/controls/combobox.js.map +0 -1
  153. package/dist/esm/controls/control-data-type-key.js +0 -5
  154. package/dist/esm/controls/control-data-type-key.js.map +0 -1
  155. package/dist/esm/controls/icon-radio-group.js +0 -19
  156. package/dist/esm/controls/icon-radio-group.js.map +0 -1
  157. package/dist/esm/controls/link.js +0 -27
  158. package/dist/esm/controls/link.js.map +0 -1
  159. package/dist/esm/controls/number.js +0 -14
  160. package/dist/esm/controls/number.js.map +0 -1
  161. package/dist/esm/controls/text-area.js +0 -14
  162. package/dist/esm/controls/text-area.js.map +0 -1
  163. package/dist/esm/controls/text-input.js +0 -14
  164. package/dist/esm/controls/text-input.js.map +0 -1
  165. package/dist/esm/controls/types.js +0 -1
  166. package/dist/esm/controls/types.js.map +0 -1
  167. package/dist/types/controls/checkbox.d.ts +0 -21
  168. package/dist/types/controls/checkbox.d.ts.map +0 -1
  169. package/dist/types/controls/color.d.ts +0 -25
  170. package/dist/types/controls/color.d.ts.map +0 -1
  171. package/dist/types/controls/combobox.d.ts +0 -22
  172. package/dist/types/controls/combobox.d.ts.map +0 -1
  173. package/dist/types/controls/control-data-type-key.d.ts +0 -2
  174. package/dist/types/controls/control-data-type-key.d.ts.map +0 -1
  175. package/dist/types/controls/icon-radio-group.d.ts +0 -32
  176. package/dist/types/controls/icon-radio-group.d.ts.map +0 -1
  177. package/dist/types/controls/link.d.ts +0 -52
  178. package/dist/types/controls/link.d.ts.map +0 -1
  179. package/dist/types/controls/number.d.ts +0 -26
  180. package/dist/types/controls/number.d.ts.map +0 -1
  181. package/dist/types/controls/text-area.d.ts +0 -22
  182. package/dist/types/controls/text-area.d.ts.map +0 -1
  183. package/dist/types/controls/text-input.d.ts +0 -22
  184. package/dist/types/controls/text-input.d.ts.map +0 -1
  185. package/dist/types/controls/types.d.ts +0 -14
  186. package/dist/types/controls/types.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/controls/rich-text/dto.ts"],"sourcesContent":["import { Descendant, Text, Selection } from 'slate'\nimport { LinkControlData } from '../link'\nimport {\n BlockJSON,\n InlineJSON,\n NodeJSON,\n SelectionJSON,\n TextJSON,\n RichTextDTO,\n ObjectType,\n} from './dto-types'\nimport { Inline, InlineType, RichTextDAO, BlockType } from '../../slate/types'\n\n// reimplemented from slate source for code splitting\nfunction isText(node: any): node is Text {\n if (typeof node === 'object' && 'text' in node) return true\n\n return false\n}\n\nfunction toTextDAO(node: TextJSON): Text[] {\n const typographyMark = node.marks?.find(mark => mark.type === 'typography')\n\n return [\n {\n text: node.text ?? '',\n typography: typographyMark?.data?.value ?? undefined,\n },\n ]\n}\n\nfunction toInlineDAO(node: InlineJSON): Inline[] {\n switch (node.type) {\n case InlineType.Link:\n return [\n {\n children: node.nodes?.flatMap(toInlineOrTextDAO) ?? [],\n [node.type]: node.data as LinkControlData,\n type: node.type,\n },\n ]\n case InlineType.Code:\n case InlineType.SubScript:\n case InlineType.SuperScript:\n return [\n {\n children: node.nodes?.flatMap(toInlineOrTextDAO) ?? [],\n type: node.type,\n },\n ]\n default:\n return []\n }\n}\n\nfunction toInlineOrTextDAO(node: InlineJSON | TextJSON): Array<Inline | Text> {\n switch (node.object) {\n case ObjectType.Inline:\n return toInlineDAO(node)\n case ObjectType.Text:\n return toTextDAO(node)\n default:\n return []\n }\n}\n\nfunction toNodeDAO(node: NodeJSON): Descendant[] {\n switch (node.object) {\n case ObjectType.Inline:\n case ObjectType.Text:\n return toInlineOrTextDAO(node)\n case ObjectType.Block:\n /**\n * Prior to 0.50.0 of slate `node.nodes` could be `undefined` or empty. In that situation nothing was rendered.\n * With 0.50.0 slate introduced an normalization that requires all blocks to contain a text node.\n */\n return [\n {\n type: node.type,\n textAlign: node?.data && 'textAlign' in node.data ? node?.data.textAlign : undefined,\n children:\n node.nodes == null || (node.nodes && node.nodes.length === 0)\n ? [{ text: '' }]\n : node.nodes.flatMap(toNodeDAO),\n },\n ]\n default:\n return []\n }\n}\n\nexport function richTextDTOtoSelection(data: RichTextDTO): Selection {\n if (\n data.selection?.anchor?.offset != null &&\n data.selection.anchor.path != null &&\n data.selection?.focus?.offset != null &&\n data.selection.focus.path != null\n )\n return {\n anchor: {\n offset: data.selection.anchor.offset,\n path: data.selection.anchor.path,\n },\n focus: {\n offset: data.selection.focus.offset,\n path: data.selection.focus.path,\n },\n }\n\n return null\n}\n\nexport function richTextDTOtoDAO(data: RichTextDTO): RichTextDAO {\n return (\n data.document?.nodes?.flatMap(toNodeDAO) ?? [\n { type: BlockType.Default, children: [{ text: '' }] },\n ]\n )\n}\n\nfunction toInlineOrTextDTO(node: Inline | Text): Array<InlineJSON | TextJSON> {\n if (isText(node)) {\n return [\n {\n text: node.text,\n object: 'text',\n marks: node.typography\n ? [\n {\n data: {\n value: node.typography,\n },\n type: 'typography',\n object: 'mark',\n },\n ]\n : [],\n },\n ]\n }\n switch (node.type) {\n case InlineType.Link:\n return [\n {\n object: ObjectType.Inline,\n nodes: node.children.flatMap(toInlineOrTextDTO),\n type: node.type,\n data: node.link ?? undefined,\n },\n ]\n case InlineType.Code:\n case InlineType.SubScript:\n case InlineType.SuperScript:\n return [\n {\n object: 'inline',\n nodes: node.children.flatMap(toInlineOrTextDTO),\n type: node.type,\n data: {},\n },\n ]\n }\n}\n\nfunction toNodeDTO(node: Descendant): Array<BlockJSON | InlineJSON | TextJSON> {\n if (isText(node)) return toInlineOrTextDTO(node)\n\n switch (node.type) {\n case InlineType.Link:\n case InlineType.Code:\n case InlineType.SubScript:\n case InlineType.SuperScript:\n return toInlineOrTextDTO(node)\n case BlockType.Heading1:\n case BlockType.Heading2:\n case BlockType.Heading3:\n case BlockType.Heading4:\n case BlockType.Heading5:\n case BlockType.Heading6:\n case BlockType.Default:\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 {\n type: node.type,\n data: node.textAlign\n ? {\n textAlign: node.textAlign,\n }\n : {},\n object: 'block',\n nodes: node.children?.flatMap(toNodeDTO) ?? [],\n },\n ]\n default:\n return []\n }\n}\n\nexport function toSelectionDTO(selection: Selection | null): SelectionJSON | undefined {\n if (selection == null) return undefined\n\n return {\n isFocused: false,\n marks: undefined,\n object: 'selection',\n anchor: {\n offset: selection.anchor.offset,\n path: selection.anchor.path,\n object: 'point',\n },\n focus: {\n offset: selection.focus.offset,\n path: selection.focus.path,\n object: 'point',\n },\n }\n}\n\nexport function richTextDAOToDTO(children: Descendant[], selection: Selection): RichTextDTO {\n return {\n document: {\n data: undefined,\n nodes: children.flatMap(toNodeDTO),\n object: 'document',\n },\n object: 'value',\n selection: toSelectionDTO(selection),\n annotations: undefined,\n data: undefined,\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../../src/controls/rich-text/dto.ts"],"sourcesContent":["import { Descendant, Text, Selection } from 'slate'\nimport { LinkControlData } from '@makeswift/controls'\nimport {\n BlockJSON,\n InlineJSON,\n NodeJSON,\n SelectionJSON,\n TextJSON,\n RichTextDTO,\n ObjectType,\n} from './dto-types'\nimport { Inline, InlineType, RichTextDAO, BlockType } from '../../slate/types'\n\n// reimplemented from slate source for code splitting\nfunction isText(node: any): node is Text {\n if (typeof node === 'object' && 'text' in node) return true\n\n return false\n}\n\nfunction toTextDAO(node: TextJSON): Text[] {\n const typographyMark = node.marks?.find(mark => mark.type === 'typography')\n\n return [\n {\n text: node.text ?? '',\n typography: typographyMark?.data?.value ?? undefined,\n },\n ]\n}\n\nfunction toInlineDAO(node: InlineJSON): Inline[] {\n switch (node.type) {\n case InlineType.Link:\n return [\n {\n children: node.nodes?.flatMap(toInlineOrTextDAO) ?? [],\n [node.type]: node.data as LinkControlData,\n type: node.type,\n },\n ]\n case InlineType.Code:\n case InlineType.SubScript:\n case InlineType.SuperScript:\n return [\n {\n children: node.nodes?.flatMap(toInlineOrTextDAO) ?? [],\n type: node.type,\n },\n ]\n default:\n return []\n }\n}\n\nfunction toInlineOrTextDAO(node: InlineJSON | TextJSON): Array<Inline | Text> {\n switch (node.object) {\n case ObjectType.Inline:\n return toInlineDAO(node)\n case ObjectType.Text:\n return toTextDAO(node)\n default:\n return []\n }\n}\n\nfunction toNodeDAO(node: NodeJSON): Descendant[] {\n switch (node.object) {\n case ObjectType.Inline:\n case ObjectType.Text:\n return toInlineOrTextDAO(node)\n case ObjectType.Block:\n /**\n * Prior to 0.50.0 of slate `node.nodes` could be `undefined` or empty. In that situation nothing was rendered.\n * With 0.50.0 slate introduced an normalization that requires all blocks to contain a text node.\n */\n return [\n {\n type: node.type,\n textAlign: node?.data && 'textAlign' in node.data ? node?.data.textAlign : undefined,\n children:\n node.nodes == null || (node.nodes && node.nodes.length === 0)\n ? [{ text: '' }]\n : node.nodes.flatMap(toNodeDAO),\n },\n ]\n default:\n return []\n }\n}\n\nexport function richTextDTOtoSelection(data: RichTextDTO): Selection {\n if (\n data.selection?.anchor?.offset != null &&\n data.selection.anchor.path != null &&\n data.selection?.focus?.offset != null &&\n data.selection.focus.path != null\n )\n return {\n anchor: {\n offset: data.selection.anchor.offset,\n path: data.selection.anchor.path,\n },\n focus: {\n offset: data.selection.focus.offset,\n path: data.selection.focus.path,\n },\n }\n\n return null\n}\n\nexport function richTextDTOtoDAO(data: RichTextDTO): RichTextDAO {\n return (\n data.document?.nodes?.flatMap(toNodeDAO) ?? [\n { type: BlockType.Default, children: [{ text: '' }] },\n ]\n )\n}\n\nfunction toInlineOrTextDTO(node: Inline | Text): Array<InlineJSON | TextJSON> {\n if (isText(node)) {\n return [\n {\n text: node.text,\n object: 'text',\n marks: node.typography\n ? [\n {\n data: {\n value: node.typography,\n },\n type: 'typography',\n object: 'mark',\n },\n ]\n : [],\n },\n ]\n }\n switch (node.type) {\n case InlineType.Link:\n return [\n {\n object: ObjectType.Inline,\n nodes: node.children.flatMap(toInlineOrTextDTO),\n type: node.type,\n data: node.link ?? undefined,\n },\n ]\n case InlineType.Code:\n case InlineType.SubScript:\n case InlineType.SuperScript:\n return [\n {\n object: 'inline',\n nodes: node.children.flatMap(toInlineOrTextDTO),\n type: node.type,\n data: {},\n },\n ]\n }\n}\n\nfunction toNodeDTO(node: Descendant): Array<BlockJSON | InlineJSON | TextJSON> {\n if (isText(node)) return toInlineOrTextDTO(node)\n\n switch (node.type) {\n case InlineType.Link:\n case InlineType.Code:\n case InlineType.SubScript:\n case InlineType.SuperScript:\n return toInlineOrTextDTO(node)\n case BlockType.Heading1:\n case BlockType.Heading2:\n case BlockType.Heading3:\n case BlockType.Heading4:\n case BlockType.Heading5:\n case BlockType.Heading6:\n case BlockType.Default:\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 {\n type: node.type,\n data: node.textAlign\n ? {\n textAlign: node.textAlign,\n }\n : {},\n object: 'block',\n nodes: node.children?.flatMap(toNodeDTO) ?? [],\n },\n ]\n default:\n return []\n }\n}\n\nexport function toSelectionDTO(selection: Selection | null): SelectionJSON | undefined {\n if (selection == null) return undefined\n\n return {\n isFocused: false,\n marks: undefined,\n object: 'selection',\n anchor: {\n offset: selection.anchor.offset,\n path: selection.anchor.path,\n object: 'point',\n },\n focus: {\n offset: selection.focus.offset,\n path: selection.focus.path,\n object: 'point',\n },\n }\n}\n\nexport function richTextDAOToDTO(children: Descendant[], selection: Selection): RichTextDTO {\n return {\n document: {\n data: undefined,\n nodes: children.flatMap(toNodeDTO),\n object: 'document',\n },\n object: 'value',\n selection: toSelectionDTO(selection),\n annotations: undefined,\n data: undefined,\n }\n}\n"],"mappings":"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","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/controls/rich-text-v2/introspection.ts"],"sourcesContent":["import { getPageIds, getSwatchIds, getTypographyIds } from '../../prop-controllers/introspection'\nimport { ControlDefinition } from '../control'\nimport { Data } from '../types'\nimport { RichTextV2ControlData, RichTextV2ControlDefinition } from './rich-text-v2'\nimport { Descendant, Element as SlateElement, Text } from 'slate'\n\nfunction introspectRichTextV2Data<T>(\n definition: RichTextV2ControlDefinition,\n data: RichTextV2ControlData,\n func: (definition: ControlDefinition, data: Data) => T[],\n): T[] {\n const plugins = definition.config.plugins\n\n return data.descendants.flatMap(d => getDescendantTypographyIds(d))\n\n function getDescendantTypographyIds(descendant: Descendant): T[] {\n if (SlateElement.isElement(descendant)) {\n return [\n ...getElementTypographyIds(descendant),\n ...descendant.children.flatMap(d => getDescendantTypographyIds(d)),\n ]\n }\n\n if (Text.isText(descendant)) {\n return getTextTypographyIds(descendant)\n }\n\n return []\n }\n\n function getElementTypographyIds(descendant: SlateElement) {\n return (\n plugins?.flatMap(plugin =>\n plugin.control?.definition && plugin.control.getElementValue\n ? func(plugin.control.definition, plugin.control.getElementValue(descendant))\n : [],\n ) ?? []\n )\n }\n\n function getTextTypographyIds(text: Text) {\n return (\n plugins?.flatMap(plugin => {\n return plugin.control?.definition && plugin.control.getLeafValue\n ? func(plugin.control.definition, plugin.control.getLeafValue(text))\n : []\n }) ?? []\n )\n }\n}\n\nexport function getRichTextV2SwatchIds(\n definition: RichTextV2ControlDefinition,\n data: RichTextV2ControlData,\n) {\n return introspectRichTextV2Data(definition, data, getSwatchIds)\n}\n\nexport function getRichTextV2TypographyIds(\n definition: RichTextV2ControlDefinition,\n data: RichTextV2ControlData,\n) {\n return introspectRichTextV2Data(definition, data, getTypographyIds)\n}\n\nexport function getRichTextV2PageIds(\n definition: RichTextV2ControlDefinition,\n data: RichTextV2ControlData,\n) {\n return introspectRichTextV2Data(definition, data, getPageIds)\n}\n"],"mappings":"AAAA,SAAS,YAAY,cAAc,wBAAwB;AAI3D,SAAqB,WAAW,cAAc,YAAY;AAE1D,SAAS,yBACP,YACA,MACA,MACK;AACL,QAAM,UAAU,WAAW,OAAO;AAElC,SAAO,KAAK,YAAY,QAAQ,OAAK,2BAA2B,CAAC,CAAC;AAElE,WAAS,2BAA2B,YAA6B;AAC/D,QAAI,aAAa,UAAU,UAAU,GAAG;AACtC,aAAO;AAAA,QACL,GAAG,wBAAwB,UAAU;AAAA,QACrC,GAAG,WAAW,SAAS,QAAQ,OAAK,2BAA2B,CAAC,CAAC;AAAA,MACnE;AAAA,IACF;AAEA,QAAI,KAAK,OAAO,UAAU,GAAG;AAC3B,aAAO,qBAAqB,UAAU;AAAA,IACxC;AAEA,WAAO,CAAC;AAAA,EACV;AAEA,WAAS,wBAAwB,YAA0B;AACzD,WACE,SAAS;AAAA,MAAQ,YACf,OAAO,SAAS,cAAc,OAAO,QAAQ,kBACzC,KAAK,OAAO,QAAQ,YAAY,OAAO,QAAQ,gBAAgB,UAAU,CAAC,IAC1E,CAAC;AAAA,IACP,KAAK,CAAC;AAAA,EAEV;AAEA,WAAS,qBAAqB,MAAY;AACxC,WACE,SAAS,QAAQ,YAAU;AACzB,aAAO,OAAO,SAAS,cAAc,OAAO,QAAQ,eAChD,KAAK,OAAO,QAAQ,YAAY,OAAO,QAAQ,aAAa,IAAI,CAAC,IACjE,CAAC;AAAA,IACP,CAAC,KAAK,CAAC;AAAA,EAEX;AACF;AAEO,SAAS,uBACd,YACA,MACA;AACA,SAAO,yBAAyB,YAAY,MAAM,YAAY;AAChE;AAEO,SAAS,2BACd,YACA,MACA;AACA,SAAO,yBAAyB,YAAY,MAAM,gBAAgB;AACpE;AAEO,SAAS,qBACd,YACA,MACA;AACA,SAAO,yBAAyB,YAAY,MAAM,UAAU;AAC9D;","names":[]}
1
+ {"version":3,"sources":["../../../../src/controls/rich-text-v2/introspection.ts"],"sourcesContent":["import { Data } from '@makeswift/controls'\nimport { getPageIds, getSwatchIds, getTypographyIds } from '../../prop-controllers/introspection'\nimport { ControlDefinition } from '../control'\nimport { RichTextV2ControlData, RichTextV2ControlDefinition } from './rich-text-v2'\nimport { Descendant, Element as SlateElement, Text } from 'slate'\n\nfunction introspectRichTextV2Data<T>(\n definition: RichTextV2ControlDefinition,\n data: RichTextV2ControlData,\n func: (definition: ControlDefinition, data: Data) => T[],\n): T[] {\n const plugins = definition.config.plugins\n\n return data.descendants.flatMap(d => getDescendantTypographyIds(d))\n\n function getDescendantTypographyIds(descendant: Descendant): T[] {\n if (SlateElement.isElement(descendant)) {\n return [\n ...getElementTypographyIds(descendant),\n ...descendant.children.flatMap(d => getDescendantTypographyIds(d)),\n ]\n }\n\n if (Text.isText(descendant)) {\n return getTextTypographyIds(descendant)\n }\n\n return []\n }\n\n function getElementTypographyIds(descendant: SlateElement) {\n return (\n plugins?.flatMap(plugin =>\n plugin.control?.definition && plugin.control.getElementValue\n ? func(plugin.control.definition, plugin.control.getElementValue(descendant))\n : [],\n ) ?? []\n )\n }\n\n function getTextTypographyIds(text: Text) {\n return (\n plugins?.flatMap(plugin => {\n return plugin.control?.definition && plugin.control.getLeafValue\n ? func(plugin.control.definition, plugin.control.getLeafValue(text))\n : []\n }) ?? []\n )\n }\n}\n\nexport function getRichTextV2SwatchIds(\n definition: RichTextV2ControlDefinition,\n data: RichTextV2ControlData,\n) {\n return introspectRichTextV2Data(definition, data, getSwatchIds)\n}\n\nexport function getRichTextV2TypographyIds(\n definition: RichTextV2ControlDefinition,\n data: RichTextV2ControlData,\n) {\n return introspectRichTextV2Data(definition, data, getTypographyIds)\n}\n\nexport function getRichTextV2PageIds(\n definition: RichTextV2ControlDefinition,\n data: RichTextV2ControlData,\n) {\n return introspectRichTextV2Data(definition, data, getPageIds)\n}\n"],"mappings":"AACA,SAAS,YAAY,cAAc,wBAAwB;AAG3D,SAAqB,WAAW,cAAc,YAAY;AAE1D,SAAS,yBACP,YACA,MACA,MACK;AACL,QAAM,UAAU,WAAW,OAAO;AAElC,SAAO,KAAK,YAAY,QAAQ,OAAK,2BAA2B,CAAC,CAAC;AAElE,WAAS,2BAA2B,YAA6B;AAC/D,QAAI,aAAa,UAAU,UAAU,GAAG;AACtC,aAAO;AAAA,QACL,GAAG,wBAAwB,UAAU;AAAA,QACrC,GAAG,WAAW,SAAS,QAAQ,OAAK,2BAA2B,CAAC,CAAC;AAAA,MACnE;AAAA,IACF;AAEA,QAAI,KAAK,OAAO,UAAU,GAAG;AAC3B,aAAO,qBAAqB,UAAU;AAAA,IACxC;AAEA,WAAO,CAAC;AAAA,EACV;AAEA,WAAS,wBAAwB,YAA0B;AACzD,WACE,SAAS;AAAA,MAAQ,YACf,OAAO,SAAS,cAAc,OAAO,QAAQ,kBACzC,KAAK,OAAO,QAAQ,YAAY,OAAO,QAAQ,gBAAgB,UAAU,CAAC,IAC1E,CAAC;AAAA,IACP,KAAK,CAAC;AAAA,EAEV;AAEA,WAAS,qBAAqB,MAAY;AACxC,WACE,SAAS,QAAQ,YAAU;AACzB,aAAO,OAAO,SAAS,cAAc,OAAO,QAAQ,eAChD,KAAK,OAAO,QAAQ,YAAY,OAAO,QAAQ,aAAa,IAAI,CAAC,IACjE,CAAC;AAAA,IACP,CAAC,KAAK,CAAC;AAAA,EAEX;AACF;AAEO,SAAS,uBACd,YACA,MACA;AACA,SAAO,yBAAyB,YAAY,MAAM,YAAY;AAChE;AAEO,SAAS,2BACd,YACA,MACA;AACA,SAAO,yBAAyB,YAAY,MAAM,gBAAgB;AACpE;AAEO,SAAS,qBACd,YACA,MACA;AACA,SAAO,yBAAyB,YAAY,MAAM,UAAU;AAC9D;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/controls/shape.ts"],"sourcesContent":["import {\n AnyPropController,\n createPropController,\n Send,\n PropControllerMessage,\n} from '../prop-controllers/instances'\nimport { PropController } from '../prop-controllers/base'\nimport { CopyContext, MergeTranslatableDataContext } from '../state/react-page'\nimport {\n ControlDefinition,\n ControlDefinitionData,\n getTranslatableData,\n mergeTranslatedData,\n} from './control'\n\nimport { copy as controlCopy } from './control'\nimport { Data } from './types'\nimport {\n getElementChildren,\n getFileIds,\n getPageIds,\n getSwatchIds,\n getTypographyIds,\n} from '../prop-controllers/introspection'\n\nexport const ShapeControlType = 'makeswift::controls::shape'\n\ntype ShapeControlConfig = {\n type: Record<string, ControlDefinition>\n}\n\nexport type ShapeControlDefinition<C extends ShapeControlConfig = ShapeControlConfig> = {\n type: typeof ShapeControlType\n config: C\n}\n\nexport function Shape<C extends ShapeControlConfig>(config: C): ShapeControlDefinition<C> {\n return { type: ShapeControlType, config }\n}\n\nexport type ShapeControlData<T extends ShapeControlDefinition = ShapeControlDefinition> = {\n [K in keyof T['config']['type']]?: ControlDefinitionData<T['config']['type'][K]>\n}\n\nexport const ShapeControlMessageType = {\n SHAPE_CONTROL_CHILD_CONTROL_MESSAGE: 'makeswift::controls::shape::message::child-control-message',\n} as const\n\ntype ShapeControlChildControlMessage = {\n type: typeof ShapeControlMessageType.SHAPE_CONTROL_CHILD_CONTROL_MESSAGE\n payload: { message: PropControllerMessage; key: string }\n}\n\nexport type ShapeControlMessage = ShapeControlChildControlMessage\n\nexport class ShapeControl<\n T extends ShapeControlDefinition = ShapeControlDefinition,\n> extends PropController<ShapeControlMessage> {\n controls: Map<string, AnyPropController>\n descriptor: ShapeControlDefinition\n send: Send<ShapeControlMessage>\n\n constructor(send: Send<ShapeControlMessage>, descriptor: T) {\n super(send)\n\n this.descriptor = descriptor\n this.send = send\n\n this.controls = new Map<string, AnyPropController>()\n this.setControls()\n }\n\n setControls = () => {\n const controls = new Map<string, AnyPropController>()\n const children = this.descriptor.config.type\n\n Object.keys(children).forEach(key => {\n const control = createPropController(children[key], message =>\n this.send({\n type: ShapeControlMessageType.SHAPE_CONTROL_CHILD_CONTROL_MESSAGE,\n payload: { message, key },\n }),\n )\n\n controls.set(key, control)\n })\n\n this.controls = controls\n\n return this.controls\n }\n\n recv = (message: ShapeControlMessage) => {\n switch (message.type) {\n case ShapeControlMessageType.SHAPE_CONTROL_CHILD_CONTROL_MESSAGE: {\n const control = this.controls.get(message.payload.key)\n\n if (control == null) return\n\n // TODO: We're casting the type here as the arg0 type for control.recv is never\n const recv = control.recv as (arg0: PropControllerMessage) => void\n\n recv(message.payload.message)\n }\n }\n }\n}\n\nexport function copyShapeData(\n definition: ShapeControlDefinition,\n value: ShapeControlData | undefined,\n context: CopyContext,\n): ShapeControlData | undefined {\n if (value == null) return value\n\n const newValue: ShapeControlData = {}\n\n for (const [key, itemDefinition] of Object.entries(definition.config.type)) {\n const prop = value[key]\n\n newValue[key] = controlCopy(itemDefinition, prop, context)\n }\n\n return newValue\n}\n\nfunction introspectShapeData<T>(\n definition: ShapeControlDefinition,\n value: ShapeControlData | undefined,\n func: (definition: ControlDefinition, data: Data) => T[],\n): T[] {\n if (value == null) return []\n\n return Object.entries(definition.config.type).flatMap(([key, definition]) =>\n func(definition, value[key]),\n )\n}\n\nexport function getShapeElementChildren(\n definition: ShapeControlDefinition,\n data: ShapeControlData,\n) {\n return introspectShapeData(definition, data, getElementChildren)\n}\n\nexport function getShapeSwatchIds(definition: ShapeControlDefinition, data: ShapeControlData) {\n return introspectShapeData(definition, data, getSwatchIds)\n}\n\nexport function getShapeTypographyIds(definition: ShapeControlDefinition, data: ShapeControlData) {\n return introspectShapeData(definition, data, getTypographyIds)\n}\n\nexport function getShapePageIds(definition: ShapeControlDefinition, data: ShapeControlData) {\n return introspectShapeData(definition, data, getPageIds)\n}\n\nexport function getShapeFileIds(definition: ShapeControlDefinition, data: ShapeControlData) {\n return introspectShapeData(definition, data, getFileIds)\n}\n\nexport function getShapeTranslatableData(\n definition: ShapeControlDefinition,\n data: ShapeControlData,\n) {\n return Object.fromEntries(\n Object.entries(definition.config.type).map(([key, definition]) => [\n key,\n getTranslatableData(definition, data[key]),\n ]),\n )\n}\n\nexport type ShapeControlTranslationDto = Record<string, ShapeControlData>\n\nexport function mergeShapeTranslatedData(\n definition: ShapeControlDefinition,\n data: ShapeControlData,\n translatedData: ShapeControlTranslationDto,\n context: MergeTranslatableDataContext,\n) {\n return Object.fromEntries(\n Object.entries(definition.config.type).map(([key, definition]) => [\n key,\n mergeTranslatedData(definition, data[key], translatedData[key], context),\n ]),\n )\n}\n"],"mappings":"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","names":["definition"]}
1
+ {"version":3,"sources":["../../../src/controls/shape.ts"],"sourcesContent":["import { Data } from '@makeswift/controls'\nimport {\n AnyPropController,\n createPropController,\n Send,\n PropControllerMessage,\n} from '../prop-controllers/instances'\nimport { PropController } from '../prop-controllers/base'\nimport { CopyContext, MergeTranslatableDataContext } from '../state/react-page'\nimport {\n ControlDefinition,\n ControlDefinitionData,\n getTranslatableData,\n mergeTranslatedData,\n} from './control'\n\nimport { copy as controlCopy } from './control'\nimport {\n getElementChildren,\n getFileIds,\n getPageIds,\n getSwatchIds,\n getTypographyIds,\n} from '../prop-controllers/introspection'\n\nexport const ShapeControlType = 'makeswift::controls::shape'\n\ntype ShapeControlConfig = {\n type: Record<string, ControlDefinition>\n}\n\nexport type ShapeControlDefinition<C extends ShapeControlConfig = ShapeControlConfig> = {\n type: typeof ShapeControlType\n config: C\n}\n\nexport function Shape<C extends ShapeControlConfig>(config: C): ShapeControlDefinition<C> {\n return { type: ShapeControlType, config }\n}\n\nexport type ShapeControlData<T extends ShapeControlDefinition = ShapeControlDefinition> = {\n [K in keyof T['config']['type']]?: ControlDefinitionData<T['config']['type'][K]>\n}\n\nexport const ShapeControlMessageType = {\n SHAPE_CONTROL_CHILD_CONTROL_MESSAGE: 'makeswift::controls::shape::message::child-control-message',\n} as const\n\ntype ShapeControlChildControlMessage = {\n type: typeof ShapeControlMessageType.SHAPE_CONTROL_CHILD_CONTROL_MESSAGE\n payload: { message: PropControllerMessage; key: string }\n}\n\nexport type ShapeControlMessage = ShapeControlChildControlMessage\n\nexport class ShapeControl<\n T extends ShapeControlDefinition = ShapeControlDefinition,\n> extends PropController<ShapeControlMessage> {\n controls: Map<string, AnyPropController>\n descriptor: ShapeControlDefinition\n send: Send<ShapeControlMessage>\n\n constructor(send: Send<ShapeControlMessage>, descriptor: T) {\n super(send)\n\n this.descriptor = descriptor\n this.send = send\n\n this.controls = new Map<string, AnyPropController>()\n this.setControls()\n }\n\n setControls = () => {\n const controls = new Map<string, AnyPropController>()\n const children = this.descriptor.config.type\n\n Object.keys(children).forEach(key => {\n const control = createPropController(children[key], message =>\n this.send({\n type: ShapeControlMessageType.SHAPE_CONTROL_CHILD_CONTROL_MESSAGE,\n payload: { message, key },\n }),\n )\n\n controls.set(key, control)\n })\n\n this.controls = controls\n\n return this.controls\n }\n\n recv = (message: ShapeControlMessage) => {\n switch (message.type) {\n case ShapeControlMessageType.SHAPE_CONTROL_CHILD_CONTROL_MESSAGE: {\n const control = this.controls.get(message.payload.key)\n\n if (control == null) return\n\n // TODO: We're casting the type here as the arg0 type for control.recv is never\n const recv = control.recv as (arg0: PropControllerMessage) => void\n\n recv(message.payload.message)\n }\n }\n }\n}\n\nexport function copyShapeData(\n definition: ShapeControlDefinition,\n value: ShapeControlData | undefined,\n context: CopyContext,\n): ShapeControlData | undefined {\n if (value == null) return value\n\n const newValue: ShapeControlData = {}\n\n for (const [key, itemDefinition] of Object.entries(definition.config.type)) {\n const prop = value[key]\n\n newValue[key] = controlCopy(itemDefinition, prop, context)\n }\n\n return newValue\n}\n\nfunction introspectShapeData<T>(\n definition: ShapeControlDefinition,\n value: ShapeControlData | undefined,\n func: (definition: ControlDefinition, data: Data) => T[],\n): T[] {\n if (value == null) return []\n\n return Object.entries(definition.config.type).flatMap(([key, definition]) =>\n func(definition, value[key]),\n )\n}\n\nexport function getShapeElementChildren(\n definition: ShapeControlDefinition,\n data: ShapeControlData,\n) {\n return introspectShapeData(definition, data, getElementChildren)\n}\n\nexport function getShapeSwatchIds(definition: ShapeControlDefinition, data: ShapeControlData) {\n return introspectShapeData(definition, data, getSwatchIds)\n}\n\nexport function getShapeTypographyIds(definition: ShapeControlDefinition, data: ShapeControlData) {\n return introspectShapeData(definition, data, getTypographyIds)\n}\n\nexport function getShapePageIds(definition: ShapeControlDefinition, data: ShapeControlData) {\n return introspectShapeData(definition, data, getPageIds)\n}\n\nexport function getShapeFileIds(definition: ShapeControlDefinition, data: ShapeControlData) {\n return introspectShapeData(definition, data, getFileIds)\n}\n\nexport function getShapeTranslatableData(\n definition: ShapeControlDefinition,\n data: ShapeControlData,\n) {\n return Object.fromEntries(\n Object.entries(definition.config.type).map(([key, definition]) => [\n key,\n getTranslatableData(definition, data[key]),\n ]),\n )\n}\n\nexport type ShapeControlTranslationDto = Record<string, ShapeControlData>\n\nexport function mergeShapeTranslatedData(\n definition: ShapeControlDefinition,\n data: ShapeControlData,\n translatedData: ShapeControlTranslationDto,\n context: MergeTranslatableDataContext,\n) {\n return Object.fromEntries(\n Object.entries(definition.config.type).map(([key, definition]) => [\n key,\n mergeTranslatedData(definition, data[key], translatedData[key], context),\n ]),\n )\n}\n"],"mappings":"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","names":["definition"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/controls/slot.ts"],"sourcesContent":["import { PropController } from '../prop-controllers/base'\nimport { BoxModel } from '../state/modules/box-models'\nimport {\n CopyContext,\n Element,\n isElementReference,\n MergeContext,\n MergeTranslatableDataContext,\n} from '../state/react-page'\nimport { ResponsiveValue } from './types'\n\ntype SlotControlColumnData = { count: number; spans: number[][] }\n\nexport type SlotControlData = {\n elements: (Element & { deleted?: boolean })[]\n columns: ResponsiveValue<SlotControlColumnData>\n}\n\nexport const SlotControlType = 'makeswift::controls::slot'\n\nexport type SlotControlDefinition = {\n type: typeof SlotControlType\n}\n\nexport function Slot(): SlotControlDefinition {\n return { type: SlotControlType }\n}\n\nexport const SlotControlMessageType = {\n CONTAINER_BOX_MODEL_CHANGE: 'makeswift::controls::slot::message::container-box-model-change',\n ITEM_BOX_MODEL_CHANGE: 'makeswift::controls::slot::message::item-box-model-change',\n} as const\n\ntype SlotControlContainerBoxModelChangeMessage = {\n type: typeof SlotControlMessageType.CONTAINER_BOX_MODEL_CHANGE\n payload: { boxModel: BoxModel | null }\n}\n\ntype SlotControlItemBoxModelChangeMessage = {\n type: typeof SlotControlMessageType.ITEM_BOX_MODEL_CHANGE\n payload: { index: number; boxModel: BoxModel | null }\n}\n\nexport type SlotControlMessage =\n | SlotControlContainerBoxModelChangeMessage\n | SlotControlItemBoxModelChangeMessage\n\nexport class SlotControl extends PropController<SlotControlMessage> {\n recv = () => {}\n\n changeContainerBoxModel(boxModel: BoxModel | null): void {\n this.send({ type: SlotControlMessageType.CONTAINER_BOX_MODEL_CHANGE, payload: { boxModel } })\n }\n\n changeItemBoxModel(index: number, boxModel: BoxModel | null): void {\n this.send({ type: SlotControlMessageType.ITEM_BOX_MODEL_CHANGE, payload: { index, boxModel } })\n }\n}\n\nexport function copySlotData(\n value: SlotControlData | undefined,\n context: CopyContext,\n): SlotControlData | undefined {\n if (value == null) return value\n\n return {\n ...value,\n elements: value.elements.map(element => context.copyElement(element)),\n }\n}\n\n/**\n * @todo\n * - Inserting elements\n * - Moving elements\n * - Merging column data\n */\nexport function mergeSlotData(\n base: SlotControlData | undefined = { columns: [], elements: [] },\n override: SlotControlData | undefined = { columns: [], elements: [] },\n context: MergeContext,\n): SlotControlData {\n const mergedColumns = base.columns\n const mergedElements = base.elements.flatMap(baseElement => {\n const overrideElement = override.elements.find(\n e => baseElement.type === e.type && baseElement.key === e.key,\n )\n\n if (overrideElement == null) return [baseElement]\n\n if (overrideElement.deleted) return []\n\n if (isElementReference(overrideElement)) return [overrideElement]\n\n if (isElementReference(baseElement)) return [baseElement]\n\n return context.mergeElement(baseElement, overrideElement)\n })\n\n return { columns: mergedColumns, elements: mergedElements }\n}\n\nexport function mergeSlotControlTranslatedData(\n data: SlotControlData,\n context: MergeTranslatableDataContext,\n) {\n return {\n ...data,\n elements: data.elements.map(element => context.mergeTranslatedData(element)),\n }\n}\n"],"mappings":"AAAA,SAAS,sBAAsB;AAE/B;AAAA,EAGE;AAAA,OAGK;AAUA,MAAM,kBAAkB;AAMxB,SAAS,OAA8B;AAC5C,SAAO,EAAE,MAAM,gBAAgB;AACjC;AAEO,MAAM,yBAAyB;AAAA,EACpC,4BAA4B;AAAA,EAC5B,uBAAuB;AACzB;AAgBO,MAAM,oBAAoB,eAAmC;AAAA,EAClE,OAAO,MAAM;AAAA,EAAC;AAAA,EAEd,wBAAwB,UAAiC;AACvD,SAAK,KAAK,EAAE,MAAM,uBAAuB,4BAA4B,SAAS,EAAE,SAAS,EAAE,CAAC;AAAA,EAC9F;AAAA,EAEA,mBAAmB,OAAe,UAAiC;AACjE,SAAK,KAAK,EAAE,MAAM,uBAAuB,uBAAuB,SAAS,EAAE,OAAO,SAAS,EAAE,CAAC;AAAA,EAChG;AACF;AAEO,SAAS,aACd,OACA,SAC6B;AAC7B,MAAI,SAAS;AAAM,WAAO;AAE1B,SAAO;AAAA,IACL,GAAG;AAAA,IACH,UAAU,MAAM,SAAS,IAAI,aAAW,QAAQ,YAAY,OAAO,CAAC;AAAA,EACtE;AACF;AAQO,SAAS,cACd,OAAoC,EAAE,SAAS,CAAC,GAAG,UAAU,CAAC,EAAE,GAChE,WAAwC,EAAE,SAAS,CAAC,GAAG,UAAU,CAAC,EAAE,GACpE,SACiB;AACjB,QAAM,gBAAgB,KAAK;AAC3B,QAAM,iBAAiB,KAAK,SAAS,QAAQ,iBAAe;AAC1D,UAAM,kBAAkB,SAAS,SAAS;AAAA,MACxC,OAAK,YAAY,SAAS,EAAE,QAAQ,YAAY,QAAQ,EAAE;AAAA,IAC5D;AAEA,QAAI,mBAAmB;AAAM,aAAO,CAAC,WAAW;AAEhD,QAAI,gBAAgB;AAAS,aAAO,CAAC;AAErC,QAAI,mBAAmB,eAAe;AAAG,aAAO,CAAC,eAAe;AAEhE,QAAI,mBAAmB,WAAW;AAAG,aAAO,CAAC,WAAW;AAExD,WAAO,QAAQ,aAAa,aAAa,eAAe;AAAA,EAC1D,CAAC;AAED,SAAO,EAAE,SAAS,eAAe,UAAU,eAAe;AAC5D;AAEO,SAAS,+BACd,MACA,SACA;AACA,SAAO;AAAA,IACL,GAAG;AAAA,IACH,UAAU,KAAK,SAAS,IAAI,aAAW,QAAQ,oBAAoB,OAAO,CAAC;AAAA,EAC7E;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/controls/slot.ts"],"sourcesContent":["import { ResponsiveValue } from '@makeswift/controls'\nimport { PropController } from '../prop-controllers/base'\nimport { BoxModel } from '../state/modules/box-models'\nimport {\n CopyContext,\n Element,\n isElementReference,\n MergeContext,\n MergeTranslatableDataContext,\n} from '../state/react-page'\n\ntype SlotControlColumnData = { count: number; spans: number[][] }\n\nexport type SlotControlData = {\n elements: (Element & { deleted?: boolean })[]\n columns: ResponsiveValue<SlotControlColumnData>\n}\n\nexport const SlotControlType = 'makeswift::controls::slot'\n\nexport type SlotControlDefinition = {\n type: typeof SlotControlType\n}\n\nexport function Slot(): SlotControlDefinition {\n return { type: SlotControlType }\n}\n\nexport const SlotControlMessageType = {\n CONTAINER_BOX_MODEL_CHANGE: 'makeswift::controls::slot::message::container-box-model-change',\n ITEM_BOX_MODEL_CHANGE: 'makeswift::controls::slot::message::item-box-model-change',\n} as const\n\ntype SlotControlContainerBoxModelChangeMessage = {\n type: typeof SlotControlMessageType.CONTAINER_BOX_MODEL_CHANGE\n payload: { boxModel: BoxModel | null }\n}\n\ntype SlotControlItemBoxModelChangeMessage = {\n type: typeof SlotControlMessageType.ITEM_BOX_MODEL_CHANGE\n payload: { index: number; boxModel: BoxModel | null }\n}\n\nexport type SlotControlMessage =\n | SlotControlContainerBoxModelChangeMessage\n | SlotControlItemBoxModelChangeMessage\n\nexport class SlotControl extends PropController<SlotControlMessage> {\n recv = () => {}\n\n changeContainerBoxModel(boxModel: BoxModel | null): void {\n this.send({ type: SlotControlMessageType.CONTAINER_BOX_MODEL_CHANGE, payload: { boxModel } })\n }\n\n changeItemBoxModel(index: number, boxModel: BoxModel | null): void {\n this.send({ type: SlotControlMessageType.ITEM_BOX_MODEL_CHANGE, payload: { index, boxModel } })\n }\n}\n\nexport function copySlotData(\n value: SlotControlData | undefined,\n context: CopyContext,\n): SlotControlData | undefined {\n if (value == null) return value\n\n return {\n ...value,\n elements: value.elements.map(element => context.copyElement(element)),\n }\n}\n\n/**\n * @todo\n * - Inserting elements\n * - Moving elements\n * - Merging column data\n */\nexport function mergeSlotData(\n base: SlotControlData | undefined = { columns: [], elements: [] },\n override: SlotControlData | undefined = { columns: [], elements: [] },\n context: MergeContext,\n): SlotControlData {\n const mergedColumns = base.columns\n const mergedElements = base.elements.flatMap(baseElement => {\n const overrideElement = override.elements.find(\n e => baseElement.type === e.type && baseElement.key === e.key,\n )\n\n if (overrideElement == null) return [baseElement]\n\n if (overrideElement.deleted) return []\n\n if (isElementReference(overrideElement)) return [overrideElement]\n\n if (isElementReference(baseElement)) return [baseElement]\n\n return context.mergeElement(baseElement, overrideElement)\n })\n\n return { columns: mergedColumns, elements: mergedElements }\n}\n\nexport function mergeSlotControlTranslatedData(\n data: SlotControlData,\n context: MergeTranslatableDataContext,\n) {\n return {\n ...data,\n elements: data.elements.map(element => context.mergeTranslatedData(element)),\n }\n}\n"],"mappings":"AACA,SAAS,sBAAsB;AAE/B;AAAA,EAGE;AAAA,OAGK;AASA,MAAM,kBAAkB;AAMxB,SAAS,OAA8B;AAC5C,SAAO,EAAE,MAAM,gBAAgB;AACjC;AAEO,MAAM,yBAAyB;AAAA,EACpC,4BAA4B;AAAA,EAC5B,uBAAuB;AACzB;AAgBO,MAAM,oBAAoB,eAAmC;AAAA,EAClE,OAAO,MAAM;AAAA,EAAC;AAAA,EAEd,wBAAwB,UAAiC;AACvD,SAAK,KAAK,EAAE,MAAM,uBAAuB,4BAA4B,SAAS,EAAE,SAAS,EAAE,CAAC;AAAA,EAC9F;AAAA,EAEA,mBAAmB,OAAe,UAAiC;AACjE,SAAK,KAAK,EAAE,MAAM,uBAAuB,uBAAuB,SAAS,EAAE,OAAO,SAAS,EAAE,CAAC;AAAA,EAChG;AACF;AAEO,SAAS,aACd,OACA,SAC6B;AAC7B,MAAI,SAAS;AAAM,WAAO;AAE1B,SAAO;AAAA,IACL,GAAG;AAAA,IACH,UAAU,MAAM,SAAS,IAAI,aAAW,QAAQ,YAAY,OAAO,CAAC;AAAA,EACtE;AACF;AAQO,SAAS,cACd,OAAoC,EAAE,SAAS,CAAC,GAAG,UAAU,CAAC,EAAE,GAChE,WAAwC,EAAE,SAAS,CAAC,GAAG,UAAU,CAAC,EAAE,GACpE,SACiB;AACjB,QAAM,gBAAgB,KAAK;AAC3B,QAAM,iBAAiB,KAAK,SAAS,QAAQ,iBAAe;AAC1D,UAAM,kBAAkB,SAAS,SAAS;AAAA,MACxC,OAAK,YAAY,SAAS,EAAE,QAAQ,YAAY,QAAQ,EAAE;AAAA,IAC5D;AAEA,QAAI,mBAAmB;AAAM,aAAO,CAAC,WAAW;AAEhD,QAAI,gBAAgB;AAAS,aAAO,CAAC;AAErC,QAAI,mBAAmB,eAAe;AAAG,aAAO,CAAC,eAAe;AAEhE,QAAI,mBAAmB,WAAW;AAAG,aAAO,CAAC,WAAW;AAExD,WAAO,QAAQ,aAAa,aAAa,eAAe;AAAA,EAC1D,CAAC;AAED,SAAO,EAAE,SAAS,eAAe,UAAU,eAAe;AAC5D;AAEO,SAAS,+BACd,MACA,SACA;AACA,SAAO;AAAA,IACL,GAAG;AAAA,IACH,UAAU,KAAK,SAAS,IAAI,aAAW,QAAQ,oBAAoB,OAAO,CAAC;AAAA,EAC7E;AACF;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/controls/style-v2.ts"],"sourcesContent":["import { BoxModel } from 'css-box-model'\nimport { ControlDefinition } from './control'\nimport { PropController } from '../prop-controllers/base'\nimport {\n AnyPropController,\n PropControllerMessage,\n Send,\n createPropController,\n} from '../prop-controllers/instances'\nimport { ResponsiveValue } from './types'\nimport { CSSObject } from '@emotion/serialize'\nimport { useStyle } from '../runtimes/react/use-style'\nimport { ControlDefinitionValue } from '../runtimes/react/controls/control'\n\nexport const StyleV2ControlType = 'makeswift::controls::style-v2'\n\nexport type StyleV2CSSObject = CSSObject\nexport const unstable_useStyleV2ClassName = useStyle\n\ntype StyleV2ControlConfig<T extends ControlDefinition = ControlDefinition> = {\n type: T\n getStyle(item: ControlDefinitionValue<T> | undefined): CSSObject\n}\n\nexport type StyleV2ControlDefinition = {\n type: typeof StyleV2ControlType\n config: StyleV2ControlConfig\n}\n\nexport function unstable_StyleV2<C extends StyleV2ControlConfig>(\n config: C,\n): StyleV2ControlDefinition {\n return { type: StyleV2ControlType, config }\n}\n\n/**\n * TODO: Rewrite `ControlDefinitionData` as a tail recursive type.\n *\n * Explanation: Making `StyleV2ControlData` generic causes us to hit a limitation of TS conditional types for the definition of `ControlDefinitionData`.\n * We get \"Type instantiation is excessively deep and possibly infinite.\"\n *\n * Helpful links:\n * * The PR changing the limit of conditional types: https://github.com/microsoft/TypeScript/pull/45711\n * * TS 4.5 docs releasing this limitation: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-5.html#tail-recursion-elimination-on-conditional-types\n * * A SO user implementing a tail recursive type: https://stackoverflow.com/questions/72370456/tail-recursion-elimination-on-conditional-types-doesnt-work\n *\n *\n * This is what the type should be:\n * ```\n * export type StyleV2ControlData<T extends StyleV2ControlDefinition = StyleV2ControlDefinition> =\n * ResponsiveValue<ControlDefinitionData<T['config']['type']>>\n * ```\n */\nexport type StyleV2ControlData = ResponsiveValue<any>\n\nexport const StyleV2ControlMessageType = {\n CHANGE_BOX_MODEL: 'makeswift::controls::style::message::change-box-model',\n STYLE_V2_CONTROL_CHILD_CONTROL_MESSAGE:\n 'makeswift::controls::style-v2::message::child-control-message',\n} as const\n\ntype StyleV2ControlItemBoxModelChangeMessage = {\n type: typeof StyleV2ControlMessageType.CHANGE_BOX_MODEL\n payload: { boxModel: BoxModel | null }\n}\ntype StyleV2ControlChildControlMessage = {\n type: typeof StyleV2ControlMessageType.STYLE_V2_CONTROL_CHILD_CONTROL_MESSAGE\n payload: { message: PropControllerMessage }\n}\n\nexport type StyleV2ControlMessage =\n | StyleV2ControlItemBoxModelChangeMessage\n | StyleV2ControlChildControlMessage\n\nexport class StyleV2Control<\n T extends StyleV2ControlDefinition = StyleV2ControlDefinition,\n> extends PropController<StyleV2ControlMessage> {\n control?: AnyPropController\n constructor(send: Send<StyleV2ControlMessage>, descriptor: T) {\n super(send)\n this.control = createPropController(descriptor.config.type, message => {\n this.send({\n type: StyleV2ControlMessageType.STYLE_V2_CONTROL_CHILD_CONTROL_MESSAGE,\n payload: { message },\n })\n })\n }\n\n changeBoxModel(boxModel: BoxModel | null): void {\n this.send({ type: StyleV2ControlMessageType.CHANGE_BOX_MODEL, payload: { boxModel } })\n }\n\n recv(message: StyleV2ControlMessage) {\n switch (message.type) {\n case StyleV2ControlMessageType.STYLE_V2_CONTROL_CHILD_CONTROL_MESSAGE: {\n const control = this.control\n\n if (control == null) return\n\n const recv = control.recv as (arg0: PropControllerMessage) => void\n\n recv(message.payload.message)\n }\n }\n }\n}\n"],"mappings":"AAEA,SAAS,sBAAsB;AAC/B;AAAA,EAIE;AAAA,OACK;AAGP,SAAS,gBAAgB;AAGlB,MAAM,qBAAqB;AAG3B,MAAM,+BAA+B;AAYrC,SAAS,iBACd,QAC0B;AAC1B,SAAO,EAAE,MAAM,oBAAoB,OAAO;AAC5C;AAsBO,MAAM,4BAA4B;AAAA,EACvC,kBAAkB;AAAA,EAClB,wCACE;AACJ;AAeO,MAAM,uBAEH,eAAsC;AAAA,EAC9C;AAAA,EACA,YAAY,MAAmC,YAAe;AAC5D,UAAM,IAAI;AACV,SAAK,UAAU,qBAAqB,WAAW,OAAO,MAAM,aAAW;AACrE,WAAK,KAAK;AAAA,QACR,MAAM,0BAA0B;AAAA,QAChC,SAAS,EAAE,QAAQ;AAAA,MACrB,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAAA,EAEA,eAAe,UAAiC;AAC9C,SAAK,KAAK,EAAE,MAAM,0BAA0B,kBAAkB,SAAS,EAAE,SAAS,EAAE,CAAC;AAAA,EACvF;AAAA,EAEA,KAAK,SAAgC;AACnC,YAAQ,QAAQ,MAAM;AAAA,MACpB,KAAK,0BAA0B,wCAAwC;AACrE,cAAM,UAAU,KAAK;AAErB,YAAI,WAAW;AAAM;AAErB,cAAM,OAAO,QAAQ;AAErB,aAAK,QAAQ,QAAQ,OAAO;AAAA,MAC9B;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
1
+ {"version":3,"sources":["../../../src/controls/style-v2.ts"],"sourcesContent":["import { ResponsiveValue } from '@makeswift/controls'\nimport { BoxModel } from 'css-box-model'\nimport { ControlDefinition } from './control'\nimport { PropController } from '../prop-controllers/base'\nimport {\n AnyPropController,\n PropControllerMessage,\n Send,\n createPropController,\n} from '../prop-controllers/instances'\nimport { CSSObject } from '@emotion/serialize'\nimport { useStyle } from '../runtimes/react/use-style'\nimport { ControlDefinitionValue } from '../runtimes/react/controls/control'\n\nexport const StyleV2ControlType = 'makeswift::controls::style-v2'\n\nexport type StyleV2CSSObject = CSSObject\nexport const unstable_useStyleV2ClassName = useStyle\n\ntype StyleV2ControlConfig<T extends ControlDefinition = ControlDefinition> = {\n type: T\n getStyle(item: ControlDefinitionValue<T> | undefined): CSSObject\n}\n\nexport type StyleV2ControlDefinition = {\n type: typeof StyleV2ControlType\n config: StyleV2ControlConfig\n}\n\nexport function unstable_StyleV2<C extends StyleV2ControlConfig>(\n config: C,\n): StyleV2ControlDefinition {\n return { type: StyleV2ControlType, config }\n}\n\n/**\n * TODO: Rewrite `ControlDefinitionData` as a tail recursive type.\n *\n * Explanation: Making `StyleV2ControlData` generic causes us to hit a limitation of TS conditional types for the definition of `ControlDefinitionData`.\n * We get \"Type instantiation is excessively deep and possibly infinite.\"\n *\n * Helpful links:\n * * The PR changing the limit of conditional types: https://github.com/microsoft/TypeScript/pull/45711\n * * TS 4.5 docs releasing this limitation: https://www.typescriptlang.org/docs/handbook/release-notes/typescript-4-5.html#tail-recursion-elimination-on-conditional-types\n * * A SO user implementing a tail recursive type: https://stackoverflow.com/questions/72370456/tail-recursion-elimination-on-conditional-types-doesnt-work\n *\n *\n * This is what the type should be:\n * ```\n * export type StyleV2ControlData<T extends StyleV2ControlDefinition = StyleV2ControlDefinition> =\n * ResponsiveValue<ControlDefinitionData<T['config']['type']>>\n * ```\n */\nexport type StyleV2ControlData = ResponsiveValue<any>\n\nexport const StyleV2ControlMessageType = {\n CHANGE_BOX_MODEL: 'makeswift::controls::style::message::change-box-model',\n STYLE_V2_CONTROL_CHILD_CONTROL_MESSAGE:\n 'makeswift::controls::style-v2::message::child-control-message',\n} as const\n\ntype StyleV2ControlItemBoxModelChangeMessage = {\n type: typeof StyleV2ControlMessageType.CHANGE_BOX_MODEL\n payload: { boxModel: BoxModel | null }\n}\ntype StyleV2ControlChildControlMessage = {\n type: typeof StyleV2ControlMessageType.STYLE_V2_CONTROL_CHILD_CONTROL_MESSAGE\n payload: { message: PropControllerMessage }\n}\n\nexport type StyleV2ControlMessage =\n | StyleV2ControlItemBoxModelChangeMessage\n | StyleV2ControlChildControlMessage\n\nexport class StyleV2Control<\n T extends StyleV2ControlDefinition = StyleV2ControlDefinition,\n> extends PropController<StyleV2ControlMessage> {\n control?: AnyPropController\n constructor(send: Send<StyleV2ControlMessage>, descriptor: T) {\n super(send)\n this.control = createPropController(descriptor.config.type, message => {\n this.send({\n type: StyleV2ControlMessageType.STYLE_V2_CONTROL_CHILD_CONTROL_MESSAGE,\n payload: { message },\n })\n })\n }\n\n changeBoxModel(boxModel: BoxModel | null): void {\n this.send({ type: StyleV2ControlMessageType.CHANGE_BOX_MODEL, payload: { boxModel } })\n }\n\n recv(message: StyleV2ControlMessage) {\n switch (message.type) {\n case StyleV2ControlMessageType.STYLE_V2_CONTROL_CHILD_CONTROL_MESSAGE: {\n const control = this.control\n\n if (control == null) return\n\n const recv = control.recv as (arg0: PropControllerMessage) => void\n\n recv(message.payload.message)\n }\n }\n }\n}\n"],"mappings":"AAGA,SAAS,sBAAsB;AAC/B;AAAA,EAIE;AAAA,OACK;AAEP,SAAS,gBAAgB;AAGlB,MAAM,qBAAqB;AAG3B,MAAM,+BAA+B;AAYrC,SAAS,iBACd,QAC0B;AAC1B,SAAO,EAAE,MAAM,oBAAoB,OAAO;AAC5C;AAsBO,MAAM,4BAA4B;AAAA,EACvC,kBAAkB;AAAA,EAClB,wCACE;AACJ;AAeO,MAAM,uBAEH,eAAsC;AAAA,EAC9C;AAAA,EACA,YAAY,MAAmC,YAAe;AAC5D,UAAM,IAAI;AACV,SAAK,UAAU,qBAAqB,WAAW,OAAO,MAAM,aAAW;AACrE,WAAK,KAAK;AAAA,QACR,MAAM,0BAA0B;AAAA,QAChC,SAAS,EAAE,QAAQ;AAAA,MACrB,CAAC;AAAA,IACH,CAAC;AAAA,EACH;AAAA,EAEA,eAAe,UAAiC;AAC9C,SAAK,KAAK,EAAE,MAAM,0BAA0B,kBAAkB,SAAS,EAAE,SAAS,EAAE,CAAC;AAAA,EACvF;AAAA,EAEA,KAAK,SAAgC;AACnC,YAAQ,QAAQ,MAAM;AAAA,MACpB,KAAK,0BAA0B,wCAAwC;AACrE,cAAM,UAAU,KAAK;AAErB,YAAI,WAAW;AAAM;AAErB,cAAM,OAAO,QAAQ;AAErB,aAAK,QAAQ,QAAQ,OAAO;AAAA,MAC9B;AAAA,IACF;AAAA,EACF;AACF;","names":[]}
@@ -1,4 +1,4 @@
1
- import { copyColorData } from "./color";
1
+ import { copyColorData } from "@makeswift/controls";
2
2
  import { PropController } from "../prop-controllers/base";
3
3
  const StyleControlType = "makeswift::controls::style";
4
4
  const StyleControlProperty = {
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/controls/style.ts"],"sourcesContent":["import { BorderRadiusPropertyData } from '../css/border-radius'\nimport type { LengthPercentageData } from '../css/length-percentage'\nimport { MarginPropertyData } from '../css/margin'\nimport { PaddingPropertyData } from '../css/padding'\nimport { ColorData, ResponsiveValue } from './types'\nimport { CopyContext } from '../state/react-page'\nimport { copyColorData } from './color'\nimport { Send } from '../prop-controllers/instances'\nimport { PropController } from '../prop-controllers/base'\nimport { BoxModel } from '../state/modules/box-models'\n\n/** @see https://developer.mozilla.org/en-US/docs/Web/CSS/width */\nexport type WidthPropertyData = LengthPercentageData\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/border-style\n */\ntype BorderStyle = 'dotted' | 'dashed' | 'solid'\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/border-top#constituent_properties\n *\n * @todos\n * - Change `width` to be a `Length`\n * - Remove `null` from possible values\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type BorderSideShorthandPropertyData = {\n width: number | null | undefined\n style: BorderStyle\n color?: ColorData | null\n}\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/border\n *\n * @todos\n * - Remove `null` from possible values\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type BorderPropertyData = {\n borderTop: BorderSideShorthandPropertyData | null | undefined\n borderRight: BorderSideShorthandPropertyData | null | undefined\n borderBottom: BorderSideShorthandPropertyData | null | undefined\n borderLeft: BorderSideShorthandPropertyData | null | undefined\n}\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-family\n *\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type FontFamilyPropertyData = string | null | undefined\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/letter-spacing\n *\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type LetterSpacingPropertyData = number | null | undefined\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-size\n *\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type FontSizePropertyData =\n | {\n value: number\n unit: 'px'\n }\n | null\n | undefined\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight\n *\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type FontWeightPropertyData = number | null | undefined\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/text-transform\n *\n * @todos\n * - Match the type with specification\n */\nexport type TextTransformPropertyData = 'uppercase'[]\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-style\n *\n * @todos\n * - Match the type with specification\n */\nexport type FontStylePropertyData = 'italic'[]\n\n/**\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type TextStylePropertyData = {\n fontFamily?: FontFamilyPropertyData | null | undefined\n letterSpacing: LetterSpacingPropertyData | null | undefined\n fontSize: FontSizePropertyData | null | undefined\n fontWeight: FontWeightPropertyData | null | undefined\n textTransform: TextTransformPropertyData\n fontStyle: FontStylePropertyData\n}\n\n/**\n * Primitives like `string` and `number` are excluded from the style data because the relevant\n * panels from the Makeswift builder were originally implemented only to support object values, and\n * not CSS strings. For example, 100 pixels would be `{ value: 100, unit: 'px' }` but never `100` or\n * `'100px'`.\n */\nexport type StyleControlData = {\n width?: ResponsiveValue<Exclude<WidthPropertyData, string | number>>\n margin?: ResponsiveValue<{\n [K in keyof MarginPropertyData]: Exclude<MarginPropertyData[K], string | number> | 'auto'\n }>\n padding?: ResponsiveValue<{\n [K in keyof PaddingPropertyData]: Exclude<PaddingPropertyData[K], string | number>\n }>\n border?: ResponsiveValue<BorderPropertyData>\n borderRadius?: ResponsiveValue<{\n [K in keyof BorderRadiusPropertyData]: Exclude<BorderRadiusPropertyData[K], string | number>\n }>\n textStyle?: ResponsiveValue<TextStylePropertyData>\n}\n\nexport const StyleControlType = 'makeswift::controls::style'\n\nexport const StyleControlProperty = {\n Width: 'makeswift::controls::style::property::width',\n Margin: 'makeswift::controls::style::property::margin',\n Padding: 'makeswift::controls::style::property::padding',\n Border: 'makeswift::controls::style::property::border',\n BorderRadius: 'makeswift::controls::style::property::border-radius',\n TextStyle: 'makeswift::controls::style::property::text-style',\n} as const\n\nexport type StyleControlProperty = typeof StyleControlProperty[keyof typeof StyleControlProperty]\n\ntype StyleControlParams = { properties?: StyleControlProperty[] }\n\nexport type StyleControlConfig = { properties: StyleControlProperty[] }\n\nconst StyleControlDefaultProperties: StyleControlProperty[] = [\n StyleControlProperty.Width,\n StyleControlProperty.Margin,\n]\n\nconst AllStyleControlProperties: StyleControlProperty[] = [\n StyleControlProperty.Width,\n StyleControlProperty.Margin,\n StyleControlProperty.Padding,\n StyleControlProperty.Border,\n StyleControlProperty.BorderRadius,\n StyleControlProperty.TextStyle,\n]\n\nexport type StyleControlDefinition = {\n type: typeof StyleControlType\n config: StyleControlConfig\n}\n\n/**\n * @todos\n * - Add support for custom panel labels.\n * - Add support for default values. Internally, default values must be represented with the same\n * format as the underlying data so that controls can show these values.\n */\nexport function Style(params?: StyleControlParams): StyleControlDefinition {\n return {\n type: StyleControlType,\n config: { properties: params?.properties ?? StyleControlDefaultProperties },\n }\n}\n\nStyle.Default = StyleControlDefaultProperties\nStyle.All = AllStyleControlProperties\n\nStyle.Width = StyleControlProperty.Width\nStyle.Margin = StyleControlProperty.Margin\nStyle.Padding = StyleControlProperty.Padding\nStyle.Border = StyleControlProperty.Border\nStyle.BorderRadius = StyleControlProperty.BorderRadius\nStyle.TextStyle = StyleControlProperty.TextStyle\n\nexport const StyleControlMessageType = {\n CHANGE_BOX_MODEL: 'makeswift::controls::style::message::change-box-model',\n} as const\n\ntype StyleControlItemBoxModelChangeMessage = {\n type: typeof StyleControlMessageType.CHANGE_BOX_MODEL\n payload: { boxModel: BoxModel | null }\n}\n\nexport type StyleControlMessage = StyleControlItemBoxModelChangeMessage\n\nexport class StyleControl extends PropController<StyleControlMessage> {\n constructor(send: Send<StyleControlMessage>) {\n super(send)\n }\n\n changeBoxModel(boxModel: BoxModel | null): void {\n this.send({ type: StyleControlMessageType.CHANGE_BOX_MODEL, payload: { boxModel } })\n }\n\n recv() {}\n}\n\nexport function copyStyleData(\n value: StyleControlData | undefined,\n context: CopyContext,\n): StyleControlData | undefined {\n if (value == null) return value\n\n function copyResponsiveBorder(\n responsiveBorder: ResponsiveValue<BorderPropertyData> | undefined,\n ): ResponsiveValue<BorderPropertyData> | undefined {\n if (responsiveBorder == null) return undefined\n return responsiveBorder.map(deviceBorder => ({\n ...deviceBorder,\n value: copyBorder(deviceBorder.value),\n }))\n }\n\n function copyBorder(border: BorderPropertyData): BorderPropertyData {\n function copyBorderSide(side: BorderSideShorthandPropertyData | null | undefined) {\n if (side == null) return null\n\n if (side.color == null) return side\n\n return {\n ...side,\n color: copyColorData(side.color, context),\n }\n }\n\n return {\n borderTop: copyBorderSide(border.borderTop),\n borderBottom: copyBorderSide(border.borderBottom),\n borderRight: copyBorderSide(border.borderRight),\n borderLeft: copyBorderSide(border.borderLeft),\n }\n }\n\n return { ...value, border: copyResponsiveBorder(value.border) }\n}\n"],"mappings":"AAMA,SAAS,qBAAqB;AAE9B,SAAS,sBAAsB;AAoIxB,MAAM,mBAAmB;AAEzB,MAAM,uBAAuB;AAAA,EAClC,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,WAAW;AACb;AAQA,MAAM,gCAAwD;AAAA,EAC5D,qBAAqB;AAAA,EACrB,qBAAqB;AACvB;AAEA,MAAM,4BAAoD;AAAA,EACxD,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,qBAAqB;AACvB;AAaO,SAAS,MAAM,QAAqD;AACzE,SAAO;AAAA,IACL,MAAM;AAAA,IACN,QAAQ,EAAE,YAAY,QAAQ,cAAc,8BAA8B;AAAA,EAC5E;AACF;AAEA,MAAM,UAAU;AAChB,MAAM,MAAM;AAEZ,MAAM,QAAQ,qBAAqB;AACnC,MAAM,SAAS,qBAAqB;AACpC,MAAM,UAAU,qBAAqB;AACrC,MAAM,SAAS,qBAAqB;AACpC,MAAM,eAAe,qBAAqB;AAC1C,MAAM,YAAY,qBAAqB;AAEhC,MAAM,0BAA0B;AAAA,EACrC,kBAAkB;AACpB;AASO,MAAM,qBAAqB,eAAoC;AAAA,EACpE,YAAY,MAAiC;AAC3C,UAAM,IAAI;AAAA,EACZ;AAAA,EAEA,eAAe,UAAiC;AAC9C,SAAK,KAAK,EAAE,MAAM,wBAAwB,kBAAkB,SAAS,EAAE,SAAS,EAAE,CAAC;AAAA,EACrF;AAAA,EAEA,OAAO;AAAA,EAAC;AACV;AAEO,SAAS,cACd,OACA,SAC8B;AAC9B,MAAI,SAAS;AAAM,WAAO;AAE1B,WAAS,qBACP,kBACiD;AACjD,QAAI,oBAAoB;AAAM,aAAO;AACrC,WAAO,iBAAiB,IAAI,mBAAiB;AAAA,MAC3C,GAAG;AAAA,MACH,OAAO,WAAW,aAAa,KAAK;AAAA,IACtC,EAAE;AAAA,EACJ;AAEA,WAAS,WAAW,QAAgD;AAClE,aAAS,eAAe,MAA0D;AAChF,UAAI,QAAQ;AAAM,eAAO;AAEzB,UAAI,KAAK,SAAS;AAAM,eAAO;AAE/B,aAAO;AAAA,QACL,GAAG;AAAA,QACH,OAAO,cAAc,KAAK,OAAO,OAAO;AAAA,MAC1C;AAAA,IACF;AAEA,WAAO;AAAA,MACL,WAAW,eAAe,OAAO,SAAS;AAAA,MAC1C,cAAc,eAAe,OAAO,YAAY;AAAA,MAChD,aAAa,eAAe,OAAO,WAAW;AAAA,MAC9C,YAAY,eAAe,OAAO,UAAU;AAAA,IAC9C;AAAA,EACF;AAEA,SAAO,EAAE,GAAG,OAAO,QAAQ,qBAAqB,MAAM,MAAM,EAAE;AAChE;","names":[]}
1
+ {"version":3,"sources":["../../../src/controls/style.ts"],"sourcesContent":["import { ColorData, copyColorData, ResponsiveValue } from '@makeswift/controls'\nimport { BorderRadiusPropertyData } from '../css/border-radius'\nimport type { LengthPercentageData } from '../css/length-percentage'\nimport { MarginPropertyData } from '../css/margin'\nimport { PaddingPropertyData } from '../css/padding'\nimport { CopyContext } from '../state/react-page'\nimport { Send } from '../prop-controllers/instances'\nimport { PropController } from '../prop-controllers/base'\nimport { BoxModel } from '../state/modules/box-models'\n\n/** @see https://developer.mozilla.org/en-US/docs/Web/CSS/width */\nexport type WidthPropertyData = LengthPercentageData\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/border-style\n */\ntype BorderStyle = 'dotted' | 'dashed' | 'solid'\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/border-top#constituent_properties\n *\n * @todos\n * - Change `width` to be a `Length`\n * - Remove `null` from possible values\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type BorderSideShorthandPropertyData = {\n width: number | null | undefined\n style: BorderStyle\n color?: ColorData | null\n}\n\n/**\n * @see https://developer.mozilla.org/en-US/docs/Web/CSS/border\n *\n * @todos\n * - Remove `null` from possible values\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type BorderPropertyData = {\n borderTop: BorderSideShorthandPropertyData | null | undefined\n borderRight: BorderSideShorthandPropertyData | null | undefined\n borderBottom: BorderSideShorthandPropertyData | null | undefined\n borderLeft: BorderSideShorthandPropertyData | null | undefined\n}\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-family\n *\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type FontFamilyPropertyData = string | null | undefined\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/letter-spacing\n *\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type LetterSpacingPropertyData = number | null | undefined\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-size\n *\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type FontSizePropertyData =\n | {\n value: number\n unit: 'px'\n }\n | null\n | undefined\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-weight\n *\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type FontWeightPropertyData = number | null | undefined\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/text-transform\n *\n * @todos\n * - Match the type with specification\n */\nexport type TextTransformPropertyData = 'uppercase'[]\n\n/**\n * https://developer.mozilla.org/en-US/docs/Web/CSS/font-style\n *\n * @todos\n * - Match the type with specification\n */\nexport type FontStylePropertyData = 'italic'[]\n\n/**\n * @todos\n * - Remove `null` from possible values of longhand properties\n * - Remove `undefined` from possible values and make fields optional\n */\nexport type TextStylePropertyData = {\n fontFamily?: FontFamilyPropertyData | null | undefined\n letterSpacing: LetterSpacingPropertyData | null | undefined\n fontSize: FontSizePropertyData | null | undefined\n fontWeight: FontWeightPropertyData | null | undefined\n textTransform: TextTransformPropertyData\n fontStyle: FontStylePropertyData\n}\n\n/**\n * Primitives like `string` and `number` are excluded from the style data because the relevant\n * panels from the Makeswift builder were originally implemented only to support object values, and\n * not CSS strings. For example, 100 pixels would be `{ value: 100, unit: 'px' }` but never `100` or\n * `'100px'`.\n */\nexport type StyleControlData = {\n width?: ResponsiveValue<Exclude<WidthPropertyData, string | number>>\n margin?: ResponsiveValue<{\n [K in keyof MarginPropertyData]: Exclude<MarginPropertyData[K], string | number> | 'auto'\n }>\n padding?: ResponsiveValue<{\n [K in keyof PaddingPropertyData]: Exclude<PaddingPropertyData[K], string | number>\n }>\n border?: ResponsiveValue<BorderPropertyData>\n borderRadius?: ResponsiveValue<{\n [K in keyof BorderRadiusPropertyData]: Exclude<BorderRadiusPropertyData[K], string | number>\n }>\n textStyle?: ResponsiveValue<TextStylePropertyData>\n}\n\nexport const StyleControlType = 'makeswift::controls::style'\n\nexport const StyleControlProperty = {\n Width: 'makeswift::controls::style::property::width',\n Margin: 'makeswift::controls::style::property::margin',\n Padding: 'makeswift::controls::style::property::padding',\n Border: 'makeswift::controls::style::property::border',\n BorderRadius: 'makeswift::controls::style::property::border-radius',\n TextStyle: 'makeswift::controls::style::property::text-style',\n} as const\n\nexport type StyleControlProperty = typeof StyleControlProperty[keyof typeof StyleControlProperty]\n\ntype StyleControlParams = { properties?: StyleControlProperty[] }\n\nexport type StyleControlConfig = { properties: StyleControlProperty[] }\n\nconst StyleControlDefaultProperties: StyleControlProperty[] = [\n StyleControlProperty.Width,\n StyleControlProperty.Margin,\n]\n\nconst AllStyleControlProperties: StyleControlProperty[] = [\n StyleControlProperty.Width,\n StyleControlProperty.Margin,\n StyleControlProperty.Padding,\n StyleControlProperty.Border,\n StyleControlProperty.BorderRadius,\n StyleControlProperty.TextStyle,\n]\n\nexport type StyleControlDefinition = {\n type: typeof StyleControlType\n config: StyleControlConfig\n}\n\n/**\n * @todos\n * - Add support for custom panel labels.\n * - Add support for default values. Internally, default values must be represented with the same\n * format as the underlying data so that controls can show these values.\n */\nexport function Style(params?: StyleControlParams): StyleControlDefinition {\n return {\n type: StyleControlType,\n config: { properties: params?.properties ?? StyleControlDefaultProperties },\n }\n}\n\nStyle.Default = StyleControlDefaultProperties\nStyle.All = AllStyleControlProperties\n\nStyle.Width = StyleControlProperty.Width\nStyle.Margin = StyleControlProperty.Margin\nStyle.Padding = StyleControlProperty.Padding\nStyle.Border = StyleControlProperty.Border\nStyle.BorderRadius = StyleControlProperty.BorderRadius\nStyle.TextStyle = StyleControlProperty.TextStyle\n\nexport const StyleControlMessageType = {\n CHANGE_BOX_MODEL: 'makeswift::controls::style::message::change-box-model',\n} as const\n\ntype StyleControlItemBoxModelChangeMessage = {\n type: typeof StyleControlMessageType.CHANGE_BOX_MODEL\n payload: { boxModel: BoxModel | null }\n}\n\nexport type StyleControlMessage = StyleControlItemBoxModelChangeMessage\n\nexport class StyleControl extends PropController<StyleControlMessage> {\n constructor(send: Send<StyleControlMessage>) {\n super(send)\n }\n\n changeBoxModel(boxModel: BoxModel | null): void {\n this.send({ type: StyleControlMessageType.CHANGE_BOX_MODEL, payload: { boxModel } })\n }\n\n recv() {}\n}\n\nexport function copyStyleData(\n value: StyleControlData | undefined,\n context: CopyContext,\n): StyleControlData | undefined {\n if (value == null) return value\n\n function copyResponsiveBorder(\n responsiveBorder: ResponsiveValue<BorderPropertyData> | undefined,\n ): ResponsiveValue<BorderPropertyData> | undefined {\n if (responsiveBorder == null) return undefined\n return responsiveBorder.map(deviceBorder => ({\n ...deviceBorder,\n value: copyBorder(deviceBorder.value),\n }))\n }\n\n function copyBorder(border: BorderPropertyData): BorderPropertyData {\n function copyBorderSide(side: BorderSideShorthandPropertyData | null | undefined) {\n if (side == null) return null\n\n if (side.color == null) return side\n\n return {\n ...side,\n color: copyColorData(side.color, context),\n }\n }\n\n return {\n borderTop: copyBorderSide(border.borderTop),\n borderBottom: copyBorderSide(border.borderBottom),\n borderRight: copyBorderSide(border.borderRight),\n borderLeft: copyBorderSide(border.borderLeft),\n }\n }\n\n return { ...value, border: copyResponsiveBorder(value.border) }\n}\n"],"mappings":"AAAA,SAAoB,qBAAsC;AAO1D,SAAS,sBAAsB;AAoIxB,MAAM,mBAAmB;AAEzB,MAAM,uBAAuB;AAAA,EAClC,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,cAAc;AAAA,EACd,WAAW;AACb;AAQA,MAAM,gCAAwD;AAAA,EAC5D,qBAAqB;AAAA,EACrB,qBAAqB;AACvB;AAEA,MAAM,4BAAoD;AAAA,EACxD,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,qBAAqB;AACvB;AAaO,SAAS,MAAM,QAAqD;AACzE,SAAO;AAAA,IACL,MAAM;AAAA,IACN,QAAQ,EAAE,YAAY,QAAQ,cAAc,8BAA8B;AAAA,EAC5E;AACF;AAEA,MAAM,UAAU;AAChB,MAAM,MAAM;AAEZ,MAAM,QAAQ,qBAAqB;AACnC,MAAM,SAAS,qBAAqB;AACpC,MAAM,UAAU,qBAAqB;AACrC,MAAM,SAAS,qBAAqB;AACpC,MAAM,eAAe,qBAAqB;AAC1C,MAAM,YAAY,qBAAqB;AAEhC,MAAM,0BAA0B;AAAA,EACrC,kBAAkB;AACpB;AASO,MAAM,qBAAqB,eAAoC;AAAA,EACpE,YAAY,MAAiC;AAC3C,UAAM,IAAI;AAAA,EACZ;AAAA,EAEA,eAAe,UAAiC;AAC9C,SAAK,KAAK,EAAE,MAAM,wBAAwB,kBAAkB,SAAS,EAAE,SAAS,EAAE,CAAC;AAAA,EACrF;AAAA,EAEA,OAAO;AAAA,EAAC;AACV;AAEO,SAAS,cACd,OACA,SAC8B;AAC9B,MAAI,SAAS;AAAM,WAAO;AAE1B,WAAS,qBACP,kBACiD;AACjD,QAAI,oBAAoB;AAAM,aAAO;AACrC,WAAO,iBAAiB,IAAI,mBAAiB;AAAA,MAC3C,GAAG;AAAA,MACH,OAAO,WAAW,aAAa,KAAK;AAAA,IACtC,EAAE;AAAA,EACJ;AAEA,WAAS,WAAW,QAAgD;AAClE,aAAS,eAAe,MAA0D;AAChF,UAAI,QAAQ;AAAM,eAAO;AAEzB,UAAI,KAAK,SAAS;AAAM,eAAO;AAE/B,aAAO;AAAA,QACL,GAAG;AAAA,QACH,OAAO,cAAc,KAAK,OAAO,OAAO;AAAA,MAC1C;AAAA,IACF;AAEA,WAAO;AAAA,MACL,WAAW,eAAe,OAAO,SAAS;AAAA,MAC1C,cAAc,eAAe,OAAO,YAAY;AAAA,MAChD,aAAa,eAAe,OAAO,WAAW;AAAA,MAC9C,YAAY,eAAe,OAAO,UAAU;AAAA,IAC9C;AAAA,EACF;AAEA,SAAO,EAAE,GAAG,OAAO,QAAQ,qBAAqB,MAAM,MAAM,EAAE;AAChE;","names":[]}
@@ -13,7 +13,7 @@ async function handler(...args) {
13
13
  const supportsPreviewMode = match(args).with(routeHandlerPattern, () => false).with(apiRoutePattern, () => true).exhaustive();
14
14
  const supportsDraftMode = match(args).with(routeHandlerPattern, () => true).with(apiRoutePattern, () => false).exhaustive();
15
15
  const body = {
16
- version: "0.17.1",
16
+ version: "0.17.2-canary.1",
17
17
  previewMode: supportsPreviewMode,
18
18
  draftMode: supportsDraftMode,
19
19
  interactionMode: true,
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/prop-controllers/descriptors.ts"],"sourcesContent":["import { ResponsiveColor } from '../runtimes/react/controls'\nimport { StyleControlFormattedValue } from '../runtimes/react/controls/style'\nimport type { Data } from '../state/react-page'\nimport { NumberControlDefinition } from '../controls/number'\nimport { NumberControlValue } from '../runtimes/react/controls/number'\nimport { StyleControlType } from '../controls/style'\nimport {\n CheckboxControlDefinition,\n ColorControlDefinition,\n ComboboxControlDefinition,\n ImageControlDefinition,\n LinkControlDefinition,\n ListControlDefinition,\n SelectControlDefinition,\n ShapeControlDefinition,\n SlotControlDefinition,\n TextAreaControlDefinition,\n TextInputControlDefinition,\n StyleControlDefinition,\n RichTextV2ControlDefinition,\n StyleV2ControlDefinition,\n TypographyControlDefinition,\n} from '../controls'\nimport { TextInputControlValue } from '../runtimes/react/controls/text-input'\nimport { TextAreaControlValue } from '../runtimes/react/controls/text-area'\nimport { ColorControlValue } from '../runtimes/react/controls/color'\nimport { SelectControlValue } from '../runtimes/react/controls/select'\nimport { CheckboxControlValue } from '../runtimes/react/controls/checkbox'\nimport { ResolveImageControlValue } from '../runtimes/react/controls/image'\nimport { ShapeControlValue } from '../runtimes/react/controls/shape'\nimport { ListControlValue } from '../runtimes/react/controls/list'\nimport { ComboboxControlValue } from '../runtimes/react/controls/combobox'\nimport { LinkControlValue } from '../runtimes/react/controls/link'\nimport { SlotControlValue } from '../runtimes/react/controls/slot'\nimport { RichTextControlDefinition } from '../controls/rich-text'\nimport { RichTextControlValue } from '../runtimes/react/controls/rich-text/rich-text'\nimport { RichTextV2ControlValue } from '../runtimes/react/controls/rich-text-v2'\nimport { StyleV2ControlFormattedValue } from '../runtimes/react/controls/style-v2'\nimport { IconRadioGroupControlDefinition } from '../controls/icon-radio-group'\nimport { IconRadioGroupControlValue } from '../runtimes/react/controls/icon-radio-group'\nimport { TypographyControlValue } from '../runtimes/react/controls/typography'\nimport {\n BorderDescriptor,\n CheckboxDescriptor,\n LinkDescriptor,\n ResolveLinkPropControllerValue,\n Types as PropControllerTypes,\n ResponsiveValueType,\n ShadowsDescriptor,\n ResolveShadowsPropControllerValue,\n ResponsiveValue,\n Options,\n ResponsiveLengthDescriptor,\n ResolveResponsiveLengthPropControllerValue,\n NumberDescriptor,\n ResolveNumberPropControllerValue,\n ResponsiveColorDescriptor,\n ResolveCheckboxPropControllerValue,\n BorderRadiusDescriptor,\n ResolveBorderPropControllerValue,\n ResolveBorderRadiusPropControllerValue,\n DateDescriptor,\n ResolveDatePropControllerValue,\n FontDescriptor,\n ResolveFontPropControllerValue,\n VideoDescriptor,\n ResolveVideoPropControllerValue,\n TableDescriptor,\n ResolveTablePropControllerValue,\n MarginDescriptor,\n ResolveMarginPropControllerValue,\n PaddingDescriptor,\n ResolvePaddingPropControllerValue,\n WidthDescriptor,\n ResolveWidthPropControllerValue,\n TextStyleDescriptor,\n ResolveTextStylePropControllerValue,\n NavigationLinksDescriptor,\n ResolveNavigationLinksPropControllerValue,\n TextAreaDescriptor,\n ResolveTextAreaPropControllerValue,\n ResolveGapXPropControllerValue,\n GapXDescriptor,\n ResolveGapYPropControllerValue,\n GapYDescriptor,\n ElementIDDescriptor,\n ResolveElementIDPropControllerValue,\n TableFormFieldsDescriptor,\n ResolveTableFormFieldsPropControllerValue,\n GridDescriptor,\n ResolveGridPropControllerValue,\n ImageDescriptor,\n ResolveImagePropControllerValue,\n ImagesDescriptor,\n ResolveImagesPropControllerValue,\n BackgroundsDescriptor,\n ResolveBackgroundsPropControllerValue,\n} from '@makeswift/prop-controllers'\nimport { DeletedPropControllerDescriptor } from './deleted'\n\nexport type { Data }\n\ntype IconName =\n | 'HeightAuto16'\n | 'HeightMatch16'\n | 'VerticalAlignStart16'\n | 'VerticalAlignMiddle16'\n | 'VerticalAlignEnd16'\n | 'VerticalAlignSpaceBetween16'\n | 'ButtonPill16'\n | 'ButtonRounded16'\n | 'ButtonSquare16'\n | 'SizeSmall16'\n | 'SizeMedium16'\n | 'SizeLarge16'\n | 'ArrowInside16'\n | 'ArrowCenter16'\n | 'ArrowOutside16'\n | 'CountdownSolid16'\n | 'CountdownSolidSplit16'\n | 'CountdownOutline16'\n | 'CountdownOutlineSplit16'\n | 'CountdownNaked16'\n | 'Sun16'\n | 'Moon16'\n | 'AlignLeft16'\n | 'AlignCenter16'\n | 'AlignRight16'\n | 'Star16'\n | 'StarCircle16'\n | 'StarRoundedSquare16'\n | 'StarSquare16'\n\nexport type Gap = { value: number; unit: 'px' }\n\nexport const Types = {\n ResponsiveIconRadioGroup: 'ResponsiveIconRadioGroup',\n ResponsiveNumber: 'ResponsiveNumber',\n ResponsiveOpacity: 'ResponsiveOpacity',\n ResponsiveSelect: 'ResponsiveSelect',\n SocialLinks: 'SocialLinks',\n TextInput: 'TextInput',\n Style: StyleControlType,\n} as const\n\nexport type IconRadioGroupOption<T extends string> = { value: T; label: string; icon: IconName }\n\nexport type ResponsiveIconRadioGroupValue<T extends string = string> = ResponsiveValue<T>\n\nexport type ResponsiveIconRadioGroupOptions<T extends string = string, U extends T = T> = Options<{\n label?: string\n options: IconRadioGroupOption<T>[]\n defaultValue?: U\n hidden?: boolean\n}>\n\nexport type ResponsiveIconRadioGroupDescriptor<\n T extends ResponsiveIconRadioGroupValue<string> = ResponsiveIconRadioGroupValue<string>,\n> = {\n type: typeof Types.ResponsiveIconRadioGroup\n options: ResponsiveIconRadioGroupOptions<ResponsiveValueType<T>>\n}\n\n// HACK(miguel): We have to use a layer of indirection with `_T` and `T` because otherwise the\n// values provided would undergo type widening. For some reason, the extra layer of indirection\n// reuslts in TypeScript not widening types. Note, this only happens when the returned value of this\n// function is passed to another as an argument, which is common with the `registerComponent` API.\n/**\n * @deprecated Imports from `@makeswift/runtime/prop-controllers` are deprecated. Use\n * `@makeswift/runtime/controls` instead.\n */\nexport function ResponsiveIconRadioGroup<_T extends string, T extends _T, U extends T>(\n options: ResponsiveIconRadioGroupOptions<T, U>,\n): ResponsiveIconRadioGroupDescriptor<ResponsiveIconRadioGroupValue<T>> {\n return { type: Types.ResponsiveIconRadioGroup, options }\n}\n\nexport type ResponsiveNumberValue = ResponsiveValue<number>\n\nexport type ResponsiveNumberOptions = Options<{\n label?: string\n defaultValue?: number\n min?: number\n max?: number\n step?: number\n suffix?: string\n hidden?: boolean\n}>\n\nexport type ResponsiveNumberDescriptor<_T = ResponsiveNumberValue> = {\n type: typeof Types.ResponsiveNumber\n options: ResponsiveNumberOptions\n}\n\n/**\n * @deprecated Imports from `@makeswift/runtime/prop-controllers` are deprecated. Use\n * `@makeswift/runtime/controls` instead.\n */\nexport function ResponsiveNumber(\n options: ResponsiveNumberOptions = {},\n): ResponsiveNumberDescriptor {\n return { type: Types.ResponsiveNumber, options }\n}\n\nexport type ResponsiveOpacityValue = ResponsiveValue<number>\n\ntype ResponsiveOpacityOptions = Options<Record<string, never>>\n\ntype ResponsiveOpacityDescriptor<_T = ResponsiveOpacityValue> = {\n type: typeof Types.ResponsiveOpacity\n options: ResponsiveOpacityOptions\n}\n\n/**\n * @deprecated Imports from `@makeswift/runtime/prop-controllers` are deprecated. Use\n * `@makeswift/runtime/controls` instead.\n */\nexport function ResponsiveOpacity(\n options: ResponsiveOpacityOptions = {},\n): ResponsiveOpacityDescriptor {\n return { type: Types.ResponsiveOpacity, options }\n}\n\nexport type ResponsiveSelectValue<T extends string = string> = ResponsiveValue<T>\n\nexport type SelectLabelOrientation = 'vertical' | 'horizontal'\n\nexport type SelectOption<T extends string> = { value: T; label: string }\n\nexport type ResponsiveSelectOptions<T extends string = string, U extends T = T> = Options<{\n label?: string\n labelOrientation?: SelectLabelOrientation\n options: SelectOption<T>[]\n defaultValue?: U\n hidden?: boolean\n}>\n\nexport type ResponsiveSelectDescriptor<\n T extends ResponsiveSelectValue<string> = ResponsiveSelectValue<string>,\n> = {\n type: typeof Types.ResponsiveSelect\n options: ResponsiveSelectOptions<ResponsiveValueType<T>>\n}\n\n// HACK(miguel): We have to use a layer of indirection with `_T` and `T` because otherwise the\n// values provided would undergo type widening. For some reason, the extra layer of indirection\n// reuslts in TypeScript not widening types. Note, this only happens when the returned value of this\n// function is passed to another as an argument, which is common with the `registerComponent` API.\n/**\n * @deprecated Imports from `@makeswift/runtime/prop-controllers` are deprecated. Use\n * `@makeswift/runtime/controls` instead.\n */\nexport function ResponsiveSelect<_T extends string, T extends _T, U extends T>(\n options: ResponsiveSelectOptions<T, U>,\n): ResponsiveSelectDescriptor<ResponsiveSelectValue<T>> {\n return { type: Types.ResponsiveSelect, options }\n}\n\nexport const socialLinkTypesV0 = [\n 'angellist',\n 'codepen',\n 'discord',\n 'dribbble',\n 'facebook',\n 'github',\n 'instagram',\n 'linkedin',\n 'medium',\n 'pinterest',\n 'reddit',\n 'rss',\n 'snapchat',\n 'soundcloud',\n 'spotify',\n 'telegram',\n 'tumblr',\n 'twitch',\n 'twitter',\n 'vimeo',\n 'whatsapp',\n 'yelp',\n 'youtube',\n] as const\n\ntype SocialLinkTypeV0 = typeof socialLinkTypesV0[number]\n\nexport const socialLinkTypesV1 = [...socialLinkTypesV0, 'x', 'slack'] as const\n\ntype SocialLinkTypeV1 = typeof socialLinkTypesV1[number]\n\ntype SocialLinkV0 = { type: SocialLinkTypeV0; url: string }\n\ntype SocialLinkV1 = { type: SocialLinkTypeV1; url: string }\n\ntype SocialLinksLinkV0 = { id: string; payload: SocialLinkV0 }\n\ntype SocialLinksLinkV1 = { id: string; payload: SocialLinkV1 }\n\ntype SocialLinksValueV0 = { links: SocialLinksLinkV0[]; openInNewTab: boolean }\n\ntype SocialLinksValueV1 = { links: SocialLinksLinkV1[]; openInNewTab: boolean }\n\nexport type SocialLinksValue = SocialLinksValueV0 | SocialLinksValueV1\n\ntype SocialLinksOptions = Options<{ preset?: SocialLinksValueV1 }>\n\nexport type SocialLinksDescriptor<_T = SocialLinksValueV1> = {\n type: typeof Types.SocialLinks\n options: SocialLinksOptions\n version?: 1\n}\n\n/**\n * @deprecated Imports from `@makeswift/runtime/prop-controllers` are deprecated. Use\n * `@makeswift/runtime/controls` instead.\n */\nexport function SocialLinks(options: SocialLinksOptions = {}): SocialLinksDescriptor {\n return { type: Types.SocialLinks, options, version: 1 }\n}\n\nexport type TextInputValue = string\n\nexport type TextInputOptions = Options<{ label?: string; placeholder?: string; hidden?: boolean }>\n\nexport type TextInputDescriptor<_T = TextInputValue> = {\n type: typeof Types.TextInput\n options: TextInputOptions\n}\n\n/**\n * @deprecated Imports from `@makeswift/runtime/prop-controllers` are deprecated. Use\n * `@makeswift/runtime/controls` instead.\n */\nexport function TextInput(options: TextInputOptions = {}): TextInputDescriptor {\n return { type: Types.TextInput, options }\n}\n\nexport type Descriptor<T extends Data = Data> =\n | DeletedPropControllerDescriptor<T>\n | BackgroundsDescriptor<T>\n | BorderDescriptor<T>\n | BorderRadiusDescriptor<T>\n | CheckboxDescriptor<T>\n | DateDescriptor<T>\n | ElementIDDescriptor<T>\n | FontDescriptor<T>\n | GapXDescriptor<T>\n | GapYDescriptor<T>\n | GridDescriptor<T>\n | ImageDescriptor<T>\n | ImagesDescriptor<T>\n | LinkDescriptor<T>\n | MarginDescriptor<T>\n | NavigationLinksDescriptor<T>\n | NumberDescriptor<T>\n | PaddingDescriptor<T>\n | ResponsiveColorDescriptor<T>\n | ResponsiveIconRadioGroupDescriptor<\n T extends ResponsiveIconRadioGroupValue<string> ? T : ResponsiveIconRadioGroupValue<string>\n >\n | ResponsiveLengthDescriptor<T>\n | ResponsiveNumberDescriptor<T>\n | ResponsiveOpacityDescriptor<T>\n | ResponsiveSelectDescriptor<\n T extends ResponsiveSelectValue<string> ? T : ResponsiveSelectValue<string>\n >\n | ShadowsDescriptor<T>\n | SocialLinksDescriptor<T>\n | TableDescriptor<T>\n | TableFormFieldsDescriptor<T>\n | TextAreaDescriptor<T>\n | TextInputDescriptor<T>\n | TextStyleDescriptor<T>\n | VideoDescriptor<T>\n | WidthDescriptor<T>\n | StyleControlDefinition\n | StyleV2ControlDefinition\n | NumberControlDefinition\n | CheckboxControlDefinition\n | TextInputControlDefinition\n | TextAreaControlDefinition\n | SelectControlDefinition\n | ColorControlDefinition\n | IconRadioGroupControlDefinition\n | ImageControlDefinition\n | ComboboxControlDefinition\n | ShapeControlDefinition\n | ListControlDefinition\n | LinkControlDefinition\n | SlotControlDefinition\n | RichTextControlDefinition\n | RichTextV2ControlDefinition\n | TypographyControlDefinition\n\nexport type PanelDescriptorType =\n | typeof PropControllerTypes.Backgrounds\n | typeof Types.ResponsiveIconRadioGroup\n | typeof PropControllerTypes.Margin\n | typeof PropControllerTypes.Padding\n | typeof PropControllerTypes.Shadows\n | typeof PropControllerTypes.Border\n | typeof PropControllerTypes.GapY\n | typeof PropControllerTypes.GapX\n | typeof PropControllerTypes.BorderRadius\n | typeof PropControllerTypes.Checkbox\n | typeof Types.TextInput\n | typeof PropControllerTypes.Link\n | typeof Types.ResponsiveSelect\n | typeof PropControllerTypes.ResponsiveColor\n | typeof PropControllerTypes.TextStyle\n | typeof PropControllerTypes.Images\n | typeof Types.ResponsiveNumber\n | typeof PropControllerTypes.Number\n | typeof PropControllerTypes.Date\n | typeof PropControllerTypes.Font\n | typeof PropControllerTypes.TextArea\n | typeof PropControllerTypes.Table\n | typeof PropControllerTypes.Image\n | typeof Types.ResponsiveOpacity\n | typeof Types.SocialLinks\n | typeof PropControllerTypes.Video\n | typeof PropControllerTypes.NavigationLinks\n\nexport type PanelDescriptor<T extends Data = Data> = Extract<\n Descriptor<T>,\n { type: PanelDescriptorType }\n>\n\nexport type DescriptorValueType<T extends Descriptor> = T extends NumberControlDefinition\n ? NumberControlValue<T>\n : T extends CheckboxControlDefinition\n ? CheckboxControlValue<T>\n : T extends TextInputControlDefinition\n ? TextInputControlValue<T>\n : T extends TextAreaControlDefinition\n ? TextAreaControlValue<T>\n : T extends SelectControlDefinition\n ? SelectControlValue<T>\n : T extends ColorControlDefinition\n ? ColorControlValue<T>\n : T extends StyleControlDefinition\n ? StyleControlFormattedValue\n : T extends StyleV2ControlDefinition\n ? StyleV2ControlFormattedValue\n : T extends IconRadioGroupControlDefinition\n ? IconRadioGroupControlValue<T>\n : T extends ImageControlDefinition\n ? ResolveImageControlValue<T>\n : T extends ComboboxControlDefinition\n ? ComboboxControlValue<T>\n : T extends ShapeControlDefinition\n ? ShapeControlValue<T>\n : T extends ListControlDefinition\n ? ListControlValue<T>\n : T extends LinkControlDefinition\n ? LinkControlValue<T>\n : T extends SlotControlDefinition\n ? SlotControlValue\n : T extends RichTextControlDefinition\n ? RichTextControlValue\n : T extends RichTextV2ControlDefinition\n ? RichTextV2ControlValue\n : T extends StyleV2ControlDefinition\n ? StyleV2ControlFormattedValue\n : T extends TypographyControlDefinition\n ? TypographyControlValue\n : T['type'] extends typeof PropControllerTypes.ResponsiveColor\n ? // TODO(miguel): We're not importing a resolver type from `@makeswift/prop-controllers` because\n // the resolved type is tightly coupled with the runtime (i.e., it's the result of an API call).\n // This means that we probably want to rethink how types are resolved and where that lives.\n ResponsiveColor | null | undefined\n : T['type'] extends typeof PropControllerTypes.Backgrounds\n ? ResolveBackgroundsPropControllerValue<\n Extract<T, { type: typeof PropControllerTypes.Backgrounds }>\n >\n : T['type'] extends typeof PropControllerTypes.Checkbox\n ? ResolveCheckboxPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Checkbox }>>\n : T['type'] extends typeof PropControllerTypes.Date\n ? ResolveDatePropControllerValue<Extract<T, { type: typeof PropControllerTypes.Date }>>\n : T['type'] extends typeof PropControllerTypes.ElementID\n ? ResolveElementIDPropControllerValue<Extract<T, { type: typeof PropControllerTypes.ElementID }>>\n : T['type'] extends typeof PropControllerTypes.Font\n ? ResolveFontPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Font }>>\n : T['type'] extends typeof PropControllerTypes.GapX\n ? ResolveGapXPropControllerValue<Extract<T, { type: typeof PropControllerTypes.GapX }>>\n : T['type'] extends typeof PropControllerTypes.GapY\n ? ResolveGapYPropControllerValue<Extract<T, { type: typeof PropControllerTypes.GapY }>>\n : T['type'] extends typeof PropControllerTypes.Grid\n ? ResolveGridPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Grid }>>\n : T['type'] extends typeof PropControllerTypes.Image\n ? ResolveImagePropControllerValue<Extract<T, { type: typeof PropControllerTypes.Image }>>\n : T['type'] extends typeof PropControllerTypes.Images\n ? ResolveImagesPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Images }>>\n : T['type'] extends typeof PropControllerTypes.Link\n ? ResolveLinkPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Link }>>\n : T['type'] extends typeof PropControllerTypes.Width\n ? ResolveWidthPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Width }>>\n : T['type'] extends typeof PropControllerTypes.Padding\n ? ResolvePaddingPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Padding }>>\n : T['type'] extends typeof PropControllerTypes.Margin\n ? ResolveMarginPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Margin }>>\n : T['type'] extends typeof PropControllerTypes.NavigationLinks\n ? ResolveNavigationLinksPropControllerValue<\n Extract<T, { type: typeof PropControllerTypes.NavigationLinks }>\n >\n : T['type'] extends typeof PropControllerTypes.BorderRadius\n ? ResolveBorderRadiusPropControllerValue<\n Extract<T, { type: typeof PropControllerTypes.BorderRadius }>\n >\n : T['type'] extends typeof PropControllerTypes.Shadows\n ? ResolveShadowsPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Shadows }>>\n : T['type'] extends typeof PropControllerTypes.ResponsiveLength\n ? ResolveResponsiveLengthPropControllerValue<\n Extract<T, { type: typeof PropControllerTypes.ResponsiveLength }>\n >\n : T['type'] extends typeof PropControllerTypes.Border\n ? ResolveBorderPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Border }>>\n : T['type'] extends typeof PropControllerTypes.Number\n ? ResolveNumberPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Number }>>\n : T['type'] extends typeof PropControllerTypes.Table\n ? ResolveTablePropControllerValue<Extract<T, { type: typeof PropControllerTypes.Table }>>\n : T['type'] extends typeof PropControllerTypes.TableFormFields\n ? ResolveTableFormFieldsPropControllerValue<\n Extract<T, { type: typeof PropControllerTypes.TableFormFields }>\n >\n : T['type'] extends typeof PropControllerTypes.TextStyle\n ? ResolveTextStylePropControllerValue<Extract<T, { type: typeof PropControllerTypes.TextStyle }>>\n : T['type'] extends typeof PropControllerTypes.TextArea\n ? ResolveTextAreaPropControllerValue<Extract<T, { type: typeof PropControllerTypes.TextArea }>>\n : T['type'] extends typeof PropControllerTypes.Video\n ? ResolveVideoPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Video }>>\n : T extends Descriptor<infer U>\n ? U | undefined\n : never\n\nexport type PanelDescriptorValueType<T extends PanelDescriptor> = T extends PanelDescriptor<infer U>\n ? U\n : never\n"],"mappings":"AAKA,SAAS,wBAAwB;AAkI1B,MAAM,QAAQ;AAAA,EACnB,0BAA0B;AAAA,EAC1B,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,kBAAkB;AAAA,EAClB,aAAa;AAAA,EACb,WAAW;AAAA,EACX,OAAO;AACT;AA4BO,SAAS,yBACd,SACsE;AACtE,SAAO,EAAE,MAAM,MAAM,0BAA0B,QAAQ;AACzD;AAuBO,SAAS,iBACd,UAAmC,CAAC,GACR;AAC5B,SAAO,EAAE,MAAM,MAAM,kBAAkB,QAAQ;AACjD;AAeO,SAAS,kBACd,UAAoC,CAAC,GACR;AAC7B,SAAO,EAAE,MAAM,MAAM,mBAAmB,QAAQ;AAClD;AA+BO,SAAS,iBACd,SACsD;AACtD,SAAO,EAAE,MAAM,MAAM,kBAAkB,QAAQ;AACjD;AAEO,MAAM,oBAAoB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAIO,MAAM,oBAAoB,CAAC,GAAG,mBAAmB,KAAK,OAAO;AA8B7D,SAAS,YAAY,UAA8B,CAAC,GAA0B;AACnF,SAAO,EAAE,MAAM,MAAM,aAAa,SAAS,SAAS,EAAE;AACxD;AAeO,SAAS,UAAU,UAA4B,CAAC,GAAwB;AAC7E,SAAO,EAAE,MAAM,MAAM,WAAW,QAAQ;AAC1C;","names":[]}
1
+ {"version":3,"sources":["../../../src/prop-controllers/descriptors.ts"],"sourcesContent":["import {\n CheckboxControlDefinition,\n IconRadioGroupControlDefinition,\n NumberControlDefinition,\n TextInputControlDefinition,\n TextAreaControlDefinition,\n} from '@makeswift/controls'\nimport { ResponsiveColor } from '../runtimes/react/controls'\nimport { StyleControlFormattedValue } from '../runtimes/react/controls/style'\nimport type { Data } from '../state/react-page'\nimport { NumberControlValue } from '../runtimes/react/controls/number'\nimport { StyleControlType } from '../controls/style'\nimport {\n ColorControlDefinition,\n ComboboxControlDefinition,\n ImageControlDefinition,\n LinkControlDefinition,\n ListControlDefinition,\n SelectControlDefinition,\n ShapeControlDefinition,\n SlotControlDefinition,\n StyleControlDefinition,\n RichTextV2ControlDefinition,\n StyleV2ControlDefinition,\n TypographyControlDefinition,\n} from '../controls'\nimport { TextInputControlValue } from '../runtimes/react/controls/text-input'\nimport { TextAreaControlValue } from '../runtimes/react/controls/text-area'\nimport { ColorControlValue } from '../runtimes/react/controls/color'\nimport { SelectControlValue } from '../runtimes/react/controls/select'\nimport { CheckboxControlValue } from '../runtimes/react/controls/checkbox'\nimport { ResolveImageControlValue } from '../runtimes/react/controls/image'\nimport { ShapeControlValue } from '../runtimes/react/controls/shape'\nimport { ListControlValue } from '../runtimes/react/controls/list'\nimport { ComboboxControlValue } from '../runtimes/react/controls/combobox'\nimport { LinkControlValue } from '../runtimes/react/controls/link'\nimport { SlotControlValue } from '../runtimes/react/controls/slot'\nimport { RichTextControlDefinition } from '../controls/rich-text'\nimport { RichTextControlValue } from '../runtimes/react/controls/rich-text/rich-text'\nimport { RichTextV2ControlValue } from '../runtimes/react/controls/rich-text-v2'\nimport { StyleV2ControlFormattedValue } from '../runtimes/react/controls/style-v2'\nimport { IconRadioGroupControlValue } from '../runtimes/react/controls/icon-radio-group'\nimport { TypographyControlValue } from '../runtimes/react/controls/typography'\nimport {\n BorderDescriptor,\n CheckboxDescriptor,\n LinkDescriptor,\n ResolveLinkPropControllerValue,\n Types as PropControllerTypes,\n ResponsiveValueType,\n ShadowsDescriptor,\n ResolveShadowsPropControllerValue,\n ResponsiveValue,\n Options,\n ResponsiveLengthDescriptor,\n ResolveResponsiveLengthPropControllerValue,\n NumberDescriptor,\n ResolveNumberPropControllerValue,\n ResponsiveColorDescriptor,\n ResolveCheckboxPropControllerValue,\n BorderRadiusDescriptor,\n ResolveBorderPropControllerValue,\n ResolveBorderRadiusPropControllerValue,\n DateDescriptor,\n ResolveDatePropControllerValue,\n FontDescriptor,\n ResolveFontPropControllerValue,\n VideoDescriptor,\n ResolveVideoPropControllerValue,\n TableDescriptor,\n ResolveTablePropControllerValue,\n MarginDescriptor,\n ResolveMarginPropControllerValue,\n PaddingDescriptor,\n ResolvePaddingPropControllerValue,\n WidthDescriptor,\n ResolveWidthPropControllerValue,\n TextStyleDescriptor,\n ResolveTextStylePropControllerValue,\n NavigationLinksDescriptor,\n ResolveNavigationLinksPropControllerValue,\n TextAreaDescriptor,\n ResolveTextAreaPropControllerValue,\n ResolveGapXPropControllerValue,\n GapXDescriptor,\n ResolveGapYPropControllerValue,\n GapYDescriptor,\n ElementIDDescriptor,\n ResolveElementIDPropControllerValue,\n TableFormFieldsDescriptor,\n ResolveTableFormFieldsPropControllerValue,\n GridDescriptor,\n ResolveGridPropControllerValue,\n ImageDescriptor,\n ResolveImagePropControllerValue,\n ImagesDescriptor,\n ResolveImagesPropControllerValue,\n BackgroundsDescriptor,\n ResolveBackgroundsPropControllerValue,\n} from '@makeswift/prop-controllers'\nimport { DeletedPropControllerDescriptor } from './deleted'\n\nexport type { Data }\n\ntype IconName =\n | 'HeightAuto16'\n | 'HeightMatch16'\n | 'VerticalAlignStart16'\n | 'VerticalAlignMiddle16'\n | 'VerticalAlignEnd16'\n | 'VerticalAlignSpaceBetween16'\n | 'ButtonPill16'\n | 'ButtonRounded16'\n | 'ButtonSquare16'\n | 'SizeSmall16'\n | 'SizeMedium16'\n | 'SizeLarge16'\n | 'ArrowInside16'\n | 'ArrowCenter16'\n | 'ArrowOutside16'\n | 'CountdownSolid16'\n | 'CountdownSolidSplit16'\n | 'CountdownOutline16'\n | 'CountdownOutlineSplit16'\n | 'CountdownNaked16'\n | 'Sun16'\n | 'Moon16'\n | 'AlignLeft16'\n | 'AlignCenter16'\n | 'AlignRight16'\n | 'Star16'\n | 'StarCircle16'\n | 'StarRoundedSquare16'\n | 'StarSquare16'\n\nexport type Gap = { value: number; unit: 'px' }\n\nexport const Types = {\n ResponsiveIconRadioGroup: 'ResponsiveIconRadioGroup',\n ResponsiveNumber: 'ResponsiveNumber',\n ResponsiveOpacity: 'ResponsiveOpacity',\n ResponsiveSelect: 'ResponsiveSelect',\n SocialLinks: 'SocialLinks',\n TextInput: 'TextInput',\n Style: StyleControlType,\n} as const\n\nexport type IconRadioGroupOption<T extends string> = { value: T; label: string; icon: IconName }\n\nexport type ResponsiveIconRadioGroupValue<T extends string = string> = ResponsiveValue<T>\n\nexport type ResponsiveIconRadioGroupOptions<T extends string = string, U extends T = T> = Options<{\n label?: string\n options: IconRadioGroupOption<T>[]\n defaultValue?: U\n hidden?: boolean\n}>\n\nexport type ResponsiveIconRadioGroupDescriptor<\n T extends ResponsiveIconRadioGroupValue<string> = ResponsiveIconRadioGroupValue<string>,\n> = {\n type: typeof Types.ResponsiveIconRadioGroup\n options: ResponsiveIconRadioGroupOptions<ResponsiveValueType<T>>\n}\n\n// HACK(miguel): We have to use a layer of indirection with `_T` and `T` because otherwise the\n// values provided would undergo type widening. For some reason, the extra layer of indirection\n// reuslts in TypeScript not widening types. Note, this only happens when the returned value of this\n// function is passed to another as an argument, which is common with the `registerComponent` API.\n/**\n * @deprecated Imports from `@makeswift/runtime/prop-controllers` are deprecated. Use\n * `@makeswift/runtime/controls` instead.\n */\nexport function ResponsiveIconRadioGroup<_T extends string, T extends _T, U extends T>(\n options: ResponsiveIconRadioGroupOptions<T, U>,\n): ResponsiveIconRadioGroupDescriptor<ResponsiveIconRadioGroupValue<T>> {\n return { type: Types.ResponsiveIconRadioGroup, options }\n}\n\nexport type ResponsiveNumberValue = ResponsiveValue<number>\n\nexport type ResponsiveNumberOptions = Options<{\n label?: string\n defaultValue?: number\n min?: number\n max?: number\n step?: number\n suffix?: string\n hidden?: boolean\n}>\n\nexport type ResponsiveNumberDescriptor<_T = ResponsiveNumberValue> = {\n type: typeof Types.ResponsiveNumber\n options: ResponsiveNumberOptions\n}\n\n/**\n * @deprecated Imports from `@makeswift/runtime/prop-controllers` are deprecated. Use\n * `@makeswift/runtime/controls` instead.\n */\nexport function ResponsiveNumber(\n options: ResponsiveNumberOptions = {},\n): ResponsiveNumberDescriptor {\n return { type: Types.ResponsiveNumber, options }\n}\n\nexport type ResponsiveOpacityValue = ResponsiveValue<number>\n\ntype ResponsiveOpacityOptions = Options<Record<string, never>>\n\ntype ResponsiveOpacityDescriptor<_T = ResponsiveOpacityValue> = {\n type: typeof Types.ResponsiveOpacity\n options: ResponsiveOpacityOptions\n}\n\n/**\n * @deprecated Imports from `@makeswift/runtime/prop-controllers` are deprecated. Use\n * `@makeswift/runtime/controls` instead.\n */\nexport function ResponsiveOpacity(\n options: ResponsiveOpacityOptions = {},\n): ResponsiveOpacityDescriptor {\n return { type: Types.ResponsiveOpacity, options }\n}\n\nexport type ResponsiveSelectValue<T extends string = string> = ResponsiveValue<T>\n\nexport type SelectLabelOrientation = 'vertical' | 'horizontal'\n\nexport type SelectOption<T extends string> = { value: T; label: string }\n\nexport type ResponsiveSelectOptions<T extends string = string, U extends T = T> = Options<{\n label?: string\n labelOrientation?: SelectLabelOrientation\n options: SelectOption<T>[]\n defaultValue?: U\n hidden?: boolean\n}>\n\nexport type ResponsiveSelectDescriptor<\n T extends ResponsiveSelectValue<string> = ResponsiveSelectValue<string>,\n> = {\n type: typeof Types.ResponsiveSelect\n options: ResponsiveSelectOptions<ResponsiveValueType<T>>\n}\n\n// HACK(miguel): We have to use a layer of indirection with `_T` and `T` because otherwise the\n// values provided would undergo type widening. For some reason, the extra layer of indirection\n// reuslts in TypeScript not widening types. Note, this only happens when the returned value of this\n// function is passed to another as an argument, which is common with the `registerComponent` API.\n/**\n * @deprecated Imports from `@makeswift/runtime/prop-controllers` are deprecated. Use\n * `@makeswift/runtime/controls` instead.\n */\nexport function ResponsiveSelect<_T extends string, T extends _T, U extends T>(\n options: ResponsiveSelectOptions<T, U>,\n): ResponsiveSelectDescriptor<ResponsiveSelectValue<T>> {\n return { type: Types.ResponsiveSelect, options }\n}\n\nexport const socialLinkTypesV0 = [\n 'angellist',\n 'codepen',\n 'discord',\n 'dribbble',\n 'facebook',\n 'github',\n 'instagram',\n 'linkedin',\n 'medium',\n 'pinterest',\n 'reddit',\n 'rss',\n 'snapchat',\n 'soundcloud',\n 'spotify',\n 'telegram',\n 'tumblr',\n 'twitch',\n 'twitter',\n 'vimeo',\n 'whatsapp',\n 'yelp',\n 'youtube',\n] as const\n\ntype SocialLinkTypeV0 = typeof socialLinkTypesV0[number]\n\nexport const socialLinkTypesV1 = [...socialLinkTypesV0, 'x', 'slack'] as const\n\ntype SocialLinkTypeV1 = typeof socialLinkTypesV1[number]\n\ntype SocialLinkV0 = { type: SocialLinkTypeV0; url: string }\n\ntype SocialLinkV1 = { type: SocialLinkTypeV1; url: string }\n\ntype SocialLinksLinkV0 = { id: string; payload: SocialLinkV0 }\n\ntype SocialLinksLinkV1 = { id: string; payload: SocialLinkV1 }\n\ntype SocialLinksValueV0 = { links: SocialLinksLinkV0[]; openInNewTab: boolean }\n\ntype SocialLinksValueV1 = { links: SocialLinksLinkV1[]; openInNewTab: boolean }\n\nexport type SocialLinksValue = SocialLinksValueV0 | SocialLinksValueV1\n\ntype SocialLinksOptions = Options<{ preset?: SocialLinksValueV1 }>\n\nexport type SocialLinksDescriptor<_T = SocialLinksValueV1> = {\n type: typeof Types.SocialLinks\n options: SocialLinksOptions\n version?: 1\n}\n\n/**\n * @deprecated Imports from `@makeswift/runtime/prop-controllers` are deprecated. Use\n * `@makeswift/runtime/controls` instead.\n */\nexport function SocialLinks(options: SocialLinksOptions = {}): SocialLinksDescriptor {\n return { type: Types.SocialLinks, options, version: 1 }\n}\n\nexport type TextInputValue = string\n\nexport type TextInputOptions = Options<{ label?: string; placeholder?: string; hidden?: boolean }>\n\nexport type TextInputDescriptor<_T = TextInputValue> = {\n type: typeof Types.TextInput\n options: TextInputOptions\n}\n\n/**\n * @deprecated Imports from `@makeswift/runtime/prop-controllers` are deprecated. Use\n * `@makeswift/runtime/controls` instead.\n */\nexport function TextInput(options: TextInputOptions = {}): TextInputDescriptor {\n return { type: Types.TextInput, options }\n}\n\nexport type Descriptor<T extends Data = Data> =\n | DeletedPropControllerDescriptor<T>\n | BackgroundsDescriptor<T>\n | BorderDescriptor<T>\n | BorderRadiusDescriptor<T>\n | CheckboxDescriptor<T>\n | DateDescriptor<T>\n | ElementIDDescriptor<T>\n | FontDescriptor<T>\n | GapXDescriptor<T>\n | GapYDescriptor<T>\n | GridDescriptor<T>\n | ImageDescriptor<T>\n | ImagesDescriptor<T>\n | LinkDescriptor<T>\n | MarginDescriptor<T>\n | NavigationLinksDescriptor<T>\n | NumberDescriptor<T>\n | PaddingDescriptor<T>\n | ResponsiveColorDescriptor<T>\n | ResponsiveIconRadioGroupDescriptor<\n T extends ResponsiveIconRadioGroupValue<string> ? T : ResponsiveIconRadioGroupValue<string>\n >\n | ResponsiveLengthDescriptor<T>\n | ResponsiveNumberDescriptor<T>\n | ResponsiveOpacityDescriptor<T>\n | ResponsiveSelectDescriptor<\n T extends ResponsiveSelectValue<string> ? T : ResponsiveSelectValue<string>\n >\n | ShadowsDescriptor<T>\n | SocialLinksDescriptor<T>\n | TableDescriptor<T>\n | TableFormFieldsDescriptor<T>\n | TextAreaDescriptor<T>\n | TextInputDescriptor<T>\n | TextStyleDescriptor<T>\n | VideoDescriptor<T>\n | WidthDescriptor<T>\n | StyleControlDefinition\n | StyleV2ControlDefinition\n | NumberControlDefinition\n | CheckboxControlDefinition\n | TextInputControlDefinition\n | TextAreaControlDefinition\n | SelectControlDefinition\n | ColorControlDefinition\n | IconRadioGroupControlDefinition\n | ImageControlDefinition\n | ComboboxControlDefinition\n | ShapeControlDefinition\n | ListControlDefinition\n | LinkControlDefinition\n | SlotControlDefinition\n | RichTextControlDefinition\n | RichTextV2ControlDefinition\n | TypographyControlDefinition\n\nexport type PanelDescriptorType =\n | typeof PropControllerTypes.Backgrounds\n | typeof Types.ResponsiveIconRadioGroup\n | typeof PropControllerTypes.Margin\n | typeof PropControllerTypes.Padding\n | typeof PropControllerTypes.Shadows\n | typeof PropControllerTypes.Border\n | typeof PropControllerTypes.GapY\n | typeof PropControllerTypes.GapX\n | typeof PropControllerTypes.BorderRadius\n | typeof PropControllerTypes.Checkbox\n | typeof Types.TextInput\n | typeof PropControllerTypes.Link\n | typeof Types.ResponsiveSelect\n | typeof PropControllerTypes.ResponsiveColor\n | typeof PropControllerTypes.TextStyle\n | typeof PropControllerTypes.Images\n | typeof Types.ResponsiveNumber\n | typeof PropControllerTypes.Number\n | typeof PropControllerTypes.Date\n | typeof PropControllerTypes.Font\n | typeof PropControllerTypes.TextArea\n | typeof PropControllerTypes.Table\n | typeof PropControllerTypes.Image\n | typeof Types.ResponsiveOpacity\n | typeof Types.SocialLinks\n | typeof PropControllerTypes.Video\n | typeof PropControllerTypes.NavigationLinks\n\nexport type PanelDescriptor<T extends Data = Data> = Extract<\n Descriptor<T>,\n { type: PanelDescriptorType }\n>\n\nexport type DescriptorValueType<T extends Descriptor> = T extends NumberControlDefinition\n ? NumberControlValue<T>\n : T extends CheckboxControlDefinition\n ? CheckboxControlValue<T>\n : T extends TextInputControlDefinition\n ? TextInputControlValue<T>\n : T extends TextAreaControlDefinition\n ? TextAreaControlValue<T>\n : T extends SelectControlDefinition\n ? SelectControlValue<T>\n : T extends ColorControlDefinition\n ? ColorControlValue<T>\n : T extends StyleControlDefinition\n ? StyleControlFormattedValue\n : T extends StyleV2ControlDefinition\n ? StyleV2ControlFormattedValue\n : T extends IconRadioGroupControlDefinition\n ? IconRadioGroupControlValue<T>\n : T extends ImageControlDefinition\n ? ResolveImageControlValue<T>\n : T extends ComboboxControlDefinition\n ? ComboboxControlValue<T>\n : T extends ShapeControlDefinition\n ? ShapeControlValue<T>\n : T extends ListControlDefinition\n ? ListControlValue<T>\n : T extends LinkControlDefinition\n ? LinkControlValue<T>\n : T extends SlotControlDefinition\n ? SlotControlValue\n : T extends RichTextControlDefinition\n ? RichTextControlValue\n : T extends RichTextV2ControlDefinition\n ? RichTextV2ControlValue\n : T extends StyleV2ControlDefinition\n ? StyleV2ControlFormattedValue\n : T extends TypographyControlDefinition\n ? TypographyControlValue\n : T['type'] extends typeof PropControllerTypes.ResponsiveColor\n ? // TODO(miguel): We're not importing a resolver type from `@makeswift/prop-controllers` because\n // the resolved type is tightly coupled with the runtime (i.e., it's the result of an API call).\n // This means that we probably want to rethink how types are resolved and where that lives.\n ResponsiveColor | null | undefined\n : T['type'] extends typeof PropControllerTypes.Backgrounds\n ? ResolveBackgroundsPropControllerValue<\n Extract<T, { type: typeof PropControllerTypes.Backgrounds }>\n >\n : T['type'] extends typeof PropControllerTypes.Checkbox\n ? ResolveCheckboxPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Checkbox }>>\n : T['type'] extends typeof PropControllerTypes.Date\n ? ResolveDatePropControllerValue<Extract<T, { type: typeof PropControllerTypes.Date }>>\n : T['type'] extends typeof PropControllerTypes.ElementID\n ? ResolveElementIDPropControllerValue<Extract<T, { type: typeof PropControllerTypes.ElementID }>>\n : T['type'] extends typeof PropControllerTypes.Font\n ? ResolveFontPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Font }>>\n : T['type'] extends typeof PropControllerTypes.GapX\n ? ResolveGapXPropControllerValue<Extract<T, { type: typeof PropControllerTypes.GapX }>>\n : T['type'] extends typeof PropControllerTypes.GapY\n ? ResolveGapYPropControllerValue<Extract<T, { type: typeof PropControllerTypes.GapY }>>\n : T['type'] extends typeof PropControllerTypes.Grid\n ? ResolveGridPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Grid }>>\n : T['type'] extends typeof PropControllerTypes.Image\n ? ResolveImagePropControllerValue<Extract<T, { type: typeof PropControllerTypes.Image }>>\n : T['type'] extends typeof PropControllerTypes.Images\n ? ResolveImagesPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Images }>>\n : T['type'] extends typeof PropControllerTypes.Link\n ? ResolveLinkPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Link }>>\n : T['type'] extends typeof PropControllerTypes.Width\n ? ResolveWidthPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Width }>>\n : T['type'] extends typeof PropControllerTypes.Padding\n ? ResolvePaddingPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Padding }>>\n : T['type'] extends typeof PropControllerTypes.Margin\n ? ResolveMarginPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Margin }>>\n : T['type'] extends typeof PropControllerTypes.NavigationLinks\n ? ResolveNavigationLinksPropControllerValue<\n Extract<T, { type: typeof PropControllerTypes.NavigationLinks }>\n >\n : T['type'] extends typeof PropControllerTypes.BorderRadius\n ? ResolveBorderRadiusPropControllerValue<\n Extract<T, { type: typeof PropControllerTypes.BorderRadius }>\n >\n : T['type'] extends typeof PropControllerTypes.Shadows\n ? ResolveShadowsPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Shadows }>>\n : T['type'] extends typeof PropControllerTypes.ResponsiveLength\n ? ResolveResponsiveLengthPropControllerValue<\n Extract<T, { type: typeof PropControllerTypes.ResponsiveLength }>\n >\n : T['type'] extends typeof PropControllerTypes.Border\n ? ResolveBorderPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Border }>>\n : T['type'] extends typeof PropControllerTypes.Number\n ? ResolveNumberPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Number }>>\n : T['type'] extends typeof PropControllerTypes.Table\n ? ResolveTablePropControllerValue<Extract<T, { type: typeof PropControllerTypes.Table }>>\n : T['type'] extends typeof PropControllerTypes.TableFormFields\n ? ResolveTableFormFieldsPropControllerValue<\n Extract<T, { type: typeof PropControllerTypes.TableFormFields }>\n >\n : T['type'] extends typeof PropControllerTypes.TextStyle\n ? ResolveTextStylePropControllerValue<Extract<T, { type: typeof PropControllerTypes.TextStyle }>>\n : T['type'] extends typeof PropControllerTypes.TextArea\n ? ResolveTextAreaPropControllerValue<Extract<T, { type: typeof PropControllerTypes.TextArea }>>\n : T['type'] extends typeof PropControllerTypes.Video\n ? ResolveVideoPropControllerValue<Extract<T, { type: typeof PropControllerTypes.Video }>>\n : T extends Descriptor<infer U>\n ? U | undefined\n : never\n\nexport type PanelDescriptorValueType<T extends PanelDescriptor> = T extends PanelDescriptor<infer U>\n ? U\n : never\n"],"mappings":"AAWA,SAAS,wBAAwB;AA8H1B,MAAM,QAAQ;AAAA,EACnB,0BAA0B;AAAA,EAC1B,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,kBAAkB;AAAA,EAClB,aAAa;AAAA,EACb,WAAW;AAAA,EACX,OAAO;AACT;AA4BO,SAAS,yBACd,SACsE;AACtE,SAAO,EAAE,MAAM,MAAM,0BAA0B,QAAQ;AACzD;AAuBO,SAAS,iBACd,UAAmC,CAAC,GACR;AAC5B,SAAO,EAAE,MAAM,MAAM,kBAAkB,QAAQ;AACjD;AAeO,SAAS,kBACd,UAAoC,CAAC,GACR;AAC7B,SAAO,EAAE,MAAM,MAAM,mBAAmB,QAAQ;AAClD;AA+BO,SAAS,iBACd,SACsD;AACtD,SAAO,EAAE,MAAM,MAAM,kBAAkB,QAAQ;AACjD;AAEO,MAAM,oBAAoB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAIO,MAAM,oBAAoB,CAAC,GAAG,mBAAmB,KAAK,OAAO;AA8B7D,SAAS,YAAY,UAA8B,CAAC,GAA0B;AACnF,SAAO,EAAE,MAAM,MAAM,aAAa,SAAS,SAAS,EAAE;AACxD;AAeO,SAAS,UAAU,UAA4B,CAAC,GAAwB;AAC7E,SAAO,EAAE,MAAM,MAAM,WAAW,QAAQ;AAC1C;","names":[]}
@@ -2,7 +2,7 @@ import { match } from "ts-pattern";
2
2
  import {
3
3
  CheckboxControlDataTypeKey,
4
4
  CheckboxControlDataTypeValueV1
5
- } from "../../../controls";
5
+ } from "@makeswift/controls";
6
6
  function useCheckboxControlValue(data, definition) {
7
7
  const value = match(data).with({ [CheckboxControlDataTypeKey]: CheckboxControlDataTypeValueV1 }, (val) => val.value).otherwise((val) => val) ?? definition.config.defaultValue;
8
8
  return value;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/controls/checkbox.ts"],"sourcesContent":["import { match } from 'ts-pattern'\nimport {\n CheckboxControlData,\n CheckboxControlDataTypeKey,\n CheckboxControlDataTypeValueV1,\n CheckboxControlDefinition,\n} from '../../../controls'\n\nexport type CheckboxControlValue<T extends CheckboxControlDefinition> =\n undefined extends T['config']['defaultValue'] ? boolean | undefined : boolean\n\nexport function useCheckboxControlValue<T extends CheckboxControlDefinition>(\n data: CheckboxControlData | undefined,\n definition: T,\n): CheckboxControlValue<T> {\n const value: boolean | undefined =\n match(data)\n .with({ [CheckboxControlDataTypeKey]: CheckboxControlDataTypeValueV1 }, val => val.value)\n .otherwise(val => val) ?? definition.config.defaultValue\n\n return value as CheckboxControlValue<T>\n}\n"],"mappings":"AAAA,SAAS,aAAa;AACtB;AAAA,EAEE;AAAA,EACA;AAAA,OAEK;AAKA,SAAS,wBACd,MACA,YACyB;AACzB,QAAM,QACJ,MAAM,IAAI,EACP,KAAK,EAAE,CAAC,0BAA0B,GAAG,+BAA+B,GAAG,SAAO,IAAI,KAAK,EACvF,UAAU,SAAO,GAAG,KAAK,WAAW,OAAO;AAEhD,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/controls/checkbox.ts"],"sourcesContent":["import { match } from 'ts-pattern'\nimport {\n CheckboxControlData,\n CheckboxControlDataTypeKey,\n CheckboxControlDataTypeValueV1,\n CheckboxControlDefinition,\n} from '@makeswift/controls'\n\nexport type CheckboxControlValue<T extends CheckboxControlDefinition> =\n undefined extends T['config']['defaultValue'] ? boolean | undefined : boolean\n\nexport function useCheckboxControlValue<T extends CheckboxControlDefinition>(\n data: CheckboxControlData | undefined,\n definition: T,\n): CheckboxControlValue<T> {\n const value: boolean | undefined =\n match(data)\n .with({ [CheckboxControlDataTypeKey]: CheckboxControlDataTypeValueV1 }, val => val.value)\n .otherwise(val => val) ?? definition.config.defaultValue\n\n return value as CheckboxControlValue<T>\n}\n"],"mappings":"AAAA,SAAS,aAAa;AACtB;AAAA,EAEE;AAAA,EACA;AAAA,OAEK;AAKA,SAAS,wBACd,MACA,YACyB;AACzB,QAAM,QACJ,MAAM,IAAI,EACP,KAAK,EAAE,CAAC,0BAA0B,GAAG,+BAA+B,GAAG,SAAO,IAAI,KAAK,EACvF,UAAU,SAAO,GAAG,KAAK,WAAW,OAAO;AAEhD,SAAO;AACT;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/controls/color.ts"],"sourcesContent":["import Color from 'color'\nimport { ColorControlData, ColorControlDefinition } from '../../../controls/color'\nimport { useSwatch } from '../hooks/makeswift-api'\n\nexport type ColorControlValue<T extends ColorControlDefinition> =\n undefined extends T['config']['defaultValue'] ? string | undefined : string\n\nexport function useColorValue<T extends ColorControlDefinition>(\n data: ColorControlData | undefined,\n definition: T,\n): ColorControlValue<any> {\n const swatchId = data?.swatchId ?? null\n const swatch = useSwatch(swatchId)\n const alpha = data?.alpha ?? 1\n\n if (swatch == null) {\n const { defaultValue } = definition.config\n\n if (defaultValue === undefined) return undefined as ColorControlValue<T>\n\n let defaultColor\n try {\n defaultColor = Color(definition.config.defaultValue)\n } catch {\n defaultColor = Color()\n }\n\n return defaultColor.rgb().string()\n }\n\n return Color({ h: swatch.hue, s: swatch.saturation, l: swatch.lightness })\n .alpha(alpha)\n .rgb()\n .string()\n}\n"],"mappings":"AAAA,OAAO,WAAW;AAElB,SAAS,iBAAiB;AAKnB,SAAS,cACd,MACA,YACwB;AACxB,QAAM,WAAW,MAAM,YAAY;AACnC,QAAM,SAAS,UAAU,QAAQ;AACjC,QAAM,QAAQ,MAAM,SAAS;AAE7B,MAAI,UAAU,MAAM;AAClB,UAAM,EAAE,aAAa,IAAI,WAAW;AAEpC,QAAI,iBAAiB;AAAW,aAAO;AAEvC,QAAI;AACJ,QAAI;AACF,qBAAe,MAAM,WAAW,OAAO,YAAY;AAAA,IACrD,QAAQ;AACN,qBAAe,MAAM;AAAA,IACvB;AAEA,WAAO,aAAa,IAAI,EAAE,OAAO;AAAA,EACnC;AAEA,SAAO,MAAM,EAAE,GAAG,OAAO,KAAK,GAAG,OAAO,YAAY,GAAG,OAAO,UAAU,CAAC,EACtE,MAAM,KAAK,EACX,IAAI,EACJ,OAAO;AACZ;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/controls/color.ts"],"sourcesContent":["import Color from 'color'\nimport { ColorControlData, ColorControlDefinition } from '@makeswift/controls'\nimport { useSwatch } from '../hooks/makeswift-api'\n\nexport type ColorControlValue<T extends ColorControlDefinition> =\n undefined extends T['config']['defaultValue'] ? string | undefined : string\n\nexport function useColorValue<T extends ColorControlDefinition>(\n data: ColorControlData | undefined,\n definition: T,\n): ColorControlValue<any> {\n const swatchId = data?.swatchId ?? null\n const swatch = useSwatch(swatchId)\n const alpha = data?.alpha ?? 1\n\n if (swatch == null) {\n const { defaultValue } = definition.config\n\n if (defaultValue === undefined) return undefined as ColorControlValue<T>\n\n let defaultColor\n try {\n defaultColor = Color(definition.config.defaultValue)\n } catch {\n defaultColor = Color()\n }\n\n return defaultColor.rgb().string()\n }\n\n return Color({ h: swatch.hue, s: swatch.saturation, l: swatch.lightness })\n .alpha(alpha)\n .rgb()\n .string()\n}\n"],"mappings":"AAAA,OAAO,WAAW;AAElB,SAAS,iBAAiB;AAKnB,SAAS,cACd,MACA,YACwB;AACxB,QAAM,WAAW,MAAM,YAAY;AACnC,QAAM,SAAS,UAAU,QAAQ;AACjC,QAAM,QAAQ,MAAM,SAAS;AAE7B,MAAI,UAAU,MAAM;AAClB,UAAM,EAAE,aAAa,IAAI,WAAW;AAEpC,QAAI,iBAAiB;AAAW,aAAO;AAEvC,QAAI;AACJ,QAAI;AACF,qBAAe,MAAM,WAAW,OAAO,YAAY;AAAA,IACrD,QAAQ;AACN,qBAAe,MAAM;AAAA,IACvB;AAEA,WAAO,aAAa,IAAI,EAAE,OAAO;AAAA,EACnC;AAEA,SAAO,MAAM,EAAE,GAAG,OAAO,KAAK,GAAG,OAAO,YAAY,GAAG,OAAO,UAAU,CAAC,EACtE,MAAM,KAAK,EACX,IAAI,EACJ,OAAO;AACZ;","names":[]}
@@ -1,12 +1,17 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import {
3
3
  CheckboxControlType,
4
+ NumberControlType,
5
+ TextInputControlType,
6
+ TextAreaControlType
7
+ } from "@makeswift/controls";
8
+ import {
4
9
  ColorControlType,
5
10
  ComboboxControlType,
11
+ IconRadioGroupControlType,
6
12
  ImageControlType,
7
13
  LinkControlType,
8
14
  ListControlType,
9
- NumberControlType,
10
15
  RichTextControlType,
11
16
  RichTextV2ControlType,
12
17
  SelectControlType,
@@ -14,13 +19,8 @@ import {
14
19
  SlotControlType,
15
20
  StyleControlType,
16
21
  StyleV2ControlType,
17
- TextAreaControlType,
18
- TextInputControlType,
19
22
  TypographyControlType
20
23
  } from "../../../controls";
21
- import {
22
- IconRadioGroupControlType
23
- } from "../../../controls/icon-radio-group";
24
24
  import { RenderHook } from "../components";
25
25
  import { useCheckboxControlValue } from "./checkbox";
26
26
  import { useColorValue } from "./color";
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/controls/control.tsx"],"sourcesContent":["import {\n CheckboxControlData,\n CheckboxControlDefinition,\n CheckboxControlType,\n ColorControlData,\n ColorControlDefinition,\n ColorControlType,\n ComboboxControlData,\n ComboboxControlDefinition,\n ComboboxControlType,\n ControlDefinition,\n ControlDefinitionData,\n ImageControlData,\n ImageControlDefinition,\n ImageControlType,\n LinkControlData,\n LinkControlDefinition,\n LinkControlType,\n ListControl,\n ListControlData,\n ListControlDefinition,\n ListControlType,\n NumberControlData,\n NumberControlDefinition,\n NumberControlType,\n RichTextControl,\n RichTextControlData,\n RichTextControlDefinition,\n RichTextControlType,\n RichTextV2Control,\n RichTextV2ControlData,\n RichTextV2ControlDefinition,\n RichTextV2ControlType,\n SelectControlData,\n SelectControlDefinition,\n SelectControlType,\n ShapeControl,\n ShapeControlData,\n ShapeControlDefinition,\n ShapeControlType,\n SlotControl,\n SlotControlData,\n SlotControlDefinition,\n SlotControlType,\n StyleControl,\n StyleControlData,\n StyleControlDefinition,\n StyleControlType,\n StyleV2Control,\n StyleV2ControlData,\n StyleV2ControlDefinition,\n StyleV2ControlType,\n TextAreaControlData,\n TextAreaControlDefinition,\n TextAreaControlType,\n TextInputControlData,\n TextInputControlDefinition,\n TextInputControlType,\n TypographyControlData,\n TypographyControlDefinition,\n TypographyControlType,\n} from '../../../controls'\nimport {\n IconRadioGroupControlData,\n IconRadioGroupControlDefinition,\n IconRadioGroupControlType,\n} from '../../../controls/icon-radio-group'\nimport { AnyPropController } from '../../../prop-controllers/instances'\nimport { RenderHook } from '../components'\nimport { CheckboxControlValue, useCheckboxControlValue } from './checkbox'\nimport { ColorControlValue, useColorValue } from './color'\nimport { ComboboxControlValue, useComboboxControlValue } from './combobox'\nimport { IconRadioGroupControlValue, useIconRadioGroupValue } from './icon-radio-group'\nimport { ResolveImageControlValue, useImageControlValue } from './image'\nimport { LinkControlValue, useLinkControlValue } from './link'\nimport { ListControlValue } from './list'\nimport { NumberControlValue, useNumber } from './number'\nimport { RichTextControlValue, useRichText } from './rich-text/rich-text'\nimport { RichTextV2ControlValue, useRichTextV2 } from './rich-text-v2'\nimport { SelectControlValue, useSelectControlValue } from './select'\nimport { ShapeControlValue } from './shape'\nimport { SlotControlValue, useSlot } from './slot'\nimport { StyleControlFormattedValue, useFormattedStyle } from './style'\nimport { StyleV2ControlFormattedValue, StyleV2ControlValue } from './style-v2'\nimport { TextAreaControlValue, useTextAreaValue } from './text-area'\nimport { TextInputControlValue, useTextInputValue } from './text-input'\nimport { TypographyControlValue, useTypographyValue } from './typography'\n\nexport type ControlDefinitionValue<T extends ControlDefinition> =\n T extends CheckboxControlDefinition\n ? CheckboxControlValue<T>\n : T extends NumberControlDefinition\n ? NumberControlValue<T>\n : T extends TextInputControlDefinition\n ? TextInputControlValue<T>\n : T extends TextAreaControlDefinition\n ? TextAreaControlValue<T>\n : T extends SelectControlDefinition\n ? SelectControlValue<T>\n : T extends ColorControlDefinition\n ? ColorControlValue<T>\n : T extends ImageControlDefinition\n ? ResolveImageControlValue<T>\n : T extends IconRadioGroupControlDefinition\n ? IconRadioGroupControlValue<T>\n : T extends LinkControlDefinition\n ? LinkControlValue<T>\n : T extends ComboboxControlDefinition\n ? ComboboxControlValue<T>\n : T extends ShapeControlDefinition\n ? ShapeControlValue<T>\n : T extends ListControlDefinition\n ? ListControlValue<T>\n : T extends SlotControlDefinition\n ? SlotControlValue\n : T extends RichTextControlDefinition\n ? RichTextControlValue\n : T extends RichTextV2ControlDefinition\n ? RichTextV2ControlValue\n : T extends StyleControlDefinition\n ? StyleControlFormattedValue\n : T extends StyleV2ControlDefinition\n ? StyleV2ControlFormattedValue\n : T extends TypographyControlDefinition\n ? TypographyControlValue\n : never\n\ntype ControlValueProps<T extends ControlDefinition> = {\n definition: T\n data: ControlDefinitionData<T> | undefined\n children(value: ControlDefinitionValue<T>): JSX.Element\n control?: AnyPropController\n}\n\nexport function ControlValue<T extends ControlDefinition>({\n data,\n definition,\n children,\n control,\n}: ControlValueProps<T>): JSX.Element {\n switch (definition.type) {\n case CheckboxControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useCheckboxControlValue}\n parameters={[data as CheckboxControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case NumberControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useNumber}\n parameters={[data as NumberControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case TextInputControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useTextInputValue}\n parameters={[data as TextInputControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case TextAreaControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useTextAreaValue}\n parameters={[data as TextAreaControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case SelectControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useSelectControlValue}\n parameters={[data as SelectControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case ColorControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useColorValue}\n parameters={[data as ColorControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case IconRadioGroupControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useIconRadioGroupValue}\n parameters={[data as IconRadioGroupControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case ImageControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useImageControlValue}\n parameters={[data as ImageControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case LinkControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useLinkControlValue}\n parameters={[data as LinkControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case ComboboxControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useComboboxControlValue}\n parameters={[data as ComboboxControlData]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case ShapeControlType:\n return (\n <ShapeControlValue\n definition={definition}\n data={data as ShapeControlData}\n control={control as ShapeControl}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </ShapeControlValue>\n )\n\n case ListControlType:\n return (\n <ListControlValue\n definition={definition}\n data={data as ListControlData}\n control={control as ListControl}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </ListControlValue>\n )\n\n case StyleV2ControlType:\n return (\n <StyleV2ControlValue\n key={definition.type}\n data={data as StyleV2ControlData}\n definition={definition}\n control={control as StyleV2Control}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </StyleV2ControlValue>\n )\n\n case SlotControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useSlot}\n parameters={[data as unknown as SlotControlData, control as SlotControl]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case RichTextControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useRichText}\n parameters={[data as unknown as RichTextControlData, control as RichTextControl]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case RichTextV2ControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useRichTextV2}\n parameters={[\n data as unknown as RichTextV2ControlData,\n definition,\n control as RichTextV2Control,\n ]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case StyleControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useFormattedStyle}\n parameters={[data as unknown as StyleControlData, definition, control as StyleControl]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case TypographyControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useTypographyValue}\n parameters={[data as unknown as TypographyControlData[number]]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n default:\n return children(data as ControlDefinitionValue<T>)\n }\n}\n"],"mappings":"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","names":[]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/controls/control.tsx"],"sourcesContent":["import {\n CheckboxControlData,\n CheckboxControlDefinition,\n CheckboxControlType,\n NumberControlData,\n NumberControlDefinition,\n NumberControlType,\n TextInputControlData,\n TextInputControlDefinition,\n TextInputControlType,\n TextAreaControlData,\n TextAreaControlDefinition,\n TextAreaControlType,\n} from '@makeswift/controls'\nimport {\n ColorControlData,\n ColorControlDefinition,\n ColorControlType,\n ComboboxControlData,\n ComboboxControlDefinition,\n ComboboxControlType,\n ControlDefinition,\n ControlDefinitionData,\n IconRadioGroupControlData,\n IconRadioGroupControlDefinition,\n IconRadioGroupControlType,\n ImageControlData,\n ImageControlDefinition,\n ImageControlType,\n LinkControlData,\n LinkControlDefinition,\n LinkControlType,\n ListControl,\n ListControlData,\n ListControlDefinition,\n ListControlType,\n RichTextControl,\n RichTextControlData,\n RichTextControlDefinition,\n RichTextControlType,\n RichTextV2Control,\n RichTextV2ControlData,\n RichTextV2ControlDefinition,\n RichTextV2ControlType,\n SelectControlData,\n SelectControlDefinition,\n SelectControlType,\n ShapeControl,\n ShapeControlData,\n ShapeControlDefinition,\n ShapeControlType,\n SlotControl,\n SlotControlData,\n SlotControlDefinition,\n SlotControlType,\n StyleControl,\n StyleControlData,\n StyleControlDefinition,\n StyleControlType,\n StyleV2Control,\n StyleV2ControlData,\n StyleV2ControlDefinition,\n StyleV2ControlType,\n TypographyControlData,\n TypographyControlDefinition,\n TypographyControlType,\n} from '../../../controls'\n\nimport { AnyPropController } from '../../../prop-controllers/instances'\nimport { RenderHook } from '../components'\nimport { CheckboxControlValue, useCheckboxControlValue } from './checkbox'\nimport { ColorControlValue, useColorValue } from './color'\nimport { ComboboxControlValue, useComboboxControlValue } from './combobox'\nimport { IconRadioGroupControlValue, useIconRadioGroupValue } from './icon-radio-group'\nimport { ResolveImageControlValue, useImageControlValue } from './image'\nimport { LinkControlValue, useLinkControlValue } from './link'\nimport { ListControlValue } from './list'\nimport { NumberControlValue, useNumber } from './number'\nimport { RichTextControlValue, useRichText } from './rich-text/rich-text'\nimport { RichTextV2ControlValue, useRichTextV2 } from './rich-text-v2'\nimport { SelectControlValue, useSelectControlValue } from './select'\nimport { ShapeControlValue } from './shape'\nimport { SlotControlValue, useSlot } from './slot'\nimport { StyleControlFormattedValue, useFormattedStyle } from './style'\nimport { StyleV2ControlFormattedValue, StyleV2ControlValue } from './style-v2'\nimport { TextAreaControlValue, useTextAreaValue } from './text-area'\nimport { TextInputControlValue, useTextInputValue } from './text-input'\nimport { TypographyControlValue, useTypographyValue } from './typography'\n\nexport type ControlDefinitionValue<T extends ControlDefinition> =\n T extends CheckboxControlDefinition\n ? CheckboxControlValue<T>\n : T extends NumberControlDefinition\n ? NumberControlValue<T>\n : T extends TextInputControlDefinition\n ? TextInputControlValue<T>\n : T extends TextAreaControlDefinition\n ? TextAreaControlValue<T>\n : T extends SelectControlDefinition\n ? SelectControlValue<T>\n : T extends ColorControlDefinition\n ? ColorControlValue<T>\n : T extends ImageControlDefinition\n ? ResolveImageControlValue<T>\n : T extends IconRadioGroupControlDefinition\n ? IconRadioGroupControlValue<T>\n : T extends LinkControlDefinition\n ? LinkControlValue<T>\n : T extends ComboboxControlDefinition\n ? ComboboxControlValue<T>\n : T extends ShapeControlDefinition\n ? ShapeControlValue<T>\n : T extends ListControlDefinition\n ? ListControlValue<T>\n : T extends SlotControlDefinition\n ? SlotControlValue\n : T extends RichTextControlDefinition\n ? RichTextControlValue\n : T extends RichTextV2ControlDefinition\n ? RichTextV2ControlValue\n : T extends StyleControlDefinition\n ? StyleControlFormattedValue\n : T extends StyleV2ControlDefinition\n ? StyleV2ControlFormattedValue\n : T extends TypographyControlDefinition\n ? TypographyControlValue\n : never\n\ntype ControlValueProps<T extends ControlDefinition> = {\n definition: T\n data: ControlDefinitionData<T> | undefined\n children(value: ControlDefinitionValue<T>): JSX.Element\n control?: AnyPropController\n}\n\nexport function ControlValue<T extends ControlDefinition>({\n data,\n definition,\n children,\n control,\n}: ControlValueProps<T>): JSX.Element {\n switch (definition.type) {\n case CheckboxControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useCheckboxControlValue}\n parameters={[data as CheckboxControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case NumberControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useNumber}\n parameters={[data as NumberControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case TextInputControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useTextInputValue}\n parameters={[data as TextInputControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case TextAreaControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useTextAreaValue}\n parameters={[data as TextAreaControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case SelectControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useSelectControlValue}\n parameters={[data as SelectControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case ColorControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useColorValue}\n parameters={[data as ColorControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case IconRadioGroupControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useIconRadioGroupValue}\n parameters={[data as IconRadioGroupControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case ImageControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useImageControlValue}\n parameters={[data as ImageControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case LinkControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useLinkControlValue}\n parameters={[data as LinkControlData, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case ComboboxControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useComboboxControlValue}\n parameters={[data as ComboboxControlData]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case ShapeControlType:\n return (\n <ShapeControlValue\n definition={definition}\n data={data as ShapeControlData}\n control={control as ShapeControl}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </ShapeControlValue>\n )\n\n case ListControlType:\n return (\n <ListControlValue\n definition={definition}\n data={data as ListControlData}\n control={control as ListControl}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </ListControlValue>\n )\n\n case StyleV2ControlType:\n return (\n <StyleV2ControlValue\n key={definition.type}\n data={data as StyleV2ControlData}\n definition={definition}\n control={control as StyleV2Control}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </StyleV2ControlValue>\n )\n\n case SlotControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useSlot}\n parameters={[data as unknown as SlotControlData, control as SlotControl]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case RichTextControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useRichText}\n parameters={[data as unknown as RichTextControlData, control as RichTextControl]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case RichTextV2ControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useRichTextV2}\n parameters={[\n data as unknown as RichTextV2ControlData,\n definition,\n control as RichTextV2Control,\n ]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case StyleControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useFormattedStyle}\n parameters={[data as unknown as StyleControlData, definition, control as StyleControl]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n case TypographyControlType:\n return (\n <RenderHook\n key={definition.type}\n hook={useTypographyValue}\n parameters={[data as unknown as TypographyControlData[number]]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n\n default:\n return children(data as ControlDefinitionValue<T>)\n }\n}\n"],"mappings":"AAgJQ;AAhJR;AAAA,EAGE;AAAA,EAGA;AAAA,EAGA;AAAA,EAGA;AAAA,OACK;AACP;AAAA,EAGE;AAAA,EAGA;AAAA,EAKA;AAAA,EAGA;AAAA,EAGA;AAAA,EAIA;AAAA,EAIA;AAAA,EAIA;AAAA,EAGA;AAAA,EAIA;AAAA,EAIA;AAAA,EAIA;AAAA,EAIA;AAAA,EAGA;AAAA,OACK;AAGP,SAAS,kBAAkB;AAC3B,SAA+B,+BAA+B;AAC9D,SAA4B,qBAAqB;AACjD,SAA+B,+BAA+B;AAC9D,SAAqC,8BAA8B;AACnE,SAAmC,4BAA4B;AAC/D,SAA2B,2BAA2B;AACtD,SAAS,wBAAwB;AACjC,SAA6B,iBAAiB;AAC9C,SAA+B,mBAAmB;AAClD,SAAiC,qBAAqB;AACtD,SAA6B,6BAA6B;AAC1D,SAAS,yBAAyB;AAClC,SAA2B,eAAe;AAC1C,SAAqC,yBAAyB;AAC9D,SAAuC,2BAA2B;AAClE,SAA+B,wBAAwB;AACvD,SAAgC,yBAAyB;AACzD,SAAiC,0BAA0B;AAgDpD,SAAS,aAA0C;AAAA,EACxD;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAAsC;AACpC,UAAQ,WAAW,MAAM;AAAA,IACvB,KAAK;AACH,aACE;AAAA,QAAC;AAAA;AAAA,UAEC,MAAM;AAAA,UACN,YAAY,CAAC,MAA6B,UAAU;AAAA,UAEnD,qBAAS,SAAS,KAAkC;AAAA;AAAA,QAJhD,WAAW;AAAA,MAKlB;AAAA,IAGJ,KAAK;AACH,aACE;AAAA,QAAC;AAAA;AAAA,UAEC,MAAM;AAAA,UACN,YAAY,CAAC,MAA2B,UAAU;AAAA,UAEjD,qBAAS,SAAS,KAAkC;AAAA;AAAA,QAJhD,WAAW;AAAA,MAKlB;AAAA,IAGJ,KAAK;AACH,aACE;AAAA,QAAC;AAAA;AAAA,UAEC,MAAM;AAAA,UACN,YAAY,CAAC,MAA8B,UAAU;AAAA,UAEpD,qBAAS,SAAS,KAAkC;AAAA;AAAA,QAJhD,WAAW;AAAA,MAKlB;AAAA,IAGJ,KAAK;AACH,aACE;AAAA,QAAC;AAAA;AAAA,UAEC,MAAM;AAAA,UACN,YAAY,CAAC,MAA6B,UAAU;AAAA,UAEnD,qBAAS,SAAS,KAAkC;AAAA;AAAA,QAJhD,WAAW;AAAA,MAKlB;AAAA,IAGJ,KAAK;AACH,aACE;AAAA,QAAC;AAAA;AAAA,UAEC,MAAM;AAAA,UACN,YAAY,CAAC,MAA2B,UAAU;AAAA,UAEjD,qBAAS,SAAS,KAAkC;AAAA;AAAA,QAJhD,WAAW;AAAA,MAKlB;AAAA,IAGJ,KAAK;AACH,aACE;AAAA,QAAC;AAAA;AAAA,UAEC,MAAM;AAAA,UACN,YAAY,CAAC,MAA0B,UAAU;AAAA,UAEhD,qBAAS,SAAS,KAAkC;AAAA;AAAA,QAJhD,WAAW;AAAA,MAKlB;AAAA,IAGJ,KAAK;AACH,aACE;AAAA,QAAC;AAAA;AAAA,UAEC,MAAM;AAAA,UACN,YAAY,CAAC,MAAmC,UAAU;AAAA,UAEzD,qBAAS,SAAS,KAAkC;AAAA;AAAA,QAJhD,WAAW;AAAA,MAKlB;AAAA,IAGJ,KAAK;AACH,aACE;AAAA,QAAC;AAAA;AAAA,UAEC,MAAM;AAAA,UACN,YAAY,CAAC,MAA0B,UAAU;AAAA,UAEhD,qBAAS,SAAS,KAAkC;AAAA;AAAA,QAJhD,WAAW;AAAA,MAKlB;AAAA,IAGJ,KAAK;AACH,aACE;AAAA,QAAC;AAAA;AAAA,UAEC,MAAM;AAAA,UACN,YAAY,CAAC,MAAyB,UAAU;AAAA,UAE/C,qBAAS,SAAS,KAAkC;AAAA;AAAA,QAJhD,WAAW;AAAA,MAKlB;AAAA,IAGJ,KAAK;AACH,aACE;AAAA,QAAC;AAAA;AAAA,UAEC,MAAM;AAAA,UACN,YAAY,CAAC,IAA2B;AAAA,UAEvC,qBAAS,SAAS,KAAkC;AAAA;AAAA,QAJhD,WAAW;AAAA,MAKlB;AAAA,IAGJ,KAAK;AACH,aACE;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UAEC,qBAAS,SAAS,KAAkC;AAAA;AAAA,MACvD;AAAA,IAGJ,KAAK;AACH,aACE;AAAA,QAAC;AAAA;AAAA,UACC;AAAA,UACA;AAAA,UACA;AAAA,UAEC,qBAAS,SAAS,KAAkC;AAAA;AAAA,MACvD;AAAA,IAGJ,KAAK;AACH,aACE;AAAA,QAAC;AAAA;AAAA,UAEC;AAAA,UACA;AAAA,UACA;AAAA,UAEC,qBAAS,SAAS,KAAkC;AAAA;AAAA,QALhD,WAAW;AAAA,MAMlB;AAAA,IAGJ,KAAK;AACH,aACE;AAAA,QAAC;AAAA;AAAA,UAEC,MAAM;AAAA,UACN,YAAY,CAAC,MAAoC,OAAsB;AAAA,UAEtE,qBAAS,SAAS,KAAkC;AAAA;AAAA,QAJhD,WAAW;AAAA,MAKlB;AAAA,IAGJ,KAAK;AACH,aACE;AAAA,QAAC;AAAA;AAAA,UAEC,MAAM;AAAA,UACN,YAAY,CAAC,MAAwC,OAA0B;AAAA,UAE9E,qBAAS,SAAS,KAAkC;AAAA;AAAA,QAJhD,WAAW;AAAA,MAKlB;AAAA,IAGJ,KAAK;AACH,aACE;AAAA,QAAC;AAAA;AAAA,UAEC,MAAM;AAAA,UACN,YAAY;AAAA,YACV;AAAA,YACA;AAAA,YACA;AAAA,UACF;AAAA,UAEC,qBAAS,SAAS,KAAkC;AAAA;AAAA,QARhD,WAAW;AAAA,MASlB;AAAA,IAGJ,KAAK;AACH,aACE;AAAA,QAAC;AAAA;AAAA,UAEC,MAAM;AAAA,UACN,YAAY,CAAC,MAAqC,YAAY,OAAuB;AAAA,UAEpF,qBAAS,SAAS,KAAkC;AAAA;AAAA,QAJhD,WAAW;AAAA,MAKlB;AAAA,IAGJ,KAAK;AACH,aACE;AAAA,QAAC;AAAA;AAAA,UAEC,MAAM;AAAA,UACN,YAAY,CAAC,IAAgD;AAAA,UAE5D,qBAAS,SAAS,KAAkC;AAAA;AAAA,QAJhD,WAAW;AAAA,MAKlB;AAAA,IAGJ;AACE,aAAO,SAAS,IAAiC;AAAA,EACrD;AACF;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/controls/icon-radio-group.ts"],"sourcesContent":["import {\n IconRadioGroupControlData,\n IconRadioGroupControlDefinition,\n} from '../../../controls/icon-radio-group'\n\nexport type IconRadioGroupControlValue<T extends IconRadioGroupControlDefinition> =\n undefined extends T['config']['defaultValue']\n ? IconRadioGroupControlData | undefined\n : IconRadioGroupControlData\n\nexport function useIconRadioGroupValue<T extends IconRadioGroupControlDefinition>(\n iconRadioGroupControlData: IconRadioGroupControlData | undefined,\n controlDefinition: T,\n): IconRadioGroupControlValue<T> {\n return (iconRadioGroupControlData ??\n controlDefinition.config.defaultValue) as IconRadioGroupControlValue<T>\n}\n"],"mappings":"AAUO,SAAS,uBACd,2BACA,mBAC+B;AAC/B,SAAQ,6BACN,kBAAkB,OAAO;AAC7B;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/controls/icon-radio-group.ts"],"sourcesContent":["import { IconRadioGroupControlData, IconRadioGroupControlDefinition } from '@makeswift/controls'\n\nexport type IconRadioGroupControlValue<T extends IconRadioGroupControlDefinition> =\n undefined extends T['config']['defaultValue']\n ? IconRadioGroupControlData | undefined\n : IconRadioGroupControlData\n\nexport function useIconRadioGroupValue<T extends IconRadioGroupControlDefinition>(\n iconRadioGroupControlData: IconRadioGroupControlData | undefined,\n controlDefinition: T,\n): IconRadioGroupControlValue<T> {\n return (iconRadioGroupControlData ??\n controlDefinition.config.defaultValue) as IconRadioGroupControlValue<T>\n}\n"],"mappings":"AAOO,SAAS,uBACd,2BACA,mBAC+B;AAC/B,SAAQ,6BACN,kBAAkB,OAAO;AAC7B;","names":[]}
@@ -2,7 +2,7 @@ import { match } from "ts-pattern";
2
2
  import {
3
3
  NumberControlDataTypeKey,
4
4
  NumberControlDataTypeValueV1
5
- } from "../../../controls";
5
+ } from "@makeswift/controls";
6
6
  function useNumber(data, definition) {
7
7
  const value = match(data).with({ [NumberControlDataTypeKey]: NumberControlDataTypeValueV1 }, (val) => val.value).otherwise((val) => val) ?? definition.config.defaultValue;
8
8
  return value;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/controls/number.ts"],"sourcesContent":["import { match } from 'ts-pattern'\nimport {\n NumberControlData,\n NumberControlDataTypeKey,\n NumberControlDataTypeValueV1,\n NumberControlDefinition,\n} from '../../../controls'\n\nexport type NumberControlValue<T extends NumberControlDefinition> =\n undefined extends T['config']['defaultValue'] ? number | undefined : number\n\nexport function useNumber<T extends NumberControlDefinition>(\n data: NumberControlData | undefined,\n definition: T,\n): NumberControlValue<T> {\n const value: number | undefined =\n match(data)\n .with({ [NumberControlDataTypeKey]: NumberControlDataTypeValueV1 }, val => val.value)\n .otherwise(val => val) ?? definition.config.defaultValue\n\n return value as NumberControlValue<T>\n}\n"],"mappings":"AAAA,SAAS,aAAa;AACtB;AAAA,EAEE;AAAA,EACA;AAAA,OAEK;AAKA,SAAS,UACd,MACA,YACuB;AACvB,QAAM,QACJ,MAAM,IAAI,EACP,KAAK,EAAE,CAAC,wBAAwB,GAAG,6BAA6B,GAAG,SAAO,IAAI,KAAK,EACnF,UAAU,SAAO,GAAG,KAAK,WAAW,OAAO;AAEhD,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/controls/number.ts"],"sourcesContent":["import { match } from 'ts-pattern'\nimport {\n NumberControlData,\n NumberControlDataTypeKey,\n NumberControlDataTypeValueV1,\n NumberControlDefinition,\n} from '@makeswift/controls'\n\nexport type NumberControlValue<T extends NumberControlDefinition> =\n undefined extends T['config']['defaultValue'] ? number | undefined : number\n\nexport function useNumber<T extends NumberControlDefinition>(\n data: NumberControlData | undefined,\n definition: T,\n): NumberControlValue<T> {\n const value: number | undefined =\n match(data)\n .with({ [NumberControlDataTypeKey]: NumberControlDataTypeValueV1 }, val => val.value)\n .otherwise(val => val) ?? definition.config.defaultValue\n\n return value as NumberControlValue<T>\n}\n"],"mappings":"AAAA,SAAS,aAAa;AACtB;AAAA,EAEE;AAAA,EACA;AAAA,OAEK;AAKA,SAAS,UACd,MACA,YACuB;AACvB,QAAM,QACJ,MAAM,IAAI,EACP,KAAK,EAAE,CAAC,wBAAwB,GAAG,6BAA6B,GAAG,SAAO,IAAI,KAAK,EACnF,UAAU,SAAO,GAAG,KAAK,WAAW,OAAO;AAEhD,SAAO;AACT;","names":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/controls/style-v2.tsx"],"sourcesContent":["import { StyleV2Control, StyleV2ControlData, StyleV2ControlDefinition } from '../../../controls'\nimport { useStyle } from '../use-style'\nimport {\n findBreakpointOverride,\n getBaseBreakpoint,\n getBreakpointMediaQuery,\n mergeOrCoalesceFallbacks,\n} from '../../../state/modules/breakpoints'\nimport { CSSObject } from '@emotion/css'\n\nimport { ControlDefinitionValue, ControlValue } from './control'\nimport { RenderHook } from '../components'\nimport { DeviceOverride } from '../../../controls/types'\nimport { useBreakpoints } from '../hooks/use-breakpoints'\n\nfunction useStyleControlCssObject(\n styleControlData: StyleV2ControlData,\n controlDefinition: StyleV2ControlDefinition,\n): CSSObject {\n const breakpoints = useBreakpoints()\n\n return {\n ...controlDefinition.config.getStyle(\n findBreakpointOverride(\n breakpoints,\n styleControlData,\n getBaseBreakpoint(breakpoints).id,\n mergeOrCoalesceFallbacks,\n )?.value,\n ),\n ...breakpoints.reduce((styles, breakpoint) => {\n return {\n ...styles,\n [getBreakpointMediaQuery(breakpoint)]: controlDefinition.config.getStyle(\n findBreakpointOverride(\n breakpoints,\n styleControlData,\n breakpoint.id,\n mergeOrCoalesceFallbacks,\n )?.value,\n ),\n }\n }, {}),\n }\n}\n\nexport type StyleV2ControlFormattedValue = string\n\nexport function useFormattedStyleV2<T extends StyleV2ControlDefinition>(\n styleControlData: StyleV2ControlData,\n controlDefinition: T,\n): StyleV2ControlFormattedValue {\n const styles = useStyleControlCssObject(styleControlData, controlDefinition)\n\n return useStyle(styles)\n}\n\ntype StyleV2ControlValueProps<T extends StyleV2ControlDefinition> = {\n definition: T\n data: StyleV2ControlData | undefined\n children(value: string): JSX.Element\n control?: StyleV2Control\n}\n\nexport function StyleV2ControlValue<T extends StyleV2ControlDefinition>({\n definition,\n data,\n children,\n control,\n}: StyleV2ControlValueProps<T>): JSX.Element {\n return (data ?? []).reduceRight(\n (renderFn, deviceOverrideData: DeviceOverride<any>) => responsiveValue => {\n return (\n <ControlValue\n definition={definition.config.type}\n data={deviceOverrideData.value}\n control={control?.control}\n >\n {value => renderFn([{ ...deviceOverrideData, value }, ...responsiveValue])}\n </ControlValue>\n )\n },\n (value: StyleV2ControlData) => {\n return (\n <RenderHook\n key={definition.type}\n hook={useFormattedStyleV2}\n parameters={[value, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n },\n )([])\n}\n"],"mappings":"AAyEQ;AAxER,SAAS,gBAAgB;AACzB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP,SAAiC,oBAAoB;AACrD,SAAS,kBAAkB;AAE3B,SAAS,sBAAsB;AAE/B,SAAS,yBACP,kBACA,mBACW;AACX,QAAM,cAAc,eAAe;AAEnC,SAAO;AAAA,IACL,GAAG,kBAAkB,OAAO;AAAA,MAC1B;AAAA,QACE;AAAA,QACA;AAAA,QACA,kBAAkB,WAAW,EAAE;AAAA,QAC/B;AAAA,MACF,GAAG;AAAA,IACL;AAAA,IACA,GAAG,YAAY,OAAO,CAAC,QAAQ,eAAe;AAC5C,aAAO;AAAA,QACL,GAAG;AAAA,QACH,CAAC,wBAAwB,UAAU,CAAC,GAAG,kBAAkB,OAAO;AAAA,UAC9D;AAAA,YACE;AAAA,YACA;AAAA,YACA,WAAW;AAAA,YACX;AAAA,UACF,GAAG;AAAA,QACL;AAAA,MACF;AAAA,IACF,GAAG,CAAC,CAAC;AAAA,EACP;AACF;AAIO,SAAS,oBACd,kBACA,mBAC8B;AAC9B,QAAM,SAAS,yBAAyB,kBAAkB,iBAAiB;AAE3E,SAAO,SAAS,MAAM;AACxB;AASO,SAAS,oBAAwD;AAAA,EACtE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA6C;AAC3C,UAAQ,QAAQ,CAAC,GAAG;AAAA,IAClB,CAAC,UAAU,uBAA4C,qBAAmB;AACxE,aACE;AAAA,QAAC;AAAA;AAAA,UACC,YAAY,WAAW,OAAO;AAAA,UAC9B,MAAM,mBAAmB;AAAA,UACzB,SAAS,SAAS;AAAA,UAEjB,qBAAS,SAAS,CAAC,EAAE,GAAG,oBAAoB,MAAM,GAAG,GAAG,eAAe,CAAC;AAAA;AAAA,MAC3E;AAAA,IAEJ;AAAA,IACA,CAAC,UAA8B;AAC7B,aACE;AAAA,QAAC;AAAA;AAAA,UAEC,MAAM;AAAA,UACN,YAAY,CAAC,OAAO,UAAU;AAAA,UAE7B,WAAAA,WAAS,SAASA,MAAkC;AAAA;AAAA,QAJhD,WAAW;AAAA,MAKlB;AAAA,IAEJ;AAAA,EACF,EAAE,CAAC,CAAC;AACN;","names":["value"]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/controls/style-v2.tsx"],"sourcesContent":["import { DeviceOverride } from '@makeswift/controls'\nimport { StyleV2Control, StyleV2ControlData, StyleV2ControlDefinition } from '../../../controls'\nimport { useStyle } from '../use-style'\nimport {\n findBreakpointOverride,\n getBaseBreakpoint,\n getBreakpointMediaQuery,\n mergeOrCoalesceFallbacks,\n} from '../../../state/modules/breakpoints'\nimport { CSSObject } from '@emotion/css'\n\nimport { ControlDefinitionValue, ControlValue } from './control'\nimport { RenderHook } from '../components'\nimport { useBreakpoints } from '../hooks/use-breakpoints'\n\nfunction useStyleControlCssObject(\n styleControlData: StyleV2ControlData,\n controlDefinition: StyleV2ControlDefinition,\n): CSSObject {\n const breakpoints = useBreakpoints()\n\n return {\n ...controlDefinition.config.getStyle(\n findBreakpointOverride(\n breakpoints,\n styleControlData,\n getBaseBreakpoint(breakpoints).id,\n mergeOrCoalesceFallbacks,\n )?.value,\n ),\n ...breakpoints.reduce((styles, breakpoint) => {\n return {\n ...styles,\n [getBreakpointMediaQuery(breakpoint)]: controlDefinition.config.getStyle(\n findBreakpointOverride(\n breakpoints,\n styleControlData,\n breakpoint.id,\n mergeOrCoalesceFallbacks,\n )?.value,\n ),\n }\n }, {}),\n }\n}\n\nexport type StyleV2ControlFormattedValue = string\n\nexport function useFormattedStyleV2<T extends StyleV2ControlDefinition>(\n styleControlData: StyleV2ControlData,\n controlDefinition: T,\n): StyleV2ControlFormattedValue {\n const styles = useStyleControlCssObject(styleControlData, controlDefinition)\n\n return useStyle(styles)\n}\n\ntype StyleV2ControlValueProps<T extends StyleV2ControlDefinition> = {\n definition: T\n data: StyleV2ControlData | undefined\n children(value: string): JSX.Element\n control?: StyleV2Control\n}\n\nexport function StyleV2ControlValue<T extends StyleV2ControlDefinition>({\n definition,\n data,\n children,\n control,\n}: StyleV2ControlValueProps<T>): JSX.Element {\n return (data ?? []).reduceRight(\n (renderFn, deviceOverrideData: DeviceOverride<any>) => responsiveValue => {\n return (\n <ControlValue\n definition={definition.config.type}\n data={deviceOverrideData.value}\n control={control?.control}\n >\n {value => renderFn([{ ...deviceOverrideData, value }, ...responsiveValue])}\n </ControlValue>\n )\n },\n (value: StyleV2ControlData) => {\n return (\n <RenderHook\n key={definition.type}\n hook={useFormattedStyleV2}\n parameters={[value, definition]}\n >\n {value => children(value as ControlDefinitionValue<T>)}\n </RenderHook>\n )\n },\n )([])\n}\n"],"mappings":"AAyEQ;AAvER,SAAS,gBAAgB;AACzB;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AAGP,SAAiC,oBAAoB;AACrD,SAAS,kBAAkB;AAC3B,SAAS,sBAAsB;AAE/B,SAAS,yBACP,kBACA,mBACW;AACX,QAAM,cAAc,eAAe;AAEnC,SAAO;AAAA,IACL,GAAG,kBAAkB,OAAO;AAAA,MAC1B;AAAA,QACE;AAAA,QACA;AAAA,QACA,kBAAkB,WAAW,EAAE;AAAA,QAC/B;AAAA,MACF,GAAG;AAAA,IACL;AAAA,IACA,GAAG,YAAY,OAAO,CAAC,QAAQ,eAAe;AAC5C,aAAO;AAAA,QACL,GAAG;AAAA,QACH,CAAC,wBAAwB,UAAU,CAAC,GAAG,kBAAkB,OAAO;AAAA,UAC9D;AAAA,YACE;AAAA,YACA;AAAA,YACA,WAAW;AAAA,YACX;AAAA,UACF,GAAG;AAAA,QACL;AAAA,MACF;AAAA,IACF,GAAG,CAAC,CAAC;AAAA,EACP;AACF;AAIO,SAAS,oBACd,kBACA,mBAC8B;AAC9B,QAAM,SAAS,yBAAyB,kBAAkB,iBAAiB;AAE3E,SAAO,SAAS,MAAM;AACxB;AASO,SAAS,oBAAwD;AAAA,EACtE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA6C;AAC3C,UAAQ,QAAQ,CAAC,GAAG;AAAA,IAClB,CAAC,UAAU,uBAA4C,qBAAmB;AACxE,aACE;AAAA,QAAC;AAAA;AAAA,UACC,YAAY,WAAW,OAAO;AAAA,UAC9B,MAAM,mBAAmB;AAAA,UACzB,SAAS,SAAS;AAAA,UAEjB,qBAAS,SAAS,CAAC,EAAE,GAAG,oBAAoB,MAAM,GAAG,GAAG,eAAe,CAAC;AAAA;AAAA,MAC3E;AAAA,IAEJ;AAAA,IACA,CAAC,UAA8B;AAC7B,aACE;AAAA,QAAC;AAAA;AAAA,UAEC,MAAM;AAAA,UACN,YAAY,CAAC,OAAO,UAAU;AAAA,UAE7B,WAAAA,WAAS,SAASA,MAAkC;AAAA;AAAA,QAJhD,WAAW;AAAA,MAKlB;AAAA,IAEJ;AAAA,EACF,EAAE,CAAC,CAAC;AACN;","names":["value"]}
@@ -2,7 +2,7 @@ import { match } from "ts-pattern";
2
2
  import {
3
3
  TextAreaControlDataTypeKey,
4
4
  TextAreaControlDataTypeValueV1
5
- } from "../../../controls";
5
+ } from "@makeswift/controls";
6
6
  function useTextAreaValue(data, definition) {
7
7
  const value = match(data).with({ [TextAreaControlDataTypeKey]: TextAreaControlDataTypeValueV1 }, (val) => val.value).otherwise((val) => val) ?? definition.config.defaultValue;
8
8
  return value;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/controls/text-area.ts"],"sourcesContent":["import { match } from 'ts-pattern'\nimport {\n TextAreaControlData,\n TextAreaControlDataTypeKey,\n TextAreaControlDataTypeValueV1,\n TextAreaControlDefinition,\n} from '../../../controls'\n\nexport type TextAreaControlValue<T extends TextAreaControlDefinition> =\n undefined extends T['config']['defaultValue'] ? string | undefined : string\n\nexport function useTextAreaValue<T extends TextAreaControlDefinition>(\n data: TextAreaControlData | undefined,\n definition: T,\n): TextAreaControlValue<T> {\n const value: string | undefined =\n match(data)\n .with({ [TextAreaControlDataTypeKey]: TextAreaControlDataTypeValueV1 }, val => val.value)\n .otherwise(val => val) ?? definition.config.defaultValue\n\n return value as TextAreaControlValue<T>\n}\n"],"mappings":"AAAA,SAAS,aAAa;AACtB;AAAA,EAEE;AAAA,EACA;AAAA,OAEK;AAKA,SAAS,iBACd,MACA,YACyB;AACzB,QAAM,QACJ,MAAM,IAAI,EACP,KAAK,EAAE,CAAC,0BAA0B,GAAG,+BAA+B,GAAG,SAAO,IAAI,KAAK,EACvF,UAAU,SAAO,GAAG,KAAK,WAAW,OAAO;AAEhD,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/controls/text-area.ts"],"sourcesContent":["import { match } from 'ts-pattern'\nimport {\n TextAreaControlData,\n TextAreaControlDataTypeKey,\n TextAreaControlDataTypeValueV1,\n TextAreaControlDefinition,\n} from '@makeswift/controls'\n\nexport type TextAreaControlValue<T extends TextAreaControlDefinition> =\n undefined extends T['config']['defaultValue'] ? string | undefined : string\n\nexport function useTextAreaValue<T extends TextAreaControlDefinition>(\n data: TextAreaControlData | undefined,\n definition: T,\n): TextAreaControlValue<T> {\n const value: string | undefined =\n match(data)\n .with({ [TextAreaControlDataTypeKey]: TextAreaControlDataTypeValueV1 }, val => val.value)\n .otherwise(val => val) ?? definition.config.defaultValue\n\n return value as TextAreaControlValue<T>\n}\n"],"mappings":"AAAA,SAAS,aAAa;AACtB;AAAA,EAEE;AAAA,EACA;AAAA,OAEK;AAKA,SAAS,iBACd,MACA,YACyB;AACzB,QAAM,QACJ,MAAM,IAAI,EACP,KAAK,EAAE,CAAC,0BAA0B,GAAG,+BAA+B,GAAG,SAAO,IAAI,KAAK,EACvF,UAAU,SAAO,GAAG,KAAK,WAAW,OAAO;AAEhD,SAAO;AACT;","names":[]}
@@ -2,7 +2,7 @@ import { match } from "ts-pattern";
2
2
  import {
3
3
  TextInputControlDataTypeKey,
4
4
  TextInputControlDataTypeValueV1
5
- } from "../../../controls";
5
+ } from "@makeswift/controls";
6
6
  function useTextInputValue(data, definition) {
7
7
  const value = match(data).with({ [TextInputControlDataTypeKey]: TextInputControlDataTypeValueV1 }, (val) => val.value).otherwise((val) => val) ?? definition.config.defaultValue;
8
8
  return value;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../../src/runtimes/react/controls/text-input.ts"],"sourcesContent":["import { match } from 'ts-pattern'\nimport {\n TextInputControlData,\n TextInputControlDataTypeKey,\n TextInputControlDataTypeValueV1,\n TextInputControlDefinition,\n} from '../../../controls'\n\nexport type TextInputControlValue<T extends TextInputControlDefinition> =\n undefined extends T['config']['defaultValue'] ? string | undefined : string\n\nexport function useTextInputValue<T extends TextInputControlDefinition>(\n data: TextInputControlData | undefined,\n definition: T,\n): TextInputControlValue<T> {\n const value: string | undefined =\n match(data)\n .with({ [TextInputControlDataTypeKey]: TextInputControlDataTypeValueV1 }, val => val.value)\n .otherwise(val => val) ?? definition.config.defaultValue\n\n return value as TextInputControlValue<T>\n}\n"],"mappings":"AAAA,SAAS,aAAa;AACtB;AAAA,EAEE;AAAA,EACA;AAAA,OAEK;AAKA,SAAS,kBACd,MACA,YAC0B;AAC1B,QAAM,QACJ,MAAM,IAAI,EACP,KAAK,EAAE,CAAC,2BAA2B,GAAG,gCAAgC,GAAG,SAAO,IAAI,KAAK,EACzF,UAAU,SAAO,GAAG,KAAK,WAAW,OAAO;AAEhD,SAAO;AACT;","names":[]}
1
+ {"version":3,"sources":["../../../../../src/runtimes/react/controls/text-input.ts"],"sourcesContent":["import { match } from 'ts-pattern'\nimport {\n TextInputControlData,\n TextInputControlDataTypeKey,\n TextInputControlDataTypeValueV1,\n TextInputControlDefinition,\n} from '@makeswift/controls'\n\nexport type TextInputControlValue<T extends TextInputControlDefinition> =\n undefined extends T['config']['defaultValue'] ? string | undefined : string\n\nexport function useTextInputValue<T extends TextInputControlDefinition>(\n data: TextInputControlData | undefined,\n definition: T,\n): TextInputControlValue<T> {\n const value: string | undefined =\n match(data)\n .with({ [TextInputControlDataTypeKey]: TextInputControlDataTypeValueV1 }, val => val.value)\n .otherwise(val => val) ?? definition.config.defaultValue\n\n return value as TextInputControlValue<T>\n}\n"],"mappings":"AAAA,SAAS,aAAa;AACtB;AAAA,EAEE;AAAA,EACA;AAAA,OAEK;AAKA,SAAS,kBACd,MACA,YAC0B;AAC1B,QAAM,QACJ,MAAM,IAAI,EACP,KAAK,EAAE,CAAC,2BAA2B,GAAG,gCAAgC,GAAG,SAAO,IAAI,KAAK,EACzF,UAAU,SAAO,GAAG,KAAK,WAAW,OAAO;AAEhD,SAAO;AACT;","names":[]}