@wix/patterns-fields 1.116.0 → 1.118.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 (445) hide show
  1. package/dist/cjs/assets/locale/messages_ar.json +2 -0
  2. package/dist/cjs/assets/locale/messages_bg.json +2 -0
  3. package/dist/cjs/assets/locale/messages_ca.json +2 -0
  4. package/dist/cjs/assets/locale/messages_cs.json +2 -0
  5. package/dist/cjs/assets/locale/messages_da.json +2 -0
  6. package/dist/cjs/assets/locale/messages_de.json +2 -0
  7. package/dist/cjs/assets/locale/messages_el.json +2 -0
  8. package/dist/cjs/assets/locale/messages_en.json +2 -0
  9. package/dist/cjs/assets/locale/messages_es.json +2 -0
  10. package/dist/cjs/assets/locale/messages_fi.json +2 -0
  11. package/dist/cjs/assets/locale/messages_fr.json +2 -0
  12. package/dist/cjs/assets/locale/messages_he.json +2 -0
  13. package/dist/cjs/assets/locale/messages_hi.json +2 -0
  14. package/dist/cjs/assets/locale/messages_hu.json +2 -0
  15. package/dist/cjs/assets/locale/messages_id.json +2 -0
  16. package/dist/cjs/assets/locale/messages_it.json +2 -0
  17. package/dist/cjs/assets/locale/messages_ja.json +2 -0
  18. package/dist/cjs/assets/locale/messages_ko.json +2 -0
  19. package/dist/cjs/assets/locale/messages_lt.json +2 -0
  20. package/dist/cjs/assets/locale/messages_ms.json +2 -0
  21. package/dist/cjs/assets/locale/messages_nl.json +2 -0
  22. package/dist/cjs/assets/locale/messages_no.json +2 -0
  23. package/dist/cjs/assets/locale/messages_pl.json +2 -0
  24. package/dist/cjs/assets/locale/messages_pt.json +2 -0
  25. package/dist/cjs/assets/locale/messages_ro.json +2 -0
  26. package/dist/cjs/assets/locale/messages_ru.json +2 -0
  27. package/dist/cjs/assets/locale/messages_sk.json +2 -0
  28. package/dist/cjs/assets/locale/messages_sl.json +2 -0
  29. package/dist/cjs/assets/locale/messages_sv.json +2 -0
  30. package/dist/cjs/assets/locale/messages_th.json +2 -0
  31. package/dist/cjs/assets/locale/messages_tl.json +2 -0
  32. package/dist/cjs/assets/locale/messages_tr.json +2 -0
  33. package/dist/cjs/assets/locale/messages_uk.json +2 -0
  34. package/dist/cjs/assets/locale/messages_vi.json +2 -0
  35. package/dist/cjs/assets/locale/messages_zh.json +2 -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.st.css.js +4 -4
  42. package/dist/cjs/components/audio/audio-field/form-audio-field.st.css.js.map +1 -1
  43. package/dist/cjs/components/audio/audio-player/audio-player.st.css.js +2 -2
  44. package/dist/cjs/components/audio/audio-player/audio-player.st.css.js.map +1 -1
  45. package/dist/cjs/components/audio/cell-audio-edit.js +10 -11
  46. package/dist/cjs/components/audio/cell-audio-edit.js.map +1 -1
  47. package/dist/cjs/components/color-view/cell-color-view.st.css.js +3 -3
  48. package/dist/cjs/components/color-view/cell-color-view.st.css.js.map +1 -1
  49. package/dist/cjs/components/color-view/color-view.st.css.js +4 -4
  50. package/dist/cjs/components/color-view/color-view.st.css.js.map +1 -1
  51. package/dist/cjs/components/delete-dialog/delete-dialog.st.css.js +3 -3
  52. package/dist/cjs/components/delete-dialog/delete-dialog.st.css.js.map +1 -1
  53. package/dist/cjs/components/document/cell-document-edit.js +25 -26
  54. package/dist/cjs/components/document/cell-document-edit.js.map +1 -1
  55. package/dist/cjs/components/document/form-document-field.st.css.js +7 -7
  56. package/dist/cjs/components/document/form-document-field.st.css.js.map +1 -1
  57. package/dist/cjs/components/exclamation/exclamation.st.css.js +5 -5
  58. package/dist/cjs/components/exclamation/exclamation.st.css.js.map +1 -1
  59. package/dist/cjs/components/field-validation-settings/field-validation-settings-input.st.css.js +3 -3
  60. package/dist/cjs/components/field-validation-settings/field-validation-settings-input.st.css.js.map +1 -1
  61. package/dist/cjs/components/highlighted-text/highlighted-text.st.css.js +5 -5
  62. package/dist/cjs/components/highlighted-text/highlighted-text.st.css.js.map +1 -1
  63. package/dist/cjs/components/image/cell-image-edit.js +22 -23
  64. package/dist/cjs/components/image/cell-image-edit.js.map +1 -1
  65. package/dist/cjs/components/image/image-preview-popover.js +77 -0
  66. package/dist/cjs/components/image/image-preview-popover.js.map +1 -0
  67. package/dist/cjs/components/image/image-thumbnail.js +14 -12
  68. package/dist/cjs/components/image/image-thumbnail.js.map +1 -1
  69. package/dist/cjs/components/image/image-view.js +9 -57
  70. package/dist/cjs/components/image/image-view.js.map +1 -1
  71. package/dist/cjs/components/image/thumbnail-replace-overlay.st.css.js +3 -3
  72. package/dist/cjs/components/image/thumbnail-replace-overlay.st.css.js.map +1 -1
  73. package/dist/cjs/components/index.js +6 -0
  74. package/dist/cjs/components/index.js.map +1 -1
  75. package/dist/cjs/components/media-control/cell-media-edit-shell.js +19 -31
  76. package/dist/cjs/components/media-control/cell-media-edit-shell.js.map +1 -1
  77. package/dist/cjs/components/media-control/cell-media-edit-shell.st.css.js +2 -2
  78. package/dist/cjs/components/media-control/cell-media-edit-shell.st.css.js.map +1 -1
  79. package/dist/cjs/components/media-control/paste-url-button.st.css.js +4 -4
  80. package/dist/cjs/components/media-control/paste-url-button.st.css.js.map +1 -1
  81. package/dist/cjs/components/media-control/use-cell-media-edit.js +51 -23
  82. package/dist/cjs/components/media-control/use-cell-media-edit.js.map +1 -1
  83. package/dist/cjs/components/media-gallery/form-media-gallery-field.st.css.js +10 -10
  84. package/dist/cjs/components/media-gallery/form-media-gallery-field.st.css.js.map +1 -1
  85. package/dist/cjs/components/media-image/media-image.st.css.js +4 -4
  86. package/dist/cjs/components/media-image/media-image.st.css.js.map +1 -1
  87. package/dist/cjs/components/media-image/overlays/overlay.st.css.js +3 -3
  88. package/dist/cjs/components/media-image/overlays/overlay.st.css.js.map +1 -1
  89. package/dist/cjs/components/media-image-field/cell-media-image-edit.js +530 -0
  90. package/dist/cjs/components/media-image-field/cell-media-image-edit.js.map +1 -0
  91. package/dist/cjs/components/media-image-field/cell-media-image-edit.st.css +63 -0
  92. package/dist/cjs/components/media-image-field/cell-media-image-edit.st.css.js +33 -0
  93. package/dist/cjs/components/media-image-field/cell-media-image-edit.st.css.js.map +1 -0
  94. package/dist/cjs/components/media-image-field/form-media-image-field.js +180 -0
  95. package/dist/cjs/components/media-image-field/form-media-image-field.js.map +1 -0
  96. package/dist/cjs/components/media-image-field/form-media-image-field.uni.driver.js +34 -0
  97. package/dist/cjs/components/media-image-field/form-media-image-field.uni.driver.js.map +1 -0
  98. package/dist/cjs/components/media-image-field/form-media-image-input.js +64 -0
  99. package/dist/cjs/components/media-image-field/form-media-image-input.js.map +1 -0
  100. package/dist/cjs/components/media-image-field/index.js +28 -0
  101. package/dist/cjs/components/media-image-field/index.js.map +1 -0
  102. package/dist/cjs/components/media-image-field/media-image-view.js +114 -0
  103. package/dist/cjs/components/media-image-field/media-image-view.js.map +1 -0
  104. package/dist/cjs/components/media-image-field/media-image-view.st.css +16 -0
  105. package/dist/cjs/components/media-image-field/media-image-view.st.css.js +27 -0
  106. package/dist/cjs/components/media-image-field/media-image-view.st.css.js.map +1 -0
  107. package/dist/cjs/components/media-image-field/media-image-view.uni.driver.js +18 -0
  108. package/dist/cjs/components/media-image-field/media-image-view.uni.driver.js.map +1 -0
  109. package/dist/cjs/components/media-tag/web-media-tag/media-tag.st.css.js +2 -2
  110. package/dist/cjs/components/media-tag/web-media-tag/media-tag.st.css.js.map +1 -1
  111. package/dist/cjs/components/multi-document/cell-multi-document-edit.st.css.js +3 -3
  112. package/dist/cjs/components/multi-document/cell-multi-document-edit.st.css.js.map +1 -1
  113. package/dist/cjs/components/multi-document/multi-document-input/form-multi-document.st.css.js +5 -5
  114. package/dist/cjs/components/multi-document/multi-document-input/form-multi-document.st.css.js.map +1 -1
  115. package/dist/cjs/components/reference/cell-multi-reference-input.st.css.js +2 -2
  116. package/dist/cjs/components/reference/cell-multi-reference-input.st.css.js.map +1 -1
  117. package/dist/cjs/components/reference/cell-reference-input.st.css.js +3 -3
  118. package/dist/cjs/components/reference/cell-reference-input.st.css.js.map +1 -1
  119. package/dist/cjs/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.js +4 -4
  120. package/dist/cjs/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.js.map +1 -1
  121. package/dist/cjs/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js +3 -3
  122. package/dist/cjs/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js.map +1 -1
  123. package/dist/cjs/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.js +2 -2
  124. 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
  125. package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js +3 -3
  126. package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js.map +1 -1
  127. package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js +3 -3
  128. package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js.map +1 -1
  129. package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js +2 -2
  130. package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js.map +1 -1
  131. package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js +7 -7
  132. package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js.map +1 -1
  133. package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js +5 -5
  134. package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js.map +1 -1
  135. package/dist/cjs/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js +4 -4
  136. package/dist/cjs/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js.map +1 -1
  137. package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js +18 -18
  138. package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js.map +1 -1
  139. package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js +4 -4
  140. package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js.map +1 -1
  141. package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js +18 -18
  142. package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js.map +1 -1
  143. package/dist/cjs/components/text/text-view.st.css.js +3 -3
  144. package/dist/cjs/components/text/text-view.st.css.js.map +1 -1
  145. package/dist/cjs/services/translations.js.map +1 -1
  146. package/dist/cjs/styles.global.css +1 -1
  147. package/dist/cjs/types/index.js +6 -0
  148. package/dist/cjs/types/index.js.map +1 -1
  149. package/dist/cjs/types/media-image.js +4 -0
  150. package/dist/cjs/types/media-image.js.map +1 -0
  151. package/dist/cjs/utils/index.js +6 -0
  152. package/dist/cjs/utils/index.js.map +1 -1
  153. package/dist/cjs/utils/media-image-value.js +95 -0
  154. package/dist/cjs/utils/media-image-value.js.map +1 -0
  155. package/dist/esm/assets/locale/messages_ar.json +2 -0
  156. package/dist/esm/assets/locale/messages_bg.json +2 -0
  157. package/dist/esm/assets/locale/messages_ca.json +2 -0
  158. package/dist/esm/assets/locale/messages_cs.json +2 -0
  159. package/dist/esm/assets/locale/messages_da.json +2 -0
  160. package/dist/esm/assets/locale/messages_de.json +2 -0
  161. package/dist/esm/assets/locale/messages_el.json +2 -0
  162. package/dist/esm/assets/locale/messages_en.json +2 -0
  163. package/dist/esm/assets/locale/messages_es.json +2 -0
  164. package/dist/esm/assets/locale/messages_fi.json +2 -0
  165. package/dist/esm/assets/locale/messages_fr.json +2 -0
  166. package/dist/esm/assets/locale/messages_he.json +2 -0
  167. package/dist/esm/assets/locale/messages_hi.json +2 -0
  168. package/dist/esm/assets/locale/messages_hu.json +2 -0
  169. package/dist/esm/assets/locale/messages_id.json +2 -0
  170. package/dist/esm/assets/locale/messages_it.json +2 -0
  171. package/dist/esm/assets/locale/messages_ja.json +2 -0
  172. package/dist/esm/assets/locale/messages_ko.json +2 -0
  173. package/dist/esm/assets/locale/messages_lt.json +2 -0
  174. package/dist/esm/assets/locale/messages_ms.json +2 -0
  175. package/dist/esm/assets/locale/messages_nl.json +2 -0
  176. package/dist/esm/assets/locale/messages_no.json +2 -0
  177. package/dist/esm/assets/locale/messages_pl.json +2 -0
  178. package/dist/esm/assets/locale/messages_pt.json +2 -0
  179. package/dist/esm/assets/locale/messages_ro.json +2 -0
  180. package/dist/esm/assets/locale/messages_ru.json +2 -0
  181. package/dist/esm/assets/locale/messages_sk.json +2 -0
  182. package/dist/esm/assets/locale/messages_sl.json +2 -0
  183. package/dist/esm/assets/locale/messages_sv.json +2 -0
  184. package/dist/esm/assets/locale/messages_th.json +2 -0
  185. package/dist/esm/assets/locale/messages_tl.json +2 -0
  186. package/dist/esm/assets/locale/messages_tr.json +2 -0
  187. package/dist/esm/assets/locale/messages_uk.json +2 -0
  188. package/dist/esm/assets/locale/messages_vi.json +2 -0
  189. package/dist/esm/assets/locale/messages_zh.json +2 -0
  190. package/dist/esm/assets/locale/version_file +1 -1
  191. package/dist/esm/components/address/input/address-input.st.css.js +2 -2
  192. package/dist/esm/components/address/input/address-input.st.css.js.map +1 -1
  193. package/dist/esm/components/audio/actions/actions-menu/actions-menu.st.css.js +2 -2
  194. package/dist/esm/components/audio/actions/actions-menu/actions-menu.st.css.js.map +1 -1
  195. package/dist/esm/components/audio/audio-field/form-audio-field.st.css.js +2 -2
  196. package/dist/esm/components/audio/audio-field/form-audio-field.st.css.js.map +1 -1
  197. package/dist/esm/components/audio/audio-player/audio-player.st.css.js +2 -2
  198. package/dist/esm/components/audio/audio-player/audio-player.st.css.js.map +1 -1
  199. package/dist/esm/components/audio/cell-audio-edit.js +1 -1
  200. package/dist/esm/components/audio/cell-audio-edit.js.map +1 -1
  201. package/dist/esm/components/color-view/cell-color-view.st.css.js +2 -2
  202. package/dist/esm/components/color-view/cell-color-view.st.css.js.map +1 -1
  203. package/dist/esm/components/color-view/color-view.st.css.js +2 -2
  204. package/dist/esm/components/delete-dialog/delete-dialog.st.css.js +2 -2
  205. package/dist/esm/components/document/cell-document-edit.js +1 -1
  206. package/dist/esm/components/document/cell-document-edit.js.map +1 -1
  207. package/dist/esm/components/document/form-document-field.st.css.js +2 -2
  208. package/dist/esm/components/document/form-document-field.st.css.js.map +1 -1
  209. package/dist/esm/components/exclamation/exclamation.st.css.js +2 -2
  210. package/dist/esm/components/field-validation-settings/field-validation-settings-input.st.css.js +2 -2
  211. package/dist/esm/components/highlighted-text/highlighted-text.st.css.js +3 -3
  212. package/dist/esm/components/image/cell-image-edit.js +1 -1
  213. package/dist/esm/components/image/cell-image-edit.js.map +1 -1
  214. package/dist/esm/components/image/image-preview-popover.js +16 -0
  215. package/dist/esm/components/image/image-preview-popover.js.map +1 -0
  216. package/dist/esm/components/image/image-thumbnail.js +5 -6
  217. package/dist/esm/components/image/image-thumbnail.js.map +1 -1
  218. package/dist/esm/components/image/image-view.js +4 -13
  219. package/dist/esm/components/image/image-view.js.map +1 -1
  220. package/dist/esm/components/image/thumbnail-replace-overlay.st.css.js +2 -2
  221. package/dist/esm/components/index.js +1 -0
  222. package/dist/esm/components/index.js.map +1 -1
  223. package/dist/esm/components/media-control/cell-media-edit-shell.js +5 -7
  224. package/dist/esm/components/media-control/cell-media-edit-shell.js.map +1 -1
  225. package/dist/esm/components/media-control/cell-media-edit-shell.st.css.js +2 -2
  226. package/dist/esm/components/media-control/paste-url-button.st.css.js +2 -2
  227. package/dist/esm/components/media-control/use-cell-media-edit.js +48 -30
  228. package/dist/esm/components/media-control/use-cell-media-edit.js.map +1 -1
  229. package/dist/esm/components/media-gallery/form-media-gallery-field.st.css.js +2 -2
  230. package/dist/esm/components/media-gallery/form-media-gallery-field.st.css.js.map +1 -1
  231. package/dist/esm/components/media-image/media-image.st.css.js +3 -3
  232. package/dist/esm/components/media-image/media-image.st.css.js.map +1 -1
  233. package/dist/esm/components/media-image/overlays/overlay.st.css.js +2 -2
  234. package/dist/esm/components/media-image/overlays/overlay.st.css.js.map +1 -1
  235. package/dist/esm/components/media-image-field/cell-media-image-edit.js +159 -0
  236. package/dist/esm/components/media-image-field/cell-media-image-edit.js.map +1 -0
  237. package/dist/esm/components/media-image-field/cell-media-image-edit.st.css +63 -0
  238. package/dist/esm/components/media-image-field/cell-media-image-edit.st.css.js +15 -0
  239. package/dist/esm/components/media-image-field/cell-media-image-edit.st.css.js.map +1 -0
  240. package/dist/esm/components/media-image-field/form-media-image-field.js +59 -0
  241. package/dist/esm/components/media-image-field/form-media-image-field.js.map +1 -0
  242. package/dist/esm/components/media-image-field/form-media-image-field.uni.driver.js +27 -0
  243. package/dist/esm/components/media-image-field/form-media-image-field.uni.driver.js.map +1 -0
  244. package/dist/esm/components/media-image-field/form-media-image-input.js +40 -0
  245. package/dist/esm/components/media-image-field/form-media-image-input.js.map +1 -0
  246. package/dist/esm/components/media-image-field/index.js +5 -0
  247. package/dist/esm/components/media-image-field/index.js.map +1 -0
  248. package/dist/esm/components/media-image-field/media-image-view.js +34 -0
  249. package/dist/esm/components/media-image-field/media-image-view.js.map +1 -0
  250. package/dist/esm/components/media-image-field/media-image-view.st.css +16 -0
  251. package/dist/esm/components/media-image-field/media-image-view.st.css.js +15 -0
  252. package/dist/esm/components/media-image-field/media-image-view.st.css.js.map +1 -0
  253. package/dist/esm/components/media-image-field/media-image-view.uni.driver.js +14 -0
  254. package/dist/esm/components/media-image-field/media-image-view.uni.driver.js.map +1 -0
  255. package/dist/esm/components/media-tag/web-media-tag/media-tag.st.css.js +2 -2
  256. package/dist/esm/components/media-tag/web-media-tag/media-tag.st.css.js.map +1 -1
  257. package/dist/esm/components/multi-document/cell-multi-document-edit.st.css.js +2 -2
  258. package/dist/esm/components/multi-document/multi-document-input/form-multi-document.st.css.js +2 -2
  259. package/dist/esm/components/multi-document/multi-document-input/form-multi-document.st.css.js.map +1 -1
  260. package/dist/esm/components/reference/cell-multi-reference-input.st.css.js +2 -2
  261. package/dist/esm/components/reference/cell-reference-input.st.css.js +2 -2
  262. package/dist/esm/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.js +2 -2
  263. package/dist/esm/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js +2 -2
  264. package/dist/esm/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js.map +1 -1
  265. package/dist/esm/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.js +2 -2
  266. 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
  267. package/dist/esm/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js +2 -2
  268. package/dist/esm/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js +2 -2
  269. package/dist/esm/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js +2 -2
  270. package/dist/esm/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js +2 -2
  271. package/dist/esm/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js +2 -2
  272. package/dist/esm/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js +2 -2
  273. package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js +2 -2
  274. package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js +2 -2
  275. package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js.map +1 -1
  276. package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js +2 -2
  277. package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js.map +1 -1
  278. package/dist/esm/components/text/text-view.st.css.js +2 -2
  279. package/dist/esm/styles.global.css +1 -1
  280. package/dist/esm/types/index.js +1 -0
  281. package/dist/esm/types/index.js.map +1 -1
  282. package/dist/esm/types/media-image.js +2 -0
  283. package/dist/esm/types/media-image.js.map +1 -0
  284. package/dist/esm/utils/index.js +1 -0
  285. package/dist/esm/utils/index.js.map +1 -1
  286. package/dist/esm/utils/media-image-value.js +65 -0
  287. package/dist/esm/utils/media-image-value.js.map +1 -0
  288. package/dist/types/components/address/input/address-input.st.css.d.ts.map +1 -1
  289. package/dist/types/components/audio/actions/actions-menu/actions-menu.st.css.d.ts.map +1 -1
  290. package/dist/types/components/audio/audio-field/form-audio-field.st.css.d.ts.map +1 -1
  291. package/dist/types/components/audio/audio-player/audio-player.st.css.d.ts.map +1 -1
  292. package/dist/types/components/audio/cell-audio-edit.d.ts.map +1 -1
  293. package/dist/types/components/color-view/cell-color-view.st.css.d.ts.map +1 -1
  294. package/dist/types/components/document/cell-document-edit.d.ts.map +1 -1
  295. package/dist/types/components/document/form-document-field.st.css.d.ts.map +1 -1
  296. package/dist/types/components/image/cell-image-edit.d.ts.map +1 -1
  297. package/dist/types/components/image/image-preview-popover.d.ts +10 -0
  298. package/dist/types/components/image/image-preview-popover.d.ts.map +1 -0
  299. package/dist/types/components/image/image-thumbnail.d.ts +3 -0
  300. package/dist/types/components/image/image-thumbnail.d.ts.map +1 -1
  301. package/dist/types/components/image/image-view.d.ts.map +1 -1
  302. package/dist/types/components/index.d.ts +1 -0
  303. package/dist/types/components/index.d.ts.map +1 -1
  304. package/dist/types/components/media-control/cell-media-edit-shell.d.ts +1 -2
  305. package/dist/types/components/media-control/cell-media-edit-shell.d.ts.map +1 -1
  306. package/dist/types/components/media-control/use-cell-media-edit.d.ts +20 -4
  307. package/dist/types/components/media-control/use-cell-media-edit.d.ts.map +1 -1
  308. package/dist/types/components/media-gallery/form-media-gallery-field.st.css.d.ts.map +1 -1
  309. package/dist/types/components/media-image/media-image.st.css.d.ts.map +1 -1
  310. package/dist/types/components/media-image/overlays/overlay.st.css.d.ts.map +1 -1
  311. package/dist/types/components/media-image-field/cell-media-image-edit.d.ts +26 -0
  312. package/dist/types/components/media-image-field/cell-media-image-edit.d.ts.map +1 -0
  313. package/dist/types/components/media-image-field/cell-media-image-edit.st.css.d.ts +24 -0
  314. package/dist/types/components/media-image-field/cell-media-image-edit.st.css.d.ts.map +1 -0
  315. package/dist/types/components/media-image-field/form-media-image-field.d.ts +32 -0
  316. package/dist/types/components/media-image-field/form-media-image-field.d.ts.map +1 -0
  317. package/dist/types/components/media-image-field/form-media-image-field.uni.driver.d.ts +22 -0
  318. package/dist/types/components/media-image-field/form-media-image-field.uni.driver.d.ts.map +1 -0
  319. package/dist/types/components/media-image-field/form-media-image-input.d.ts +9 -0
  320. package/dist/types/components/media-image-field/form-media-image-input.d.ts.map +1 -0
  321. package/dist/types/components/media-image-field/index.d.ts +5 -0
  322. package/dist/types/components/media-image-field/index.d.ts.map +1 -0
  323. package/dist/types/components/media-image-field/media-image-view.d.ts +13 -0
  324. package/dist/types/components/media-image-field/media-image-view.d.ts.map +1 -0
  325. package/dist/types/components/media-image-field/media-image-view.st.css.d.ts +18 -0
  326. package/dist/types/components/media-image-field/media-image-view.st.css.d.ts.map +1 -0
  327. package/dist/types/components/media-image-field/media-image-view.uni.driver.d.ts +12 -0
  328. package/dist/types/components/media-image-field/media-image-view.uni.driver.d.ts.map +1 -0
  329. package/dist/types/components/media-tag/web-media-tag/media-tag.st.css.d.ts.map +1 -1
  330. package/dist/types/components/multi-document/multi-document-input/form-multi-document.st.css.d.ts.map +1 -1
  331. package/dist/types/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.d.ts.map +1 -1
  332. 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
  333. package/dist/types/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.d.ts.map +1 -1
  334. package/dist/types/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.d.ts.map +1 -1
  335. package/dist/types/services/translations.d.ts +1 -1
  336. package/dist/types/services/translations.d.ts.map +1 -1
  337. package/dist/types/types/index.d.ts +1 -0
  338. package/dist/types/types/index.d.ts.map +1 -1
  339. package/dist/types/types/media-image.d.ts +23 -0
  340. package/dist/types/types/media-image.d.ts.map +1 -0
  341. package/dist/types/utils/index.d.ts +1 -0
  342. package/dist/types/utils/index.d.ts.map +1 -1
  343. package/dist/types/utils/media-image-value.d.ts +31 -0
  344. package/dist/types/utils/media-image-value.d.ts.map +1 -0
  345. package/package.json +5 -5
  346. package/src/__tests__/components/media-image-field/form-media-image-input.spec.tsx +130 -0
  347. package/src/__tests__/components/media-image-field/media-image-view.spec.tsx +51 -0
  348. package/src/__tests__/utils/media-image-value.spec.ts +153 -0
  349. package/src/assets/locale/messages_ar.json +2 -0
  350. package/src/assets/locale/messages_bg.json +2 -0
  351. package/src/assets/locale/messages_ca.json +2 -0
  352. package/src/assets/locale/messages_cs.json +2 -0
  353. package/src/assets/locale/messages_da.json +2 -0
  354. package/src/assets/locale/messages_de.json +2 -0
  355. package/src/assets/locale/messages_el.json +2 -0
  356. package/src/assets/locale/messages_en.json +2 -0
  357. package/src/assets/locale/messages_es.json +2 -0
  358. package/src/assets/locale/messages_fi.json +2 -0
  359. package/src/assets/locale/messages_fr.json +2 -0
  360. package/src/assets/locale/messages_he.json +2 -0
  361. package/src/assets/locale/messages_hi.json +2 -0
  362. package/src/assets/locale/messages_hu.json +2 -0
  363. package/src/assets/locale/messages_id.json +2 -0
  364. package/src/assets/locale/messages_it.json +2 -0
  365. package/src/assets/locale/messages_ja.json +2 -0
  366. package/src/assets/locale/messages_ko.json +2 -0
  367. package/src/assets/locale/messages_lt.json +2 -0
  368. package/src/assets/locale/messages_ms.json +2 -0
  369. package/src/assets/locale/messages_nl.json +2 -0
  370. package/src/assets/locale/messages_no.json +2 -0
  371. package/src/assets/locale/messages_pl.json +2 -0
  372. package/src/assets/locale/messages_pt.json +2 -0
  373. package/src/assets/locale/messages_ro.json +2 -0
  374. package/src/assets/locale/messages_ru.json +2 -0
  375. package/src/assets/locale/messages_sk.json +2 -0
  376. package/src/assets/locale/messages_sl.json +2 -0
  377. package/src/assets/locale/messages_sv.json +2 -0
  378. package/src/assets/locale/messages_th.json +2 -0
  379. package/src/assets/locale/messages_tl.json +2 -0
  380. package/src/assets/locale/messages_tr.json +2 -0
  381. package/src/assets/locale/messages_uk.json +2 -0
  382. package/src/assets/locale/messages_vi.json +2 -0
  383. package/src/assets/locale/messages_zh.json +2 -0
  384. package/src/assets/locale/version_file +1 -1
  385. package/src/components/address/input/address-input.st.css.ts +2 -2
  386. package/src/components/audio/actions/actions-menu/actions-menu.st.css.ts +2 -2
  387. package/src/components/audio/audio-field/form-audio-field.st.css.ts +2 -2
  388. package/src/components/audio/audio-player/audio-player.st.css.ts +2 -2
  389. package/src/components/audio/cell-audio-edit.tsx +0 -1
  390. package/src/components/color-view/cell-color-view.st.css.ts +2 -2
  391. package/src/components/color-view/color-view.st.css.ts +2 -2
  392. package/src/components/delete-dialog/delete-dialog.st.css.ts +2 -2
  393. package/src/components/document/cell-document-edit.tsx +0 -1
  394. package/src/components/document/form-document-field.st.css.ts +2 -2
  395. package/src/components/exclamation/exclamation.st.css.ts +2 -2
  396. package/src/components/field-validation-settings/field-validation-settings-input.st.css.ts +2 -2
  397. package/src/components/highlighted-text/highlighted-text.st.css.ts +3 -3
  398. package/src/components/image/cell-image-edit.tsx +0 -1
  399. package/src/components/image/image-preview-popover.tsx +52 -0
  400. package/src/components/image/image-thumbnail.tsx +12 -7
  401. package/src/components/image/image-view.tsx +16 -42
  402. package/src/components/image/thumbnail-replace-overlay.st.css.ts +2 -2
  403. package/src/components/index.ts +1 -0
  404. package/src/components/media-control/cell-media-edit-shell.st.css.ts +2 -2
  405. package/src/components/media-control/cell-media-edit-shell.tsx +7 -20
  406. package/src/components/media-control/paste-url-button.st.css.ts +2 -2
  407. package/src/components/media-control/use-cell-media-edit.ts +98 -28
  408. package/src/components/media-gallery/form-media-gallery-field.st.css.ts +2 -2
  409. package/src/components/media-image/media-image.st.css.ts +3 -3
  410. package/src/components/media-image/overlays/overlay.st.css.ts +2 -2
  411. package/src/components/media-image-field/cell-media-image-edit.st.css +63 -0
  412. package/src/components/media-image-field/cell-media-image-edit.st.css.ts +25 -0
  413. package/src/components/media-image-field/cell-media-image-edit.tsx +402 -0
  414. package/src/components/media-image-field/form-media-image-field.tsx +165 -0
  415. package/src/components/media-image-field/form-media-image-field.uni.driver.ts +42 -0
  416. package/src/components/media-image-field/form-media-image-input.tsx +56 -0
  417. package/src/components/media-image-field/index.ts +4 -0
  418. package/src/components/media-image-field/media-image-view.st.css +16 -0
  419. package/src/components/media-image-field/media-image-view.st.css.ts +25 -0
  420. package/src/components/media-image-field/media-image-view.tsx +95 -0
  421. package/src/components/media-image-field/media-image-view.uni.driver.ts +18 -0
  422. package/src/components/media-tag/web-media-tag/media-tag.st.css.ts +2 -2
  423. package/src/components/multi-document/cell-multi-document-edit.st.css.ts +2 -2
  424. package/src/components/multi-document/multi-document-input/form-multi-document.st.css.ts +2 -2
  425. package/src/components/reference/cell-multi-reference-input.st.css.ts +2 -2
  426. package/src/components/reference/cell-reference-input.st.css.ts +2 -2
  427. package/src/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.ts +2 -2
  428. package/src/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.ts +2 -2
  429. package/src/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.ts +2 -2
  430. package/src/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.ts +2 -2
  431. package/src/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.ts +2 -2
  432. package/src/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.ts +2 -2
  433. package/src/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.ts +2 -2
  434. package/src/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.ts +2 -2
  435. package/src/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.ts +2 -2
  436. package/src/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.ts +2 -2
  437. package/src/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.ts +2 -2
  438. package/src/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.ts +2 -2
  439. package/src/components/text/text-view.st.css.ts +2 -2
  440. package/src/services/translations.ts +2 -0
  441. package/src/styles.global.css +1 -1
  442. package/src/types/index.ts +1 -0
  443. package/src/types/media-image.ts +24 -0
  444. package/src/utils/index.ts +1 -0
  445. package/src/utils/media-image-value.ts +99 -0
@@ -1,12 +1,12 @@
1
1
  // @ts-nocheck
2
2
  import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
3
- var _namespace_ = "cellmediaeditshell3194598000";
3
+ var _namespace_ = "cellmediaeditshell2558708225";
4
4
  var _style_ = classesRuntime.bind(null, _namespace_);
5
5
  export var cssStates = statesRuntime.bind(null, _namespace_);
6
6
  export var style = _style_;
7
7
  export var st = _style_;
8
8
  export var namespace = _namespace_;
9
- export var classes = { "root": "cellmediaeditshell3194598000__root" };
9
+ export var classes = { "root": "cellmediaeditshell2558708225__root" };
10
10
  export var keyframes = {};
11
11
  export var layers = {};
12
12
  export var containers = {};
@@ -1,12 +1,12 @@
1
1
  // @ts-nocheck
2
2
  import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
3
- var _namespace_ = "pasteurlbutton2330833856";
3
+ var _namespace_ = "pasteurlbutton3407064295";
4
4
  var _style_ = classesRuntime.bind(null, _namespace_);
5
5
  export var cssStates = statesRuntime.bind(null, _namespace_);
6
6
  export var style = _style_;
7
7
  export var st = _style_;
8
8
  export var namespace = _namespace_;
9
- export var classes = { "root": "pasteurlbutton2330833856__root", "iconButtonTooltip": "pasteurlbutton2330833856__iconButtonTooltip", "iconButton": "pasteurlbutton2330833856__iconButton" };
9
+ export var classes = { "root": "pasteurlbutton3407064295__root", "iconButtonTooltip": "pasteurlbutton3407064295__iconButtonTooltip", "iconButton": "pasteurlbutton3407064295__iconButton" };
10
10
  export var keyframes = {};
11
11
  export var layers = {};
12
12
  export var containers = {};
@@ -1,42 +1,54 @@
1
1
  import { useCallback, useRef } from 'react';
2
2
  import { useCellEditKeyboard } from '../../hooks';
3
3
  import { useMediaControl } from './use-media-control';
4
- import { useMediaHandlers } from './use-media-handlers';
5
4
  import { usePasteURLForm } from './use-paste-url-form';
6
- /**
7
- * Shared state + handlers for single-value media cell edit components
8
- * (image / document / audio / video / …). Each consumer renders its own
9
- * primary/secondary content; this hook owns the wiring to useMediaControl,
10
- * usePasteURLForm, useCellEditKeyboard, and the standard onCommit/onCancel
11
- * dance.
12
- */
13
- export function useCellMediaEdit({ mediaType, value, onChange, onCommit, onCancel, onStartEdit, inputRef, }) {
5
+ const sameUri = (uri) => uri;
6
+ export function useCellMediaEdit({ mediaType, value, onChange, onCommit, onCancel, onStartEdit, inputRef, fromPick = sameUri, fromUrl = sameUri, commitOnPick = true, }) {
14
7
  const containerRef = useRef(null);
15
- const onMediaChange = useCallback((uri) => {
16
- onChange(uri);
17
- onCommit();
18
- }, [onChange, onCommit]);
8
+ // The media manager and the URL form call back after they close, so they
9
+ // read the value from here rather than from the render that opened them.
10
+ const latestValue = useRef(value);
11
+ latestValue.current = value;
12
+ const applied = useRef(false);
13
+ const apply = useCallback((next) => {
14
+ applied.current = true;
15
+ // The URL form closes right after it saves, before the next render.
16
+ latestValue.current = next;
17
+ onChange(next);
18
+ if (commitOnPick) {
19
+ onCommit();
20
+ }
21
+ }, [onChange, onCommit, commitOnPick]);
22
+ const onPick = useCallback((uri) => {
23
+ const next = fromPick(uri, latestValue.current);
24
+ if (next !== null) {
25
+ apply(next);
26
+ }
27
+ }, [fromPick, apply]);
28
+ const onUrlSave = useCallback((url) => apply(fromUrl(url, latestValue.current)), [fromUrl, apply]);
19
29
  const { callMedia, downloadMedia, loading } = useMediaControl({
20
30
  mediaType,
21
- value: value ?? undefined,
22
- onChange: onMediaChange,
23
- });
24
- const { handleReplace: handleCallMedia, handleDelete } = useMediaHandlers({
25
- value,
26
- callMedia,
27
- downloadMedia,
28
- onChange,
29
- onCommit,
30
- onStartEdit,
31
- onCancel,
32
- });
33
- const { isOpen, title, onOpen, onClose, onSave } = usePasteURLForm({
34
- onChange: onMediaChange,
31
+ onChange: onPick,
35
32
  });
33
+ const handleCallMedia = useCallback(async () => {
34
+ onStartEdit?.();
35
+ applied.current = false;
36
+ await callMedia();
37
+ if (!applied.current && (commitOnPick || latestValue.current === null)) {
38
+ onCancel?.();
39
+ }
40
+ }, [onStartEdit, callMedia, commitOnPick, onCancel]);
41
+ const handleDelete = useCallback(() => {
42
+ onChange(null);
43
+ onCommit();
44
+ }, [onChange, onCommit]);
45
+ const { isOpen, title, value: pasteUrlValue, onOpen, onClose, onSave, } = usePasteURLForm({ onChange: onUrlSave });
36
46
  const handleFormClose = useCallback(() => {
37
47
  onClose();
38
- onCancel?.();
39
- }, [onClose, onCancel]);
48
+ if (commitOnPick || latestValue.current === null) {
49
+ onCancel?.();
50
+ }
51
+ }, [onClose, commitOnPick, onCancel]);
40
52
  const startEditAndOpenPasteUrl = useCallback((params) => () => {
41
53
  onStartEdit?.();
42
54
  onOpen(params)();
@@ -54,7 +66,13 @@ export function useCellMediaEdit({ mediaType, value, onChange, onCommit, onCance
54
66
  handleCallMedia,
55
67
  handleDelete,
56
68
  startEditAndOpenPasteUrl,
57
- pasteUrlForm: { isOpen, title, onSave, handleClose: handleFormClose },
69
+ pasteUrlForm: {
70
+ isOpen,
71
+ title,
72
+ value: pasteUrlValue,
73
+ onSave,
74
+ handleClose: handleFormClose,
75
+ },
58
76
  handleContainerFocus,
59
77
  handleContainerBlur,
60
78
  };
@@ -1 +1 @@
1
- {"version":3,"file":"use-cell-media-edit.js","sourceRoot":"","sources":["../../../../src/components/media-control/use-cell-media-edit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAI5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AA6CvD;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAAC,EAC/B,SAAS,EACT,KAAK,EACL,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,WAAW,EACX,QAAQ,GACe;IACvB,MAAM,YAAY,GAAG,MAAM,CAAwB,IAAI,CAAC,CAAC;IAEzD,MAAM,aAAa,GAAG,WAAW,CAC/B,CAAC,GAAW,EAAE,EAAE;QACd,QAAQ,CAAC,GAAG,CAAC,CAAC;QACd,QAAQ,EAAE,CAAC;IACb,CAAC,EACD,CAAC,QAAQ,EAAE,QAAQ,CAAC,CACrB,CAAC;IAEF,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,eAAe,CAAC;QAC5D,SAAS;QACT,KAAK,EAAE,KAAK,IAAI,SAAS;QACzB,QAAQ,EAAE,aAAa;KACxB,CAAC,CAAC;IAEH,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,YAAY,EAAE,GAAG,gBAAgB,CAAC;QACxE,KAAK;QACL,SAAS;QACT,aAAa;QACb,QAAQ;QACR,QAAQ;QACR,WAAW;QACX,QAAQ;KACT,CAAC,CAAC;IAEH,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,eAAe,CAAC;QACjE,QAAQ,EAAE,aAAa;KACxB,CAAC,CAAC;IAEH,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;QACvC,OAAO,EAAE,CAAC;QACV,QAAQ,EAAE,EAAE,CAAC;IACf,CAAC,EAAE,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC,CAAC;IAExB,MAAM,wBAAwB,GAAG,WAAW,CAC1C,CAAC,MAAyC,EAAE,EAAE,CAAC,GAAG,EAAE;QAClD,WAAW,EAAE,EAAE,CAAC;QAChB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;IACnB,CAAC,EACD,CAAC,WAAW,EAAE,MAAM,CAAC,CACtB,CAAC;IAEF,MAAM,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,GAAG,mBAAmB,CAAC;QACxE,YAAY;QACZ,QAAQ;QACR,QAAQ;KACT,CAAC,CAAC;IAEH,OAAO;QACL,YAAY;QACZ,OAAO;QACP,SAAS;QACT,aAAa;QACb,eAAe;QACf,YAAY;QACZ,wBAAwB;QACxB,YAAY,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,eAAe,EAAE;QACrE,oBAAoB;QACpB,mBAAmB;KACpB,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"use-cell-media-edit.js","sourceRoot":"","sources":["../../../../src/components/media-control/use-cell-media-edit.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
1
  // @ts-nocheck
2
2
  import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
3
- var _namespace_ = "formmediagalleryfield478233914";
3
+ var _namespace_ = "formmediagalleryfield2708325978";
4
4
  var _style_ = classesRuntime.bind(null, _namespace_);
5
5
  export var cssStates = statesRuntime.bind(null, _namespace_);
6
6
  export var style = _style_;
7
7
  export var st = _style_;
8
8
  export var namespace = _namespace_;
9
- export var classes = { "root": "formmediagalleryfield478233914__root", "container": "formmediagalleryfield478233914__container", "viewBox": "formmediagalleryfield478233914__viewBox", "addItemWrapper": "formmediagalleryfield478233914__addItemWrapper", "addItem": "formmediagalleryfield478233914__addItem", "overlay": "formmediagalleryfield478233914__overlay", "image": "formmediagalleryfield478233914__image", "previewImage": "formmediagalleryfield478233914__previewImage", "previewVideo": "formmediagalleryfield478233914__previewVideo" };
9
+ export var classes = { "root": "formmediagalleryfield2708325978__root", "container": "formmediagalleryfield2708325978__container", "viewBox": "formmediagalleryfield2708325978__viewBox", "addItemWrapper": "formmediagalleryfield2708325978__addItemWrapper", "addItem": "formmediagalleryfield2708325978__addItem", "overlay": "formmediagalleryfield2708325978__overlay", "image": "formmediagalleryfield2708325978__image", "previewImage": "formmediagalleryfield2708325978__previewImage", "previewVideo": "formmediagalleryfield2708325978__previewVideo" };
10
10
  export var keyframes = {};
11
11
  export var layers = {};
12
12
  export var containers = {};
@@ -1 +1 @@
1
- {"version":3,"file":"form-media-gallery-field.st.css.js","sourceRoot":"","sources":["../../../../src/components/media-gallery/form-media-gallery-field.st.css.ts"],"names":[],"mappings":"AAAA,cAAc;AAGd,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAI9E,IAAI,WAAW,GAAG,gCAAgC,CAAC;AACnD,IAAI,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAErD,MAAM,CAAC,IAAI,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAC7D,MAAM,CAAC,IAAI,KAAK,GAA2C,OAAO,CAAC;AACnE,MAAM,CAAC,IAAI,EAAE,GAA2C,OAAO,CAAC;AAEhE,MAAM,CAAC,IAAI,SAAS,GAAG,WAAW,CAAC;AACnC,MAAM,CAAC,IAAI,OAAO,GAAG,EAAC,MAAM,EAAC,sCAAsC,EAAC,WAAW,EAAC,2CAA2C,EAAC,SAAS,EAAC,yCAAyC,EAAC,gBAAgB,EAAC,gDAAgD,EAAC,SAAS,EAAC,yCAAyC,EAAC,SAAS,EAAC,yCAAyC,EAAC,OAAO,EAAC,uCAAuC,EAAC,cAAc,EAAC,8CAA8C,EAAC,cAAc,EAAC,8CAA8C,EAAC,CAAC;AACvgB,MAAM,CAAC,IAAI,SAAS,GAAG,EAAE,CAAC;AAC1B,MAAM,CAAC,IAAI,MAAM,GAAG,EAAE,CAAC;AACvB,MAAM,CAAC,IAAI,UAAU,GAAG,EAAE,CAAC;AAC3B,MAAM,CAAC,IAAI,MAAM,GAAG,EAAE,CAAC;AACvB,MAAM,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"form-media-gallery-field.st.css.js","sourceRoot":"","sources":["../../../../src/components/media-gallery/form-media-gallery-field.st.css.ts"],"names":[],"mappings":"AAAA,cAAc;AAGd,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAI9E,IAAI,WAAW,GAAG,iCAAiC,CAAC;AACpD,IAAI,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAErD,MAAM,CAAC,IAAI,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAC7D,MAAM,CAAC,IAAI,KAAK,GAA2C,OAAO,CAAC;AACnE,MAAM,CAAC,IAAI,EAAE,GAA2C,OAAO,CAAC;AAEhE,MAAM,CAAC,IAAI,SAAS,GAAG,WAAW,CAAC;AACnC,MAAM,CAAC,IAAI,OAAO,GAAG,EAAC,MAAM,EAAC,uCAAuC,EAAC,WAAW,EAAC,4CAA4C,EAAC,SAAS,EAAC,0CAA0C,EAAC,gBAAgB,EAAC,iDAAiD,EAAC,SAAS,EAAC,0CAA0C,EAAC,SAAS,EAAC,0CAA0C,EAAC,OAAO,EAAC,wCAAwC,EAAC,cAAc,EAAC,+CAA+C,EAAC,cAAc,EAAC,+CAA+C,EAAC,CAAC;AAChhB,MAAM,CAAC,IAAI,SAAS,GAAG,EAAE,CAAC;AAC1B,MAAM,CAAC,IAAI,MAAM,GAAG,EAAE,CAAC;AACvB,MAAM,CAAC,IAAI,UAAU,GAAG,EAAE,CAAC;AAC3B,MAAM,CAAC,IAAI,MAAM,GAAG,EAAE,CAAC;AACvB,MAAM,CAAC,IAAI,IAAI,GAAG,EAAE,CAAC"}
@@ -1,15 +1,15 @@
1
1
  // @ts-nocheck
2
2
  import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
3
- var _namespace_ = "mediaimage815133103";
3
+ var _namespace_ = "mediaimage2609312527";
4
4
  var _style_ = classesRuntime.bind(null, _namespace_);
5
5
  export var cssStates = statesRuntime.bind(null, _namespace_);
6
6
  export var style = _style_;
7
7
  export var st = _style_;
8
8
  export var namespace = _namespace_;
9
- export var classes = { "root": "mediaimage815133103__root" };
9
+ export var classes = { "root": "mediaimage2609312527__root" };
10
10
  export var keyframes = {};
11
11
  export var layers = {};
12
12
  export var containers = {};
13
13
  export var stVars = {};
14
- 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": "--mediaimage815133103-from", "to": "--mediaimage815133103-to" };
14
+ 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": "--mediaimage2609312527-from", "to": "--mediaimage2609312527-to" };
15
15
  //# sourceMappingURL=media-image.st.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"media-image.st.css.js","sourceRoot":"","sources":["../../../../src/components/media-image/media-image.st.css.ts"],"names":[],"mappings":"AAAA,cAAc;AAGd,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAI9E,IAAI,WAAW,GAAG,qBAAqB,CAAC;AACxC,IAAI,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAErD,MAAM,CAAC,IAAI,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAC7D,MAAM,CAAC,IAAI,KAAK,GAA2C,OAAO,CAAC;AACnE,MAAM,CAAC,IAAI,EAAE,GAA2C,OAAO,CAAC;AAEhE,MAAM,CAAC,IAAI,SAAS,GAAG,WAAW,CAAC;AACnC,MAAM,CAAC,IAAI,OAAO,GAAG,EAAC,MAAM,EAAC,2BAA2B,EAAC,CAAC;AAC1D,MAAM,CAAC,IAAI,SAAS,GAAG,EAAE,CAAC;AAC1B,MAAM,CAAC,IAAI,MAAM,GAAG,EAAE,CAAC;AACvB,MAAM,CAAC,IAAI,UAAU,GAAG,EAAE,CAAC;AAC3B,MAAM,CAAC,IAAI,MAAM,GAAG,EAAE,CAAC;AACvB,MAAM,CAAC,IAAI,IAAI,GAAG,EAAC,mBAAmB,EAAC,qBAAqB,EAAC,eAAe,EAAC,iBAAiB,EAAC,qBAAqB,EAAC,uBAAuB,EAAC,eAAe,EAAC,iBAAiB,EAAC,MAAM,EAAC,4BAA4B,EAAC,IAAI,EAAC,0BAA0B,EAAC,CAAC"}
1
+ {"version":3,"file":"media-image.st.css.js","sourceRoot":"","sources":["../../../../src/components/media-image/media-image.st.css.ts"],"names":[],"mappings":"AAAA,cAAc;AAGd,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAI9E,IAAI,WAAW,GAAG,sBAAsB,CAAC;AACzC,IAAI,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAErD,MAAM,CAAC,IAAI,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAC7D,MAAM,CAAC,IAAI,KAAK,GAA2C,OAAO,CAAC;AACnE,MAAM,CAAC,IAAI,EAAE,GAA2C,OAAO,CAAC;AAEhE,MAAM,CAAC,IAAI,SAAS,GAAG,WAAW,CAAC;AACnC,MAAM,CAAC,IAAI,OAAO,GAAG,EAAC,MAAM,EAAC,4BAA4B,EAAC,CAAC;AAC3D,MAAM,CAAC,IAAI,SAAS,GAAG,EAAE,CAAC;AAC1B,MAAM,CAAC,IAAI,MAAM,GAAG,EAAE,CAAC;AACvB,MAAM,CAAC,IAAI,UAAU,GAAG,EAAE,CAAC;AAC3B,MAAM,CAAC,IAAI,MAAM,GAAG,EAAE,CAAC;AACvB,MAAM,CAAC,IAAI,IAAI,GAAG,EAAC,mBAAmB,EAAC,qBAAqB,EAAC,eAAe,EAAC,iBAAiB,EAAC,qBAAqB,EAAC,uBAAuB,EAAC,eAAe,EAAC,iBAAiB,EAAC,MAAM,EAAC,6BAA6B,EAAC,IAAI,EAAC,2BAA2B,EAAC,CAAC"}
@@ -1,12 +1,12 @@
1
1
  // @ts-nocheck
2
2
  import { classesRuntime, statesRuntime } from "../../../stylable-esm-runtime.js";
3
- var _namespace_ = "overlay538321121";
3
+ var _namespace_ = "overlay2799147747";
4
4
  var _style_ = classesRuntime.bind(null, _namespace_);
5
5
  export var cssStates = statesRuntime.bind(null, _namespace_);
6
6
  export var style = _style_;
7
7
  export var st = _style_;
8
8
  export var namespace = _namespace_;
9
- export var classes = { "root": "overlay538321121__root", "iconOverlay": "overlay538321121__iconOverlay" };
9
+ export var classes = { "root": "overlay2799147747__root", "iconOverlay": "overlay2799147747__iconOverlay" };
10
10
  export var keyframes = {};
11
11
  export var layers = {};
12
12
  export var containers = {};
@@ -1 +1 @@
1
- {"version":3,"file":"overlay.st.css.js","sourceRoot":"","sources":["../../../../../src/components/media-image/overlays/overlay.st.css.ts"],"names":[],"mappings":"AAAA,cAAc;AAGd,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAIjF,IAAI,WAAW,GAAG,kBAAkB,CAAC;AACrC,IAAI,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAErD,MAAM,CAAC,IAAI,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAC7D,MAAM,CAAC,IAAI,KAAK,GAA2C,OAAO,CAAC;AACnE,MAAM,CAAC,IAAI,EAAE,GAA2C,OAAO,CAAC;AAEhE,MAAM,CAAC,IAAI,SAAS,GAAG,WAAW,CAAC;AACnC,MAAM,CAAC,IAAI,OAAO,GAAG,EAAC,MAAM,EAAC,wBAAwB,EAAC,aAAa,EAAC,+BAA+B,EAAC,CAAC;AACrG,MAAM,CAAC,IAAI,SAAS,GAAG,EAAE,CAAC;AAC1B,MAAM,CAAC,IAAI,MAAM,GAAG,EAAE,CAAC;AACvB,MAAM,CAAC,IAAI,UAAU,GAAG,EAAE,CAAC;AAC3B,MAAM,CAAC,IAAI,MAAM,GAAG,EAAC,YAAY,EAAC,8CAA8C,EAAC,CAAC;AAClF,MAAM,CAAC,IAAI,IAAI,GAAG,EAAC,iBAAiB,EAAC,mBAAmB,EAAC,eAAe,EAAC,iBAAiB,EAAC,CAAC"}
1
+ {"version":3,"file":"overlay.st.css.js","sourceRoot":"","sources":["../../../../../src/components/media-image/overlays/overlay.st.css.ts"],"names":[],"mappings":"AAAA,cAAc;AAGd,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAC;AAIjF,IAAI,WAAW,GAAG,mBAAmB,CAAC;AACtC,IAAI,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAErD,MAAM,CAAC,IAAI,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAC7D,MAAM,CAAC,IAAI,KAAK,GAA2C,OAAO,CAAC;AACnE,MAAM,CAAC,IAAI,EAAE,GAA2C,OAAO,CAAC;AAEhE,MAAM,CAAC,IAAI,SAAS,GAAG,WAAW,CAAC;AACnC,MAAM,CAAC,IAAI,OAAO,GAAG,EAAC,MAAM,EAAC,yBAAyB,EAAC,aAAa,EAAC,gCAAgC,EAAC,CAAC;AACvG,MAAM,CAAC,IAAI,SAAS,GAAG,EAAE,CAAC;AAC1B,MAAM,CAAC,IAAI,MAAM,GAAG,EAAE,CAAC;AACvB,MAAM,CAAC,IAAI,UAAU,GAAG,EAAE,CAAC;AAC3B,MAAM,CAAC,IAAI,MAAM,GAAG,EAAC,YAAY,EAAC,8CAA8C,EAAC,CAAC;AAClF,MAAM,CAAC,IAAI,IAAI,GAAG,EAAC,iBAAiB,EAAC,mBAAmB,EAAC,eAAe,EAAC,iBAAiB,EAAC,CAAC"}
@@ -0,0 +1,159 @@
1
+ import React, { useCallback, useEffect, useState } from 'react';
2
+ import { Box, FormField, IconButton, Input, Popover, PopoverMenu, Tooltip, } from '@wix/design-system';
3
+ import { Add, Delete, Download, Link, LinkSmall, Maximize, MoreSmall, Replace, } from '@wix/wix-ui-icons-common/lazy';
4
+ import { ThumbnailSize } from '../../auto-field-types';
5
+ import { useTranslations } from '../../hooks';
6
+ import { getImageSource } from '../../utils/get-image-source';
7
+ import { fromImageUrl, fromMediaManagerPick, isExternalMediaImage, replaceImage, toMediaImageValue, withAltText, } from '../../utils/media-image-value';
8
+ import { executeDownloading, MEDIA_TYPES } from '../../utils/media-utils';
9
+ import { CellMediaEditShell, MediaFieldType, useCellMediaEdit, } from '../media-control';
10
+ import { MediaPreviewModal } from '../media-gallery/media-preview-modal';
11
+ import { MediaImage } from '../media-image';
12
+ import { MediaImageView } from './media-image-view';
13
+ import { st, classes } from './cell-media-image-edit.st.css.js';
14
+ const imageFromUrl = (url, current) => replaceImage(current, fromImageUrl(url));
15
+ /** WDS shows the menu's open state only to its trigger, so the trigger
16
+ * reports it. */
17
+ const MenuTrigger = ({ isOpen, toggle, buttonRef, onOpenChange, ariaLabel, }) => {
18
+ useEffect(() => {
19
+ onOpenChange(isOpen);
20
+ }, [isOpen, onOpenChange]);
21
+ return (React.createElement(IconButton, { ref: buttonRef, size: "small", skin: "light", priority: "secondary", dataHook: "media-image-edit-more-button", ariaLabel: ariaLabel, "aria-haspopup": "menu", "aria-expanded": isOpen, onClick: toggle },
22
+ React.createElement(MoreSmall, null)));
23
+ };
24
+ /**
25
+ * Edits a `MEDIA_IMAGE` cell. An empty cell shows the add and paste-URL
26
+ * buttons. A cell with an image opens a popover with the image and its alt
27
+ * text. Changes go to `onChange` as they happen and are committed once, when
28
+ * the popover closes.
29
+ */
30
+ export const CellMediaImageEdit = ({ value, onChange, onCommit, onCancel, onStartEdit, inputRef, dataHook, }) => {
31
+ const { t } = useTranslations();
32
+ const image = toMediaImageValue(value);
33
+ const src = getImageSource(image);
34
+ // 'none' once committed.
35
+ const [popoverLayer, setPopoverLayer] = useState('popover');
36
+ const mediaEdit = useCellMediaEdit({
37
+ mediaType: MEDIA_TYPES.IMAGE,
38
+ value: image,
39
+ onChange,
40
+ onCommit,
41
+ onCancel,
42
+ onStartEdit,
43
+ inputRef,
44
+ fromPick: fromMediaManagerPick,
45
+ fromUrl: imageFromUrl,
46
+ commitOnPick: false,
47
+ });
48
+ const { loading, pasteUrlForm, handleCallMedia, handleDelete, downloadMedia, } = mediaEdit;
49
+ const closePasteUrl = pasteUrlForm.handleClose;
50
+ // The media manager and the URL form sit above the popover layers.
51
+ const openLayer = loading
52
+ ? 'loading'
53
+ : pasteUrlForm.isOpen
54
+ ? 'pasteUrl'
55
+ : image
56
+ ? popoverLayer
57
+ : 'none';
58
+ const openPasteUrl = mediaEdit.startEditAndOpenPasteUrl({
59
+ title: t('CMS.image.replaceWithUrl.title'),
60
+ value: isExternalMediaImage(image) ? image.url : undefined,
61
+ });
62
+ const handleDownload = useCallback(() => {
63
+ // The Media Manager can't make a download link for an external URL.
64
+ if (isExternalMediaImage(image)) {
65
+ executeDownloading(image.url);
66
+ }
67
+ else if (src) {
68
+ downloadMedia(src);
69
+ }
70
+ }, [src, image, downloadMedia]);
71
+ const commit = useCallback(() => {
72
+ setPopoverLayer('none');
73
+ onCommit();
74
+ }, [onCommit]);
75
+ // Picking Preview sets its own layer, which closing the menu must not undo.
76
+ const handleMenuOpenChange = useCallback((isOpen) => {
77
+ setPopoverLayer((layer) => {
78
+ if (isOpen) {
79
+ return 'menu';
80
+ }
81
+ return layer === 'menu' ? 'popover' : layer;
82
+ });
83
+ }, []);
84
+ // Fires on mouseup, before the click that closes a menu or a modal, so
85
+ // `openLayer` still says what was open.
86
+ const handleClickOutside = useCallback(() => {
87
+ if (openLayer === 'popover') {
88
+ commit();
89
+ }
90
+ }, [openLayer, commit]);
91
+ useEffect(() => {
92
+ // WDS closes the menu on Escape and stops the event there.
93
+ if (openLayer === 'none' ||
94
+ openLayer === 'loading' ||
95
+ openLayer === 'menu') {
96
+ return;
97
+ }
98
+ // Capture phase, so the table doesn't cancel the edit first.
99
+ const handleKeyDown = (e) => {
100
+ if (e.key !== 'Escape') {
101
+ return;
102
+ }
103
+ e.stopPropagation();
104
+ if (openLayer === 'pasteUrl') {
105
+ closePasteUrl();
106
+ }
107
+ else if (openLayer === 'preview') {
108
+ setPopoverLayer('popover');
109
+ }
110
+ else {
111
+ commit();
112
+ }
113
+ };
114
+ document.addEventListener('keydown', handleKeyDown, true);
115
+ return () => document.removeEventListener('keydown', handleKeyDown, true);
116
+ }, [openLayer, closePasteUrl, commit]);
117
+ const emptyActions = (React.createElement(React.Fragment, null,
118
+ React.createElement(Tooltip, { content: t('CMS.image.add'), appendTo: "window" },
119
+ React.createElement(IconButton, { size: "tiny", priority: "secondary", dataHook: "media-image-edit-add-button", ariaLabel: t('CMS.image.add'), onClick: handleCallMedia },
120
+ React.createElement(Add, null))),
121
+ React.createElement(Tooltip, { content: t('CMS.image.replaceWithUrl.button'), appendTo: "window" },
122
+ React.createElement(IconButton, { size: "tiny", priority: "tertiary", dataHook: "media-image-edit-paste-url-button", ariaLabel: t('CMS.image.replaceWithUrl.button'), onClick: openPasteUrl },
123
+ React.createElement(LinkSmall, null)))));
124
+ // One return for both states, so the shell and its container stay mounted
125
+ // when a pick fills an empty cell.
126
+ return (React.createElement(React.Fragment, null,
127
+ React.createElement(CellMediaEditShell, { dataHook: dataHook, mediaEdit: mediaEdit, fieldType: MediaFieldType.image, padding: image ? '0' : undefined }, !image ? (emptyActions) : (React.createElement("div", { className: classes.view },
128
+ React.createElement(MediaImageView, { value: image }),
129
+ React.createElement("div", { className: classes.anchor },
130
+ React.createElement(Popover, { shown: popoverLayer !== 'none', appendTo: "window", placement: "bottom-start", moveBy: { x: 0, y: 4 }, zIndex: 5001, animate: true, flip: true, fixed: false, onClickOutside: handleClickOutside },
131
+ React.createElement(Popover.Element, null,
132
+ React.createElement("div", { className: classes.anchorBox })),
133
+ React.createElement(Popover.Content, null,
134
+ React.createElement(Box, { dataHook: "media-image-edit-popover", className: classes.popoverContent, direction: "vertical", gap: "SP3", padding: "SP3" },
135
+ React.createElement(FormField, { label: t('CMS.image.thumbnail.label') },
136
+ React.createElement("div", { className: classes.image },
137
+ React.createElement(MediaImage, { dataHook: "media-image-edit-image", src: src, alt: "", fit: "cover", transparent: true, size: ThumbnailSize.L, width: "180px", height: "180px", borderRadius: "0" }),
138
+ React.createElement("div", { className: st(classes.imageActions, {
139
+ menuOpen: popoverLayer === 'menu',
140
+ }) },
141
+ React.createElement(Tooltip, { content: t('CMS.image.replace'), appendTo: "window" },
142
+ React.createElement(IconButton, { size: "small", skin: "light", priority: "secondary", dataHook: "media-image-edit-replace-button", ariaLabel: t('CMS.image.replace'), onClick: handleCallMedia },
143
+ React.createElement(Replace, null))),
144
+ React.createElement(PopoverMenu, { textSize: "small", appendTo: "window", zIndex: 5002, triggerElement: ({ isOpen, toggle, ref }) => (React.createElement(MenuTrigger, { isOpen: isOpen, toggle: toggle, buttonRef: ref, onOpenChange: handleMenuOpenChange, ariaLabel: t('auto-patterns.fields.more_actions_tooltip') })) },
145
+ React.createElement(PopoverMenu.MenuItem, { dataHook: "media-image-edit-action-replace-url", text: t('CMS.image.replaceWithUrl.button'), prefixIcon: React.createElement(Link, null), onClick: openPasteUrl }),
146
+ React.createElement(PopoverMenu.MenuItem, { dataHook: "media-image-edit-action-preview", text: t('CMS.mediaGallery.preview'), prefixIcon: React.createElement(Maximize, null), onClick: () => setPopoverLayer('preview') }),
147
+ React.createElement(PopoverMenu.MenuItem, { dataHook: "media-image-edit-action-download", text: t('CMS.image.download'), prefixIcon: React.createElement(Download, null), onClick: handleDownload }),
148
+ React.createElement(PopoverMenu.Divider, null),
149
+ React.createElement(PopoverMenu.MenuItem, { dataHook: "media-image-edit-action-delete", text: t('CMS.image.clear'), skin: "destructive", prefixIcon: React.createElement(Delete, null), onClick: handleDelete }))))),
150
+ React.createElement(FormField, { label: t('CMS.image.altText.label') },
151
+ React.createElement(Input, { dataHook: "media-image-edit-alt-input", size: "small", value: image.altText ?? '', placeholder: t('CMS.image.altText.inputPlaceholder'), onChange: (e) => onChange(withAltText(image, e.target.value)), onEnterPressed: commit }))))))))),
152
+ image && (React.createElement(MediaPreviewModal, { isOpen: popoverLayer === 'preview', value: src, onClose: () => setPopoverLayer('popover'), onRequestMedia: handleCallMedia, onClearMedia: handleDelete, onDownloadMedia: handleDownload, textKeys: {
153
+ replace: 'CMS.image.replace',
154
+ download: 'CMS.image.download',
155
+ delete: 'CMS.image.clear',
156
+ } }))));
157
+ };
158
+ CellMediaImageEdit.displayName = 'CellMediaImageEdit';
159
+ //# sourceMappingURL=cell-media-image-edit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cell-media-image-edit.js","sourceRoot":"","sources":["../../../../src/components/media-image-field/cell-media-image-edit.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ @property st-global(--wds-color-fill-transparent-primary);
2
+ @property st-global(--wsr-color-D10);
3
+ @property st-global(--wds-image-border-radius-default);
4
+ @property st-global(--wds-space-100);
5
+
6
+ .view {
7
+ position: relative;
8
+ width: 100%;
9
+ height: 100%;
10
+ }
11
+
12
+ /* A zero-height strip along the cell's bottom edge, so the popover opens
13
+ under the cell. */
14
+ .anchor {
15
+ position: absolute;
16
+ left: 0;
17
+ right: 0;
18
+ bottom: 0;
19
+ height: 0;
20
+ }
21
+
22
+ .anchorBox {
23
+ width: 100%;
24
+ height: 0;
25
+ }
26
+
27
+ .popoverContent {
28
+ width: 288px;
29
+ box-sizing: border-box;
30
+ }
31
+
32
+ .image {
33
+ position: relative;
34
+ width: 180px;
35
+ height: 180px;
36
+ border-radius: var(--wds-image-border-radius-default, 8px);
37
+ overflow: hidden;
38
+ line-height: 0;
39
+ }
40
+
41
+ /* Shown on hover, and while a button inside has focus, so the actions stay
42
+ reachable by keyboard. */
43
+ .imageActions {
44
+ -st-states: menuOpen;
45
+ position: absolute;
46
+ inset: 0;
47
+ display: flex;
48
+ align-items: center;
49
+ justify-content: center;
50
+ gap: var(--wds-space-100, 6px);
51
+ opacity: 0;
52
+ background: var(
53
+ --wds-color-fill-transparent-primary,
54
+ color-mix(in srgb, var(--wsr-color-D10, #000624) 66%, transparent)
55
+ );
56
+ transition: opacity 0.15s;
57
+ }
58
+
59
+ .image:hover .imageActions,
60
+ .imageActions:focus-within,
61
+ .imageActions:menuOpen {
62
+ opacity: 1;
63
+ }
@@ -0,0 +1,15 @@
1
+ // @ts-nocheck
2
+ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
3
+ var _namespace_ = "cellmediaimageedit4241529426";
4
+ var _style_ = classesRuntime.bind(null, _namespace_);
5
+ export var cssStates = statesRuntime.bind(null, _namespace_);
6
+ export var style = _style_;
7
+ export var st = _style_;
8
+ export var namespace = _namespace_;
9
+ export var classes = { "root": "cellmediaimageedit4241529426__root", "view": "cellmediaimageedit4241529426__view", "anchor": "cellmediaimageedit4241529426__anchor", "anchorBox": "cellmediaimageedit4241529426__anchorBox", "popoverContent": "cellmediaimageedit4241529426__popoverContent", "image": "cellmediaimageedit4241529426__image", "imageActions": "cellmediaimageedit4241529426__imageActions" };
10
+ export var keyframes = {};
11
+ export var layers = {};
12
+ export var containers = {};
13
+ export var stVars = {};
14
+ export var vars = { "wds-color-fill-transparent-primary": "--wds-color-fill-transparent-primary", "wsr-color-D10": "--wsr-color-D10", "wds-image-border-radius-default": "--wds-image-border-radius-default", "wds-space-100": "--wds-space-100" };
15
+ //# sourceMappingURL=cell-media-image-edit.st.css.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cell-media-image-edit.st.css.js","sourceRoot":"","sources":["../../../../src/components/media-image-field/cell-media-image-edit.st.css.ts"],"names":[],"mappings":"AAAA,cAAc;AAGd,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAI9E,IAAI,WAAW,GAAG,8BAA8B,CAAC;AACjD,IAAI,OAAO,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAErD,MAAM,CAAC,IAAI,SAAS,GAAG,aAAa,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;AAC7D,MAAM,CAAC,IAAI,KAAK,GAA2C,OAAO,CAAC;AACnE,MAAM,CAAC,IAAI,EAAE,GAA2C,OAAO,CAAC;AAEhE,MAAM,CAAC,IAAI,SAAS,GAAG,WAAW,CAAC;AACnC,MAAM,CAAC,IAAI,OAAO,GAAG,EAAC,MAAM,EAAC,oCAAoC,EAAC,MAAM,EAAC,oCAAoC,EAAC,QAAQ,EAAC,sCAAsC,EAAC,WAAW,EAAC,yCAAyC,EAAC,gBAAgB,EAAC,8CAA8C,EAAC,OAAO,EAAC,qCAAqC,EAAC,cAAc,EAAC,4CAA4C,EAAC,CAAC;AAC/X,MAAM,CAAC,IAAI,SAAS,GAAG,EAAE,CAAC;AAC1B,MAAM,CAAC,IAAI,MAAM,GAAG,EAAE,CAAC;AACvB,MAAM,CAAC,IAAI,UAAU,GAAG,EAAE,CAAC;AAC3B,MAAM,CAAC,IAAI,MAAM,GAAG,EAAE,CAAC;AACvB,MAAM,CAAC,IAAI,IAAI,GAAG,EAAC,oCAAoC,EAAC,sCAAsC,EAAC,eAAe,EAAC,iBAAiB,EAAC,iCAAiC,EAAC,mCAAmC,EAAC,eAAe,EAAC,iBAAiB,EAAC,CAAC"}
@@ -0,0 +1,59 @@
1
+ import React, { useCallback, useRef } from 'react';
2
+ import { Box, FormField, ImageViewer, Input } from '@wix/design-system';
3
+ import { useIsMobile, useWixPatternsContainer } from '@wix/bex-core/react';
4
+ import { useMergedRef, useTranslations } from '../../hooks';
5
+ import { getImageSource } from '../../utils/get-image-source';
6
+ import { getImageUrl } from '../../utils/get-image-url';
7
+ import { MEDIA_HEIGHT, MEDIA_MAX_WIDTH } from '../../utils/media-constants';
8
+ import { fromMediaManagerPick, toMediaImageValue, withAltText, } from '../../utils/media-image-value';
9
+ import { MEDIA_TYPES } from '../../utils/media-utils';
10
+ import { useMediaControl } from '../media-control';
11
+ /**
12
+ * The entity page input of a `MEDIA_IMAGE` field: the image, and an alt text
13
+ * input to its right once there is an image. A pick fills an empty alt text
14
+ * from the file name; a replace keeps the current one.
15
+ */
16
+ export const FormMediaImageField = ({ data, onChange, onBlur, readOnly, autoFocus, dataHook, inputRef: forwardedRef, imageFormFieldProps, }) => {
17
+ const { translate } = useWixPatternsContainer();
18
+ const { t } = useTranslations();
19
+ const isMobile = useIsMobile();
20
+ const image = toMediaImageValue(data);
21
+ // The media manager calls back after it closes, so it reads the value from
22
+ // here rather than from the render that opened it.
23
+ const imageRef = useRef(image);
24
+ imageRef.current = image;
25
+ const [inputRef, setInputRef] = useMergedRef(forwardedRef);
26
+ const handlePick = useCallback((uri) => {
27
+ const next = fromMediaManagerPick(uri, imageRef.current);
28
+ if (next) {
29
+ onChange(next);
30
+ }
31
+ }, [onChange]);
32
+ const { callMedia, onMediaLoad } = useMediaControl({
33
+ mediaType: MEDIA_TYPES.IMAGE,
34
+ value: getImageSource(image),
35
+ onChange: handlePick,
36
+ autoFocus,
37
+ readOnly,
38
+ onBlur,
39
+ inputRef,
40
+ initialLoading: true,
41
+ });
42
+ const canEdit = !isMobile && !readOnly;
43
+ const handleAltTextChange = (e) => {
44
+ if (image) {
45
+ onChange(withAltText(image, e.target.value));
46
+ }
47
+ };
48
+ return (React.createElement(Box, { dataHook: dataHook, gap: "SP4", width: "100%" },
49
+ React.createElement(Box, { width: "100%", maxWidth: MEDIA_MAX_WIDTH, flexShrink: 0 },
50
+ React.createElement(FormField, { ...imageFormFieldProps, dataHook: "media-image-field-image" },
51
+ React.createElement(ImageViewer, { ref: setInputRef, dataHook: "media-image-field-viewer", imageUrl: image ? getImageUrl(image) : undefined, onImageLoad: onMediaLoad, onAddImage: canEdit ? callMedia : undefined, onUpdateImage: canEdit ? callMedia : undefined, disabled: image ? Boolean(readOnly) : !canEdit, showUpdateButton: canEdit, showRemoveButton: !readOnly, updateImageInfo: translate('cairo.replace-image.tooltip'), removeImageInfo: translate('cairo.remove-image.tooltip'), addImageInfo: translate('cairo.add-image.tooltip'), height: MEDIA_HEIGHT, width: "100%", fit: "cover", onRemoveImage: () => onChange(null) }))),
52
+ image && (React.createElement(Box, { direction: "vertical", flexGrow: 1, minWidth: "0" },
53
+ React.createElement(FormField, { label: t('CMS.image.altText.label') },
54
+ React.createElement(Input, { dataHook: "media-image-field-alt-input", value: image.altText ?? '', placeholder: t('CMS.image.altText.inputPlaceholder'), onChange: handleAltTextChange, readOnly: readOnly }))))));
55
+ };
56
+ FormMediaImageField.displayName = 'FormMediaImageField';
57
+ export const ControlledMediaImageInput = ({ data, onChange, onBlur, readOnly, autoFocus, dataHook, }) => (React.createElement(FormMediaImageField, { data: data, onChange: onChange, onBlur: onBlur, readOnly: readOnly, autoFocus: autoFocus, dataHook: dataHook }));
58
+ ControlledMediaImageInput.displayName = 'ControlledMediaImageInput';
59
+ //# sourceMappingURL=form-media-image-field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-media-image-field.js","sourceRoot":"","sources":["../../../../src/components/media-image-field/form-media-image-field.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { FormFieldUniDriver, ImageViewerUniDriver, } from '@wix/design-system/dist/testkit/unidriver';
2
+ import { baseUniDriverFactory } from '../../testkit/base-driver';
3
+ export function FormMediaImageFieldUniDriver(base, body) {
4
+ const formField = FormFieldUniDriver(base.$('[data-hook="media-image-field-image"]'), body);
5
+ const imageViewer = ImageViewerUniDriver(base.$('[data-hook="media-image-field-viewer"]'), body);
6
+ const altInput = base.$('[data-hook="media-image-field-alt-input"] input');
7
+ return {
8
+ ...baseUniDriverFactory(base),
9
+ getLabel: async () => (await formField.getLabel())?.textContent ?? '',
10
+ isRequired: () => formField.isRequired(),
11
+ hasError: () => formField.hasStatus('error'),
12
+ getErrorMessage: () => formField.getStatusMessage(),
13
+ getImageUrl: () => imageViewer.getImageUrl(),
14
+ isAddItemVisible: () => imageViewer.isAddItemVisible(),
15
+ clickAdd: () => imageViewer.clickAdd(),
16
+ clickReplace: () => imageViewer.clickUpdate(),
17
+ clickRemove: () => imageViewer.clickRemove(),
18
+ hasAltTextInput: () => altInput.exists(),
19
+ getAltText: () => altInput.value(),
20
+ getAltTextPlaceholder: () => altInput.attr('placeholder'),
21
+ enterAltText: (text) => altInput.enterValue(text),
22
+ // ImageViewer hides its edit buttons behind a loader until the image
23
+ // loads, and jsdom never fires that event on its own.
24
+ simulateImageLoad: async () => (await base.$('[data-hook="image-viewer-current-image"]').getNative()).dispatchEvent(new Event('load')),
25
+ };
26
+ }
27
+ //# sourceMappingURL=form-media-image-field.uni.driver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form-media-image-field.uni.driver.js","sourceRoot":"","sources":["../../../../src/components/media-image-field/form-media-image-field.uni.driver.ts"],"names":[],"mappings":"AACA,OAAO,EACL,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,2CAA2C,CAAC;AAEnD,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE,MAAM,UAAU,4BAA4B,CAAC,IAAe,EAAE,IAAe;IAC3E,MAAM,SAAS,GAAG,kBAAkB,CAClC,IAAI,CAAC,CAAC,CAAC,uCAAuC,CAAC,EAC/C,IAAI,CACL,CAAC;IACF,MAAM,WAAW,GAAG,oBAAoB,CACtC,IAAI,CAAC,CAAC,CAAC,wCAAwC,CAAC,EAChD,IAAI,CACL,CAAC;IACF,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,iDAAiD,CAAC,CAAC;IAE3E,OAAO;QACL,GAAG,oBAAoB,CAAC,IAAI,CAAC;QAC7B,QAAQ,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,MAAM,SAAS,CAAC,QAAQ,EAAE,CAAC,EAAE,WAAW,IAAI,EAAE;QACrE,UAAU,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE;QACxC,QAAQ,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,OAAO,CAAC;QAC5C,eAAe,EAAE,GAAG,EAAE,CAAC,SAAS,CAAC,gBAAgB,EAAE;QACnD,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE;QAC5C,gBAAgB,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,gBAAgB,EAAE;QACtD,QAAQ,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,QAAQ,EAAE;QACtC,YAAY,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE;QAC7C,WAAW,EAAE,GAAG,EAAE,CAAC,WAAW,CAAC,WAAW,EAAE;QAC5C,eAAe,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,MAAM,EAAE;QACxC,UAAU,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE;QAClC,qBAAqB,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC;QACzD,YAAY,EAAE,CAAC,IAAY,EAAE,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,CAAC;QACzD,qEAAqE;QACrE,sDAAsD;QACtD,iBAAiB,EAAE,KAAK,IAAI,EAAE,CAC5B,CACE,MAAM,IAAI,CAAC,CAAC,CAAC,0CAA0C,CAAC,CAAC,SAAS,EAAE,CACrE,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC;KACrC,CAAC;AACJ,CAAC"}