@wix/patterns-fields 1.108.0 → 1.110.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 (273) hide show
  1. package/dist/cjs/components/address/input/address-input.st.css.js +3 -3
  2. package/dist/cjs/components/address/input/address-input.st.css.js.map +1 -1
  3. package/dist/cjs/components/audio/actions/actions-menu/actions-menu.st.css.js +3 -3
  4. package/dist/cjs/components/audio/actions/actions-menu/actions-menu.st.css.js.map +1 -1
  5. package/dist/cjs/components/audio/audio-field/form-audio-field.st.css.js +4 -4
  6. package/dist/cjs/components/audio/audio-field/form-audio-field.st.css.js.map +1 -1
  7. package/dist/cjs/components/audio/audio-player/audio-player.st.css.js +2 -2
  8. package/dist/cjs/components/audio/audio-player/audio-player.st.css.js.map +1 -1
  9. package/dist/cjs/components/boolean/cell-checkbox.js +15 -6
  10. package/dist/cjs/components/boolean/cell-checkbox.js.map +1 -1
  11. package/dist/cjs/components/color-view/cell-color-view.st.css.js +3 -3
  12. package/dist/cjs/components/color-view/cell-color-view.st.css.js.map +1 -1
  13. package/dist/cjs/components/color-view/color-view.st.css.js +4 -4
  14. package/dist/cjs/components/color-view/color-view.st.css.js.map +1 -1
  15. package/dist/cjs/components/date-input/cell-date-input.js +21 -2
  16. package/dist/cjs/components/date-input/cell-date-input.js.map +1 -1
  17. package/dist/cjs/components/date-input/date-picker-internals.js +93 -3
  18. package/dist/cjs/components/date-input/date-picker-internals.js.map +1 -1
  19. package/dist/cjs/components/date-input/form-date-input.driver.js +2 -0
  20. package/dist/cjs/components/date-input/form-date-input.driver.js.map +1 -1
  21. package/dist/cjs/components/date-input/form-date-input.js +23 -6
  22. package/dist/cjs/components/date-input/form-date-input.js.map +1 -1
  23. package/dist/cjs/components/date-input/use-field-value-replacement.js +48 -0
  24. package/dist/cjs/components/date-input/use-field-value-replacement.js.map +1 -0
  25. package/dist/cjs/components/datetime-input/form-date-time.driver.js +3 -0
  26. package/dist/cjs/components/datetime-input/form-date-time.driver.js.map +1 -1
  27. package/dist/cjs/components/datetime-input/form-date-time.js +61 -24
  28. package/dist/cjs/components/datetime-input/form-date-time.js.map +1 -1
  29. package/dist/cjs/components/delete-dialog/delete-dialog.st.css.js +3 -3
  30. package/dist/cjs/components/delete-dialog/delete-dialog.st.css.js.map +1 -1
  31. package/dist/cjs/components/document/form-document-field.st.css.js +7 -7
  32. package/dist/cjs/components/document/form-document-field.st.css.js.map +1 -1
  33. package/dist/cjs/components/exclamation/exclamation.st.css.js +5 -5
  34. package/dist/cjs/components/exclamation/exclamation.st.css.js.map +1 -1
  35. package/dist/cjs/components/highlighted-text/highlighted-text.st.css.js +5 -5
  36. package/dist/cjs/components/highlighted-text/highlighted-text.st.css.js.map +1 -1
  37. package/dist/cjs/components/image/thumbnail-replace-overlay.st.css.js +3 -3
  38. package/dist/cjs/components/image/thumbnail-replace-overlay.st.css.js.map +1 -1
  39. package/dist/cjs/components/media-control/cell-media-edit-shell.st.css.js +2 -2
  40. package/dist/cjs/components/media-control/cell-media-edit-shell.st.css.js.map +1 -1
  41. package/dist/cjs/components/media-control/paste-url-button.st.css.js +4 -4
  42. package/dist/cjs/components/media-control/paste-url-button.st.css.js.map +1 -1
  43. package/dist/cjs/components/media-gallery/form-media-gallery-field.st.css.js +10 -10
  44. package/dist/cjs/components/media-gallery/form-media-gallery-field.st.css.js.map +1 -1
  45. package/dist/cjs/components/media-image/media-image.st.css.js +4 -4
  46. package/dist/cjs/components/media-image/media-image.st.css.js.map +1 -1
  47. package/dist/cjs/components/media-image/overlays/overlay.st.css.js +3 -3
  48. package/dist/cjs/components/media-image/overlays/overlay.st.css.js.map +1 -1
  49. package/dist/cjs/components/media-tag/web-media-tag/media-tag.st.css.js +2 -2
  50. package/dist/cjs/components/media-tag/web-media-tag/media-tag.st.css.js.map +1 -1
  51. package/dist/cjs/components/multi-document/cell-multi-document-edit.st.css.js +3 -3
  52. package/dist/cjs/components/multi-document/cell-multi-document-edit.st.css.js.map +1 -1
  53. package/dist/cjs/components/multi-document/multi-document-input/form-multi-document.st.css.js +5 -5
  54. package/dist/cjs/components/multi-document/multi-document-input/form-multi-document.st.css.js.map +1 -1
  55. package/dist/cjs/components/reference/cell-multi-reference-input.st.css.js +2 -2
  56. package/dist/cjs/components/reference/cell-multi-reference-input.st.css.js.map +1 -1
  57. package/dist/cjs/components/reference/cell-reference-input.st.css.js +3 -3
  58. package/dist/cjs/components/reference/cell-reference-input.st.css.js.map +1 -1
  59. package/dist/cjs/components/rich-content/cell-rich-content-input.js +12 -9
  60. package/dist/cjs/components/rich-content/cell-rich-content-input.js.map +1 -1
  61. package/dist/cjs/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.js +4 -4
  62. package/dist/cjs/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.js.map +1 -1
  63. package/dist/cjs/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js +3 -3
  64. package/dist/cjs/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js.map +1 -1
  65. package/dist/cjs/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.js +2 -2
  66. 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
  67. package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js +3 -3
  68. package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js.map +1 -1
  69. package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js +3 -3
  70. package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js.map +1 -1
  71. package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js +2 -2
  72. package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js.map +1 -1
  73. package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.js +23 -17
  74. package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.js.map +1 -1
  75. package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js +7 -7
  76. package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js.map +1 -1
  77. package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js +5 -5
  78. package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js.map +1 -1
  79. package/dist/cjs/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js +4 -4
  80. package/dist/cjs/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js.map +1 -1
  81. package/dist/cjs/components/rich-text/cell-rich-text-editor.js +21 -5
  82. package/dist/cjs/components/rich-text/cell-rich-text-editor.js.map +1 -1
  83. package/dist/cjs/components/rich-text/cell-rich-text-input.js +15 -7
  84. package/dist/cjs/components/rich-text/cell-rich-text-input.js.map +1 -1
  85. package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js +18 -18
  86. package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js.map +1 -1
  87. package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js +4 -4
  88. package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js.map +1 -1
  89. package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js +18 -18
  90. package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js.map +1 -1
  91. package/dist/cjs/components/text/form-short-text.js +1 -1
  92. package/dist/cjs/components/text/form-short-text.js.map +1 -1
  93. package/dist/cjs/components/text/text-view.st.css.js +3 -3
  94. package/dist/cjs/components/text/text-view.st.css.js.map +1 -1
  95. package/dist/cjs/styles.global.css +1 -1
  96. package/dist/cjs/utils/keyboard.js +12 -0
  97. package/dist/cjs/utils/keyboard.js.map +1 -0
  98. package/dist/esm/components/address/input/address-input.st.css.js +2 -2
  99. package/dist/esm/components/address/input/address-input.st.css.js.map +1 -1
  100. package/dist/esm/components/audio/actions/actions-menu/actions-menu.st.css.js +2 -2
  101. package/dist/esm/components/audio/audio-field/form-audio-field.st.css.js +2 -2
  102. package/dist/esm/components/audio/audio-player/audio-player.st.css.js +2 -2
  103. package/dist/esm/components/boolean/cell-checkbox.js +10 -4
  104. package/dist/esm/components/boolean/cell-checkbox.js.map +1 -1
  105. package/dist/esm/components/color-view/cell-color-view.st.css.js +2 -2
  106. package/dist/esm/components/color-view/color-view.st.css.js +2 -2
  107. package/dist/esm/components/date-input/cell-date-input.js +21 -2
  108. package/dist/esm/components/date-input/cell-date-input.js.map +1 -1
  109. package/dist/esm/components/date-input/date-picker-internals.js +67 -0
  110. package/dist/esm/components/date-input/date-picker-internals.js.map +1 -1
  111. package/dist/esm/components/date-input/form-date-input.driver.js +2 -0
  112. package/dist/esm/components/date-input/form-date-input.driver.js.map +1 -1
  113. package/dist/esm/components/date-input/form-date-input.js +25 -4
  114. package/dist/esm/components/date-input/form-date-input.js.map +1 -1
  115. package/dist/esm/components/date-input/use-field-value-replacement.js +48 -0
  116. package/dist/esm/components/date-input/use-field-value-replacement.js.map +1 -0
  117. package/dist/esm/components/datetime-input/form-date-time.driver.js +3 -0
  118. package/dist/esm/components/datetime-input/form-date-time.driver.js.map +1 -1
  119. package/dist/esm/components/datetime-input/form-date-time.js +51 -21
  120. package/dist/esm/components/datetime-input/form-date-time.js.map +1 -1
  121. package/dist/esm/components/delete-dialog/delete-dialog.st.css.js +2 -2
  122. package/dist/esm/components/delete-dialog/delete-dialog.st.css.js.map +1 -1
  123. package/dist/esm/components/document/form-document-field.st.css.js +2 -2
  124. package/dist/esm/components/exclamation/exclamation.st.css.js +2 -2
  125. package/dist/esm/components/highlighted-text/highlighted-text.st.css.js +3 -3
  126. package/dist/esm/components/highlighted-text/highlighted-text.st.css.js.map +1 -1
  127. package/dist/esm/components/image/thumbnail-replace-overlay.st.css.js +2 -2
  128. package/dist/esm/components/media-control/cell-media-edit-shell.st.css.js +2 -2
  129. package/dist/esm/components/media-control/cell-media-edit-shell.st.css.js.map +1 -1
  130. package/dist/esm/components/media-control/paste-url-button.st.css.js +2 -2
  131. package/dist/esm/components/media-control/paste-url-button.st.css.js.map +1 -1
  132. package/dist/esm/components/media-gallery/form-media-gallery-field.st.css.js +2 -2
  133. package/dist/esm/components/media-gallery/form-media-gallery-field.st.css.js.map +1 -1
  134. package/dist/esm/components/media-image/media-image.st.css.js +3 -3
  135. package/dist/esm/components/media-image/media-image.st.css.js.map +1 -1
  136. package/dist/esm/components/media-image/overlays/overlay.st.css.js +2 -2
  137. package/dist/esm/components/media-image/overlays/overlay.st.css.js.map +1 -1
  138. package/dist/esm/components/media-tag/web-media-tag/media-tag.st.css.js +2 -2
  139. package/dist/esm/components/multi-document/cell-multi-document-edit.st.css.js +2 -2
  140. package/dist/esm/components/multi-document/multi-document-input/form-multi-document.st.css.js +2 -2
  141. package/dist/esm/components/reference/cell-multi-reference-input.st.css.js +2 -2
  142. package/dist/esm/components/reference/cell-reference-input.st.css.js +2 -2
  143. package/dist/esm/components/reference/cell-reference-input.st.css.js.map +1 -1
  144. package/dist/esm/components/rich-content/cell-rich-content-input.js +11 -9
  145. package/dist/esm/components/rich-content/cell-rich-content-input.js.map +1 -1
  146. package/dist/esm/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.js +2 -2
  147. package/dist/esm/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js +2 -2
  148. package/dist/esm/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.js +2 -2
  149. 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
  150. package/dist/esm/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js +2 -2
  151. package/dist/esm/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js +2 -2
  152. package/dist/esm/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js.map +1 -1
  153. package/dist/esm/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js +2 -2
  154. package/dist/esm/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.js +8 -2
  155. package/dist/esm/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.js.map +1 -1
  156. package/dist/esm/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js +2 -2
  157. package/dist/esm/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js +2 -2
  158. package/dist/esm/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js.map +1 -1
  159. package/dist/esm/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js +2 -2
  160. package/dist/esm/components/rich-text/cell-rich-text-editor.js +16 -1
  161. package/dist/esm/components/rich-text/cell-rich-text-editor.js.map +1 -1
  162. package/dist/esm/components/rich-text/cell-rich-text-input.js +8 -0
  163. package/dist/esm/components/rich-text/cell-rich-text-input.js.map +1 -1
  164. package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js +2 -2
  165. package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js +2 -2
  166. package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js +2 -2
  167. package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js.map +1 -1
  168. package/dist/esm/components/text/form-short-text.js +1 -1
  169. package/dist/esm/components/text/form-short-text.js.map +1 -1
  170. package/dist/esm/components/text/text-view.st.css.js +2 -2
  171. package/dist/esm/components/text/text-view.st.css.js.map +1 -1
  172. package/dist/esm/styles.global.css +1 -1
  173. package/dist/esm/utils/keyboard.js +7 -0
  174. package/dist/esm/utils/keyboard.js.map +1 -0
  175. package/dist/types/components/address/input/address-input.st.css.d.ts.map +1 -1
  176. package/dist/types/components/boolean/cell-checkbox.d.ts +4 -1
  177. package/dist/types/components/boolean/cell-checkbox.d.ts.map +1 -1
  178. package/dist/types/components/date-input/cell-date-input.d.ts +4 -0
  179. package/dist/types/components/date-input/cell-date-input.d.ts.map +1 -1
  180. package/dist/types/components/date-input/date-picker-internals.d.ts +11 -1
  181. package/dist/types/components/date-input/date-picker-internals.d.ts.map +1 -1
  182. package/dist/types/components/date-input/form-date-input.d.ts.map +1 -1
  183. package/dist/types/components/date-input/form-date-input.driver.d.ts +2 -0
  184. package/dist/types/components/date-input/form-date-input.driver.d.ts.map +1 -1
  185. package/dist/types/components/date-input/use-field-value-replacement.d.ts +3 -0
  186. package/dist/types/components/date-input/use-field-value-replacement.d.ts.map +1 -0
  187. package/dist/types/components/datetime-input/form-date-time.d.ts.map +1 -1
  188. package/dist/types/components/datetime-input/form-date-time.driver.d.ts +3 -0
  189. package/dist/types/components/datetime-input/form-date-time.driver.d.ts.map +1 -1
  190. package/dist/types/components/delete-dialog/delete-dialog.st.css.d.ts.map +1 -1
  191. package/dist/types/components/highlighted-text/highlighted-text.st.css.d.ts.map +1 -1
  192. package/dist/types/components/media-control/cell-media-edit-shell.st.css.d.ts.map +1 -1
  193. package/dist/types/components/media-control/paste-url-button.st.css.d.ts.map +1 -1
  194. package/dist/types/components/media-gallery/form-media-gallery-field.st.css.d.ts.map +1 -1
  195. package/dist/types/components/media-image/media-image.st.css.d.ts.map +1 -1
  196. package/dist/types/components/media-image/overlays/overlay.st.css.d.ts.map +1 -1
  197. package/dist/types/components/reference/cell-reference-input.st.css.d.ts.map +1 -1
  198. package/dist/types/components/rich-content/cell-rich-content-input.d.ts +2 -1
  199. package/dist/types/components/rich-content/cell-rich-content-input.d.ts.map +1 -1
  200. 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
  201. package/dist/types/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.d.ts.map +1 -1
  202. package/dist/types/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.d.ts +2 -0
  203. package/dist/types/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.d.ts.map +1 -1
  204. package/dist/types/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.d.ts.map +1 -1
  205. package/dist/types/components/rich-text/cell-rich-text-editor.d.ts.map +1 -1
  206. package/dist/types/components/rich-text/cell-rich-text-input.d.ts +1 -1
  207. package/dist/types/components/rich-text/cell-rich-text-input.d.ts.map +1 -1
  208. package/dist/types/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.d.ts.map +1 -1
  209. package/dist/types/components/text/text-view.st.css.d.ts.map +1 -1
  210. package/dist/types/utils/keyboard.d.ts +4 -0
  211. package/dist/types/utils/keyboard.d.ts.map +1 -0
  212. package/package.json +5 -5
  213. package/src/__tests__/components/cell-rich-content-input.spec.tsx +73 -0
  214. package/src/__tests__/components/cell-rich-text-editor.spec.tsx +64 -0
  215. package/src/__tests__/components/cell-rich-text-input.spec.tsx +39 -0
  216. package/src/__tests__/components/date-input/cell-date-input.spec.tsx +100 -0
  217. package/src/__tests__/components/date-input/date-picker-internals.spec.tsx +69 -0
  218. package/src/__tests__/components/date-input/form-date-input.spec.tsx +141 -0
  219. package/src/__tests__/components/datetime-input/form-date-time.spec.tsx +194 -0
  220. package/src/__tests__/components/rich-content-editor.spec.tsx +53 -0
  221. package/src/__tests__/components/text/form-short-text.spec.tsx +27 -0
  222. package/src/__tests__/form-field.driver.tsx +31 -3
  223. package/src/__tests__/hooks/use-field-value-replacement.spec.tsx +68 -0
  224. package/src/__tests__/utils/keyboard.spec.ts +45 -0
  225. package/src/components/address/input/address-input.st.css.ts +2 -2
  226. package/src/components/audio/actions/actions-menu/actions-menu.st.css.ts +2 -2
  227. package/src/components/audio/audio-field/form-audio-field.st.css.ts +2 -2
  228. package/src/components/audio/audio-player/audio-player.st.css.ts +2 -2
  229. package/src/components/boolean/cell-checkbox.tsx +33 -11
  230. package/src/components/color-view/cell-color-view.st.css.ts +2 -2
  231. package/src/components/color-view/color-view.st.css.ts +2 -2
  232. package/src/components/date-input/cell-date-input.tsx +28 -0
  233. package/src/components/date-input/date-picker-internals.ts +104 -3
  234. package/src/components/date-input/form-date-input.driver.ts +2 -0
  235. package/src/components/date-input/form-date-input.tsx +25 -3
  236. package/src/components/date-input/use-field-value-replacement.ts +63 -0
  237. package/src/components/datetime-input/form-date-time.driver.ts +3 -0
  238. package/src/components/datetime-input/form-date-time.tsx +55 -33
  239. package/src/components/delete-dialog/delete-dialog.st.css.ts +2 -2
  240. package/src/components/document/form-document-field.st.css.ts +2 -2
  241. package/src/components/exclamation/exclamation.st.css.ts +2 -2
  242. package/src/components/highlighted-text/highlighted-text.st.css.ts +3 -3
  243. package/src/components/image/thumbnail-replace-overlay.st.css.ts +2 -2
  244. package/src/components/media-control/cell-media-edit-shell.st.css.ts +2 -2
  245. package/src/components/media-control/paste-url-button.st.css.ts +2 -2
  246. package/src/components/media-gallery/form-media-gallery-field.st.css.ts +2 -2
  247. package/src/components/media-image/media-image.st.css.ts +3 -3
  248. package/src/components/media-image/overlays/overlay.st.css.ts +2 -2
  249. package/src/components/media-tag/web-media-tag/media-tag.st.css.ts +2 -2
  250. package/src/components/multi-document/cell-multi-document-edit.st.css.ts +2 -2
  251. package/src/components/multi-document/multi-document-input/form-multi-document.st.css.ts +2 -2
  252. package/src/components/reference/cell-multi-reference-input.st.css.ts +2 -2
  253. package/src/components/reference/cell-reference-input.st.css.ts +2 -2
  254. package/src/components/rich-content/cell-rich-content-input.tsx +12 -13
  255. package/src/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.ts +2 -2
  256. package/src/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.ts +2 -2
  257. package/src/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.ts +2 -2
  258. package/src/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.ts +2 -2
  259. package/src/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.ts +2 -2
  260. package/src/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.ts +2 -2
  261. package/src/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.ts +2 -2
  262. package/src/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.tsx +9 -1
  263. package/src/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.ts +2 -2
  264. package/src/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.ts +2 -2
  265. package/src/components/rich-text/cell-rich-text-editor.tsx +30 -1
  266. package/src/components/rich-text/cell-rich-text-input.tsx +9 -1
  267. package/src/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.ts +2 -2
  268. package/src/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.ts +2 -2
  269. package/src/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.ts +2 -2
  270. package/src/components/text/form-short-text.tsx +1 -1
  271. package/src/components/text/text-view.st.css.ts +2 -2
  272. package/src/styles.global.css +1 -1
  273. package/src/utils/keyboard.ts +7 -0
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "cellmediaeditshell235224359";
8
+ var _namespace_ = "cellmediaeditshell1470238779";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,7 +13,7 @@ export var style: import("@stylable/runtime").STFunction = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"cellmediaeditshell235224359__root"};
16
+ export var classes = {"root":"cellmediaeditshell1470238779__root"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "pasteurlbutton2373892225";
8
+ var _namespace_ = "pasteurlbutton863819561";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,7 +13,7 @@ export var style: import("@stylable/runtime").STFunction = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"pasteurlbutton2373892225__root","iconButtonTooltip":"pasteurlbutton2373892225__iconButtonTooltip","iconButton":"pasteurlbutton2373892225__iconButton"};
16
+ export var classes = {"root":"pasteurlbutton863819561__root","iconButtonTooltip":"pasteurlbutton863819561__iconButtonTooltip","iconButton":"pasteurlbutton863819561__iconButton"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "formmediagalleryfield668604997";
8
+ var _namespace_ = "formmediagalleryfield3652448579";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,7 +13,7 @@ export var style: import("@stylable/runtime").STFunction = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"formmediagalleryfield668604997__root","container":"formmediagalleryfield668604997__container","viewBox":"formmediagalleryfield668604997__viewBox","addItemWrapper":"formmediagalleryfield668604997__addItemWrapper","addItem":"formmediagalleryfield668604997__addItem","overlay":"formmediagalleryfield668604997__overlay","image":"formmediagalleryfield668604997__image","previewImage":"formmediagalleryfield668604997__previewImage","previewVideo":"formmediagalleryfield668604997__previewVideo"};
16
+ export var classes = {"root":"formmediagalleryfield3652448579__root","container":"formmediagalleryfield3652448579__container","viewBox":"formmediagalleryfield3652448579__viewBox","addItemWrapper":"formmediagalleryfield3652448579__addItemWrapper","addItem":"formmediagalleryfield3652448579__addItem","overlay":"formmediagalleryfield3652448579__overlay","image":"formmediagalleryfield3652448579__image","previewImage":"formmediagalleryfield3652448579__previewImage","previewVideo":"formmediagalleryfield3652448579__previewVideo"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "mediaimage1816130638";
8
+ var _namespace_ = "mediaimage669594612";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,12 +13,12 @@ export var style: import("@stylable/runtime").STFunction = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"mediaimage1816130638__root"};
16
+ export var classes = {"root":"mediaimage669594612__root"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
20
20
  export var stVars = {};
21
- export var vars = {"wds-color-red-200":"--wds-color-red-200","wsr-color-R20":"--wsr-color-R20","wds-color-black-550":"--wds-color-black-550","wsr-color-D55":"--wsr-color-D55","from":"--mediaimage1816130638-from","to":"--mediaimage1816130638-to"};
21
+ export var vars = {"wds-color-red-200":"--wds-color-red-200","wsr-color-R20":"--wsr-color-R20","wds-color-black-550":"--wds-color-black-550","wsr-color-D55":"--wsr-color-D55","from":"--mediaimage669594612-from","to":"--mediaimage669594612-to"};
22
22
 
23
23
 
24
24
 
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../../stylable-esm-runtime.js"
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "overlay1530238555";
8
+ var _namespace_ = "overlay269699703";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,7 +13,7 @@ export var style: import("@stylable/runtime").STFunction = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"overlay1530238555__root","iconOverlay":"overlay1530238555__iconOverlay"};
16
+ export var classes = {"root":"overlay269699703__root","iconOverlay":"overlay269699703__iconOverlay"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../../stylable-esm-runtime.js"
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "mediatag1357066181";
8
+ var _namespace_ = "mediatag1278659247";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,7 +13,7 @@ export var style: import("@stylable/runtime").STFunction = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"mediatag1357066181__root"};
16
+ export var classes = {"root":"mediatag1278659247__root"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "cellmultidocumentedit2273831326";
8
+ var _namespace_ = "cellmultidocumentedit1445614662";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,7 +13,7 @@ export var style: import("@stylable/runtime").STFunction = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"cellmultidocumentedit2273831326__root","chipTrigger":"cellmultidocumentedit2273831326__chipTrigger"};
16
+ export var classes = {"root":"cellmultidocumentedit1445614662__root","chipTrigger":"cellmultidocumentedit1445614662__chipTrigger"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../../stylable-esm-runtime.js"
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "formmultidocument3816460060";
8
+ var _namespace_ = "formmultidocument3031168304";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,7 +13,7 @@ export var style: import("@stylable/runtime").STFunction = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"formmultidocument3816460060__root","viewRoot":"formmultidocument3816460060__viewRoot","singleViewWrapper":"formmultidocument3816460060__singleViewWrapper","addDocumentButton":"formmultidocument3816460060__addDocumentButton"};
16
+ export var classes = {"root":"formmultidocument3031168304__root","viewRoot":"formmultidocument3031168304__viewRoot","singleViewWrapper":"formmultidocument3031168304__singleViewWrapper","addDocumentButton":"formmultidocument3031168304__addDocumentButton"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "cellmultireferenceinput2648455914";
8
+ var _namespace_ = "cellmultireferenceinput1272302448";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,7 +13,7 @@ export var style: import("@stylable/runtime").STFunction = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"cellmultireferenceinput2648455914__root"};
16
+ export var classes = {"root":"cellmultireferenceinput1272302448__root"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "cellreferenceinput480790494";
8
+ var _namespace_ = "cellreferenceinput3677663516";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,7 +13,7 @@ export var style: import("@stylable/runtime").STFunction = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"cellreferenceinput480790494__root","autocomplete":"cellreferenceinput480790494__autocomplete"};
16
+ export var classes = {"root":"cellreferenceinput3677663516__root","autocomplete":"cellreferenceinput3677663516__autocomplete"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -19,7 +19,8 @@ export interface CellRichContentInputProps {
19
19
  }
20
20
 
21
21
  /** Full-screen Ricos editor for the richContent cell type.
22
- * Opens immediately in fullscreen mode. Saving (X button or Escape) calls onChange + onSave. */
22
+ * Opens immediately in fullscreen mode. Saving (X button, Escape or Enter) calls onChange + onSave.
23
+ * Shift+Enter adds a new line. */
23
24
  export const CellRichContentInput: React.FC<CellRichContentInputProps> = ({
24
25
  value,
25
26
  onChange,
@@ -49,25 +50,22 @@ export const CellRichContentInput: React.FC<CellRichContentInputProps> = ({
49
50
  [setLocalValue],
50
51
  );
51
52
 
52
- /** Commit the current content and exit edit mode.
53
+ /** Commit the content (if it changed) and exit edit mode.
53
54
  * Guards against double-save (X button + Escape firing simultaneously). */
54
- const handleSave = useCallback(
55
- (content?: RicosDocument) => {
55
+ const handleExitFullScreen = useCallback(
56
+ (content?: RicosDocument, isContentChanged?: boolean) => {
56
57
  if (hasSavedRef.current) {
57
58
  return;
58
59
  }
59
60
  hasSavedRef.current = true;
60
- onChange(content);
61
+ // Skipping onChange leaves the cell untouched, so nothing is saved. A
62
+ // typed-to-edit key is a change even though the editor started with it.
63
+ if (isContentChanged || initialTypedKey) {
64
+ onChange(content);
65
+ }
61
66
  onSave();
62
67
  },
63
- [onChange, onSave],
64
- );
65
-
66
- const handleExitFullScreen = useCallback(
67
- (content?: RicosDocument) => {
68
- handleSave(content);
69
- },
70
- [handleSave],
68
+ [onChange, onSave, initialTypedKey],
71
69
  );
72
70
 
73
71
  return (
@@ -77,6 +75,7 @@ export const CellRichContentInput: React.FC<CellRichContentInputProps> = ({
77
75
  onChange={handleChange}
78
76
  onExitFullScreen={handleExitFullScreen}
79
77
  fullScreenOnly
78
+ closeOnEnter
80
79
  autoFocus
81
80
  />
82
81
  );
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../../../stylable-esm-runtime.
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "richcontentdefaultvalueinput3993079790";
8
+ var _namespace_ = "richcontentdefaultvalueinput3250840748";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,7 +13,7 @@ export var style: import("@stylable/runtime").STFunction = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"richcontentdefaultvalueinput3993079790__root","richContentEditorContainer":"richcontentdefaultvalueinput3993079790__richContentEditorContainer","editor":"richcontentdefaultvalueinput3993079790__editor"};
16
+ export var classes = {"root":"richcontentdefaultvalueinput3250840748__root","richContentEditorContainer":"richcontentdefaultvalueinput3250840748__richContentEditorContainer","editor":"richcontentdefaultvalueinput3250840748__editor"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../../../stylable-esm-runtime.
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "richcontentforminput3375020181";
8
+ var _namespace_ = "richcontentforminput1502891660";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,7 +13,7 @@ export var style: import("@stylable/runtime").STFunction = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"richcontentforminput3375020181__root","editor":"richcontentforminput3375020181__editor"};
16
+ export var classes = {"root":"richcontentforminput1502891660__root","editor":"richcontentforminput1502891660__editor"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../../../stylable-esm-runtime.
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "richcontentformreadonlyinput2370049202";
8
+ var _namespace_ = "richcontentformreadonlyinput517963887";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,7 +13,7 @@ export var style: import("@stylable/runtime").STFunction = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"richcontentformreadonlyinput2370049202__root"};
16
+ export var classes = {"root":"richcontentformreadonlyinput517963887__root"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../../../../stylable-esm-runti
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "fullscreenmodal2426758280";
8
+ var _namespace_ = "fullscreenmodal4194047848";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,7 +13,7 @@ export var style: import("@stylable/runtime").STFunction = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"fullscreenmodal2426758280__root","modalContent":"fullscreenmodal2426758280__modalContent"};
16
+ export var classes = {"root":"fullscreenmodal4194047848__root","modalContent":"fullscreenmodal4194047848__modalContent"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../../../../stylable-esm-runti
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "publishloader174442813";
8
+ var _namespace_ = "publishloader3058437230";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,7 +13,7 @@ export var style: import("@stylable/runtime").STFunction = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"publishloader174442813__root","publishLoader":"publishloader174442813__publishLoader"};
16
+ export var classes = {"root":"publishloader3058437230__root","publishLoader":"publishloader3058437230__publishLoader"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../../../../stylable-esm-runti
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "togglefullscreenbutton1788293308";
8
+ var _namespace_ = "togglefullscreenbutton2357879209";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,7 +13,7 @@ export var style: import("@stylable/runtime").STFunction = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"togglefullscreenbutton1788293308__root"};
16
+ export var classes = {"root":"togglefullscreenbutton2357879209__root"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../../../stylable-esm-runtime.
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "richcontenteditor1294266000";
8
+ var _namespace_ = "richcontenteditor3770552425";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,7 +13,7 @@ export var style: import("@stylable/runtime").STFunction = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"richcontenteditor1294266000__root","toolbarContainer":"richcontenteditor1294266000__toolbarContainer","footerToolbarContainer":"richcontenteditor1294266000__footerToolbarContainer","toolbarAndFullScreenButtonWrapper":"richcontenteditor1294266000__toolbarAndFullScreenButtonWrapper","editor":"richcontenteditor1294266000__editor","modalEditor":"richcontenteditor1294266000__modalEditor"};
16
+ export var classes = {"root":"richcontenteditor3770552425__root","toolbarContainer":"richcontenteditor3770552425__toolbarContainer","footerToolbarContainer":"richcontenteditor3770552425__footerToolbarContainer","toolbarAndFullScreenButtonWrapper":"richcontenteditor3770552425__toolbarAndFullScreenButtonWrapper","editor":"richcontenteditor3770552425__editor","modalEditor":"richcontenteditor3770552425__modalEditor"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -40,6 +40,7 @@ import {
40
40
 
41
41
  import { usePlugins } from './plugins';
42
42
  import { ExternalToolbar } from './rich-content-toolbar';
43
+ import { isEnterInEditableText } from '../../../../utils/keyboard';
43
44
  import { st, classes } from './rich-content-editor.st.css.js';
44
45
 
45
46
  type RicosProps = Pick<RicosEditorProps, 'biSettings' | 'theme'> & {
@@ -394,6 +395,8 @@ export type RichContentEditorProps = Omit<RCEProps, 'onChange'> & {
394
395
  onChange?: (content: RicosDocument, isContentChanged?: boolean) => void;
395
396
  onPublish?: (promise: Promise<RicosDocument>) => void;
396
397
  fullScreenOnly?: boolean;
398
+ /** Close full screen on Enter in the text, like Escape. Shift+Enter still adds a new line. */
399
+ closeOnEnter?: boolean;
397
400
  };
398
401
 
399
402
  export const RichContentEditor: FC<RichContentEditorProps> = ({
@@ -402,6 +405,7 @@ export const RichContentEditor: FC<RichContentEditorProps> = ({
402
405
  onEnterFullScreen,
403
406
  onExitFullScreen,
404
407
  fullScreenOnly,
408
+ closeOnEnter,
405
409
  onPublish,
406
410
  onChange,
407
411
  theme,
@@ -542,12 +546,16 @@ export const RichContentEditor: FC<RichContentEditorProps> = ({
542
546
  if (e.key === 'Escape') {
543
547
  e.stopPropagation();
544
548
  void onClose();
549
+ } else if (closeOnEnter && isEnterInEditableText(e)) {
550
+ e.preventDefault();
551
+ e.stopPropagation();
552
+ void onClose();
545
553
  }
546
554
  };
547
555
 
548
556
  document.addEventListener('keydown', handleKeyDown, true);
549
557
  return () => document.removeEventListener('keydown', handleKeyDown, true);
550
- }, [isFullScreen, onClose]);
558
+ }, [isFullScreen, onClose, closeOnEnter]);
551
559
 
552
560
  const rceProps = {
553
561
  onChange: handleChange,
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../../../stylable-esm-runtime.
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "richcontenttoolbar3765747421";
8
+ var _namespace_ = "richcontenttoolbar784676697";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,7 +13,7 @@ export var style: import("@stylable/runtime").STFunction = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"richcontenttoolbar3765747421__root","toolbar":"richcontenttoolbar3765747421__toolbar","toolbarButton":"richcontenttoolbar3765747421__toolbarButton","separator":"richcontenttoolbar3765747421__separator"};
16
+ export var classes = {"root":"richcontenttoolbar784676697__root","toolbar":"richcontenttoolbar784676697__toolbar","toolbarButton":"richcontenttoolbar784676697__toolbarButton","separator":"richcontenttoolbar784676697__separator"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../../../stylable-esm-runtime.
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "richcontentviewer1391567858";
8
+ var _namespace_ = "richcontentviewer4123602360";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,7 +13,7 @@ export var style: import("@stylable/runtime").STFunction = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"richcontentviewer1391567858__root","viewer":"richcontentviewer1391567858__viewer","modalViewer":"richcontentviewer1391567858__modalViewer"};
16
+ export var classes = {"root":"richcontentviewer4123602360__root","viewer":"richcontentviewer4123602360__viewer","modalViewer":"richcontentviewer4123602360__modalViewer"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -1,4 +1,10 @@
1
- import React, { useCallback, useMemo, useRef, useState } from 'react';
1
+ import React, {
2
+ useCallback,
3
+ useEffect,
4
+ useMemo,
5
+ useRef,
6
+ useState,
7
+ } from 'react';
2
8
  import { EditorState } from 'draft-js';
3
9
  import { Modal } from '@wix/design-system';
4
10
 
@@ -118,9 +124,32 @@ export const CellRichTextEditor: React.FC<CellRichTextEditorProps> = ({
118
124
  const inlineStylesRef = useRef<InlineStyles>(inlineStyles);
119
125
  const customStyleMapRef = useRef<CustomStyleMap>(customStyleMap);
120
126
 
127
+ const contentRef = useRef(initialEditorState.getCurrentContent());
128
+
129
+ // A typed-to-edit key is already a change, even before the user edits again.
130
+ useEffect(() => {
131
+ if (initialTypedKey) {
132
+ onChange(
133
+ editorStateToHTML(
134
+ initialEditorState,
135
+ inlineStylesRef.current,
136
+ EDITING_OPTIONS,
137
+ ),
138
+ );
139
+ }
140
+ // eslint-disable-next-line react-hooks/exhaustive-deps
141
+ }, []);
142
+
121
143
  const handleChange = useCallback(
122
144
  (newState: EditorState) => {
123
145
  setEditorState(newState);
146
+ // Draft.js also fires onChange for focus and selection changes. Only a
147
+ // content change is an edit — otherwise an untouched cell would save.
148
+ const content = newState.getCurrentContent();
149
+ if (content === contentRef.current) {
150
+ return;
151
+ }
152
+ contentRef.current = content;
124
153
  const html = editorStateToHTML(
125
154
  newState,
126
155
  inlineStylesRef.current,
@@ -6,6 +6,7 @@ import {
6
6
  DEFAULT_CELL_TEXT_STYLE,
7
7
  } from './cell-rich-text-editor';
8
8
  import type { RichTextStyleVariables } from './rich-text-input/rich-text-editor/text-style';
9
+ import { isEnterInEditableText } from '../../utils/keyboard';
9
10
 
10
11
  /** Fixed popover width matching the CMS rich text editor (popover-rich-text-editor.tsx). */
11
12
  const POPOVER_WIDTH = 582;
@@ -15,7 +16,7 @@ export interface CellRichTextInputProps {
15
16
  onChange: (value: string) => void;
16
17
  /** Typed key from type-to-edit — appended to existing plain-text content on mount. */
17
18
  initialTypedKey?: string;
18
- /** Called when the editor loses focus (click outside) or ESC is pressed. */
19
+ /** Called when the editor loses focus (click outside), or ESC or Enter is pressed. Shift+Enter adds a new line. */
19
20
  onCommit?: () => void;
20
21
  /** CSS custom properties for the --rt-* theming API. Defaults to standard sizes. */
21
22
  textStyle?: RichTextStyleVariables;
@@ -67,6 +68,13 @@ export const CellRichTextInput: React.FC<CellRichTextInputProps> = ({
67
68
  // stopPropagation() prevents the event from reaching any bubble-phase handler.
68
69
  useEffect(() => {
69
70
  const handleKeyDown = (e: KeyboardEvent) => {
71
+ if (isEnterInEditableText(e)) {
72
+ e.preventDefault();
73
+ e.stopPropagation();
74
+ cancelAnimationFrame(blurFrameIdRef.current);
75
+ onCommit?.();
76
+ return;
77
+ }
70
78
  if (e.key !== 'Escape') return;
71
79
  e.stopPropagation();
72
80
  if (isFullScreenRef.current) {
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../../../stylable-esm-runtime.
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "richeditor2908613696";
8
+ var _namespace_ = "richeditor2247151294";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,7 +13,7 @@ export var style: import("@stylable/runtime").STFunction = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"richeditor2908613696__root","editor":"richeditor2908613696__editor","header-one":"richeditor2908613696__header-one","header-two":"richeditor2908613696__header-two","header-three":"richeditor2908613696__header-three","header-four":"richeditor2908613696__header-four","header-five":"richeditor2908613696__header-five","header-six":"richeditor2908613696__header-six","paragraph-one":"richeditor2908613696__paragraph-one","unstyled":"richeditor2908613696__unstyled","paragraph-three":"richeditor2908613696__paragraph-three","align-left":"richeditor2908613696__align-left","align-right":"richeditor2908613696__align-right","align-center":"richeditor2908613696__align-center","align-justify":"richeditor2908613696__align-justify","withMargin":"richeditor2908613696__withMargin","dir-rtl":"richeditor2908613696__dir-rtl"};
16
+ export var classes = {"root":"richeditor2247151294__root","editor":"richeditor2247151294__editor","header-one":"richeditor2247151294__header-one","header-two":"richeditor2247151294__header-two","header-three":"richeditor2247151294__header-three","header-four":"richeditor2247151294__header-four","header-five":"richeditor2247151294__header-five","header-six":"richeditor2247151294__header-six","paragraph-one":"richeditor2247151294__paragraph-one","unstyled":"richeditor2247151294__unstyled","paragraph-three":"richeditor2247151294__paragraph-three","align-left":"richeditor2247151294__align-left","align-right":"richeditor2247151294__align-right","align-center":"richeditor2247151294__align-center","align-justify":"richeditor2247151294__align-justify","withMargin":"richeditor2247151294__withMargin","dir-rtl":"richeditor2247151294__dir-rtl"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../../../stylable-esm-runtime.
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "richtexteditor2134844132";
8
+ var _namespace_ = "richtexteditor3553443869";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,7 +13,7 @@ export var style: import("@stylable/runtime").STFunction = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"richtexteditor2134844132__root","nativeInput":"richtexteditor2134844132__nativeInput","editor":"richtexteditor2134844132__editor"};
16
+ export var classes = {"root":"richtexteditor3553443869__root","nativeInput":"richtexteditor3553443869__nativeInput","editor":"richtexteditor3553443869__editor"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../../../../stylable-esm-runti
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "toolbar998996411";
8
+ var _namespace_ = "toolbar1733204498";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,7 +13,7 @@ export var style: import("@stylable/runtime").STFunction = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"toolbar998996411__root","item":"toolbar998996411__item","separator":"toolbar998996411__separator","clearFormatting":"toolbar998996411__clearFormatting","fullScreen":"toolbar998996411__fullScreen","dropdownItemContent":"toolbar998996411__dropdownItemContent","dropdownItemTitle":"toolbar998996411__dropdownItemTitle","dropdownItemSubtitle":"toolbar998996411__dropdownItemSubtitle","dropdownHeaderOne":"toolbar998996411__dropdownHeaderOne","dropdownHeaderTwo":"toolbar998996411__dropdownHeaderTwo","dropdownHeaderThree":"toolbar998996411__dropdownHeaderThree","dropdownHeaderFour":"toolbar998996411__dropdownHeaderFour","dropdownHeaderFive":"toolbar998996411__dropdownHeaderFive","dropdownHeaderSix":"toolbar998996411__dropdownHeaderSix","dropdownParagraphOne":"toolbar998996411__dropdownParagraphOne","dropdownNormalText":"toolbar998996411__dropdownNormalText","dropdownParagraphThree":"toolbar998996411__dropdownParagraphThree"};
16
+ export var classes = {"root":"toolbar1733204498__root","item":"toolbar1733204498__item","separator":"toolbar1733204498__separator","clearFormatting":"toolbar1733204498__clearFormatting","fullScreen":"toolbar1733204498__fullScreen","dropdownItemContent":"toolbar1733204498__dropdownItemContent","dropdownItemTitle":"toolbar1733204498__dropdownItemTitle","dropdownItemSubtitle":"toolbar1733204498__dropdownItemSubtitle","dropdownHeaderOne":"toolbar1733204498__dropdownHeaderOne","dropdownHeaderTwo":"toolbar1733204498__dropdownHeaderTwo","dropdownHeaderThree":"toolbar1733204498__dropdownHeaderThree","dropdownHeaderFour":"toolbar1733204498__dropdownHeaderFour","dropdownHeaderFive":"toolbar1733204498__dropdownHeaderFive","dropdownHeaderSix":"toolbar1733204498__dropdownHeaderSix","dropdownParagraphOne":"toolbar1733204498__dropdownParagraphOne","dropdownNormalText":"toolbar1733204498__dropdownNormalText","dropdownParagraphThree":"toolbar1733204498__dropdownParagraphThree"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};
@@ -70,7 +70,7 @@ const _FormShortText = (props: FormShortTextProps) => {
70
70
  });
71
71
 
72
72
  const charCount = maxLength
73
- ? maxLength - controller.field.value?.length
73
+ ? maxLength - (controller.field.value?.length ?? 0)
74
74
  : undefined;
75
75
 
76
76
  return (
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
5
5
 
6
6
 
7
7
 
8
- var _namespace_ = "textview482867238";
8
+ var _namespace_ = "textview2550446214";
9
9
  var _style_ = classesRuntime.bind(null, _namespace_);
10
10
 
11
11
  export var cssStates = statesRuntime.bind(null, _namespace_);
@@ -13,7 +13,7 @@ export var style: import("@stylable/runtime").STFunction = _style_;
13
13
  export var st: import("@stylable/runtime").STFunction = _style_;
14
14
 
15
15
  export var namespace = _namespace_;
16
- export var classes = {"root":"textview482867238__root","textView":"textview482867238__textView"};
16
+ export var classes = {"root":"textview2550446214__root","textView":"textview2550446214__textView"};
17
17
  export var keyframes = {};
18
18
  export var layers = {};
19
19
  export var containers = {};