@wix/patterns-fields 1.39.0 → 1.41.0

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 (423) hide show
  1. package/dist/cjs/assets/locale/messages_ar.json +8 -0
  2. package/dist/cjs/assets/locale/messages_bg.json +8 -0
  3. package/dist/cjs/assets/locale/messages_ca.json +8 -0
  4. package/dist/cjs/assets/locale/messages_cs.json +8 -0
  5. package/dist/cjs/assets/locale/messages_da.json +8 -0
  6. package/dist/cjs/assets/locale/messages_de.json +8 -0
  7. package/dist/cjs/assets/locale/messages_el.json +8 -0
  8. package/dist/cjs/assets/locale/messages_en.json +8 -0
  9. package/dist/cjs/assets/locale/messages_es.json +8 -0
  10. package/dist/cjs/assets/locale/messages_fi.json +8 -0
  11. package/dist/cjs/assets/locale/messages_fr.json +8 -0
  12. package/dist/cjs/assets/locale/messages_he.json +8 -0
  13. package/dist/cjs/assets/locale/messages_hi.json +8 -0
  14. package/dist/cjs/assets/locale/messages_hu.json +8 -0
  15. package/dist/cjs/assets/locale/messages_id.json +8 -0
  16. package/dist/cjs/assets/locale/messages_it.json +8 -0
  17. package/dist/cjs/assets/locale/messages_ja.json +8 -0
  18. package/dist/cjs/assets/locale/messages_ko.json +8 -0
  19. package/dist/cjs/assets/locale/messages_lt.json +8 -0
  20. package/dist/cjs/assets/locale/messages_ms.json +8 -0
  21. package/dist/cjs/assets/locale/messages_nl.json +8 -0
  22. package/dist/cjs/assets/locale/messages_no.json +8 -0
  23. package/dist/cjs/assets/locale/messages_pl.json +8 -0
  24. package/dist/cjs/assets/locale/messages_pt.json +8 -0
  25. package/dist/cjs/assets/locale/messages_ro.json +8 -0
  26. package/dist/cjs/assets/locale/messages_ru.json +8 -0
  27. package/dist/cjs/assets/locale/messages_sk.json +8 -0
  28. package/dist/cjs/assets/locale/messages_sl.json +8 -0
  29. package/dist/cjs/assets/locale/messages_sv.json +8 -0
  30. package/dist/cjs/assets/locale/messages_th.json +8 -0
  31. package/dist/cjs/assets/locale/messages_tl.json +8 -0
  32. package/dist/cjs/assets/locale/messages_tr.json +8 -0
  33. package/dist/cjs/assets/locale/messages_uk.json +8 -0
  34. package/dist/cjs/assets/locale/messages_vi.json +8 -0
  35. package/dist/cjs/assets/locale/messages_zh.json +8 -0
  36. package/dist/cjs/assets/locale/version_file +1 -1
  37. package/dist/cjs/components/address/input/address-input.st.css.js +3 -3
  38. package/dist/cjs/components/address/input/address-input.st.css.js.map +1 -1
  39. package/dist/cjs/components/audio/actions/actions-menu/actions-menu.st.css.js +3 -3
  40. package/dist/cjs/components/audio/actions/actions-menu/actions-menu.st.css.js.map +1 -1
  41. package/dist/cjs/components/audio/audio-field/form-audio-field.js +12 -10
  42. package/dist/cjs/components/audio/audio-field/form-audio-field.js.map +1 -1
  43. package/dist/cjs/components/audio/audio-field/form-audio-field.st.css.js +4 -4
  44. package/dist/cjs/components/audio/audio-field/form-audio-field.st.css.js.map +1 -1
  45. package/dist/cjs/components/audio/audio-player/audio-player.st.css.js +2 -2
  46. package/dist/cjs/components/audio/audio-player/audio-player.st.css.js.map +1 -1
  47. package/dist/cjs/components/color-view/cell-color-input.js +195 -0
  48. package/dist/cjs/components/color-view/cell-color-input.js.map +1 -0
  49. package/dist/cjs/components/color-view/cell-color-view.js +89 -0
  50. package/dist/cjs/components/color-view/cell-color-view.js.map +1 -0
  51. package/dist/cjs/components/color-view/cell-color-view.st.css +8 -0
  52. package/dist/cjs/components/color-view/cell-color-view.st.css.js +25 -0
  53. package/dist/cjs/components/color-view/cell-color-view.st.css.js.map +1 -0
  54. package/dist/cjs/components/color-view/color-input.js +33 -27
  55. package/dist/cjs/components/color-view/color-input.js.map +1 -1
  56. package/dist/cjs/components/color-view/color-view.st.css.js +4 -4
  57. package/dist/cjs/components/color-view/color-view.st.css.js.map +1 -1
  58. package/dist/cjs/components/color-view/hex.js +16 -0
  59. package/dist/cjs/components/color-view/hex.js.map +1 -0
  60. package/dist/cjs/components/color-view/index.js +18 -0
  61. package/dist/cjs/components/color-view/index.js.map +1 -1
  62. package/dist/cjs/components/delete-dialog/delete-dialog.st.css.js +3 -3
  63. package/dist/cjs/components/delete-dialog/delete-dialog.st.css.js.map +1 -1
  64. package/dist/cjs/components/document/form-document-field.st.css.js +7 -7
  65. package/dist/cjs/components/document/form-document-field.st.css.js.map +1 -1
  66. package/dist/cjs/components/exclamation/exclamation.st.css.js +5 -5
  67. package/dist/cjs/components/exclamation/exclamation.st.css.js.map +1 -1
  68. package/dist/cjs/components/highlighted-text/highlighted-text.st.css.js +5 -5
  69. package/dist/cjs/components/highlighted-text/highlighted-text.st.css.js.map +1 -1
  70. package/dist/cjs/components/image/thumbnail-replace-overlay.st.css.js +3 -3
  71. package/dist/cjs/components/image/thumbnail-replace-overlay.st.css.js.map +1 -1
  72. package/dist/cjs/components/media-control/cell-media-edit-shell.st.css.js +2 -2
  73. package/dist/cjs/components/media-control/cell-media-edit-shell.st.css.js.map +1 -1
  74. package/dist/cjs/components/media-control/paste-url-button.st.css.js +4 -4
  75. package/dist/cjs/components/media-control/paste-url-button.st.css.js.map +1 -1
  76. package/dist/cjs/components/media-gallery/form-media-gallery-field.st.css.js +10 -10
  77. package/dist/cjs/components/media-gallery/form-media-gallery-field.st.css.js.map +1 -1
  78. package/dist/cjs/components/media-image/media-image.st.css.js +4 -4
  79. package/dist/cjs/components/media-image/media-image.st.css.js.map +1 -1
  80. package/dist/cjs/components/media-image/overlays/overlay.st.css.js +3 -3
  81. package/dist/cjs/components/media-image/overlays/overlay.st.css.js.map +1 -1
  82. package/dist/cjs/components/media-loader/media-loader.st.css.js +3 -3
  83. package/dist/cjs/components/media-loader/media-loader.st.css.js.map +1 -1
  84. package/dist/cjs/components/media-tag/web-media-tag/media-tag.st.css.js +2 -2
  85. package/dist/cjs/components/media-tag/web-media-tag/media-tag.st.css.js.map +1 -1
  86. package/dist/cjs/components/multi-document/cell-multi-document-edit.js +516 -0
  87. package/dist/cjs/components/multi-document/cell-multi-document-edit.js.map +1 -0
  88. package/dist/cjs/components/multi-document/cell-multi-document-view.js +65 -0
  89. package/dist/cjs/components/multi-document/cell-multi-document-view.js.map +1 -0
  90. package/dist/cjs/components/multi-document/index.js +5 -1
  91. package/dist/cjs/components/multi-document/index.js.map +1 -1
  92. package/dist/cjs/components/multi-document/multi-document-input/form-multi-document.st.css.js +5 -5
  93. package/dist/cjs/components/multi-document/multi-document-input/form-multi-document.st.css.js.map +1 -1
  94. package/dist/cjs/components/reference/cell-reference-input.st.css.js +3 -3
  95. package/dist/cjs/components/reference/cell-reference-input.st.css.js.map +1 -1
  96. package/dist/cjs/components/rich-content/cell-rich-content-input.js +4 -3
  97. package/dist/cjs/components/rich-content/cell-rich-content-input.js.map +1 -1
  98. package/dist/cjs/components/rich-content/cell-rich-content-view.js +3 -2
  99. package/dist/cjs/components/rich-content/cell-rich-content-view.js.map +1 -1
  100. package/dist/cjs/components/rich-content/hooks/use-plain-text-rich-content.js +1 -1
  101. package/dist/cjs/components/rich-content/hooks/use-plain-text-rich-content.js.map +1 -1
  102. package/dist/cjs/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.js +4 -4
  103. package/dist/cjs/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.js.map +1 -1
  104. package/dist/cjs/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js +3 -3
  105. package/dist/cjs/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js.map +1 -1
  106. package/dist/cjs/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.js +2 -2
  107. package/dist/cjs/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.js.map +1 -1
  108. package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js +3 -3
  109. package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js.map +1 -1
  110. package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/hooks.js +1 -1
  111. package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/hooks.js.map +1 -1
  112. package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js +3 -3
  113. package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js.map +1 -1
  114. package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js +2 -2
  115. package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js.map +1 -1
  116. package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/plugins.js +0 -5
  117. package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/plugins.js.map +1 -1
  118. package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.js +169 -192
  119. package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.js.map +1 -1
  120. package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js +7 -7
  121. package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js.map +1 -1
  122. package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.js +52 -36
  123. package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.js.map +1 -1
  124. package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css +7 -0
  125. package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js +5 -4
  126. package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js.map +1 -1
  127. package/dist/cjs/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.js +10 -10
  128. package/dist/cjs/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.js.map +1 -1
  129. package/dist/cjs/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js +4 -4
  130. package/dist/cjs/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js.map +1 -1
  131. package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js +18 -18
  132. package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js.map +1 -1
  133. package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js +4 -4
  134. package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js.map +1 -1
  135. package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js +18 -18
  136. package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js.map +1 -1
  137. package/dist/cjs/components/text/text-view.st.css.js +3 -3
  138. package/dist/cjs/components/text/text-view.st.css.js.map +1 -1
  139. package/dist/cjs/components/time-input/cell-time-input.js +8 -7
  140. package/dist/cjs/components/time-input/cell-time-input.js.map +1 -1
  141. package/dist/cjs/components/time-input/form-time-input.js +21 -2
  142. package/dist/cjs/components/time-input/form-time-input.js.map +1 -1
  143. package/dist/cjs/services/translations.js.map +1 -1
  144. package/dist/cjs/styles.global.css +1 -1
  145. package/dist/cjs/validations/rich-content.js +2 -3
  146. package/dist/cjs/validations/rich-content.js.map +1 -1
  147. package/dist/esm/assets/locale/messages_ar.json +8 -0
  148. package/dist/esm/assets/locale/messages_bg.json +8 -0
  149. package/dist/esm/assets/locale/messages_ca.json +8 -0
  150. package/dist/esm/assets/locale/messages_cs.json +8 -0
  151. package/dist/esm/assets/locale/messages_da.json +8 -0
  152. package/dist/esm/assets/locale/messages_de.json +8 -0
  153. package/dist/esm/assets/locale/messages_el.json +8 -0
  154. package/dist/esm/assets/locale/messages_en.json +8 -0
  155. package/dist/esm/assets/locale/messages_es.json +8 -0
  156. package/dist/esm/assets/locale/messages_fi.json +8 -0
  157. package/dist/esm/assets/locale/messages_fr.json +8 -0
  158. package/dist/esm/assets/locale/messages_he.json +8 -0
  159. package/dist/esm/assets/locale/messages_hi.json +8 -0
  160. package/dist/esm/assets/locale/messages_hu.json +8 -0
  161. package/dist/esm/assets/locale/messages_id.json +8 -0
  162. package/dist/esm/assets/locale/messages_it.json +8 -0
  163. package/dist/esm/assets/locale/messages_ja.json +8 -0
  164. package/dist/esm/assets/locale/messages_ko.json +8 -0
  165. package/dist/esm/assets/locale/messages_lt.json +8 -0
  166. package/dist/esm/assets/locale/messages_ms.json +8 -0
  167. package/dist/esm/assets/locale/messages_nl.json +8 -0
  168. package/dist/esm/assets/locale/messages_no.json +8 -0
  169. package/dist/esm/assets/locale/messages_pl.json +8 -0
  170. package/dist/esm/assets/locale/messages_pt.json +8 -0
  171. package/dist/esm/assets/locale/messages_ro.json +8 -0
  172. package/dist/esm/assets/locale/messages_ru.json +8 -0
  173. package/dist/esm/assets/locale/messages_sk.json +8 -0
  174. package/dist/esm/assets/locale/messages_sl.json +8 -0
  175. package/dist/esm/assets/locale/messages_sv.json +8 -0
  176. package/dist/esm/assets/locale/messages_th.json +8 -0
  177. package/dist/esm/assets/locale/messages_tl.json +8 -0
  178. package/dist/esm/assets/locale/messages_tr.json +8 -0
  179. package/dist/esm/assets/locale/messages_uk.json +8 -0
  180. package/dist/esm/assets/locale/messages_vi.json +8 -0
  181. package/dist/esm/assets/locale/messages_zh.json +8 -0
  182. package/dist/esm/assets/locale/version_file +1 -1
  183. package/dist/esm/components/address/input/address-input.st.css.js +2 -2
  184. package/dist/esm/components/audio/actions/actions-menu/actions-menu.st.css.js +2 -2
  185. package/dist/esm/components/audio/audio-field/form-audio-field.js +2 -0
  186. package/dist/esm/components/audio/audio-field/form-audio-field.js.map +1 -1
  187. package/dist/esm/components/audio/audio-field/form-audio-field.st.css.js +2 -2
  188. package/dist/esm/components/audio/audio-player/audio-player.st.css.js +2 -2
  189. package/dist/esm/components/audio/audio-player/audio-player.st.css.js.map +1 -1
  190. package/dist/esm/components/color-view/cell-color-input.js +104 -0
  191. package/dist/esm/components/color-view/cell-color-input.js.map +1 -0
  192. package/dist/esm/components/color-view/cell-color-view.js +25 -0
  193. package/dist/esm/components/color-view/cell-color-view.js.map +1 -0
  194. package/dist/esm/components/color-view/cell-color-view.st.css +8 -0
  195. package/dist/esm/components/color-view/cell-color-view.st.css.js +15 -0
  196. package/dist/esm/components/color-view/cell-color-view.st.css.js.map +1 -0
  197. package/dist/esm/components/color-view/color-input.js +12 -12
  198. package/dist/esm/components/color-view/color-input.js.map +1 -1
  199. package/dist/esm/components/color-view/color-view.st.css.js +2 -2
  200. package/dist/esm/components/color-view/hex.js +9 -0
  201. package/dist/esm/components/color-view/hex.js.map +1 -0
  202. package/dist/esm/components/color-view/index.js +3 -0
  203. package/dist/esm/components/color-view/index.js.map +1 -1
  204. package/dist/esm/components/delete-dialog/delete-dialog.st.css.js +2 -2
  205. package/dist/esm/components/document/form-document-field.st.css.js +2 -2
  206. package/dist/esm/components/exclamation/exclamation.st.css.js +2 -2
  207. package/dist/esm/components/highlighted-text/highlighted-text.st.css.js +3 -3
  208. package/dist/esm/components/image/thumbnail-replace-overlay.st.css.js +2 -2
  209. package/dist/esm/components/media-control/cell-media-edit-shell.st.css.js +2 -2
  210. package/dist/esm/components/media-control/cell-media-edit-shell.st.css.js.map +1 -1
  211. package/dist/esm/components/media-control/paste-url-button.st.css.js +2 -2
  212. package/dist/esm/components/media-gallery/form-media-gallery-field.st.css.js +2 -2
  213. package/dist/esm/components/media-image/media-image.st.css.js +3 -3
  214. package/dist/esm/components/media-image/media-image.st.css.js.map +1 -1
  215. package/dist/esm/components/media-image/overlays/overlay.st.css.js +2 -2
  216. package/dist/esm/components/media-loader/media-loader.st.css.js +2 -2
  217. package/dist/esm/components/media-tag/web-media-tag/media-tag.st.css.js +2 -2
  218. package/dist/esm/components/multi-document/cell-multi-document-edit.js +148 -0
  219. package/dist/esm/components/multi-document/cell-multi-document-edit.js.map +1 -0
  220. package/dist/esm/components/multi-document/cell-multi-document-view.js +26 -0
  221. package/dist/esm/components/multi-document/cell-multi-document-view.js.map +1 -0
  222. package/dist/esm/components/multi-document/index.js +2 -0
  223. package/dist/esm/components/multi-document/index.js.map +1 -1
  224. package/dist/esm/components/multi-document/multi-document-input/form-multi-document.st.css.js +2 -2
  225. package/dist/esm/components/multi-document/multi-document-input/form-multi-document.st.css.js.map +1 -1
  226. package/dist/esm/components/reference/cell-reference-input.st.css.js +2 -2
  227. package/dist/esm/components/rich-content/cell-rich-content-input.js +4 -3
  228. package/dist/esm/components/rich-content/cell-rich-content-input.js.map +1 -1
  229. package/dist/esm/components/rich-content/cell-rich-content-view.js +3 -4
  230. package/dist/esm/components/rich-content/cell-rich-content-view.js.map +1 -1
  231. package/dist/esm/components/rich-content/hooks/use-plain-text-rich-content.js +2 -2
  232. package/dist/esm/components/rich-content/hooks/use-plain-text-rich-content.js.map +1 -1
  233. package/dist/esm/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.js +2 -2
  234. package/dist/esm/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js +2 -2
  235. package/dist/esm/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js.map +1 -1
  236. package/dist/esm/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.js +2 -2
  237. package/dist/esm/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.js.map +1 -1
  238. package/dist/esm/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js +2 -2
  239. package/dist/esm/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js.map +1 -1
  240. package/dist/esm/components/rich-content/rich-content-input/rich-content-common/hooks.js +2 -2
  241. package/dist/esm/components/rich-content/rich-content-input/rich-content-common/hooks.js.map +1 -1
  242. package/dist/esm/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js +2 -2
  243. package/dist/esm/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js +2 -2
  244. package/dist/esm/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js.map +1 -1
  245. package/dist/esm/components/rich-content/rich-content-input/rich-content-editor/plugins.js +0 -5
  246. package/dist/esm/components/rich-content/rich-content-input/rich-content-editor/plugins.js.map +1 -1
  247. package/dist/esm/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.js +112 -135
  248. package/dist/esm/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.js.map +1 -1
  249. package/dist/esm/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js +2 -2
  250. package/dist/esm/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js.map +1 -1
  251. package/dist/esm/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.js +27 -35
  252. package/dist/esm/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.js.map +1 -1
  253. package/dist/esm/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css +7 -0
  254. package/dist/esm/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js +2 -2
  255. package/dist/esm/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js.map +1 -1
  256. package/dist/esm/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.js +2 -2
  257. package/dist/esm/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.js.map +1 -1
  258. package/dist/esm/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js +2 -2
  259. package/dist/esm/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js.map +1 -1
  260. package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js +2 -2
  261. package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js +2 -2
  262. package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js +2 -2
  263. package/dist/esm/components/text/text-view.st.css.js +2 -2
  264. package/dist/esm/components/text/text-view.st.css.js.map +1 -1
  265. package/dist/esm/components/time-input/cell-time-input.js +6 -5
  266. package/dist/esm/components/time-input/cell-time-input.js.map +1 -1
  267. package/dist/esm/components/time-input/form-time-input.js +8 -3
  268. package/dist/esm/components/time-input/form-time-input.js.map +1 -1
  269. package/dist/esm/styles.global.css +1 -1
  270. package/dist/esm/validations/rich-content.js +3 -4
  271. package/dist/esm/validations/rich-content.js.map +1 -1
  272. package/dist/types/components/audio/audio-field/form-audio-field.d.ts.map +1 -1
  273. package/dist/types/components/audio/audio-player/audio-player.st.css.d.ts.map +1 -1
  274. package/dist/types/components/color-view/cell-color-input.d.ts +23 -0
  275. package/dist/types/components/color-view/cell-color-input.d.ts.map +1 -0
  276. package/dist/types/components/color-view/cell-color-view.d.ts +15 -0
  277. package/dist/types/components/color-view/cell-color-view.d.ts.map +1 -0
  278. package/dist/types/components/color-view/cell-color-view.st.css.d.ts +16 -0
  279. package/dist/types/components/color-view/cell-color-view.st.css.d.ts.map +1 -0
  280. package/dist/types/components/color-view/color-input.d.ts.map +1 -1
  281. package/dist/types/components/color-view/hex.d.ts +5 -0
  282. package/dist/types/components/color-view/hex.d.ts.map +1 -0
  283. package/dist/types/components/color-view/index.d.ts +3 -0
  284. package/dist/types/components/color-view/index.d.ts.map +1 -1
  285. package/dist/types/components/media-control/cell-media-edit-shell.st.css.d.ts.map +1 -1
  286. package/dist/types/components/media-image/media-image.st.css.d.ts.map +1 -1
  287. package/dist/types/components/multi-document/cell-multi-document-edit.d.ts +20 -0
  288. package/dist/types/components/multi-document/cell-multi-document-edit.d.ts.map +1 -0
  289. package/dist/types/components/multi-document/cell-multi-document-view.d.ts +13 -0
  290. package/dist/types/components/multi-document/cell-multi-document-view.d.ts.map +1 -0
  291. package/dist/types/components/multi-document/index.d.ts +4 -0
  292. package/dist/types/components/multi-document/index.d.ts.map +1 -1
  293. package/dist/types/components/multi-document/multi-document-input/form-multi-document.st.css.d.ts.map +1 -1
  294. package/dist/types/components/rich-content/cell-rich-content-input.d.ts +2 -2
  295. package/dist/types/components/rich-content/cell-rich-content-input.d.ts.map +1 -1
  296. package/dist/types/components/rich-content/cell-rich-content-view.d.ts.map +1 -1
  297. package/dist/types/components/rich-content/hooks/use-plain-text-rich-content.d.ts +2 -2
  298. package/dist/types/components/rich-content/hooks/use-plain-text-rich-content.d.ts.map +1 -1
  299. package/dist/types/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.d.ts.map +1 -1
  300. package/dist/types/components/rich-content/rich-content-input/form-input/use-rich-content-form-input.d.ts +2 -2
  301. package/dist/types/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.d.ts.map +1 -1
  302. package/dist/types/components/rich-content/rich-content-input/hooks.d.ts +1 -1
  303. package/dist/types/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.d.ts.map +1 -1
  304. package/dist/types/components/rich-content/rich-content-input/rich-content-common/hooks.d.ts +3 -3
  305. package/dist/types/components/rich-content/rich-content-input/rich-content-common/hooks.d.ts.map +1 -1
  306. package/dist/types/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.d.ts.map +1 -1
  307. package/dist/types/components/rich-content/rich-content-input/rich-content-editor/plugins.d.ts +2 -2
  308. package/dist/types/components/rich-content/rich-content-input/rich-content-editor/plugins.d.ts.map +1 -1
  309. package/dist/types/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.d.ts +12 -11
  310. package/dist/types/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.d.ts.map +1 -1
  311. package/dist/types/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.d.ts.map +1 -1
  312. package/dist/types/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.d.ts +2 -15
  313. package/dist/types/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.d.ts.map +1 -1
  314. package/dist/types/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.d.ts +1 -0
  315. package/dist/types/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.d.ts.map +1 -1
  316. package/dist/types/components/rich-content/rich-content-input/rich-content-viewer/plugins.d.ts +1 -1
  317. package/dist/types/components/rich-content/rich-content-input/rich-content-viewer/plugins.d.ts.map +1 -1
  318. package/dist/types/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.d.ts +5 -3
  319. package/dist/types/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.d.ts.map +1 -1
  320. package/dist/types/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.d.ts.map +1 -1
  321. package/dist/types/components/text/text-view.st.css.d.ts.map +1 -1
  322. package/dist/types/components/time-input/cell-time-input.d.ts.map +1 -1
  323. package/dist/types/components/time-input/form-time-input.d.ts.map +1 -1
  324. package/dist/types/services/translations.d.ts +1 -1
  325. package/dist/types/services/translations.d.ts.map +1 -1
  326. package/dist/types/validations/rich-content.d.ts +3 -3
  327. package/dist/types/validations/rich-content.d.ts.map +1 -1
  328. package/package.json +6 -6
  329. package/src/__tests__/components/rich-content-editor.spec.tsx +63 -72
  330. package/src/__tests__/validations/rich-content.spec.ts +4 -8
  331. package/src/assets/locale/messages_ar.json +8 -0
  332. package/src/assets/locale/messages_bg.json +8 -0
  333. package/src/assets/locale/messages_ca.json +8 -0
  334. package/src/assets/locale/messages_cs.json +8 -0
  335. package/src/assets/locale/messages_da.json +8 -0
  336. package/src/assets/locale/messages_de.json +8 -0
  337. package/src/assets/locale/messages_el.json +8 -0
  338. package/src/assets/locale/messages_en.json +8 -0
  339. package/src/assets/locale/messages_es.json +8 -0
  340. package/src/assets/locale/messages_fi.json +8 -0
  341. package/src/assets/locale/messages_fr.json +8 -0
  342. package/src/assets/locale/messages_he.json +8 -0
  343. package/src/assets/locale/messages_hi.json +8 -0
  344. package/src/assets/locale/messages_hu.json +8 -0
  345. package/src/assets/locale/messages_id.json +8 -0
  346. package/src/assets/locale/messages_it.json +8 -0
  347. package/src/assets/locale/messages_ja.json +8 -0
  348. package/src/assets/locale/messages_ko.json +8 -0
  349. package/src/assets/locale/messages_lt.json +8 -0
  350. package/src/assets/locale/messages_ms.json +8 -0
  351. package/src/assets/locale/messages_nl.json +8 -0
  352. package/src/assets/locale/messages_no.json +8 -0
  353. package/src/assets/locale/messages_pl.json +8 -0
  354. package/src/assets/locale/messages_pt.json +8 -0
  355. package/src/assets/locale/messages_ro.json +8 -0
  356. package/src/assets/locale/messages_ru.json +8 -0
  357. package/src/assets/locale/messages_sk.json +8 -0
  358. package/src/assets/locale/messages_sl.json +8 -0
  359. package/src/assets/locale/messages_sv.json +8 -0
  360. package/src/assets/locale/messages_th.json +8 -0
  361. package/src/assets/locale/messages_tl.json +8 -0
  362. package/src/assets/locale/messages_tr.json +8 -0
  363. package/src/assets/locale/messages_uk.json +8 -0
  364. package/src/assets/locale/messages_vi.json +8 -0
  365. package/src/assets/locale/messages_zh.json +8 -0
  366. package/src/assets/locale/version_file +1 -1
  367. package/src/components/address/input/address-input.st.css.ts +2 -2
  368. package/src/components/audio/actions/actions-menu/actions-menu.st.css.ts +2 -2
  369. package/src/components/audio/audio-field/form-audio-field.st.css.ts +2 -2
  370. package/src/components/audio/audio-field/form-audio-field.tsx +2 -0
  371. package/src/components/audio/audio-player/audio-player.st.css.ts +2 -2
  372. package/src/components/color-view/cell-color-input.tsx +200 -0
  373. package/src/components/color-view/cell-color-view.st.css +8 -0
  374. package/src/components/color-view/cell-color-view.st.css.ts +25 -0
  375. package/src/components/color-view/cell-color-view.tsx +52 -0
  376. package/src/components/color-view/color-input.tsx +23 -17
  377. package/src/components/color-view/color-view.st.css.ts +2 -2
  378. package/src/components/color-view/hex.ts +13 -0
  379. package/src/components/color-view/index.ts +3 -0
  380. package/src/components/delete-dialog/delete-dialog.st.css.ts +2 -2
  381. package/src/components/document/form-document-field.st.css.ts +2 -2
  382. package/src/components/exclamation/exclamation.st.css.ts +2 -2
  383. package/src/components/highlighted-text/highlighted-text.st.css.ts +3 -3
  384. package/src/components/image/thumbnail-replace-overlay.st.css.ts +2 -2
  385. package/src/components/media-control/cell-media-edit-shell.st.css.ts +2 -2
  386. package/src/components/media-control/paste-url-button.st.css.ts +2 -2
  387. package/src/components/media-gallery/form-media-gallery-field.st.css.ts +2 -2
  388. package/src/components/media-image/media-image.st.css.ts +3 -3
  389. package/src/components/media-image/overlays/overlay.st.css.ts +2 -2
  390. package/src/components/media-loader/media-loader.st.css.ts +2 -2
  391. package/src/components/media-tag/web-media-tag/media-tag.st.css.ts +2 -2
  392. package/src/components/multi-document/cell-multi-document-edit.tsx +364 -0
  393. package/src/components/multi-document/cell-multi-document-view.tsx +68 -0
  394. package/src/components/multi-document/index.ts +4 -0
  395. package/src/components/multi-document/multi-document-input/form-multi-document.st.css.ts +2 -2
  396. package/src/components/reference/cell-reference-input.st.css.ts +2 -2
  397. package/src/components/rich-content/cell-rich-content-input.tsx +11 -14
  398. package/src/components/rich-content/cell-rich-content-view.tsx +3 -4
  399. package/src/components/rich-content/hooks/use-plain-text-rich-content.ts +4 -4
  400. package/src/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.ts +2 -2
  401. package/src/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.ts +2 -2
  402. package/src/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.ts +2 -2
  403. package/src/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.ts +2 -2
  404. package/src/components/rich-content/rich-content-input/rich-content-common/hooks.ts +5 -5
  405. package/src/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.ts +2 -2
  406. package/src/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.ts +2 -2
  407. package/src/components/rich-content/rich-content-input/rich-content-editor/plugins.ts +0 -6
  408. package/src/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.ts +2 -2
  409. package/src/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.tsx +346 -355
  410. package/src/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css +7 -0
  411. package/src/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.ts +2 -2
  412. package/src/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.tsx +35 -62
  413. package/src/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.ts +2 -2
  414. package/src/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.tsx +8 -9
  415. package/src/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.ts +2 -2
  416. package/src/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.ts +2 -2
  417. package/src/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.ts +2 -2
  418. package/src/components/text/text-view.st.css.ts +2 -2
  419. package/src/components/time-input/cell-time-input.tsx +6 -12
  420. package/src/components/time-input/form-time-input.tsx +21 -4
  421. package/src/services/translations.ts +8 -0
  422. package/src/styles.global.css +1 -1
  423. package/src/validations/rich-content.ts +6 -7
@@ -20,10 +20,28 @@ var _richContentToolbar = require("./rich-content-toolbar");
20
20
  var _richContentEditorStCss = require("./rich-content-editor.st.css.js");
21
21
  var _jsxFileName = "/home/builduser/work/843658b9f44192f0/packages/fields/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.tsx";
22
22
  function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
23
- const linkPanelSettings = {
24
- externalPopups: true,
25
- showSponsoredCheckbox: true
23
+ const InsertToolbarSync = ({
24
+ editor,
25
+ onButtonsChange,
26
+ onReadyChange
27
+ }) => {
28
+ const {
29
+ buttons
30
+ } = editor.useToolbarProps('insert');
31
+
32
+ // `useToolbarProps` rebuilds `buttons` (new array + closures) on every render,
33
+ // so guard against pushing an unchanged-by-content array into parent state.
34
+ const signature = buttons.map(b => b.id).join('|');
35
+ const buttonsRef = (0, _react.useRef)(buttons);
36
+ buttonsRef.current = buttons;
37
+ (0, _react.useEffect)(() => {
38
+ onButtonsChange(buttonsRef.current);
39
+ onReadyChange(buttonsRef.current.length > 0);
40
+ }, [signature, onButtonsChange, onReadyChange]);
41
+ return null;
26
42
  };
43
+ InsertToolbarSync.displayName = 'InsertToolbarSync';
44
+ const filterStaticToolbarButtons = button => button !== _ricos.FORMATTING_BUTTONS.CODE_BLOCK;
27
45
  const RCE = /*#__PURE__*/(0, _react.forwardRef)(({
28
46
  content,
29
47
  injectedContent,
@@ -32,17 +50,18 @@ const RCE = /*#__PURE__*/(0, _react.forwardRef)(({
32
50
  onFocus,
33
51
  onBlur,
34
52
  className,
35
- getToolbarSettings,
36
53
  dataHook,
37
54
  colorScheme,
38
55
  isFullScreen,
39
56
  onToggleFullScreen,
40
57
  hidden,
41
- children,
42
58
  ...ricosProps
43
59
  }, ref) => {
44
60
  const containerRef = (0, _react.useRef)(null);
45
61
  const containerHeightRef = (0, _react.useRef)();
62
+
63
+ // Stable identity so RicosEditor doesn't see a new `container` prop each render.
64
+ const getContainer = (0, _react.useCallback)(() => containerRef.current, []);
46
65
  const onFullScreenChange = (0, _react.useCallback)(() => {
47
66
  onToggleFullScreen == null || onToggleFullScreen();
48
67
  if (containerRef.current) {
@@ -50,63 +69,70 @@ const RCE = /*#__PURE__*/(0, _react.forwardRef)(({
50
69
  }
51
70
  }, [onToggleFullScreen]);
52
71
  const editorRef = (0, _react.useRef)(null);
72
+ const [editor, setEditor] = (0, _react.useState)(null);
53
73
  const [isToolbarReady, setIsToolbarReady] = (0, _react.useState)(false);
54
- const [toolbarButtons, setToolbarButtons] = (0, _react.useState)({});
55
- const updateButtons = (0, _react.useCallback)((editorLoaded, effect = false) => {
56
- if (!editorRef.current) {
57
- return;
58
- }
59
- const toolbarButtons = editorRef.current.getToolbarProps(_ricos.ToolbarType.INSERT_PLUGIN).buttons;
60
- if (Object.values(toolbarButtons).length > 0) {
61
- !effect && setToolbarButtons(toolbarButtons);
62
- editorLoaded && setIsToolbarReady(true);
63
- }
74
+ const [toolbarButtons, setToolbarButtons] = (0, _react.useState)([]);
75
+ const [toolbarContainer, setToolbarContainer] = (0, _react.useState)(null);
76
+ const setEditorInstance = (0, _react.useCallback)(nextEditor => {
77
+ editorRef.current = nextEditor;
78
+ setEditor(nextEditor);
64
79
  }, []);
65
- (0, _react.useEffect)(() => updateButtons(false, true));
66
-
67
- // Poll via rAF until Ricos has populated its toolbar buttons before marking
68
- // the toolbar as ready. A single call to updateButtons(true) at onLoad time
69
- // fails silently when Ricos hasn't finished initialising — buttons is empty,
70
- // setIsToolbarReady is never called, and the loader persists forever.
71
- const onLoadEditor = (0, _react.useCallback)(() => {
72
- let frameId = 0;
73
- (function loadToolbar() {
74
- frameId = requestAnimationFrame(() => {
75
- if (!editorRef.current) {
76
- return;
77
- }
78
- const {
79
- buttons
80
- } = editorRef.current.getToolbarProps(_ricos.ToolbarType.INSERT_PLUGIN);
81
- if (Object.values(buttons).length > 0) {
82
- setToolbarButtons(buttons);
83
- setIsToolbarReady(true);
84
- } else {
85
- loadToolbar();
86
- }
87
- });
88
- })();
89
- return () => cancelAnimationFrame(frameId);
80
+ const setContent = (0, _react.useCallback)(nextContent => {
81
+ var _editorRef$current;
82
+ (_editorRef$current = editorRef.current) == null || _editorRef$current.getEditorCommands().setContent(nextContent);
90
83
  }, []);
84
+ (0, _react.useImperativeHandle)(ref, () => ({
85
+ isContentChanged: () => {
86
+ var _editorRef$current2;
87
+ return Boolean((_editorRef$current2 = editorRef.current) == null ? void 0 : _editorRef$current2.getContentTraits().isContentChanged);
88
+ },
89
+ prePublish: async () => {
90
+ var _editorRef$current3;
91
+ return (await ((_editorRef$current3 = editorRef.current) == null ? void 0 : _editorRef$current3.prePublish())) ?? _richContentCommon.INITIAL_INJECTED_RICH_CONTENT;
92
+ },
93
+ setContent
94
+ }), [setContent]);
95
+ const appliedInjectedContentRef = (0, _react.useRef)();
96
+ (0, _react.useEffect)(() => {
97
+ if (!injectedContent || (0, _isEqual.default)(_richContentCommon.INITIAL_INJECTED_RICH_CONTENT, injectedContent) || (0, _isEqual.default)(appliedInjectedContentRef.current, injectedContent)) {
98
+ return;
99
+ }
100
+ appliedInjectedContentRef.current = injectedContent;
101
+ const timerId = window.setTimeout(() => {
102
+ setContent(injectedContent);
103
+ }, 0);
104
+ return () => window.clearTimeout(timerId);
105
+ }, [injectedContent, setContent]);
91
106
  (0, _react.useEffect)(() => {
92
- if (!autoFocus) {
107
+ if (!autoFocus || !editorRef.current) {
93
108
  return;
94
109
  }
95
110
  const frameId = requestAnimationFrame(() => {
96
- var _editorRef$current;
97
- (_editorRef$current = editorRef.current) == null || _editorRef$current.focus();
98
- updateButtons();
111
+ var _editorRef$current4;
112
+ (_editorRef$current4 = editorRef.current) == null || _editorRef$current4.focus();
99
113
  });
100
114
  return () => cancelAnimationFrame(frameId);
101
- }, [autoFocus, updateButtons]);
102
- (0, _react.useImperativeHandle)(ref, () => ({
103
- isContentChanged: () => {
104
- var _editorRef$current2;
105
- return Boolean((_editorRef$current2 = editorRef.current) == null ? void 0 : _editorRef$current2.getContentTraits().isContentChanged);
115
+ }, [autoFocus, editor]);
116
+ const toolbars = (0, _react.useMemo)(() => {
117
+ if (!toolbarContainer) {
118
+ return undefined;
106
119
  }
107
- }));
108
- const toolbarContainerRef = (0, _react.useRef)(null);
109
- const toolbarSettings = useToolbarSettings(toolbarContainerRef.current, getToolbarSettings);
120
+ return {
121
+ text: {
122
+ mode: 'static',
123
+ container: toolbarContainer,
124
+ alignment: 'left',
125
+ buttons: ({
126
+ defaultButtons
127
+ }) => defaultButtons.filter(filterStaticToolbarButtons)
128
+ },
129
+ insert: {
130
+ footer: {
131
+ disabled: true
132
+ }
133
+ }
134
+ };
135
+ }, [toolbarContainer]);
110
136
  const isModalOpenRef = (0, _react.useRef)(false);
111
137
  const modalSettings = (0, _react.useMemo)(() => ({
112
138
  onModalOpen() {
@@ -141,12 +167,11 @@ const RCE = /*#__PURE__*/(0, _react.forwardRef)(({
141
167
  }, [triggerBlur, requestBlurCallback]);
142
168
  const handleFocus = (0, _react.useCallback)(() => {
143
169
  if (containerRef.current === (0, _utils.getActiveElement)()) {
144
- var _editorRef$current3;
145
- (_editorRef$current3 = editorRef.current) == null || _editorRef$current3.focus();
146
- updateButtons();
170
+ var _editorRef$current5;
171
+ (_editorRef$current5 = editorRef.current) == null || _editorRef$current5.focus();
147
172
  }
148
173
  triggerFocus();
149
- }, [triggerFocus, updateButtons]);
174
+ }, [triggerFocus]);
150
175
  const handleBlur = (0, _react.useCallback)(({
151
176
  relatedTarget
152
177
  }) => {
@@ -156,46 +181,17 @@ const RCE = /*#__PURE__*/(0, _react.forwardRef)(({
156
181
  return;
157
182
  }
158
183
  if (isModalOpenRef.current || (_containerRef$current = containerRef.current) != null && _containerRef$current.contains(relatedTarget)) {
159
- /**
160
- * @NOTE
161
- * Ignore events which come from modal or
162
- * from any target inside editor container
163
- */
164
184
  return;
165
185
  }
166
-
167
- /**
168
- * @NOTE
169
- * If editor container is blurred due to focus of element
170
- * that is out of app root (e.g. tooltip rendered in portal),
171
- * then editor blur should be requested to ensure
172
- * that editor should not be focused after user action,
173
- * otherwise editor should be blurred immediately
174
- */
175
186
  if (!(0, _utils.getAppRootElement)().contains(relatedTarget)) {
176
187
  requestEditorBlur();
177
188
  } else {
178
189
  triggerBlur();
179
190
  }
180
191
  }, [triggerBlur, requestEditorBlur]);
181
-
182
- /**
183
- * NOTE:
184
- * `handleOnChange` handles only change events when editor is not focused or focus was lost.
185
- * In a normal flow `onChange` is not called on every input and all the changes submitted on blur.
186
- */
187
- const handleOnChange = (0, _react.useCallback)(() => {
188
- const hasLostFocusElement = document.activeElement === document.body;
189
- if (!isFocusedRef.current || hasLostFocusElement) {
190
- const isInitialInjectedContent = (0, _isEqual.default)(_richContentCommon.INITIAL_INJECTED_RICH_CONTENT, injectedContent);
191
- if (!isInitialInjectedContent) {
192
- onBlur == null || onBlur();
193
- }
194
- }
195
- }, [onBlur, injectedContent]);
196
192
  const wixRicosProps = (0, _richContentCommon.useWixRicosProps)();
197
193
  const plugins = (0, _plugins.usePlugins)(colorScheme);
198
- const renderInContainer = children => /*#__PURE__*/_react.default.createElement("div", {
194
+ return /*#__PURE__*/_react.default.createElement("div", {
199
195
  ref: containerRef,
200
196
  "data-hook": "rich-content.editor",
201
197
  className: (0, _richContentEditorStCss.st)(_richContentEditorStCss.classes.root, className),
@@ -208,7 +204,7 @@ const RCE = /*#__PURE__*/(0, _react.forwardRef)(({
208
204
  __self: void 0,
209
205
  __source: {
210
206
  fileName: _jsxFileName,
211
- lineNumber: 296,
207
+ lineNumber: 292,
212
208
  columnNumber: 7
213
209
  }
214
210
  }, /*#__PURE__*/_react.default.createElement("div", {
@@ -216,16 +212,16 @@ const RCE = /*#__PURE__*/(0, _react.forwardRef)(({
216
212
  __self: void 0,
217
213
  __source: {
218
214
  fileName: _jsxFileName,
219
- lineNumber: 307,
215
+ lineNumber: 303,
220
216
  columnNumber: 9
221
217
  }
222
218
  }, /*#__PURE__*/_react.default.createElement("div", {
223
219
  className: _richContentEditorStCss.classes.toolbarContainer,
224
- ref: toolbarContainerRef,
220
+ ref: setToolbarContainer,
225
221
  __self: void 0,
226
222
  __source: {
227
223
  fileName: _jsxFileName,
228
- lineNumber: 308,
224
+ lineNumber: 304,
229
225
  columnNumber: 11
230
226
  }
231
227
  }), !hidden && isToolbarReady && /*#__PURE__*/_react.default.createElement(_richContentCommon.ToggleFullscreenButton, {
@@ -234,63 +230,69 @@ const RCE = /*#__PURE__*/(0, _react.forwardRef)(({
234
230
  __self: void 0,
235
231
  __source: {
236
232
  fileName: _jsxFileName,
237
- lineNumber: 310,
233
+ lineNumber: 306,
238
234
  columnNumber: 13
239
235
  }
240
- })), !hidden ? children : null, !isToolbarReady && /*#__PURE__*/_react.default.createElement(RCELoader, {
236
+ })), editor && /*#__PURE__*/_react.default.createElement(InsertToolbarSync, {
237
+ editor: editor,
238
+ onButtonsChange: setToolbarButtons,
239
+ onReadyChange: setIsToolbarReady,
241
240
  __self: void 0,
242
241
  __source: {
243
242
  fileName: _jsxFileName,
244
- lineNumber: 317,
245
- columnNumber: 29
243
+ lineNumber: 314,
244
+ columnNumber: 11
246
245
  }
247
- }), !hidden && isToolbarReady && /*#__PURE__*/_react.default.createElement("div", {
248
- "data-hook": "rich-content.footerToolbar",
249
- className: _richContentEditorStCss.classes.footerToolbarContainer,
246
+ }), !hidden ? /*#__PURE__*/_react.default.createElement("div", {
247
+ "data-hook": dataHook,
248
+ className: _richContentEditorStCss.classes.editor,
250
249
  __self: void 0,
251
250
  __source: {
252
251
  fileName: _jsxFileName,
253
- lineNumber: 319,
252
+ lineNumber: 322,
254
253
  columnNumber: 11
255
254
  }
256
- }, /*#__PURE__*/_react.default.createElement(_richContentToolbar.ExternalToolbar, {
257
- buttons: toolbarButtons,
255
+ }, /*#__PURE__*/_react.default.createElement(_ricos.RicosEditor, (0, _extends2.default)({
256
+ ref: setEditorInstance,
257
+ plugins: plugins,
258
+ initialContent: content,
259
+ toolbars: toolbars,
260
+ modalSettings: modalSettings,
261
+ textWrap: false,
262
+ onChange: onChange,
263
+ container: getContainer
264
+ }, ricosProps, wixRicosProps, {
258
265
  __self: void 0,
259
266
  __source: {
260
267
  fileName: _jsxFileName,
261
268
  lineNumber: 323,
262
269
  columnNumber: 13
263
270
  }
264
- })));
265
- return renderInContainer(/*#__PURE__*/_react.default.createElement("div", {
266
- "data-hook": dataHook,
267
- className: _richContentEditorStCss.classes.editor,
271
+ }))) : null, !isToolbarReady && /*#__PURE__*/_react.default.createElement(RCELoader, {
268
272
  __self: void 0,
269
273
  __source: {
270
274
  fileName: _jsxFileName,
271
- lineNumber: 330,
272
- columnNumber: 7
275
+ lineNumber: 338,
276
+ columnNumber: 29
273
277
  }
274
- }, /*#__PURE__*/_react.default.createElement(_ricos.WixRicosEditor, (0, _extends2.default)({
275
- ref: editorRef,
276
- plugins: plugins,
277
- content: content,
278
- injectedContent: injectedContent,
279
- toolbarSettings: toolbarSettings,
280
- linkPanelSettings: linkPanelSettings,
281
- modalSettings: modalSettings,
282
- textWrap: false,
283
- onLoad: onLoadEditor,
284
- onChange: handleOnChange,
285
- container: containerRef.current
286
- }, ricosProps, wixRicosProps, {
278
+ }), !hidden && isToolbarReady && /*#__PURE__*/_react.default.createElement("div", {
279
+ "data-hook": "rich-content.footerToolbar",
280
+ className: _richContentEditorStCss.classes.footerToolbarContainer,
287
281
  __self: void 0,
288
282
  __source: {
289
283
  fileName: _jsxFileName,
290
- lineNumber: 331,
291
- columnNumber: 9
284
+ lineNumber: 340,
285
+ columnNumber: 11
292
286
  }
293
- }))));
287
+ }, /*#__PURE__*/_react.default.createElement(_richContentToolbar.ExternalToolbar, {
288
+ buttons: toolbarButtons,
289
+ __self: void 0,
290
+ __source: {
291
+ fileName: _jsxFileName,
292
+ lineNumber: 344,
293
+ columnNumber: 13
294
+ }
295
+ })));
294
296
  });
295
297
  RCE.displayName = 'RCE';
296
298
  const RCELoader = () => /*#__PURE__*/_react.default.createElement(_designSystem.Box, {
@@ -303,7 +305,7 @@ const RCELoader = () => /*#__PURE__*/_react.default.createElement(_designSystem.
303
305
  __self: void 0,
304
306
  __source: {
305
307
  fileName: _jsxFileName,
306
- lineNumber: 353,
308
+ lineNumber: 354,
307
309
  columnNumber: 3
308
310
  }
309
311
  }, /*#__PURE__*/_react.default.createElement(_designSystem.Loader, {
@@ -311,29 +313,29 @@ const RCELoader = () => /*#__PURE__*/_react.default.createElement(_designSystem.
311
313
  __self: void 0,
312
314
  __source: {
313
315
  fileName: _jsxFileName,
314
- lineNumber: 361,
316
+ lineNumber: 362,
315
317
  columnNumber: 5
316
318
  }
317
319
  }));
318
320
  RCELoader.displayName = 'RCELoader';
319
321
  const LOADER_DELAY = 100;
320
- const RichContentEditor = exports.RichContentEditor = (0, _ricos.withEditorContext)(({
322
+ const RichContentEditor = ({
321
323
  onFocus,
322
324
  onBlur,
323
325
  onEnterFullScreen,
324
326
  onExitFullScreen,
325
327
  fullScreenOnly,
326
- editorEvents,
327
328
  onPublish,
328
329
  onChange,
329
330
  theme,
331
+ content,
330
332
  ...props
331
333
  }) => {
332
334
  const editorRef = (0, _react.useRef)(null);
333
335
  const modalEditorRef = (0, _react.useRef)(null);
334
336
  const isRichContentChanged = (0, _react.useCallback)(() => {
335
- var _editorRef$current4, _modalEditorRef$curre;
336
- return Boolean(((_editorRef$current4 = editorRef.current) == null ? void 0 : _editorRef$current4.isContentChanged()) || ((_modalEditorRef$curre = modalEditorRef.current) == null ? void 0 : _modalEditorRef$curre.isContentChanged()));
337
+ var _editorRef$current6, _modalEditorRef$curre;
338
+ return Boolean(((_editorRef$current6 = editorRef.current) == null ? void 0 : _editorRef$current6.isContentChanged()) || ((_modalEditorRef$curre = modalEditorRef.current) == null ? void 0 : _modalEditorRef$curre.isContentChanged()));
337
339
  }, []);
338
340
  const handleChange = (0, _react.useCallback)(richContent => {
339
341
  onChange == null || onChange(richContent, isRichContentChanged());
@@ -349,32 +351,42 @@ const RichContentEditor = exports.RichContentEditor = (0, _ricos.withEditorConte
349
351
  setLoader(true);
350
352
  }, LOADER_DELAY);
351
353
  }, []);
352
- const {
353
- content
354
- } = props;
355
354
  const [isFullScreen, setIsFullScreen] = (0, _react.useState)(!!fullScreenOnly);
355
+ const [fullScreenContent, setFullScreenContent] = (0, _react.useState)(content);
356
+ (0, _react.useEffect)(() => {
357
+ if (!isFullScreen) {
358
+ setFullScreenContent(content);
359
+ }
360
+ }, [content, isFullScreen]);
361
+ const publishEditorContent = (0, _react.useCallback)(async (editorHandle, fallbackContent) => {
362
+ if (!editorHandle) {
363
+ return fallbackContent ?? _richContentCommon.INITIAL_INJECTED_RICH_CONTENT;
364
+ }
365
+ return (await editorHandle.prePublish()) ?? fallbackContent ?? _richContentCommon.INITIAL_INJECTED_RICH_CONTENT;
366
+ }, []);
356
367
  const onOpen = (0, _react.useCallback)(async () => {
357
- let finalContent;
368
+ let finalContent = content;
358
369
  const isChanged = isRichContentChanged();
359
370
  try {
360
- finalContent = await editorEvents.publish();
371
+ finalContent = await publishEditorContent(editorRef.current, content);
361
372
  onEnterFullScreen == null || onEnterFullScreen(finalContent, isChanged);
362
373
  } catch (error) {
363
374
  finalContent = content;
364
375
  onEnterFullScreen == null || onEnterFullScreen(content, isChanged);
365
376
  } finally {
377
+ setFullScreenContent(finalContent);
366
378
  setIsFullScreen(true);
367
379
  if (isChanged && finalContent) {
368
380
  handleChange(finalContent);
369
381
  }
370
382
  }
371
- }, [content, editorEvents, isRichContentChanged, onEnterFullScreen, handleChange]);
383
+ }, [content, handleChange, isRichContentChanged, onEnterFullScreen, publishEditorContent]);
372
384
  const onClose = (0, _react.useCallback)(async () => {
373
385
  queueLoader();
374
- let finalContent;
386
+ let finalContent = content;
375
387
  const isChanged = isRichContentChanged();
376
388
  try {
377
- finalContent = await editorEvents.publish();
389
+ finalContent = await publishEditorContent(modalEditorRef.current, content);
378
390
  onExitFullScreen == null || onExitFullScreen(finalContent, isChanged);
379
391
  } catch (error) {
380
392
  finalContent = content;
@@ -386,16 +398,13 @@ const RichContentEditor = exports.RichContentEditor = (0, _ricos.withEditorConte
386
398
  handleChange(finalContent);
387
399
  }
388
400
  }
389
- }, [content, editorEvents, isRichContentChanged, onExitFullScreen, handleChange, queueLoader, resetLoader]);
401
+ }, [content, handleChange, isRichContentChanged, onExitFullScreen, publishEditorContent, queueLoader, resetLoader]);
390
402
  const handleBlur = (0, _react.useCallback)(() => {
391
403
  if (isRichContentChanged()) {
392
- onPublish == null || onPublish(editorEvents.publish().catch(() => content));
404
+ onPublish == null || onPublish(publishEditorContent(editorRef.current, content).catch(() => content ?? _richContentCommon.INITIAL_INJECTED_RICH_CONTENT));
393
405
  }
394
406
  onBlur == null || onBlur();
395
- }, [content, editorEvents, onBlur, onPublish, isRichContentChanged]);
396
-
397
- // Escape while fullscreen — capture phase so it fires before Ricos' own handlers.
398
- // Delegates to onClose which calls editorEvents.publish() for the real current content.
407
+ }, [content, isRichContentChanged, onBlur, onPublish, publishEditorContent]);
399
408
  (0, _react.useEffect)(() => {
400
409
  if (!isFullScreen) {
401
410
  return;
@@ -403,22 +412,20 @@ const RichContentEditor = exports.RichContentEditor = (0, _ricos.withEditorConte
403
412
  const handleKeyDown = e => {
404
413
  if (e.key === 'Escape') {
405
414
  e.stopPropagation();
406
- onClose();
415
+ void onClose();
407
416
  }
408
417
  };
409
418
  document.addEventListener('keydown', handleKeyDown, true);
410
419
  return () => document.removeEventListener('keydown', handleKeyDown, true);
411
420
  }, [isFullScreen, onClose]);
412
- const getToolbarSettings = useGetToolbarSettings();
413
421
  const rceProps = {
414
- getToolbarSettings,
415
422
  onChange: handleChange
416
423
  };
417
424
 
418
- // @NOTE: Ricos now need custom maxHeight to show scroll
419
- // since it's requirements fully related to 'visual part' of
420
- // editor we just default it here
421
- const fullScreenTheme = (0, _defaultsDeep.default)((0, _cloneDeep.default)(theme), {
425
+ // Must be memoized: Ricos re-processes `theme` whenever its identity changes,
426
+ // so passing a freshly cloned object every render drives an infinite
427
+ // re-render loop (freezes the tab) once the fullscreen editor mounts.
428
+ const fullScreenTheme = (0, _react.useMemo)(() => (0, _defaultsDeep.default)((0, _cloneDeep.default)(theme), {
422
429
  customStyles: {
423
430
  editor: {
424
431
  maxHeight: '100%'
@@ -429,15 +436,16 @@ const RichContentEditor = exports.RichContentEditor = (0, _ricos.withEditorConte
429
436
  dialogZIndex: _common.Z_INDEX_MODAL_POPOVER
430
437
  }
431
438
  }
432
- });
439
+ }), [theme]);
433
440
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_userSiteFonts.UserSiteFonts, {
434
441
  __self: void 0,
435
442
  __source: {
436
443
  fileName: _jsxFileName,
437
- lineNumber: 525,
438
- columnNumber: 9
444
+ lineNumber: 561,
445
+ columnNumber: 7
439
446
  }
440
447
  }), !fullScreenOnly && /*#__PURE__*/_react.default.createElement(RCE, (0, _extends2.default)({}, props, rceProps, {
448
+ content: content,
441
449
  theme: theme,
442
450
  onFocus: onFocus,
443
451
  onBlur: handleBlur,
@@ -448,8 +456,8 @@ const RichContentEditor = exports.RichContentEditor = (0, _ricos.withEditorConte
448
456
  __self: void 0,
449
457
  __source: {
450
458
  fileName: _jsxFileName,
451
- lineNumber: 527,
452
- columnNumber: 11
459
+ lineNumber: 563,
460
+ columnNumber: 9
453
461
  }
454
462
  })), /*#__PURE__*/_react.default.createElement(_richContentCommon.FullscreenModal, {
455
463
  isOpen: isFullScreen,
@@ -457,10 +465,11 @@ const RichContentEditor = exports.RichContentEditor = (0, _ricos.withEditorConte
457
465
  __self: void 0,
458
466
  __source: {
459
467
  fileName: _jsxFileName,
460
- lineNumber: 539,
461
- columnNumber: 9
468
+ lineNumber: 576,
469
+ columnNumber: 7
462
470
  }
463
471
  }, /*#__PURE__*/_react.default.createElement(RCE, (0, _extends2.default)({}, props, rceProps, {
472
+ content: fullScreenContent,
464
473
  theme: fullScreenTheme,
465
474
  autoFocus: true,
466
475
  className: _richContentEditorStCss.classes.modalEditor,
@@ -470,43 +479,11 @@ const RichContentEditor = exports.RichContentEditor = (0, _ricos.withEditorConte
470
479
  __self: void 0,
471
480
  __source: {
472
481
  fileName: _jsxFileName,
473
- lineNumber: 540,
474
- columnNumber: 11
482
+ lineNumber: 577,
483
+ columnNumber: 9
475
484
  }
476
485
  }))));
477
- });
486
+ };
487
+ exports.RichContentEditor = RichContentEditor;
478
488
  RichContentEditor.displayName = 'RichContentEditor';
479
- const filterStaticToolbarButtons = button => button !== _ricos.FORMATTING_BUTTONS.CODE_BLOCK;
480
- const useGetToolbarSettings = () => (0, _react.useCallback)(({
481
- textButtons
482
- }) => [{
483
- name: _ricos.ToolbarType.INSERT_PLUGIN,
484
- shouldCreate: () => ({
485
- desktop: true
486
- })
487
- }, {
488
- name: _ricos.ToolbarType.FOOTER,
489
- shouldCreate: () => ({
490
- desktop: false
491
- })
492
- }, {
493
- name: _ricos.ToolbarType.STATIC,
494
- getButtons: () => {
495
- var _textButtons$desktop;
496
- return {
497
- desktop: [...((textButtons == null || (_textButtons$desktop = textButtons.desktop) == null || _textButtons$desktop.filter == null ? void 0 : _textButtons$desktop.filter(filterStaticToolbarButtons)) ?? [])]
498
- };
499
- }
500
- }, {
501
- name: _ricos.ToolbarType.QUICK_ACTIONS,
502
- activateOnFloatingPlusButton: true,
503
- shouldCreate: () => ({
504
- desktop: true
505
- })
506
- }].filter(Boolean), []);
507
- const useToolbarSettings = (container, getToolbarSettings) => (0, _react.useMemo)(() => ({
508
- getToolbarSettings,
509
- useStaticTextToolbar: true,
510
- textToolbarContainer: container
511
- }), [container, getToolbarSettings]);
512
489
  //# sourceMappingURL=rich-content-editor.js.map