@wix/patterns-fields 1.35.0 → 1.37.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 +23 -0
- package/dist/cjs/components/number-input/form-number.driver.js.map +1 -0
- package/dist/cjs/components/number-input/form-number.js +81 -0
- package/dist/cjs/components/number-input/form-number.js.map +1 -0
- package/dist/cjs/components/number-input/index.js +6 -0
- package/dist/cjs/components/number-input/index.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 +24 -0
- package/dist/cjs/components/text/form-long-text.driver.js.map +1 -0
- package/dist/cjs/components/text/form-long-text.js +65 -0
- package/dist/cjs/components/text/form-long-text.js.map +1 -0
- 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/index.js +6 -0
- package/dist/cjs/components/text/index.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/cell-time-input.js +96 -0
- package/dist/cjs/components/time-input/cell-time-input.js.map +1 -0
- 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 +12 -0
- package/dist/cjs/components/time-input/index.js.map +1 -1
- package/dist/cjs/components/time-view/hooks.js +11 -5
- package/dist/cjs/components/time-view/hooks.js.map +1 -1
- package/dist/cjs/components/time-view/index.js.map +1 -1
- package/dist/cjs/components/url/form-url.driver.js +25 -0
- package/dist/cjs/components/url/form-url.driver.js.map +1 -0
- package/dist/cjs/components/url/form-url.js +85 -0
- package/dist/cjs/components/url/form-url.js.map +1 -0
- package/dist/cjs/components/url/index.js +6 -0
- package/dist/cjs/components/url/index.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/number.js +9 -0
- package/dist/cjs/validations/number.js.map +1 -0
- package/dist/cjs/validations/string.js +2 -1
- package/dist/cjs/validations/string.js.map +1 -1
- package/dist/cjs/validations/url.js +11 -0
- package/dist/cjs/validations/url.js.map +1 -0
- 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/actions/actions-menu/actions-menu.st.css.js.map +1 -1
- package/dist/esm/components/audio/audio-field/form-audio-field.st.css.js +2 -2
- 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/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/image/thumbnail-replace-overlay.st.css.js.map +1 -1
- 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/cell-media-edit-shell.st.css.js.map +1 -1
- 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-field.st.css.js.map +1 -1
- 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/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/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 +19 -0
- package/dist/esm/components/number-input/form-number.driver.js.map +1 -0
- package/dist/esm/components/number-input/form-number.js +39 -0
- package/dist/esm/components/number-input/form-number.js.map +1 -0
- package/dist/esm/components/number-input/index.js +1 -0
- package/dist/esm/components/number-input/index.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/publish-loader/publish-loader.st.css.js +2 -2
- package/dist/esm/components/rich-content/rich-content-input/rich-content-common/publish-loader/publish-loader.st.css.js.map +1 -1
- 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-editor/rich-content-editor.st.css.js +2 -2
- package/dist/esm/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.st.css.js.map +1 -1
- 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/toolbar/toolbar.st.css.js +2 -2
- package/dist/esm/components/text/form-long-text.driver.js +20 -0
- package/dist/esm/components/text/form-long-text.driver.js.map +1 -0
- package/dist/esm/components/text/form-long-text.js +27 -0
- package/dist/esm/components/text/form-long-text.js.map +1 -0
- 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/index.js +1 -0
- package/dist/esm/components/text/index.js.map +1 -1
- package/dist/esm/components/text/text-view.st.css.js +2 -2
- package/dist/esm/components/time-input/cell-time-input.js +40 -0
- package/dist/esm/components/time-input/cell-time-input.js.map +1 -0
- 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 +2 -0
- package/dist/esm/components/time-input/index.js.map +1 -1
- package/dist/esm/components/time-view/hooks.js +8 -6
- package/dist/esm/components/time-view/hooks.js.map +1 -1
- package/dist/esm/components/url/form-url.driver.js +21 -0
- package/dist/esm/components/url/form-url.driver.js.map +1 -0
- package/dist/esm/components/url/form-url.js +33 -0
- package/dist/esm/components/url/form-url.js.map +1 -0
- package/dist/esm/components/url/index.js +1 -0
- package/dist/esm/components/url/index.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/number.js +3 -0
- package/dist/esm/validations/number.js.map +1 -0
- package/dist/esm/validations/string.js +2 -1
- package/dist/esm/validations/string.js.map +1 -1
- package/dist/esm/validations/url.js +6 -0
- package/dist/esm/validations/url.js.map +1 -0
- 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/actions/actions-menu/actions-menu.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/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/image/thumbnail-replace-overlay.st.css.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-control/cell-media-edit-shell.st.css.d.ts.map +1 -1
- package/dist/types/components/media-gallery/form-media-gallery-field.st.css.d.ts.map +1 -1
- 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/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/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 +8 -0
- package/dist/types/components/number-input/form-number.d.ts.map +1 -0
- package/dist/types/components/number-input/form-number.driver.d.ts +21 -0
- package/dist/types/components/number-input/form-number.driver.d.ts.map +1 -0
- package/dist/types/components/number-input/index.d.ts +1 -0
- package/dist/types/components/number-input/index.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/publish-loader/publish-loader.st.css.d.ts.map +1 -1
- package/dist/types/components/rich-content/rich-content-input/rich-content-editor/rich-content-editor.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/text/form-long-text.d.ts +8 -0
- package/dist/types/components/text/form-long-text.d.ts.map +1 -0
- package/dist/types/components/text/form-long-text.driver.d.ts +21 -0
- package/dist/types/components/text/form-long-text.driver.d.ts.map +1 -0
- 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/index.d.ts +1 -0
- package/dist/types/components/text/index.d.ts.map +1 -1
- package/dist/types/components/time-input/cell-time-input.d.ts +29 -0
- package/dist/types/components/time-input/cell-time-input.d.ts.map +1 -0
- 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 +2 -0
- package/dist/types/components/time-input/index.d.ts.map +1 -1
- package/dist/types/components/time-view/hooks.d.ts.map +1 -1
- package/dist/types/components/url/form-url.d.ts +8 -0
- package/dist/types/components/url/form-url.d.ts.map +1 -0
- package/dist/types/components/url/form-url.driver.d.ts +22 -0
- package/dist/types/components/url/form-url.driver.d.ts.map +1 -0
- package/dist/types/components/url/index.d.ts +1 -0
- package/dist/types/components/url/index.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/number.d.ts +3 -0
- package/dist/types/validations/number.d.ts.map +1 -0
- package/dist/types/validations/string.d.ts.map +1 -1
- package/dist/types/validations/url.d.ts +2 -0
- package/dist/types/validations/url.d.ts.map +1 -0
- 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/number-input/form-number.spec.tsx +78 -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/text/form-long-text.spec.tsx +63 -0
- package/src/__tests__/components/time-input/form-time.spec.tsx +61 -0
- package/src/__tests__/components/url/form-url.spec.tsx +82 -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 +30 -0
- package/src/components/number-input/form-number.tsx +65 -0
- package/src/components/number-input/index.ts +1 -0
- 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 +31 -0
- package/src/components/text/form-long-text.tsx +51 -0
- package/src/components/text/form-short-text.driver.ts +7 -2
- package/src/components/text/index.ts +1 -0
- package/src/components/text/text-view.st.css.ts +2 -2
- package/src/components/time-input/cell-time-input.tsx +104 -0
- 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 +2 -0
- package/src/components/time-view/hooks.ts +8 -7
- package/src/components/time-view/index.ts +0 -1
- package/src/components/url/form-url.driver.ts +28 -0
- package/src/components/url/form-url.tsx +59 -0
- package/src/components/url/index.ts +1 -0
- 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/number.ts +4 -0
- package/src/validations/string.ts +3 -1
- package/src/validations/url.ts +6 -0
- 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,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,63 @@
|
|
|
1
|
+
import '../../../testkit/test-polyfills';
|
|
2
|
+
|
|
3
|
+
import type { Field } from '@wix/bex-core';
|
|
4
|
+
|
|
5
|
+
import { FormLongText } from '../../../components/text/form-long-text';
|
|
6
|
+
import { FormLongTextDriver } from '../../../components/text/form-long-text.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: FormLongText,
|
|
12
|
+
UniDriverFactory: FormLongTextDriver,
|
|
13
|
+
dataHook: (f) => `long-text-field-${f.id}`,
|
|
14
|
+
field: overrides.field ?? makeField({ type: 'LONG_TEXT' }),
|
|
15
|
+
initialValue: overrides.initialValue ?? '',
|
|
16
|
+
});
|
|
17
|
+
driver.render();
|
|
18
|
+
return driver;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
describe('FormLongText 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('shows the initial value from data', async () => {
|
|
29
|
+
const driver = setup({ initialValue: 'hello world' });
|
|
30
|
+
|
|
31
|
+
expect(await driver.tk.getValue()).toBe('hello world');
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
it('updates the displayed value as the user types', async () => {
|
|
35
|
+
const driver = setup();
|
|
36
|
+
|
|
37
|
+
await driver.tk.enterText('multi\nline text');
|
|
38
|
+
|
|
39
|
+
expect(await driver.tk.getValue()).toBe('multi\nline text');
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
it('marks the field as required when validation.required is true', async () => {
|
|
43
|
+
const driver = setup({
|
|
44
|
+
field: makeField({ type: 'LONG_TEXT', validation: { required: true } }),
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
expect(await driver.tk.isRequired()).toBe(true);
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
it('shows a required error when the user clears a required field', async () => {
|
|
51
|
+
const driver = setup({
|
|
52
|
+
field: makeField({ type: 'LONG_TEXT', validation: { required: true } }),
|
|
53
|
+
initialValue: 'something',
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
await driver.tk.enterText('');
|
|
57
|
+
|
|
58
|
+
expect(await driver.tk.hasError()).toBe(true);
|
|
59
|
+
expect(await driver.tk.getErrorMessage()).toBe(
|
|
60
|
+
'cairo.fieldValidation.requiredField',
|
|
61
|
+
);
|
|
62
|
+
});
|
|
63
|
+
});
|
|
@@ -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,82 @@
|
|
|
1
|
+
import '../../../testkit/test-polyfills';
|
|
2
|
+
|
|
3
|
+
import type { Field } from '@wix/bex-core';
|
|
4
|
+
|
|
5
|
+
import { FormUrl } from '../../../components/url/form-url';
|
|
6
|
+
import { FormUrlDriver } from '../../../components/url/form-url.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: FormUrl,
|
|
12
|
+
UniDriverFactory: FormUrlDriver,
|
|
13
|
+
dataHook: (f) => `url-field-${f.id}`,
|
|
14
|
+
field: overrides.field ?? makeField({ type: 'URL' }),
|
|
15
|
+
initialValue: overrides.initialValue ?? '',
|
|
16
|
+
});
|
|
17
|
+
driver.render();
|
|
18
|
+
return driver;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
describe('FormUrl 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('shows the initial value from data', async () => {
|
|
29
|
+
const driver = setup({ initialValue: 'https://wix.com' });
|
|
30
|
+
|
|
31
|
+
expect(await driver.tk.getValue()).toBe('https://wix.com');
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
it('updates the displayed value as the user types', async () => {
|
|
35
|
+
const driver = setup();
|
|
36
|
+
|
|
37
|
+
await driver.tk.enterText('https://example.com');
|
|
38
|
+
|
|
39
|
+
expect(await driver.tk.getValue()).toBe('https://example.com');
|
|
40
|
+
});
|
|
41
|
+
|
|
42
|
+
it('marks the field as required when validation.required is true', async () => {
|
|
43
|
+
const driver = setup({
|
|
44
|
+
field: makeField({ type: 'URL', validation: { required: true } }),
|
|
45
|
+
});
|
|
46
|
+
|
|
47
|
+
expect(await driver.tk.isRequired()).toBe(true);
|
|
48
|
+
});
|
|
49
|
+
|
|
50
|
+
it('shows a required error when the user clears a required field', async () => {
|
|
51
|
+
const driver = setup({
|
|
52
|
+
field: makeField({ type: 'URL', validation: { required: true } }),
|
|
53
|
+
initialValue: 'https://wix.com',
|
|
54
|
+
});
|
|
55
|
+
|
|
56
|
+
await driver.tk.enterText('');
|
|
57
|
+
|
|
58
|
+
expect(await driver.tk.hasError()).toBe(true);
|
|
59
|
+
expect(await driver.tk.getErrorMessage()).toBe(
|
|
60
|
+
'cairo.fieldValidation.requiredField',
|
|
61
|
+
);
|
|
62
|
+
});
|
|
63
|
+
|
|
64
|
+
it('accepts a valid URL without showing an error', async () => {
|
|
65
|
+
const driver = setup();
|
|
66
|
+
|
|
67
|
+
await driver.tk.enterText('https://example.com/path?query=1');
|
|
68
|
+
|
|
69
|
+
expect(await driver.tk.hasError()).toBe(false);
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
it('shows an invalid-URL error when the value is not a URL', async () => {
|
|
73
|
+
const driver = setup();
|
|
74
|
+
|
|
75
|
+
await driver.tk.enterText('not a url');
|
|
76
|
+
|
|
77
|
+
expect(await driver.tk.hasError()).toBe(true);
|
|
78
|
+
expect(await driver.tk.getErrorMessage()).toBe(
|
|
79
|
+
'cairo.customFields.url-input.error',
|
|
80
|
+
);
|
|
81
|
+
});
|
|
82
|
+
});
|
|
@@ -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
|
+
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { render, RenderResult } from '@testing-library/react';
|
|
2
|
+
import { act, fireEvent, render, RenderResult } from '@testing-library/react';
|
|
3
3
|
import Chance from 'chance';
|
|
4
4
|
import { useForm } from '@wix/bex-core/form';
|
|
5
5
|
import type { Control, FieldValues } from '@wix/bex-core/form';
|
|
@@ -12,8 +12,14 @@ import { PatternsFieldsTestProvider } from '../testkit/patterns-fields-test-prov
|
|
|
12
12
|
import type { BaseInputProps } from '../types/base-input';
|
|
13
13
|
|
|
14
14
|
const chance = new Chance();
|
|
15
|
+
const noop = () => {};
|
|
16
|
+
const SUBMIT_HOOK = 'form-field-driver-submit';
|
|
15
17
|
|
|
16
|
-
type UniDriverFactory<U> = (
|
|
18
|
+
type UniDriverFactory<U> = (
|
|
19
|
+
base: UniDriver,
|
|
20
|
+
body: UniDriver,
|
|
21
|
+
field: Field,
|
|
22
|
+
) => U;
|
|
17
23
|
|
|
18
24
|
export interface FormFieldDriverOptions<U extends BaseUniDriver, T> {
|
|
19
25
|
Component: React.ComponentType<BaseInputProps<T>>;
|
|
@@ -39,17 +45,33 @@ export class FormFieldDriver<U extends BaseUniDriver, T> {
|
|
|
39
45
|
}
|
|
40
46
|
|
|
41
47
|
get tk(): U {
|
|
42
|
-
|
|
48
|
+
const { field } = this;
|
|
49
|
+
return uniTestkitFactoryCreator<U>(
|
|
50
|
+
(base: UniDriver, body: UniDriver): U =>
|
|
51
|
+
this.opts.UniDriverFactory(base, body, field),
|
|
52
|
+
)({
|
|
43
53
|
wrapper: this._renderResult!.baseElement,
|
|
44
54
|
dataHook: this._dataHook,
|
|
45
55
|
});
|
|
46
56
|
}
|
|
47
57
|
|
|
58
|
+
async submit(): Promise<void> {
|
|
59
|
+
const button = this._renderResult!.baseElement.querySelector(
|
|
60
|
+
`[data-hook="${SUBMIT_HOOK}"]`,
|
|
61
|
+
);
|
|
62
|
+
if (!button) {
|
|
63
|
+
throw new Error('Submit button not rendered');
|
|
64
|
+
}
|
|
65
|
+
await act(async () => {
|
|
66
|
+
fireEvent.click(button);
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
|
|
48
70
|
render() {
|
|
49
71
|
const { Component } = this.opts;
|
|
50
72
|
const { field, initialValue, _dataHook: dataHook, onChange } = this;
|
|
51
73
|
this._renderResult = render(
|
|
52
|
-
<
|
|
74
|
+
<TestForm
|
|
53
75
|
field={field}
|
|
54
76
|
initialValue={initialValue}
|
|
55
77
|
renderField={(control) => (
|
|
@@ -68,22 +90,27 @@ export class FormFieldDriver<U extends BaseUniDriver, T> {
|
|
|
68
90
|
}
|
|
69
91
|
}
|
|
70
92
|
|
|
71
|
-
interface
|
|
93
|
+
interface TestFormProps<T> {
|
|
72
94
|
field: Field;
|
|
73
95
|
initialValue: T;
|
|
74
96
|
renderField: (control: Control<FieldValues>) => React.ReactElement;
|
|
75
97
|
}
|
|
76
98
|
|
|
77
|
-
const
|
|
99
|
+
const TestForm = <T,>({
|
|
78
100
|
field,
|
|
79
101
|
initialValue,
|
|
80
102
|
renderField,
|
|
81
|
-
}:
|
|
82
|
-
const
|
|
103
|
+
}: TestFormProps<T>) => {
|
|
104
|
+
const methods = useForm<FieldValues>({
|
|
83
105
|
mode: 'onChange',
|
|
84
106
|
defaultValues: { [field.id]: initialValue },
|
|
85
107
|
});
|
|
86
|
-
return
|
|
108
|
+
return (
|
|
109
|
+
<form onSubmit={methods.handleSubmit(noop)}>
|
|
110
|
+
{renderField(methods.control)}
|
|
111
|
+
<button type="submit" data-hook={SUBMIT_HOOK} />
|
|
112
|
+
</form>
|
|
113
|
+
);
|
|
87
114
|
};
|
|
88
115
|
|
|
89
116
|
export function makeField(overrides: Partial<Field> = {}): Field {
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { UniDriver } from '@wix/wix-ui-test-utils/unidriver';
|
|
2
|
+
import { FormFieldUniDriver } from '@wix/design-system/dist/testkit/unidriver';
|
|
3
|
+
|
|
4
|
+
import {
|
|
5
|
+
baseUniDriverFactory,
|
|
6
|
+
getFormFieldLabelText,
|
|
7
|
+
} from '../../testkit/base-driver';
|
|
8
|
+
|
|
9
|
+
export function FormAddressDriver(base: UniDriver, body: UniDriver) {
|
|
10
|
+
const formField = FormFieldUniDriver(base, body);
|
|
11
|
+
|
|
12
|
+
return {
|
|
13
|
+
...baseUniDriverFactory(base),
|
|
14
|
+
getLabel: () => getFormFieldLabelText(formField),
|
|
15
|
+
hasError: () => formField.hasStatus('error'),
|
|
16
|
+
getErrorMessage: () => formField.getStatusMessage(),
|
|
17
|
+
isRequired: () => formField.isRequired(),
|
|
18
|
+
};
|
|
19
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { FormField } from '@wix/design-system';
|
|
3
|
+
import { observer } from 'mobx-react-lite';
|
|
4
|
+
import { useWixPatternsContainer } from '@wix/bex-core/react';
|
|
5
|
+
import { useController } from '@wix/bex-core/form';
|
|
6
|
+
|
|
7
|
+
import { BaseInputProps } from '../../types/base-input';
|
|
8
|
+
import type { Address } from '../../types/address';
|
|
9
|
+
import { isEmpty } from '../../validations/value';
|
|
10
|
+
|
|
11
|
+
import { FormAddressInput } from './input/form-address-input';
|
|
12
|
+
|
|
13
|
+
export interface FormAddressProps extends BaseInputProps<Address> {}
|
|
14
|
+
|
|
15
|
+
const _FormAddress = (props: FormAddressProps) => {
|
|
16
|
+
const { field, dataHook, formControl, data } = props;
|
|
17
|
+
|
|
18
|
+
const { translate: pt } = useWixPatternsContainer();
|
|
19
|
+
|
|
20
|
+
const controller = useController({
|
|
21
|
+
name: field.id,
|
|
22
|
+
control: formControl,
|
|
23
|
+
defaultValue: data?.[field.id],
|
|
24
|
+
rules: {
|
|
25
|
+
validate: (value) => {
|
|
26
|
+
if (field.validation?.required && isEmpty(value)) {
|
|
27
|
+
return pt('cairo.fieldValidation.requiredField');
|
|
28
|
+
}
|
|
29
|
+
return true;
|
|
30
|
+
},
|
|
31
|
+
},
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
return (
|
|
35
|
+
<FormField
|
|
36
|
+
label={field.displayName}
|
|
37
|
+
required={field.validation?.required}
|
|
38
|
+
status={controller.fieldState.error ? 'error' : undefined}
|
|
39
|
+
statusMessage={controller.fieldState.error?.message}
|
|
40
|
+
dataHook={dataHook}
|
|
41
|
+
>
|
|
42
|
+
<FormAddressInput
|
|
43
|
+
autoFocus={false}
|
|
44
|
+
data={controller.field.value}
|
|
45
|
+
onChange={(value) => controller.field.onChange?.(value)}
|
|
46
|
+
dataHook={`address-${field.id}`}
|
|
47
|
+
field={field.id}
|
|
48
|
+
/>
|
|
49
|
+
</FormField>
|
|
50
|
+
);
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
export const FormAddress = observer(_FormAddress);
|