@wix/patterns-fields 1.86.0 → 1.88.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 (254) 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/controlled-audio.uni.driver.js +29 -0
  6. package/dist/cjs/components/audio/audio-field/controlled-audio.uni.driver.js.map +1 -0
  7. package/dist/cjs/components/audio/audio-field/form-audio-field.js +42 -12
  8. package/dist/cjs/components/audio/audio-field/form-audio-field.js.map +1 -1
  9. package/dist/cjs/components/audio/audio-field/form-audio-field.st.css.js +4 -4
  10. package/dist/cjs/components/audio/audio-field/form-audio-field.st.css.js.map +1 -1
  11. package/dist/cjs/components/audio/audio-player/audio-player.st.css.js +2 -2
  12. package/dist/cjs/components/audio/audio-player/audio-player.st.css.js.map +1 -1
  13. package/dist/cjs/components/color-view/cell-color-view.st.css.js +3 -3
  14. package/dist/cjs/components/color-view/cell-color-view.st.css.js.map +1 -1
  15. package/dist/cjs/components/color-view/color-view.st.css.js +4 -4
  16. package/dist/cjs/components/color-view/color-view.st.css.js.map +1 -1
  17. package/dist/cjs/components/controlled-input.uni.driver.js +7 -1
  18. package/dist/cjs/components/controlled-input.uni.driver.js.map +1 -1
  19. package/dist/cjs/components/delete-dialog/delete-dialog.st.css.js +3 -3
  20. package/dist/cjs/components/delete-dialog/delete-dialog.st.css.js.map +1 -1
  21. package/dist/cjs/components/document/form-document-field.st.css.js +7 -7
  22. package/dist/cjs/components/document/form-document-field.st.css.js.map +1 -1
  23. package/dist/cjs/components/exclamation/exclamation.st.css.js +5 -5
  24. package/dist/cjs/components/exclamation/exclamation.st.css.js.map +1 -1
  25. package/dist/cjs/components/highlighted-text/highlighted-text.st.css.js +5 -5
  26. package/dist/cjs/components/highlighted-text/highlighted-text.st.css.js.map +1 -1
  27. package/dist/cjs/components/image/controlled-image.uni.driver.js +23 -0
  28. package/dist/cjs/components/image/controlled-image.uni.driver.js.map +1 -0
  29. package/dist/cjs/components/image/form-image-field.js +124 -0
  30. package/dist/cjs/components/image/form-image-field.js.map +1 -0
  31. package/dist/cjs/components/image/form-image-input.js +13 -50
  32. package/dist/cjs/components/image/form-image-input.js.map +1 -1
  33. package/dist/cjs/components/image/index.js +6 -0
  34. package/dist/cjs/components/image/index.js.map +1 -1
  35. package/dist/cjs/components/image/thumbnail-replace-overlay.st.css.js +3 -3
  36. package/dist/cjs/components/image/thumbnail-replace-overlay.st.css.js.map +1 -1
  37. package/dist/cjs/components/media-control/cell-media-edit-shell.st.css.js +2 -2
  38. package/dist/cjs/components/media-control/cell-media-edit-shell.st.css.js.map +1 -1
  39. package/dist/cjs/components/media-control/paste-url-button.st.css.js +4 -4
  40. package/dist/cjs/components/media-control/paste-url-button.st.css.js.map +1 -1
  41. package/dist/cjs/components/media-control/use-media-control.js +4 -1
  42. package/dist/cjs/components/media-control/use-media-control.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-loader/media-loader.st.css.js +3 -3
  50. package/dist/cjs/components/media-loader/media-loader.st.css.js.map +1 -1
  51. package/dist/cjs/components/media-tag/web-media-tag/media-tag.st.css.js +2 -2
  52. package/dist/cjs/components/media-tag/web-media-tag/media-tag.st.css.js.map +1 -1
  53. package/dist/cjs/components/multi-document/cell-multi-document-edit.st.css.js +3 -3
  54. package/dist/cjs/components/multi-document/cell-multi-document-edit.st.css.js.map +1 -1
  55. package/dist/cjs/components/multi-document/multi-document-input/form-multi-document.st.css.js +5 -5
  56. package/dist/cjs/components/multi-document/multi-document-input/form-multi-document.st.css.js.map +1 -1
  57. package/dist/cjs/components/reference/cell-multi-reference-input.st.css.js +2 -2
  58. package/dist/cjs/components/reference/cell-multi-reference-input.st.css.js.map +1 -1
  59. package/dist/cjs/components/reference/cell-reference-input.st.css.js +3 -3
  60. package/dist/cjs/components/reference/cell-reference-input.st.css.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.st.css.js +7 -7
  74. package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js.map +1 -1
  75. package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js +5 -5
  76. package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js.map +1 -1
  77. package/dist/cjs/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js +4 -4
  78. package/dist/cjs/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js.map +1 -1
  79. package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js +18 -18
  80. package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js.map +1 -1
  81. package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js +4 -4
  82. package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js.map +1 -1
  83. package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js +18 -18
  84. package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js.map +1 -1
  85. package/dist/cjs/components/text/text-view.st.css.js +3 -3
  86. package/dist/cjs/components/text/text-view.st.css.js.map +1 -1
  87. package/dist/cjs/components/video/controlled-video.uni.driver.js +40 -0
  88. package/dist/cjs/components/video/controlled-video.uni.driver.js.map +1 -0
  89. package/dist/cjs/components/video/form-video-field.js +358 -0
  90. package/dist/cjs/components/video/form-video-field.js.map +1 -0
  91. package/dist/cjs/components/video/form-video.js +22 -284
  92. package/dist/cjs/components/video/form-video.js.map +1 -1
  93. package/dist/cjs/components/video/index.js +4 -1
  94. package/dist/cjs/components/video/index.js.map +1 -1
  95. package/dist/cjs/styles.global.css +1 -1
  96. package/dist/esm/components/address/input/address-input.st.css.js +2 -2
  97. package/dist/esm/components/audio/actions/actions-menu/actions-menu.st.css.js +2 -2
  98. package/dist/esm/components/audio/audio-field/controlled-audio.uni.driver.js +26 -0
  99. package/dist/esm/components/audio/audio-field/controlled-audio.uni.driver.js.map +1 -0
  100. package/dist/esm/components/audio/audio-field/form-audio-field.js +6 -1
  101. package/dist/esm/components/audio/audio-field/form-audio-field.js.map +1 -1
  102. package/dist/esm/components/audio/audio-field/form-audio-field.st.css.js +2 -2
  103. package/dist/esm/components/audio/audio-player/audio-player.st.css.js +2 -2
  104. package/dist/esm/components/color-view/cell-color-view.st.css.js +2 -2
  105. package/dist/esm/components/color-view/color-view.st.css.js +2 -2
  106. package/dist/esm/components/color-view/color-view.st.css.js.map +1 -1
  107. package/dist/esm/components/controlled-input.uni.driver.js +6 -0
  108. package/dist/esm/components/controlled-input.uni.driver.js.map +1 -1
  109. package/dist/esm/components/delete-dialog/delete-dialog.st.css.js +2 -2
  110. package/dist/esm/components/delete-dialog/delete-dialog.st.css.js.map +1 -1
  111. package/dist/esm/components/document/form-document-field.st.css.js +2 -2
  112. package/dist/esm/components/exclamation/exclamation.st.css.js +2 -2
  113. package/dist/esm/components/highlighted-text/highlighted-text.st.css.js +3 -3
  114. package/dist/esm/components/highlighted-text/highlighted-text.st.css.js.map +1 -1
  115. package/dist/esm/components/image/controlled-image.uni.driver.js +19 -0
  116. package/dist/esm/components/image/controlled-image.uni.driver.js.map +1 -0
  117. package/dist/esm/components/image/form-image-field.js +48 -0
  118. package/dist/esm/components/image/form-image-field.js.map +1 -0
  119. package/dist/esm/components/image/form-image-input.js +11 -33
  120. package/dist/esm/components/image/form-image-input.js.map +1 -1
  121. package/dist/esm/components/image/index.js +1 -0
  122. package/dist/esm/components/image/index.js.map +1 -1
  123. package/dist/esm/components/image/thumbnail-replace-overlay.st.css.js +2 -2
  124. package/dist/esm/components/image/thumbnail-replace-overlay.st.css.js.map +1 -1
  125. package/dist/esm/components/media-control/cell-media-edit-shell.st.css.js +2 -2
  126. package/dist/esm/components/media-control/paste-url-button.st.css.js +2 -2
  127. package/dist/esm/components/media-control/use-media-control.js +4 -3
  128. package/dist/esm/components/media-control/use-media-control.js.map +1 -1
  129. package/dist/esm/components/media-gallery/form-media-gallery-field.st.css.js +2 -2
  130. package/dist/esm/components/media-image/media-image.st.css.js +3 -3
  131. package/dist/esm/components/media-image/media-image.st.css.js.map +1 -1
  132. package/dist/esm/components/media-image/overlays/overlay.st.css.js +2 -2
  133. package/dist/esm/components/media-image/overlays/overlay.st.css.js.map +1 -1
  134. package/dist/esm/components/media-loader/media-loader.st.css.js +2 -2
  135. package/dist/esm/components/media-tag/web-media-tag/media-tag.st.css.js +2 -2
  136. package/dist/esm/components/media-tag/web-media-tag/media-tag.st.css.js.map +1 -1
  137. package/dist/esm/components/multi-document/cell-multi-document-edit.st.css.js +2 -2
  138. package/dist/esm/components/multi-document/cell-multi-document-edit.st.css.js.map +1 -1
  139. package/dist/esm/components/multi-document/multi-document-input/form-multi-document.st.css.js +2 -2
  140. package/dist/esm/components/multi-document/multi-document-input/form-multi-document.st.css.js.map +1 -1
  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/rich-content-input/default-value-input/rich-content-default-value-input.st.css.js +2 -2
  145. package/dist/esm/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js +2 -2
  146. package/dist/esm/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.js +2 -2
  147. 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
  148. package/dist/esm/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js +2 -2
  149. package/dist/esm/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js +2 -2
  150. package/dist/esm/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js +2 -2
  151. package/dist/esm/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js +2 -2
  152. package/dist/esm/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js.map +1 -1
  153. package/dist/esm/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js +2 -2
  154. package/dist/esm/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js.map +1 -1
  155. package/dist/esm/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js +2 -2
  156. package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js +2 -2
  157. package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js +2 -2
  158. package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js +2 -2
  159. package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js.map +1 -1
  160. package/dist/esm/components/text/text-view.st.css.js +2 -2
  161. package/dist/esm/components/video/controlled-video.uni.driver.js +37 -0
  162. package/dist/esm/components/video/controlled-video.uni.driver.js.map +1 -0
  163. package/dist/esm/components/video/form-video-field.js +71 -0
  164. package/dist/esm/components/video/form-video-field.js.map +1 -0
  165. package/dist/esm/components/video/form-video.js +17 -56
  166. package/dist/esm/components/video/form-video.js.map +1 -1
  167. package/dist/esm/components/video/index.js +1 -0
  168. package/dist/esm/components/video/index.js.map +1 -1
  169. package/dist/esm/styles.global.css +1 -1
  170. package/dist/types/components/audio/audio-field/controlled-audio.uni.driver.d.ts +18 -0
  171. package/dist/types/components/audio/audio-field/controlled-audio.uni.driver.d.ts.map +1 -0
  172. package/dist/types/components/audio/audio-field/form-audio-field.d.ts +12 -1
  173. package/dist/types/components/audio/audio-field/form-audio-field.d.ts.map +1 -1
  174. package/dist/types/components/color-view/color-view.st.css.d.ts.map +1 -1
  175. package/dist/types/components/controlled-input.uni.driver.d.ts +74 -0
  176. package/dist/types/components/controlled-input.uni.driver.d.ts.map +1 -1
  177. package/dist/types/components/delete-dialog/delete-dialog.st.css.d.ts.map +1 -1
  178. package/dist/types/components/highlighted-text/highlighted-text.st.css.d.ts.map +1 -1
  179. package/dist/types/components/image/controlled-image.uni.driver.d.ts +40 -0
  180. package/dist/types/components/image/controlled-image.uni.driver.d.ts.map +1 -0
  181. package/dist/types/components/image/form-image-field.d.ts +15 -0
  182. package/dist/types/components/image/form-image-field.d.ts.map +1 -0
  183. package/dist/types/components/image/form-image-input.d.ts.map +1 -1
  184. package/dist/types/components/image/index.d.ts +1 -0
  185. package/dist/types/components/image/index.d.ts.map +1 -1
  186. package/dist/types/components/image/thumbnail-replace-overlay.st.css.d.ts.map +1 -1
  187. package/dist/types/components/media-control/use-media-control.d.ts.map +1 -1
  188. package/dist/types/components/media-image/media-image.st.css.d.ts.map +1 -1
  189. package/dist/types/components/media-image/overlays/overlay.st.css.d.ts.map +1 -1
  190. package/dist/types/components/media-tag/web-media-tag/media-tag.st.css.d.ts.map +1 -1
  191. package/dist/types/components/multi-document/cell-multi-document-edit.st.css.d.ts.map +1 -1
  192. package/dist/types/components/multi-document/multi-document-input/form-multi-document.st.css.d.ts.map +1 -1
  193. package/dist/types/components/reference/cell-reference-input.st.css.d.ts.map +1 -1
  194. 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
  195. package/dist/types/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.d.ts.map +1 -1
  196. package/dist/types/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.d.ts.map +1 -1
  197. package/dist/types/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.d.ts.map +1 -1
  198. package/dist/types/components/video/controlled-video.uni.driver.d.ts +22 -0
  199. package/dist/types/components/video/controlled-video.uni.driver.d.ts.map +1 -0
  200. package/dist/types/components/video/form-video-field.d.ts +29 -0
  201. package/dist/types/components/video/form-video-field.d.ts.map +1 -0
  202. package/dist/types/components/video/form-video.d.ts.map +1 -1
  203. package/dist/types/components/video/index.d.ts +2 -0
  204. package/dist/types/components/video/index.d.ts.map +1 -1
  205. package/package.json +4 -4
  206. package/src/__tests__/exports/controlled-inputs.spec.tsx +677 -1
  207. package/src/components/address/input/address-input.st.css.ts +2 -2
  208. package/src/components/audio/actions/actions-menu/actions-menu.st.css.ts +2 -2
  209. package/src/components/audio/audio-field/controlled-audio.uni.driver.ts +35 -0
  210. package/src/components/audio/audio-field/form-audio-field.st.css.ts +2 -2
  211. package/src/components/audio/audio-field/form-audio-field.tsx +41 -1
  212. package/src/components/audio/audio-player/audio-player.st.css.ts +2 -2
  213. package/src/components/color-view/cell-color-view.st.css.ts +2 -2
  214. package/src/components/color-view/color-view.st.css.ts +2 -2
  215. package/src/components/controlled-input.uni.driver.ts +6 -0
  216. package/src/components/delete-dialog/delete-dialog.st.css.ts +2 -2
  217. package/src/components/document/form-document-field.st.css.ts +2 -2
  218. package/src/components/exclamation/exclamation.st.css.ts +2 -2
  219. package/src/components/highlighted-text/highlighted-text.st.css.ts +3 -3
  220. package/src/components/image/controlled-image.uni.driver.ts +30 -0
  221. package/src/components/image/form-image-field.tsx +124 -0
  222. package/src/components/image/form-image-input.tsx +13 -46
  223. package/src/components/image/index.ts +1 -0
  224. package/src/components/image/thumbnail-replace-overlay.st.css.ts +2 -2
  225. package/src/components/media-control/cell-media-edit-shell.st.css.ts +2 -2
  226. package/src/components/media-control/paste-url-button.st.css.ts +2 -2
  227. package/src/components/media-control/use-media-control.ts +4 -3
  228. package/src/components/media-gallery/form-media-gallery-field.st.css.ts +2 -2
  229. package/src/components/media-image/media-image.st.css.ts +3 -3
  230. package/src/components/media-image/overlays/overlay.st.css.ts +2 -2
  231. package/src/components/media-loader/media-loader.st.css.ts +2 -2
  232. package/src/components/media-tag/web-media-tag/media-tag.st.css.ts +2 -2
  233. package/src/components/multi-document/cell-multi-document-edit.st.css.ts +2 -2
  234. package/src/components/multi-document/multi-document-input/form-multi-document.st.css.ts +2 -2
  235. package/src/components/reference/cell-multi-reference-input.st.css.ts +2 -2
  236. package/src/components/reference/cell-reference-input.st.css.ts +2 -2
  237. package/src/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.ts +2 -2
  238. package/src/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.ts +2 -2
  239. package/src/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.ts +2 -2
  240. package/src/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.ts +2 -2
  241. package/src/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.ts +2 -2
  242. package/src/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.ts +2 -2
  243. package/src/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.ts +2 -2
  244. package/src/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.ts +2 -2
  245. package/src/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.ts +2 -2
  246. package/src/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.ts +2 -2
  247. package/src/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.ts +2 -2
  248. package/src/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.ts +2 -2
  249. package/src/components/text/text-view.st.css.ts +2 -2
  250. package/src/components/video/controlled-video.uni.driver.ts +48 -0
  251. package/src/components/video/form-video-field.tsx +268 -0
  252. package/src/components/video/form-video.tsx +21 -179
  253. package/src/components/video/index.ts +6 -0
  254. package/src/styles.global.css +1 -1
@@ -1 +1 @@
1
- {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/components/exclamation/exclamation.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"exclamation1838620114\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style: import(\"@stylable/runtime\").STFunction = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"exclamation1838620114__root\",\"exclamation\":\"exclamation1838620114__exclamation\",\"actions\":\"exclamation1838620114__actions\",\"action\":\"exclamation1838620114__action\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {\"wds-color-fill-warning-primary\":\"--wds-color-fill-warning-primary\",\"wds-color-fill-destructive-primary\":\"--wds-color-fill-destructive-primary\",\"wds-color-blue-100\":\"--wds-color-blue-100\",\"wds-color-blue-200\":\"--wds-color-blue-200\"}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,uBAAuB;AACzC,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAA6C,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AAC3D,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC,6BAA6B;EAAC,aAAa,EAAC,oCAAoC;EAAC,SAAS,EAAC,gCAAgC;EAAC,QAAQ,EAAC;AAA+B,CAAC;AAC3L,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG;EAAC,gCAAgC,EAAC,kCAAkC;EAAC,oCAAoC,EAAC,sCAAsC;EAAC,oBAAoB,EAAC,sBAAsB;EAAC,oBAAoB,EAAC;AAAsB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/components/exclamation/exclamation.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"exclamation2405445415\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style: import(\"@stylable/runtime\").STFunction = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"exclamation2405445415__root\",\"exclamation\":\"exclamation2405445415__exclamation\",\"actions\":\"exclamation2405445415__actions\",\"action\":\"exclamation2405445415__action\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {\"wds-color-fill-warning-primary\":\"--wds-color-fill-warning-primary\",\"wds-color-fill-destructive-primary\":\"--wds-color-fill-destructive-primary\",\"wds-color-blue-100\":\"--wds-color-blue-100\",\"wds-color-blue-200\":\"--wds-color-blue-200\"}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,uBAAuB;AACzC,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAA6C,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AAC3D,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC,6BAA6B;EAAC,aAAa,EAAC,oCAAoC;EAAC,SAAS,EAAC,gCAAgC;EAAC,QAAQ,EAAC;AAA+B,CAAC;AAC3L,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG;EAAC,gCAAgC,EAAC,kCAAkC;EAAC,oCAAoC,EAAC,sCAAsC;EAAC,oBAAoB,EAAC,sBAAsB;EAAC,oBAAoB,EAAC;AAAsB,CAAC","ignoreList":[]}
@@ -5,19 +5,19 @@ exports.vars = exports.style = exports.stVars = exports.st = exports.namespace =
5
5
  var _stylableEsmRuntime = require("../../stylable-esm-runtime.js");
6
6
  // @ts-nocheck
7
7
 
8
- var _namespace_ = "highlightedtext3755398177";
8
+ var _namespace_ = "highlightedtext106472051";
9
9
  var _style_ = _stylableEsmRuntime.classesRuntime.bind(null, _namespace_);
10
10
  var cssStates = exports.cssStates = _stylableEsmRuntime.statesRuntime.bind(null, _namespace_);
11
11
  var style = exports.style = _style_;
12
12
  var st = exports.st = _style_;
13
13
  var namespace = exports.namespace = _namespace_;
14
14
  var classes = exports.classes = {
15
- "root": "highlightedtext3755398177__root",
16
- "substring": "highlightedtext3755398177__substring"
15
+ "root": "highlightedtext106472051__root",
16
+ "substring": "highlightedtext106472051__substring"
17
17
  };
18
18
  var keyframes = exports.keyframes = {
19
- "highlighted": "highlightedtext3755398177__highlighted",
20
- "highlighted-match": "highlightedtext3755398177__highlighted-match"
19
+ "highlighted": "highlightedtext106472051__highlighted",
20
+ "highlighted-match": "highlightedtext106472051__highlighted-match"
21
21
  };
22
22
  var layers = exports.layers = {};
23
23
  var containers = exports.containers = {};
@@ -1 +1 @@
1
- {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/components/highlighted-text/highlighted-text.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"highlightedtext3755398177\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style: import(\"@stylable/runtime\").STFunction = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"highlightedtext3755398177__root\",\"substring\":\"highlightedtext3755398177__substring\"};\nexport var keyframes = {\"highlighted\":\"highlightedtext3755398177__highlighted\",\"highlighted-match\":\"highlightedtext3755398177__highlighted-match\"}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {\"wds-color-yellow-200\":\"--wds-color-yellow-200\",\"wds-color-yellow-400\":\"--wds-color-yellow-400\",\"wsr-color-Y20\":\"--wsr-color-Y20\",\"wsr-color-Y40\":\"--wsr-color-Y40\"}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,2BAA2B;AAC7C,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAA6C,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AAC3D,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC,iCAAiC;EAAC,WAAW,EAAC;AAAsC,CAAC;AAC3G,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG;EAAC,aAAa,EAAC,wCAAwC;EAAC,mBAAmB,EAAC;AAA8C,CAAC;AAC3I,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG;EAAC,sBAAsB,EAAC,wBAAwB;EAAC,sBAAsB,EAAC,wBAAwB;EAAC,eAAe,EAAC,iBAAiB;EAAC,eAAe,EAAC;AAAiB,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/components/highlighted-text/highlighted-text.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"highlightedtext106472051\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style: import(\"@stylable/runtime\").STFunction = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"highlightedtext106472051__root\",\"substring\":\"highlightedtext106472051__substring\"};\nexport var keyframes = {\"highlighted\":\"highlightedtext106472051__highlighted\",\"highlighted-match\":\"highlightedtext106472051__highlighted-match\"}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {\"wds-color-yellow-200\":\"--wds-color-yellow-200\",\"wds-color-yellow-400\":\"--wds-color-yellow-400\",\"wsr-color-Y20\":\"--wsr-color-Y20\",\"wsr-color-Y40\":\"--wsr-color-Y40\"}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,0BAA0B;AAC5C,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAA6C,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AAC3D,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC,gCAAgC;EAAC,WAAW,EAAC;AAAqC,CAAC;AACzG,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG;EAAC,aAAa,EAAC,uCAAuC;EAAC,mBAAmB,EAAC;AAA6C,CAAC;AACzI,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG;EAAC,sBAAsB,EAAC,wBAAwB;EAAC,sBAAsB,EAAC,wBAAwB;EAAC,eAAe,EAAC,iBAAiB;EAAC,eAAe,EAAC;AAAiB,CAAC","ignoreList":[]}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.ControlledImageInputUniDriver = ControlledImageInputUniDriver;
5
+ var _unidriver = require("@wix/design-system/dist/testkit/unidriver");
6
+ function ControlledImageInputUniDriver(base, body) {
7
+ const imageViewer = (0, _unidriver.ImageViewerUniDriver)(base, body);
8
+ // `add-image` is ImageViewer's own hook for its empty-state AddItem.
9
+ const addItem = (0, _unidriver.AddItemUniDriver)(base.$('[data-hook="add-image"]'), body);
10
+ const addButton = base.$('[data-hook="add-image"] [data-hook="additem"]');
11
+ const currentImage = base.$('[data-hook="image-viewer-current-image"]');
12
+ return {
13
+ ...imageViewer,
14
+ clickAddButton: () => imageViewer.clickAdd(),
15
+ isAddButtonFocused: () => addItem.isFocused(),
16
+ isAddButtonDisabled: async () => (await addButton.attr('disabled')) !== null,
17
+ containsFocus: async () => (await base.getNative()).contains(document.activeElement),
18
+ // ImageViewer hides its edit affordances behind a loader until the image
19
+ // loads, and jsdom never fires that event on its own.
20
+ simulateImageLoad: async () => (await currentImage.getNative()).dispatchEvent(new Event('load'))
21
+ };
22
+ }
23
+ //# sourceMappingURL=controlled-image.uni.driver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_unidriver","require","ControlledImageInputUniDriver","base","body","imageViewer","ImageViewerUniDriver","addItem","AddItemUniDriver","$","addButton","currentImage","clickAddButton","clickAdd","isAddButtonFocused","isFocused","isAddButtonDisabled","attr","containsFocus","getNative","contains","document","activeElement","simulateImageLoad","dispatchEvent","Event"],"sources":["../../../../src/components/image/controlled-image.uni.driver.ts"],"sourcesContent":["import { UniDriver } from '@wix/wix-ui-test-utils/unidriver';\nimport {\n AddItemUniDriver,\n ImageViewerUniDriver,\n} from '@wix/design-system/dist/testkit/unidriver';\n\nexport function ControlledImageInputUniDriver(\n base: UniDriver,\n body: UniDriver,\n) {\n const imageViewer = ImageViewerUniDriver(base, body);\n // `add-image` is ImageViewer's own hook for its empty-state AddItem.\n const addItem = AddItemUniDriver(base.$('[data-hook=\"add-image\"]'), body);\n const addButton = base.$('[data-hook=\"add-image\"] [data-hook=\"additem\"]');\n const currentImage = base.$('[data-hook=\"image-viewer-current-image\"]');\n\n return {\n ...imageViewer,\n clickAddButton: () => imageViewer.clickAdd(),\n isAddButtonFocused: () => addItem.isFocused(),\n isAddButtonDisabled: async () =>\n (await addButton.attr('disabled')) !== null,\n containsFocus: async () =>\n (await base.getNative()).contains(document.activeElement),\n // ImageViewer hides its edit affordances behind a loader until the image\n // loads, and jsdom never fires that event on its own.\n simulateImageLoad: async () =>\n (await currentImage.getNative()).dispatchEvent(new Event('load')),\n };\n}\n"],"mappings":";;;;AACA,IAAAA,UAAA,GAAAC,OAAA;AAKO,SAASC,6BAA6BA,CAC3CC,IAAe,EACfC,IAAe,EACf;EACA,MAAMC,WAAW,GAAG,IAAAC,+BAAoB,EAACH,IAAI,EAAEC,IAAI,CAAC;EACpD;EACA,MAAMG,OAAO,GAAG,IAAAC,2BAAgB,EAACL,IAAI,CAACM,CAAC,CAAC,yBAAyB,CAAC,EAAEL,IAAI,CAAC;EACzE,MAAMM,SAAS,GAAGP,IAAI,CAACM,CAAC,CAAC,+CAA+C,CAAC;EACzE,MAAME,YAAY,GAAGR,IAAI,CAACM,CAAC,CAAC,0CAA0C,CAAC;EAEvE,OAAO;IACL,GAAGJ,WAAW;IACdO,cAAc,EAAEA,CAAA,KAAMP,WAAW,CAACQ,QAAQ,CAAC,CAAC;IAC5CC,kBAAkB,EAAEA,CAAA,KAAMP,OAAO,CAACQ,SAAS,CAAC,CAAC;IAC7CC,mBAAmB,EAAE,MAAAA,CAAA,KACnB,CAAC,MAAMN,SAAS,CAACO,IAAI,CAAC,UAAU,CAAC,MAAM,IAAI;IAC7CC,aAAa,EAAE,MAAAA,CAAA,KACb,CAAC,MAAMf,IAAI,CAACgB,SAAS,CAAC,CAAC,EAAEC,QAAQ,CAACC,QAAQ,CAACC,aAAa,CAAC;IAC3D;IACA;IACAC,iBAAiB,EAAE,MAAAA,CAAA,KACjB,CAAC,MAAMZ,YAAY,CAACQ,SAAS,CAAC,CAAC,EAAEK,aAAa,CAAC,IAAIC,KAAK,CAAC,MAAM,CAAC;EACpE,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,124 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.FormImageField = exports.ControlledImageInput = void 0;
6
+ var _react = _interopRequireDefault(require("react"));
7
+ var _designSystem = require("@wix/design-system");
8
+ var _react2 = require("@wix/bex-core/react");
9
+ var _hooks = require("../../hooks");
10
+ var _getImageUrl = require("../../utils/get-image-url");
11
+ var _mediaConstants = require("../../utils/media-constants");
12
+ var _utils = require("../../utils");
13
+ var _mediaControl = require("../media-control");
14
+ var _jsxFileName = "/home/builduser/work/843658b9f44192f0/packages/fields/dist/cjs/components/image/form-image-field.tsx";
15
+ // `invalid` is not part of this contract. ImageViewer has no error prop; it
16
+ // takes its error styling from the enclosing WDS FormField's status context.
17
+ // To show an error, render the field inside a FormField with status="error".
18
+
19
+ const FormImageField = ({
20
+ data,
21
+ onChange: onChangeImage,
22
+ onClear: onClearImage,
23
+ onInput,
24
+ onBlur,
25
+ readOnly,
26
+ autoFocus,
27
+ dataHook,
28
+ inputRef: forwardedRef
29
+ }) => {
30
+ const {
31
+ translate: t
32
+ } = (0, _react2.useWixPatternsContainer)();
33
+ const isMobile = (0, _react2.useIsMobile)();
34
+ const onChange = (0, _hooks.useWithCallback)(onChangeImage, onInput);
35
+ const onClear = (0, _hooks.useWithCallback)(onClearImage, onInput);
36
+ const [inputRef, setInputRef] = (0, _hooks.useMergedRef)(forwardedRef);
37
+ const {
38
+ callMedia,
39
+ onMediaLoad
40
+ } = (0, _mediaControl.useMediaControl)({
41
+ mediaType: _utils.MEDIA_TYPES.IMAGE,
42
+ value: data,
43
+ onChange,
44
+ autoFocus,
45
+ readOnly,
46
+ onBlur,
47
+ inputRef,
48
+ // The focus target is hidden behind ImageViewer's loader until the image
49
+ // arrives, so focusing has to wait for onImageLoad.
50
+ initialLoading: true
51
+ });
52
+ const canEdit = !isMobile && !readOnly;
53
+ return /*#__PURE__*/_react.default.createElement(_designSystem.Box, {
54
+ width: "100%",
55
+ maxWidth: _mediaConstants.MEDIA_MAX_WIDTH,
56
+ __self: void 0,
57
+ __source: {
58
+ fileName: _jsxFileName,
59
+ lineNumber: 68,
60
+ columnNumber: 5
61
+ }
62
+ }, /*#__PURE__*/_react.default.createElement(_designSystem.ImageViewer
63
+ // ImageViewer keeps its focus node on whichever button is live, so
64
+ // one ref serves both the empty and filled states.
65
+ , {
66
+ ref: setInputRef,
67
+ imageUrl: data && (0, _getImageUrl.getImageUrl)(data),
68
+ dataHook: dataHook,
69
+ onImageLoad: onMediaLoad,
70
+ onAddImage: canEdit ? callMedia : undefined,
71
+ onUpdateImage: canEdit ? callMedia : undefined
72
+ // Empty, the only control is the add button, so anything that blocks
73
+ // picking disables the viewer. Filled, removal still works on mobile.
74
+ ,
75
+ disabled: data ? Boolean(readOnly) : !canEdit
76
+ // The buttons render whether or not a handler is given, so the states
77
+ // that cannot use them have to take them away explicitly.
78
+ ,
79
+ showUpdateButton: canEdit,
80
+ showRemoveButton: !readOnly && Boolean(onClearImage),
81
+ updateImageInfo: t('cairo.replace-image.tooltip'),
82
+ removeImageInfo: t('cairo.remove-image.tooltip'),
83
+ addImageInfo: t('cairo.add-image.tooltip'),
84
+ height: _mediaConstants.MEDIA_HEIGHT,
85
+ width: "100%",
86
+ fit: "cover",
87
+ onRemoveImage: onClear,
88
+ __self: void 0,
89
+ __source: {
90
+ fileName: _jsxFileName,
91
+ lineNumber: 69,
92
+ columnNumber: 7
93
+ }
94
+ }));
95
+ };
96
+ exports.FormImageField = FormImageField;
97
+ FormImageField.displayName = 'FormImageField';
98
+ const ControlledImageInput = ({
99
+ data,
100
+ onChange,
101
+ onBlur,
102
+ readOnly,
103
+ autoFocus,
104
+ dataHook
105
+ }) => /*#__PURE__*/_react.default.createElement(FormImageField, {
106
+ data: data,
107
+ onChange: onChange
108
+ // FormImageField reports removal through onClear, not onChange.
109
+ ,
110
+ onClear: () => onChange(undefined),
111
+ onBlur: onBlur,
112
+ readOnly: readOnly,
113
+ autoFocus: autoFocus,
114
+ dataHook: dataHook,
115
+ __self: void 0,
116
+ __source: {
117
+ fileName: _jsxFileName,
118
+ lineNumber: 112,
119
+ columnNumber: 3
120
+ }
121
+ });
122
+ exports.ControlledImageInput = ControlledImageInput;
123
+ ControlledImageInput.displayName = 'ControlledImageInput';
124
+ //# sourceMappingURL=form-image-field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_designSystem","_react2","_hooks","_getImageUrl","_mediaConstants","_utils","_mediaControl","_jsxFileName","FormImageField","data","onChange","onChangeImage","onClear","onClearImage","onInput","onBlur","readOnly","autoFocus","dataHook","inputRef","forwardedRef","translate","t","useWixPatternsContainer","isMobile","useIsMobile","useWithCallback","setInputRef","useMergedRef","callMedia","onMediaLoad","useMediaControl","mediaType","MEDIA_TYPES","IMAGE","value","initialLoading","canEdit","default","createElement","Box","width","maxWidth","MEDIA_MAX_WIDTH","__self","__source","fileName","lineNumber","columnNumber","ImageViewer","ref","imageUrl","getImageUrl","onImageLoad","onAddImage","undefined","onUpdateImage","disabled","Boolean","showUpdateButton","showRemoveButton","updateImageInfo","removeImageInfo","addImageInfo","height","MEDIA_HEIGHT","fit","onRemoveImage","exports","displayName","ControlledImageInput"],"sources":["../../../../src/components/image/form-image-field.tsx"],"sourcesContent":["import type { FC } from 'react';\nimport React from 'react';\n\nimport { Box, ImageViewer } from '@wix/design-system';\nimport { useIsMobile, useWixPatternsContainer } from '@wix/bex-core/react';\n\nimport type { ControlledInputProps } from '../../types/controlled-input';\nimport { useMergedRef, useWithCallback } from '../../hooks';\nimport { getImageUrl } from '../../utils/get-image-url';\nimport { MEDIA_HEIGHT, MEDIA_MAX_WIDTH } from '../../utils/media-constants';\nimport { MEDIA_TYPES } from '../../utils';\nimport type { FormMediaControlProps } from '../media-control';\nimport { useMediaControl } from '../media-control';\n\ninterface ImageViewerActions {\n focus: () => void;\n}\n\n// `invalid` is not part of this contract. ImageViewer has no error prop; it\n// takes its error styling from the enclosing WDS FormField's status context.\n// To show an error, render the field inside a FormField with status=\"error\".\nexport interface FormImageFieldProps\n extends Omit<FormMediaControlProps, 'invalid'> {\n /**\n * Fires when the media manager closes, whether or not a file was picked.\n * A media field has no text control to blur, so the picker closing is its\n * blur signal.\n */\n onBlur?: () => void;\n}\n\nexport const FormImageField: FC<FormImageFieldProps> = ({\n data,\n onChange: onChangeImage,\n onClear: onClearImage,\n onInput,\n onBlur,\n readOnly,\n autoFocus,\n dataHook,\n inputRef: forwardedRef,\n}) => {\n const { translate: t } = useWixPatternsContainer();\n const isMobile = useIsMobile();\n\n const onChange = useWithCallback(onChangeImage, onInput);\n const onClear = useWithCallback(onClearImage, onInput);\n\n const [inputRef, setInputRef] =\n useMergedRef<ImageViewerActions>(forwardedRef);\n\n const { callMedia, onMediaLoad } = useMediaControl({\n mediaType: MEDIA_TYPES.IMAGE,\n value: data,\n onChange,\n autoFocus,\n readOnly,\n onBlur,\n inputRef,\n // The focus target is hidden behind ImageViewer's loader until the image\n // arrives, so focusing has to wait for onImageLoad.\n initialLoading: true,\n });\n\n const canEdit = !isMobile && !readOnly;\n\n return (\n <Box width=\"100%\" maxWidth={MEDIA_MAX_WIDTH}>\n <ImageViewer\n // ImageViewer keeps its focus node on whichever button is live, so\n // one ref serves both the empty and filled states.\n ref={setInputRef}\n imageUrl={data && getImageUrl(data)}\n dataHook={dataHook}\n onImageLoad={onMediaLoad}\n onAddImage={canEdit ? callMedia : undefined}\n onUpdateImage={canEdit ? callMedia : undefined}\n // Empty, the only control is the add button, so anything that blocks\n // picking disables the viewer. Filled, removal still works on mobile.\n disabled={data ? Boolean(readOnly) : !canEdit}\n // The buttons render whether or not a handler is given, so the states\n // that cannot use them have to take them away explicitly.\n showUpdateButton={canEdit}\n showRemoveButton={!readOnly && Boolean(onClearImage)}\n updateImageInfo={t('cairo.replace-image.tooltip')}\n removeImageInfo={t('cairo.remove-image.tooltip')}\n addImageInfo={t('cairo.add-image.tooltip')}\n height={MEDIA_HEIGHT}\n width=\"100%\"\n fit=\"cover\"\n onRemoveImage={onClear}\n />\n </Box>\n );\n};\n\nFormImageField.displayName = 'FormImageField';\n\nexport type ControlledImageInputProps = Omit<\n ControlledInputProps<string | undefined>,\n 'invalid'\n>;\n\nexport const ControlledImageInput: FC<ControlledImageInputProps> = ({\n data,\n onChange,\n onBlur,\n readOnly,\n autoFocus,\n dataHook,\n}) => (\n <FormImageField\n data={data}\n onChange={onChange}\n // FormImageField reports removal through onClear, not onChange.\n onClear={() => onChange(undefined)}\n onBlur={onBlur}\n readOnly={readOnly}\n autoFocus={autoFocus}\n dataHook={dataHook}\n />\n);\n\nControlledImageInput.displayName = 'ControlledImageInput';\n"],"mappings":"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","ignoreList":[]}
@@ -9,9 +9,8 @@ var _mobxReactLite = require("mobx-react-lite");
9
9
  var _react2 = require("@wix/bex-core/react");
10
10
  var _form = require("@wix/bex-core/form");
11
11
  var _string = require("../../validations/string");
12
- var _getImageUrl = require("../../utils/get-image-url");
13
- var _mediaConstants = require("../../utils/media-constants");
14
12
  var _hooks = require("../../hooks");
13
+ var _formImageField = require("./form-image-field");
15
14
  var _jsxFileName = "/home/builduser/work/843658b9f44192f0/packages/fields/dist/cjs/components/image/form-image-input.tsx";
16
15
  const _FormImageInput = props => {
17
16
  var _field$validation2, _controller$fieldStat;
@@ -22,26 +21,8 @@ const _FormImageInput = props => {
22
21
  data
23
22
  } = props;
24
23
  const {
25
- translate: t,
26
- openMediaManager
24
+ translate: t
27
25
  } = (0, _react2.useWixPatternsContainer)();
28
- const isMobile = (0, _react2.useIsMobile)();
29
- async function openMedia() {
30
- if (!openMediaManager) {
31
- return;
32
- }
33
- try {
34
- var _chosenMediaItems$ite;
35
- const chosenMediaItems = await openMediaManager({
36
- multiSelect: false,
37
- category: 'IMAGE'
38
- });
39
- const newImage = chosenMediaItems == null || (_chosenMediaItems$ite = chosenMediaItems.items[0]) == null || (_chosenMediaItems$ite = _chosenMediaItems$ite.media) == null || (_chosenMediaItems$ite = _chosenMediaItems$ite.image) == null ? void 0 : _chosenMediaItems$ite.image;
40
- controller.field.onChange(newImage);
41
- } catch (error) {
42
- console.error('Error opening Media Manager or no files selected:', error);
43
- }
44
- }
45
26
  const controller = (0, _form.useController)({
46
27
  name: (field == null ? void 0 : field.id) ?? '',
47
28
  control: formControl,
@@ -57,7 +38,6 @@ const _FormImageInput = props => {
57
38
  }
58
39
  });
59
40
  const setFieldRef = (0, _hooks.useFieldRef)(controller.field.ref);
60
- const imageUrl = controller.field.value && (0, _getImageUrl.getImageUrl)(controller.field.value);
61
41
  return /*#__PURE__*/_react.default.createElement(_designSystem.FormField, {
62
42
  label: field.displayName,
63
43
  required: (_field$validation2 = field.validation) == null ? void 0 : _field$validation2.required,
@@ -67,42 +47,25 @@ const _FormImageInput = props => {
67
47
  __self: void 0,
68
48
  __source: {
69
49
  fileName: _jsxFileName,
70
- lineNumber: 60,
50
+ lineNumber: 37,
71
51
  columnNumber: 5
72
52
  }
73
- }, /*#__PURE__*/_react.default.createElement(_designSystem.Box, {
74
- width: "100%",
75
- maxWidth: _mediaConstants.MEDIA_MAX_WIDTH,
76
- __self: void 0,
77
- __source: {
78
- fileName: _jsxFileName,
79
- lineNumber: 67,
80
- columnNumber: 7
81
- }
82
- }, /*#__PURE__*/_react.default.createElement(_designSystem.ImageViewer
83
- // ImageViewer keeps its focus node on whichever button is live, so
84
- // one ref serves both the empty and filled states. Lets
85
- // react-hook-form's shouldFocusError reach this field.
53
+ }, /*#__PURE__*/_react.default.createElement(_formImageField.FormImageField
54
+ // Hands the live button to react-hook-form so shouldFocusError can
55
+ // reach this field when it blocks save.
86
56
  , {
87
- ref: setFieldRef,
88
- imageUrl: imageUrl,
57
+ inputRef: setFieldRef,
58
+ data: controller.field.value,
59
+ onChange: value => controller.field.onChange(value),
60
+ onClear: () => controller.field.onChange(null),
89
61
  dataHook: `image-${field.id}`,
90
- onAddImage: isMobile ? undefined : () => openMedia(),
91
- onUpdateImage: isMobile ? undefined : () => openMedia(),
92
- updateImageInfo: t('cairo.replace-image.tooltip'),
93
- removeImageInfo: t('cairo.remove-image.tooltip'),
94
- addImageInfo: t('cairo.add-image.tooltip'),
95
- height: _mediaConstants.MEDIA_HEIGHT,
96
- width: "100%",
97
- fit: "cover",
98
- onRemoveImage: () => controller.field.onChange(null),
99
62
  __self: void 0,
100
63
  __source: {
101
64
  fileName: _jsxFileName,
102
- lineNumber: 68,
103
- columnNumber: 9
65
+ lineNumber: 44,
66
+ columnNumber: 7
104
67
  }
105
- })));
68
+ }));
106
69
  };
107
70
  const FormImageInput = exports.FormImageInput = (0, _mobxReactLite.observer)(_FormImageInput);
108
71
  //# sourceMappingURL=form-image-input.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_react","_interopRequireDefault","require","_designSystem","_mobxReactLite","_react2","_form","_string","_getImageUrl","_mediaConstants","_hooks","_jsxFileName","_FormImageInput","props","_field$validation2","_controller$fieldStat","field","dataHook","formControl","data","translate","t","openMediaManager","useWixPatternsContainer","isMobile","useIsMobile","openMedia","_chosenMediaItems$ite","chosenMediaItems","multiSelect","category","newImage","items","media","image","controller","onChange","error","console","useController","name","id","control","defaultValue","rules","validate","value","_field$validation","validation","required","isEmpty","setFieldRef","useFieldRef","ref","imageUrl","getImageUrl","default","createElement","FormField","label","displayName","status","fieldState","undefined","statusMessage","message","__self","__source","fileName","lineNumber","columnNumber","Box","width","maxWidth","MEDIA_MAX_WIDTH","ImageViewer","onAddImage","onUpdateImage","updateImageInfo","removeImageInfo","addImageInfo","height","MEDIA_HEIGHT","fit","onRemoveImage","FormImageInput","exports","observer"],"sources":["../../../../src/components/image/form-image-input.tsx"],"sourcesContent":["import React from 'react';\nimport { Box, FormField, ImageViewer } from '@wix/design-system';\nimport { observer } from 'mobx-react-lite';\nimport { useIsMobile, useWixPatternsContainer } from '@wix/bex-core/react';\nimport { useController } from '@wix/bex-core/form';\n\nimport { BaseInputProps } from '../../types/base-input';\nimport { isEmpty } from '../../validations/string';\nimport { getImageUrl } from '../../utils/get-image-url';\nimport { MEDIA_HEIGHT, MEDIA_MAX_WIDTH } from '../../utils/media-constants';\nimport { useFieldRef } from '../../hooks';\n\nexport interface FormImageInputProps extends BaseInputProps<string> {}\n\nconst _FormImageInput = (props: FormImageInputProps) => {\n const { field, dataHook, formControl, data } = props;\n\n const { translate: t, openMediaManager } = useWixPatternsContainer();\n const isMobile = useIsMobile();\n\n async function openMedia() {\n if (!openMediaManager) {\n return;\n }\n try {\n const chosenMediaItems = await openMediaManager({\n multiSelect: false,\n category: 'IMAGE',\n });\n\n const newImage = chosenMediaItems?.items[0]?.media?.image?.image;\n\n controller.field.onChange(newImage);\n } catch (error) {\n console.error('Error opening Media Manager or no files selected:', error);\n }\n }\n\n const controller = useController({\n name: field?.id ?? '',\n control: formControl,\n defaultValue: data?.[field?.id ?? ''],\n rules: {\n validate: (value) => {\n if (field.validation?.required && isEmpty(value)) {\n return t('cairo.fieldValidation.requiredField');\n }\n\n return true;\n },\n },\n });\n\n const setFieldRef = useFieldRef(controller.field.ref);\n\n const imageUrl =\n controller.field.value && getImageUrl(controller.field.value);\n\n return (\n <FormField\n label={field.displayName}\n required={field.validation?.required}\n status={controller.fieldState.error ? 'error' : undefined}\n statusMessage={controller.fieldState.error?.message}\n dataHook={dataHook}\n >\n <Box width=\"100%\" maxWidth={MEDIA_MAX_WIDTH}>\n <ImageViewer\n // ImageViewer keeps its focus node on whichever button is live, so\n // one ref serves both the empty and filled states. Lets\n // react-hook-form's shouldFocusError reach this field.\n ref={setFieldRef}\n imageUrl={imageUrl}\n dataHook={`image-${field.id}`}\n onAddImage={isMobile ? undefined : () => openMedia()}\n onUpdateImage={isMobile ? undefined : () => openMedia()}\n updateImageInfo={t('cairo.replace-image.tooltip')}\n removeImageInfo={t('cairo.remove-image.tooltip')}\n addImageInfo={t('cairo.add-image.tooltip')}\n height={MEDIA_HEIGHT}\n width=\"100%\"\n fit=\"cover\"\n onRemoveImage={() => controller.field.onChange(null)}\n />\n </Box>\n </FormField>\n );\n};\n\nexport const FormImageInput = observer(_FormImageInput);\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","_interopRequireDefault","require","_designSystem","_mobxReactLite","_react2","_form","_string","_hooks","_formImageField","_jsxFileName","_FormImageInput","props","_field$validation2","_controller$fieldStat","field","dataHook","formControl","data","translate","t","useWixPatternsContainer","controller","useController","name","id","control","defaultValue","rules","validate","value","_field$validation","validation","required","isEmpty","setFieldRef","useFieldRef","ref","default","createElement","FormField","label","displayName","status","fieldState","error","undefined","statusMessage","message","__self","__source","fileName","lineNumber","columnNumber","FormImageField","inputRef","onChange","onClear","FormImageInput","exports","observer"],"sources":["../../../../src/components/image/form-image-input.tsx"],"sourcesContent":["import React from 'react';\nimport { FormField } from '@wix/design-system';\nimport { observer } from 'mobx-react-lite';\nimport { useWixPatternsContainer } from '@wix/bex-core/react';\nimport { useController } from '@wix/bex-core/form';\n\nimport { BaseInputProps } from '../../types/base-input';\nimport { isEmpty } from '../../validations/string';\nimport { useFieldRef } from '../../hooks';\nimport { FormImageField } from './form-image-field';\n\nexport interface FormImageInputProps extends BaseInputProps<string> {}\n\nconst _FormImageInput = (props: FormImageInputProps) => {\n const { field, dataHook, formControl, data } = props;\n\n const { translate: t } = useWixPatternsContainer();\n\n const controller = useController({\n name: field?.id ?? '',\n control: formControl,\n defaultValue: data?.[field?.id ?? ''],\n rules: {\n validate: (value) => {\n if (field.validation?.required && isEmpty(value)) {\n return t('cairo.fieldValidation.requiredField');\n }\n\n return true;\n },\n },\n });\n\n const setFieldRef = useFieldRef(controller.field.ref);\n\n return (\n <FormField\n label={field.displayName}\n required={field.validation?.required}\n status={controller.fieldState.error ? 'error' : undefined}\n statusMessage={controller.fieldState.error?.message}\n dataHook={dataHook}\n >\n <FormImageField\n // Hands the live button to react-hook-form so shouldFocusError can\n // reach this field when it blocks save.\n inputRef={setFieldRef}\n data={controller.field.value}\n onChange={(value) => controller.field.onChange(value)}\n onClear={() => controller.field.onChange(null)}\n dataHook={`image-${field.id}`}\n />\n </FormField>\n );\n};\n\nexport const FormImageInput = observer(_FormImageInput);\n"],"mappings":";;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,aAAA,GAAAD,OAAA;AACA,IAAAE,cAAA,GAAAF,OAAA;AACA,IAAAG,OAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AAGA,IAAAK,OAAA,GAAAL,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AACA,IAAAO,eAAA,GAAAP,OAAA;AAAoD,IAAAQ,YAAA;AAIpD,MAAMC,eAAe,GAAIC,KAA0B,IAAK;EAAA,IAAAC,kBAAA,EAAAC,qBAAA;EACtD,MAAM;IAAEC,KAAK;IAAEC,QAAQ;IAAEC,WAAW;IAAEC;EAAK,CAAC,GAAGN,KAAK;EAEpD,MAAM;IAAEO,SAAS,EAAEC;EAAE,CAAC,GAAG,IAAAC,+BAAuB,EAAC,CAAC;EAElD,MAAMC,UAAU,GAAG,IAAAC,mBAAa,EAAC;IAC/BC,IAAI,EAAE,CAAAT,KAAK,oBAALA,KAAK,CAAEU,EAAE,KAAI,EAAE;IACrBC,OAAO,EAAET,WAAW;IACpBU,YAAY,EAAET,IAAI,oBAAJA,IAAI,CAAG,CAAAH,KAAK,oBAALA,KAAK,CAAEU,EAAE,KAAI,EAAE,CAAC;IACrCG,KAAK,EAAE;MACLC,QAAQ,EAAGC,KAAK,IAAK;QAAA,IAAAC,iBAAA;QACnB,IAAI,CAAAA,iBAAA,GAAAhB,KAAK,CAACiB,UAAU,aAAhBD,iBAAA,CAAkBE,QAAQ,IAAI,IAAAC,eAAO,EAACJ,KAAK,CAAC,EAAE;UAChD,OAAOV,CAAC,CAAC,qCAAqC,CAAC;QACjD;QAEA,OAAO,IAAI;MACb;IACF;EACF,CAAC,CAAC;EAEF,MAAMe,WAAW,GAAG,IAAAC,kBAAW,EAACd,UAAU,CAACP,KAAK,CAACsB,GAAG,CAAC;EAErD,oBACErC,MAAA,CAAAsC,OAAA,CAAAC,aAAA,CAACpC,aAAA,CAAAqC,SAAS;IACRC,KAAK,EAAE1B,KAAK,CAAC2B,WAAY;IACzBT,QAAQ,GAAApB,kBAAA,GAAEE,KAAK,CAACiB,UAAU,qBAAhBnB,kBAAA,CAAkBoB,QAAS;IACrCU,MAAM,EAAErB,UAAU,CAACsB,UAAU,CAACC,KAAK,GAAG,OAAO,GAAGC,SAAU;IAC1DC,aAAa,GAAAjC,qBAAA,GAAEQ,UAAU,CAACsB,UAAU,CAACC,KAAK,qBAA3B/B,qBAAA,CAA6BkC,OAAQ;IACpDhC,QAAQ,EAAEA,QAAS;IAAAiC,MAAA;IAAAC,QAAA;MAAAC,QAAA,EAAAzC,YAAA;MAAA0C,UAAA;MAAAC,YAAA;IAAA;EAAA,gBAEnBrD,MAAA,CAAAsC,OAAA,CAAAC,aAAA,CAAC9B,eAAA,CAAA6C;EACC;EACA;EAAA;IACAC,QAAQ,EAAEpB,WAAY;IACtBjB,IAAI,EAAEI,UAAU,CAACP,KAAK,CAACe,KAAM;IAC7B0B,QAAQ,EAAG1B,KAAK,IAAKR,UAAU,CAACP,KAAK,CAACyC,QAAQ,CAAC1B,KAAK,CAAE;IACtD2B,OAAO,EAAEA,CAAA,KAAMnC,UAAU,CAACP,KAAK,CAACyC,QAAQ,CAAC,IAAI,CAAE;IAC/CxC,QAAQ,EAAE,SAASD,KAAK,CAACU,EAAE,EAAG;IAAAwB,MAAA;IAAAC,QAAA;MAAAC,QAAA,EAAAzC,YAAA;MAAA0C,UAAA;MAAAC,YAAA;IAAA;EAAA,CAC/B,CACQ,CAAC;AAEhB,CAAC;AAEM,MAAMK,cAAc,GAAAC,OAAA,CAAAD,cAAA,GAAG,IAAAE,uBAAQ,EAACjD,eAAe,CAAC","ignoreList":[]}
@@ -25,6 +25,12 @@ Object.keys(_cellImageEdit).forEach(function (key) {
25
25
  if (key in exports && exports[key] === _cellImageEdit[key]) return;
26
26
  exports[key] = _cellImageEdit[key];
27
27
  });
28
+ var _formImageField = require("./form-image-field");
29
+ Object.keys(_formImageField).forEach(function (key) {
30
+ if (key === "default" || key === "__esModule") return;
31
+ if (key in exports && exports[key] === _formImageField[key]) return;
32
+ exports[key] = _formImageField[key];
33
+ });
28
34
  var _formImageInput = require("./form-image-input");
29
35
  Object.keys(_formImageInput).forEach(function (key) {
30
36
  if (key === "default" || key === "__esModule") return;
@@ -1 +1 @@
1
- {"version":3,"names":["_imageThumbnail","require","Object","keys","forEach","key","exports","_imageView","_imageViewField","_cellImageEdit","_formImageInput"],"sources":["../../../../src/components/image/index.ts"],"sourcesContent":["export * from './image-thumbnail';\nexport * from './image-view';\nexport * from './image-view-field';\nexport * from './cell-image-edit';\nexport * from './form-image-input';\n"],"mappings":";;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,eAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,eAAA,CAAAK,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAL,eAAA,CAAAK,GAAA;AAAA;AACA,IAAAE,UAAA,GAAAN,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAI,UAAA,EAAAH,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAE,UAAA,CAAAF,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAE,UAAA,CAAAF,GAAA;AAAA;AACA,IAAAG,eAAA,GAAAP,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAK,eAAA,EAAAJ,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAG,eAAA,CAAAH,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAG,eAAA,CAAAH,GAAA;AAAA;AACA,IAAAI,cAAA,GAAAR,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAM,cAAA,EAAAL,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAI,cAAA,CAAAJ,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAI,cAAA,CAAAJ,GAAA;AAAA;AACA,IAAAK,eAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,eAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,eAAA,CAAAL,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAK,eAAA,CAAAL,GAAA;AAAA","ignoreList":[]}
1
+ {"version":3,"names":["_imageThumbnail","require","Object","keys","forEach","key","exports","_imageView","_imageViewField","_cellImageEdit","_formImageField","_formImageInput"],"sources":["../../../../src/components/image/index.ts"],"sourcesContent":["export * from './image-thumbnail';\nexport * from './image-view';\nexport * from './image-view-field';\nexport * from './cell-image-edit';\nexport * from './form-image-field';\nexport * from './form-image-input';\n"],"mappings":";;;AAAA,IAAAA,eAAA,GAAAC,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAH,eAAA,EAAAI,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAL,eAAA,CAAAK,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAL,eAAA,CAAAK,GAAA;AAAA;AACA,IAAAE,UAAA,GAAAN,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAI,UAAA,EAAAH,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAE,UAAA,CAAAF,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAE,UAAA,CAAAF,GAAA;AAAA;AACA,IAAAG,eAAA,GAAAP,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAK,eAAA,EAAAJ,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAG,eAAA,CAAAH,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAG,eAAA,CAAAH,GAAA;AAAA;AACA,IAAAI,cAAA,GAAAR,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAM,cAAA,EAAAL,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAI,cAAA,CAAAJ,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAI,cAAA,CAAAJ,GAAA;AAAA;AACA,IAAAK,eAAA,GAAAT,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAO,eAAA,EAAAN,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAK,eAAA,CAAAL,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAK,eAAA,CAAAL,GAAA;AAAA;AACA,IAAAM,eAAA,GAAAV,OAAA;AAAAC,MAAA,CAAAC,IAAA,CAAAQ,eAAA,EAAAP,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAA,GAAA,IAAAC,OAAA,IAAAA,OAAA,CAAAD,GAAA,MAAAM,eAAA,CAAAN,GAAA;EAAAC,OAAA,CAAAD,GAAA,IAAAM,eAAA,CAAAN,GAAA;AAAA","ignoreList":[]}
@@ -5,15 +5,15 @@ exports.vars = exports.style = exports.stVars = exports.st = exports.namespace =
5
5
  var _stylableEsmRuntime = require("../../stylable-esm-runtime.js");
6
6
  // @ts-nocheck
7
7
 
8
- var _namespace_ = "thumbnailreplaceoverlay75913383";
8
+ var _namespace_ = "thumbnailreplaceoverlay1401102869";
9
9
  var _style_ = _stylableEsmRuntime.classesRuntime.bind(null, _namespace_);
10
10
  var cssStates = exports.cssStates = _stylableEsmRuntime.statesRuntime.bind(null, _namespace_);
11
11
  var style = exports.style = _style_;
12
12
  var st = exports.st = _style_;
13
13
  var namespace = exports.namespace = _namespace_;
14
14
  var classes = exports.classes = {
15
- "root": "thumbnailreplaceoverlay75913383__root",
16
- "icon": "thumbnailreplaceoverlay75913383__icon"
15
+ "root": "thumbnailreplaceoverlay1401102869__root",
16
+ "icon": "thumbnailreplaceoverlay1401102869__icon"
17
17
  };
18
18
  var keyframes = exports.keyframes = {};
19
19
  var layers = exports.layers = {};
@@ -1 +1 @@
1
- {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/components/image/thumbnail-replace-overlay.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"thumbnailreplaceoverlay75913383\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style: import(\"@stylable/runtime\").STFunction = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"thumbnailreplaceoverlay75913383__root\",\"icon\":\"thumbnailreplaceoverlay75913383__icon\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,iCAAiC;AACnD,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAA6C,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AAC3D,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC,uCAAuC;EAAC,MAAM,EAAC;AAAuC,CAAC;AAC7G,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/components/image/thumbnail-replace-overlay.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"thumbnailreplaceoverlay1401102869\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style: import(\"@stylable/runtime\").STFunction = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"thumbnailreplaceoverlay1401102869__root\",\"icon\":\"thumbnailreplaceoverlay1401102869__icon\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,mCAAmC;AACrD,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAA6C,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AAC3D,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC,yCAAyC;EAAC,MAAM,EAAC;AAAyC,CAAC;AACjH,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG,CAAC,CAAC","ignoreList":[]}
@@ -5,14 +5,14 @@ exports.vars = exports.style = exports.stVars = exports.st = exports.namespace =
5
5
  var _stylableEsmRuntime = require("../../stylable-esm-runtime.js");
6
6
  // @ts-nocheck
7
7
 
8
- var _namespace_ = "cellmediaeditshell2618943078";
8
+ var _namespace_ = "cellmediaeditshell2282788607";
9
9
  var _style_ = _stylableEsmRuntime.classesRuntime.bind(null, _namespace_);
10
10
  var cssStates = exports.cssStates = _stylableEsmRuntime.statesRuntime.bind(null, _namespace_);
11
11
  var style = exports.style = _style_;
12
12
  var st = exports.st = _style_;
13
13
  var namespace = exports.namespace = _namespace_;
14
14
  var classes = exports.classes = {
15
- "root": "cellmediaeditshell2618943078__root"
15
+ "root": "cellmediaeditshell2282788607__root"
16
16
  };
17
17
  var keyframes = exports.keyframes = {};
18
18
  var layers = exports.layers = {};
@@ -1 +1 @@
1
- {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/components/media-control/cell-media-edit-shell.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"cellmediaeditshell2618943078\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style: import(\"@stylable/runtime\").STFunction = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"cellmediaeditshell2618943078__root\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,8BAA8B;AAChD,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAA6C,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AAC3D,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC;AAAoC,CAAC;AAC3D,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/components/media-control/cell-media-edit-shell.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"cellmediaeditshell2282788607\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style: import(\"@stylable/runtime\").STFunction = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"cellmediaeditshell2282788607__root\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,8BAA8B;AAChD,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAA6C,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AAC3D,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC;AAAoC,CAAC;AAC3D,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG,CAAC,CAAC","ignoreList":[]}
@@ -5,16 +5,16 @@ exports.vars = exports.style = exports.stVars = exports.st = exports.namespace =
5
5
  var _stylableEsmRuntime = require("../../stylable-esm-runtime.js");
6
6
  // @ts-nocheck
7
7
 
8
- var _namespace_ = "pasteurlbutton3914974378";
8
+ var _namespace_ = "pasteurlbutton2169628829";
9
9
  var _style_ = _stylableEsmRuntime.classesRuntime.bind(null, _namespace_);
10
10
  var cssStates = exports.cssStates = _stylableEsmRuntime.statesRuntime.bind(null, _namespace_);
11
11
  var style = exports.style = _style_;
12
12
  var st = exports.st = _style_;
13
13
  var namespace = exports.namespace = _namespace_;
14
14
  var classes = exports.classes = {
15
- "root": "pasteurlbutton3914974378__root",
16
- "iconButtonTooltip": "pasteurlbutton3914974378__iconButtonTooltip",
17
- "iconButton": "pasteurlbutton3914974378__iconButton"
15
+ "root": "pasteurlbutton2169628829__root",
16
+ "iconButtonTooltip": "pasteurlbutton2169628829__iconButtonTooltip",
17
+ "iconButton": "pasteurlbutton2169628829__iconButton"
18
18
  };
19
19
  var keyframes = exports.keyframes = {};
20
20
  var layers = exports.layers = {};
@@ -1 +1 @@
1
- {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/components/media-control/paste-url-button.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"pasteurlbutton3914974378\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style: import(\"@stylable/runtime\").STFunction = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"pasteurlbutton3914974378__root\",\"iconButtonTooltip\":\"pasteurlbutton3914974378__iconButtonTooltip\",\"iconButton\":\"pasteurlbutton3914974378__iconButton\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,0BAA0B;AAC5C,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAA6C,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AAC3D,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC,gCAAgC;EAAC,mBAAmB,EAAC,6CAA6C;EAAC,YAAY,EAAC;AAAsC,CAAC;AAC7K,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG,CAAC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["_stylableEsmRuntime","require","_namespace_","_style_","classesRuntime","bind","cssStates","exports","statesRuntime","style","st","namespace","classes","keyframes","layers","containers","stVars","vars"],"sources":["../../../../src/components/media-control/paste-url-button.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"pasteurlbutton2169628829\";\nvar _style_ = classesRuntime.bind(null, _namespace_);\n\nexport var cssStates = statesRuntime.bind(null, _namespace_);\nexport var style: import(\"@stylable/runtime\").STFunction = _style_;\nexport var st: import(\"@stylable/runtime\").STFunction = _style_;\n\nexport var namespace = _namespace_;\nexport var classes = {\"root\":\"pasteurlbutton2169628829__root\",\"iconButtonTooltip\":\"pasteurlbutton2169628829__iconButtonTooltip\",\"iconButton\":\"pasteurlbutton2169628829__iconButton\"};\nexport var keyframes = {}; \nexport var layers = {};\nexport var containers = {};\nexport var stVars = {}; \nexport var vars = {}; \n\n\n\n\n"],"mappings":";;;;AAGA,IAAAA,mBAAA,GAAAC,OAAA;AAHA;;AAOA,IAAIC,WAAW,GAAG,0BAA0B;AAC5C,IAAIC,OAAO,GAAGC,kCAAc,CAACC,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AAE7C,IAAII,SAAS,GAAAC,OAAA,CAAAD,SAAA,GAAGE,iCAAa,CAACH,IAAI,CAAC,IAAI,EAAEH,WAAW,CAAC;AACrD,IAAIO,KAA6C,GAAAF,OAAA,CAAAE,KAAA,GAAGN,OAAO;AAC3D,IAAIO,EAA0C,GAAAH,OAAA,CAAAG,EAAA,GAAGP,OAAO;AAExD,IAAIQ,SAAS,GAAAJ,OAAA,CAAAI,SAAA,GAAGT,WAAW;AAC3B,IAAIU,OAAO,GAAAL,OAAA,CAAAK,OAAA,GAAG;EAAC,MAAM,EAAC,gCAAgC;EAAC,mBAAmB,EAAC,6CAA6C;EAAC,YAAY,EAAC;AAAsC,CAAC;AAC7K,IAAIC,SAAS,GAAAN,OAAA,CAAAM,SAAA,GAAG,CAAC,CAAC;AAClB,IAAIC,MAAM,GAAAP,OAAA,CAAAO,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,UAAU,GAAAR,OAAA,CAAAQ,UAAA,GAAG,CAAC,CAAC;AACnB,IAAIC,MAAM,GAAAT,OAAA,CAAAS,MAAA,GAAG,CAAC,CAAC;AACf,IAAIC,IAAI,GAAAV,OAAA,CAAAU,IAAA,GAAG,CAAC,CAAC","ignoreList":[]}
@@ -89,7 +89,10 @@ function useMediaControl({
89
89
  inputRef == null || (_inputRef$current2 = inputRef.current) == null || _inputRef$current2.focus();
90
90
  }
91
91
  }, [autoFocus, value, inputRef, viewRef]);
92
- (0, _react.useEffect)(() => setActive(), [setActive]);
92
+
93
+ // `loading` is a dependency because the focus target does not exist while the
94
+ // loader placeholder is up — the effect has to run again once it is gone.
95
+ (0, _react.useEffect)(() => setActive(), [setActive, loading]);
93
96
  const onMediaLoad = (0, _react.useCallback)(() => setLoading(false), []);
94
97
  const callMedia = (0, _react.useCallback)(async index => {
95
98
  if (mediaRequested.current || readOnly) {
@@ -1 +1 @@
1
- {"version":3,"names":["_react","require","_react2","_media","_mediaUtils","_autoFieldTypes","MEDIA_TYPE_TO_CATEGORY","MEDIA_TYPES","IMAGE","VIDEO","AUDIO","extractAudioUrl","audio","_audio$assets","firstAsset","assets","url","undefined","extractMediaUri","mediaItem","media","_media$image","_media$video","_media$document","image","video","document","useMediaControl","mediaType","readOnly","autoFocus","initialLoading","inputRef","viewRef","onFocus","onBlur","params","value","multiSelect","container","useContext","WixPatternsContainerContext","openMediaManager","loading","setLoading","useState","Boolean","mediaRequested","useRef","setActive","useCallback","_viewRef$current","_inputRef$current","current","focus","_inputRef$current2","useEffect","onMediaLoad","callMedia","index","onChange","category","Error","mediaManagerData","items","files","length","newURIs","map","newValue","splice","e","console","error","downloadMedia","mediaUri","_result$downloadUrls","result","generateFileDownloadUrl","downloadUrl","downloadUrls","executeDownloading","getMediaURL"],"sources":["../../../../src/components/media-control/use-media-control.ts"],"sourcesContent":["import { useRef, useState, useEffect, useCallback, useContext } from 'react';\nimport { WixPatternsContainerContext } from '@wix/bex-core/react';\nimport { files } from '@wix/media';\n\nimport { MEDIA_TYPES } from '../../utils/media-utils';\nimport { executeDownloading } from '../../utils/media-utils';\nimport { getMediaURL } from '../../auto-field-types';\n\ntype Focusable = { focus: () => void };\ntype FocusableRef =\n | React.RefObject<Focusable | undefined>\n | React.MutableRefObject<Focusable | undefined>;\n\ninterface UseMediaControlBaseParams {\n mediaType: MEDIA_TYPES;\n autoFocus?: boolean;\n onFocus?: () => void;\n onBlur?: () => void;\n readOnly?: boolean;\n initialLoading?: boolean;\n inputRef?: FocusableRef;\n viewRef?: FocusableRef;\n}\n\ninterface UseSingleMediaControlParams extends UseMediaControlBaseParams {\n value?: string;\n onChange?: (value: string) => void;\n multiSelect?: false;\n}\n\ninterface UseMultiMediaControlParams extends UseMediaControlBaseParams {\n value?: string[];\n onChange?: (value: string[]) => void;\n multiSelect: true;\n}\n\nexport type UseMediaControlParams =\n | UseSingleMediaControlParams\n | UseMultiMediaControlParams;\n\ninterface UseMediaControlBaseReturnType {\n loading: boolean;\n onMediaLoad: () => void;\n}\n\ninterface UseSingleMediaControlReturnType\n extends UseMediaControlBaseReturnType {\n callMedia(): Promise<boolean>;\n downloadMedia(mediaUri?: string): Promise<void>;\n}\n\ninterface UseMultiMediaControlReturnType extends UseMediaControlBaseReturnType {\n callMedia(index?: number): Promise<boolean>;\n downloadMedia(mediaUri?: string): Promise<void>;\n}\n\nexport type UseMediaControlReturnType =\n | UseSingleMediaControlReturnType\n | UseMultiMediaControlReturnType;\n\nconst MEDIA_TYPE_TO_CATEGORY: Partial<Record<MEDIA_TYPES, string>> = {\n [MEDIA_TYPES.IMAGE]: 'IMAGE',\n [MEDIA_TYPES.VIDEO]: 'VIDEO',\n [MEDIA_TYPES.AUDIO]: 'MUSIC',\n};\n\n/**\n * Extracts a playable URL from media.audio, which may be:\n * - a string (wix:audio:// URI or direct URL)\n * - an object with { audio: string } (nested URI)\n * - an object with { assets: [{ url }] } or { assets: [string] }\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst extractAudioUrl = (audio: any): string | undefined => {\n if (audio) {\n if (typeof audio === 'string') {\n return audio;\n }\n if (typeof audio.audio === 'string') {\n return audio.audio;\n }\n const firstAsset = audio.assets?.[0];\n if (typeof firstAsset === 'string') {\n return firstAsset;\n }\n if (typeof firstAsset?.url === 'string') {\n return firstAsset.url;\n }\n }\n return undefined;\n};\n\n/**\n * Extracts the Wix media URI from media manager result.\n * Media manager returns different structures for different media types.\n */\nconst extractMediaUri = (mediaItem: any): string => {\n const { media } = mediaItem || {};\n if (media) {\n return (\n // Try each media type: the URI is nested under media.[type].[type], fallback for direct string values\n media.image?.image ||\n (typeof media.image === 'string' && media.image) ||\n media.video?.video ||\n (typeof media.video === 'string' && media.video) ||\n media.document?.document ||\n (typeof media.document === 'string' && media.document) ||\n extractAudioUrl(media.audio) ||\n ''\n );\n }\n\n return '';\n};\n\nexport function useMediaControl(\n params: UseSingleMediaControlParams,\n): UseSingleMediaControlReturnType;\n\nexport function useMediaControl(\n params: UseMultiMediaControlParams,\n): UseMultiMediaControlReturnType;\n\nexport function useMediaControl({\n mediaType,\n readOnly,\n autoFocus,\n initialLoading,\n inputRef,\n viewRef,\n onFocus,\n onBlur,\n ...params\n}: UseMediaControlParams): UseMediaControlReturnType {\n const { value, multiSelect } = params;\n const container = useContext(WixPatternsContainerContext);\n const openMediaManager = container?.openMediaManager;\n\n const [loading, setLoading] = useState(Boolean(initialLoading && value));\n const mediaRequested = useRef(false);\n\n const setActive = useCallback(() => {\n if (!autoFocus) {\n return;\n }\n\n if (value) {\n viewRef && viewRef?.current?.focus();\n !viewRef && inputRef?.current?.focus();\n } else {\n inputRef?.current?.focus();\n }\n }, [autoFocus, value, inputRef, viewRef]);\n\n useEffect(() => setActive(), [setActive]);\n\n const onMediaLoad = useCallback(() => setLoading(false), []);\n\n const callMedia = useCallback(\n async (index?: number): Promise<boolean> => {\n if (mediaRequested.current || readOnly) {\n return false;\n }\n\n if (!params.onChange) {\n return false;\n }\n\n mediaRequested.current = true;\n\n onFocus?.();\n setLoading(true);\n\n try {\n const category = MEDIA_TYPE_TO_CATEGORY[mediaType];\n if (!openMediaManager) {\n throw new Error(\n 'Media Control Error: openMediaManager is not available in the current context.',\n );\n }\n const mediaManagerData = await openMediaManager({\n multiSelect: Boolean(multiSelect),\n ...(category && { category }),\n });\n\n onBlur?.();\n setLoading(false);\n\n setActive();\n\n mediaRequested.current = false;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const items =\n mediaManagerData?.items || (mediaManagerData as any)?.files;\n\n if (!items?.length) {\n return false;\n }\n\n if (params.multiSelect) {\n const newURIs = items.map(extractMediaUri);\n\n if (!newURIs.length) {\n throw new Error(\n `Media Control Error: Media Manager returns not-covered Multi-Document data.`,\n );\n }\n\n if (typeof index === 'number') {\n const newValue = value ? [...value] : [];\n newValue.splice(index, 1, ...newURIs);\n params.onChange(newValue);\n } else {\n params.onChange([...((value as string[]) ?? []), ...newURIs]);\n }\n } else {\n params.onChange(extractMediaUri(items[0]));\n }\n return true;\n } catch (e) {\n setLoading(false);\n mediaRequested.current = false;\n console.error(`Media Control Error:`, e);\n return false;\n }\n },\n [\n mediaType,\n multiSelect,\n onBlur,\n onFocus,\n openMediaManager,\n params,\n readOnly,\n setActive,\n value,\n ],\n );\n\n const downloadMedia = useCallback(async (mediaUri?: string) => {\n if (!mediaUri) {\n return;\n }\n\n try {\n const result = await files.generateFileDownloadUrl(mediaUri);\n const downloadUrl = result.downloadUrls?.[0]?.url;\n if (!downloadUrl) {\n throw new Error('No download URL returned');\n }\n return executeDownloading(downloadUrl);\n } catch (error) {\n // Fallback: open the static URL in a new tab\n console.error('Media download error, falling back to static URL:', error);\n return executeDownloading(getMediaURL(mediaUri));\n }\n }, []);\n\n return {\n loading,\n callMedia,\n downloadMedia,\n onMediaLoad,\n };\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_react","require","_react2","_media","_mediaUtils","_autoFieldTypes","MEDIA_TYPE_TO_CATEGORY","MEDIA_TYPES","IMAGE","VIDEO","AUDIO","extractAudioUrl","audio","_audio$assets","firstAsset","assets","url","undefined","extractMediaUri","mediaItem","media","_media$image","_media$video","_media$document","image","video","document","useMediaControl","mediaType","readOnly","autoFocus","initialLoading","inputRef","viewRef","onFocus","onBlur","params","value","multiSelect","container","useContext","WixPatternsContainerContext","openMediaManager","loading","setLoading","useState","Boolean","mediaRequested","useRef","setActive","useCallback","_viewRef$current","_inputRef$current","current","focus","_inputRef$current2","useEffect","onMediaLoad","callMedia","index","onChange","category","Error","mediaManagerData","items","files","length","newURIs","map","newValue","splice","e","console","error","downloadMedia","mediaUri","_result$downloadUrls","result","generateFileDownloadUrl","downloadUrl","downloadUrls","executeDownloading","getMediaURL"],"sources":["../../../../src/components/media-control/use-media-control.ts"],"sourcesContent":["import { useRef, useState, useEffect, useCallback, useContext } from 'react';\nimport { WixPatternsContainerContext } from '@wix/bex-core/react';\nimport { files } from '@wix/media';\n\nimport { executeDownloading, MEDIA_TYPES } from '../../utils/media-utils';\nimport { getMediaURL } from '../../auto-field-types';\n\ntype Focusable = { focus: () => void };\ntype FocusableRef =\n | React.RefObject<Focusable | undefined>\n | React.MutableRefObject<Focusable | undefined>;\n\ninterface UseMediaControlBaseParams {\n mediaType: MEDIA_TYPES;\n autoFocus?: boolean;\n onFocus?: () => void;\n onBlur?: () => void;\n readOnly?: boolean;\n initialLoading?: boolean;\n inputRef?: FocusableRef;\n viewRef?: FocusableRef;\n}\n\ninterface UseSingleMediaControlParams extends UseMediaControlBaseParams {\n value?: string;\n onChange?: (value: string) => void;\n multiSelect?: false;\n}\n\ninterface UseMultiMediaControlParams extends UseMediaControlBaseParams {\n value?: string[];\n onChange?: (value: string[]) => void;\n multiSelect: true;\n}\n\nexport type UseMediaControlParams =\n | UseSingleMediaControlParams\n | UseMultiMediaControlParams;\n\ninterface UseMediaControlBaseReturnType {\n loading: boolean;\n onMediaLoad: () => void;\n}\n\ninterface UseSingleMediaControlReturnType\n extends UseMediaControlBaseReturnType {\n callMedia(): Promise<boolean>;\n downloadMedia(mediaUri?: string): Promise<void>;\n}\n\ninterface UseMultiMediaControlReturnType extends UseMediaControlBaseReturnType {\n callMedia(index?: number): Promise<boolean>;\n downloadMedia(mediaUri?: string): Promise<void>;\n}\n\nexport type UseMediaControlReturnType =\n | UseSingleMediaControlReturnType\n | UseMultiMediaControlReturnType;\n\nconst MEDIA_TYPE_TO_CATEGORY: Partial<Record<MEDIA_TYPES, string>> = {\n [MEDIA_TYPES.IMAGE]: 'IMAGE',\n [MEDIA_TYPES.VIDEO]: 'VIDEO',\n [MEDIA_TYPES.AUDIO]: 'MUSIC',\n};\n\n/**\n * Extracts a playable URL from media.audio, which may be:\n * - a string (wix:audio:// URI or direct URL)\n * - an object with { audio: string } (nested URI)\n * - an object with { assets: [{ url }] } or { assets: [string] }\n */\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nconst extractAudioUrl = (audio: any): string | undefined => {\n if (audio) {\n if (typeof audio === 'string') {\n return audio;\n }\n if (typeof audio.audio === 'string') {\n return audio.audio;\n }\n const firstAsset = audio.assets?.[0];\n if (typeof firstAsset === 'string') {\n return firstAsset;\n }\n if (typeof firstAsset?.url === 'string') {\n return firstAsset.url;\n }\n }\n return undefined;\n};\n\n/**\n * Extracts the Wix media URI from media manager result.\n * Media manager returns different structures for different media types.\n */\nconst extractMediaUri = (mediaItem: any): string => {\n const { media } = mediaItem || {};\n if (media) {\n return (\n // Try each media type: the URI is nested under media.[type].[type], fallback for direct string values\n media.image?.image ||\n (typeof media.image === 'string' && media.image) ||\n media.video?.video ||\n (typeof media.video === 'string' && media.video) ||\n media.document?.document ||\n (typeof media.document === 'string' && media.document) ||\n extractAudioUrl(media.audio) ||\n ''\n );\n }\n\n return '';\n};\n\nexport function useMediaControl(\n params: UseSingleMediaControlParams,\n): UseSingleMediaControlReturnType;\n\nexport function useMediaControl(\n params: UseMultiMediaControlParams,\n): UseMultiMediaControlReturnType;\n\nexport function useMediaControl({\n mediaType,\n readOnly,\n autoFocus,\n initialLoading,\n inputRef,\n viewRef,\n onFocus,\n onBlur,\n ...params\n}: UseMediaControlParams): UseMediaControlReturnType {\n const { value, multiSelect } = params;\n const container = useContext(WixPatternsContainerContext);\n const openMediaManager = container?.openMediaManager;\n\n const [loading, setLoading] = useState(Boolean(initialLoading && value));\n const mediaRequested = useRef(false);\n\n const setActive = useCallback(() => {\n if (!autoFocus) {\n return;\n }\n\n if (value) {\n viewRef && viewRef?.current?.focus();\n !viewRef && inputRef?.current?.focus();\n } else {\n inputRef?.current?.focus();\n }\n }, [autoFocus, value, inputRef, viewRef]);\n\n // `loading` is a dependency because the focus target does not exist while the\n // loader placeholder is up — the effect has to run again once it is gone.\n useEffect(() => setActive(), [setActive, loading]);\n\n const onMediaLoad = useCallback(() => setLoading(false), []);\n\n const callMedia = useCallback(\n async (index?: number): Promise<boolean> => {\n if (mediaRequested.current || readOnly) {\n return false;\n }\n\n if (!params.onChange) {\n return false;\n }\n\n mediaRequested.current = true;\n\n onFocus?.();\n setLoading(true);\n\n try {\n const category = MEDIA_TYPE_TO_CATEGORY[mediaType];\n if (!openMediaManager) {\n throw new Error(\n 'Media Control Error: openMediaManager is not available in the current context.',\n );\n }\n const mediaManagerData = await openMediaManager({\n multiSelect: Boolean(multiSelect),\n ...(category && { category }),\n });\n\n onBlur?.();\n setLoading(false);\n\n setActive();\n\n mediaRequested.current = false;\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n const items =\n mediaManagerData?.items || (mediaManagerData as any)?.files;\n\n if (!items?.length) {\n return false;\n }\n\n if (params.multiSelect) {\n const newURIs = items.map(extractMediaUri);\n\n if (!newURIs.length) {\n throw new Error(\n `Media Control Error: Media Manager returns not-covered Multi-Document data.`,\n );\n }\n\n if (typeof index === 'number') {\n const newValue = value ? [...value] : [];\n newValue.splice(index, 1, ...newURIs);\n params.onChange(newValue);\n } else {\n params.onChange([...((value as string[]) ?? []), ...newURIs]);\n }\n } else {\n params.onChange(extractMediaUri(items[0]));\n }\n return true;\n } catch (e) {\n setLoading(false);\n mediaRequested.current = false;\n console.error(`Media Control Error:`, e);\n return false;\n }\n },\n [\n mediaType,\n multiSelect,\n onBlur,\n onFocus,\n openMediaManager,\n params,\n readOnly,\n setActive,\n value,\n ],\n );\n\n const downloadMedia = useCallback(async (mediaUri?: string) => {\n if (!mediaUri) {\n return;\n }\n\n try {\n const result = await files.generateFileDownloadUrl(mediaUri);\n const downloadUrl = result.downloadUrls?.[0]?.url;\n if (!downloadUrl) {\n throw new Error('No download URL returned');\n }\n return executeDownloading(downloadUrl);\n } catch (error) {\n // Fallback: open the static URL in a new tab\n console.error('Media download error, falling back to static URL:', error);\n return executeDownloading(getMediaURL(mediaUri));\n }\n }, []);\n\n return {\n loading,\n callMedia,\n downloadMedia,\n onMediaLoad,\n };\n}\n"],"mappings":"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","ignoreList":[]}