@wix/auto-patterns 1.50.0 → 1.51.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 (268) hide show
  1. package/dist/cjs/assets/locale/messages_en.json +68 -1
  2. package/dist/cjs/cms-fields/auto-cms-field-types/index.js +3 -1
  3. package/dist/cjs/cms-fields/auto-cms-field-types/index.js.map +1 -1
  4. package/dist/cjs/cms-fields/auto-cms-field-types/media-manager.js +24 -21
  5. package/dist/cjs/cms-fields/auto-cms-field-types/media-manager.js.map +1 -1
  6. package/dist/cjs/cms-fields/auto-cms-field-types/media-types.js.map +1 -1
  7. package/dist/cjs/cms-fields/components/address/input/address-input.st.css.js +3 -3
  8. package/dist/cjs/cms-fields/components/address/input/address-input.st.css.js.map +1 -1
  9. package/dist/cjs/cms-fields/components/audio/actions/actions-menu/actions-menu.st.css.js +3 -3
  10. package/dist/cjs/cms-fields/components/audio/actions/actions-menu/actions-menu.st.css.js.map +1 -1
  11. package/dist/cjs/cms-fields/components/audio/audio-field/form-audio-field.st.css.js +4 -4
  12. package/dist/cjs/cms-fields/components/audio/audio-field/form-audio-field.st.css.js.map +1 -1
  13. package/dist/cjs/cms-fields/components/audio/audio-player/audio-player.st.css.js +2 -2
  14. package/dist/cjs/cms-fields/components/audio/audio-player/audio-player.st.css.js.map +1 -1
  15. package/dist/cjs/cms-fields/components/delete-dialog/delete-dialog.st.css.js +3 -3
  16. package/dist/cjs/cms-fields/components/delete-dialog/delete-dialog.st.css.js.map +1 -1
  17. package/dist/cjs/cms-fields/components/document/form-document-field.st.css.js +7 -7
  18. package/dist/cjs/cms-fields/components/document/form-document-field.st.css.js.map +1 -1
  19. package/dist/cjs/cms-fields/components/exclamation/exclamation.st.css.js +5 -5
  20. package/dist/cjs/cms-fields/components/exclamation/exclamation.st.css.js.map +1 -1
  21. package/dist/cjs/cms-fields/components/highlighted-text/highlighted-text.st.css.js +5 -5
  22. package/dist/cjs/cms-fields/components/highlighted-text/highlighted-text.st.css.js.map +1 -1
  23. package/dist/cjs/cms-fields/components/media-control/paste-url-button.st.css.js +4 -4
  24. package/dist/cjs/cms-fields/components/media-control/paste-url-button.st.css.js.map +1 -1
  25. package/dist/cjs/cms-fields/components/media-gallery/form-media-gallery-field.js +275 -0
  26. package/dist/cjs/cms-fields/components/media-gallery/form-media-gallery-field.js.map +1 -0
  27. package/dist/cjs/cms-fields/components/media-gallery/form-media-gallery-field.st.css +51 -0
  28. package/dist/cjs/cms-fields/components/media-gallery/form-media-gallery-field.st.css.js +30 -0
  29. package/dist/cjs/cms-fields/components/media-gallery/form-media-gallery-field.st.css.js.map +1 -0
  30. package/dist/cjs/cms-fields/components/media-gallery/form-media-gallery-field.uni.driver.js +14 -0
  31. package/dist/cjs/cms-fields/components/media-gallery/form-media-gallery-field.uni.driver.js.map +1 -0
  32. package/dist/cjs/cms-fields/components/media-gallery/form-media-gallery-items-preview.js +134 -0
  33. package/dist/cjs/cms-fields/components/media-gallery/form-media-gallery-items-preview.js.map +1 -0
  34. package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/add-link-modal.js +172 -0
  35. package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/add-link-modal.js.map +1 -0
  36. package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/add-media-button.js +50 -0
  37. package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/add-media-button.js.map +1 -0
  38. package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/content-keys.js +44 -0
  39. package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/content-keys.js.map +1 -0
  40. package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/hooks.js +89 -0
  41. package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/hooks.js.map +1 -0
  42. package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/item-actions.js +61 -0
  43. package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/item-actions.js.map +1 -0
  44. package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/media-gallery-dialog.js +181 -0
  45. package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/media-gallery-dialog.js.map +1 -0
  46. package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/no-items-view.js +71 -0
  47. package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/no-items-view.js.map +1 -0
  48. package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/types.js +4 -0
  49. package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/types.js.map +1 -0
  50. package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/use-add-link-modal.js +24 -0
  51. package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/use-add-link-modal.js.map +1 -0
  52. package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/utils.js +289 -0
  53. package/dist/cjs/cms-fields/components/media-gallery/media-gallery-dialog/utils.js.map +1 -0
  54. package/dist/cjs/cms-fields/components/media-gallery/media-preview-modal.js +274 -0
  55. package/dist/cjs/cms-fields/components/media-gallery/media-preview-modal.js.map +1 -0
  56. package/dist/cjs/cms-fields/components/media-image/media-image.st.css.js +4 -4
  57. package/dist/cjs/cms-fields/components/media-image/media-image.st.css.js.map +1 -1
  58. package/dist/cjs/cms-fields/components/media-loader/media-loader.st.css.js +3 -3
  59. package/dist/cjs/cms-fields/components/media-loader/media-loader.st.css.js.map +1 -1
  60. package/dist/cjs/cms-fields/components/media-tag/web-media-tag/media-tag.st.css.js +2 -2
  61. package/dist/cjs/cms-fields/components/media-tag/web-media-tag/media-tag.st.css.js.map +1 -1
  62. package/dist/cjs/cms-fields/components/multi-document/multi-document-input/form-multi-document.st.css.js +5 -5
  63. package/dist/cjs/cms-fields/components/multi-document/multi-document-input/form-multi-document.st.css.js.map +1 -1
  64. package/dist/cjs/cms-fields/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.js +6 -6
  65. package/dist/cjs/cms-fields/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.js.map +1 -1
  66. package/dist/cjs/cms-fields/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js +5 -5
  67. package/dist/cjs/cms-fields/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js.map +1 -1
  68. package/dist/cjs/cms-fields/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.js +2 -2
  69. package/dist/cjs/cms-fields/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.js.map +1 -1
  70. package/dist/cjs/cms-fields/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js +3 -3
  71. package/dist/cjs/cms-fields/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js.map +1 -1
  72. package/dist/cjs/cms-fields/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js +3 -3
  73. package/dist/cjs/cms-fields/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js.map +1 -1
  74. package/dist/cjs/cms-fields/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js +2 -2
  75. package/dist/cjs/cms-fields/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js.map +1 -1
  76. package/dist/cjs/cms-fields/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js +9 -9
  77. package/dist/cjs/cms-fields/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js.map +1 -1
  78. package/dist/cjs/cms-fields/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js +4 -4
  79. package/dist/cjs/cms-fields/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js.map +1 -1
  80. package/dist/cjs/cms-fields/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js +4 -4
  81. package/dist/cjs/cms-fields/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js.map +1 -1
  82. package/dist/cjs/cms-fields/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js +18 -18
  83. package/dist/cjs/cms-fields/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js.map +1 -1
  84. package/dist/cjs/cms-fields/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js +4 -4
  85. package/dist/cjs/cms-fields/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js.map +1 -1
  86. package/dist/cjs/cms-fields/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js +18 -18
  87. package/dist/cjs/cms-fields/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js.map +1 -1
  88. package/dist/cjs/cms-fields/components/text/text-view.st.css.js +3 -3
  89. package/dist/cjs/cms-fields/components/text/text-view.st.css.js.map +1 -1
  90. package/dist/cjs/cms-fields/utils/media-item-utils.js +261 -0
  91. package/dist/cjs/cms-fields/utils/media-item-utils.js.map +1 -0
  92. package/dist/cjs/components/AutoPatternsApp/AutoPatternsAppTestPolyfills.js +5 -0
  93. package/dist/cjs/components/AutoPatternsApp/AutoPatternsAppTestPolyfills.js.map +1 -1
  94. package/dist/cjs/components/fields/MediaGallery.js +67 -0
  95. package/dist/cjs/components/fields/MediaGallery.js.map +1 -0
  96. package/dist/cjs/components/fields/index.js +5 -2
  97. package/dist/cjs/components/fields/index.js.map +1 -1
  98. package/dist/cjs/components/layouts/FormField.js +3 -2
  99. package/dist/cjs/components/layouts/FormField.js.map +1 -1
  100. package/dist/cjs/hooks/useColumns.js.map +1 -1
  101. package/dist/cjs/hooks/usePersistedState.js +24 -0
  102. package/dist/cjs/hooks/usePersistedState.js.map +1 -0
  103. package/dist/cjs/services/translations.js.map +1 -1
  104. package/dist/cjs/styles.global.css +1 -1
  105. package/dist/esm/assets/locale/messages_en.json +68 -1
  106. package/dist/esm/cms-fields/auto-cms-field-types/index.js +1 -1
  107. package/dist/esm/cms-fields/auto-cms-field-types/index.js.map +1 -1
  108. package/dist/esm/cms-fields/auto-cms-field-types/media-manager.js +3 -1
  109. package/dist/esm/cms-fields/auto-cms-field-types/media-manager.js.map +1 -1
  110. package/dist/esm/cms-fields/auto-cms-field-types/media-types.js.map +1 -1
  111. package/dist/esm/cms-fields/components/address/input/address-input.st.css.js +3 -3
  112. package/dist/esm/cms-fields/components/address/input/address-input.st.css.js.map +1 -1
  113. package/dist/esm/cms-fields/components/audio/actions/actions-menu/actions-menu.st.css.js +3 -3
  114. package/dist/esm/cms-fields/components/audio/actions/actions-menu/actions-menu.st.css.js.map +1 -1
  115. package/dist/esm/cms-fields/components/audio/audio-field/form-audio-field.st.css.js +4 -4
  116. package/dist/esm/cms-fields/components/audio/audio-field/form-audio-field.st.css.js.map +1 -1
  117. package/dist/esm/cms-fields/components/audio/audio-player/audio-player.st.css.js +2 -2
  118. package/dist/esm/cms-fields/components/audio/audio-player/audio-player.st.css.js.map +1 -1
  119. package/dist/esm/cms-fields/components/delete-dialog/delete-dialog.st.css.js +3 -3
  120. package/dist/esm/cms-fields/components/delete-dialog/delete-dialog.st.css.js.map +1 -1
  121. package/dist/esm/cms-fields/components/document/form-document-field.st.css.js +7 -7
  122. package/dist/esm/cms-fields/components/document/form-document-field.st.css.js.map +1 -1
  123. package/dist/esm/cms-fields/components/exclamation/exclamation.st.css.js +5 -5
  124. package/dist/esm/cms-fields/components/exclamation/exclamation.st.css.js.map +1 -1
  125. package/dist/esm/cms-fields/components/highlighted-text/highlighted-text.st.css.js +5 -5
  126. package/dist/esm/cms-fields/components/highlighted-text/highlighted-text.st.css.js.map +1 -1
  127. package/dist/esm/cms-fields/components/media-control/paste-url-button.st.css.js +4 -4
  128. package/dist/esm/cms-fields/components/media-control/paste-url-button.st.css.js.map +1 -1
  129. package/dist/esm/cms-fields/components/media-gallery/form-media-gallery-field.js +164 -0
  130. package/dist/esm/cms-fields/components/media-gallery/form-media-gallery-field.js.map +1 -0
  131. package/dist/esm/cms-fields/components/media-gallery/form-media-gallery-field.st.css +51 -0
  132. package/dist/esm/cms-fields/components/media-gallery/form-media-gallery-field.st.css.js +26 -0
  133. package/dist/esm/cms-fields/components/media-gallery/form-media-gallery-field.st.css.js.map +1 -0
  134. package/dist/esm/cms-fields/components/media-gallery/form-media-gallery-field.uni.driver.js +10 -0
  135. package/dist/esm/cms-fields/components/media-gallery/form-media-gallery-field.uni.driver.js.map +1 -0
  136. package/dist/esm/cms-fields/components/media-gallery/form-media-gallery-items-preview.js +110 -0
  137. package/dist/esm/cms-fields/components/media-gallery/form-media-gallery-items-preview.js.map +1 -0
  138. package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/add-link-modal.js +106 -0
  139. package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/add-link-modal.js.map +1 -0
  140. package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/add-media-button.js +25 -0
  141. package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/add-media-button.js.map +1 -0
  142. package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/content-keys.js +40 -0
  143. package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/content-keys.js.map +1 -0
  144. package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/hooks.js +81 -0
  145. package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/hooks.js.map +1 -0
  146. package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/item-actions.js +37 -0
  147. package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/item-actions.js.map +1 -0
  148. package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/media-gallery-dialog.js +152 -0
  149. package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/media-gallery-dialog.js.map +1 -0
  150. package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/no-items-view.js +34 -0
  151. package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/no-items-view.js.map +1 -0
  152. package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/types.js +2 -0
  153. package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/types.js.map +1 -0
  154. package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/use-add-link-modal.js +19 -0
  155. package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/use-add-link-modal.js.map +1 -0
  156. package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/utils.js +288 -0
  157. package/dist/esm/cms-fields/components/media-gallery/media-gallery-dialog/utils.js.map +1 -0
  158. package/dist/esm/cms-fields/components/media-gallery/media-preview-modal.js +147 -0
  159. package/dist/esm/cms-fields/components/media-gallery/media-preview-modal.js.map +1 -0
  160. package/dist/esm/cms-fields/components/media-image/media-image.st.css.js +4 -4
  161. package/dist/esm/cms-fields/components/media-image/media-image.st.css.js.map +1 -1
  162. package/dist/esm/cms-fields/components/media-loader/media-loader.st.css.js +3 -3
  163. package/dist/esm/cms-fields/components/media-loader/media-loader.st.css.js.map +1 -1
  164. package/dist/esm/cms-fields/components/media-tag/web-media-tag/media-tag.st.css.js +2 -2
  165. package/dist/esm/cms-fields/components/media-tag/web-media-tag/media-tag.st.css.js.map +1 -1
  166. package/dist/esm/cms-fields/components/multi-document/multi-document-input/form-multi-document.st.css.js +5 -5
  167. package/dist/esm/cms-fields/components/multi-document/multi-document-input/form-multi-document.st.css.js.map +1 -1
  168. package/dist/esm/cms-fields/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.js +6 -6
  169. package/dist/esm/cms-fields/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.js.map +1 -1
  170. package/dist/esm/cms-fields/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js +5 -5
  171. package/dist/esm/cms-fields/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js.map +1 -1
  172. package/dist/esm/cms-fields/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.js +2 -2
  173. package/dist/esm/cms-fields/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.js.map +1 -1
  174. package/dist/esm/cms-fields/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js +3 -3
  175. package/dist/esm/cms-fields/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js.map +1 -1
  176. package/dist/esm/cms-fields/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js +3 -3
  177. package/dist/esm/cms-fields/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js.map +1 -1
  178. package/dist/esm/cms-fields/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js +2 -2
  179. package/dist/esm/cms-fields/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js.map +1 -1
  180. package/dist/esm/cms-fields/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js +9 -9
  181. package/dist/esm/cms-fields/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js.map +1 -1
  182. package/dist/esm/cms-fields/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js +4 -4
  183. package/dist/esm/cms-fields/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js.map +1 -1
  184. package/dist/esm/cms-fields/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js +4 -4
  185. package/dist/esm/cms-fields/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js.map +1 -1
  186. package/dist/esm/cms-fields/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js +18 -18
  187. package/dist/esm/cms-fields/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js.map +1 -1
  188. package/dist/esm/cms-fields/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js +4 -4
  189. package/dist/esm/cms-fields/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js.map +1 -1
  190. package/dist/esm/cms-fields/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js +18 -18
  191. package/dist/esm/cms-fields/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js.map +1 -1
  192. package/dist/esm/cms-fields/components/text/text-view.st.css.js +3 -3
  193. package/dist/esm/cms-fields/components/text/text-view.st.css.js.map +1 -1
  194. package/dist/esm/cms-fields/utils/media-item-utils.js +261 -0
  195. package/dist/esm/cms-fields/utils/media-item-utils.js.map +1 -0
  196. package/dist/esm/components/AutoPatternsApp/AutoPatternsAppTestPolyfills.js +5 -0
  197. package/dist/esm/components/AutoPatternsApp/AutoPatternsAppTestPolyfills.js.map +1 -1
  198. package/dist/esm/components/fields/MediaGallery.js +48 -0
  199. package/dist/esm/components/fields/MediaGallery.js.map +1 -0
  200. package/dist/esm/components/fields/index.js +1 -0
  201. package/dist/esm/components/fields/index.js.map +1 -1
  202. package/dist/esm/components/layouts/FormField.js +3 -2
  203. package/dist/esm/components/layouts/FormField.js.map +1 -1
  204. package/dist/esm/hooks/useColumns.js +1 -1
  205. package/dist/esm/hooks/useColumns.js.map +1 -1
  206. package/dist/esm/hooks/usePersistedState.js +20 -0
  207. package/dist/esm/hooks/usePersistedState.js.map +1 -0
  208. package/dist/esm/services/translations.js.map +1 -1
  209. package/dist/esm/styles.global.css +1 -1
  210. package/dist/types/cms-fields/auto-cms-field-types/index.d.ts +2 -2
  211. package/dist/types/cms-fields/auto-cms-field-types/index.d.ts.map +1 -1
  212. package/dist/types/cms-fields/auto-cms-field-types/media-manager.d.ts +2 -0
  213. package/dist/types/cms-fields/auto-cms-field-types/media-manager.d.ts.map +1 -1
  214. package/dist/types/cms-fields/auto-cms-field-types/media-types.d.ts +1 -1
  215. package/dist/types/cms-fields/auto-cms-field-types/media-types.d.ts.map +1 -1
  216. package/dist/types/cms-fields/components/address/input/address-input.st.css.d.ts.map +1 -1
  217. package/dist/types/cms-fields/components/audio/actions/actions-menu/actions-menu.st.css.d.ts.map +1 -1
  218. package/dist/types/cms-fields/components/audio/audio-field/form-audio-field.st.css.d.ts.map +1 -1
  219. package/dist/types/cms-fields/components/audio/audio-player/audio-player.st.css.d.ts.map +1 -1
  220. package/dist/types/cms-fields/components/delete-dialog/delete-dialog.st.css.d.ts.map +1 -1
  221. package/dist/types/cms-fields/components/document/form-document-field.st.css.d.ts.map +1 -1
  222. package/dist/types/cms-fields/components/exclamation/exclamation.st.css.d.ts.map +1 -1
  223. package/dist/types/cms-fields/components/media-gallery/form-media-gallery-field.d.ts +13 -0
  224. package/dist/types/cms-fields/components/media-gallery/form-media-gallery-field.d.ts.map +1 -0
  225. package/dist/types/cms-fields/components/media-gallery/form-media-gallery-field.st.css.d.ts +21 -0
  226. package/dist/types/cms-fields/components/media-gallery/form-media-gallery-field.st.css.d.ts.map +1 -0
  227. package/dist/types/cms-fields/components/media-gallery/form-media-gallery-field.uni.driver.d.ts +33 -0
  228. package/dist/types/cms-fields/components/media-gallery/form-media-gallery-field.uni.driver.d.ts.map +1 -0
  229. package/dist/types/cms-fields/components/media-gallery/form-media-gallery-items-preview.d.ts +8 -0
  230. package/dist/types/cms-fields/components/media-gallery/form-media-gallery-items-preview.d.ts.map +1 -0
  231. package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/add-link-modal.d.ts +11 -0
  232. package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/add-link-modal.d.ts.map +1 -0
  233. package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/add-media-button.d.ts +7 -0
  234. package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/add-media-button.d.ts.map +1 -0
  235. package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/content-keys.d.ts +41 -0
  236. package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/content-keys.d.ts.map +1 -0
  237. package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/hooks.d.ts +66 -0
  238. package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/hooks.d.ts.map +1 -0
  239. package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/item-actions.d.ts +8 -0
  240. package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/item-actions.d.ts.map +1 -0
  241. package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/media-gallery-dialog.d.ts +5 -0
  242. package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/media-gallery-dialog.d.ts.map +1 -0
  243. package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/no-items-view.d.ts +7 -0
  244. package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/no-items-view.d.ts.map +1 -0
  245. package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/types.d.ts +81 -0
  246. package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/types.d.ts.map +1 -0
  247. package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/use-add-link-modal.d.ts +10 -0
  248. package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/use-add-link-modal.d.ts.map +1 -0
  249. package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/utils.d.ts +23 -0
  250. package/dist/types/cms-fields/components/media-gallery/media-gallery-dialog/utils.d.ts.map +1 -0
  251. package/dist/types/cms-fields/components/media-gallery/media-preview-modal.d.ts +19 -0
  252. package/dist/types/cms-fields/components/media-gallery/media-preview-modal.d.ts.map +1 -0
  253. package/dist/types/cms-fields/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.d.ts.map +1 -1
  254. package/dist/types/cms-fields/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.d.ts.map +1 -1
  255. package/dist/types/cms-fields/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.d.ts.map +1 -1
  256. package/dist/types/cms-fields/components/text/text-view.st.css.d.ts.map +1 -1
  257. package/dist/types/cms-fields/utils/media-item-utils.d.ts +61 -0
  258. package/dist/types/cms-fields/utils/media-item-utils.d.ts.map +1 -0
  259. package/dist/types/components/fields/MediaGallery.d.ts +8 -0
  260. package/dist/types/components/fields/MediaGallery.d.ts.map +1 -0
  261. package/dist/types/components/fields/index.d.ts +1 -0
  262. package/dist/types/components/fields/index.d.ts.map +1 -1
  263. package/dist/types/components/layouts/FormField.d.ts.map +1 -1
  264. package/dist/types/hooks/usePersistedState.d.ts +2 -0
  265. package/dist/types/hooks/usePersistedState.d.ts.map +1 -0
  266. package/dist/types/services/translations.d.ts +4 -1
  267. package/dist/types/services/translations.d.ts.map +1 -1
  268. package/package.json +3 -3
@@ -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/cms-fields/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_ = \"pasteurlbutton1433933189\";\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\":\"pasteurlbutton1433933189__root\",\"iconButtonTooltip\":\"pasteurlbutton1433933189__iconButtonTooltip\",\"iconButton\":\"pasteurlbutton1433933189__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/cms-fields/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_ = \"pasteurlbutton2355558468\";\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\":\"pasteurlbutton2355558468__root\",\"iconButtonTooltip\":\"pasteurlbutton2355558468__iconButtonTooltip\",\"iconButton\":\"pasteurlbutton2355558468__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":[]}
@@ -0,0 +1,275 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ exports.__esModule = true;
5
+ exports.FormMediaGalleryField = void 0;
6
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _designSystem = require("@wix/design-system");
9
+ var _wixUiIconsCommon = require("@wix/wix-ui-icons-common");
10
+ var _hooks = require("../../hooks");
11
+ var _mediaUtils = require("../../utils/media-utils");
12
+ var _autoCmsFieldTypes = require("../../auto-cms-field-types");
13
+ var _media = require("@wix/media");
14
+ var _formMediaGalleryFieldStCss = require("./form-media-gallery-field.st.css.js");
15
+ var _formMediaGalleryItemsPreview = require("./form-media-gallery-items-preview");
16
+ var _mediaPreviewModal = require("./media-preview-modal");
17
+ var _hooks2 = require("./media-gallery-dialog/hooks");
18
+ var _mediaGalleryDialog = require("./media-gallery-dialog/media-gallery-dialog");
19
+ var _jsxFileName = "/home/builduser/work/8f3ab5a55e62623a/packages/auto-patterns/dist/cjs/cms-fields/components/media-gallery/form-media-gallery-field.tsx";
20
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
21
+ const mediaGalleryPreviewTextKeys = {
22
+ replace: 'CMS.mediaGallery.preview.replace',
23
+ download: 'CMS.mediaGallery.preview.download',
24
+ delete: 'CMS.mediaGallery.preview.delete'
25
+ };
26
+ const FormMediaGalleryField = ({
27
+ data,
28
+ onChange,
29
+ onClear,
30
+ readOnly,
31
+ invalid,
32
+ autoFocus,
33
+ dataHook
34
+ }) => {
35
+ const {
36
+ t
37
+ } = (0, _hooks.useTranslations)();
38
+ const boxRef = (0, _react.useRef)(null);
39
+ const inputRef = (0, _react.useRef)(null);
40
+ const [boxWidth, setBoxWidth] = (0, _react.useState)(0);
41
+ const [hovered, setHovered] = (0, _react.useState)(false);
42
+ const [isPreviewOpen, setIsPreviewOpen] = (0, _react.useState)(false);
43
+ const hasValue = Boolean(data == null ? void 0 : data.length);
44
+
45
+ // autoFocus support
46
+ (0, _react.useEffect)(() => {
47
+ var _boxRef$current, _inputRef$current;
48
+ if (!autoFocus) {
49
+ return;
50
+ }
51
+ (_boxRef$current = boxRef.current) == null || _boxRef$current.focus();
52
+ (_inputRef$current = inputRef.current) == null || _inputRef$current.focus();
53
+ }, [autoFocus]);
54
+
55
+ // Responsive width tracking
56
+ (0, _react.useEffect)(() => {
57
+ const el = boxRef.current;
58
+ if (!el) {
59
+ return;
60
+ }
61
+ setBoxWidth(el.clientWidth);
62
+ const ro = new ResizeObserver(([entry]) => setBoxWidth(entry.contentRect.width));
63
+ ro.observe(el);
64
+ return () => ro.disconnect();
65
+ }, []);
66
+ const {
67
+ openMediaGalleryDialog,
68
+ ...mediaGalleryDialogProps
69
+ } = (0, _hooks2.useMediaGalleryDialog)({
70
+ initialOpen: false,
71
+ items: data,
72
+ onChange
73
+ });
74
+ const onMouseEnter = (0, _react.useCallback)(() => hasValue && setHovered(true), [hasValue]);
75
+ const onMouseLeave = (0, _react.useCallback)(() => hasValue && setHovered(false), [hasValue]);
76
+
77
+ // Download using Wix media API (consistent with useMediaControl)
78
+ const onDownloadMedia = (0, _react.useCallback)(async mediaUri => {
79
+ if (!mediaUri) {
80
+ return;
81
+ }
82
+ try {
83
+ var _result$downloadUrls;
84
+ const result = await _media.files.generateFileDownloadUrl(mediaUri);
85
+ const downloadUrl = (_result$downloadUrls = result.downloadUrls) == null || (_result$downloadUrls = _result$downloadUrls[0]) == null ? void 0 : _result$downloadUrls.url;
86
+ if (!downloadUrl) {
87
+ throw new Error('No download URL returned');
88
+ }
89
+ (0, _mediaUtils.executeDownloading)(downloadUrl);
90
+ } catch (error) {
91
+ // Fallback: open the static URL in a new tab
92
+ console.error('Media download error, falling back to static URL:', error);
93
+ (0, _mediaUtils.executeDownloading)((0, _autoCmsFieldTypes.getMediaURL)(mediaUri));
94
+ }
95
+ }, []);
96
+ const onRequestMedia = (0, _react.useCallback)(() => {
97
+ openMediaGalleryDialog();
98
+ setIsPreviewOpen(false);
99
+ setHovered(false);
100
+ }, [openMediaGalleryDialog]);
101
+ return /*#__PURE__*/_react.default.createElement("div", {
102
+ "data-hook": dataHook,
103
+ ref: boxRef,
104
+ tabIndex: hasValue ? 0 : -1,
105
+ className: _formMediaGalleryFieldStCss.classes.container,
106
+ onMouseEnter: onMouseEnter,
107
+ onMouseLeave: onMouseLeave,
108
+ onFocus: onMouseEnter,
109
+ onBlur: onMouseLeave,
110
+ __self: void 0,
111
+ __source: {
112
+ fileName: _jsxFileName,
113
+ lineNumber: 127,
114
+ columnNumber: 5
115
+ }
116
+ }, !hasValue ? /*#__PURE__*/_react.default.createElement("div", {
117
+ className: _formMediaGalleryFieldStCss.classes.addItemWrapper,
118
+ __self: void 0,
119
+ __source: {
120
+ fileName: _jsxFileName,
121
+ lineNumber: 138,
122
+ columnNumber: 9
123
+ }
124
+ }, /*#__PURE__*/_react.default.createElement(_designSystem.AddItem, {
125
+ ref: inputRef,
126
+ className: (0, _formMediaGalleryFieldStCss.style)(_formMediaGalleryFieldStCss.classes.addItem, {
127
+ error: invalid
128
+ }),
129
+ size: "tiny",
130
+ theme: "dashes",
131
+ onClick: onRequestMedia,
132
+ disabled: readOnly,
133
+ dataHook: `${dataHook}-add`,
134
+ subtitle: t('CMS.mediaGallery.emptyHint'),
135
+ __self: void 0,
136
+ __source: {
137
+ fileName: _jsxFileName,
138
+ lineNumber: 139,
139
+ columnNumber: 11
140
+ }
141
+ }, t('CMS.mediaGallery.addGallery'))) : /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_designSystem.MediaOverlay, {
142
+ hovered: hovered,
143
+ className: _formMediaGalleryFieldStCss.classes.overlay,
144
+ hoverSkin: "dark",
145
+ borderRadius: 0,
146
+ media: /*#__PURE__*/_react.default.createElement(_formMediaGalleryItemsPreview.FormMediaGalleryItemsPreview, {
147
+ width: boxWidth,
148
+ value: data,
149
+ __self: void 0,
150
+ __source: {
151
+ fileName: _jsxFileName,
152
+ lineNumber: 160,
153
+ columnNumber: 15
154
+ }
155
+ }),
156
+ __self: void 0,
157
+ __source: {
158
+ fileName: _jsxFileName,
159
+ lineNumber: 154,
160
+ columnNumber: 11
161
+ }
162
+ }, /*#__PURE__*/_react.default.createElement(_designSystem.MediaOverlay.Content, {
163
+ visible: "hover",
164
+ __self: void 0,
165
+ __source: {
166
+ fileName: _jsxFileName,
167
+ lineNumber: 163,
168
+ columnNumber: 13
169
+ }
170
+ }, /*#__PURE__*/_react.default.createElement(_designSystem.Box, {
171
+ gap: "SP2",
172
+ align: "center",
173
+ __self: void 0,
174
+ __source: {
175
+ fileName: _jsxFileName,
176
+ lineNumber: 164,
177
+ columnNumber: 15
178
+ }
179
+ }, /*#__PURE__*/_react.default.createElement(_designSystem.Button, {
180
+ skin: "inverted",
181
+ prefixIcon: /*#__PURE__*/_react.default.createElement(_wixUiIconsCommon.Refresh, {
182
+ __self: void 0,
183
+ __source: {
184
+ fileName: _jsxFileName,
185
+ lineNumber: 167,
186
+ columnNumber: 31
187
+ }
188
+ }),
189
+ onClick: onRequestMedia,
190
+ disabled: readOnly,
191
+ dataHook: `${dataHook}-manage`,
192
+ __self: void 0,
193
+ __source: {
194
+ fileName: _jsxFileName,
195
+ lineNumber: 165,
196
+ columnNumber: 17
197
+ }
198
+ }, t('CMS.mediaGallery.manageGallery')), /*#__PURE__*/_react.default.createElement(_designSystem.Tooltip, {
199
+ content: t('CMS.mediaGallery.preview'),
200
+ __self: void 0,
201
+ __source: {
202
+ fileName: _jsxFileName,
203
+ lineNumber: 174,
204
+ columnNumber: 17
205
+ }
206
+ }, /*#__PURE__*/_react.default.createElement(_designSystem.IconButton, {
207
+ skin: "inverted",
208
+ onClick: () => setIsPreviewOpen(true),
209
+ dataHook: `${dataHook}-preview`,
210
+ __self: void 0,
211
+ __source: {
212
+ fileName: _jsxFileName,
213
+ lineNumber: 175,
214
+ columnNumber: 19
215
+ }
216
+ }, /*#__PURE__*/_react.default.createElement(_wixUiIconsCommon.Maximize, {
217
+ __self: void 0,
218
+ __source: {
219
+ fileName: _jsxFileName,
220
+ lineNumber: 180,
221
+ columnNumber: 21
222
+ }
223
+ }))), /*#__PURE__*/_react.default.createElement(_designSystem.Tooltip, {
224
+ content: t('CMS.mediaGallery.clear'),
225
+ __self: void 0,
226
+ __source: {
227
+ fileName: _jsxFileName,
228
+ lineNumber: 183,
229
+ columnNumber: 17
230
+ }
231
+ }, /*#__PURE__*/_react.default.createElement(_designSystem.IconButton, {
232
+ skin: "inverted",
233
+ onClick: onClear,
234
+ disabled: readOnly,
235
+ dataHook: `${dataHook}-clear`,
236
+ __self: void 0,
237
+ __source: {
238
+ fileName: _jsxFileName,
239
+ lineNumber: 184,
240
+ columnNumber: 19
241
+ }
242
+ }, /*#__PURE__*/_react.default.createElement(_wixUiIconsCommon.Delete, {
243
+ __self: void 0,
244
+ __source: {
245
+ fileName: _jsxFileName,
246
+ lineNumber: 190,
247
+ columnNumber: 21
248
+ }
249
+ })))))), /*#__PURE__*/_react.default.createElement(_mediaPreviewModal.MediaPreviewModal, {
250
+ isOpen: isPreviewOpen,
251
+ onClose: () => setIsPreviewOpen(false),
252
+ value: data == null ? void 0 : data.map(d => d.src),
253
+ onRequestMedia: onRequestMedia,
254
+ onClearMedia: onClear,
255
+ onDownloadMedia: onDownloadMedia,
256
+ textKeys: mediaGalleryPreviewTextKeys,
257
+ readOnly: readOnly,
258
+ __self: void 0,
259
+ __source: {
260
+ fileName: _jsxFileName,
261
+ lineNumber: 196,
262
+ columnNumber: 11
263
+ }
264
+ })), mediaGalleryDialogProps.isOpen && /*#__PURE__*/_react.default.createElement(_mediaGalleryDialog.MediaGalleryDialog, (0, _extends2.default)({}, mediaGalleryDialogProps, {
265
+ __self: void 0,
266
+ __source: {
267
+ fileName: _jsxFileName,
268
+ lineNumber: 210,
269
+ columnNumber: 9
270
+ }
271
+ })));
272
+ };
273
+ exports.FormMediaGalleryField = FormMediaGalleryField;
274
+ FormMediaGalleryField.displayName = 'FormMediaGalleryField';
275
+ //# sourceMappingURL=form-media-gallery-field.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_designSystem","_wixUiIconsCommon","_hooks","_mediaUtils","_autoCmsFieldTypes","_media","_formMediaGalleryFieldStCss","_formMediaGalleryItemsPreview","_mediaPreviewModal","_hooks2","_mediaGalleryDialog","_jsxFileName","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","mediaGalleryPreviewTextKeys","replace","download","delete","FormMediaGalleryField","data","onChange","onClear","readOnly","invalid","autoFocus","dataHook","useTranslations","boxRef","useRef","inputRef","boxWidth","setBoxWidth","useState","hovered","setHovered","isPreviewOpen","setIsPreviewOpen","hasValue","Boolean","length","useEffect","_boxRef$current","_inputRef$current","current","focus","el","clientWidth","ro","ResizeObserver","entry","contentRect","width","observe","disconnect","openMediaGalleryDialog","mediaGalleryDialogProps","useMediaGalleryDialog","initialOpen","items","onMouseEnter","useCallback","onMouseLeave","onDownloadMedia","mediaUri","_result$downloadUrls","result","files","generateFileDownloadUrl","downloadUrl","downloadUrls","url","Error","executeDownloading","error","console","getMediaURL","onRequestMedia","createElement","ref","tabIndex","className","classes","container","onFocus","onBlur","__self","__source","fileName","lineNumber","columnNumber","addItemWrapper","AddItem","style","addItem","size","theme","onClick","disabled","subtitle","Fragment","MediaOverlay","overlay","hoverSkin","borderRadius","media","FormMediaGalleryItemsPreview","value","Content","visible","Box","gap","align","Button","skin","prefixIcon","Refresh","Tooltip","content","IconButton","Maximize","Delete","MediaPreviewModal","isOpen","onClose","map","d","src","onClearMedia","textKeys","MediaGalleryDialog","_extends2","exports","displayName"],"sources":["../../../../../src/cms-fields/components/media-gallery/form-media-gallery-field.tsx"],"sourcesContent":["import React, { useRef, useState, useCallback, useEffect } from 'react';\nimport type { AddItemActions } from '@wix/design-system';\nimport {\n AddItem,\n Box,\n Button,\n IconButton,\n MediaOverlay,\n Tooltip,\n} from '@wix/design-system';\nimport {\n Refresh as RefreshIcon,\n Delete as DeleteIcon,\n Maximize as MaximizeIcon,\n} from '@wix/wix-ui-icons-common';\nimport type { WixCodeGalleryItem } from '../../auto-cms-field-types';\nimport { useTranslations } from '../../hooks';\nimport { executeDownloading } from '../../utils/media-utils';\nimport { getMediaURL } from '../../auto-cms-field-types';\nimport { files } from '@wix/media';\n\nimport { style, classes } from './form-media-gallery-field.st.css.js';\nimport { FormMediaGalleryItemsPreview } from './form-media-gallery-items-preview';\nimport { MediaPreviewModal } from './media-preview-modal';\nimport { useMediaGalleryDialog } from './media-gallery-dialog/hooks';\nimport { MediaGalleryDialog } from './media-gallery-dialog/media-gallery-dialog';\n\nexport interface FormMediaGalleryFieldProps {\n data?: WixCodeGalleryItem[];\n onChange: (value: WixCodeGalleryItem[]) => void;\n onClear?: () => void;\n readOnly?: boolean;\n invalid?: boolean;\n autoFocus?: boolean;\n dataHook?: string;\n}\n\nconst mediaGalleryPreviewTextKeys = {\n replace: 'CMS.mediaGallery.preview.replace',\n download: 'CMS.mediaGallery.preview.download',\n delete: 'CMS.mediaGallery.preview.delete',\n} as const;\n\nexport const FormMediaGalleryField: React.FC<FormMediaGalleryFieldProps> = ({\n data,\n onChange,\n onClear,\n readOnly,\n invalid,\n autoFocus,\n dataHook,\n}) => {\n const { t } = useTranslations();\n const boxRef = useRef<HTMLDivElement>(null);\n const inputRef = useRef<AddItemActions>(null);\n const [boxWidth, setBoxWidth] = useState(0);\n const [hovered, setHovered] = useState(false);\n const [isPreviewOpen, setIsPreviewOpen] = useState(false);\n\n const hasValue = Boolean(data?.length);\n\n // autoFocus support\n useEffect(() => {\n if (!autoFocus) {\n return;\n }\n boxRef.current?.focus();\n inputRef.current?.focus();\n }, [autoFocus]);\n\n // Responsive width tracking\n useEffect(() => {\n const el = boxRef.current;\n if (!el) {\n return;\n }\n setBoxWidth(el.clientWidth);\n const ro = new ResizeObserver(([entry]) =>\n setBoxWidth(entry.contentRect.width),\n );\n ro.observe(el);\n return () => ro.disconnect();\n }, []);\n\n const { openMediaGalleryDialog, ...mediaGalleryDialogProps } =\n useMediaGalleryDialog({\n initialOpen: false,\n items: data,\n onChange,\n });\n\n const onMouseEnter = useCallback(\n () => hasValue && setHovered(true),\n [hasValue],\n );\n const onMouseLeave = useCallback(\n () => hasValue && setHovered(false),\n [hasValue],\n );\n\n // Download using Wix media API (consistent with useMediaControl)\n const onDownloadMedia = useCallback(async (mediaUri?: string) => {\n if (!mediaUri) {\n return;\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 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 executeDownloading(getMediaURL(mediaUri));\n }\n }, []);\n\n const onRequestMedia = useCallback(() => {\n openMediaGalleryDialog();\n setIsPreviewOpen(false);\n setHovered(false);\n }, [openMediaGalleryDialog]);\n\n return (\n <div\n data-hook={dataHook}\n ref={boxRef}\n tabIndex={hasValue ? 0 : -1}\n className={classes.container}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n onFocus={onMouseEnter}\n onBlur={onMouseLeave}\n >\n {!hasValue ? (\n <div className={classes.addItemWrapper}>\n <AddItem\n ref={inputRef}\n className={style(classes.addItem, { error: invalid })}\n size=\"tiny\"\n theme=\"dashes\"\n onClick={onRequestMedia}\n disabled={readOnly}\n dataHook={`${dataHook}-add`}\n subtitle={t('CMS.mediaGallery.emptyHint')}\n >\n {t('CMS.mediaGallery.addGallery')}\n </AddItem>\n </div>\n ) : (\n <>\n <MediaOverlay\n hovered={hovered}\n className={classes.overlay}\n hoverSkin=\"dark\"\n borderRadius={0}\n media={\n <FormMediaGalleryItemsPreview width={boxWidth} value={data} />\n }\n >\n <MediaOverlay.Content visible=\"hover\">\n <Box gap=\"SP2\" align=\"center\">\n <Button\n skin=\"inverted\"\n prefixIcon={<RefreshIcon />}\n onClick={onRequestMedia}\n disabled={readOnly}\n dataHook={`${dataHook}-manage`}\n >\n {t('CMS.mediaGallery.manageGallery')}\n </Button>\n <Tooltip content={t('CMS.mediaGallery.preview')}>\n <IconButton\n skin=\"inverted\"\n onClick={() => setIsPreviewOpen(true)}\n dataHook={`${dataHook}-preview`}\n >\n <MaximizeIcon />\n </IconButton>\n </Tooltip>\n <Tooltip content={t('CMS.mediaGallery.clear')}>\n <IconButton\n skin=\"inverted\"\n onClick={onClear}\n disabled={readOnly}\n dataHook={`${dataHook}-clear`}\n >\n <DeleteIcon />\n </IconButton>\n </Tooltip>\n </Box>\n </MediaOverlay.Content>\n </MediaOverlay>\n <MediaPreviewModal\n isOpen={isPreviewOpen}\n onClose={() => setIsPreviewOpen(false)}\n value={data?.map((d) => d.src)}\n onRequestMedia={onRequestMedia}\n onClearMedia={onClear}\n onDownloadMedia={onDownloadMedia}\n textKeys={mediaGalleryPreviewTextKeys}\n readOnly={readOnly}\n />\n </>\n )}\n\n {mediaGalleryDialogProps.isOpen && (\n <MediaGalleryDialog {...mediaGalleryDialogProps} />\n )}\n </div>\n );\n};\n\nFormMediaGalleryField.displayName = 'FormMediaGalleryField';\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,51 @@
1
+ .container {
2
+ display: flex;
3
+ min-height: 128px;
4
+ max-height: 259px;
5
+ }
6
+
7
+ .viewBox {
8
+ display: flex;
9
+ height: 100%;
10
+ width: 100%;
11
+ flex-wrap: wrap;
12
+ }
13
+
14
+ .addItemWrapper {
15
+ height: 128px;
16
+ width: 100%;
17
+ box-sizing: border-box;
18
+ }
19
+
20
+ .addItem {
21
+ -st-states: error;
22
+ box-sizing: border-box;
23
+ }
24
+
25
+ .overlay {
26
+ width: initial !important;
27
+ min-width: 382px !important;
28
+ }
29
+
30
+ .image {
31
+ -st-states: withMarginRight, withMarginTop;
32
+ }
33
+
34
+ .image:withMarginRight {
35
+ margin-right: 3px;
36
+ }
37
+
38
+ .image:withMarginTop {
39
+ margin-top: 3px;
40
+ }
41
+
42
+ /* Preview modal styles */
43
+ .previewImage {
44
+ max-height: calc(100% - 12px) !important;
45
+ }
46
+
47
+ .previewVideo {
48
+ border-radius: 8px;
49
+ max-width: 100%;
50
+ max-height: calc(100% - 12px) !important;
51
+ }
@@ -0,0 +1,30 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.vars = exports.style = exports.stVars = exports.st = exports.namespace = exports.layers = exports.keyframes = exports.cssStates = exports.containers = exports.classes = void 0;
5
+ var _stylableEsmRuntime = require("../../../stylable-esm-runtime.js");
6
+ // @ts-nocheck
7
+
8
+ var _namespace_ = "formmediagalleryfield4276779609";
9
+ var _style_ = _stylableEsmRuntime.classesRuntime.bind(null, _namespace_);
10
+ var cssStates = exports.cssStates = _stylableEsmRuntime.statesRuntime.bind(null, _namespace_);
11
+ var style = exports.style = _style_;
12
+ var st = exports.st = _style_;
13
+ var namespace = exports.namespace = _namespace_;
14
+ var classes = exports.classes = {
15
+ "root": "formmediagalleryfield4276779609__root",
16
+ "container": "formmediagalleryfield4276779609__container",
17
+ "viewBox": "formmediagalleryfield4276779609__viewBox",
18
+ "addItemWrapper": "formmediagalleryfield4276779609__addItemWrapper",
19
+ "addItem": "formmediagalleryfield4276779609__addItem",
20
+ "overlay": "formmediagalleryfield4276779609__overlay",
21
+ "image": "formmediagalleryfield4276779609__image",
22
+ "previewImage": "formmediagalleryfield4276779609__previewImage",
23
+ "previewVideo": "formmediagalleryfield4276779609__previewVideo"
24
+ };
25
+ var keyframes = exports.keyframes = {};
26
+ var layers = exports.layers = {};
27
+ var containers = exports.containers = {};
28
+ var stVars = exports.stVars = {};
29
+ var vars = exports.vars = {};
30
+ //# sourceMappingURL=form-media-gallery-field.st.css.js.map
@@ -0,0 +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/cms-fields/components/media-gallery/form-media-gallery-field.st.css.ts"],"sourcesContent":["// @ts-nocheck\n\n\nimport { classesRuntime, statesRuntime } from \"../../../stylable-esm-runtime.js\";\n\n\n\nvar _namespace_ = \"formmediagalleryfield4276779609\";\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\":\"formmediagalleryfield4276779609__root\",\"container\":\"formmediagalleryfield4276779609__container\",\"viewBox\":\"formmediagalleryfield4276779609__viewBox\",\"addItemWrapper\":\"formmediagalleryfield4276779609__addItemWrapper\",\"addItem\":\"formmediagalleryfield4276779609__addItem\",\"overlay\":\"formmediagalleryfield4276779609__overlay\",\"image\":\"formmediagalleryfield4276779609__image\",\"previewImage\":\"formmediagalleryfield4276779609__previewImage\",\"previewVideo\":\"formmediagalleryfield4276779609__previewVideo\"};\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,WAAW,EAAC,4CAA4C;EAAC,SAAS,EAAC,0CAA0C;EAAC,gBAAgB,EAAC,iDAAiD;EAAC,SAAS,EAAC,0CAA0C;EAAC,SAAS,EAAC,0CAA0C;EAAC,OAAO,EAAC,wCAAwC;EAAC,cAAc,EAAC,+CAA+C;EAAC,cAAc,EAAC;AAA+C,CAAC;AACxgB,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":[]}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.FormMediaGalleryFieldUniDriver = FormMediaGalleryFieldUniDriver;
5
+ function FormMediaGalleryFieldUniDriver(base, dataHook) {
6
+ return {
7
+ exists: () => base.exists(),
8
+ getAddButton: () => base.$(`[data-hook="${dataHook}-add"]`),
9
+ getManageButton: () => base.$(`[data-hook="${dataHook}-manage"]`),
10
+ getPreviewButton: () => base.$(`[data-hook="${dataHook}-preview"]`),
11
+ getClearButton: () => base.$(`[data-hook="${dataHook}-clear"]`)
12
+ };
13
+ }
14
+ //# sourceMappingURL=form-media-gallery-field.uni.driver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["FormMediaGalleryFieldUniDriver","base","dataHook","exists","getAddButton","$","getManageButton","getPreviewButton","getClearButton"],"sources":["../../../../../src/cms-fields/components/media-gallery/form-media-gallery-field.uni.driver.ts"],"sourcesContent":["import { UniDriver } from '@wix/wix-ui-test-utils/unidriver';\n\nexport function FormMediaGalleryFieldUniDriver(\n base: UniDriver,\n dataHook: string,\n) {\n return {\n exists: () => base.exists(),\n getAddButton: () => base.$(`[data-hook=\"${dataHook}-add\"]`),\n getManageButton: () => base.$(`[data-hook=\"${dataHook}-manage\"]`),\n getPreviewButton: () => base.$(`[data-hook=\"${dataHook}-preview\"]`),\n getClearButton: () => base.$(`[data-hook=\"${dataHook}-clear\"]`),\n };\n}\n"],"mappings":";;;;AAEO,SAASA,8BAA8BA,CAC5CC,IAAe,EACfC,QAAgB,EAChB;EACA,OAAO;IACLC,MAAM,EAAEA,CAAA,KAAMF,IAAI,CAACE,MAAM,CAAC,CAAC;IAC3BC,YAAY,EAAEA,CAAA,KAAMH,IAAI,CAACI,CAAC,CAAC,eAAeH,QAAQ,QAAQ,CAAC;IAC3DI,eAAe,EAAEA,CAAA,KAAML,IAAI,CAACI,CAAC,CAAC,eAAeH,QAAQ,WAAW,CAAC;IACjEK,gBAAgB,EAAEA,CAAA,KAAMN,IAAI,CAACI,CAAC,CAAC,eAAeH,QAAQ,YAAY,CAAC;IACnEM,cAAc,EAAEA,CAAA,KAAMP,IAAI,CAACI,CAAC,CAAC,eAAeH,QAAQ,UAAU;EAChE,CAAC;AACH","ignoreList":[]}
@@ -0,0 +1,134 @@
1
+ "use strict";
2
+
3
+ exports.__esModule = true;
4
+ exports.FormMediaGalleryItemsPreview = void 0;
5
+ var _react = _interopRequireWildcard(require("react"));
6
+ var _autoCmsFieldTypes = require("../../auto-cms-field-types");
7
+ var _designSystem = require("@wix/design-system");
8
+ var _mediaImage = require("../media-image");
9
+ var _formMediaGalleryFieldStCss = require("./form-media-gallery-field.st.css.js");
10
+ var _jsxFileName = "/home/builduser/work/8f3ab5a55e62623a/packages/auto-patterns/dist/cjs/cms-fields/components/media-gallery/form-media-gallery-items-preview.tsx";
11
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
12
+ // --- Layout types and constants ---
13
+
14
+ const IMAGE_HEIGHT = _autoCmsFieldTypes.ThumbnailSize.M;
15
+ const GAP = 3;
16
+ const PLACEHOLDER_WIDTH = 69;
17
+
18
+ // --- Layout hook ---
19
+
20
+ const useFormMediaGalleryItems = (value, boxWidth = 0) => (0, _react.useMemo)(() => {
21
+ if (!(value != null && value.length && boxWidth)) {
22
+ return [];
23
+ }
24
+ const result = [];
25
+ for (let i = 0, usedWidth = 0; i < value.length; i++) {
26
+ const item = value[i];
27
+ if (!item) continue;
28
+ const {
29
+ width,
30
+ height
31
+ } = (0, _autoCmsFieldTypes.getImageDimensions)(item.src);
32
+ const actualWidth = width * IMAGE_HEIGHT / height;
33
+ const offsetLeft = usedWidth % boxWidth;
34
+ let totalWidth = offsetLeft + actualWidth;
35
+
36
+ // Check if the image wraps to the second row
37
+ if (usedWidth < boxWidth && totalWidth > boxWidth) {
38
+ usedWidth = boxWidth;
39
+ totalWidth = actualWidth;
40
+ }
41
+ const isSecondRow = usedWidth / boxWidth >= 1;
42
+ const withMarginRight = totalWidth <= boxWidth - GAP && i !== value.length - 1;
43
+ const withMarginTop = isSecondRow;
44
+ usedWidth += actualWidth + (withMarginRight ? GAP : 0);
45
+
46
+ // Terminate if the image doesn't fit — show "+N" placeholder
47
+ if (usedWidth > boxWidth * 2 - PLACEHOLDER_WIDTH) {
48
+ result.push({
49
+ actualWidth: PLACEHOLDER_WIDTH,
50
+ morePlaceholder: value.length - i
51
+ });
52
+ return result;
53
+ }
54
+ result.push({
55
+ src: item.src,
56
+ actualWidth,
57
+ withMarginRight,
58
+ withMarginTop
59
+ });
60
+ }
61
+ return result;
62
+ }, [value, boxWidth]);
63
+
64
+ // --- Component ---
65
+
66
+ const FormMediaGalleryItemsPreview = ({
67
+ width,
68
+ value
69
+ }) => {
70
+ const images = useFormMediaGalleryItems(value, width);
71
+ if (!(images != null && images.length)) return null;
72
+ return /*#__PURE__*/_react.default.createElement("div", {
73
+ className: _formMediaGalleryFieldStCss.classes.viewBox,
74
+ __self: void 0,
75
+ __source: {
76
+ fileName: _jsxFileName,
77
+ lineNumber: 101,
78
+ columnNumber: 5
79
+ }
80
+ }, images.map((item, index) => {
81
+ if (item.src) {
82
+ const {
83
+ src,
84
+ actualWidth,
85
+ withMarginTop = false,
86
+ withMarginRight = false
87
+ } = item;
88
+ return /*#__PURE__*/_react.default.createElement(_mediaImage.MediaImage, {
89
+ key: index,
90
+ className: (0, _formMediaGalleryFieldStCss.style)(_formMediaGalleryFieldStCss.classes.image, {
91
+ withMarginTop,
92
+ withMarginRight
93
+ }),
94
+ borderRadius: 0,
95
+ transparent: true,
96
+ src: src,
97
+ size: _mediaImage.MediaImage.Size.M,
98
+ width: `${actualWidth}px`,
99
+ height: IMAGE_HEIGHT,
100
+ __self: void 0,
101
+ __source: {
102
+ fileName: _jsxFileName,
103
+ lineNumber: 111,
104
+ columnNumber: 13
105
+ }
106
+ });
107
+ }
108
+ return /*#__PURE__*/_react.default.createElement(_designSystem.Box, {
109
+ key: "placeholder",
110
+ width: item.actualWidth,
111
+ height: IMAGE_HEIGHT,
112
+ marginTop: `${GAP}px`,
113
+ align: "center",
114
+ verticalAlign: "middle",
115
+ __self: void 0,
116
+ __source: {
117
+ fileName: _jsxFileName,
118
+ lineNumber: 128,
119
+ columnNumber: 11
120
+ }
121
+ }, /*#__PURE__*/_react.default.createElement(_designSystem.Text, {
122
+ size: "small",
123
+ __self: void 0,
124
+ __source: {
125
+ fileName: _jsxFileName,
126
+ lineNumber: 136,
127
+ columnNumber: 13
128
+ }
129
+ }, "+", item.morePlaceholder));
130
+ }));
131
+ };
132
+ exports.FormMediaGalleryItemsPreview = FormMediaGalleryItemsPreview;
133
+ FormMediaGalleryItemsPreview.displayName = 'FormMediaGalleryItemsPreview';
134
+ //# sourceMappingURL=form-media-gallery-items-preview.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","_interopRequireWildcard","require","_autoCmsFieldTypes","_designSystem","_mediaImage","_formMediaGalleryFieldStCss","_jsxFileName","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","IMAGE_HEIGHT","ThumbnailSize","M","GAP","PLACEHOLDER_WIDTH","useFormMediaGalleryItems","value","boxWidth","useMemo","length","result","usedWidth","item","width","height","getImageDimensions","src","actualWidth","offsetLeft","totalWidth","isSecondRow","withMarginRight","withMarginTop","push","morePlaceholder","FormMediaGalleryItemsPreview","images","createElement","className","classes","viewBox","__self","__source","fileName","lineNumber","columnNumber","map","index","MediaImage","key","style","image","borderRadius","transparent","size","Size","Box","marginTop","align","verticalAlign","Text","exports","displayName"],"sources":["../../../../../src/cms-fields/components/media-gallery/form-media-gallery-items-preview.tsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport type { WixCodeGalleryItem } from '../../auto-cms-field-types';\nimport { getImageDimensions, ThumbnailSize } from '../../auto-cms-field-types';\nimport { Box, Text } from '@wix/design-system';\nimport { MediaImage } from '../media-image';\nimport { style, classes } from './form-media-gallery-field.st.css.js';\n\n// --- Layout types and constants ---\n\ntype GalleryImageItem = {\n src: string;\n actualWidth: number;\n withMarginRight?: boolean;\n withMarginTop?: boolean;\n morePlaceholder?: never;\n};\n\ntype GalleryPlaceholderItem = {\n src?: undefined;\n actualWidth: number;\n morePlaceholder: number;\n};\n\ntype GalleryItem = GalleryImageItem | GalleryPlaceholderItem;\n\nconst IMAGE_HEIGHT = ThumbnailSize.M;\nconst GAP = 3;\nconst PLACEHOLDER_WIDTH = 69;\n\n// --- Layout hook ---\n\nconst useFormMediaGalleryItems = (\n value?: WixCodeGalleryItem[],\n boxWidth = 0,\n): GalleryItem[] =>\n useMemo(() => {\n if (!(value?.length && boxWidth)) {\n return [];\n }\n\n const result: GalleryItem[] = [];\n\n for (let i = 0, usedWidth = 0; i < value.length; i++) {\n const item = value[i];\n if (!item) continue;\n\n const { width, height } = getImageDimensions(item.src);\n const actualWidth = (width * IMAGE_HEIGHT) / height;\n\n const offsetLeft = usedWidth % boxWidth;\n let totalWidth = offsetLeft + actualWidth;\n\n // Check if the image wraps to the second row\n if (usedWidth < boxWidth && totalWidth > boxWidth) {\n usedWidth = boxWidth;\n totalWidth = actualWidth;\n }\n\n const isSecondRow = usedWidth / boxWidth >= 1;\n const withMarginRight =\n totalWidth <= boxWidth - GAP && i !== value.length - 1;\n const withMarginTop = isSecondRow;\n\n usedWidth += actualWidth + (withMarginRight ? GAP : 0);\n\n // Terminate if the image doesn't fit — show \"+N\" placeholder\n if (usedWidth > boxWidth * 2 - PLACEHOLDER_WIDTH) {\n result.push({\n actualWidth: PLACEHOLDER_WIDTH,\n morePlaceholder: value.length - i,\n });\n return result;\n }\n\n result.push({\n src: item.src,\n actualWidth,\n withMarginRight,\n withMarginTop,\n });\n }\n\n return result;\n }, [value, boxWidth]);\n\n// --- Component ---\n\nexport interface FormMediaGalleryViewProps {\n width: number;\n value?: WixCodeGalleryItem[];\n}\n\nexport const FormMediaGalleryItemsPreview: React.FC<\n FormMediaGalleryViewProps\n> = ({ width, value }) => {\n const images = useFormMediaGalleryItems(value, width);\n\n if (!images?.length) return null;\n\n return (\n <div className={classes.viewBox}>\n {images.map((item: GalleryItem, index: number) => {\n if (item.src) {\n const {\n src,\n actualWidth,\n withMarginTop = false,\n withMarginRight = false,\n } = item;\n return (\n <MediaImage\n key={index}\n className={style(classes.image, {\n withMarginTop,\n withMarginRight,\n })}\n borderRadius={0}\n transparent\n src={src}\n size={MediaImage.Size.M}\n width={`${actualWidth}px`}\n height={IMAGE_HEIGHT}\n />\n );\n }\n\n return (\n <Box\n key=\"placeholder\"\n width={item.actualWidth}\n height={IMAGE_HEIGHT}\n marginTop={`${GAP}px`}\n align=\"center\"\n verticalAlign=\"middle\"\n >\n <Text size=\"small\">+{item.morePlaceholder}</Text>\n </Box>\n );\n })}\n </div>\n );\n};\n\nFormMediaGalleryItemsPreview.displayName = 'FormMediaGalleryItemsPreview';\n"],"mappings":"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","ignoreList":[]}