@wix/patterns-fields 1.36.0 → 1.38.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.
- package/dist/cjs/components/address/form-address.driver.js +17 -0
- package/dist/cjs/components/address/form-address.driver.js.map +1 -0
- package/dist/cjs/components/address/form-address.js +66 -0
- package/dist/cjs/components/address/form-address.js.map +1 -0
- package/dist/cjs/components/address/index.js +6 -0
- package/dist/cjs/components/address/index.js.map +1 -1
- package/dist/cjs/components/address/input/address-input.js +10 -2
- package/dist/cjs/components/address/input/address-input.js.map +1 -1
- package/dist/cjs/components/address/input/address-input.st.css.js +3 -3
- package/dist/cjs/components/address/input/address-input.st.css.js.map +1 -1
- package/dist/cjs/components/address/view/cell-address-view.js +49 -0
- package/dist/cjs/components/address/view/cell-address-view.js.map +1 -0
- package/dist/cjs/components/address/view/index.js +6 -0
- package/dist/cjs/components/address/view/index.js.map +1 -1
- package/dist/cjs/components/array/form-array.driver.js +18 -0
- package/dist/cjs/components/array/form-array.driver.js.map +1 -0
- package/dist/cjs/components/array/form-array.js +114 -0
- package/dist/cjs/components/array/form-array.js.map +1 -0
- package/dist/cjs/components/array/index.js +10 -0
- package/dist/cjs/components/array/index.js.map +1 -0
- package/dist/cjs/components/audio/actions/actions-menu/actions-menu.st.css.js +3 -3
- package/dist/cjs/components/audio/actions/actions-menu/actions-menu.st.css.js.map +1 -1
- package/dist/cjs/components/audio/audio-field/form-audio-field.st.css.js +4 -4
- package/dist/cjs/components/audio/audio-field/form-audio-field.st.css.js.map +1 -1
- package/dist/cjs/components/audio/audio-field/form-audio.driver.js +21 -0
- package/dist/cjs/components/audio/audio-field/form-audio.driver.js.map +1 -0
- package/dist/cjs/components/audio/audio-field/form-audio.js +65 -0
- package/dist/cjs/components/audio/audio-field/form-audio.js.map +1 -0
- package/dist/cjs/components/audio/audio-field/index.js +6 -0
- package/dist/cjs/components/audio/audio-field/index.js.map +1 -1
- package/dist/cjs/components/audio/audio-player/audio-player.st.css.js +2 -2
- package/dist/cjs/components/audio/audio-player/audio-player.st.css.js.map +1 -1
- package/dist/cjs/components/boolean/form-checkbox.driver.js +1 -1
- package/dist/cjs/components/boolean/form-checkbox.driver.js.map +1 -1
- package/dist/cjs/components/color-view/color-view.st.css.js +4 -4
- package/dist/cjs/components/color-view/color-view.st.css.js.map +1 -1
- package/dist/cjs/components/color-view/form-color.driver.js +22 -0
- package/dist/cjs/components/color-view/form-color.driver.js.map +1 -0
- package/dist/cjs/components/color-view/form-color.js +51 -0
- package/dist/cjs/components/color-view/form-color.js.map +1 -0
- package/dist/cjs/components/color-view/index.js +6 -0
- package/dist/cjs/components/color-view/index.js.map +1 -1
- package/dist/cjs/components/date-input/date-utils.js +13 -0
- package/dist/cjs/components/date-input/date-utils.js.map +1 -0
- package/dist/cjs/components/date-input/form-date-input.driver.js +22 -0
- package/dist/cjs/components/date-input/form-date-input.driver.js.map +1 -0
- package/dist/cjs/components/date-input/form-date-input.js +113 -0
- package/dist/cjs/components/date-input/form-date-input.js.map +1 -0
- package/dist/cjs/components/date-input/index.js +10 -0
- package/dist/cjs/components/date-input/index.js.map +1 -0
- package/dist/cjs/components/datetime-input/form-date-time.driver.js +31 -0
- package/dist/cjs/components/datetime-input/form-date-time.driver.js.map +1 -0
- package/dist/cjs/components/datetime-input/form-date-time.js +211 -0
- package/dist/cjs/components/datetime-input/form-date-time.js.map +1 -0
- package/dist/cjs/components/datetime-input/index.js +10 -0
- package/dist/cjs/components/datetime-input/index.js.map +1 -0
- package/dist/cjs/components/delete-dialog/delete-dialog.st.css.js +3 -3
- package/dist/cjs/components/delete-dialog/delete-dialog.st.css.js.map +1 -1
- package/dist/cjs/components/document/form-document-field.st.css.js +7 -7
- package/dist/cjs/components/document/form-document-field.st.css.js.map +1 -1
- package/dist/cjs/components/document/form-document.driver.js +19 -0
- package/dist/cjs/components/document/form-document.driver.js.map +1 -0
- package/dist/cjs/components/document/form-document.js +65 -0
- package/dist/cjs/components/document/form-document.js.map +1 -0
- package/dist/cjs/components/email/form-email.driver.js +22 -0
- package/dist/cjs/components/email/form-email.driver.js.map +1 -0
- package/dist/cjs/components/email/form-email.js +77 -0
- package/dist/cjs/components/email/form-email.js.map +1 -0
- package/dist/cjs/components/email/index.js +6 -0
- package/dist/cjs/components/email/index.js.map +1 -1
- package/dist/cjs/components/exclamation/exclamation.st.css.js +5 -5
- package/dist/cjs/components/exclamation/exclamation.st.css.js.map +1 -1
- package/dist/cjs/components/highlighted-text/highlighted-text.st.css.js +5 -5
- package/dist/cjs/components/highlighted-text/highlighted-text.st.css.js.map +1 -1
- package/dist/cjs/components/image/form-image-input.driver.js +24 -0
- package/dist/cjs/components/image/form-image-input.driver.js.map +1 -0
- package/dist/cjs/components/image/form-image-input.js +101 -0
- package/dist/cjs/components/image/form-image-input.js.map +1 -0
- package/dist/cjs/components/image/image-view-field.js +58 -0
- package/dist/cjs/components/image/image-view-field.js.map +1 -0
- package/dist/cjs/components/image/index.js +12 -0
- package/dist/cjs/components/image/index.js.map +1 -1
- package/dist/cjs/components/image/thumbnail-replace-overlay.st.css.js +3 -3
- package/dist/cjs/components/image/thumbnail-replace-overlay.st.css.js.map +1 -1
- package/dist/cjs/components/index.js +24 -0
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/cjs/components/{object → json-input}/form-json-input.js +1 -1
- package/dist/cjs/components/json-input/form-json-input.js.map +1 -0
- package/dist/cjs/components/json-input/index.js +16 -0
- package/dist/cjs/components/json-input/index.js.map +1 -0
- package/dist/cjs/components/{object → json-input}/json-input.js +1 -1
- package/dist/cjs/components/json-input/json-input.js.map +1 -0
- package/dist/cjs/components/media-control/cell-media-edit-shell.st.css.js +2 -2
- package/dist/cjs/components/media-control/cell-media-edit-shell.st.css.js.map +1 -1
- package/dist/cjs/components/media-control/paste-url-button.st.css.js +4 -4
- package/dist/cjs/components/media-control/paste-url-button.st.css.js.map +1 -1
- package/dist/cjs/components/media-gallery/form-media-gallery-field.st.css.js +10 -10
- package/dist/cjs/components/media-gallery/form-media-gallery-field.st.css.js.map +1 -1
- package/dist/cjs/components/media-gallery/form-media-gallery.driver.js +23 -0
- package/dist/cjs/components/media-gallery/form-media-gallery.driver.js.map +1 -0
- package/dist/cjs/components/media-gallery/form-media-gallery.js +69 -0
- package/dist/cjs/components/media-gallery/form-media-gallery.js.map +1 -0
- package/dist/cjs/components/media-image/media-image.st.css.js +4 -4
- package/dist/cjs/components/media-image/media-image.st.css.js.map +1 -1
- package/dist/cjs/components/media-image/overlays/overlay.st.css.js +3 -3
- package/dist/cjs/components/media-image/overlays/overlay.st.css.js.map +1 -1
- package/dist/cjs/components/media-loader/media-loader.st.css.js +3 -3
- package/dist/cjs/components/media-loader/media-loader.st.css.js.map +1 -1
- package/dist/cjs/components/media-tag/web-media-tag/media-tag.st.css.js +2 -2
- package/dist/cjs/components/media-tag/web-media-tag/media-tag.st.css.js.map +1 -1
- package/dist/cjs/components/multi-document/index.js +3 -1
- package/dist/cjs/components/multi-document/index.js.map +1 -1
- package/dist/cjs/components/multi-document/multi-document-input/form-multi-document.driver.js +19 -0
- package/dist/cjs/components/multi-document/multi-document-input/form-multi-document.driver.js.map +1 -0
- package/dist/cjs/components/multi-document/multi-document-input/form-multi-document.js +64 -0
- package/dist/cjs/components/multi-document/multi-document-input/form-multi-document.js.map +1 -0
- package/dist/cjs/components/multi-document/multi-document-input/form-multi-document.st.css.js +5 -5
- package/dist/cjs/components/multi-document/multi-document-input/form-multi-document.st.css.js.map +1 -1
- package/dist/cjs/components/number-input/form-number.driver.js +1 -1
- package/dist/cjs/components/number-input/form-number.driver.js.map +1 -1
- package/dist/cjs/components/number-input/form-number.js +4 -3
- package/dist/cjs/components/number-input/form-number.js.map +1 -1
- package/dist/cjs/components/object/form-object.driver.js +18 -0
- package/dist/cjs/components/object/form-object.driver.js.map +1 -0
- package/dist/cjs/components/object/form-object.js +95 -0
- package/dist/cjs/components/object/form-object.js.map +1 -0
- package/dist/cjs/components/object/index.js +4 -10
- package/dist/cjs/components/object/index.js.map +1 -1
- package/dist/cjs/components/reference/cell-reference-input.st.css.js +3 -3
- package/dist/cjs/components/reference/cell-reference-input.st.css.js.map +1 -1
- package/dist/cjs/components/rich-content/form-rich-content.driver.js +18 -0
- package/dist/cjs/components/rich-content/form-rich-content.driver.js.map +1 -0
- package/dist/cjs/components/rich-content/form-rich-content.js +101 -0
- package/dist/cjs/components/rich-content/form-rich-content.js.map +1 -0
- package/dist/cjs/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.js +4 -4
- package/dist/cjs/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.js.map +1 -1
- package/dist/cjs/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js +3 -3
- package/dist/cjs/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js.map +1 -1
- package/dist/cjs/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.js +2 -2
- 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
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js +3 -3
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js.map +1 -1
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js +3 -3
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js.map +1 -1
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js +2 -2
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js.map +1 -1
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js +7 -7
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js.map +1 -1
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js +4 -4
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js.map +1 -1
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js +4 -4
- package/dist/cjs/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js.map +1 -1
- package/dist/cjs/components/rich-text/form-rich-text.driver.js +18 -0
- package/dist/cjs/components/rich-text/form-rich-text.driver.js.map +1 -0
- package/dist/cjs/components/rich-text/form-rich-text.js +93 -0
- package/dist/cjs/components/rich-text/form-rich-text.js.map +1 -0
- package/dist/cjs/components/rich-text/index.js +6 -0
- package/dist/cjs/components/rich-text/index.js.map +1 -1
- package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js +18 -18
- package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js.map +1 -1
- package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js +4 -4
- package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js.map +1 -1
- package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js +18 -18
- package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js.map +1 -1
- package/dist/cjs/components/text/form-long-text.driver.js +2 -2
- package/dist/cjs/components/text/form-long-text.driver.js.map +1 -1
- package/dist/cjs/components/text/form-short-text.driver.js +2 -2
- package/dist/cjs/components/text/form-short-text.driver.js.map +1 -1
- package/dist/cjs/components/text/text-view.st.css.js +3 -3
- package/dist/cjs/components/text/text-view.st.css.js.map +1 -1
- package/dist/cjs/components/time-input/form-time.driver.js +18 -0
- package/dist/cjs/components/time-input/form-time.driver.js.map +1 -0
- package/dist/cjs/components/time-input/form-time.js +92 -0
- package/dist/cjs/components/time-input/form-time.js.map +1 -0
- package/dist/cjs/components/time-input/index.js +6 -0
- package/dist/cjs/components/time-input/index.js.map +1 -1
- package/dist/cjs/components/url/form-url.driver.js +2 -2
- package/dist/cjs/components/url/form-url.driver.js.map +1 -1
- package/dist/cjs/components/video/form-video.driver.js +40 -0
- package/dist/cjs/components/video/form-video.driver.js.map +1 -0
- package/dist/cjs/components/video/form-video.js +364 -0
- package/dist/cjs/components/video/form-video.js.map +1 -0
- package/dist/cjs/components/video/index.js +7 -1
- package/dist/cjs/components/video/index.js.map +1 -1
- package/dist/cjs/components/video/use-video-preview.js +71 -0
- package/dist/cjs/components/video/use-video-preview.js.map +1 -0
- package/dist/cjs/components/video/video-view-field.js +205 -0
- package/dist/cjs/components/video/video-view-field.js.map +1 -0
- package/dist/cjs/exports/form-document-field.js +3 -1
- package/dist/cjs/exports/form-document-field.js.map +1 -1
- package/dist/cjs/exports/form-media-gallery-field.js +3 -1
- package/dist/cjs/exports/form-media-gallery-field.js.map +1 -1
- package/dist/cjs/exports/form-rich-content-input.js +3 -1
- package/dist/cjs/exports/form-rich-content-input.js.map +1 -1
- package/dist/cjs/styles.global.css +1 -1
- package/dist/cjs/testkit/base-driver.js +5 -0
- package/dist/cjs/testkit/base-driver.js.map +1 -1
- package/dist/cjs/testkit/patterns-fields-test-provider.js +6 -3
- package/dist/cjs/testkit/patterns-fields-test-provider.js.map +1 -1
- package/dist/cjs/utils/get-image-url.js +25 -0
- package/dist/cjs/utils/get-image-url.js.map +1 -0
- package/dist/cjs/utils/media-constants.js +19 -0
- package/dist/cjs/utils/media-constants.js.map +1 -0
- package/dist/cjs/validations/array.js +4 -1
- package/dist/cjs/validations/array.js.map +1 -1
- package/dist/cjs/validations/string.js +2 -1
- package/dist/cjs/validations/string.js.map +1 -1
- package/dist/cjs/validations/value.js +7 -0
- package/dist/cjs/validations/value.js.map +1 -0
- package/dist/esm/components/address/form-address.driver.js +13 -0
- package/dist/esm/components/address/form-address.driver.js.map +1 -0
- package/dist/esm/components/address/form-address.js +28 -0
- package/dist/esm/components/address/form-address.js.map +1 -0
- package/dist/esm/components/address/index.js +1 -0
- package/dist/esm/components/address/index.js.map +1 -1
- package/dist/esm/components/address/input/address-input.js +8 -1
- package/dist/esm/components/address/input/address-input.js.map +1 -1
- package/dist/esm/components/address/input/address-input.st.css.js +2 -2
- package/dist/esm/components/address/view/cell-address-view.js +12 -0
- package/dist/esm/components/address/view/cell-address-view.js.map +1 -0
- package/dist/esm/components/address/view/index.js +1 -0
- package/dist/esm/components/address/view/index.js.map +1 -1
- package/dist/esm/components/array/form-array.driver.js +14 -0
- package/dist/esm/components/array/form-array.driver.js.map +1 -0
- package/dist/esm/components/array/form-array.js +48 -0
- package/dist/esm/components/array/form-array.js.map +1 -0
- package/dist/esm/components/array/index.js +2 -0
- package/dist/esm/components/array/index.js.map +1 -0
- package/dist/esm/components/audio/actions/actions-menu/actions-menu.st.css.js +2 -2
- package/dist/esm/components/audio/audio-field/form-audio-field.st.css.js +2 -2
- package/dist/esm/components/audio/audio-field/form-audio-field.st.css.js.map +1 -1
- package/dist/esm/components/audio/audio-field/form-audio.driver.js +17 -0
- package/dist/esm/components/audio/audio-field/form-audio.driver.js.map +1 -0
- package/dist/esm/components/audio/audio-field/form-audio.js +28 -0
- package/dist/esm/components/audio/audio-field/form-audio.js.map +1 -0
- package/dist/esm/components/audio/audio-field/index.js +1 -0
- package/dist/esm/components/audio/audio-field/index.js.map +1 -1
- package/dist/esm/components/audio/audio-player/audio-player.st.css.js +2 -2
- package/dist/esm/components/audio/audio-player/audio-player.st.css.js.map +1 -1
- package/dist/esm/components/boolean/form-checkbox.driver.js +1 -1
- package/dist/esm/components/boolean/form-checkbox.driver.js.map +1 -1
- package/dist/esm/components/color-view/color-view.st.css.js +2 -2
- package/dist/esm/components/color-view/color-view.st.css.js.map +1 -1
- package/dist/esm/components/color-view/form-color.driver.js +18 -0
- package/dist/esm/components/color-view/form-color.driver.js.map +1 -0
- package/dist/esm/components/color-view/form-color.js +17 -0
- package/dist/esm/components/color-view/form-color.js.map +1 -0
- package/dist/esm/components/color-view/index.js +1 -0
- package/dist/esm/components/color-view/index.js.map +1 -1
- package/dist/esm/components/date-input/date-utils.js +9 -0
- package/dist/esm/components/date-input/date-utils.js.map +1 -0
- package/dist/esm/components/date-input/form-date-input.driver.js +18 -0
- package/dist/esm/components/date-input/form-date-input.driver.js.map +1 -0
- package/dist/esm/components/date-input/form-date-input.js +66 -0
- package/dist/esm/components/date-input/form-date-input.js.map +1 -0
- package/dist/esm/components/date-input/index.js +2 -0
- package/dist/esm/components/date-input/index.js.map +1 -0
- package/dist/esm/components/datetime-input/form-date-time.driver.js +27 -0
- package/dist/esm/components/datetime-input/form-date-time.driver.js.map +1 -0
- package/dist/esm/components/datetime-input/form-date-time.js +141 -0
- package/dist/esm/components/datetime-input/form-date-time.js.map +1 -0
- package/dist/esm/components/datetime-input/index.js +2 -0
- package/dist/esm/components/datetime-input/index.js.map +1 -0
- package/dist/esm/components/delete-dialog/delete-dialog.st.css.js +2 -2
- package/dist/esm/components/delete-dialog/delete-dialog.st.css.js.map +1 -1
- package/dist/esm/components/document/form-document-field.st.css.js +2 -2
- package/dist/esm/components/document/form-document-field.st.css.js.map +1 -1
- package/dist/esm/components/document/form-document.driver.js +15 -0
- package/dist/esm/components/document/form-document.driver.js.map +1 -0
- package/dist/esm/components/document/form-document.js +28 -0
- package/dist/esm/components/document/form-document.js.map +1 -0
- package/dist/esm/components/email/form-email.driver.js +18 -0
- package/dist/esm/components/email/form-email.driver.js.map +1 -0
- package/dist/esm/components/email/form-email.js +36 -0
- package/dist/esm/components/email/form-email.js.map +1 -0
- package/dist/esm/components/email/index.js +1 -0
- package/dist/esm/components/email/index.js.map +1 -1
- package/dist/esm/components/exclamation/exclamation.st.css.js +2 -2
- package/dist/esm/components/highlighted-text/highlighted-text.st.css.js +3 -3
- package/dist/esm/components/image/form-image-input.driver.js +20 -0
- package/dist/esm/components/image/form-image-input.driver.js.map +1 -0
- package/dist/esm/components/image/form-image-input.js +48 -0
- package/dist/esm/components/image/form-image-input.js.map +1 -0
- package/dist/esm/components/image/image-view-field.js +19 -0
- package/dist/esm/components/image/image-view-field.js.map +1 -0
- package/dist/esm/components/image/index.js +2 -0
- package/dist/esm/components/image/index.js.map +1 -1
- package/dist/esm/components/image/thumbnail-replace-overlay.st.css.js +2 -2
- package/dist/esm/components/index.js +4 -0
- package/dist/esm/components/index.js.map +1 -1
- package/dist/esm/components/json-input/form-json-input.js.map +1 -0
- package/dist/esm/components/json-input/index.js +3 -0
- package/dist/esm/components/json-input/index.js.map +1 -0
- package/dist/esm/components/json-input/json-input.js.map +1 -0
- package/dist/esm/components/media-control/cell-media-edit-shell.st.css.js +2 -2
- package/dist/esm/components/media-control/paste-url-button.st.css.js +2 -2
- package/dist/esm/components/media-gallery/form-media-gallery-field.st.css.js +2 -2
- package/dist/esm/components/media-gallery/form-media-gallery.driver.js +19 -0
- package/dist/esm/components/media-gallery/form-media-gallery.driver.js.map +1 -0
- package/dist/esm/components/media-gallery/form-media-gallery.js +28 -0
- package/dist/esm/components/media-gallery/form-media-gallery.js.map +1 -0
- package/dist/esm/components/media-image/media-image.st.css.js +3 -3
- package/dist/esm/components/media-image/media-image.st.css.js.map +1 -1
- package/dist/esm/components/media-image/overlays/overlay.st.css.js +2 -2
- package/dist/esm/components/media-image/overlays/overlay.st.css.js.map +1 -1
- package/dist/esm/components/media-loader/media-loader.st.css.js +2 -2
- package/dist/esm/components/media-loader/media-loader.st.css.js.map +1 -1
- package/dist/esm/components/media-tag/web-media-tag/media-tag.st.css.js +2 -2
- package/dist/esm/components/media-tag/web-media-tag/media-tag.st.css.js.map +1 -1
- package/dist/esm/components/multi-document/index.js +1 -0
- package/dist/esm/components/multi-document/index.js.map +1 -1
- package/dist/esm/components/multi-document/multi-document-input/form-multi-document.driver.js +15 -0
- package/dist/esm/components/multi-document/multi-document-input/form-multi-document.driver.js.map +1 -0
- package/dist/esm/components/multi-document/multi-document-input/form-multi-document.js +28 -0
- package/dist/esm/components/multi-document/multi-document-input/form-multi-document.js.map +1 -0
- package/dist/esm/components/multi-document/multi-document-input/form-multi-document.st.css.js +2 -2
- package/dist/esm/components/multi-document/multi-document-input/form-multi-document.st.css.js.map +1 -1
- package/dist/esm/components/number-input/form-number.driver.js +1 -1
- package/dist/esm/components/number-input/form-number.driver.js.map +1 -1
- package/dist/esm/components/number-input/form-number.js +2 -2
- package/dist/esm/components/number-input/form-number.js.map +1 -1
- package/dist/esm/components/object/form-object.driver.js +14 -0
- package/dist/esm/components/object/form-object.driver.js.map +1 -0
- package/dist/esm/components/object/form-object.js +34 -0
- package/dist/esm/components/object/form-object.js.map +1 -0
- package/dist/esm/components/object/index.js +1 -2
- package/dist/esm/components/object/index.js.map +1 -1
- package/dist/esm/components/reference/cell-reference-input.st.css.js +2 -2
- package/dist/esm/components/reference/cell-reference-input.st.css.js.map +1 -1
- package/dist/esm/components/rich-content/form-rich-content.driver.js +14 -0
- package/dist/esm/components/rich-content/form-rich-content.driver.js.map +1 -0
- package/dist/esm/components/rich-content/form-rich-content.js +37 -0
- package/dist/esm/components/rich-content/form-rich-content.js.map +1 -0
- package/dist/esm/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.js +2 -2
- package/dist/esm/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js +2 -2
- package/dist/esm/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.js +2 -2
- package/dist/esm/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js +2 -2
- package/dist/esm/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.js.map +1 -1
- package/dist/esm/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js +2 -2
- package/dist/esm/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js +2 -2
- package/dist/esm/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.js.map +1 -1
- package/dist/esm/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js +2 -2
- package/dist/esm/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.js +2 -2
- package/dist/esm/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.js +2 -2
- package/dist/esm/components/rich-text/form-rich-text.driver.js +14 -0
- package/dist/esm/components/rich-text/form-rich-text.driver.js.map +1 -0
- package/dist/esm/components/rich-text/form-rich-text.js +34 -0
- package/dist/esm/components/rich-text/form-rich-text.js.map +1 -0
- package/dist/esm/components/rich-text/index.js +1 -0
- package/dist/esm/components/rich-text/index.js.map +1 -1
- package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js +2 -2
- package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js +2 -2
- package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js.map +1 -1
- package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js +2 -2
- package/dist/esm/components/text/form-long-text.driver.js +2 -2
- package/dist/esm/components/text/form-long-text.driver.js.map +1 -1
- package/dist/esm/components/text/form-short-text.driver.js +2 -2
- package/dist/esm/components/text/form-short-text.driver.js.map +1 -1
- package/dist/esm/components/text/text-view.st.css.js +2 -2
- package/dist/esm/components/text/text-view.st.css.js.map +1 -1
- package/dist/esm/components/time-input/form-time.driver.js +14 -0
- package/dist/esm/components/time-input/form-time.driver.js.map +1 -0
- package/dist/esm/components/time-input/form-time.js +34 -0
- package/dist/esm/components/time-input/form-time.js.map +1 -0
- package/dist/esm/components/time-input/index.js +1 -0
- package/dist/esm/components/time-input/index.js.map +1 -1
- package/dist/esm/components/url/form-url.driver.js +2 -2
- package/dist/esm/components/url/form-url.driver.js.map +1 -1
- package/dist/esm/components/video/form-video.driver.js +36 -0
- package/dist/esm/components/video/form-video.driver.js.map +1 -0
- package/dist/esm/components/video/form-video.js +80 -0
- package/dist/esm/components/video/form-video.js.map +1 -0
- package/dist/esm/components/video/index.js +3 -0
- package/dist/esm/components/video/index.js.map +1 -1
- package/dist/esm/components/video/use-video-preview.js +71 -0
- package/dist/esm/components/video/use-video-preview.js.map +1 -0
- package/dist/esm/components/video/video-view-field.js +36 -0
- package/dist/esm/components/video/video-view-field.js.map +1 -0
- package/dist/esm/exports/form-document-field.js +1 -0
- package/dist/esm/exports/form-document-field.js.map +1 -1
- package/dist/esm/exports/form-media-gallery-field.js +1 -0
- package/dist/esm/exports/form-media-gallery-field.js.map +1 -1
- package/dist/esm/exports/form-rich-content-input.js +1 -0
- package/dist/esm/exports/form-rich-content-input.js.map +1 -1
- package/dist/esm/styles.global.css +1 -1
- package/dist/esm/testkit/base-driver.js +4 -0
- package/dist/esm/testkit/base-driver.js.map +1 -1
- package/dist/esm/testkit/patterns-fields-test-provider.js +1 -0
- package/dist/esm/testkit/patterns-fields-test-provider.js.map +1 -1
- package/dist/esm/utils/get-image-url.js +20 -0
- package/dist/esm/utils/get-image-url.js.map +1 -0
- package/dist/esm/utils/media-constants.js +12 -0
- package/dist/esm/utils/media-constants.js.map +1 -0
- package/dist/esm/validations/array.js +2 -0
- package/dist/esm/validations/array.js.map +1 -1
- package/dist/esm/validations/string.js +2 -1
- package/dist/esm/validations/string.js.map +1 -1
- package/dist/esm/validations/value.js +2 -0
- package/dist/esm/validations/value.js.map +1 -0
- package/dist/types/components/address/form-address.d.ts +9 -0
- package/dist/types/components/address/form-address.d.ts.map +1 -0
- package/dist/types/components/address/form-address.driver.d.ts +18 -0
- package/dist/types/components/address/form-address.driver.d.ts.map +1 -0
- package/dist/types/components/address/index.d.ts +1 -0
- package/dist/types/components/address/index.d.ts.map +1 -1
- package/dist/types/components/address/input/address-input.d.ts +8 -0
- package/dist/types/components/address/input/address-input.d.ts.map +1 -1
- package/dist/types/components/address/view/cell-address-view.d.ts +7 -0
- package/dist/types/components/address/view/cell-address-view.d.ts.map +1 -0
- package/dist/types/components/address/view/index.d.ts +1 -0
- package/dist/types/components/address/view/index.d.ts.map +1 -1
- package/dist/types/components/array/form-array.d.ts +8 -0
- package/dist/types/components/array/form-array.d.ts.map +1 -0
- package/dist/types/components/array/form-array.driver.d.ts +19 -0
- package/dist/types/components/array/form-array.driver.d.ts.map +1 -0
- package/dist/types/components/array/index.d.ts +2 -0
- package/dist/types/components/array/index.d.ts.map +1 -0
- package/dist/types/components/audio/audio-field/form-audio-field.st.css.d.ts.map +1 -1
- package/dist/types/components/audio/audio-field/form-audio.d.ts +8 -0
- package/dist/types/components/audio/audio-field/form-audio.d.ts.map +1 -0
- package/dist/types/components/audio/audio-field/form-audio.driver.d.ts +22 -0
- package/dist/types/components/audio/audio-field/form-audio.driver.d.ts.map +1 -0
- package/dist/types/components/audio/audio-field/index.d.ts +1 -0
- package/dist/types/components/audio/audio-field/index.d.ts.map +1 -1
- package/dist/types/components/audio/audio-player/audio-player.st.css.d.ts.map +1 -1
- package/dist/types/components/boolean/form-checkbox.driver.d.ts +2 -1
- package/dist/types/components/boolean/form-checkbox.driver.d.ts.map +1 -1
- package/dist/types/components/color-view/color-view.st.css.d.ts.map +1 -1
- package/dist/types/components/color-view/form-color.d.ts +8 -0
- package/dist/types/components/color-view/form-color.d.ts.map +1 -0
- package/dist/types/components/color-view/form-color.driver.d.ts +35 -0
- package/dist/types/components/color-view/form-color.driver.d.ts.map +1 -0
- package/dist/types/components/color-view/index.d.ts +1 -0
- package/dist/types/components/color-view/index.d.ts.map +1 -1
- package/dist/types/components/date-input/date-utils.d.ts +3 -0
- package/dist/types/components/date-input/date-utils.d.ts.map +1 -0
- package/dist/types/components/date-input/form-date-input.d.ts +8 -0
- package/dist/types/components/date-input/form-date-input.d.ts.map +1 -0
- package/dist/types/components/date-input/form-date-input.driver.d.ts +22 -0
- package/dist/types/components/date-input/form-date-input.driver.d.ts.map +1 -0
- package/dist/types/components/date-input/index.d.ts +2 -0
- package/dist/types/components/date-input/index.d.ts.map +1 -0
- package/dist/types/components/datetime-input/form-date-time.d.ts +8 -0
- package/dist/types/components/datetime-input/form-date-time.d.ts.map +1 -0
- package/dist/types/components/datetime-input/form-date-time.driver.d.ts +25 -0
- package/dist/types/components/datetime-input/form-date-time.driver.d.ts.map +1 -0
- package/dist/types/components/datetime-input/index.d.ts +2 -0
- package/dist/types/components/datetime-input/index.d.ts.map +1 -0
- package/dist/types/components/delete-dialog/delete-dialog.st.css.d.ts.map +1 -1
- package/dist/types/components/document/form-document-field.st.css.d.ts.map +1 -1
- package/dist/types/components/document/form-document.d.ts +8 -0
- package/dist/types/components/document/form-document.d.ts.map +1 -0
- package/dist/types/components/document/form-document.driver.d.ts +20 -0
- package/dist/types/components/document/form-document.driver.d.ts.map +1 -0
- package/dist/types/components/email/form-email.d.ts +8 -0
- package/dist/types/components/email/form-email.d.ts.map +1 -0
- package/dist/types/components/email/form-email.driver.d.ts +21 -0
- package/dist/types/components/email/form-email.driver.d.ts.map +1 -0
- package/dist/types/components/email/index.d.ts +1 -0
- package/dist/types/components/email/index.d.ts.map +1 -1
- package/dist/types/components/image/form-image-input.d.ts +8 -0
- package/dist/types/components/image/form-image-input.d.ts.map +1 -0
- package/dist/types/components/image/form-image-input.driver.d.ts +21 -0
- package/dist/types/components/image/form-image-input.driver.d.ts.map +1 -0
- package/dist/types/components/image/image-view-field.d.ts +8 -0
- package/dist/types/components/image/image-view-field.d.ts.map +1 -0
- package/dist/types/components/image/index.d.ts +2 -0
- package/dist/types/components/image/index.d.ts.map +1 -1
- package/dist/types/components/index.d.ts +4 -0
- package/dist/types/components/index.d.ts.map +1 -1
- package/dist/types/components/json-input/form-json-input.d.ts.map +1 -0
- package/dist/types/components/json-input/index.d.ts +3 -0
- package/dist/types/components/json-input/index.d.ts.map +1 -0
- package/dist/types/components/json-input/json-input.d.ts.map +1 -0
- package/dist/types/components/media-gallery/form-media-gallery.d.ts +10 -0
- package/dist/types/components/media-gallery/form-media-gallery.d.ts.map +1 -0
- package/dist/types/components/media-gallery/form-media-gallery.driver.d.ts +50 -0
- package/dist/types/components/media-gallery/form-media-gallery.driver.d.ts.map +1 -0
- package/dist/types/components/media-image/media-image.st.css.d.ts.map +1 -1
- package/dist/types/components/media-image/overlays/overlay.st.css.d.ts.map +1 -1
- package/dist/types/components/media-loader/media-loader.st.css.d.ts.map +1 -1
- package/dist/types/components/media-tag/web-media-tag/media-tag.st.css.d.ts.map +1 -1
- package/dist/types/components/multi-document/index.d.ts +1 -0
- package/dist/types/components/multi-document/index.d.ts.map +1 -1
- package/dist/types/components/multi-document/multi-document-input/form-multi-document.d.ts +8 -0
- package/dist/types/components/multi-document/multi-document-input/form-multi-document.d.ts.map +1 -0
- package/dist/types/components/multi-document/multi-document-input/form-multi-document.driver.d.ts +20 -0
- package/dist/types/components/multi-document/multi-document-input/form-multi-document.driver.d.ts.map +1 -0
- package/dist/types/components/multi-document/multi-document-input/form-multi-document.st.css.d.ts.map +1 -1
- package/dist/types/components/number-input/form-number.d.ts.map +1 -1
- package/dist/types/components/number-input/form-number.driver.d.ts +2 -1
- package/dist/types/components/number-input/form-number.driver.d.ts.map +1 -1
- package/dist/types/components/object/form-object.d.ts +8 -0
- package/dist/types/components/object/form-object.d.ts.map +1 -0
- package/dist/types/components/object/form-object.driver.d.ts +19 -0
- package/dist/types/components/object/form-object.driver.d.ts.map +1 -0
- package/dist/types/components/object/index.d.ts +1 -2
- package/dist/types/components/object/index.d.ts.map +1 -1
- package/dist/types/components/reference/cell-reference-input.st.css.d.ts.map +1 -1
- package/dist/types/components/rich-content/form-rich-content.d.ts +9 -0
- package/dist/types/components/rich-content/form-rich-content.d.ts.map +1 -0
- package/dist/types/components/rich-content/form-rich-content.driver.d.ts +19 -0
- package/dist/types/components/rich-content/form-rich-content.driver.d.ts.map +1 -0
- package/dist/types/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.d.ts.map +1 -1
- package/dist/types/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.d.ts.map +1 -1
- package/dist/types/components/rich-text/form-rich-text.d.ts +8 -0
- package/dist/types/components/rich-text/form-rich-text.d.ts.map +1 -0
- package/dist/types/components/rich-text/form-rich-text.driver.d.ts +19 -0
- package/dist/types/components/rich-text/form-rich-text.driver.d.ts.map +1 -0
- package/dist/types/components/rich-text/index.d.ts +1 -0
- package/dist/types/components/rich-text/index.d.ts.map +1 -1
- package/dist/types/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.d.ts.map +1 -1
- package/dist/types/components/text/form-long-text.driver.d.ts +2 -1
- package/dist/types/components/text/form-long-text.driver.d.ts.map +1 -1
- package/dist/types/components/text/form-short-text.driver.d.ts +2 -1
- package/dist/types/components/text/form-short-text.driver.d.ts.map +1 -1
- package/dist/types/components/text/text-view.st.css.d.ts.map +1 -1
- package/dist/types/components/time-input/form-time.d.ts +8 -0
- package/dist/types/components/time-input/form-time.d.ts.map +1 -0
- package/dist/types/components/time-input/form-time.driver.d.ts +19 -0
- package/dist/types/components/time-input/form-time.driver.d.ts.map +1 -0
- package/dist/types/components/time-input/index.d.ts +1 -0
- package/dist/types/components/time-input/index.d.ts.map +1 -1
- package/dist/types/components/url/form-url.driver.d.ts +2 -1
- package/dist/types/components/url/form-url.driver.d.ts.map +1 -1
- package/dist/types/components/video/form-video.d.ts +8 -0
- package/dist/types/components/video/form-video.d.ts.map +1 -0
- package/dist/types/components/video/form-video.driver.d.ts +32 -0
- package/dist/types/components/video/form-video.driver.d.ts.map +1 -0
- package/dist/types/components/video/index.d.ts +6 -0
- package/dist/types/components/video/index.d.ts.map +1 -1
- package/dist/types/components/video/use-video-preview.d.ts +12 -0
- package/dist/types/components/video/use-video-preview.d.ts.map +1 -0
- package/dist/types/components/video/video-view-field.d.ts +8 -0
- package/dist/types/components/video/video-view-field.d.ts.map +1 -0
- package/dist/types/exports/form-document-field.d.ts +1 -0
- package/dist/types/exports/form-document-field.d.ts.map +1 -1
- package/dist/types/exports/form-media-gallery-field.d.ts +2 -0
- package/dist/types/exports/form-media-gallery-field.d.ts.map +1 -1
- package/dist/types/exports/form-rich-content-input.d.ts +2 -0
- package/dist/types/exports/form-rich-content-input.d.ts.map +1 -1
- package/dist/types/testkit/base-driver.d.ts +3 -0
- package/dist/types/testkit/base-driver.d.ts.map +1 -1
- package/dist/types/testkit/patterns-fields-test-provider.d.ts.map +1 -1
- package/dist/types/utils/get-image-url.d.ts +3 -0
- package/dist/types/utils/get-image-url.d.ts.map +1 -0
- package/dist/types/utils/media-constants.d.ts +12 -0
- package/dist/types/utils/media-constants.d.ts.map +1 -0
- package/dist/types/validations/array.d.ts +1 -0
- package/dist/types/validations/array.d.ts.map +1 -1
- package/dist/types/validations/string.d.ts.map +1 -1
- package/dist/types/validations/value.d.ts +2 -0
- package/dist/types/validations/value.d.ts.map +1 -0
- package/package.json +5 -5
- package/src/__tests__/components/address/form-address.spec.tsx +48 -0
- package/src/__tests__/components/array/form-array.spec.tsx +61 -0
- package/src/__tests__/components/audio/form-audio.spec.tsx +63 -0
- package/src/__tests__/components/color-view/form-color.spec.tsx +49 -0
- package/src/__tests__/components/date-input/form-date-input.spec.tsx +43 -0
- package/src/__tests__/components/datetime-input/form-date-time.spec.tsx +61 -0
- package/src/__tests__/components/document/form-document.spec.tsx +54 -0
- package/src/__tests__/components/email/form-email.spec.tsx +85 -0
- package/src/__tests__/components/image/form-image-input.spec.tsx +65 -0
- package/src/__tests__/components/image/image-view-field.spec.tsx +55 -0
- package/src/__tests__/components/media-gallery/form-media-gallery.spec.tsx +74 -0
- package/src/__tests__/components/multi-document/form-multi-document.spec.tsx +60 -0
- package/src/__tests__/components/object/form-object.spec.tsx +61 -0
- package/src/__tests__/components/rich-content/form-rich-content.spec.tsx +80 -0
- package/src/__tests__/components/rich-text/form-rich-text.spec.tsx +79 -0
- package/src/__tests__/components/time-input/form-time.spec.tsx +61 -0
- package/src/__tests__/components/video/form-video.spec.tsx +84 -0
- package/src/__tests__/components/video/video-view-field.spec.tsx +52 -0
- package/src/__tests__/form-field.driver.tsx +36 -9
- package/src/components/address/form-address.driver.ts +19 -0
- package/src/components/address/form-address.tsx +53 -0
- package/src/components/address/index.ts +1 -0
- package/src/components/address/input/address-input.st.css.ts +2 -2
- package/src/components/address/input/address-input.tsx +16 -0
- package/src/components/address/view/cell-address-view.tsx +29 -0
- package/src/components/address/view/index.ts +1 -1
- package/src/components/array/form-array.driver.ts +20 -0
- package/src/components/array/form-array.tsx +100 -0
- package/src/components/array/index.ts +1 -0
- package/src/components/audio/actions/actions-menu/actions-menu.st.css.ts +2 -2
- package/src/components/audio/audio-field/form-audio-field.st.css.ts +2 -2
- package/src/components/audio/audio-field/form-audio.driver.ts +29 -0
- package/src/components/audio/audio-field/form-audio.tsx +51 -0
- package/src/components/audio/audio-field/index.ts +1 -0
- package/src/components/audio/audio-player/audio-player.st.css.ts +2 -2
- package/src/components/boolean/form-checkbox.driver.ts +6 -1
- package/src/components/color-view/color-view.st.css.ts +2 -2
- package/src/components/color-view/form-color.driver.ts +34 -0
- package/src/components/color-view/form-color.tsx +38 -0
- package/src/components/color-view/index.ts +1 -0
- package/src/components/date-input/date-utils.ts +10 -0
- package/src/components/date-input/form-date-input.driver.ts +32 -0
- package/src/components/date-input/form-date-input.tsx +102 -0
- package/src/components/date-input/index.ts +1 -0
- package/src/components/datetime-input/form-date-time.driver.ts +42 -0
- package/src/components/datetime-input/form-date-time.tsx +203 -0
- package/src/components/datetime-input/index.ts +1 -0
- package/src/components/delete-dialog/delete-dialog.st.css.ts +2 -2
- package/src/components/document/form-document-field.st.css.ts +2 -2
- package/src/components/document/form-document.driver.ts +26 -0
- package/src/components/document/form-document.tsx +51 -0
- package/src/components/email/form-email.driver.ts +27 -0
- package/src/components/email/form-email.tsx +58 -0
- package/src/components/email/index.ts +1 -0
- package/src/components/exclamation/exclamation.st.css.ts +2 -2
- package/src/components/highlighted-text/highlighted-text.st.css.ts +3 -3
- package/src/components/image/form-image-input.driver.ts +31 -0
- package/src/components/image/form-image-input.tsx +83 -0
- package/src/components/image/image-view-field.tsx +48 -0
- package/src/components/image/index.ts +2 -0
- package/src/components/image/thumbnail-replace-overlay.st.css.ts +2 -2
- package/src/components/index.ts +4 -0
- package/src/components/json-input/index.ts +2 -0
- package/src/components/media-control/cell-media-edit-shell.st.css.ts +2 -2
- package/src/components/media-control/paste-url-button.st.css.ts +2 -2
- package/src/components/media-gallery/form-media-gallery-field.st.css.ts +2 -2
- package/src/components/media-gallery/form-media-gallery.driver.ts +30 -0
- package/src/components/media-gallery/form-media-gallery.tsx +55 -0
- package/src/components/media-image/media-image.st.css.ts +3 -3
- package/src/components/media-image/overlays/overlay.st.css.ts +2 -2
- package/src/components/media-loader/media-loader.st.css.ts +2 -2
- package/src/components/media-tag/web-media-tag/media-tag.st.css.ts +2 -2
- package/src/components/multi-document/index.ts +1 -0
- package/src/components/multi-document/multi-document-input/form-multi-document.driver.ts +26 -0
- package/src/components/multi-document/multi-document-input/form-multi-document.st.css.ts +2 -2
- package/src/components/multi-document/multi-document-input/form-multi-document.tsx +50 -0
- package/src/components/number-input/form-number.driver.ts +6 -1
- package/src/components/number-input/form-number.tsx +2 -4
- package/src/components/object/form-object.driver.ts +20 -0
- package/src/components/object/form-object.tsx +85 -0
- package/src/components/object/index.ts +1 -2
- package/src/components/reference/cell-reference-input.st.css.ts +2 -2
- package/src/components/rich-content/form-rich-content.driver.ts +20 -0
- package/src/components/rich-content/form-rich-content.tsx +94 -0
- package/src/components/rich-content/rich-content-input/default-value-input/rich-content-default-value-input.st.css.ts +2 -2
- package/src/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.ts +2 -2
- package/src/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.ts +2 -2
- package/src/components/rich-content/rich-content-input/rich-content-common/fullscreen-modal/fullscreen-modal.st.css.ts +2 -2
- package/src/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.ts +2 -2
- package/src/components/rich-content/rich-content-input/rich-content-common/toggle-fullscreen-button/toggle-fullscreen-button.st.css.ts +2 -2
- package/src/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.ts +2 -2
- package/src/components/rich-content/rich-content-input/rich-content-editor/rich-content-toolbar.st.css.ts +2 -2
- package/src/components/rich-content/rich-content-input/rich-content-viewer/rich-content-viewer.st.css.ts +2 -2
- package/src/components/rich-text/form-rich-text.driver.ts +20 -0
- package/src/components/rich-text/form-rich-text.tsx +82 -0
- package/src/components/rich-text/index.ts +1 -0
- package/src/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.ts +2 -2
- package/src/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.ts +2 -2
- package/src/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.ts +2 -2
- package/src/components/text/form-long-text.driver.ts +7 -2
- package/src/components/text/form-short-text.driver.ts +7 -2
- package/src/components/text/text-view.st.css.ts +2 -2
- package/src/components/time-input/form-time.driver.ts +20 -0
- package/src/components/time-input/form-time.tsx +82 -0
- package/src/components/time-input/index.ts +1 -0
- package/src/components/url/form-url.driver.ts +3 -2
- package/src/components/video/form-video.driver.ts +48 -0
- package/src/components/video/form-video.tsx +244 -0
- package/src/components/video/index.ts +6 -0
- package/src/components/video/use-video-preview.ts +78 -0
- package/src/components/video/video-view-field.tsx +127 -0
- package/src/exports/form-document-field.ts +1 -0
- package/src/exports/form-media-gallery-field.ts +2 -0
- package/src/exports/form-rich-content-input.ts +2 -0
- package/src/styles.global.css +1 -1
- package/src/testkit/base-driver.ts +7 -0
- package/src/testkit/patterns-fields-test-provider.tsx +1 -0
- package/src/utils/get-image-url.ts +22 -0
- package/src/utils/media-constants.ts +14 -0
- package/src/validations/array.ts +6 -0
- package/src/validations/string.ts +3 -1
- package/src/validations/value.ts +2 -0
- package/dist/cjs/components/object/form-json-input.js.map +0 -1
- package/dist/cjs/components/object/json-input.js.map +0 -1
- package/dist/esm/components/object/form-json-input.js.map +0 -1
- package/dist/esm/components/object/json-input.js.map +0 -1
- package/dist/types/components/object/form-json-input.d.ts.map +0 -1
- package/dist/types/components/object/json-input.d.ts.map +0 -1
- /package/dist/esm/components/{object → json-input}/form-json-input.js +0 -0
- /package/dist/esm/components/{object → json-input}/json-input.js +0 -0
- /package/dist/types/components/{object → json-input}/form-json-input.d.ts +0 -0
- /package/dist/types/components/{object → json-input}/json-input.d.ts +0 -0
- /package/src/components/{object → json-input}/form-json-input.tsx +0 -0
- /package/src/components/{object → json-input}/json-input.tsx +0 -0
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { render, screen } from '@testing-library/react';
|
|
3
|
+
import { ImageViewField } from '../../../components/image/image-view-field';
|
|
4
|
+
import { PatternsFieldsTestProvider } from '../../../testkit/patterns-fields-test-provider';
|
|
5
|
+
|
|
6
|
+
const WIX_MEDIA_URI =
|
|
7
|
+
'wix:image://v1/dafa67_9aa1f03ed7274a7795d2f2e18a245ac7~mv2.jpg/cute%20cat.jpg#originWidth=1024&originHeight=1024';
|
|
8
|
+
|
|
9
|
+
const renderField = (
|
|
10
|
+
props: Partial<React.ComponentProps<typeof ImageViewField>> = {},
|
|
11
|
+
) =>
|
|
12
|
+
render(
|
|
13
|
+
<ImageViewField value={undefined} displayName="" id="img-1" {...props} />,
|
|
14
|
+
{
|
|
15
|
+
wrapper: PatternsFieldsTestProvider,
|
|
16
|
+
},
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
describe('ImageViewField', () => {
|
|
20
|
+
it('renders a placeholder dash when value is not a string', () => {
|
|
21
|
+
renderField({ value: undefined });
|
|
22
|
+
expect(screen.getByText('-')).toBeInTheDocument();
|
|
23
|
+
expect(screen.queryByRole('img')).not.toBeInTheDocument();
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
it('renders a placeholder dash when value is an empty string', () => {
|
|
27
|
+
renderField({ value: '' });
|
|
28
|
+
expect(screen.getByText('-')).toBeInTheDocument();
|
|
29
|
+
expect(screen.queryByRole('img')).not.toBeInTheDocument();
|
|
30
|
+
});
|
|
31
|
+
|
|
32
|
+
it('resolves a Wix media URI to a CDN URL and renders an img', () => {
|
|
33
|
+
renderField({ value: WIX_MEDIA_URI, displayName: 'Cute Cat' });
|
|
34
|
+
const img = screen.getByRole('img') as HTMLImageElement;
|
|
35
|
+
expect(img.src).toContain(
|
|
36
|
+
'dafa67_9aa1f03ed7274a7795d2f2e18a245ac7~mv2.jpg',
|
|
37
|
+
);
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
it('passes through an absolute URL value unchanged', () => {
|
|
41
|
+
const ABSOLUTE = 'https://example.com/cat.jpg';
|
|
42
|
+
renderField({ value: ABSOLUTE, displayName: 'Cat' });
|
|
43
|
+
expect((screen.getByRole('img') as HTMLImageElement).src).toBe(ABSOLUTE);
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
it('uses displayName as the alt text', () => {
|
|
47
|
+
renderField({ value: WIX_MEDIA_URI, displayName: 'Cute Cat' });
|
|
48
|
+
expect(screen.getByAltText('Cute Cat')).toBeInTheDocument();
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
it('falls back to id for alt text when displayName is empty', () => {
|
|
52
|
+
renderField({ value: WIX_MEDIA_URI, displayName: '', id: 'image-field-7' });
|
|
53
|
+
expect(screen.getByAltText('image-field-7')).toBeInTheDocument();
|
|
54
|
+
});
|
|
55
|
+
});
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
import '../../../testkit/test-polyfills';
|
|
2
|
+
|
|
3
|
+
import type { Field } from '@wix/bex-core';
|
|
4
|
+
|
|
5
|
+
import { FormMediaGallery } from '../../../components/media-gallery/form-media-gallery';
|
|
6
|
+
import { FormMediaGalleryDriver } from '../../../components/media-gallery/form-media-gallery.driver';
|
|
7
|
+
import type { WixCodeGalleryItem } from '../../../auto-field-types';
|
|
8
|
+
import { FormFieldDriver, makeField } from '../../form-field.driver';
|
|
9
|
+
|
|
10
|
+
const setup = (
|
|
11
|
+
overrides: { field?: Field; initialValue?: WixCodeGalleryItem[] } = {},
|
|
12
|
+
) => {
|
|
13
|
+
const driver = new FormFieldDriver({
|
|
14
|
+
Component: FormMediaGallery,
|
|
15
|
+
UniDriverFactory: FormMediaGalleryDriver,
|
|
16
|
+
dataHook: (f) => `media-gallery-field-${f.id}`,
|
|
17
|
+
field: overrides.field ?? makeField({ type: 'MEDIA_GALLERY' }),
|
|
18
|
+
initialValue: overrides.initialValue ?? [],
|
|
19
|
+
});
|
|
20
|
+
driver.render();
|
|
21
|
+
return driver;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
describe('FormMediaGallery field', () => {
|
|
25
|
+
it('renders the field displayName as the label', async () => {
|
|
26
|
+
const driver = setup();
|
|
27
|
+
|
|
28
|
+
expect(await driver.tk.getLabel()).toBe(driver.field.displayName);
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
it('marks the field as required when validation.required is true', async () => {
|
|
32
|
+
const driver = setup({
|
|
33
|
+
field: makeField({
|
|
34
|
+
type: 'MEDIA_GALLERY',
|
|
35
|
+
validation: { required: true },
|
|
36
|
+
}),
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
expect(await driver.tk.isRequired()).toBe(true);
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
it('shows a required-field error after submitting with an empty array', async () => {
|
|
43
|
+
const driver = setup({
|
|
44
|
+
field: makeField({
|
|
45
|
+
type: 'MEDIA_GALLERY',
|
|
46
|
+
validation: { required: true },
|
|
47
|
+
}),
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
await driver.submit();
|
|
51
|
+
|
|
52
|
+
expect(await driver.tk.hasError()).toBe(true);
|
|
53
|
+
expect(await driver.tk.getErrorMessage()).toBe(
|
|
54
|
+
'cairo.fieldValidation.requiredField',
|
|
55
|
+
);
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
it('does not show a required-field error after submitting with items', async () => {
|
|
59
|
+
const items: WixCodeGalleryItem[] = [
|
|
60
|
+
{ type: 'image', src: 'wix:image://v1/abc.jpg/image.jpg', slug: 'abc' },
|
|
61
|
+
];
|
|
62
|
+
const driver = setup({
|
|
63
|
+
field: makeField({
|
|
64
|
+
type: 'MEDIA_GALLERY',
|
|
65
|
+
validation: { required: true },
|
|
66
|
+
}),
|
|
67
|
+
initialValue: items,
|
|
68
|
+
});
|
|
69
|
+
|
|
70
|
+
await driver.submit();
|
|
71
|
+
|
|
72
|
+
expect(await driver.tk.hasError()).toBe(false);
|
|
73
|
+
});
|
|
74
|
+
});
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import '../../../testkit/test-polyfills';
|
|
2
|
+
|
|
3
|
+
import type { Field } from '@wix/bex-core';
|
|
4
|
+
|
|
5
|
+
import { FormMultiDocument } from '../../../components/multi-document/multi-document-input/form-multi-document';
|
|
6
|
+
import { FormMultiDocumentDriver } from '../../../components/multi-document/multi-document-input/form-multi-document.driver';
|
|
7
|
+
import { FormFieldDriver, makeField } from '../../form-field.driver';
|
|
8
|
+
|
|
9
|
+
const setup = (overrides: { field?: Field; initialValue?: string[] } = {}) => {
|
|
10
|
+
const driver = new FormFieldDriver({
|
|
11
|
+
Component: FormMultiDocument,
|
|
12
|
+
UniDriverFactory: FormMultiDocumentDriver,
|
|
13
|
+
dataHook: (f) => `multi-document-field-${f.id}`,
|
|
14
|
+
field: overrides.field ?? makeField({ type: 'MULTI_DOCUMENT' }),
|
|
15
|
+
initialValue: overrides.initialValue ?? [],
|
|
16
|
+
});
|
|
17
|
+
driver.render();
|
|
18
|
+
return driver;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
describe('FormMultiDocument field', () => {
|
|
22
|
+
it('renders the field displayName as the label', async () => {
|
|
23
|
+
const driver = setup();
|
|
24
|
+
|
|
25
|
+
expect(await driver.tk.getLabel()).toBe(driver.field.displayName);
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
it('renders the multi-document field when no documents are set', async () => {
|
|
29
|
+
const driver = setup();
|
|
30
|
+
|
|
31
|
+
expect(await driver.tk.multiDocumentFieldExists()).toBe(true);
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
it('marks the field as required when validation.required is true', async () => {
|
|
35
|
+
const driver = setup({
|
|
36
|
+
field: makeField({
|
|
37
|
+
type: 'MULTI_DOCUMENT',
|
|
38
|
+
validation: { required: true },
|
|
39
|
+
}),
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
expect(await driver.tk.isRequired()).toBe(true);
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
it('shows a required-field error after the form is submitted with no value', async () => {
|
|
46
|
+
const driver = setup({
|
|
47
|
+
field: makeField({
|
|
48
|
+
type: 'MULTI_DOCUMENT',
|
|
49
|
+
validation: { required: true },
|
|
50
|
+
}),
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
await driver.submit();
|
|
54
|
+
|
|
55
|
+
expect(await driver.tk.hasError()).toBe(true);
|
|
56
|
+
expect(await driver.tk.getErrorMessage()).toBe(
|
|
57
|
+
'cairo.fieldValidation.requiredField',
|
|
58
|
+
);
|
|
59
|
+
});
|
|
60
|
+
});
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import '../../../testkit/test-polyfills';
|
|
2
|
+
|
|
3
|
+
import type { Field } from '@wix/bex-core';
|
|
4
|
+
|
|
5
|
+
import { FormObject } from '../../../components/object/form-object';
|
|
6
|
+
import { FormObjectDriver } from '../../../components/object/form-object.driver';
|
|
7
|
+
import { FormFieldDriver, makeField } from '../../form-field.driver';
|
|
8
|
+
|
|
9
|
+
const setup = (overrides: { field?: Field; initialValue?: any } = {}) => {
|
|
10
|
+
const driver = new FormFieldDriver({
|
|
11
|
+
Component: FormObject,
|
|
12
|
+
UniDriverFactory: FormObjectDriver,
|
|
13
|
+
dataHook: (f) => `object-field-${f.id}`,
|
|
14
|
+
field: overrides.field ?? makeField({ type: 'OBJECT' }),
|
|
15
|
+
initialValue: overrides.initialValue ?? { hello: 'world' },
|
|
16
|
+
});
|
|
17
|
+
driver.render();
|
|
18
|
+
return driver;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
describe('FormObject field', () => {
|
|
22
|
+
it('renders the field displayName as the label', async () => {
|
|
23
|
+
const driver = setup();
|
|
24
|
+
|
|
25
|
+
expect(await driver.tk.getLabel()).toBe(driver.field.displayName);
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
it('marks the field as required when validation.required is true', async () => {
|
|
29
|
+
const driver = setup({
|
|
30
|
+
field: makeField({ type: 'OBJECT', validation: { required: true } }),
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
expect(await driver.tk.isRequired()).toBe(true);
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
it('does not show a type-mismatch suffix for a valid object value', async () => {
|
|
37
|
+
const driver = setup({ initialValue: { hello: 'world' } });
|
|
38
|
+
|
|
39
|
+
expect(await driver.tk.hasSuffix()).toBe(false);
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
it('shows a type-mismatch suffix when value is not a valid object', async () => {
|
|
43
|
+
const driver = setup({ initialValue: 'invalid json' });
|
|
44
|
+
|
|
45
|
+
expect(await driver.tk.hasSuffix()).toBe(true);
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
it('shows a required-field error after the form is submitted with no value', async () => {
|
|
49
|
+
const driver = setup({
|
|
50
|
+
field: makeField({ type: 'OBJECT', validation: { required: true } }),
|
|
51
|
+
initialValue: '',
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
await driver.submit();
|
|
55
|
+
|
|
56
|
+
expect(await driver.tk.hasError()).toBe(true);
|
|
57
|
+
expect(await driver.tk.getErrorMessage()).toBe(
|
|
58
|
+
'cairo.fieldValidation.requiredField',
|
|
59
|
+
);
|
|
60
|
+
});
|
|
61
|
+
});
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
import '../../../testkit/test-polyfills';
|
|
2
|
+
|
|
3
|
+
import { fromPlainText } from '@wix/ricos';
|
|
4
|
+
import type { Field } from '@wix/bex-core';
|
|
5
|
+
|
|
6
|
+
import { FormRichContent } from '../../../components/rich-content/form-rich-content';
|
|
7
|
+
import { FormRichContentDriver } from '../../../components/rich-content/form-rich-content.driver';
|
|
8
|
+
import { FormFieldDriver, makeField } from '../../form-field.driver';
|
|
9
|
+
|
|
10
|
+
const setup = (overrides: { field?: Field; initialValue?: any } = {}) => {
|
|
11
|
+
const driver = new FormFieldDriver({
|
|
12
|
+
Component: FormRichContent,
|
|
13
|
+
UniDriverFactory: FormRichContentDriver,
|
|
14
|
+
dataHook: (f) => `rich-content-field-${f.id}`,
|
|
15
|
+
field: overrides.field ?? makeField({ type: 'RICH_CONTENT' }),
|
|
16
|
+
initialValue: overrides.initialValue ?? fromPlainText('Hello World'),
|
|
17
|
+
});
|
|
18
|
+
driver.render();
|
|
19
|
+
return driver;
|
|
20
|
+
};
|
|
21
|
+
|
|
22
|
+
describe('FormRichContent field', () => {
|
|
23
|
+
it('renders the field displayName as the label', async () => {
|
|
24
|
+
const driver = setup();
|
|
25
|
+
|
|
26
|
+
expect(await driver.tk.getLabel()).toBe(driver.field.displayName);
|
|
27
|
+
});
|
|
28
|
+
|
|
29
|
+
it('marks the field as required when validation.required is true', async () => {
|
|
30
|
+
const driver = setup({
|
|
31
|
+
field: makeField({
|
|
32
|
+
type: 'RICH_CONTENT',
|
|
33
|
+
validation: { required: true },
|
|
34
|
+
}),
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
expect(await driver.tk.isRequired()).toBe(true);
|
|
38
|
+
});
|
|
39
|
+
|
|
40
|
+
it('does not show a type-mismatch suffix for a valid RichContent value', async () => {
|
|
41
|
+
const driver = setup({ initialValue: fromPlainText('Valid content') });
|
|
42
|
+
|
|
43
|
+
expect(await driver.tk.hasSuffix()).toBe(false);
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
it('does not show a type-mismatch suffix for undefined value', async () => {
|
|
47
|
+
const driver = setup({ initialValue: undefined });
|
|
48
|
+
|
|
49
|
+
expect(await driver.tk.hasSuffix()).toBe(false);
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
it('shows a type-mismatch suffix when value is a string', async () => {
|
|
53
|
+
const driver = setup({ initialValue: 'plain string' });
|
|
54
|
+
|
|
55
|
+
expect(await driver.tk.hasSuffix()).toBe(true);
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
it('shows a type-mismatch suffix when value is a number', async () => {
|
|
59
|
+
const driver = setup({ initialValue: 12345 });
|
|
60
|
+
|
|
61
|
+
expect(await driver.tk.hasSuffix()).toBe(true);
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
it('shows a required-field error after the form is submitted with no value', async () => {
|
|
65
|
+
const driver = setup({
|
|
66
|
+
field: makeField({
|
|
67
|
+
type: 'RICH_CONTENT',
|
|
68
|
+
validation: { required: true },
|
|
69
|
+
}),
|
|
70
|
+
initialValue: '',
|
|
71
|
+
});
|
|
72
|
+
|
|
73
|
+
await driver.submit();
|
|
74
|
+
|
|
75
|
+
expect(await driver.tk.hasError()).toBe(true);
|
|
76
|
+
expect(await driver.tk.getErrorMessage()).toBe(
|
|
77
|
+
'cairo.fieldValidation.requiredField',
|
|
78
|
+
);
|
|
79
|
+
});
|
|
80
|
+
});
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import '../../../testkit/test-polyfills';
|
|
2
|
+
|
|
3
|
+
import type { Field } from '@wix/bex-core';
|
|
4
|
+
|
|
5
|
+
import { FormRichText } from '../../../components/rich-text/form-rich-text';
|
|
6
|
+
import { FormRichTextDriver } from '../../../components/rich-text/form-rich-text.driver';
|
|
7
|
+
import { FormFieldDriver, makeField } from '../../form-field.driver';
|
|
8
|
+
|
|
9
|
+
const setup = (overrides: { field?: Field; initialValue?: any } = {}) => {
|
|
10
|
+
const driver = new FormFieldDriver({
|
|
11
|
+
Component: FormRichText,
|
|
12
|
+
UniDriverFactory: FormRichTextDriver,
|
|
13
|
+
dataHook: (f) => `rich-text-field-${f.id}`,
|
|
14
|
+
field: overrides.field ?? makeField({ type: 'RICH_TEXT' }),
|
|
15
|
+
initialValue: overrides.initialValue ?? '<p>Hello World</p>',
|
|
16
|
+
});
|
|
17
|
+
driver.render();
|
|
18
|
+
return driver;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
describe('FormRichText field', () => {
|
|
22
|
+
it('renders the field displayName as the label', async () => {
|
|
23
|
+
const driver = setup();
|
|
24
|
+
|
|
25
|
+
expect(await driver.tk.getLabel()).toBe(driver.field.displayName);
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
it('marks the field as required when validation.required is true', async () => {
|
|
29
|
+
const driver = setup({
|
|
30
|
+
field: makeField({
|
|
31
|
+
type: 'RICH_TEXT',
|
|
32
|
+
validation: { required: true },
|
|
33
|
+
}),
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
expect(await driver.tk.isRequired()).toBe(true);
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
it('does not show a type-mismatch suffix for a valid string value', async () => {
|
|
40
|
+
const driver = setup({ initialValue: '<p>Valid content</p>' });
|
|
41
|
+
|
|
42
|
+
expect(await driver.tk.hasSuffix()).toBe(false);
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
it('does not show a type-mismatch suffix for undefined value', async () => {
|
|
46
|
+
const driver = setup({ initialValue: undefined });
|
|
47
|
+
|
|
48
|
+
expect(await driver.tk.hasSuffix()).toBe(false);
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
it('shows a type-mismatch suffix when value is a number', async () => {
|
|
52
|
+
const driver = setup({ initialValue: 12345 });
|
|
53
|
+
|
|
54
|
+
expect(await driver.tk.hasSuffix()).toBe(true);
|
|
55
|
+
});
|
|
56
|
+
|
|
57
|
+
it('shows a type-mismatch suffix when value is an object', async () => {
|
|
58
|
+
const driver = setup({ initialValue: { foo: 'bar' } });
|
|
59
|
+
|
|
60
|
+
expect(await driver.tk.hasSuffix()).toBe(true);
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
it('shows a required-field error after the form is submitted with no value', async () => {
|
|
64
|
+
const driver = setup({
|
|
65
|
+
field: makeField({
|
|
66
|
+
type: 'RICH_TEXT',
|
|
67
|
+
validation: { required: true },
|
|
68
|
+
}),
|
|
69
|
+
initialValue: '',
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
await driver.submit();
|
|
73
|
+
|
|
74
|
+
expect(await driver.tk.hasError()).toBe(true);
|
|
75
|
+
expect(await driver.tk.getErrorMessage()).toBe(
|
|
76
|
+
'cairo.fieldValidation.requiredField',
|
|
77
|
+
);
|
|
78
|
+
});
|
|
79
|
+
});
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
import '../../../testkit/test-polyfills';
|
|
2
|
+
|
|
3
|
+
import type { Field } from '@wix/bex-core';
|
|
4
|
+
|
|
5
|
+
import { FormTime } from '../../../components/time-input/form-time';
|
|
6
|
+
import { FormTimeDriver } from '../../../components/time-input/form-time.driver';
|
|
7
|
+
import { FormFieldDriver, makeField } from '../../form-field.driver';
|
|
8
|
+
|
|
9
|
+
const setup = (overrides: { field?: Field; initialValue?: string } = {}) => {
|
|
10
|
+
const driver = new FormFieldDriver({
|
|
11
|
+
Component: FormTime,
|
|
12
|
+
UniDriverFactory: FormTimeDriver,
|
|
13
|
+
dataHook: (f) => `time-field-${f.id}`,
|
|
14
|
+
field: overrides.field ?? makeField({ type: 'TIME' }),
|
|
15
|
+
initialValue: overrides.initialValue ?? '12:30:00.000',
|
|
16
|
+
});
|
|
17
|
+
driver.render();
|
|
18
|
+
return driver;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
describe('FormTime field', () => {
|
|
22
|
+
it('renders the field displayName as the label', async () => {
|
|
23
|
+
const driver = setup();
|
|
24
|
+
|
|
25
|
+
expect(await driver.tk.getLabel()).toBe(driver.field.displayName);
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
it('marks the field as required when validation.required is true', async () => {
|
|
29
|
+
const driver = setup({
|
|
30
|
+
field: makeField({ type: 'TIME', validation: { required: true } }),
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
expect(await driver.tk.isRequired()).toBe(true);
|
|
34
|
+
});
|
|
35
|
+
|
|
36
|
+
it('does not show a type-mismatch suffix for a valid time value', async () => {
|
|
37
|
+
const driver = setup({ initialValue: '12:30:00.000' });
|
|
38
|
+
|
|
39
|
+
expect(await driver.tk.hasSuffix()).toBe(false);
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
it('shows a type-mismatch suffix when value is not a valid time', async () => {
|
|
43
|
+
const driver = setup({ initialValue: 'invalid time' });
|
|
44
|
+
|
|
45
|
+
expect(await driver.tk.hasSuffix()).toBe(true);
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
it('shows a required-field error after the form is submitted with no value', async () => {
|
|
49
|
+
const driver = setup({
|
|
50
|
+
field: makeField({ type: 'TIME', validation: { required: true } }),
|
|
51
|
+
initialValue: '',
|
|
52
|
+
});
|
|
53
|
+
|
|
54
|
+
await driver.submit();
|
|
55
|
+
|
|
56
|
+
expect(await driver.tk.hasError()).toBe(true);
|
|
57
|
+
expect(await driver.tk.getErrorMessage()).toBe(
|
|
58
|
+
'cairo.fieldValidation.requiredField',
|
|
59
|
+
);
|
|
60
|
+
});
|
|
61
|
+
});
|
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import '../../../testkit/test-polyfills';
|
|
2
|
+
|
|
3
|
+
import type { Field } from '@wix/bex-core';
|
|
4
|
+
|
|
5
|
+
import { FormVideo } from '../../../components/video/form-video';
|
|
6
|
+
import { FormVideoDriver } from '../../../components/video/form-video.driver';
|
|
7
|
+
import { FormFieldDriver, makeField } from '../../form-field.driver';
|
|
8
|
+
|
|
9
|
+
const VALID_VIDEO_URI =
|
|
10
|
+
'wix:video://v1/abc123.mp4/video-file#posterUri=poster.jpg&posterWidth=1920&posterHeight=1080';
|
|
11
|
+
|
|
12
|
+
const setup = (overrides: { field?: Field; initialValue?: string } = {}) => {
|
|
13
|
+
const driver = new FormFieldDriver({
|
|
14
|
+
Component: FormVideo,
|
|
15
|
+
UniDriverFactory: FormVideoDriver,
|
|
16
|
+
dataHook: (f) => `video-field-${f.id}`,
|
|
17
|
+
field: overrides.field ?? makeField({ type: 'VIDEO' }),
|
|
18
|
+
initialValue: overrides.initialValue ?? '',
|
|
19
|
+
});
|
|
20
|
+
driver.render();
|
|
21
|
+
return driver;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
describe('FormVideo field', () => {
|
|
25
|
+
it('renders the field displayName as the label', async () => {
|
|
26
|
+
const driver = setup();
|
|
27
|
+
|
|
28
|
+
expect(await driver.tk.getLabel()).toBe(driver.field.displayName);
|
|
29
|
+
});
|
|
30
|
+
|
|
31
|
+
it('renders the add-item affordance when no video is set', async () => {
|
|
32
|
+
const driver = setup();
|
|
33
|
+
|
|
34
|
+
expect(await driver.tk.isAddItemVisible()).toBe(true);
|
|
35
|
+
expect(await driver.tk.hasMoreButton()).toBe(false);
|
|
36
|
+
expect(await driver.tk.hasReplaceButton()).toBe(false);
|
|
37
|
+
});
|
|
38
|
+
|
|
39
|
+
it('renders the media overlay with replace and more buttons when a value is set', async () => {
|
|
40
|
+
const driver = setup({ initialValue: VALID_VIDEO_URI });
|
|
41
|
+
|
|
42
|
+
expect(await driver.tk.hasReplaceButton()).toBe(true);
|
|
43
|
+
expect(await driver.tk.hasMoreButton()).toBe(true);
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
it('shows a type-mismatch warning for an invalid video value', async () => {
|
|
47
|
+
const driver = setup({ initialValue: 'invalid-video-uri' });
|
|
48
|
+
|
|
49
|
+
expect(await driver.tk.hasSuffix()).toBe(true);
|
|
50
|
+
});
|
|
51
|
+
|
|
52
|
+
it('does not show a type-mismatch warning for a valid video value', async () => {
|
|
53
|
+
const driver = setup({ initialValue: VALID_VIDEO_URI });
|
|
54
|
+
|
|
55
|
+
expect(await driver.tk.hasSuffix()).toBe(false);
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
it('does not show a type-mismatch warning for an empty value', async () => {
|
|
59
|
+
const driver = setup({ initialValue: '' });
|
|
60
|
+
|
|
61
|
+
expect(await driver.tk.hasSuffix()).toBe(false);
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
it('marks the field as required when validation.required is true', async () => {
|
|
65
|
+
const driver = setup({
|
|
66
|
+
field: makeField({ type: 'VIDEO', validation: { required: true } }),
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
expect(await driver.tk.isRequired()).toBe(true);
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
it('shows a required-field error after the form is submitted with no value', async () => {
|
|
73
|
+
const driver = setup({
|
|
74
|
+
field: makeField({ type: 'VIDEO', validation: { required: true } }),
|
|
75
|
+
});
|
|
76
|
+
|
|
77
|
+
await driver.submit();
|
|
78
|
+
|
|
79
|
+
expect(await driver.tk.hasError()).toBe(true);
|
|
80
|
+
expect(await driver.tk.getErrorMessage()).toBe(
|
|
81
|
+
'cairo.fieldValidation.requiredField',
|
|
82
|
+
);
|
|
83
|
+
});
|
|
84
|
+
});
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { render, screen } from '@testing-library/react';
|
|
3
|
+
import { VideoViewField } from '../../../components/video/video-view-field';
|
|
4
|
+
import { PatternsFieldsTestProvider } from '../../../testkit/patterns-fields-test-provider';
|
|
5
|
+
|
|
6
|
+
const VALID_VIDEO_URI =
|
|
7
|
+
'wix:video://v1/abc123.mp4/video-file#posterUri=wix:image://v1/poster.jpg&posterWidth=1920&posterHeight=1080';
|
|
8
|
+
|
|
9
|
+
const renderField = (
|
|
10
|
+
props: Partial<React.ComponentProps<typeof VideoViewField>> = {},
|
|
11
|
+
) =>
|
|
12
|
+
render(
|
|
13
|
+
<VideoViewField value={undefined} displayName="" id="video-1" {...props} />,
|
|
14
|
+
{
|
|
15
|
+
wrapper: PatternsFieldsTestProvider,
|
|
16
|
+
},
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
describe('VideoViewField', () => {
|
|
20
|
+
it('renders a placeholder dash when value is undefined', () => {
|
|
21
|
+
renderField({ value: undefined });
|
|
22
|
+
expect(screen.getByText('-')).toBeInTheDocument();
|
|
23
|
+
expect(
|
|
24
|
+
screen.queryByLabelText('auto-patterns.fields.preview_video'),
|
|
25
|
+
).not.toBeInTheDocument();
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
it('renders a placeholder dash when value is null', () => {
|
|
29
|
+
renderField({ value: null });
|
|
30
|
+
expect(screen.getByText('-')).toBeInTheDocument();
|
|
31
|
+
});
|
|
32
|
+
|
|
33
|
+
it('renders the preview and download buttons when a valid video URI is set', () => {
|
|
34
|
+
renderField({ value: VALID_VIDEO_URI, id: 'video-7' });
|
|
35
|
+
expect(
|
|
36
|
+
screen.getByLabelText('auto-patterns.fields.preview_video'),
|
|
37
|
+
).toBeInTheDocument();
|
|
38
|
+
expect(
|
|
39
|
+
screen.getByLabelText('auto-patterns.fields.download_video'),
|
|
40
|
+
).toBeInTheDocument();
|
|
41
|
+
});
|
|
42
|
+
|
|
43
|
+
it('disables the preview and download buttons when the URI cannot be resolved', () => {
|
|
44
|
+
renderField({ value: 'invalid-video-uri', id: 'video-8' });
|
|
45
|
+
expect(
|
|
46
|
+
screen.getByLabelText('auto-patterns.fields.preview_video'),
|
|
47
|
+
).toHaveAttribute('aria-disabled', 'true');
|
|
48
|
+
expect(
|
|
49
|
+
screen.getByLabelText('auto-patterns.fields.download_video'),
|
|
50
|
+
).toHaveAttribute('aria-disabled', 'true');
|
|
51
|
+
});
|
|
52
|
+
});
|