@makeswift/runtime 0.0.0-1faafb3 → 0.0.0-20221019211549

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 (619) hide show
  1. package/api.js +1 -0
  2. package/box-model.js +1 -0
  3. package/builder.js +1 -0
  4. package/components.js +1 -0
  5. package/controls.js +1 -0
  6. package/dist/Box.cjs.js +507 -0
  7. package/dist/Box.cjs.js.map +1 -0
  8. package/dist/Box.es.js +501 -0
  9. package/dist/Box.es.js.map +1 -0
  10. package/dist/Button.cjs.js +315 -0
  11. package/dist/Button.cjs.js.map +1 -0
  12. package/dist/Button.es.js +308 -0
  13. package/dist/Button.es.js.map +1 -0
  14. package/dist/Carousel.cjs.js +493 -0
  15. package/dist/Carousel.cjs.js.map +1 -0
  16. package/dist/Carousel.es.js +487 -0
  17. package/dist/Carousel.es.js.map +1 -0
  18. package/dist/Countdown.cjs.js +347 -0
  19. package/dist/Countdown.cjs.js.map +1 -0
  20. package/dist/Countdown.es.js +341 -0
  21. package/dist/Countdown.es.js.map +1 -0
  22. package/dist/Divider.cjs.js +122 -0
  23. package/dist/Divider.cjs.js.map +1 -0
  24. package/dist/Divider.es.js +116 -0
  25. package/dist/Divider.es.js.map +1 -0
  26. package/dist/Embed.cjs.js +136 -0
  27. package/dist/Embed.cjs.js.map +1 -0
  28. package/dist/Embed.es.js +130 -0
  29. package/dist/Embed.es.js.map +1 -0
  30. package/dist/Form.cjs.js +1731 -0
  31. package/dist/Form.cjs.js.map +1 -0
  32. package/dist/Form.es.js +1704 -0
  33. package/dist/Form.es.js.map +1 -0
  34. package/dist/Image.cjs2.js +155 -0
  35. package/dist/Image.cjs2.js.map +1 -0
  36. package/dist/Image.es2.js +148 -0
  37. package/dist/Image.es2.js.map +1 -0
  38. package/dist/Navigation.cjs.js +742 -0
  39. package/dist/Navigation.cjs.js.map +1 -0
  40. package/dist/Navigation.es.js +716 -0
  41. package/dist/Navigation.es.js.map +1 -0
  42. package/dist/Root.cjs.js +149 -0
  43. package/dist/Root.cjs.js.map +1 -0
  44. package/dist/Root.es.js +143 -0
  45. package/dist/Root.es.js.map +1 -0
  46. package/dist/SocialLinks.cjs.js +906 -0
  47. package/dist/SocialLinks.cjs.js.map +1 -0
  48. package/dist/SocialLinks.es.js +880 -0
  49. package/dist/SocialLinks.es.js.map +1 -0
  50. package/dist/Text.cjs.js +482 -0
  51. package/dist/Text.cjs.js.map +1 -0
  52. package/dist/Text.es.js +474 -0
  53. package/dist/Text.es.js.map +1 -0
  54. package/dist/Video.cjs.js +128 -0
  55. package/dist/Video.cjs.js.map +1 -0
  56. package/dist/Video.es.js +121 -0
  57. package/dist/Video.es.js.map +1 -0
  58. package/dist/actions.cjs.js +140 -17
  59. package/dist/actions.cjs.js.map +1 -1
  60. package/dist/actions.es.js +122 -16
  61. package/dist/actions.es.js.map +1 -1
  62. package/dist/api.cjs.js +6 -0
  63. package/dist/api.cjs.js.map +1 -0
  64. package/dist/api.es.js +3 -0
  65. package/dist/api.es.js.map +1 -0
  66. package/dist/box-model.cjs.js +2 -2
  67. package/dist/box-model.es.js +1 -0
  68. package/dist/box-model.es.js.map +1 -1
  69. package/dist/box-models.cjs.js +28 -156
  70. package/dist/box-models.cjs.js.map +1 -1
  71. package/dist/box-models.es.js +31 -159
  72. package/dist/box-models.es.js.map +1 -1
  73. package/dist/builder.cjs.js +13 -0
  74. package/dist/builder.cjs.js.map +1 -0
  75. package/dist/builder.es.js +4 -0
  76. package/dist/builder.es.js.map +1 -0
  77. package/dist/color.cjs.js +8 -0
  78. package/dist/color.cjs.js.map +1 -0
  79. package/dist/color.es.js +6 -0
  80. package/dist/color.es.js.map +1 -0
  81. package/dist/components.cjs.js +107 -6901
  82. package/dist/components.cjs.js.map +1 -1
  83. package/dist/components.es.js +66 -6866
  84. package/dist/components.es.js.map +1 -1
  85. package/dist/constants.cjs.js +15 -0
  86. package/dist/constants.cjs.js.map +1 -0
  87. package/dist/constants.es.js +14 -0
  88. package/dist/constants.es.js.map +1 -0
  89. package/dist/control-serialization.cjs.js +485 -0
  90. package/dist/control-serialization.cjs.js.map +1 -0
  91. package/dist/control-serialization.es.js +478 -0
  92. package/dist/control-serialization.es.js.map +1 -0
  93. package/dist/controls.cjs.js +38 -0
  94. package/dist/controls.cjs.js.map +1 -0
  95. package/dist/controls.es.js +6 -0
  96. package/dist/controls.es.js.map +1 -0
  97. package/dist/cssMediaRules.cjs.js +210 -0
  98. package/dist/cssMediaRules.cjs.js.map +1 -0
  99. package/dist/cssMediaRules.es.js +201 -0
  100. package/dist/cssMediaRules.es.js.map +1 -0
  101. package/dist/graphql.cjs.js +365 -0
  102. package/dist/graphql.cjs.js.map +1 -0
  103. package/dist/graphql.es.js +356 -0
  104. package/dist/graphql.es.js.map +1 -0
  105. package/dist/image.cjs.js +282 -0
  106. package/dist/image.cjs.js.map +1 -0
  107. package/dist/image.es.js +240 -0
  108. package/dist/image.es.js.map +1 -0
  109. package/dist/index.cjs.js +3211 -0
  110. package/dist/index.cjs.js.map +1 -0
  111. package/dist/index.cjs2.js +522 -0
  112. package/dist/index.cjs2.js.map +1 -0
  113. package/dist/index.cjs3.js +146 -0
  114. package/dist/index.cjs3.js.map +1 -0
  115. package/dist/index.cjs4.js +18 -0
  116. package/dist/index.cjs4.js.map +1 -0
  117. package/dist/index.es.js +3104 -0
  118. package/dist/index.es.js.map +1 -0
  119. package/dist/index.es2.js +514 -0
  120. package/dist/index.es2.js.map +1 -0
  121. package/dist/index.es3.js +140 -0
  122. package/dist/index.es3.js.map +1 -0
  123. package/dist/index.es4.js +13 -0
  124. package/dist/index.es4.js.map +1 -0
  125. package/dist/main.cjs.js +16 -2
  126. package/dist/main.cjs.js.map +1 -1
  127. package/dist/main.es.js +7 -1
  128. package/dist/main.es.js.map +1 -1
  129. package/dist/next.cjs.js +432 -0
  130. package/dist/next.cjs.js.map +1 -0
  131. package/dist/next.es.js +416 -0
  132. package/dist/next.es.js.map +1 -0
  133. package/dist/placeholders.cjs.js +13 -0
  134. package/dist/placeholders.cjs.js.map +1 -0
  135. package/dist/placeholders.es.js +12 -0
  136. package/dist/placeholders.es.js.map +1 -0
  137. package/dist/prop-controllers.cjs.js +6 -175
  138. package/dist/prop-controllers.cjs.js.map +1 -1
  139. package/dist/prop-controllers.es.js +2 -173
  140. package/dist/prop-controllers.es.js.map +1 -1
  141. package/dist/react-builder-preview.cjs.js +257 -4138
  142. package/dist/react-builder-preview.cjs.js.map +1 -1
  143. package/dist/react-builder-preview.es.js +249 -4134
  144. package/dist/react-builder-preview.es.js.map +1 -1
  145. package/dist/react-page.cjs.js +602 -0
  146. package/dist/react-page.cjs.js.map +1 -0
  147. package/dist/react-page.es.js +566 -0
  148. package/dist/react-page.es.js.map +1 -0
  149. package/dist/react.cjs.js +41 -7
  150. package/dist/react.cjs.js.map +1 -1
  151. package/dist/react.es.js +33 -1
  152. package/dist/react.es.js.map +1 -1
  153. package/dist/shape.cjs.js +20 -0
  154. package/dist/shape.cjs.js.map +1 -0
  155. package/dist/shape.es.js +14 -0
  156. package/dist/shape.es.js.map +1 -0
  157. package/dist/slot.cjs.js +130 -0
  158. package/dist/slot.cjs.js.map +1 -0
  159. package/dist/slot.es.js +123 -0
  160. package/dist/slot.es.js.map +1 -0
  161. package/dist/text-input.cjs.js +38 -0
  162. package/dist/text-input.cjs.js.map +1 -0
  163. package/dist/text-input.es.js +26 -0
  164. package/dist/text-input.es.js.map +1 -0
  165. package/dist/types/src/api/constants.d.ts +4 -0
  166. package/dist/types/src/api/constants.d.ts.map +1 -0
  167. package/dist/types/src/api/generated/graphql.d.ts +175 -0
  168. package/dist/types/src/api/generated/graphql.d.ts.map +1 -0
  169. package/dist/types/src/api/index.d.ts +3 -0
  170. package/dist/types/src/api/index.d.ts.map +1 -0
  171. package/dist/types/src/api/introspection.d.ts +10 -0
  172. package/dist/types/src/api/introspection.d.ts.map +1 -0
  173. package/dist/types/src/api/react.d.ts +27 -0
  174. package/dist/types/src/api/react.d.ts.map +1 -0
  175. package/dist/types/src/api/types.d.ts +4 -0
  176. package/dist/types/src/api/types.d.ts.map +1 -0
  177. package/dist/types/src/box-model.d.ts +3 -0
  178. package/dist/types/src/box-model.d.ts.map +1 -0
  179. package/dist/types/src/builder/index.d.ts +2 -0
  180. package/dist/types/src/builder/index.d.ts.map +1 -0
  181. package/dist/types/src/builder/serialization/control-serialization.d.ts +301 -0
  182. package/dist/types/src/builder/serialization/control-serialization.d.ts.map +1 -0
  183. package/dist/types/src/builder/serialization/controls/combobox.d.ts +5 -0
  184. package/dist/types/src/builder/serialization/controls/combobox.d.ts.map +1 -0
  185. package/dist/types/src/builder/serialization/controls/list.d.ts +5 -0
  186. package/dist/types/src/builder/serialization/controls/list.d.ts.map +1 -0
  187. package/dist/types/src/builder/serialization/controls/shape.d.ts +5 -0
  188. package/dist/types/src/builder/serialization/controls/shape.d.ts.map +1 -0
  189. package/dist/types/src/builder/serialization/controls/types.d.ts +10 -0
  190. package/dist/types/src/builder/serialization/controls/types.d.ts.map +1 -0
  191. package/dist/types/src/builder/serialization/function-serialization.d.ts +12 -0
  192. package/dist/types/src/builder/serialization/function-serialization.d.ts.map +1 -0
  193. package/dist/types/src/builder/serialization/index.d.ts +4 -0
  194. package/dist/types/src/builder/serialization/index.d.ts.map +1 -0
  195. package/dist/types/{components → src/components/builtin}/Box/Box.d.ts +8 -5
  196. package/dist/types/src/components/builtin/Box/Box.d.ts.map +1 -0
  197. package/dist/types/{components → src/components/builtin}/Box/animations.d.ts +3 -10
  198. package/dist/types/src/components/builtin/Box/animations.d.ts.map +1 -0
  199. package/dist/types/{components → src/components/builtin}/Box/components/Placeholder/index.d.ts +0 -0
  200. package/dist/types/src/components/builtin/Box/components/Placeholder/index.d.ts.map +1 -0
  201. package/dist/types/src/components/builtin/Box/constants.d.ts +9 -0
  202. package/dist/types/src/components/builtin/Box/constants.d.ts.map +1 -0
  203. package/dist/types/{components → src/components/builtin}/Box/index.d.ts +1 -1
  204. package/dist/types/src/components/builtin/Box/index.d.ts.map +1 -0
  205. package/dist/types/src/components/builtin/Box/register.d.ts +3 -0
  206. package/dist/types/src/components/builtin/Box/register.d.ts.map +1 -0
  207. package/dist/types/src/components/builtin/Button/Button.d.ts +117 -0
  208. package/dist/types/src/components/builtin/Button/Button.d.ts.map +1 -0
  209. package/dist/types/src/components/builtin/Button/contants.d.ts +2 -0
  210. package/dist/types/src/components/builtin/Button/contants.d.ts.map +1 -0
  211. package/dist/types/src/components/builtin/Button/index.d.ts +2 -0
  212. package/dist/types/src/components/builtin/Button/index.d.ts.map +1 -0
  213. package/dist/types/src/components/builtin/Button/register.d.ts +3 -0
  214. package/dist/types/src/components/builtin/Button/register.d.ts.map +1 -0
  215. package/dist/types/src/components/builtin/Carousel/Carousel.d.ts +26 -0
  216. package/dist/types/src/components/builtin/Carousel/Carousel.d.ts.map +1 -0
  217. package/dist/types/src/components/builtin/Carousel/index.d.ts +2 -0
  218. package/dist/types/src/components/builtin/Carousel/index.d.ts.map +1 -0
  219. package/dist/types/src/components/builtin/Carousel/register.d.ts +3 -0
  220. package/dist/types/src/components/builtin/Carousel/register.d.ts.map +1 -0
  221. package/dist/types/src/components/builtin/Countdown/Countdown.d.ts +25 -0
  222. package/dist/types/src/components/builtin/Countdown/Countdown.d.ts.map +1 -0
  223. package/dist/types/src/components/builtin/Countdown/index.d.ts +2 -0
  224. package/dist/types/src/components/builtin/Countdown/index.d.ts.map +1 -0
  225. package/dist/types/src/components/builtin/Countdown/register.d.ts +3 -0
  226. package/dist/types/src/components/builtin/Countdown/register.d.ts.map +1 -0
  227. package/dist/types/src/components/builtin/Divider/Divider.d.ts +15 -0
  228. package/dist/types/src/components/builtin/Divider/Divider.d.ts.map +1 -0
  229. package/dist/types/src/components/builtin/Divider/index.d.ts +2 -0
  230. package/dist/types/src/components/builtin/Divider/index.d.ts.map +1 -0
  231. package/dist/types/src/components/builtin/Divider/register.d.ts +3 -0
  232. package/dist/types/src/components/builtin/Divider/register.d.ts.map +1 -0
  233. package/dist/types/src/components/builtin/Embed/Embed.d.ts +11 -0
  234. package/dist/types/src/components/builtin/Embed/Embed.d.ts.map +1 -0
  235. package/dist/types/src/components/builtin/Embed/index.d.ts +2 -0
  236. package/dist/types/src/components/builtin/Embed/index.d.ts.map +1 -0
  237. package/dist/types/src/components/builtin/Embed/register.d.ts +3 -0
  238. package/dist/types/src/components/builtin/Embed/register.d.ts.map +1 -0
  239. package/dist/types/src/components/builtin/Form/Form.d.ts +33 -0
  240. package/dist/types/src/components/builtin/Form/Form.d.ts.map +1 -0
  241. package/dist/types/src/components/builtin/Form/components/Field/components/Checkbox/index.d.ts +15 -0
  242. package/dist/types/src/components/builtin/Form/components/Field/components/Checkbox/index.d.ts.map +1 -0
  243. package/dist/types/src/components/builtin/Form/components/Field/components/CheckboxTableField/index.d.ts +15 -0
  244. package/dist/types/src/components/builtin/Form/components/Field/components/CheckboxTableField/index.d.ts.map +1 -0
  245. package/dist/types/src/components/builtin/Form/components/Field/components/EmailTableField/index.d.ts +11 -0
  246. package/dist/types/src/components/builtin/Form/components/Field/components/EmailTableField/index.d.ts.map +1 -0
  247. package/dist/types/src/components/builtin/Form/components/Field/components/Input/index.d.ts +14 -0
  248. package/dist/types/src/components/builtin/Form/components/Field/components/Input/index.d.ts.map +1 -0
  249. package/dist/types/src/components/builtin/Form/components/Field/components/Label/index.d.ts +16 -0
  250. package/dist/types/src/components/builtin/Form/components/Field/components/Label/index.d.ts.map +1 -0
  251. package/dist/types/src/components/builtin/Form/components/Field/components/LongTextTableField/index.d.ts +10 -0
  252. package/dist/types/src/components/builtin/Form/components/Field/components/LongTextTableField/index.d.ts.map +1 -0
  253. package/dist/types/src/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.d.ts +23 -0
  254. package/dist/types/src/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.d.ts.map +1 -0
  255. package/dist/types/src/components/builtin/Form/components/Field/components/NumberTableField/index.d.ts +11 -0
  256. package/dist/types/src/components/builtin/Form/components/Field/components/NumberTableField/index.d.ts.map +1 -0
  257. package/dist/types/src/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.d.ts +11 -0
  258. package/dist/types/src/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.d.ts.map +1 -0
  259. package/dist/types/src/components/builtin/Form/components/Field/components/PlaceholderTableField/index.d.ts +3 -0
  260. package/dist/types/src/components/builtin/Form/components/Field/components/PlaceholderTableField/index.d.ts.map +1 -0
  261. package/dist/types/src/components/builtin/Form/components/Field/components/RadioButton/index.d.ts +17 -0
  262. package/dist/types/src/components/builtin/Form/components/Field/components/RadioButton/index.d.ts.map +1 -0
  263. package/dist/types/src/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.d.ts +11 -0
  264. package/dist/types/src/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.d.ts.map +1 -0
  265. package/dist/types/src/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.d.ts +23 -0
  266. package/dist/types/src/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.d.ts.map +1 -0
  267. package/dist/types/src/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.d.ts +19 -0
  268. package/dist/types/src/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.d.ts.map +1 -0
  269. package/dist/types/src/components/builtin/Form/components/Field/components/SingleSelectTableField/index.d.ts +24 -0
  270. package/dist/types/src/components/builtin/Form/components/Field/components/SingleSelectTableField/index.d.ts.map +1 -0
  271. package/dist/types/src/components/builtin/Form/components/Field/components/TextArea/index.d.ts +13 -0
  272. package/dist/types/src/components/builtin/Form/components/Field/components/TextArea/index.d.ts.map +1 -0
  273. package/dist/types/src/components/builtin/Form/components/Field/components/URLTableField/index.d.ts +11 -0
  274. package/dist/types/src/components/builtin/Form/components/Field/components/URLTableField/index.d.ts.map +1 -0
  275. package/dist/types/src/components/builtin/Form/components/Field/index.d.ts +19 -0
  276. package/dist/types/src/components/builtin/Form/components/Field/index.d.ts.map +1 -0
  277. package/dist/types/src/components/builtin/Form/components/Field/services/cssField.d.ts +11 -0
  278. package/dist/types/src/components/builtin/Form/components/Field/services/cssField.d.ts.map +1 -0
  279. package/dist/types/src/components/builtin/Form/components/Placeholder/index.d.ts +10 -0
  280. package/dist/types/src/components/builtin/Form/components/Placeholder/index.d.ts.map +1 -0
  281. package/dist/types/src/components/builtin/Form/components/Spinner/index.d.ts +3 -0
  282. package/dist/types/src/components/builtin/Form/components/Spinner/index.d.ts.map +1 -0
  283. package/dist/types/src/components/builtin/Form/context/FormContext.d.ts +39 -0
  284. package/dist/types/src/components/builtin/Form/context/FormContext.d.ts.map +1 -0
  285. package/dist/types/src/components/builtin/Form/index.d.ts +2 -0
  286. package/dist/types/src/components/builtin/Form/index.d.ts.map +1 -0
  287. package/dist/types/src/components/builtin/Form/register.d.ts +3 -0
  288. package/dist/types/src/components/builtin/Form/register.d.ts.map +1 -0
  289. package/dist/types/src/components/builtin/Form/types.d.ts +62 -0
  290. package/dist/types/src/components/builtin/Form/types.d.ts.map +1 -0
  291. package/dist/types/src/components/builtin/Image/Image.d.ts +26 -0
  292. package/dist/types/src/components/builtin/Image/Image.d.ts.map +1 -0
  293. package/dist/types/src/components/builtin/Image/index.d.ts +2 -0
  294. package/dist/types/src/components/builtin/Image/index.d.ts.map +1 -0
  295. package/dist/types/src/components/builtin/Image/register.d.ts +3 -0
  296. package/dist/types/src/components/builtin/Image/register.d.ts.map +1 -0
  297. package/dist/types/src/components/builtin/Navigation/Navigation.d.ts +24 -0
  298. package/dist/types/src/components/builtin/Navigation/Navigation.d.ts.map +1 -0
  299. package/dist/types/src/components/builtin/Navigation/components/DropDownButton/index.d.ts +100 -0
  300. package/dist/types/src/components/builtin/Navigation/components/DropDownButton/index.d.ts.map +1 -0
  301. package/dist/types/src/components/builtin/Navigation/components/LinksPlaceholder/index.d.ts +8 -0
  302. package/dist/types/src/components/builtin/Navigation/components/LinksPlaceholder/index.d.ts.map +1 -0
  303. package/dist/types/src/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.d.ts +101 -0
  304. package/dist/types/src/components/builtin/Navigation/components/MobileMenu/components/MobileDropDownButton/index.d.ts.map +1 -0
  305. package/dist/types/src/components/builtin/Navigation/components/MobileMenu/index.d.ts +14 -0
  306. package/dist/types/src/components/builtin/Navigation/components/MobileMenu/index.d.ts.map +1 -0
  307. package/dist/types/src/components/builtin/Navigation/index.d.ts +2 -0
  308. package/dist/types/src/components/builtin/Navigation/index.d.ts.map +1 -0
  309. package/dist/types/src/components/builtin/Navigation/register.d.ts +3 -0
  310. package/dist/types/src/components/builtin/Navigation/register.d.ts.map +1 -0
  311. package/dist/types/src/components/builtin/Root/Root.d.ts +12 -0
  312. package/dist/types/src/components/builtin/Root/Root.d.ts.map +1 -0
  313. package/dist/types/{components → src/components/builtin}/Root/components/Placeholder/index.d.ts +0 -0
  314. package/dist/types/src/components/builtin/Root/components/Placeholder/index.d.ts.map +1 -0
  315. package/dist/types/{components → src/components/builtin}/Root/index.d.ts +0 -0
  316. package/dist/types/src/components/builtin/Root/index.d.ts.map +1 -0
  317. package/dist/types/src/components/builtin/Root/register.d.ts +3 -0
  318. package/dist/types/src/components/builtin/Root/register.d.ts.map +1 -0
  319. package/dist/types/src/components/builtin/SocialLinks/SocialLinks.d.ts +19 -0
  320. package/dist/types/src/components/builtin/SocialLinks/SocialLinks.d.ts.map +1 -0
  321. package/dist/types/src/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.d.ts +8 -0
  322. package/dist/types/src/components/builtin/SocialLinks/components/SocialLinksPlaceholder/index.d.ts.map +1 -0
  323. package/dist/types/src/components/builtin/SocialLinks/index.d.ts +2 -0
  324. package/dist/types/src/components/builtin/SocialLinks/index.d.ts.map +1 -0
  325. package/dist/types/src/components/builtin/SocialLinks/options.d.ts +118 -0
  326. package/dist/types/src/components/builtin/SocialLinks/options.d.ts.map +1 -0
  327. package/dist/types/src/components/builtin/SocialLinks/register.d.ts +3 -0
  328. package/dist/types/src/components/builtin/SocialLinks/register.d.ts.map +1 -0
  329. package/dist/types/src/components/builtin/Text/Text.d.ts +16 -0
  330. package/dist/types/src/components/builtin/Text/Text.d.ts.map +1 -0
  331. package/dist/types/src/components/builtin/Text/components/RichTextEditor/components/Block/index.d.ts +13 -0
  332. package/dist/types/src/components/builtin/Text/components/RichTextEditor/components/Block/index.d.ts.map +1 -0
  333. package/dist/types/src/components/builtin/Text/components/RichTextEditor/components/Mark/hooks/useTypographyMark.d.ts +25 -0
  334. package/dist/types/src/components/builtin/Text/components/RichTextEditor/components/Mark/hooks/useTypographyMark.d.ts.map +1 -0
  335. package/dist/types/src/components/builtin/Text/components/RichTextEditor/components/Mark/index.d.ts +13 -0
  336. package/dist/types/src/components/builtin/Text/components/RichTextEditor/components/Mark/index.d.ts.map +1 -0
  337. package/dist/types/src/components/builtin/Text/components/RichTextEditor/index.d.ts +5 -0
  338. package/dist/types/src/components/builtin/Text/components/RichTextEditor/index.d.ts.map +1 -0
  339. package/dist/types/src/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesBlocks.d.ts +3 -0
  340. package/dist/types/src/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesBlocks.d.ts.map +1 -0
  341. package/dist/types/src/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesMarks.d.ts +3 -0
  342. package/dist/types/src/components/builtin/Text/components/RichTextEditor/plugins/DeviceOverridesMarks.d.ts.map +1 -0
  343. package/dist/types/src/components/builtin/Text/components/RichTextEditor/plugins/Inlines.d.ts +3 -0
  344. package/dist/types/src/components/builtin/Text/components/RichTextEditor/plugins/Inlines.d.ts.map +1 -0
  345. package/dist/types/src/components/builtin/Text/components/RichTextEditor/plugins/Link.d.ts +3 -0
  346. package/dist/types/src/components/builtin/Text/components/RichTextEditor/plugins/Link.d.ts.map +1 -0
  347. package/dist/types/src/components/builtin/Text/index.d.ts +2 -0
  348. package/dist/types/src/components/builtin/Text/index.d.ts.map +1 -0
  349. package/dist/types/src/components/builtin/Text/register.d.ts +3 -0
  350. package/dist/types/src/components/builtin/Text/register.d.ts.map +1 -0
  351. package/dist/types/src/components/builtin/Video/Video.d.ts +12 -0
  352. package/dist/types/src/components/builtin/Video/Video.d.ts.map +1 -0
  353. package/dist/types/src/components/builtin/Video/index.d.ts +2 -0
  354. package/dist/types/src/components/builtin/Video/index.d.ts.map +1 -0
  355. package/dist/types/src/components/builtin/Video/register.d.ts +3 -0
  356. package/dist/types/src/components/builtin/Video/register.d.ts.map +1 -0
  357. package/dist/types/src/components/builtin/constants.d.ts +20 -0
  358. package/dist/types/src/components/builtin/constants.d.ts.map +1 -0
  359. package/dist/types/src/components/builtin/index.d.ts +16 -0
  360. package/dist/types/src/components/builtin/index.d.ts.map +1 -0
  361. package/dist/types/src/components/builtin/register.d.ts +3 -0
  362. package/dist/types/src/components/builtin/register.d.ts.map +1 -0
  363. package/dist/types/src/components/hooks/index.d.ts +8 -0
  364. package/dist/types/src/components/hooks/index.d.ts.map +1 -0
  365. package/dist/types/src/components/hooks/useBackgrounds.d.ts +59 -0
  366. package/dist/types/src/components/hooks/useBackgrounds.d.ts.map +1 -0
  367. package/dist/types/src/components/hooks/useBorder.d.ts +19 -0
  368. package/dist/types/src/components/hooks/useBorder.d.ts.map +1 -0
  369. package/dist/types/src/components/hooks/useBoxShadow.d.ts +19 -0
  370. package/dist/types/src/components/hooks/useBoxShadow.d.ts.map +1 -0
  371. package/dist/types/src/components/hooks/useFile.d.ts +13 -0
  372. package/dist/types/src/components/hooks/useFile.d.ts.map +1 -0
  373. package/dist/types/src/components/hooks/useIsomorphicLayoutEffect.d.ts +3 -0
  374. package/dist/types/src/components/hooks/useIsomorphicLayoutEffect.d.ts.map +1 -0
  375. package/dist/types/{components → src/components}/hooks/useMediaQuery.d.ts +0 -0
  376. package/dist/types/src/components/hooks/useMediaQuery.d.ts.map +1 -0
  377. package/dist/types/src/components/hooks/usePage.d.ts +7 -0
  378. package/dist/types/src/components/hooks/usePage.d.ts.map +1 -0
  379. package/dist/types/src/components/hooks/useResponsiveColor.d.ts +7 -0
  380. package/dist/types/src/components/hooks/useResponsiveColor.d.ts.map +1 -0
  381. package/dist/types/src/components/hooks/useTableFormFieldRefs.d.ts +8 -0
  382. package/dist/types/src/components/hooks/useTableFormFieldRefs.d.ts.map +1 -0
  383. package/dist/types/src/components/hooks/useTypography.d.ts +24 -0
  384. package/dist/types/src/components/hooks/useTypography.d.ts.map +1 -0
  385. package/dist/types/src/components/index.d.ts +5 -0
  386. package/dist/types/src/components/index.d.ts.map +1 -0
  387. package/dist/types/src/components/page/BodySnippet.d.ts +7 -0
  388. package/dist/types/src/components/page/BodySnippet.d.ts.map +1 -0
  389. package/dist/types/src/components/page/Page.d.ts +28 -0
  390. package/dist/types/src/components/page/Page.d.ts.map +1 -0
  391. package/dist/types/src/components/page/index.d.ts +2 -0
  392. package/dist/types/src/components/page/index.d.ts.map +1 -0
  393. package/dist/types/src/components/shared/BackgroundsContainer/components/BackgroundVideo/index.d.ts +11 -0
  394. package/dist/types/src/components/shared/BackgroundsContainer/components/BackgroundVideo/index.d.ts.map +1 -0
  395. package/dist/types/src/components/shared/BackgroundsContainer/components/Backgrounds/index.d.ts +8 -0
  396. package/dist/types/src/components/shared/BackgroundsContainer/components/Backgrounds/index.d.ts.map +1 -0
  397. package/dist/types/src/components/shared/BackgroundsContainer/components/Parallax/index.d.ts +11 -0
  398. package/dist/types/src/components/shared/BackgroundsContainer/components/Parallax/index.d.ts.map +1 -0
  399. package/dist/types/src/components/shared/BackgroundsContainer/index.d.ts +11 -0
  400. package/dist/types/src/components/shared/BackgroundsContainer/index.d.ts.map +1 -0
  401. package/dist/types/src/components/shared/FallbackComponent/FallbackComponent.d.ts +7 -0
  402. package/dist/types/src/components/shared/FallbackComponent/FallbackComponent.d.ts.map +1 -0
  403. package/dist/types/src/components/shared/FallbackComponent/index.d.ts +2 -0
  404. package/dist/types/src/components/shared/FallbackComponent/index.d.ts.map +1 -0
  405. package/dist/types/src/components/shared/GutterContainer/index.d.ts +8 -0
  406. package/dist/types/src/components/shared/GutterContainer/index.d.ts.map +1 -0
  407. package/dist/types/src/components/shared/Link/index.d.ts +9 -0
  408. package/dist/types/src/components/shared/Link/index.d.ts.map +1 -0
  409. package/dist/types/src/components/utils/colorToString.d.ts +3 -0
  410. package/dist/types/src/components/utils/colorToString.d.ts.map +1 -0
  411. package/dist/types/{components → src/components}/utils/columns.d.ts +0 -0
  412. package/dist/types/src/components/utils/columns.d.ts.map +1 -0
  413. package/dist/types/{components → src/components}/utils/cssMediaRules.d.ts +23 -1
  414. package/dist/types/src/components/utils/cssMediaRules.d.ts.map +1 -0
  415. package/dist/types/{components → src/components}/utils/devices.d.ts +1 -0
  416. package/dist/types/src/components/utils/devices.d.ts.map +1 -0
  417. package/dist/types/src/components/utils/isNonNullable.d.ts +2 -0
  418. package/dist/types/src/components/utils/isNonNullable.d.ts.map +1 -0
  419. package/dist/types/src/components/utils/placeholders.d.ts +17 -0
  420. package/dist/types/src/components/utils/placeholders.d.ts.map +1 -0
  421. package/dist/types/src/components/utils/queries.d.ts +10 -0
  422. package/dist/types/src/components/utils/queries.d.ts.map +1 -0
  423. package/dist/types/src/components/utils/responsive-style.d.ts +9 -0
  424. package/dist/types/src/components/utils/responsive-style.d.ts.map +1 -0
  425. package/dist/types/src/components/utils/types.d.ts +10 -0
  426. package/dist/types/src/components/utils/types.d.ts.map +1 -0
  427. package/dist/types/src/controls/checkbox.d.ts +13 -0
  428. package/dist/types/src/controls/checkbox.d.ts.map +1 -0
  429. package/dist/types/src/controls/color.d.ts +16 -0
  430. package/dist/types/src/controls/color.d.ts.map +1 -0
  431. package/dist/types/src/controls/combobox.d.ts +22 -0
  432. package/dist/types/src/controls/combobox.d.ts.map +1 -0
  433. package/dist/types/src/controls/control.d.ts +14 -0
  434. package/dist/types/src/controls/control.d.ts.map +1 -0
  435. package/dist/types/src/controls/image.d.ts +24 -0
  436. package/dist/types/src/controls/image.d.ts.map +1 -0
  437. package/dist/types/src/controls/index.d.ts +15 -0
  438. package/dist/types/src/controls/index.d.ts.map +1 -0
  439. package/dist/types/src/controls/link.d.ts +50 -0
  440. package/dist/types/src/controls/link.d.ts.map +1 -0
  441. package/dist/types/src/controls/list.d.ts +26 -0
  442. package/dist/types/src/controls/list.d.ts.map +1 -0
  443. package/dist/types/src/controls/number.d.ts +18 -0
  444. package/dist/types/src/controls/number.d.ts.map +1 -0
  445. package/dist/types/src/controls/select.d.ts +22 -0
  446. package/dist/types/src/controls/select.d.ts.map +1 -0
  447. package/dist/types/src/controls/shape.d.ts +15 -0
  448. package/dist/types/src/controls/shape.d.ts.map +1 -0
  449. package/dist/types/src/controls/slot.d.ts +42 -0
  450. package/dist/types/src/controls/slot.d.ts.map +1 -0
  451. package/dist/types/src/controls/style.d.ts +206 -0
  452. package/dist/types/src/controls/style.d.ts.map +1 -0
  453. package/dist/types/src/controls/text-area.d.ts +14 -0
  454. package/dist/types/src/controls/text-area.d.ts.map +1 -0
  455. package/dist/types/src/controls/text-input.d.ts +13 -0
  456. package/dist/types/src/controls/text-input.d.ts.map +1 -0
  457. package/dist/types/src/controls/types.d.ts +14 -0
  458. package/dist/types/src/controls/types.d.ts.map +1 -0
  459. package/dist/types/{index.d.ts → src/index.d.ts} +3 -1
  460. package/dist/types/src/index.d.ts.map +1 -0
  461. package/dist/types/src/next/api-handler.d.ts +31 -0
  462. package/dist/types/src/next/api-handler.d.ts.map +1 -0
  463. package/dist/types/src/next/client.d.ts +68 -0
  464. package/dist/types/src/next/client.d.ts.map +1 -0
  465. package/dist/types/src/next/document.d.ts +7 -0
  466. package/dist/types/src/next/document.d.ts.map +1 -0
  467. package/dist/types/src/next/dynamic.d.ts +13 -0
  468. package/dist/types/src/next/dynamic.d.ts.map +1 -0
  469. package/dist/types/src/next/index.d.ts +24 -0
  470. package/dist/types/src/next/index.d.ts.map +1 -0
  471. package/dist/types/src/next/preview-mode.d.ts +11 -0
  472. package/dist/types/src/next/preview-mode.d.ts.map +1 -0
  473. package/dist/types/{prop-controllers → src/prop-controllers}/descriptors.d.ts +132 -45
  474. package/dist/types/src/prop-controllers/descriptors.d.ts.map +1 -0
  475. package/dist/types/src/prop-controllers/index.d.ts +5 -0
  476. package/dist/types/src/prop-controllers/index.d.ts.map +1 -0
  477. package/dist/types/src/prop-controllers/instances.d.ts +102 -0
  478. package/dist/types/src/prop-controllers/instances.d.ts.map +1 -0
  479. package/dist/types/src/prop-controllers/introspection.d.ts +10 -0
  480. package/dist/types/src/prop-controllers/introspection.d.ts.map +1 -0
  481. package/dist/types/src/react.d.ts +4 -0
  482. package/dist/types/src/react.d.ts.map +1 -0
  483. package/dist/types/src/runtimes/react/components/index.d.ts +2 -0
  484. package/dist/types/src/runtimes/react/components/index.d.ts.map +1 -0
  485. package/dist/types/src/runtimes/react/components/render-hook.d.ts +14 -0
  486. package/dist/types/src/runtimes/react/components/render-hook.d.ts.map +1 -0
  487. package/dist/types/src/runtimes/react/controls/checkbox.d.ts +4 -0
  488. package/dist/types/src/runtimes/react/controls/checkbox.d.ts.map +1 -0
  489. package/dist/types/src/runtimes/react/controls/color.d.ts +4 -0
  490. package/dist/types/src/runtimes/react/controls/color.d.ts.map +1 -0
  491. package/dist/types/src/runtimes/react/controls/combobox.d.ts +4 -0
  492. package/dist/types/src/runtimes/react/controls/combobox.d.ts.map +1 -0
  493. package/dist/types/src/runtimes/react/controls/control.d.ts +22 -0
  494. package/dist/types/src/runtimes/react/controls/control.d.ts.map +1 -0
  495. package/dist/types/src/runtimes/react/controls/image.d.ts +13 -0
  496. package/dist/types/src/runtimes/react/controls/image.d.ts.map +1 -0
  497. package/dist/types/src/runtimes/react/controls/link.d.ts +11 -0
  498. package/dist/types/src/runtimes/react/controls/link.d.ts.map +1 -0
  499. package/dist/types/src/runtimes/react/controls/list.d.ts +13 -0
  500. package/dist/types/src/runtimes/react/controls/list.d.ts.map +1 -0
  501. package/dist/types/src/runtimes/react/controls/number.d.ts +4 -0
  502. package/dist/types/src/runtimes/react/controls/number.d.ts.map +1 -0
  503. package/dist/types/src/runtimes/react/controls/select.d.ts +4 -0
  504. package/dist/types/src/runtimes/react/controls/select.d.ts.map +1 -0
  505. package/dist/types/src/runtimes/react/controls/shape.d.ts +14 -0
  506. package/dist/types/src/runtimes/react/controls/shape.d.ts.map +1 -0
  507. package/dist/types/src/runtimes/react/controls/slot.d.ts +30 -0
  508. package/dist/types/src/runtimes/react/controls/slot.d.ts.map +1 -0
  509. package/dist/types/src/runtimes/react/controls/style.d.ts +4 -0
  510. package/dist/types/src/runtimes/react/controls/style.d.ts.map +1 -0
  511. package/dist/types/src/runtimes/react/controls/text-area.d.ts +4 -0
  512. package/dist/types/src/runtimes/react/controls/text-area.d.ts.map +1 -0
  513. package/dist/types/src/runtimes/react/controls/text-input.d.ts +4 -0
  514. package/dist/types/src/runtimes/react/controls/text-input.d.ts.map +1 -0
  515. package/dist/types/src/runtimes/react/controls.d.ts +13 -0
  516. package/dist/types/src/runtimes/react/controls.d.ts.map +1 -0
  517. package/dist/types/src/runtimes/react/find-dom-node.d.ts +7 -0
  518. package/dist/types/src/runtimes/react/find-dom-node.d.ts.map +1 -0
  519. package/dist/types/src/runtimes/react/index.d.ts +48 -0
  520. package/dist/types/src/runtimes/react/index.d.ts.map +1 -0
  521. package/dist/types/src/runtimes/react/use-style.d.ts +3 -0
  522. package/dist/types/src/runtimes/react/use-style.d.ts.map +1 -0
  523. package/dist/types/src/state/actions.d.ts +291 -0
  524. package/dist/types/src/state/actions.d.ts.map +1 -0
  525. package/dist/types/{state → src/state}/modules/box-models.d.ts +5 -5
  526. package/dist/types/src/state/modules/box-models.d.ts.map +1 -0
  527. package/dist/types/{state → src/state}/modules/components-meta.d.ts +0 -0
  528. package/dist/types/src/state/modules/components-meta.d.ts.map +1 -0
  529. package/dist/types/src/state/modules/is-in-builder.d.ts +6 -0
  530. package/dist/types/src/state/modules/is-in-builder.d.ts.map +1 -0
  531. package/dist/types/src/state/modules/prop-controller-handles.d.ts +17 -0
  532. package/dist/types/src/state/modules/prop-controller-handles.d.ts.map +1 -0
  533. package/dist/types/{state → src/state}/modules/prop-controllers.d.ts +1 -0
  534. package/dist/types/src/state/modules/prop-controllers.d.ts.map +1 -0
  535. package/dist/types/{state → src/state}/modules/react-components.d.ts +4 -2
  536. package/dist/types/src/state/modules/react-components.d.ts.map +1 -0
  537. package/dist/types/{state → src/state}/modules/read-only-documents.d.ts +8 -4
  538. package/dist/types/src/state/modules/read-only-documents.d.ts.map +1 -0
  539. package/dist/types/{state → src/state}/modules/read-write-documents.d.ts +1 -1
  540. package/dist/types/src/state/modules/read-write-documents.d.ts.map +1 -0
  541. package/dist/types/{state → src/state}/react-builder-preview.d.ts +16 -11
  542. package/dist/types/src/state/react-builder-preview.d.ts.map +1 -0
  543. package/dist/types/src/state/react-page.d.ts +38 -0
  544. package/dist/types/src/state/react-page.d.ts.map +1 -0
  545. package/dist/types/src/utils/clamp.d.ts +3 -0
  546. package/dist/types/src/utils/clamp.d.ts.map +1 -0
  547. package/dist/types/src/utils/coalesce.d.ts +3 -0
  548. package/dist/types/src/utils/coalesce.d.ts.map +1 -0
  549. package/dist/types/src/utils/constants.d.ts +6 -0
  550. package/dist/types/src/utils/constants.d.ts.map +1 -0
  551. package/dist/types/{utils → src/utils}/deepEqual.d.ts +0 -0
  552. package/dist/types/src/utils/deepEqual.d.ts.map +1 -0
  553. package/dist/types/src/utils/intersection.d.ts +4 -0
  554. package/dist/types/src/utils/intersection.d.ts.map +1 -0
  555. package/dist/types/{utils → src/utils}/is.d.ts +0 -0
  556. package/dist/types/src/utils/is.d.ts.map +1 -0
  557. package/dist/types/src/utils/keys.d.ts +5 -0
  558. package/dist/types/src/utils/keys.d.ts.map +1 -0
  559. package/dist/types/{utils → src/utils}/shallowEqual.d.ts +0 -0
  560. package/dist/types/src/utils/shallowEqual.d.ts.map +1 -0
  561. package/dist/types/src/utils/shallowMerge.d.ts +2 -0
  562. package/dist/types/src/utils/shallowMerge.d.ts.map +1 -0
  563. package/dist/useBoxShadow.cjs.js +78 -0
  564. package/dist/useBoxShadow.cjs.js.map +1 -0
  565. package/dist/useBoxShadow.es.js +77 -0
  566. package/dist/useBoxShadow.es.js.map +1 -0
  567. package/dist/useMediaQuery.cjs.js +26 -0
  568. package/dist/useMediaQuery.cjs.js.map +1 -0
  569. package/dist/useMediaQuery.es.js +25 -0
  570. package/dist/useMediaQuery.es.js.map +1 -0
  571. package/next/plugin.js +1 -0
  572. package/next.js +1 -0
  573. package/package.json +105 -24
  574. package/prop-controllers.js +1 -0
  575. package/react.js +1 -0
  576. package/dist/react.cjs2.js +0 -835
  577. package/dist/react.cjs2.js.map +0 -1
  578. package/dist/react.es2.js +0 -810
  579. package/dist/react.es2.js.map +0 -1
  580. package/dist/types/box-model.d.ts +0 -3
  581. package/dist/types/box-model.d.ts.map +0 -1
  582. package/dist/types/components/Box/Box.d.ts.map +0 -1
  583. package/dist/types/components/Box/animations.d.ts.map +0 -1
  584. package/dist/types/components/Box/components/Placeholder/index.d.ts.map +0 -1
  585. package/dist/types/components/Box/index.d.ts.map +0 -1
  586. package/dist/types/components/Root/Root.d.ts +0 -11
  587. package/dist/types/components/Root/Root.d.ts.map +0 -1
  588. package/dist/types/components/Root/components/Placeholder/index.d.ts.map +0 -1
  589. package/dist/types/components/Root/index.d.ts.map +0 -1
  590. package/dist/types/components/hooks/index.d.ts +0 -2
  591. package/dist/types/components/hooks/index.d.ts.map +0 -1
  592. package/dist/types/components/hooks/useMediaQuery.d.ts.map +0 -1
  593. package/dist/types/components/index.d.ts +0 -4
  594. package/dist/types/components/index.d.ts.map +0 -1
  595. package/dist/types/components/utils/columns.d.ts.map +0 -1
  596. package/dist/types/components/utils/cssMediaRules.d.ts.map +0 -1
  597. package/dist/types/components/utils/devices.d.ts.map +0 -1
  598. package/dist/types/index.d.ts.map +0 -1
  599. package/dist/types/prop-controllers/descriptors.d.ts.map +0 -1
  600. package/dist/types/prop-controllers/index.d.ts +0 -3
  601. package/dist/types/prop-controllers/index.d.ts.map +0 -1
  602. package/dist/types/react.d.ts +0 -4
  603. package/dist/types/react.d.ts.map +0 -1
  604. package/dist/types/runtimes/react.d.ts +0 -28
  605. package/dist/types/runtimes/react.d.ts.map +0 -1
  606. package/dist/types/state/actions.d.ts +0 -124
  607. package/dist/types/state/actions.d.ts.map +0 -1
  608. package/dist/types/state/modules/box-models.d.ts.map +0 -1
  609. package/dist/types/state/modules/components-meta.d.ts.map +0 -1
  610. package/dist/types/state/modules/prop-controllers.d.ts.map +0 -1
  611. package/dist/types/state/modules/react-components.d.ts.map +0 -1
  612. package/dist/types/state/modules/read-only-documents.d.ts.map +0 -1
  613. package/dist/types/state/modules/read-write-documents.d.ts.map +0 -1
  614. package/dist/types/state/react-builder-preview.d.ts.map +0 -1
  615. package/dist/types/state/react-page.d.ts +0 -28
  616. package/dist/types/state/react-page.d.ts.map +0 -1
  617. package/dist/types/utils/deepEqual.d.ts.map +0 -1
  618. package/dist/types/utils/is.d.ts.map +0 -1
  619. package/dist/types/utils/shallowEqual.d.ts.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Form.es.js","sources":["../src/components/icons/check-12.svg","../src/components/builtin/Form/components/Field/services/cssField.ts","../src/components/builtin/Form/components/Field/components/Input/index.tsx","../src/components/builtin/Form/components/Placeholder/index.tsx","../src/components/builtin/Form/components/Field/components/Label/index.tsx","../src/components/builtin/Form/components/Field/components/SingleLineTextTableField/index.tsx","../src/components/builtin/Form/components/Field/components/TextArea/index.tsx","../src/components/builtin/Form/components/Field/components/LongTextTableField/index.tsx","../src/components/builtin/Form/components/Field/components/Checkbox/index.tsx","../src/components/builtin/Form/components/Field/components/CheckboxTableField/index.tsx","../src/components/builtin/Form/components/Field/components/MultipleSelectTableField/index.tsx","../src/components/builtin/Form/components/Field/components/RadioButton/index.tsx","../src/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnRadioButtonGroup/index.tsx","../src/components/builtin/Form/components/Field/components/SingleSelectTableField/components/TableColumnSingleSelect/index.tsx","../src/components/builtin/Form/components/Field/components/SingleSelectTableField/index.tsx","../src/components/builtin/Form/components/Field/components/PhoneNumberTableField/index.tsx","../src/components/builtin/Form/components/Field/components/EmailTableField/index.tsx","../src/components/builtin/Form/components/Field/components/URLTableField/index.tsx","../src/components/builtin/Form/components/Field/components/NumberTableField/index.tsx","../src/components/builtin/Form/components/Field/components/PlaceholderTableField/index.tsx","../src/components/builtin/Form/components/Field/index.tsx","../src/components/icons/spinner-20.svg","../src/components/builtin/Form/components/Spinner/index.tsx","../src/components/hooks/useTableFormFieldRefs.ts","../src/components/builtin/Form/Form.tsx"],"sourcesContent":["export default \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD0iMTIiIHZpZXdCb3g9IjAgMCAxMiAxMiIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMS43MDcxIDEuNzkyODlDMTIuMDk3NiAyLjE4MzQyIDEyLjA5NzYgMi44MTY1OCAxMS43MDcxIDMuMjA3MTFMNC43MDcxMSAxMC4yMDcxQzQuMzE2NTggMTAuNTk3NiAzLjY4MzQyIDEwLjU5NzYgMy4yOTI4OSAxMC4yMDcxTDAuMjkyODkzIDcuMjA3MTFDLTAuMDk3NjMxMSA2LjgxNjU4IC0wLjA5NzYzMTEgNi4xODM0MiAwLjI5Mjg5MyA1Ljc5Mjg5QzAuNjgzNDE3IDUuNDAyMzcgMS4zMTY1OCA1LjQwMjM3IDEuNzA3MTEgNS43OTI4OUw0IDguMDg1NzlMMTAuMjkyOSAxLjc5Mjg5QzEwLjY4MzQgMS40MDIzNyAxMS4zMTY2IDEuNDAyMzcgMTEuNzA3MSAxLjc5Mjg5WiIvPgo8L3N2Zz4K\"","import { css } from 'styled-components'\n\nimport { cssMediaRules } from '../../../../../utils/cssMediaRules'\nimport { colorToString } from '../../../../../utils/colorToString'\n\nimport {\n Size,\n Shape,\n Contrast,\n Shapes,\n Sizes,\n Contrasts,\n Value,\n} from '../../../context/FormContext'\n\nexport function getSizeHeight(size: Size): number {\n switch (size) {\n case Sizes.SMALL:\n return 30\n\n case Sizes.MEDIUM:\n return 38\n\n case Sizes.LARGE:\n return 48\n\n default:\n throw new Error(`Invalid form size \"${size}\"`)\n }\n}\n\nexport function getSizeHorizontalPadding(size: Size): number {\n switch (size) {\n case Sizes.SMALL:\n return 8\n\n case Sizes.MEDIUM:\n return 12\n\n case Sizes.LARGE:\n return 16\n\n default:\n throw new Error(`Invalid form size \"${size}\"`)\n }\n}\n\nfunction getSizeVerticalPadding(size: Size): number {\n switch (size) {\n case Sizes.SMALL:\n return 3\n\n case Sizes.MEDIUM:\n return 7\n\n case Sizes.LARGE:\n return 11\n\n default:\n throw new Error(`Invalid form size \"${size}\"`)\n }\n}\n\nexport function getShapeBorderRadius(shape: Shape): number {\n switch (shape) {\n case Shapes.SQUARE:\n return 0\n\n case Shapes.ROUNDED:\n return 4\n\n case Shapes.PILL:\n return 500\n\n default:\n throw new Error(`Invalid form shape \"${shape}\"`)\n }\n}\n\nexport function getContrastBorderColor(contrast: Contrast, error?: boolean): string {\n switch (contrast) {\n case Contrasts.LIGHT:\n return error ? 'rgba(255, 0, 0, 0.7)' : 'rgba(0, 0, 0, 0.25)'\n\n case Contrasts.DARK:\n return error ? 'rgba(255, 0, 0, 0.7)' : 'rgba(255, 255, 255, 0.6)'\n\n default:\n throw new Error(`Invalid form contrast \"${contrast}\"`)\n }\n}\n\nexport function getContrastBackgroundColor(contrast: Contrast): string {\n switch (contrast) {\n case Contrasts.LIGHT:\n return 'white'\n\n case Contrasts.DARK:\n return 'rgba(0, 0, 0, 0.7)'\n\n default:\n throw new Error(`Invalid form contrast \"${contrast}\"`)\n }\n}\n\nexport function getContrastColor(contrast: Contrast): string {\n switch (contrast) {\n case Contrasts.LIGHT:\n return 'rgba(0, 0, 0, 0.95)'\n\n case Contrasts.DARK:\n return 'white'\n\n default:\n throw new Error(`Invalid form contrast \"${contrast}\"`)\n }\n}\n\nfunction getContrastPlaceholderColor(contrast: Contrast) {\n switch (contrast) {\n case Contrasts.LIGHT:\n return 'rgba(0, 0, 0, 0.3)'\n\n case Contrasts.DARK:\n return 'rgba(255,255,255,0.3)'\n\n default:\n throw new Error(`Invalid form contrast \"${contrast}\"`)\n }\n}\n\nexport default function cssField() {\n return css<Pick<Value, 'shape' | 'size' | 'contrast' | 'brandColor'> & { error?: boolean }>`\n display: block;\n width: 100%;\n outline: none;\n border-width: 1px;\n border-style: solid;\n transition: border-color 200ms;\n ${props =>\n cssMediaRules(\n [props.shape, props.size, props.contrast, props.brandColor] as const,\n ([\n shape = Shapes.ROUNDED,\n size = Sizes.MEDIUM,\n contrast = Contrasts.LIGHT,\n brandColor = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 },\n ]) => css`\n padding: ${getSizeVerticalPadding(size)}px ${getSizeHorizontalPadding(size)}px;\n border-radius: ${getShapeBorderRadius(shape)}px;\n border-color: ${getContrastBorderColor(contrast, props.error)};\n color: ${getContrastColor(contrast)};\n background-color: ${getContrastBackgroundColor(contrast)};\n\n :focus,\n :focus-within {\n border-color: ${colorToString(brandColor)};\n }\n\n ::placeholder {\n color: ${getContrastPlaceholderColor(contrast)};\n }\n `,\n )}\n `\n}\n","import { ComponentPropsWithoutRef, forwardRef } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport { cssMediaRules } from '../../../../../../utils/cssMediaRules'\nimport { Size, useFormContext, Sizes, Value } from '../../../../context/FormContext'\nimport cssField from '../../services/cssField'\n\nexport function getSizeHeight(size: Size): number {\n switch (size) {\n case Sizes.SMALL:\n return 36\n\n case Sizes.MEDIUM:\n return 42\n\n case Sizes.LARGE:\n return 48\n\n default:\n throw new Error(`Invalid form size \"${size}\"`)\n }\n}\n\nconst Base = styled.input.withConfig({\n shouldForwardProp: (prop, defaultValidator) =>\n !['shape', 'size', 'contrast', 'brandColor', 'error'].includes(prop.toString()) &&\n defaultValidator(prop),\n})<Pick<Value, 'shape' | 'size' | 'contrast' | 'brandColor'> & { error?: boolean }>`\n ${cssField()}\n ${props =>\n cssMediaRules(\n [props.size] as const,\n ([size = Sizes.MEDIUM]) => css`\n min-height: ${getSizeHeight(size)}px;\n max-height: ${getSizeHeight(size)}px;\n `,\n )}\n`\n\ntype BaseProps = { error?: boolean; form?: unknown }\n\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<typeof Base>, keyof BaseProps>\n\nexport default forwardRef<HTMLInputElement, Props>(function Input(\n { error = false, form, ...restOfProps }: Props,\n ref,\n) {\n const { shape, size, contrast, brandColor } = useFormContext()\n\n return (\n <Base\n {...restOfProps}\n ref={ref}\n error={error}\n shape={shape}\n // @ts-expect-error: HTMLInputEleent `size` attribute conflicts with prop\n size={size}\n contrast={contrast}\n brandColor={brandColor}\n />\n )\n})\n","import { forwardRef, Ref } from 'react'\nimport styled from 'styled-components'\n\nimport { MarginValue, WidthValue } from '../../../../../prop-controllers/descriptors'\nimport { cssMargin, cssWidth } from '../../../../utils/cssMediaRules'\n\nconst Container = styled.div.withConfig({\n shouldForwardProp: prop => !['width', 'margin'].includes(prop.toString()),\n})<{\n width?: WidthValue\n margin?: MarginValue\n}>`\n display: flex;\n flex-direction: column;\n ${cssWidth()};\n ${cssMargin()};\n`\n\nconst Label = styled.div`\n max-width: 120px;\n min-width: 60px;\n height: 8px;\n border-radius: 2px;\n background-color: #a1a8c2;\n opacity: 0.4;\n margin-bottom: 8px;\n`\n\nconst Input = styled.div`\n min-width: 80px;\n height: 32px;\n border-radius: 4px;\n border-width: 2px;\n border-style: solid;\n border-color: #a1a8c2;\n opacity: 0.4;\n`\n\nconst Button = styled.div`\n min-width: 140px;\n height: 32px;\n border-radius: 4px;\n background-color: #a1a8c2;\n opacity: 0.4;\n`\n\ntype Props = {\n className?: string\n width?: WidthValue\n margin?: MarginValue\n}\n\nexport default forwardRef(function Placeholder(\n { className, width, margin }: Props,\n ref: Ref<HTMLDivElement>,\n): JSX.Element {\n return (\n <Container ref={ref} className={className} width={width} margin={margin}>\n <div style={{ display: 'flex', flexDirection: 'column', marginBottom: 16 }}>\n <Label />\n <Input />\n </div>\n <div style={{ display: 'flex', flexDirection: 'column', marginBottom: 16 }}>\n <Label />\n <Input />\n </div>\n <div style={{ display: 'flex', flexDirection: 'column', justifyContent: 'flex-end' }}>\n <Button />\n </div>\n </Container>\n )\n})\n","import { ComponentPropsWithoutRef } from 'react'\nimport styled, { css } from 'styled-components'\nimport { ResponsiveValue } from '../../../../../../../prop-controllers'\nimport { TextStyleValue } from '../../../../../../../prop-controllers/descriptors'\nimport { cssMediaRules, cssTextStyle } from '../../../../../../utils/cssMediaRules'\nimport { colorToString } from '../../../../../../utils/colorToString'\n\nimport { useFormContext, Size, Sizes, Contrast, Contrasts } from '../../../../context/FormContext'\nimport { ColorValue } from '../../../../../../utils/types'\n\nexport function getSizeHeight(size: Size): number {\n switch (size) {\n case Sizes.SMALL:\n return 14\n\n case Sizes.MEDIUM:\n return 18\n\n case Sizes.LARGE:\n return 22\n\n default:\n throw new Error(`Invalid form size \"${size}\"`)\n }\n}\n\nfunction getContrastColor(contrast: Contrast): string {\n switch (contrast) {\n case Contrasts.LIGHT:\n return 'rgba(0, 0, 0, 0.8)'\n\n case Contrasts.DARK:\n return 'rgba(255, 255, 255, 0.95)'\n\n default:\n throw new Error(`Invalid form contrast \"${contrast}\"`)\n }\n}\n\nconst Base = styled.label.withConfig({\n shouldForwardProp: (prop, defaultValidator) =>\n !['contrast', 'size', 'textStyle', 'textColor'].includes(prop.toString()) &&\n defaultValidator(prop),\n})<{\n contrast?: ResponsiveValue<Contrast> | null | undefined\n size?: ResponsiveValue<Size> | null | undefined\n textStyle?: TextStyleValue | null | undefined\n textColor?: ResponsiveValue<ColorValue> | null | undefined\n}>`\n display: block;\n margin: 0 0 0.25em 0;\n ${cssTextStyle()}\n ${props =>\n cssMediaRules(\n [props.size, props.contrast, props.textColor] as const,\n ([size = Sizes.MEDIUM, contrast = Contrasts.LIGHT, textColor]) => css`\n min-height: ${getSizeHeight(size)}px;\n color: ${textColor == null ? getContrastColor(contrast) : colorToString(textColor)};\n `,\n )}\n`\n\ntype Props = ComponentPropsWithoutRef<typeof Base>\n\nexport default function Label(props: Props): JSX.Element {\n const { contrast, size, labelTextStyle, labelTextColor } = useFormContext()\n\n return (\n <Base\n {...props}\n contrast={contrast}\n size={size}\n textStyle={labelTextStyle}\n textColor={labelTextColor}\n />\n )\n}\n","import { forwardRef } from 'react'\n\nimport Label from '../Label'\nimport Input from '../Input'\n\ntype Props = {\n id: string\n label?: string\n name: string\n error?: string\n hideLabel?: boolean\n}\n\nexport default forwardRef<HTMLInputElement, Props>(function SingleLineTextTableField(\n { id, label = '', name, error, hideLabel = false, ...restOfProps }: Props,\n ref,\n) {\n return (\n <>\n {!hideLabel && <Label htmlFor={id}>{label}</Label>}\n <Input\n {...restOfProps}\n aria-label={label}\n ref={ref}\n id={id}\n name={name}\n type=\"text\"\n error={error != null}\n />\n </>\n )\n})\n","import { forwardRef, ComponentPropsWithoutRef } from 'react'\nimport styled from 'styled-components'\n\nimport cssField from '../../services/cssField'\nimport { Value, useFormContext } from '../../../../context/FormContext'\n\nconst Base = styled.textarea.withConfig({\n shouldForwardProp: (prop, defaultValidator) =>\n !['error', 'shape', 'size', 'contrast', 'brandColor'].includes(prop.toString()) &&\n defaultValidator(prop),\n})<Value & { error?: boolean }>`\n resize: vertical;\n ${cssField()}\n`\n\ntype BaseProps = { error?: boolean; form?: unknown }\n\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<typeof Base>, keyof BaseProps>\n\nexport default forwardRef<HTMLTextAreaElement, Props>(function TextArea(\n { error = false, form, ...restOfProps }: Props,\n ref,\n) {\n const { shape, size, contrast, brandColor } = useFormContext()\n\n return (\n <Base\n {...restOfProps}\n ref={ref}\n rows={4}\n error={error}\n shape={shape}\n size={size}\n contrast={contrast}\n brandColor={brandColor}\n />\n )\n})\n","import { forwardRef } from 'react'\n\nimport Label from '../Label'\nimport TextArea from '../TextArea'\n\ntype Props = {\n id: string\n label?: string\n error?: string\n hideLabel?: boolean\n}\n\nexport default forwardRef<HTMLTextAreaElement, Props>(function LongTextTableField(\n { id, label = '', error, hideLabel = false, ...restOfProps }: Props,\n ref,\n) {\n return (\n <>\n {!hideLabel && <Label htmlFor={id}>{label}</Label>}\n <TextArea {...restOfProps} aria-label={label} ref={ref} id={id} error={error != null} />\n </>\n )\n})\n","import { forwardRef, CSSProperties, ComponentPropsWithoutRef } from 'react'\nimport styled, { css } from 'styled-components'\nimport Color from 'color'\n\nimport { getSizeHeight as getSize } from '../Label'\nimport {\n useFormContext,\n Value as FormContextValue,\n Sizes,\n Contrasts,\n} from '../../../../context/FormContext'\nimport { getContrastBorderColor, getContrastBackgroundColor } from '../../services/cssField'\nimport { cssMediaRules } from '../../../../../../utils/cssMediaRules'\nimport { colorToString } from '../../../../../../utils/colorToString'\nimport { SwatchValue } from '../../../../../../utils/types'\n\nfunction getCheckmarkColor({\n swatch: { hue: h, saturation: s, lightness: l },\n alpha: a,\n}: {\n swatch: SwatchValue\n alpha: number\n}) {\n return Color({ h, s, l }).alpha(a).isLight() ? 'rgba(0, 0, 0, 0.7)' : 'rgba(255, 255, 255, 0.95)'\n}\n\nconst Container = styled.div.withConfig({\n shouldForwardProp: prop => !['size'].includes(prop),\n})<Pick<FormContextValue, 'size'>>`\n position: relative;\n ${props =>\n cssMediaRules(\n [props.size] as const,\n ([size = Sizes.MEDIUM]) => css`\n height: ${getSize(size)}px;\n width: ${getSize(size)}px;\n `,\n )}\n`\n\nconst FakeCheckbox = styled.div.withConfig({\n shouldForwardProp: prop => !['contrast', 'error'].includes(prop),\n})<Pick<FormContextValue, 'contrast'> & { error?: boolean }>`\n position: absolute;\n width: 100%;\n height: 100%;\n border-style: solid;\n border-radius: 4px;\n pointer-events: none;\n border-width: 1px;\n ${props =>\n cssMediaRules(\n [props.contrast] as const,\n ([contrast = Contrasts.LIGHT]) => css`\n border-color: ${getContrastBorderColor(contrast, props.error)};\n background-color: ${getContrastBackgroundColor(contrast)};\n `,\n )}\n`\n\nconst HiddenCheckbox = styled.input.withConfig({\n shouldForwardProp: (prop, defaultValidator) =>\n !['size', 'brandColor', 'contrast', 'error'].includes(prop) && defaultValidator(prop),\n})<\n Pick<FormContextValue, 'size' | 'brandColor' | 'contrast'> & {\n error?: boolean\n }\n>`\n position: absolute;\n opacity: 0;\n width: 100%;\n height: 100%;\n cursor: pointer;\n\n &:disabled {\n cursor: no-drop;\n\n & ~ ${FakeCheckbox} {\n opacity: 0.5;\n }\n }\n\n &:checked ~ ${FakeCheckbox} {\n ${props =>\n cssMediaRules(\n [props.brandColor] as const,\n ([{ swatch = { hue: 0, saturation: 0, lightness: 0 }, alpha = 1 } = {}]) => css`\n background-color: ${colorToString({ swatch, alpha })};\n `,\n )}\n border-color: transparent;\n\n &::after {\n content: '';\n position: absolute;\n box-sizing: content-box;\n width: 25%;\n height: 50%;\n ${props =>\n cssMediaRules(\n [props.size] as const,\n ([size = Sizes.MEDIUM]) => css`\n border-width: ${getSize(size) * 0.1}px;\n border-left: 0;\n border-top: 0;\n `,\n )}\n border-style: solid;\n ${props =>\n cssMediaRules(\n [props.brandColor] as const,\n ([{ swatch = { hue: 0, saturation: 0, lightness: 0 }, alpha = 1 } = {}]) => css`\n border-color: ${getCheckmarkColor({ swatch, alpha })};\n `,\n )}\n transform: rotate(45deg) translate3d(91%, -23%, 0);\n }\n }\n\n &:not(:disabled) {\n &:focus ~ ${FakeCheckbox} {\n ${props =>\n cssMediaRules(\n [props.brandColor],\n ([brandColor = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 }]) => css`\n border-color: ${colorToString(brandColor)};\n `,\n )}\n }\n }\n\n &:not(:disabled):checked {\n &:focus ~ ${FakeCheckbox} {\n ${props =>\n cssMediaRules(\n [props.contrast],\n ([contrast = Contrasts.LIGHT]) => css`\n border-color: ${getContrastBorderColor(contrast, props.error)};\n `,\n )}\n }\n }\n`\n\ntype BaseProps = {\n error?: boolean\n className?: string\n style?: CSSProperties\n form?: unknown\n}\n\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<typeof HiddenCheckbox>, keyof BaseProps>\n\nexport default forwardRef<HTMLInputElement, Props>(function Checkbox(\n { error, className, style, form, ...restOfProps }: Props,\n ref,\n) {\n const { size, contrast, brandColor } = useFormContext()\n\n return (\n <Container size={size}>\n <HiddenCheckbox\n {...restOfProps}\n type=\"checkbox\"\n ref={ref}\n error={error}\n // @ts-expect-error: HTMLInputElement `size` attribute conflicts with prop\n size={size}\n contrast={contrast}\n brandColor={brandColor}\n />\n <FakeCheckbox className={className} error={error} contrast={contrast} style={style} />\n </Container>\n )\n})\n","import { forwardRef, SyntheticEvent } from 'react'\nimport styled, { css } from 'styled-components'\nimport { FormikProps } from 'formik'\n\nimport { useFormContext, Sizes, Value } from '../../../../context/FormContext'\nimport Label from '../Label'\nimport { getSizeHeight as getInputSizeHeight } from '../Input'\nimport Checkbox from '../Checkbox'\nimport { cssMediaRules } from '../../../../../../utils/cssMediaRules'\n\nconst StyledLabel = styled(Label)<Pick<Value, 'size'>>`\n display: flex;\n align-items: center;\n margin: 0;\n ${props =>\n cssMediaRules(\n [props.size] as const,\n ([size = Sizes.MEDIUM]) => css`\n min-height: ${getInputSizeHeight(size)}px;\n max-height: ${getInputSizeHeight(size)}px;\n `,\n )}\n`\n\nconst CheckboxContainer = styled.span`\n margin-right: 8px;\n`\n\ntype Props = {\n form: FormikProps<{\n [key: string]: boolean\n }>\n id: string\n label?: string\n name: string\n value?: boolean\n error?: string\n}\n\nexport default forwardRef<HTMLInputElement, Props>(function CheckboxTableField(\n { form, id, name, label = '', value = false, error, ...restOfProps }: Props,\n ref,\n) {\n const { size } = useFormContext()\n\n function handleChange(event: SyntheticEvent<HTMLInputElement>) {\n form.setFieldValue(name, event.currentTarget.checked)\n }\n\n return (\n <StyledLabel htmlFor={id} size={size}>\n <CheckboxContainer>\n <Checkbox\n {...restOfProps}\n aria-label={label}\n checked={value}\n onChange={handleChange}\n ref={ref}\n id={id}\n error={error != null}\n />\n </CheckboxContainer>\n {label}\n </StyledLabel>\n )\n})\n","import { forwardRef, useRef, useImperativeHandle, SyntheticEvent } from 'react'\nimport styled from 'styled-components'\n\nimport Label from '../Label'\nimport Checkbox from '../Checkbox'\n\nconst MainLabel = styled(Label)`\n margin: 0 0 4px 0;\n`\n\nconst StyledLabel = styled(Label)`\n display: flex;\n align-items: center;\n margin: 8px 0;\n\n &:last-of-type {\n margin-bottom: 0;\n }\n`\n\nconst CheckboxContainer = styled.span`\n margin-right: 8px;\n`\n\ntype Props = {\n id: string\n tableColumn: {\n options: Array<{\n id: string\n name: string\n }>\n }\n value?: Array<string>\n label?: string\n onChange: (arg0: SyntheticEvent<HTMLInputElement>) => unknown\n required?: boolean\n hideLabel?: boolean\n}\n\nexport default forwardRef<\n {\n validity: {\n valueMissing: boolean\n typeMismatch: boolean\n }\n },\n Props\n>(function MultipleSelectTableField(\n {\n tableColumn,\n label = '',\n required,\n value = [],\n onChange,\n hideLabel = false,\n ...restOfProps\n }: Props,\n ref,\n) {\n const handle = useRef({\n validity: { valueMissing: required === true && value.length === 0, typeMismatch: false },\n })\n\n useImperativeHandle(ref, () => handle.current, [])\n\n function handleChange(event: SyntheticEvent<HTMLInputElement>) {\n handle.current.validity.valueMissing =\n required === true &&\n !event.currentTarget.checked &&\n value.filter(v => v !== event.currentTarget.value).length === 0\n\n onChange(event)\n }\n\n return (\n <div>\n {!hideLabel && <MainLabel>{label}</MainLabel>}\n {tableColumn.options.map(option => (\n <StyledLabel key={option.id} htmlFor={option.id}>\n <CheckboxContainer>\n <Checkbox\n {...restOfProps}\n aria-label={label}\n onChange={handleChange}\n checked={value.includes(option.name)}\n id={option.id}\n value={option.name}\n />\n </CheckboxContainer>\n {option.name}\n </StyledLabel>\n ))}\n </div>\n )\n})\n","import { forwardRef, CSSProperties, ComponentPropsWithoutRef } from 'react'\nimport styled, { css } from 'styled-components'\nimport Color from 'color'\n\nimport { getSizeHeight as getSize } from '../Label'\nimport { useFormContext, Sizes, Contrasts, Value } from '../../../../context/FormContext'\nimport { getContrastBorderColor, getContrastBackgroundColor } from '../../services/cssField'\nimport { cssMediaRules } from '../../../../../../utils/cssMediaRules'\nimport { colorToString } from '../../../../../../utils/colorToString'\nimport { ColorValue } from '../../../../../../utils/types'\n\nfunction getCheckmarkColor({\n swatch: { hue: h, saturation: s, lightness: l } = { hue: 0, saturation: 0, lightness: 0 },\n alpha: a,\n}: ColorValue) {\n return Color({ h, s, l }).alpha(a).isLight() ? 'rgba(0, 0, 0, 0.7)' : 'rgba(255, 255, 255, 0.95)'\n}\n\nconst Container = styled.div.withConfig({\n shouldForwardProp: prop => !['size'].includes(prop.toString()),\n})<Pick<Value, 'size'>>`\n position: relative;\n ${props =>\n cssMediaRules(\n [props.size],\n ([size = Sizes.MEDIUM]) => css`\n height: ${getSize(size)}px;\n width: ${getSize(size)}px;\n `,\n )}\n`\n\nconst FakeRadioButton = styled.div.withConfig({\n shouldForwardProp: prop => !['contrast', 'error'].includes(prop.toString()),\n})<Pick<Value, 'contrast'> & { error?: boolean }>`\n position: absolute;\n width: 100%;\n height: 100%;\n border-style: solid;\n border-radius: 50%;\n pointer-events: none;\n border-width: 1px;\n ${props =>\n cssMediaRules(\n [props.contrast],\n ([contrast = Contrasts.LIGHT]) => css`\n border-color: ${getContrastBorderColor(contrast, props.error)};\n background-color: ${getContrastBackgroundColor(contrast)};\n `,\n )}\n`\n\nconst HiddenRadioButton = styled.input\n .withConfig({\n shouldForwardProp: prop => !['brandColor', 'contrast', 'error'].includes(prop.toString()),\n })\n .attrs({ type: 'radio' })<Pick<Value, 'brandColor' | 'contrast'> & { error?: boolean }>`\n position: absolute;\n opacity: 0;\n width: 100%;\n height: 100%;\n cursor: pointer;\n\n &:disabled {\n cursor: no-drop;\n\n & ~ ${FakeRadioButton} {\n opacity: 0.5;\n }\n }\n\n &:checked ~ ${FakeRadioButton} {\n ${props =>\n cssMediaRules(\n [props.brandColor] as const,\n ([brandColor = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 }]) => css`\n background-color: ${colorToString(brandColor)};\n `,\n )}\n border-color: transparent;\n\n &::after {\n content: '';\n position: absolute;\n box-sizing: content-box;\n top: 50%;\n left: 50%;\n width: 50%;\n height: 50%;\n border-radius: 50%;\n transform: translate(-50%, -50%);\n ${props =>\n cssMediaRules(\n [props.brandColor] as const,\n ([brandColor = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 }]) => css`\n background-color: ${getCheckmarkColor(brandColor)};\n `,\n )}\n }\n }\n\n &:not(:disabled) {\n &:focus ~ ${FakeRadioButton} {\n ${props =>\n cssMediaRules(\n [props.brandColor] as const,\n ([brandColor = { swatch: { hue: 0, saturation: 0, lightness: 0 }, alpha: 1 }]) => css`\n border-color: ${colorToString(brandColor)};\n `,\n )}\n }\n }\n\n &:not(:disabled):checked {\n &:focus ~ ${FakeRadioButton} {\n ${props =>\n cssMediaRules(\n [props.contrast] as const,\n ([contrast = Contrasts.LIGHT]) => css`\n border-color: ${getContrastBorderColor(contrast, props.error)};\n `,\n )}\n }\n }\n`\n\ntype BaseProps = {\n error?: boolean\n className?: string\n style?: CSSProperties\n form?: unknown\n}\n\ntype Props = BaseProps & Omit<ComponentPropsWithoutRef<typeof HiddenRadioButton>, keyof BaseProps>\n\nexport default forwardRef<HTMLInputElement, Props>(function RadioButton(\n { error, className, style, form, ...restOfProps }: Props,\n ref,\n) {\n const { size, contrast, brandColor } = useFormContext()\n\n return (\n <Container size={size}>\n <HiddenRadioButton\n {...restOfProps}\n ref={ref}\n error={error}\n contrast={contrast}\n brandColor={brandColor}\n />\n <FakeRadioButton className={className} error={error} contrast={contrast} style={style} />\n </Container>\n )\n})\n","import { forwardRef, useRef, useImperativeHandle, SyntheticEvent } from 'react'\nimport styled from 'styled-components'\n\nimport Label from '../../../Label'\nimport RadioButton from '../../../RadioButton'\n\nconst StyledLabel = styled(Label)`\n display: flex;\n align-items: center;\n margin: 8px 0;\n\n &:last-of-type {\n margin-bottom: 0;\n }\n`\n\nconst RadioButtonContainer = styled.span`\n margin-right: 8px;\n`\n\ntype Props = {\n id: string\n tableColumn: {\n options: Array<{\n id: string\n name: string\n }>\n }\n label?: string\n value?: string\n hideLabel?: boolean\n onChange: (arg0: SyntheticEvent<HTMLInputElement>) => unknown\n required?: boolean\n}\n\nexport default forwardRef<\n {\n validity: {\n valueMissing: boolean\n typeMismatch: boolean\n }\n },\n Props\n>(function TableColumnRadioButtonGroup(\n {\n tableColumn,\n label = '',\n value = '',\n required = false,\n hideLabel = false,\n onChange,\n ...restOfProps\n }: Props,\n ref,\n) {\n const handle = useRef({\n validity: { valueMissing: required === true && value === '', typeMismatch: false },\n })\n\n useImperativeHandle(ref, () => handle.current, [])\n\n function handleChange(event: SyntheticEvent<HTMLInputElement>) {\n handle.current.validity.valueMissing = required === true && !event.currentTarget.checked\n\n onChange(event)\n }\n\n return (\n <div>\n {!hideLabel && <Label as=\"p\">{label}</Label>}\n {tableColumn.options.map(option => (\n <StyledLabel key={option.id} htmlFor={option.id} aria-label={label}>\n <RadioButtonContainer>\n <RadioButton\n {...restOfProps}\n onChange={handleChange}\n checked={value === option.name}\n id={option.id}\n value={option.name}\n />\n </RadioButtonContainer>\n {option.name}\n </StyledLabel>\n ))}\n </div>\n )\n})\n","import { forwardRef } from 'react'\nimport styled, { css } from 'styled-components'\n\nimport { cssMediaRules } from '../../../../../../../../utils/cssMediaRules'\nimport { useFormContext, Sizes, Contrasts, Value } from '../../../../../../context/FormContext'\nimport cssField, {\n getSizeHeight,\n getSizeHorizontalPadding,\n getContrastColor,\n} from '../../../../services/cssField'\nimport Label from '../../../Label'\n\nconst Container = styled.div.withConfig({\n shouldForwardProp: prop =>\n !['error', 'shape', 'size', 'contrast', 'brandColor'].includes(prop.toString()),\n})<Value & { error?: boolean }>`\n ${cssField()}\n display: flex;\n align-items: center;\n position: relative;\n user-select: none;\n border-color: #f19eb9;\n\n &:focus,\n &:focus-within {\n border-color: #e54e7f;\n }\n\n ${props =>\n cssMediaRules(\n [props.size, props.contrast] as const,\n ([size = Sizes.MEDIUM, contrast = Contrasts.LIGHT]) => css`\n min-height: ${getSizeHeight(size)}px;\n max-height: ${getSizeHeight(size)}px;\n\n &::after {\n content: '';\n position: absolute;\n right: ${getSizeHorizontalPadding(size)}px;\n top: 50%;\n transform: translate3d(0, -25%, 0);\n border: solid 0.35em transparent;\n border-top-color: ${getContrastColor(contrast)};\n }\n `,\n )}\n`\n\nconst Select = styled.select`\n appearance: none;\n position: absolute;\n top: 0;\n left: 0;\n opacity: 0;\n width: 100%;\n height: 100%;\n`\n\ntype Props = {\n id: string\n tableColumn: {\n options: Array<{\n id: string\n name: string\n }>\n }\n value?: string\n label?: string\n required?: boolean\n error?: boolean\n hideLabel?: boolean\n form?: unknown\n}\n\nexport default forwardRef<HTMLSelectElement, Props>(function TableColumnSingleSelect(\n {\n id,\n tableColumn,\n value = '',\n label = '',\n error = false,\n hideLabel = false,\n form,\n ...restOfProps\n }: Props,\n ref,\n) {\n const { shape, size, contrast, brandColor } = useFormContext()\n\n return (\n <>\n {!hideLabel && <Label htmlFor={id}>{label}</Label>}\n <Container\n error={error}\n shape={shape}\n size={size}\n contrast={contrast}\n brandColor={brandColor}\n >\n <span>{value === '' ? '-' : value}</span>\n <Select {...restOfProps} aria-label={label} ref={ref} id={id} value={value}>\n <option value=\"\">-</option>\n {tableColumn.options.map(option => (\n <option key={option.id} value={option.name}>\n {option.name}\n </option>\n ))}\n </Select>\n </Container>\n </>\n )\n})\n","import { forwardRef, SyntheticEvent } from 'react'\n\nimport TableColumnRadioButtonGroup from './components/TableColumnRadioButtonGroup'\nimport TableColumnSingleSelect from './components/TableColumnSingleSelect'\n\ntype Props = {\n id: string\n name: string\n tableColumn: {\n options: Array<{\n id: string\n name: string\n }>\n }\n label?: string\n value?: string\n onChange: (arg0: SyntheticEvent<HTMLInputElement>) => unknown\n required?: boolean\n type: 'select' | 'radio'\n}\n\nexport default forwardRef<\n {\n readonly validity: {\n readonly valueMissing: boolean\n readonly typeMismatch: boolean\n }\n },\n Props\n>(function SingleSelectTableField({ type, ...restOfProps }: Props, ref) {\n return type === 'select' ? (\n // @ts-expect-error: custom ref doesn't match select element\n <TableColumnSingleSelect {...restOfProps} ref={ref} />\n ) : (\n <TableColumnRadioButtonGroup {...restOfProps} ref={ref} />\n )\n})\n","import { forwardRef } from 'react'\n\nimport Label from '../Label'\nimport Input from '../Input'\n\ntype Props = {\n id: string\n label?: string\n name: string\n error?: string\n hideLabel?: boolean\n}\n\nexport default forwardRef<HTMLInputElement, Props>(function PhoneNumberTableField(\n { id, label = '', name, error, hideLabel = false, ...restOfProps }: Props,\n ref,\n) {\n return (\n <>\n {!hideLabel && <Label htmlFor={id}>{label}</Label>}\n <Input\n {...restOfProps}\n aria-label={label}\n ref={ref}\n id={id}\n name={name}\n type=\"tel\"\n error={error != null}\n />\n </>\n )\n})\n","import { forwardRef } from 'react'\n\nimport Label from '../Label'\nimport Input from '../Input'\n\ntype Props = {\n id: string\n label?: string\n name: string\n error?: string\n hideLabel?: boolean\n}\n\nexport default forwardRef<HTMLInputElement, Props>(function EmailTableField(\n { id, label = '', name, error, hideLabel = false, ...restOfProps }: Props,\n ref,\n) {\n return (\n <>\n {!hideLabel && <Label htmlFor={id}>{label}</Label>}\n <Input\n {...restOfProps}\n aria-label={label}\n ref={ref}\n id={id}\n name={name}\n type=\"email\"\n error={error != null}\n />\n </>\n )\n})\n","import { forwardRef } from 'react'\n\nimport Label from '../Label'\nimport Input from '../Input'\n\ntype Props = {\n id: string\n label?: string\n name: string\n error?: string\n hideLabel?: boolean\n}\n\nexport default forwardRef<HTMLInputElement, Props>(function URLTableField(\n { id, label = '', name, error, hideLabel = false, ...restOfProps }: Props,\n ref,\n) {\n return (\n <>\n {!hideLabel && <Label htmlFor={id}>{label}</Label>}\n <Input\n {...restOfProps}\n aria-label={label}\n ref={ref}\n id={id}\n name={name}\n type=\"url\"\n error={error != null}\n />\n </>\n )\n})\n","import { forwardRef } from 'react'\n\nimport Label from '../Label'\nimport Input from '../Input'\n\ntype Props = {\n id: string\n label?: string\n name: string\n error?: string\n hideLabel?: boolean\n}\n\nexport default forwardRef<HTMLInputElement, Props>(function NumberTableField(\n { id, label = '', name, error, hideLabel = false, ...restOfProps }: Props,\n ref,\n) {\n return (\n <>\n {!hideLabel && <Label htmlFor={id}>{label}</Label>}\n <Input\n {...restOfProps}\n aria-label={label}\n ref={ref}\n id={id}\n name={name}\n type=\"number\"\n error={error != null}\n />\n </>\n )\n})\n","import styled, { css } from 'styled-components'\n\nimport { useFormContext, Sizes, Shapes, Value } from '../../../../context/FormContext'\nimport { getSizeHeight as getLabelSizeHeight } from '../Label'\nimport { getSizeHeight as getInputSizeHeight } from '../Input'\nimport { getShapeBorderRadius } from '../../services/cssField'\nimport { cssMediaRules } from '../../../../../../utils/cssMediaRules'\n\nconst Label = styled.div.withConfig({\n shouldForwardProp: prop => !['size'].includes(prop.toString()),\n})<Pick<Value, 'size'>>`\n display: block;\n max-width: 120px;\n min-width: 60px;\n border-radius: 2px;\n background-color: #5f49f4;\n opacity: 0.4;\n ${props =>\n cssMediaRules(\n [props.size] as const,\n ([size = Sizes.MEDIUM]) => css`\n margin: calc(0.25 * ${getLabelSizeHeight(size)}px + 2px) 0;\n min-height: ${0.5 * getLabelSizeHeight(size)}px;\n max-height: ${0.5 * getLabelSizeHeight(size)}px;\n `,\n )}\n`\n\nconst Input = styled.div.withConfig({\n shouldForwardProp: prop => !['shape', 'size'].includes(prop.toString()),\n})<Pick<Value, 'shape' | 'size'>>`\n display: block;\n width: 100%;\n border-width: 2px;\n border-style: solid;\n border-color: #5f49f4;\n opacity: 0.4;\n ${props =>\n cssMediaRules(\n [props.shape, props.size] as const,\n ([shape = Shapes.ROUNDED, size = Sizes.MEDIUM]) => css`\n min-height: ${getInputSizeHeight(size)}px;\n max-height: ${getInputSizeHeight(size)}px;\n border-radius: ${getShapeBorderRadius(shape)}px;\n `,\n )}\n`\n\nexport default function PlaceholderTableField(): JSX.Element {\n const { size, shape } = useFormContext()\n\n return (\n <>\n <Label size={size} />\n <Input shape={shape} size={size} />\n </>\n )\n}\n","import { useRef } from 'react'\nimport { Field as FormikField, getIn } from 'formik'\n\nimport SingleLineTextTableField from './components/SingleLineTextTableField'\nimport LongTextTableField from './components/LongTextTableField'\nimport CheckboxTableField from './components/CheckboxTableField'\nimport MultipleSelectTableField from './components/MultipleSelectTableField'\nimport SingleSelectTableField from './components/SingleSelectTableField'\nimport PhoneNumberTableField from './components/PhoneNumberTableField'\nimport EmailTableField from './components/EmailTableField'\nimport URLTableField from './components/URLTableField'\nimport NumberTableField from './components/NumberTableField'\nimport PlaceholderTableField from './components/PlaceholderTableField'\nimport { TableColumn } from '../../types'\n\nfunction getTypeMismatchErrorMessage(tableColumn: TableColumn | null | undefined, label: string) {\n switch ((tableColumn || {}).__typename) {\n case 'PhoneNumberTableColumn':\n return `${label} field must be a valid phone number.`\n\n case 'EmailTableColumn':\n return `${label} field must be a valid email.`\n\n case 'URLTableColumn':\n return `${label} field must be a valid URL.`\n\n case 'NumberTableColumn':\n return `${label} field must be a valid number.`\n\n case 'SingleLineTextTableColumn':\n case 'LongTextTableColumn':\n case 'CheckboxTableColumn':\n default:\n return `${label} field is invalid.`\n }\n}\n\nfunction getTableColumnField(tableColumn: TableColumn | null | undefined) {\n switch ((tableColumn || {}).__typename) {\n case 'SingleLineTextTableColumn':\n return SingleLineTextTableField\n\n case 'LongTextTableColumn':\n return LongTextTableField\n\n case 'CheckboxTableColumn':\n return CheckboxTableField\n\n case 'MultipleSelectTableColumn':\n return MultipleSelectTableField\n\n case 'SingleSelectTableColumn':\n return SingleSelectTableField\n\n case 'PhoneNumberTableColumn':\n return PhoneNumberTableField\n\n case 'EmailTableColumn':\n return EmailTableField\n\n case 'URLTableColumn':\n return URLTableField\n\n case 'NumberTableColumn':\n return NumberTableField\n\n default:\n return SingleLineTextTableField\n }\n}\n\ntype TableFormField = {\n id: string\n tableColumnId: string\n label?: string\n placeholder?: string\n required?: boolean\n hidden?: boolean\n type?: 'select' | 'radio'\n hideLabel?: boolean\n}\n\ntype Props = {\n tableColumn: TableColumn | null | undefined\n tableFormField: TableFormField\n}\n\nexport default function Field({\n tableColumn,\n tableFormField: {\n id,\n label = '',\n placeholder,\n required = false,\n hidden = false,\n type = 'radio',\n hideLabel = false,\n },\n}: Props): JSX.Element {\n const TableColumnField = getTableColumnField(tableColumn)\n const input = useRef<\n | {\n validity: {\n valueMissing: boolean\n typeMismatch: boolean\n }\n }\n | null\n | undefined\n >(null)\n\n if (!tableColumn) return <PlaceholderTableField />\n\n function validate() {\n let errorMessage\n\n if (input.current) {\n const { validity = {} as ValidityState } = input.current\n\n if (validity.valueMissing) errorMessage = `${label} is required.`\n\n if (validity.typeMismatch) errorMessage = getTypeMismatchErrorMessage(tableColumn, label)\n }\n\n return errorMessage\n }\n\n return (\n <FormikField name={tableColumn.name} validate={validate}>\n {({ field, form }: any) =>\n hidden ? (\n <input {...field} ref={input} type=\"hidden\" />\n ) : (\n <TableColumnField\n {...field}\n type={type}\n form={form}\n tableColumn={tableColumn}\n ref={input}\n id={id}\n error={getIn(form.touched, field.name) && getIn(form.errors, field.name)}\n label={label}\n placeholder={placeholder}\n required={required}\n hideLabel={hideLabel}\n />\n )\n }\n </FormikField>\n )\n}\n","export default \"data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyMCIgaGVpZ2h0PSIyMCI+CiAgPGcgZmlsbD0ibm9uZSIgc3Ryb2tlLXdpZHRoPSIyIiB0cmFuc2Zvcm09InRyYW5zbGF0ZSgxIDEpIj4KICAgIDxjaXJjbGUgc3Ryb2tlPSJjdXJyZW50Q29sb3IiIGN4PSI5IiBjeT0iOSIgcj0iOSIgc3Ryb2tlLW9wYWNpdHk9Ii40Ii8+CiAgICA8cGF0aCBzdHJva2UtbGluZWNhcD0icm91bmQiIGQ9Ik05IDE4QTkgOSAwIDAgMCA5IDAiLz4KICA8L2c+Cjwvc3ZnPgo=\"","import styled, { keyframes } from 'styled-components'\n\nimport { ReactComponent as Spinner20 } from '../../../../icons/spinner-20.svg'\n\nconst spin = keyframes`\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n`\n\nconst Icon = styled(Spinner20)`\n display: inline-flex;\n animation: ${spin} 1s linear infinite;\n stroke: currentColor;\n`\n\nexport default function Spinner(): JSX.Element {\n return <Icon />\n}\n","import { useState, useEffect, useMemo } from 'react'\nimport { getBox } from '../../box-model'\nimport { TableFormFieldsPropController } from '../../prop-controllers/instances'\nimport { useIsInBuilder } from '../../runtimes/react'\n\nexport function useTableFormFieldRefs(\n propController: TableFormFieldsPropController | null | undefined,\n { fieldsCount }: { fieldsCount: number },\n): {\n container: (arg0: HTMLElement | null | undefined) => void\n items: Array<(arg0: HTMLElement | null | undefined) => void>\n} {\n const [container, setContainer] = useState<HTMLElement | null | undefined>(null)\n const [items, setItems] = useState<Array<HTMLElement | null | undefined>>(\n Array(fieldsCount + 1).fill(null),\n )\n\n const isInBuilder = useIsInBuilder()\n\n useEffect(() => {\n if (!isInBuilder) return\n\n let animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n\n return () => {\n cancelAnimationFrame(animationFrameHandle)\n }\n\n function handleAnimationFrameRequest() {\n if (propController == null) return\n\n if (container != null) propController.tableFormLayoutChange({ layout: getBox(container) })\n\n items.map((item, index) => {\n if (item == null) return\n\n propController.tableFormFieldLayoutChange({ index, layout: getBox(item) })\n })\n\n animationFrameHandle = requestAnimationFrame(handleAnimationFrameRequest)\n }\n }, [propController, container, items, isInBuilder])\n\n const itemRefs = useMemo(\n () =>\n Array.from({ length: fieldsCount + 1 }).map(\n (_, index) => (item: HTMLElement | null | undefined) => {\n setItems(is => [...is.slice(0, index), item, ...is.slice(index + 1)])\n },\n ),\n [fieldsCount, setItems],\n )\n\n return { container: setContainer, items: itemRefs }\n}\n","import {\n useState,\n useEffect,\n useRef,\n useMemo,\n forwardRef,\n ComponentPropsWithoutRef,\n Ref,\n useImperativeHandle,\n} from 'react'\nimport styled, { css } from 'styled-components'\nimport { Formik, getIn } from 'formik'\n\nimport { ReactComponent as Check12 } from '../../icons/check-12.svg'\n\nimport { getSizeHeight as getInputSizeHeight } from './components/Field/components/Input'\n\nimport {\n Size,\n Sizes,\n Provider as FormContextProvider,\n Shape,\n Contrast,\n Alignment,\n Alignments,\n} from './context/FormContext'\nimport Placeholder from './components/Placeholder'\nimport Field from './components/Field'\nimport Spinner from './components/Spinner'\nimport Button from '../Button'\nimport type { TableColumn, Table } from './types'\nimport { cssGridItem, cssMargin, cssMediaRules, cssWidth } from '../../utils/cssMediaRules'\nimport {\n ElementIDValue,\n GapYValue,\n LinkValue,\n MarginValue,\n ResponsiveIconRadioGroupValue,\n ResponsiveLengthValue,\n ResponsiveSelectValue,\n TableFormFieldsDescriptor,\n TableFormFieldsValue,\n TableValue,\n TextInputValue,\n TextStyleValue,\n WidthValue,\n} from '../../../prop-controllers/descriptors'\nimport { Link } from '../../shared/Link'\nimport { BoxModelHandle, getBox } from '../../../box-model'\nimport { PropControllersHandle } from '../../../state/modules/prop-controller-handles'\nimport { DescriptorsPropControllers } from '../../../prop-controllers/instances'\nimport { useTableFormFieldRefs } from '../../hooks/useTableFormFieldRefs'\nimport { useMutation, gql, useQuery } from '../../../api/react'\nimport { ResponsiveColor } from '../../../runtimes/react/controls'\nimport { TABLE_BY_ID } from '../../utils/queries'\n\nconst LOCAL_STORAGE_NAMESPACE = '@@makeswift/components/form'\n\nfunction getSizeFontSize(size: Size): number {\n switch (size) {\n case Sizes.SMALL:\n return 12\n\n case Sizes.MEDIUM:\n return 14\n\n case Sizes.LARGE:\n return 18\n\n default:\n throw new Error(`Invalid form size \"${size}\"`)\n }\n}\n\ntype Props = {\n id?: ElementIDValue\n tableId?: TableValue\n fields?: TableFormFieldsValue\n submitLink?: LinkValue\n gap?: GapYValue\n shape?: ResponsiveIconRadioGroupValue<Shape>\n size?: ResponsiveIconRadioGroupValue<Size>\n contrast?: ResponsiveIconRadioGroupValue<Contrast>\n labelTextStyle?: TextStyleValue\n labelTextColor?: ResponsiveColor | null\n submitTextStyle?: TextStyleValue\n brandColor?: ResponsiveColor | null\n submitTextColor?: ResponsiveColor | null\n submitLabel?: TextInputValue\n submitVariant?: ResponsiveSelectValue<\n 'flat' | 'outline' | 'shadow' | 'clear' | 'blocky' | 'bubbly' | 'skewed'\n >\n submitWidth?: ResponsiveLengthValue\n submitAlignment?: ResponsiveIconRadioGroupValue<Alignment>\n width?: WidthValue\n margin?: MarginValue\n}\n\nconst GridForm = styled.form.withConfig({\n shouldForwardProp: prop => !['size', 'width', 'margin'].includes(prop),\n})<{\n size: Props['size']\n width: Props['width']\n margin: Props['margin']\n}>`\n display: flex;\n flex-wrap: wrap;\n width: 100%;\n ${props =>\n cssMediaRules(\n [props.size],\n ([size = Sizes.MEDIUM]) => css`\n font-size: ${getSizeFontSize(size)}px;\n `,\n )}\n ${cssWidth()}\n ${cssMargin()}\n`\n\nconst GridItem = styled.div.withConfig({\n shouldForwardProp: prop => !['grid', 'index', 'rowGap', 'columnGap'].includes(prop),\n})`\n align-self: flex-end;\n flex-direction: column;\n ${cssGridItem()}\n`\n\nfunction getAlignmentMargin(alignment: Alignment): string {\n switch (alignment) {\n case Alignments.LEFT:\n return '0 auto 0 0'\n case Alignments.RIGHT:\n return '0 0 0 auto'\n default:\n return '0 auto'\n }\n}\n\nconst StyledButton = styled((props: ComponentPropsWithoutRef<typeof Button>) => (\n <Button {...props} as=\"button\" />\n)).withConfig({\n shouldForwardProp: prop => !['alignment'].includes(prop.toString()),\n})<{\n size: Props['size']\n alignment: Props['submitAlignment']\n}>`\n display: flex;\n align-items: center;\n justify-content: center;\n ${props =>\n cssMediaRules(\n [props.size, props.alignment] as const,\n ([size = Sizes.MEDIUM, alignment = Alignments.CENTER]) => css`\n min-height: ${getInputSizeHeight(size)}px;\n max-height: ${getInputSizeHeight(size)}px;\n margin: ${getAlignmentMargin(alignment)};\n padding-top: 0;\n padding-bottom: 0;\n `,\n )}\n`\n\nconst ErrorContainer = styled.div`\n padding: 8px 16px;\n background-color: #f19eb9;\n border-radius: 4px;\n margin-top: 16px;\n`\n\nconst IconContainer = styled.div`\n fill: currentColor;\n`\n\nconst ErrorMessage = styled.p`\n font-size: 12px;\n margin: 8px 0;\n color: rgba(127, 0, 0, 0.95);\n`\n\nfunction getTableColumnDefaultValue(tableColumn: TableColumn) {\n switch (tableColumn.__typename) {\n case 'CheckboxTableColumn':\n return false\n\n case 'MultipleSelectTableColumn':\n return []\n\n case 'SingleLineTextTableColumn':\n case 'LongTextTableColumn':\n case 'SingleSelectTableColumn':\n case 'PhoneNumberTableColumn':\n case 'EmailTableColumn':\n case 'URLTableColumn':\n case 'NumberTableColumn':\n default:\n return ''\n }\n}\n\nconst CREATE_TABLE_RECORD = gql`\n mutation CreateTableRecord($input: CreateTableRecordInput!) {\n createTableRecord(input: $input) {\n tableRecord {\n id\n }\n }\n }\n`\n\ntype Column = { columnId: string; data: Record<string, any> }\ntype Fields = Record<string, string | string[] | boolean>\n\ntype Descriptors = { fields?: TableFormFieldsDescriptor }\n\nconst Form = forwardRef(function Form(\n {\n id,\n tableId,\n fields: fieldsProp,\n submitLabel = 'Submit',\n submitLink,\n shape,\n size,\n contrast,\n brandColor,\n gap,\n width,\n margin,\n submitTextStyle,\n submitVariant,\n submitTextColor,\n submitWidth,\n submitAlignment,\n labelTextStyle,\n labelTextColor,\n }: Props,\n ref: Ref<BoxModelHandle & PropControllersHandle<Descriptors>>,\n) {\n const fields = useMemo(() => fieldsProp?.fields ?? [], [fieldsProp])\n const grid = useMemo(() => fieldsProp?.grid ?? [], [fieldsProp])\n const { data: { table } = {} } = useQuery<{ table: Table | null }>(TABLE_BY_ID, {\n skip: tableId == null,\n variables: { id: tableId },\n })\n const [createTableRecord] = useMutation(CREATE_TABLE_RECORD)\n const [refEl, setRefEl] = useState<HTMLElement | null>(null)\n const [propControllers, setPropControllers] =\n useState<DescriptorsPropControllers<Descriptors> | null>(null)\n const [initialValues, setInitialValues] = useState<Fields>(() =>\n fields.reduce((acc, formField) => {\n const tableColumn = table && table.columns.find(field => field.id === formField.tableColumnId)\n const defaultValue = formField ? formField.defaultValue : null\n\n if (tableColumn) {\n acc[tableColumn.name] =\n defaultValue == null ? getTableColumnDefaultValue(tableColumn) : defaultValue\n }\n\n return acc\n }, {} as Fields),\n )\n const controller = propControllers?.fields\n const { container, items } = useTableFormFieldRefs(controller, { fieldsCount: fields.length })\n const [isDone, setIsDone] = useState(false)\n const linkRef = useRef<HTMLAnchorElement>(null)\n\n useImperativeHandle(\n ref,\n () => ({\n getBoxModel() {\n return refEl instanceof Element ? getBox(refEl) : null\n },\n setPropControllers,\n }),\n [refEl, setPropControllers],\n )\n\n useEffect(() => {\n container(refEl)\n }, [container, refEl])\n\n useEffect(() => {\n if (!isDone) return\n\n let timeoutId = setTimeout(() => setIsDone(false), 2500)\n\n return () => clearTimeout(timeoutId)\n }, [isDone])\n\n function getTableColumn({ tableColumnId }: any) {\n return table && table.columns.find(field => tableColumnId === field.id)\n }\n\n async function handleSubmit(values: any, { setSubmitting, resetForm, setStatus }: any) {\n if (table) {\n const columns: Column[] = []\n\n fields.forEach(field => {\n const tableColumn = getTableColumn(field)\n\n if (tableColumn) {\n const data = values[tableColumn.name]\n\n if (data) {\n columns.push({ columnId: field.tableColumnId, data })\n\n if (field.autofill) {\n localStorage.setItem(\n `${LOCAL_STORAGE_NAMESPACE}/${tableColumn.name}`,\n JSON.stringify(data),\n )\n }\n }\n }\n })\n\n try {\n await createTableRecord({\n variables: { input: { data: { tableId: table.id, columns } } },\n })\n setIsDone(true)\n setInitialValues(prev =>\n fields.reduce(\n (acc, field) => {\n const tableColumn = getTableColumn(field)\n\n if (tableColumn) {\n const data = values[tableColumn.name]\n\n if (data && field.autofill) return { ...acc, [tableColumn.name]: data }\n }\n\n return acc\n },\n { ...prev },\n ),\n )\n resetForm()\n\n if (linkRef.current != null) linkRef.current.click()\n } catch (error) {\n setStatus({ error: 'An unexpected error has occurred, please try again later' })\n } finally {\n setSubmitting(false)\n }\n }\n }\n\n useEffect(() => {\n setInitialValues(prev =>\n fields.reduce(\n (acc, formField) => {\n const tableColumn =\n table && table.columns.find(field => field.id === formField.tableColumnId)\n\n if (tableColumn && formField.autofill) {\n const storedValue = localStorage.getItem(\n `${LOCAL_STORAGE_NAMESPACE}/${tableColumn.name}`,\n )\n\n if (storedValue) {\n try {\n acc[tableColumn.name] = JSON.parse(storedValue)\n } catch (e) {\n // Ignore\n }\n }\n }\n\n return acc\n },\n { ...prev },\n ),\n )\n }, [fields, table])\n\n return (\n <FormContextProvider\n value={{ shape, size, contrast, brandColor, labelTextStyle, labelTextColor }}\n >\n {tableId == null ? (\n <Placeholder ref={setRefEl} width={width} margin={margin} />\n ) : (\n <>\n <Formik\n onSubmit={handleSubmit}\n initialValues={initialValues}\n initialStatus={{ error: null }}\n enableReinitialize\n >\n {formik => {\n const error = formik.status && formik.status.error\n const errors = fields\n .map(field => {\n const tableColumn = getTableColumn(field)\n\n return (\n tableColumn &&\n getIn(formik.touched, tableColumn.name) &&\n getIn(formik.errors, tableColumn.name)\n )\n })\n .filter(message => typeof message === 'string')\n\n return (\n <>\n <GridForm\n ref={setRefEl}\n id={id}\n width={width}\n margin={margin}\n size={size}\n onSubmit={formik.handleSubmit}\n onReset={formik.handleReset}\n noValidate\n >\n {fields.map((field, index) => {\n const tableColumn = getTableColumn(field)\n\n return (\n <GridItem\n key={field.id}\n ref={items[index]}\n grid={grid}\n index={index}\n rowGap={gap}\n columnGap={gap}\n >\n <Field tableColumn={tableColumn} tableFormField={field} />\n </GridItem>\n )\n })}\n <GridItem\n ref={items[fields.length]}\n grid={grid}\n index={fields.length}\n rowGap={gap}\n columnGap={gap}\n >\n <StyledButton\n type=\"submit\"\n disabled={formik.isSubmitting || isDone}\n shape={shape}\n size={size}\n color={brandColor}\n variant={submitVariant}\n textColor={submitTextColor}\n width={submitWidth}\n alignment={submitAlignment}\n textStyle={submitTextStyle}\n >\n {formik.isSubmitting ? (\n <Spinner />\n ) : isDone ? (\n <IconContainer>\n <Check12 />\n </IconContainer>\n ) : (\n submitLabel\n )}\n </StyledButton>\n {(errors.length > 0 || error) && (\n <ErrorContainer>\n {errors.map(message => (\n <ErrorMessage key={message}>{message}</ErrorMessage>\n ))}\n {error != null && <ErrorMessage>{error}</ErrorMessage>}\n </ErrorContainer>\n )}\n </GridItem>\n </GridForm>\n {submitLink != null && <Link ref={linkRef} hidden link={submitLink} />}\n </>\n )\n }}\n </Formik>\n </>\n )}\n </FormContextProvider>\n )\n})\n\nexport default Form\n"],"names":["_extends","getContrastColor","size","Sizes","SMALL","MEDIUM","LARGE","Error","Base","styled","input","withConfig","shouldForwardProp","prop","defaultValidator","includes","toString","cssField","props","cssMediaRules","css","getSizeHeight","forwardRef","ref","error","form","restOfProps","shape","contrast","brandColor","useFormContext","Container","div","cssWidth","cssMargin","Label","Input","Button","className","width","margin","_jsxs","display","flexDirection","marginBottom","_jsx","justifyContent","Contrasts","LIGHT","DARK","label","cssTextStyle","textColor","colorToString","labelTextStyle","labelTextColor","id","name","hideLabel","_Fragment","textarea","swatch","hue","h","saturation","s","lightness","l","alpha","a","Color","isLight","getSize","FakeCheckbox","getContrastBorderColor","getContrastBackgroundColor","HiddenCheckbox","getCheckmarkColor","style","StyledLabel","getInputSizeHeight","CheckboxContainer","span","value","handleChange","event","setFieldValue","currentTarget","checked","MainLabel","tableColumn","required","onChange","handle","useRef","validity","valueMissing","length","typeMismatch","useImperativeHandle","current","filter","v","options","map","option","FakeRadioButton","HiddenRadioButton","attrs","type","RadioButtonContainer","getSizeHorizontalPadding","Select","select","getLabelSizeHeight","Shapes","ROUNDED","getShapeBorderRadius","__typename","SingleLineTextTableField","LongTextTableField","CheckboxTableField","MultipleSelectTableField","SingleSelectTableField","PhoneNumberTableField","EmailTableField","URLTableField","NumberTableField","tableFormField","placeholder","hidden","TableColumnField","getTableColumnField","errorMessage","getTypeMismatchErrorMessage","FormikField","field","getIn","touched","errors","spin","keyframes","Icon","Spinner20","LOCAL_STORAGE_NAMESPACE","GridForm","getSizeFontSize","GridItem","cssGridItem","alignment","Alignments","LEFT","RIGHT","StyledButton","CENTER","getAlignmentMargin","ErrorContainer","IconContainer","ErrorMessage","p","CREATE_TABLE_RECORD","gql","Form","tableId","fields","fieldsProp","submitLabel","submitLink","gap","submitTextStyle","submitVariant","submitTextColor","submitWidth","submitAlignment","useMemo","grid","data","table","useQuery","TABLE_BY_ID","skip","variables","createTableRecord","useMutation","refEl","setRefEl","useState","propControllers","setPropControllers","initialValues","setInitialValues","reduce","acc","formField","columns","find","tableColumnId","defaultValue","getTableColumnDefaultValue","controller","container","items","useTableFormFieldRefs","fieldsCount","isDone","setIsDone","linkRef","getBoxModel","Element","getBox","useEffect","timeoutId","setTimeout","clearTimeout","values","setSubmitting","resetForm","setStatus","forEach","getTableColumn","push","columnId","autofill","setItem","JSON","stringify","prev","click","storedValue","localStorage","getItem","parse","e","FormContextProvider","handleSubmit","formik","status","message","handleReset","index","isSubmitting","Check12"],"mappings":"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"}
@@ -0,0 +1,155 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ var styled = require("styled-components");
4
+ var React = require("react");
5
+ var NextImage = require("next/image");
6
+ var cssMediaRules = require("./cssMediaRules.cjs.js");
7
+ var index = require("./index.cjs.js");
8
+ var useBoxShadow = require("./useBoxShadow.cjs.js");
9
+ var placeholders = require("./placeholders.cjs.js");
10
+ var index$1 = require("./index.cjs3.js");
11
+ var jsxRuntime = require("react/jsx-runtime");
12
+ require("use-sync-external-store/shim/with-selector");
13
+ require("./react-page.cjs.js");
14
+ require("redux");
15
+ require("redux-thunk");
16
+ require("./actions.cjs.js");
17
+ require("./image.cjs.js");
18
+ require("./color.cjs.js");
19
+ require("./slot.cjs.js");
20
+ require("next/dynamic");
21
+ require("@apollo/client");
22
+ require("@apollo/client/link/batch-http");
23
+ require("slate");
24
+ require("./graphql.cjs.js");
25
+ require("./shape.cjs.js");
26
+ require("./text-input.cjs.js");
27
+ require("@emotion/css");
28
+ require("color");
29
+ require("scroll-into-view-if-needed");
30
+ require("./box-models.cjs.js");
31
+ require("css-box-model");
32
+ require("react-dom");
33
+ require("html-react-parser");
34
+ require("next/head");
35
+ require("@emotion/server/create-instance");
36
+ require("next/document");
37
+ require("cookie");
38
+ require("cors");
39
+ require("http-proxy");
40
+ require("set-cookie-parser");
41
+ require("uuid/v4");
42
+ require("corporate-ipsum");
43
+ require("next/link");
44
+ function _interopDefaultLegacy(e) {
45
+ return e && typeof e === "object" && "default" in e ? e : { "default": e };
46
+ }
47
+ var styled__default = /* @__PURE__ */ _interopDefaultLegacy(styled);
48
+ var NextImage__default = /* @__PURE__ */ _interopDefaultLegacy(NextImage);
49
+ function loadImage(src) {
50
+ return new Promise((resolve, reject) => {
51
+ const image = new Image();
52
+ image.onload = () => resolve(image);
53
+ image.onerror = reject;
54
+ image.src = src;
55
+ });
56
+ }
57
+ function imageSizes(width) {
58
+ const baseDevice = index.DEVICES.find((device) => device.maxWidth == null);
59
+ const baseWidth = baseDevice && width && index.findDeviceOverride(width, baseDevice.id);
60
+ const baseWidthSize = baseWidth == null || baseWidth.value.unit !== "px" ? "100vw" : `${baseWidth.value.value}px`;
61
+ return index.DEVICES.map((device) => {
62
+ const override = index.findDeviceOverride(width, device.id);
63
+ if (override == null || device.maxWidth == null || override.value.unit !== "px")
64
+ return null;
65
+ return `(max-width: ${device.maxWidth}px) ${Math.min(device.maxWidth, override.value.value)}px`;
66
+ }).filter((size) => size != null).reduce((sourceSizes, sourceSize) => `${sourceSize}, ${sourceSizes}`, baseWidthSize);
67
+ }
68
+ const ImageContainer = styled__default["default"].div.withConfig({
69
+ shouldForwardProp: (prop) => !["width", "margin", "padding", "border", "borderRadius", "boxShadow", "opacity", "dimensions"].includes(prop.toString())
70
+ })`
71
+ line-height: 0;
72
+ overflow: hidden;
73
+ ${(props) => cssMediaRules.cssWidth(`${props.dimensions.width}px`)(props)}
74
+ ${cssMediaRules.cssMargin()}
75
+ ${cssMediaRules.cssPadding()}
76
+ ${cssMediaRules.cssBorder()}
77
+ ${cssMediaRules.cssBorderRadius()}
78
+ ${cssMediaRules.cssBoxShadow()}
79
+ ${(p) => cssMediaRules.cssMediaRules([p.opacity], ([opacity = 1]) => styled.css`
80
+ opacity: ${opacity};
81
+ `)}
82
+ `;
83
+ const UnoptimizedImage = styled__default["default"].img`
84
+ width: 100%;
85
+ `;
86
+ const ImageComponent = React.forwardRef(function Image2({
87
+ id,
88
+ width,
89
+ margin,
90
+ padding,
91
+ file,
92
+ border,
93
+ borderRadius,
94
+ altText,
95
+ link,
96
+ opacity,
97
+ boxShadow,
98
+ placeholder = placeholders.placeholders.image,
99
+ className
100
+ }, ref) {
101
+ const fileData = index.useFile(file);
102
+ const borderData = index.useBorder(border);
103
+ const boxShadowData = useBoxShadow.useBoxShadow(boxShadow);
104
+ const imageSrc = (fileData == null ? void 0 : fileData.publicUrl) ? fileData.publicUrl : placeholder.src;
105
+ const dataDimensions = (fileData == null ? void 0 : fileData.publicUrl) ? fileData == null ? void 0 : fileData.dimensions : placeholder.dimensions;
106
+ const [measuredDimensions, setMeasuredDimensions] = React.useState(null);
107
+ const isInBuilder = index.useIsInBuilder();
108
+ React.useEffect(() => {
109
+ if (dataDimensions)
110
+ return;
111
+ let cleanedUp = false;
112
+ loadImage(imageSrc).then((image) => {
113
+ if (!cleanedUp) {
114
+ setMeasuredDimensions({
115
+ width: image.naturalWidth,
116
+ height: image.naturalHeight
117
+ });
118
+ }
119
+ }).catch(console.error);
120
+ return () => {
121
+ cleanedUp = true;
122
+ };
123
+ }, [dataDimensions, imageSrc]);
124
+ const dimensions = dataDimensions != null ? dataDimensions : measuredDimensions;
125
+ if (!dimensions)
126
+ return null;
127
+ return /* @__PURE__ */ jsxRuntime.jsx(ImageContainer, {
128
+ as: link ? index$1.Link : "div",
129
+ link,
130
+ dimensions,
131
+ ref,
132
+ id,
133
+ className,
134
+ width,
135
+ margin,
136
+ opacity,
137
+ padding,
138
+ border: borderData,
139
+ borderRadius,
140
+ boxShadow: boxShadowData,
141
+ children: isInBuilder ? /* @__PURE__ */ jsxRuntime.jsx(UnoptimizedImage, {
142
+ src: imageSrc,
143
+ alt: altText
144
+ }) : /* @__PURE__ */ jsxRuntime.jsx(NextImage__default["default"], {
145
+ layout: "responsive",
146
+ src: imageSrc,
147
+ sizes: imageSizes(width),
148
+ alt: altText,
149
+ width: dimensions.width,
150
+ height: dimensions.height
151
+ })
152
+ });
153
+ });
154
+ exports["default"] = ImageComponent;
155
+ //# sourceMappingURL=Image.cjs2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Image.cjs2.js","sources":["../src/components/builtin/Image/Image.tsx"],"sourcesContent":["import styled, { css } from 'styled-components'\nimport { useState, useEffect, Ref, forwardRef } from 'react'\nimport NextImage from 'next/image'\n\nimport {\n BorderRadiusValue,\n BorderValue,\n ElementIDValue,\n ImageValue,\n LinkValue,\n MarginValue,\n PaddingValue,\n ResponsiveOpacityValue,\n ShadowsValue,\n TextInputValue,\n WidthValue,\n} from '../../../prop-controllers/descriptors'\nimport {\n cssBorder,\n cssBorderRadius,\n cssBoxShadow,\n cssMargin,\n cssMediaRules,\n cssPadding,\n cssWidth,\n} from '../../utils/cssMediaRules'\nimport { DEVICES, findDeviceOverride } from '../../utils/devices'\nimport {\n BorderPropControllerData,\n BoxShadowPropControllerData,\n useBorder,\n useBoxShadow,\n useFile,\n} from '../../hooks'\nimport { placeholders } from '../../utils/placeholders'\nimport { useIsInBuilder } from '../../../runtimes/react'\nimport { Link } from '../../shared/Link'\n\ntype Props = {\n id?: ElementIDValue\n file?: ImageValue\n altText?: TextInputValue\n link?: LinkValue\n width?: WidthValue\n margin?: MarginValue\n padding?: PaddingValue\n border?: BorderValue\n borderRadius?: BorderRadiusValue\n boxShadow?: ShadowsValue\n opacity?: ResponsiveOpacityValue\n placeholder?: { src: string; dimensions: { width: number; height: number } }\n className?: string\n}\n\nfunction loadImage(src: string): Promise<HTMLImageElement> {\n return new Promise<HTMLImageElement>((resolve, reject) => {\n const image = new Image()\n\n image.onload = () => resolve(image)\n image.onerror = reject\n image.src = src\n })\n}\n\nfunction imageSizes(width?: Props['width']): string {\n const baseDevice = DEVICES.find(device => device.maxWidth == null)\n const baseWidth = baseDevice && width && findDeviceOverride(width, baseDevice.id)\n const baseWidthSize =\n baseWidth == null || baseWidth.value.unit !== 'px' ? '100vw' : `${baseWidth.value.value}px`\n\n return DEVICES.map(device => {\n const override = findDeviceOverride(width, device.id)\n\n if (override == null || device.maxWidth == null || override.value.unit !== 'px') return null\n\n return `(max-width: ${device.maxWidth}px) ${Math.min(device.maxWidth, override.value.value)}px`\n })\n .filter((size): size is NonNullable<typeof size> => size != null)\n .reduce((sourceSizes, sourceSize) => `${sourceSize}, ${sourceSizes}`, baseWidthSize)\n}\n\nconst ImageContainer = styled.div.withConfig({\n shouldForwardProp: prop =>\n ![\n 'width',\n 'margin',\n 'padding',\n 'border',\n 'borderRadius',\n 'boxShadow',\n 'opacity',\n 'dimensions',\n ].includes(prop.toString()),\n})<{\n width?: Props['width']\n margin?: Props['margin']\n padding?: Props['padding']\n border?: BorderPropControllerData | null | undefined\n borderRadius: Props['borderRadius']\n boxShadow?: BoxShadowPropControllerData | null | undefined\n opacity: Props['opacity']\n link?: Props['link']\n dimensions: { width: number; height: number }\n}>`\n line-height: 0;\n overflow: hidden;\n ${props => cssWidth(`${props.dimensions.width}px`)(props)}\n ${cssMargin()}\n ${cssPadding()}\n ${cssBorder()}\n ${cssBorderRadius()}\n ${cssBoxShadow()}\n ${p =>\n cssMediaRules(\n [p.opacity],\n ([opacity = 1]) => css`\n opacity: ${opacity};\n `,\n )}\n`\n\nconst UnoptimizedImage = styled.img`\n width: 100%;\n`\n\ntype Dimensions = {\n width: number\n height: number\n}\n\nconst ImageComponent = forwardRef(function Image(\n {\n id,\n width,\n margin,\n padding,\n file,\n border,\n borderRadius,\n altText,\n link,\n opacity,\n boxShadow,\n placeholder = placeholders.image,\n className,\n }: Props,\n ref: Ref<HTMLImageElement>,\n) {\n const fileData = useFile(file)\n const borderData = useBorder(border)\n const boxShadowData = useBoxShadow(boxShadow)\n const imageSrc = fileData?.publicUrl ? fileData.publicUrl : placeholder.src\n const dataDimensions = fileData?.publicUrl ? fileData?.dimensions : placeholder.dimensions\n const [measuredDimensions, setMeasuredDimensions] = useState<Dimensions | null>(null)\n const isInBuilder = useIsInBuilder()\n\n useEffect(() => {\n if (dataDimensions) return\n\n let cleanedUp = false\n\n loadImage(imageSrc)\n .then(image => {\n if (!cleanedUp) {\n setMeasuredDimensions({ width: image.naturalWidth, height: image.naturalHeight })\n }\n })\n .catch(console.error)\n\n return () => {\n cleanedUp = true\n }\n }, [dataDimensions, imageSrc])\n\n const dimensions = dataDimensions ?? measuredDimensions\n\n if (!dimensions) return null\n\n return (\n <ImageContainer\n as={link ? Link : 'div'}\n link={link}\n dimensions={dimensions}\n ref={ref}\n id={id}\n className={className}\n width={width}\n margin={margin}\n opacity={opacity}\n padding={padding}\n border={borderData}\n borderRadius={borderRadius}\n boxShadow={boxShadowData}\n >\n {isInBuilder ? (\n <UnoptimizedImage src={imageSrc} alt={altText} />\n ) : (\n <NextImage\n layout=\"responsive\"\n src={imageSrc}\n sizes={imageSizes(width)}\n alt={altText}\n width={dimensions.width}\n height={dimensions.height}\n />\n )}\n </ImageContainer>\n )\n})\n\nexport default ImageComponent\n"],"names":["src","Promise","resolve","reject","image","Image","onload","onerror","width","baseDevice","DEVICES","find","device","maxWidth","baseWidth","findDeviceOverride","id","baseWidthSize","value","unit","map","override","Math","min","filter","size","reduce","sourceSizes","sourceSize","ImageContainer","styled","div","withConfig","shouldForwardProp","prop","includes","toString","props","cssWidth","dimensions","cssMargin","cssPadding","cssBorder","cssBorderRadius","cssBoxShadow","p","cssMediaRules","opacity","css","UnoptimizedImage","img","ImageComponent","forwardRef","margin","padding","file","border","borderRadius","altText","link","boxShadow","placeholder","placeholders","className","ref","fileData","useFile","borderData","useBorder","boxShadowData","useBoxShadow","imageSrc","publicUrl","dataDimensions","measuredDimensions","setMeasuredDimensions","useState","isInBuilder","useIsInBuilder","useEffect","cleanedUp","then","naturalWidth","height","naturalHeight","catch","console","error","Link","_jsx","NextImage","imageSizes"],"mappings":"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"}
@@ -0,0 +1,148 @@
1
+ import styled, { css } from "styled-components";
2
+ import { forwardRef, useState, useEffect } from "react";
3
+ import NextImage from "next/image";
4
+ import { a as cssWidth, b as cssMargin, d as cssPadding, e as cssBorder, f as cssBorderRadius, g as cssBoxShadow, c as cssMediaRules } from "./cssMediaRules.es.js";
5
+ import { l as useFile, j as useBorder, u as useIsInBuilder, y as DEVICES, z as findDeviceOverride } from "./index.es.js";
6
+ import { u as useBoxShadow } from "./useBoxShadow.es.js";
7
+ import { p as placeholders } from "./placeholders.es.js";
8
+ import { L as Link } from "./index.es3.js";
9
+ import { jsx } from "react/jsx-runtime";
10
+ import "use-sync-external-store/shim/with-selector";
11
+ import "./react-page.es.js";
12
+ import "redux";
13
+ import "redux-thunk";
14
+ import "./actions.es.js";
15
+ import "./image.es.js";
16
+ import "./color.es.js";
17
+ import "./slot.es.js";
18
+ import "next/dynamic";
19
+ import "@apollo/client";
20
+ import "@apollo/client/link/batch-http";
21
+ import "slate";
22
+ import "./graphql.es.js";
23
+ import "./shape.es.js";
24
+ import "./text-input.es.js";
25
+ import "@emotion/css";
26
+ import "color";
27
+ import "scroll-into-view-if-needed";
28
+ import "./box-models.es.js";
29
+ import "css-box-model";
30
+ import "react-dom";
31
+ import "html-react-parser";
32
+ import "next/head";
33
+ import "@emotion/server/create-instance";
34
+ import "next/document";
35
+ import "cookie";
36
+ import "cors";
37
+ import "http-proxy";
38
+ import "set-cookie-parser";
39
+ import "uuid/v4";
40
+ import "corporate-ipsum";
41
+ import "next/link";
42
+ function loadImage(src) {
43
+ return new Promise((resolve, reject) => {
44
+ const image = new Image();
45
+ image.onload = () => resolve(image);
46
+ image.onerror = reject;
47
+ image.src = src;
48
+ });
49
+ }
50
+ function imageSizes(width) {
51
+ const baseDevice = DEVICES.find((device) => device.maxWidth == null);
52
+ const baseWidth = baseDevice && width && findDeviceOverride(width, baseDevice.id);
53
+ const baseWidthSize = baseWidth == null || baseWidth.value.unit !== "px" ? "100vw" : `${baseWidth.value.value}px`;
54
+ return DEVICES.map((device) => {
55
+ const override = findDeviceOverride(width, device.id);
56
+ if (override == null || device.maxWidth == null || override.value.unit !== "px")
57
+ return null;
58
+ return `(max-width: ${device.maxWidth}px) ${Math.min(device.maxWidth, override.value.value)}px`;
59
+ }).filter((size) => size != null).reduce((sourceSizes, sourceSize) => `${sourceSize}, ${sourceSizes}`, baseWidthSize);
60
+ }
61
+ const ImageContainer = styled.div.withConfig({
62
+ shouldForwardProp: (prop) => !["width", "margin", "padding", "border", "borderRadius", "boxShadow", "opacity", "dimensions"].includes(prop.toString())
63
+ })`
64
+ line-height: 0;
65
+ overflow: hidden;
66
+ ${(props) => cssWidth(`${props.dimensions.width}px`)(props)}
67
+ ${cssMargin()}
68
+ ${cssPadding()}
69
+ ${cssBorder()}
70
+ ${cssBorderRadius()}
71
+ ${cssBoxShadow()}
72
+ ${(p) => cssMediaRules([p.opacity], ([opacity = 1]) => css`
73
+ opacity: ${opacity};
74
+ `)}
75
+ `;
76
+ const UnoptimizedImage = styled.img`
77
+ width: 100%;
78
+ `;
79
+ const ImageComponent = forwardRef(function Image2({
80
+ id,
81
+ width,
82
+ margin,
83
+ padding,
84
+ file,
85
+ border,
86
+ borderRadius,
87
+ altText,
88
+ link,
89
+ opacity,
90
+ boxShadow,
91
+ placeholder = placeholders.image,
92
+ className
93
+ }, ref) {
94
+ const fileData = useFile(file);
95
+ const borderData = useBorder(border);
96
+ const boxShadowData = useBoxShadow(boxShadow);
97
+ const imageSrc = (fileData == null ? void 0 : fileData.publicUrl) ? fileData.publicUrl : placeholder.src;
98
+ const dataDimensions = (fileData == null ? void 0 : fileData.publicUrl) ? fileData == null ? void 0 : fileData.dimensions : placeholder.dimensions;
99
+ const [measuredDimensions, setMeasuredDimensions] = useState(null);
100
+ const isInBuilder = useIsInBuilder();
101
+ useEffect(() => {
102
+ if (dataDimensions)
103
+ return;
104
+ let cleanedUp = false;
105
+ loadImage(imageSrc).then((image) => {
106
+ if (!cleanedUp) {
107
+ setMeasuredDimensions({
108
+ width: image.naturalWidth,
109
+ height: image.naturalHeight
110
+ });
111
+ }
112
+ }).catch(console.error);
113
+ return () => {
114
+ cleanedUp = true;
115
+ };
116
+ }, [dataDimensions, imageSrc]);
117
+ const dimensions = dataDimensions != null ? dataDimensions : measuredDimensions;
118
+ if (!dimensions)
119
+ return null;
120
+ return /* @__PURE__ */ jsx(ImageContainer, {
121
+ as: link ? Link : "div",
122
+ link,
123
+ dimensions,
124
+ ref,
125
+ id,
126
+ className,
127
+ width,
128
+ margin,
129
+ opacity,
130
+ padding,
131
+ border: borderData,
132
+ borderRadius,
133
+ boxShadow: boxShadowData,
134
+ children: isInBuilder ? /* @__PURE__ */ jsx(UnoptimizedImage, {
135
+ src: imageSrc,
136
+ alt: altText
137
+ }) : /* @__PURE__ */ jsx(NextImage, {
138
+ layout: "responsive",
139
+ src: imageSrc,
140
+ sizes: imageSizes(width),
141
+ alt: altText,
142
+ width: dimensions.width,
143
+ height: dimensions.height
144
+ })
145
+ });
146
+ });
147
+ export { ImageComponent as default };
148
+ //# sourceMappingURL=Image.es2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Image.es2.js","sources":["../src/components/builtin/Image/Image.tsx"],"sourcesContent":["import styled, { css } from 'styled-components'\nimport { useState, useEffect, Ref, forwardRef } from 'react'\nimport NextImage from 'next/image'\n\nimport {\n BorderRadiusValue,\n BorderValue,\n ElementIDValue,\n ImageValue,\n LinkValue,\n MarginValue,\n PaddingValue,\n ResponsiveOpacityValue,\n ShadowsValue,\n TextInputValue,\n WidthValue,\n} from '../../../prop-controllers/descriptors'\nimport {\n cssBorder,\n cssBorderRadius,\n cssBoxShadow,\n cssMargin,\n cssMediaRules,\n cssPadding,\n cssWidth,\n} from '../../utils/cssMediaRules'\nimport { DEVICES, findDeviceOverride } from '../../utils/devices'\nimport {\n BorderPropControllerData,\n BoxShadowPropControllerData,\n useBorder,\n useBoxShadow,\n useFile,\n} from '../../hooks'\nimport { placeholders } from '../../utils/placeholders'\nimport { useIsInBuilder } from '../../../runtimes/react'\nimport { Link } from '../../shared/Link'\n\ntype Props = {\n id?: ElementIDValue\n file?: ImageValue\n altText?: TextInputValue\n link?: LinkValue\n width?: WidthValue\n margin?: MarginValue\n padding?: PaddingValue\n border?: BorderValue\n borderRadius?: BorderRadiusValue\n boxShadow?: ShadowsValue\n opacity?: ResponsiveOpacityValue\n placeholder?: { src: string; dimensions: { width: number; height: number } }\n className?: string\n}\n\nfunction loadImage(src: string): Promise<HTMLImageElement> {\n return new Promise<HTMLImageElement>((resolve, reject) => {\n const image = new Image()\n\n image.onload = () => resolve(image)\n image.onerror = reject\n image.src = src\n })\n}\n\nfunction imageSizes(width?: Props['width']): string {\n const baseDevice = DEVICES.find(device => device.maxWidth == null)\n const baseWidth = baseDevice && width && findDeviceOverride(width, baseDevice.id)\n const baseWidthSize =\n baseWidth == null || baseWidth.value.unit !== 'px' ? '100vw' : `${baseWidth.value.value}px`\n\n return DEVICES.map(device => {\n const override = findDeviceOverride(width, device.id)\n\n if (override == null || device.maxWidth == null || override.value.unit !== 'px') return null\n\n return `(max-width: ${device.maxWidth}px) ${Math.min(device.maxWidth, override.value.value)}px`\n })\n .filter((size): size is NonNullable<typeof size> => size != null)\n .reduce((sourceSizes, sourceSize) => `${sourceSize}, ${sourceSizes}`, baseWidthSize)\n}\n\nconst ImageContainer = styled.div.withConfig({\n shouldForwardProp: prop =>\n ![\n 'width',\n 'margin',\n 'padding',\n 'border',\n 'borderRadius',\n 'boxShadow',\n 'opacity',\n 'dimensions',\n ].includes(prop.toString()),\n})<{\n width?: Props['width']\n margin?: Props['margin']\n padding?: Props['padding']\n border?: BorderPropControllerData | null | undefined\n borderRadius: Props['borderRadius']\n boxShadow?: BoxShadowPropControllerData | null | undefined\n opacity: Props['opacity']\n link?: Props['link']\n dimensions: { width: number; height: number }\n}>`\n line-height: 0;\n overflow: hidden;\n ${props => cssWidth(`${props.dimensions.width}px`)(props)}\n ${cssMargin()}\n ${cssPadding()}\n ${cssBorder()}\n ${cssBorderRadius()}\n ${cssBoxShadow()}\n ${p =>\n cssMediaRules(\n [p.opacity],\n ([opacity = 1]) => css`\n opacity: ${opacity};\n `,\n )}\n`\n\nconst UnoptimizedImage = styled.img`\n width: 100%;\n`\n\ntype Dimensions = {\n width: number\n height: number\n}\n\nconst ImageComponent = forwardRef(function Image(\n {\n id,\n width,\n margin,\n padding,\n file,\n border,\n borderRadius,\n altText,\n link,\n opacity,\n boxShadow,\n placeholder = placeholders.image,\n className,\n }: Props,\n ref: Ref<HTMLImageElement>,\n) {\n const fileData = useFile(file)\n const borderData = useBorder(border)\n const boxShadowData = useBoxShadow(boxShadow)\n const imageSrc = fileData?.publicUrl ? fileData.publicUrl : placeholder.src\n const dataDimensions = fileData?.publicUrl ? fileData?.dimensions : placeholder.dimensions\n const [measuredDimensions, setMeasuredDimensions] = useState<Dimensions | null>(null)\n const isInBuilder = useIsInBuilder()\n\n useEffect(() => {\n if (dataDimensions) return\n\n let cleanedUp = false\n\n loadImage(imageSrc)\n .then(image => {\n if (!cleanedUp) {\n setMeasuredDimensions({ width: image.naturalWidth, height: image.naturalHeight })\n }\n })\n .catch(console.error)\n\n return () => {\n cleanedUp = true\n }\n }, [dataDimensions, imageSrc])\n\n const dimensions = dataDimensions ?? measuredDimensions\n\n if (!dimensions) return null\n\n return (\n <ImageContainer\n as={link ? Link : 'div'}\n link={link}\n dimensions={dimensions}\n ref={ref}\n id={id}\n className={className}\n width={width}\n margin={margin}\n opacity={opacity}\n padding={padding}\n border={borderData}\n borderRadius={borderRadius}\n boxShadow={boxShadowData}\n >\n {isInBuilder ? (\n <UnoptimizedImage src={imageSrc} alt={altText} />\n ) : (\n <NextImage\n layout=\"responsive\"\n src={imageSrc}\n sizes={imageSizes(width)}\n alt={altText}\n width={dimensions.width}\n height={dimensions.height}\n />\n )}\n </ImageContainer>\n )\n})\n\nexport default ImageComponent\n"],"names":["src","Promise","resolve","reject","image","Image","onload","onerror","width","baseDevice","DEVICES","find","device","maxWidth","baseWidth","findDeviceOverride","id","baseWidthSize","value","unit","map","override","Math","min","filter","size","reduce","sourceSizes","sourceSize","ImageContainer","styled","div","withConfig","shouldForwardProp","prop","includes","toString","props","cssWidth","dimensions","cssMargin","cssPadding","cssBorder","cssBorderRadius","cssBoxShadow","p","cssMediaRules","opacity","css","UnoptimizedImage","img","ImageComponent","forwardRef","margin","padding","file","border","borderRadius","altText","link","boxShadow","placeholder","placeholders","className","ref","fileData","useFile","borderData","useBorder","boxShadowData","useBoxShadow","imageSrc","publicUrl","dataDimensions","measuredDimensions","setMeasuredDimensions","useState","isInBuilder","useIsInBuilder","useEffect","cleanedUp","then","naturalWidth","height","naturalHeight","catch","console","error","Link","_jsx","imageSizes"],"mappings":"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"}