@wix/patterns-fields 1.73.0 → 1.75.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.js +5 -3
- package/dist/cjs/components/address/form-address.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/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.js +5 -3
- package/dist/cjs/components/audio/audio-field/form-audio.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-input.js +40 -0
- package/dist/cjs/components/boolean/form-checkbox-input.js.map +1 -0
- package/dist/cjs/components/boolean/form-checkbox.js +6 -5
- package/dist/cjs/components/boolean/form-checkbox.js.map +1 -1
- package/dist/cjs/components/boolean/index.js +6 -0
- package/dist/cjs/components/boolean/index.js.map +1 -1
- package/dist/cjs/components/color-view/cell-color-view.st.css.js +3 -3
- package/dist/cjs/components/color-view/cell-color-view.st.css.js.map +1 -1
- package/dist/cjs/components/color-view/color-input.js +6 -5
- package/dist/cjs/components/color-view/color-input.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 +8 -2
- package/dist/cjs/components/color-view/form-color.driver.js.map +1 -1
- package/dist/cjs/components/controlled-input.driver.js +16 -0
- package/dist/cjs/components/controlled-input.driver.js.map +1 -0
- package/dist/cjs/components/datetime-input/form-date-time.driver.js +4 -1
- package/dist/cjs/components/datetime-input/form-date-time.driver.js.map +1 -1
- package/dist/cjs/components/datetime-input/form-date-time.js +1 -0
- package/dist/cjs/components/datetime-input/form-date-time.js.map +1 -1
- 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.js +5 -3
- package/dist/cjs/components/document/form-document.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.js +6 -4
- package/dist/cjs/components/image/form-image-input.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/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.js +5 -3
- package/dist/cjs/components/media-gallery/form-media-gallery.js.map +1 -1
- 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/cell-multi-document-edit.st.css.js +3 -3
- package/dist/cjs/components/multi-document/cell-multi-document-edit.st.css.js.map +1 -1
- package/dist/cjs/components/multi-document/multi-document-input/form-multi-document.js +5 -3
- package/dist/cjs/components/multi-document/multi-document-input/form-multi-document.js.map +1 -1
- 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-input.js +38 -0
- package/dist/cjs/components/number-input/form-number-input.js.map +1 -0
- package/dist/cjs/components/number-input/form-number.js +7 -5
- package/dist/cjs/components/number-input/form-number.js.map +1 -1
- 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/reference/cell-multi-reference-input.st.css.js +2 -2
- package/dist/cjs/components/reference/cell-multi-reference-input.st.css.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/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 +15 -7
- package/dist/cjs/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js +11 -7
- 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 +5 -5
- 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/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 +32 -19
- package/dist/cjs/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js +20 -12
- 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-short-text-input.js +97 -0
- package/dist/cjs/components/text/form-short-text-input.js.map +1 -0
- package/dist/cjs/components/text/form-short-text.driver.js +1 -0
- package/dist/cjs/components/text/form-short-text.driver.js.map +1 -1
- package/dist/cjs/components/text/form-short-text.js +18 -80
- package/dist/cjs/components/text/form-short-text.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/form-time.js +9 -10
- package/dist/cjs/components/time-input/form-time.js.map +1 -1
- package/dist/cjs/components/url/form-url-input.js +55 -0
- package/dist/cjs/components/url/form-url-input.js.map +1 -0
- package/dist/cjs/components/url/form-url.js +6 -20
- package/dist/cjs/components/url/form-url.js.map +1 -1
- 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.js +30 -29
- package/dist/cjs/components/video/form-video.js.map +1 -1
- package/dist/cjs/exports/unidriver.js +3 -1
- package/dist/cjs/exports/unidriver.js.map +1 -1
- package/dist/cjs/hooks/index.js +6 -0
- package/dist/cjs/hooks/index.js.map +1 -1
- package/dist/cjs/hooks/pr-5746-kobiburnley-comments.md +54 -0
- package/dist/cjs/hooks/use-field-ref.js +60 -0
- package/dist/cjs/hooks/use-field-ref.js.map +1 -0
- package/dist/cjs/hooks/use-scroll-to-error-ref.js +15 -15
- package/dist/cjs/hooks/use-scroll-to-error-ref.js.map +1 -1
- package/dist/cjs/styles.global.css +1 -1
- package/dist/cjs/types/controlled-input.js +4 -0
- package/dist/cjs/types/controlled-input.js.map +1 -0
- package/dist/esm/components/address/form-address.js +3 -1
- package/dist/esm/components/address/form-address.js.map +1 -1
- package/dist/esm/components/address/input/address-input.st.css.js +2 -2
- package/dist/esm/components/address/input/address-input.st.css.js.map +1 -1
- 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-field.st.css.js.map +1 -1
- package/dist/esm/components/audio/audio-field/form-audio.js +3 -1
- package/dist/esm/components/audio/audio-field/form-audio.js.map +1 -1
- package/dist/esm/components/audio/audio-player/audio-player.st.css.js +2 -2
- package/dist/esm/components/boolean/form-checkbox-input.js +10 -0
- package/dist/esm/components/boolean/form-checkbox-input.js.map +1 -0
- package/dist/esm/components/boolean/form-checkbox.js +2 -2
- package/dist/esm/components/boolean/form-checkbox.js.map +1 -1
- package/dist/esm/components/boolean/index.js +1 -0
- package/dist/esm/components/boolean/index.js.map +1 -1
- package/dist/esm/components/color-view/cell-color-view.st.css.js +2 -2
- package/dist/esm/components/color-view/color-input.js +1 -1
- package/dist/esm/components/color-view/color-input.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 +8 -2
- package/dist/esm/components/color-view/form-color.driver.js.map +1 -1
- package/dist/esm/components/controlled-input.driver.js +12 -0
- package/dist/esm/components/controlled-input.driver.js.map +1 -0
- package/dist/esm/components/datetime-input/form-date-time.driver.js +3 -0
- package/dist/esm/components/datetime-input/form-date-time.driver.js.map +1 -1
- package/dist/esm/components/datetime-input/form-date-time.js +1 -1
- package/dist/esm/components/datetime-input/form-date-time.js.map +1 -1
- package/dist/esm/components/delete-dialog/delete-dialog.st.css.js +2 -2
- package/dist/esm/components/document/form-document-field.st.css.js +2 -2
- package/dist/esm/components/document/form-document.js +3 -1
- package/dist/esm/components/document/form-document.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.js +3 -1
- package/dist/esm/components/image/form-image-input.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/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-control/paste-url-button.st.css.js.map +1 -1
- package/dist/esm/components/media-gallery/form-media-gallery-field.st.css.js +2 -2
- package/dist/esm/components/media-gallery/form-media-gallery.js +3 -1
- package/dist/esm/components/media-gallery/form-media-gallery.js.map +1 -1
- 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-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/cell-multi-document-edit.st.css.js +2 -2
- package/dist/esm/components/multi-document/multi-document-input/form-multi-document.js +3 -1
- package/dist/esm/components/multi-document/multi-document-input/form-multi-document.js.map +1 -1
- 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-input.js +5 -0
- package/dist/esm/components/number-input/form-number-input.js.map +1 -0
- package/dist/esm/components/number-input/form-number.js +3 -2
- package/dist/esm/components/number-input/form-number.js.map +1 -1
- 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/reference/cell-multi-reference-input.st.css.js +2 -2
- package/dist/esm/components/reference/cell-reference-input.st.css.js +2 -2
- 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 +15 -7
- package/dist/esm/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js +3 -3
- package/dist/esm/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.js.map +1 -1
- 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/form-read-only-input/rich-content-form-read-only-input.st.css.js.map +1 -1
- 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-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-editor/rich-content-toolbar.st.css.js.map +1 -1
- 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/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 +32 -19
- package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js +3 -3
- 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/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js.map +1 -1
- package/dist/esm/components/text/form-short-text-input.js +41 -0
- package/dist/esm/components/text/form-short-text-input.js.map +1 -0
- package/dist/esm/components/text/form-short-text.driver.js +3 -0
- package/dist/esm/components/text/form-short-text.driver.js.map +1 -1
- package/dist/esm/components/text/form-short-text.js +8 -40
- package/dist/esm/components/text/form-short-text.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/text/text-view.st.css.js.map +1 -1
- package/dist/esm/components/time-input/form-time.js +4 -3
- package/dist/esm/components/time-input/form-time.js.map +1 -1
- package/dist/esm/components/url/form-url-input.js +7 -0
- package/dist/esm/components/url/form-url-input.js.map +1 -0
- package/dist/esm/components/url/form-url.js +3 -4
- package/dist/esm/components/url/form-url.js.map +1 -1
- 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.js +3 -2
- package/dist/esm/components/video/form-video.js.map +1 -1
- package/dist/esm/exports/unidriver.js +1 -0
- package/dist/esm/exports/unidriver.js.map +1 -1
- package/dist/esm/hooks/index.js +1 -0
- package/dist/esm/hooks/index.js.map +1 -1
- package/dist/esm/hooks/pr-5746-kobiburnley-comments.md +54 -0
- package/dist/esm/hooks/use-field-ref.js +36 -0
- package/dist/esm/hooks/use-field-ref.js.map +1 -0
- package/dist/esm/hooks/use-scroll-to-error-ref.js +12 -12
- package/dist/esm/hooks/use-scroll-to-error-ref.js.map +1 -1
- package/dist/esm/styles.global.css +1 -1
- package/dist/esm/types/controlled-input.js +2 -0
- package/dist/esm/types/controlled-input.js.map +1 -0
- package/dist/types/components/address/form-address.d.ts.map +1 -1
- package/dist/types/components/address/input/address-input.st.css.d.ts.map +1 -1
- 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-field.st.css.d.ts.map +1 -1
- package/dist/types/components/audio/audio-field/form-audio.d.ts.map +1 -1
- package/dist/types/components/boolean/form-checkbox-input.d.ts +7 -0
- package/dist/types/components/boolean/form-checkbox-input.d.ts.map +1 -0
- package/dist/types/components/boolean/form-checkbox.d.ts.map +1 -1
- package/dist/types/components/boolean/index.d.ts +1 -0
- package/dist/types/components/boolean/index.d.ts.map +1 -1
- package/dist/types/components/color-view/color-input.d.ts.map +1 -1
- package/dist/types/components/color-view/form-color.driver.d.ts +5 -15
- package/dist/types/components/color-view/form-color.driver.d.ts.map +1 -1
- package/dist/types/components/controlled-input.driver.d.ts +502 -0
- package/dist/types/components/controlled-input.driver.d.ts.map +1 -0
- package/dist/types/components/datetime-input/form-date-time.driver.d.ts +1 -0
- package/dist/types/components/datetime-input/form-date-time.driver.d.ts.map +1 -1
- package/dist/types/components/document/form-document.d.ts.map +1 -1
- package/dist/types/components/image/form-image-input.d.ts.map +1 -1
- package/dist/types/components/image/thumbnail-replace-overlay.st.css.d.ts.map +1 -1
- package/dist/types/components/media-control/cell-media-edit-shell.st.css.d.ts.map +1 -1
- package/dist/types/components/media-control/paste-url-button.st.css.d.ts.map +1 -1
- package/dist/types/components/media-gallery/form-media-gallery.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/multi-document-input/form-multi-document.d.ts.map +1 -1
- 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-input.d.ts +9 -0
- package/dist/types/components/number-input/form-number-input.d.ts.map +1 -0
- package/dist/types/components/number-input/form-number.d.ts.map +1 -1
- 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/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.d.ts +7 -3
- package/dist/types/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.d.ts.map +1 -1
- package/dist/types/components/rich-content/rich-content-input/form-read-only-input/rich-content-form-read-only-input.st.css.d.ts.map +1 -1
- 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-editor/rich-content-toolbar.st.css.d.ts.map +1 -1
- package/dist/types/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.d.ts +16 -8
- 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/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.d.ts.map +1 -1
- package/dist/types/components/text/form-short-text-input.d.ts +15 -0
- package/dist/types/components/text/form-short-text-input.d.ts.map +1 -0
- package/dist/types/components/text/form-short-text.d.ts.map +1 -1
- package/dist/types/components/text/form-short-text.driver.d.ts +1 -0
- 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/text/text-view.st.css.d.ts.map +1 -1
- package/dist/types/components/time-input/form-time.d.ts.map +1 -1
- package/dist/types/components/url/form-url-input.d.ts +8 -0
- package/dist/types/components/url/form-url-input.d.ts.map +1 -0
- package/dist/types/components/url/form-url.d.ts.map +1 -1
- 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.map +1 -1
- package/dist/types/exports/unidriver.d.ts +1 -0
- package/dist/types/exports/unidriver.d.ts.map +1 -1
- package/dist/types/hooks/index.d.ts +1 -0
- package/dist/types/hooks/index.d.ts.map +1 -1
- package/dist/types/hooks/use-field-ref.d.ts +36 -0
- package/dist/types/hooks/use-field-ref.d.ts.map +1 -0
- package/dist/types/hooks/use-scroll-to-error-ref.d.ts +5 -5
- package/dist/types/hooks/use-scroll-to-error-ref.d.ts.map +1 -1
- package/dist/types/types/controlled-input.d.ts +10 -0
- package/dist/types/types/controlled-input.d.ts.map +1 -0
- package/package.json +4 -4
- package/src/__tests__/components/color-view/form-color.spec.tsx +46 -3
- package/src/__tests__/components/rich-editors-border.spec.ts +45 -0
- package/src/__tests__/components/text/form-short-text.spec.tsx +18 -0
- package/src/__tests__/exports/controlled-inputs.spec.tsx +138 -0
- package/src/__tests__/hooks/use-field-ref.spec.tsx +132 -0
- package/src/components/address/form-address.tsx +4 -1
- package/src/components/address/input/address-input.st.css.ts +2 -2
- 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.tsx +4 -1
- package/src/components/audio/audio-player/audio-player.st.css.ts +2 -2
- package/src/components/boolean/form-checkbox-input.tsx +40 -0
- package/src/components/boolean/form-checkbox.tsx +6 -7
- package/src/components/boolean/index.ts +1 -0
- package/src/components/color-view/cell-color-view.st.css.ts +2 -2
- package/src/components/color-view/color-input.tsx +13 -2
- package/src/components/color-view/color-view.st.css.ts +2 -2
- package/src/components/color-view/form-color.driver.ts +8 -2
- package/src/components/controlled-input.driver.ts +19 -0
- package/src/components/datetime-input/form-date-time.driver.ts +3 -0
- package/src/components/datetime-input/form-date-time.tsx +1 -1
- 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.tsx +4 -1
- 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.tsx +4 -1
- package/src/components/image/thumbnail-replace-overlay.st.css.ts +2 -2
- 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.tsx +4 -1
- 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/cell-multi-document-edit.st.css.ts +2 -2
- 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 +4 -1
- package/src/components/number-input/form-number-input.tsx +37 -0
- package/src/components/number-input/form-number.tsx +6 -4
- package/src/components/number-input/index.ts +1 -0
- package/src/components/reference/cell-multi-reference-input.st.css.ts +2 -2
- package/src/components/reference/cell-reference-input.st.css.ts +2 -2
- 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 +15 -7
- package/src/components/rich-content/rich-content-input/form-input/rich-content-form-input.st.css.ts +3 -3
- 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/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 +32 -19
- package/src/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.ts +3 -3
- package/src/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.ts +2 -2
- package/src/components/text/form-short-text-input.tsx +121 -0
- package/src/components/text/form-short-text.driver.ts +4 -0
- package/src/components/text/form-short-text.tsx +20 -108
- package/src/components/text/index.ts +1 -0
- package/src/components/text/text-view.st.css.ts +2 -2
- package/src/components/time-input/form-time.tsx +9 -3
- package/src/components/url/form-url-input.tsx +42 -0
- package/src/components/url/form-url.tsx +7 -11
- package/src/components/url/index.ts +1 -0
- package/src/components/video/form-video.tsx +4 -2
- package/src/exports/unidriver.ts +1 -0
- package/src/hooks/index.ts +1 -0
- package/src/hooks/pr-5746-kobiburnley-comments.md +54 -0
- package/src/hooks/use-field-ref.ts +65 -0
- package/src/hooks/use-scroll-to-error-ref.ts +15 -10
- package/src/styles.global.css +1 -1
- package/src/types/controlled-input.ts +9 -0
|
@@ -0,0 +1,132 @@
|
|
|
1
|
+
import '../../testkit/test-polyfills';
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { act, render } from '@testing-library/react';
|
|
5
|
+
import type { Field } from '@wix/bex-core';
|
|
6
|
+
import { useForm } from '@wix/bex-core/form';
|
|
7
|
+
import type { Control, FieldValues } from '@wix/bex-core/form';
|
|
8
|
+
|
|
9
|
+
import { PatternsFieldsTestProvider } from '../../testkit/patterns-fields-test-provider';
|
|
10
|
+
import { FormAddress } from '../../components/address/form-address';
|
|
11
|
+
import { FormTime } from '../../components/time-input/form-time';
|
|
12
|
+
import { FormDocument } from '../../components/document/form-document';
|
|
13
|
+
import { FormImageInput } from '../../components/image/form-image-input';
|
|
14
|
+
import { fieldRefHandle } from '../../hooks';
|
|
15
|
+
|
|
16
|
+
interface Case {
|
|
17
|
+
name: string;
|
|
18
|
+
Component: React.ComponentType<any>;
|
|
19
|
+
field: Field;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
const field = (id: string, type: string): Field =>
|
|
23
|
+
({
|
|
24
|
+
id,
|
|
25
|
+
displayName: id,
|
|
26
|
+
type,
|
|
27
|
+
validation: { required: true },
|
|
28
|
+
} as Field);
|
|
29
|
+
|
|
30
|
+
// Every control here answers focus() and nothing else, which is the shape that
|
|
31
|
+
// used to make setFocus with shouldSelect throw.
|
|
32
|
+
const CASES: Case[] = [
|
|
33
|
+
// AddressInputImperativeHandle: { focus, clear }
|
|
34
|
+
{
|
|
35
|
+
name: 'FormAddress',
|
|
36
|
+
Component: FormAddress,
|
|
37
|
+
field: field('location', 'ADDRESS'),
|
|
38
|
+
},
|
|
39
|
+
// TimeInputImperativeActions: no select()
|
|
40
|
+
{ name: 'FormTime', Component: FormTime, field: field('start', 'TIME') },
|
|
41
|
+
// AddItemActions: { blur, focus }. Shared with audio, multi-document and
|
|
42
|
+
// media-gallery, so one of the four covers that shape.
|
|
43
|
+
{
|
|
44
|
+
name: 'FormDocument',
|
|
45
|
+
Component: FormDocument,
|
|
46
|
+
field: field('spec', 'DOCUMENT'),
|
|
47
|
+
},
|
|
48
|
+
// ImageViewer instance, shared with video.
|
|
49
|
+
{
|
|
50
|
+
name: 'FormImageInput',
|
|
51
|
+
Component: FormImageInput,
|
|
52
|
+
field: field('cover', 'IMAGE'),
|
|
53
|
+
},
|
|
54
|
+
];
|
|
55
|
+
|
|
56
|
+
describe('fieldRefHandle', () => {
|
|
57
|
+
it('sends focus to the given callback', () => {
|
|
58
|
+
const focus = jest.fn();
|
|
59
|
+
|
|
60
|
+
fieldRefHandle(focus, () => undefined).focus();
|
|
61
|
+
|
|
62
|
+
expect(focus).toHaveBeenCalled();
|
|
63
|
+
});
|
|
64
|
+
|
|
65
|
+
// The whole point: a control with only focus() must not make the other
|
|
66
|
+
// calls blow up, because react-hook-form makes them unconditionally.
|
|
67
|
+
it('absorbs the calls a focus-only control cannot answer', () => {
|
|
68
|
+
const handle = fieldRefHandle(
|
|
69
|
+
() => {},
|
|
70
|
+
() => ({ focus: () => {} }),
|
|
71
|
+
);
|
|
72
|
+
|
|
73
|
+
expect(() => handle.select()).not.toThrow();
|
|
74
|
+
expect(() => handle.setCustomValidity('nope')).not.toThrow();
|
|
75
|
+
expect(handle.reportValidity()).toBe(true);
|
|
76
|
+
});
|
|
77
|
+
|
|
78
|
+
it('passes the calls on to a control that does answer them', () => {
|
|
79
|
+
const control = {
|
|
80
|
+
focus: jest.fn(),
|
|
81
|
+
select: jest.fn(),
|
|
82
|
+
setCustomValidity: jest.fn(),
|
|
83
|
+
reportValidity: jest.fn().mockReturnValue(false),
|
|
84
|
+
};
|
|
85
|
+
const handle = fieldRefHandle(control.focus, () => control);
|
|
86
|
+
|
|
87
|
+
handle.select();
|
|
88
|
+
handle.setCustomValidity('bad');
|
|
89
|
+
|
|
90
|
+
expect(control.select).toHaveBeenCalled();
|
|
91
|
+
expect(control.setCustomValidity).toHaveBeenCalledWith('bad');
|
|
92
|
+
expect(handle.reportValidity()).toBe(false);
|
|
93
|
+
});
|
|
94
|
+
});
|
|
95
|
+
|
|
96
|
+
describe.each(CASES)(
|
|
97
|
+
'$name, whose control only has focus',
|
|
98
|
+
({ Component, field: f }) => {
|
|
99
|
+
let form: ReturnType<typeof useForm<FieldValues>> | undefined;
|
|
100
|
+
|
|
101
|
+
const Harness = () => {
|
|
102
|
+
const methods = useForm<FieldValues>({ mode: 'onChange' });
|
|
103
|
+
form = methods;
|
|
104
|
+
return (
|
|
105
|
+
<Component
|
|
106
|
+
field={f}
|
|
107
|
+
value={undefined as never}
|
|
108
|
+
onChange={() => {}}
|
|
109
|
+
dataHook={`${f.id}-field`}
|
|
110
|
+
formControl={methods.control as Control<FieldValues>}
|
|
111
|
+
data={{}}
|
|
112
|
+
/>
|
|
113
|
+
);
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
// react-hook-form reaches select() through the handle it wraps around
|
|
117
|
+
// whatever was registered, so a focus-only control used to throw here.
|
|
118
|
+
it('survives setFocus with shouldSelect', () => {
|
|
119
|
+
render(
|
|
120
|
+
<PatternsFieldsTestProvider>
|
|
121
|
+
<Harness />
|
|
122
|
+
</PatternsFieldsTestProvider>,
|
|
123
|
+
);
|
|
124
|
+
|
|
125
|
+
expect(() =>
|
|
126
|
+
act(() => {
|
|
127
|
+
form!.setFocus(f.id, { shouldSelect: true });
|
|
128
|
+
}),
|
|
129
|
+
).not.toThrow();
|
|
130
|
+
});
|
|
131
|
+
},
|
|
132
|
+
);
|
|
@@ -9,6 +9,7 @@ import type { Address } from '../../types/address';
|
|
|
9
9
|
import { isEmpty } from '../../validations/value';
|
|
10
10
|
|
|
11
11
|
import { FormAddressInput } from './input/form-address-input';
|
|
12
|
+
import { useFieldRef } from '../../hooks';
|
|
12
13
|
|
|
13
14
|
export interface FormAddressProps extends BaseInputProps<Address> {}
|
|
14
15
|
|
|
@@ -31,6 +32,8 @@ const _FormAddress = (props: FormAddressProps) => {
|
|
|
31
32
|
},
|
|
32
33
|
});
|
|
33
34
|
|
|
35
|
+
const setFieldRef = useFieldRef(controller.field.ref);
|
|
36
|
+
|
|
34
37
|
return (
|
|
35
38
|
<FormField
|
|
36
39
|
label={field.displayName}
|
|
@@ -45,7 +48,7 @@ const _FormAddress = (props: FormAddressProps) => {
|
|
|
45
48
|
onChange={(value) => controller.field.onChange?.(value)}
|
|
46
49
|
// Hand the input to react-hook-form so shouldFocusError scrolls to +
|
|
47
50
|
// focuses this field when it blocks save.
|
|
48
|
-
inputRef={
|
|
51
|
+
inputRef={setFieldRef}
|
|
49
52
|
dataHook={`address-${field.id}`}
|
|
50
53
|
field={field.id}
|
|
51
54
|
/>
|
|
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../../stylable-esm-runtime.js"
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var _namespace_ = "
|
|
8
|
+
var _namespace_ = "addressinput1353092921";
|
|
9
9
|
var _style_ = classesRuntime.bind(null, _namespace_);
|
|
10
10
|
|
|
11
11
|
export var cssStates = statesRuntime.bind(null, _namespace_);
|
|
@@ -13,7 +13,7 @@ export var style: import("@stylable/runtime").STFunction = _style_;
|
|
|
13
13
|
export var st: import("@stylable/runtime").STFunction = _style_;
|
|
14
14
|
|
|
15
15
|
export var namespace = _namespace_;
|
|
16
|
-
export var classes = {"root":"
|
|
16
|
+
export var classes = {"root":"addressinput1353092921__root","tableAddressInput":"addressinput1353092921__tableAddressInput"};
|
|
17
17
|
export var keyframes = {};
|
|
18
18
|
export var layers = {};
|
|
19
19
|
export var containers = {};
|
|
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../../../stylable-esm-runtime.
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var _namespace_ = "
|
|
8
|
+
var _namespace_ = "actionsmenu1132414098";
|
|
9
9
|
var _style_ = classesRuntime.bind(null, _namespace_);
|
|
10
10
|
|
|
11
11
|
export var cssStates = statesRuntime.bind(null, _namespace_);
|
|
@@ -13,7 +13,7 @@ export var style: import("@stylable/runtime").STFunction = _style_;
|
|
|
13
13
|
export var st: import("@stylable/runtime").STFunction = _style_;
|
|
14
14
|
|
|
15
15
|
export var namespace = _namespace_;
|
|
16
|
-
export var classes = {"root":"
|
|
16
|
+
export var classes = {"root":"actionsmenu1132414098__root","action":"actionsmenu1132414098__action"};
|
|
17
17
|
export var keyframes = {};
|
|
18
18
|
export var layers = {};
|
|
19
19
|
export var containers = {};
|
|
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../../stylable-esm-runtime.js"
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var _namespace_ = "
|
|
8
|
+
var _namespace_ = "formaudiofield4212276772";
|
|
9
9
|
var _style_ = classesRuntime.bind(null, _namespace_);
|
|
10
10
|
|
|
11
11
|
export var cssStates = statesRuntime.bind(null, _namespace_);
|
|
@@ -13,7 +13,7 @@ export var style: import("@stylable/runtime").STFunction = _style_;
|
|
|
13
13
|
export var st: import("@stylable/runtime").STFunction = _style_;
|
|
14
14
|
|
|
15
15
|
export var namespace = _namespace_;
|
|
16
|
-
export var classes = {"root":"
|
|
16
|
+
export var classes = {"root":"formaudiofield4212276772__root","addItem":"formaudiofield4212276772__addItem","mediaTitle":"formaudiofield4212276772__mediaTitle"};
|
|
17
17
|
export var keyframes = {};
|
|
18
18
|
export var layers = {};
|
|
19
19
|
export var containers = {};
|
|
@@ -7,6 +7,7 @@ import { useController } from '@wix/bex-core/form';
|
|
|
7
7
|
import { BaseInputProps } from '../../../types/base-input';
|
|
8
8
|
import { isEmpty } from '../../../validations/string';
|
|
9
9
|
import { FormAudioField } from './form-audio-field';
|
|
10
|
+
import { useFieldRef } from '../../../hooks';
|
|
10
11
|
|
|
11
12
|
export interface FormAudioProps extends BaseInputProps<string> {}
|
|
12
13
|
|
|
@@ -30,6 +31,8 @@ const _FormAudio = (props: FormAudioProps) => {
|
|
|
30
31
|
},
|
|
31
32
|
});
|
|
32
33
|
|
|
34
|
+
const setFieldRef = useFieldRef(controller.field.ref);
|
|
35
|
+
|
|
33
36
|
return (
|
|
34
37
|
<FormField
|
|
35
38
|
label={field.displayName}
|
|
@@ -42,7 +45,7 @@ const _FormAudio = (props: FormAudioProps) => {
|
|
|
42
45
|
// Hand the add button to react-hook-form so
|
|
43
46
|
// shouldFocusError scrolls to + focuses this field when it
|
|
44
47
|
// blocks save.
|
|
45
|
-
inputRef={
|
|
48
|
+
inputRef={setFieldRef}
|
|
46
49
|
data={controller.field.value}
|
|
47
50
|
onChange={(value) => controller.field.onChange(value)}
|
|
48
51
|
onClear={() => controller.field.onChange(null)}
|
|
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../../stylable-esm-runtime.js"
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var _namespace_ = "
|
|
8
|
+
var _namespace_ = "audioplayer1170338736";
|
|
9
9
|
var _style_ = classesRuntime.bind(null, _namespace_);
|
|
10
10
|
|
|
11
11
|
export var cssStates = statesRuntime.bind(null, _namespace_);
|
|
@@ -13,7 +13,7 @@ export var style: import("@stylable/runtime").STFunction = _style_;
|
|
|
13
13
|
export var st: import("@stylable/runtime").STFunction = _style_;
|
|
14
14
|
|
|
15
15
|
export var namespace = _namespace_;
|
|
16
|
-
export var classes = {"root":"
|
|
16
|
+
export var classes = {"root":"audioplayer1170338736__root"};
|
|
17
17
|
export var keyframes = {};
|
|
18
18
|
export var layers = {};
|
|
19
19
|
export var containers = {};
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import React, { useRef } from 'react';
|
|
2
|
+
import { Checkbox } from '@wix/design-system';
|
|
3
|
+
|
|
4
|
+
import { useAutoFocus } from '../../hooks';
|
|
5
|
+
import type { ControlledInputProps } from '../../types/controlled-input';
|
|
6
|
+
|
|
7
|
+
export interface FormCheckboxInputProps extends ControlledInputProps<boolean> {
|
|
8
|
+
label: React.ReactNode;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export const FormCheckboxInput: React.FC<FormCheckboxInputProps> = ({
|
|
12
|
+
data,
|
|
13
|
+
onChange,
|
|
14
|
+
onBlur,
|
|
15
|
+
readOnly,
|
|
16
|
+
autoFocus,
|
|
17
|
+
invalid,
|
|
18
|
+
dataHook,
|
|
19
|
+
label,
|
|
20
|
+
}) => {
|
|
21
|
+
const rootRef = useRef<HTMLDivElement>(null);
|
|
22
|
+
|
|
23
|
+
useAutoFocus(rootRef, Boolean(autoFocus));
|
|
24
|
+
|
|
25
|
+
return (
|
|
26
|
+
<Checkbox
|
|
27
|
+
ref={rootRef}
|
|
28
|
+
checked={data}
|
|
29
|
+
disabled={readOnly}
|
|
30
|
+
hasError={invalid}
|
|
31
|
+
onChange={(event) => onChange(event.target.checked)}
|
|
32
|
+
onBlur={onBlur}
|
|
33
|
+
dataHook={dataHook}
|
|
34
|
+
>
|
|
35
|
+
{label}
|
|
36
|
+
</Checkbox>
|
|
37
|
+
);
|
|
38
|
+
};
|
|
39
|
+
|
|
40
|
+
FormCheckboxInput.displayName = 'FormCheckboxInput';
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
|
-
import { Checkbox } from '@wix/design-system';
|
|
3
2
|
import { observer } from 'mobx-react-lite';
|
|
4
3
|
import { useController } from '@wix/bex-core/form';
|
|
5
4
|
|
|
6
5
|
import { BaseInputProps } from '../../types/base-input';
|
|
6
|
+
import { FormCheckboxInput } from './form-checkbox-input';
|
|
7
7
|
|
|
8
8
|
export interface FormCheckboxProps extends BaseInputProps<boolean> {}
|
|
9
9
|
|
|
@@ -17,14 +17,13 @@ const _FormCheckbox = (props: FormCheckboxProps) => {
|
|
|
17
17
|
});
|
|
18
18
|
|
|
19
19
|
return (
|
|
20
|
-
<
|
|
21
|
-
|
|
22
|
-
onChange={
|
|
20
|
+
<FormCheckboxInput
|
|
21
|
+
data={!!controller.field.value}
|
|
22
|
+
onChange={controller.field.onChange}
|
|
23
23
|
onBlur={controller.field.onBlur}
|
|
24
24
|
dataHook={dataHook ?? `checkbox-${field.id}`}
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
</Checkbox>
|
|
25
|
+
label={field.displayName}
|
|
26
|
+
/>
|
|
28
27
|
);
|
|
29
28
|
};
|
|
30
29
|
|
|
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var _namespace_ = "
|
|
8
|
+
var _namespace_ = "cellcolorview1008266217";
|
|
9
9
|
var _style_ = classesRuntime.bind(null, _namespace_);
|
|
10
10
|
|
|
11
11
|
export var cssStates = statesRuntime.bind(null, _namespace_);
|
|
@@ -13,7 +13,7 @@ export var style: import("@stylable/runtime").STFunction = _style_;
|
|
|
13
13
|
export var st: import("@stylable/runtime").STFunction = _style_;
|
|
14
14
|
|
|
15
15
|
export var namespace = _namespace_;
|
|
16
|
-
export var classes = {"root":"
|
|
16
|
+
export var classes = {"root":"cellcolorview1008266217__root","hashPrefix":"cellcolorview1008266217__hashPrefix"};
|
|
17
17
|
export var keyframes = {};
|
|
18
18
|
export var layers = {};
|
|
19
19
|
export var containers = {};
|
|
@@ -131,14 +131,25 @@ export const ColorInput = forwardRef<InputImperativeActions, ColorInputProps>(
|
|
|
131
131
|
zIndex={5001}
|
|
132
132
|
>
|
|
133
133
|
<Popover.Element>
|
|
134
|
-
{
|
|
134
|
+
{/* Both swatches keep the mousedown default from moving focus.
|
|
135
|
+
Without it the press focuses the swatch, and the re-render
|
|
136
|
+
that follows the click detaches it — WDS Popover then reads
|
|
137
|
+
the click as landing outside itself and closes again, so the
|
|
138
|
+
picker only opened on a later click. For the same reason the
|
|
139
|
+
branch must not depend on `showPicker`: the swatch has to
|
|
140
|
+
survive its own click. */}
|
|
141
|
+
{!colorValue && isFocused ? (
|
|
135
142
|
<FillButton
|
|
136
143
|
onClick={onPreviewClick}
|
|
137
144
|
onMouseDown={(e) => e.preventDefault()}
|
|
138
145
|
tooltipContent={t('auto-patterns.fields.add_color_tooltip')}
|
|
139
146
|
/>
|
|
140
147
|
) : (
|
|
141
|
-
<FillPreview
|
|
148
|
+
<FillPreview
|
|
149
|
+
fill={colorValue}
|
|
150
|
+
onClick={onPreviewClick}
|
|
151
|
+
onMouseDown={(e) => e.preventDefault()}
|
|
152
|
+
/>
|
|
142
153
|
)}
|
|
143
154
|
</Popover.Element>
|
|
144
155
|
<Popover.Content>
|
|
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var _namespace_ = "
|
|
8
|
+
var _namespace_ = "colorview3520103020";
|
|
9
9
|
var _style_ = classesRuntime.bind(null, _namespace_);
|
|
10
10
|
|
|
11
11
|
export var cssStates = statesRuntime.bind(null, _namespace_);
|
|
@@ -13,7 +13,7 @@ export var style: import("@stylable/runtime").STFunction = _style_;
|
|
|
13
13
|
export var st: import("@stylable/runtime").STFunction = _style_;
|
|
14
14
|
|
|
15
15
|
export var namespace = _namespace_;
|
|
16
|
-
export var classes = {"root":"
|
|
16
|
+
export var classes = {"root":"colorview3520103020__root","view":"colorview3520103020__view","fillPreview":"colorview3520103020__fillPreview"};
|
|
17
17
|
export var keyframes = {};
|
|
18
18
|
export var layers = {};
|
|
19
19
|
export var containers = {};
|
|
@@ -25,8 +25,14 @@ export function FormColorDriver(
|
|
|
25
25
|
...baseUniDriverFactory(base),
|
|
26
26
|
getLabel: () => getFormFieldLabelText(formField),
|
|
27
27
|
getValue: () => input.getValue(),
|
|
28
|
-
|
|
29
|
-
|
|
28
|
+
// The WDS drivers scope their queries to `base`, but `exists()` comes from
|
|
29
|
+
// the shared base factory and only reports on `base` itself — which here is
|
|
30
|
+
// the whole field, so it is true either way. Query the swatch directly.
|
|
31
|
+
hasFillButton: () => base.$('[data-hook="fillbutton"]').exists(),
|
|
32
|
+
hasFillPreview: () => base.$('[data-hook="fill-preview-button"]').exists(),
|
|
33
|
+
clickFillButton: () => FillButtonUniDriver(base, body).click(),
|
|
34
|
+
clickFillPreview: () => FillPreviewUniDriver(base, body).click(),
|
|
35
|
+
isPickerOpen: () => body.$('[data-hook="color-picker-hsb"]').exists(),
|
|
30
36
|
isRequired: () => formField.isRequired(),
|
|
31
37
|
hasError: () => formField.hasStatus('error'),
|
|
32
38
|
getErrorMessage: () => formField.getStatusMessage(),
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { UniDriver } from '@wix/wix-ui-test-utils/unidriver';
|
|
2
|
+
import {
|
|
3
|
+
AutoCompleteUniDriver,
|
|
4
|
+
CheckboxUniDriver,
|
|
5
|
+
InputUniDriver,
|
|
6
|
+
NumberInputUniDriver,
|
|
7
|
+
} from '@wix/design-system/dist/testkit/unidriver';
|
|
8
|
+
|
|
9
|
+
import { baseUniDriverFactory } from '../testkit/base-driver';
|
|
10
|
+
|
|
11
|
+
export function ControlledInputUniDriver(base: UniDriver, body: UniDriver) {
|
|
12
|
+
return {
|
|
13
|
+
...baseUniDriverFactory(base),
|
|
14
|
+
checkbox: CheckboxUniDriver(base, body),
|
|
15
|
+
number: NumberInputUniDriver(base, body),
|
|
16
|
+
text: InputUniDriver(base, body),
|
|
17
|
+
autocomplete: AutoCompleteUniDriver(base, body),
|
|
18
|
+
};
|
|
19
|
+
}
|
|
@@ -38,5 +38,8 @@ export function FormDateTimeDriver(
|
|
|
38
38
|
timeInput.hasStatus('error'),
|
|
39
39
|
getTimeErrorMessage: () => timeInput.getStatusMessage(),
|
|
40
40
|
isRequired: () => formField.isRequired(),
|
|
41
|
+
// WDS Layout mirrors its `gap` prop onto `data-gap`; it is the only
|
|
42
|
+
// element in this field carrying that attribute.
|
|
43
|
+
getInputsGap: () => base.$('[data-gap]').attr('data-gap'),
|
|
41
44
|
};
|
|
42
45
|
}
|
|
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var _namespace_ = "
|
|
8
|
+
var _namespace_ = "deletedialog3550580931";
|
|
9
9
|
var _style_ = classesRuntime.bind(null, _namespace_);
|
|
10
10
|
|
|
11
11
|
export var cssStates = statesRuntime.bind(null, _namespace_);
|
|
@@ -13,7 +13,7 @@ export var style: import("@stylable/runtime").STFunction = _style_;
|
|
|
13
13
|
export var st: import("@stylable/runtime").STFunction = _style_;
|
|
14
14
|
|
|
15
15
|
export var namespace = _namespace_;
|
|
16
|
-
export var classes = {"root":"
|
|
16
|
+
export var classes = {"root":"deletedialog3550580931__root","layout":"deletedialog3550580931__layout"};
|
|
17
17
|
export var keyframes = {};
|
|
18
18
|
export var layers = {};
|
|
19
19
|
export var containers = {};
|
|
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var _namespace_ = "
|
|
8
|
+
var _namespace_ = "formdocumentfield2224721629";
|
|
9
9
|
var _style_ = classesRuntime.bind(null, _namespace_);
|
|
10
10
|
|
|
11
11
|
export var cssStates = statesRuntime.bind(null, _namespace_);
|
|
@@ -13,7 +13,7 @@ export var style: import("@stylable/runtime").STFunction = _style_;
|
|
|
13
13
|
export var st: import("@stylable/runtime").STFunction = _style_;
|
|
14
14
|
|
|
15
15
|
export var namespace = _namespace_;
|
|
16
|
-
export var classes = {"root":"
|
|
16
|
+
export var classes = {"root":"formdocumentfield2224721629__root","viewWrapper":"formdocumentfield2224721629__viewWrapper","textWidth":"formdocumentfield2224721629__textWidth","documentLoader":"formdocumentfield2224721629__documentLoader","addDocument":"formdocumentfield2224721629__addDocument","addItemWrapper":"formdocumentfield2224721629__addItemWrapper"};
|
|
17
17
|
export var keyframes = {};
|
|
18
18
|
export var layers = {};
|
|
19
19
|
export var containers = {};
|
|
@@ -7,6 +7,7 @@ import { useController } from '@wix/bex-core/form';
|
|
|
7
7
|
import { BaseInputProps } from '../../types/base-input';
|
|
8
8
|
import { isEmpty } from '../../validations/string';
|
|
9
9
|
import { FormDocumentField } from './form-document-field';
|
|
10
|
+
import { useFieldRef } from '../../hooks';
|
|
10
11
|
|
|
11
12
|
export interface FormDocumentProps extends BaseInputProps<string> {}
|
|
12
13
|
|
|
@@ -30,6 +31,8 @@ const _FormDocument = (props: FormDocumentProps) => {
|
|
|
30
31
|
},
|
|
31
32
|
});
|
|
32
33
|
|
|
34
|
+
const setFieldRef = useFieldRef(controller.field.ref);
|
|
35
|
+
|
|
33
36
|
return (
|
|
34
37
|
<FormField
|
|
35
38
|
label={field.displayName}
|
|
@@ -42,7 +45,7 @@ const _FormDocument = (props: FormDocumentProps) => {
|
|
|
42
45
|
// Hand the add button to react-hook-form so
|
|
43
46
|
// shouldFocusError scrolls to + focuses this field when it
|
|
44
47
|
// blocks save.
|
|
45
|
-
inputRef={
|
|
48
|
+
inputRef={setFieldRef}
|
|
46
49
|
data={controller.field.value}
|
|
47
50
|
onChange={(value) => controller.field.onChange(value)}
|
|
48
51
|
onClear={() => controller.field.onChange(null)}
|
|
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var _namespace_ = "
|
|
8
|
+
var _namespace_ = "exclamation2784991636";
|
|
9
9
|
var _style_ = classesRuntime.bind(null, _namespace_);
|
|
10
10
|
|
|
11
11
|
export var cssStates = statesRuntime.bind(null, _namespace_);
|
|
@@ -13,7 +13,7 @@ export var style: import("@stylable/runtime").STFunction = _style_;
|
|
|
13
13
|
export var st: import("@stylable/runtime").STFunction = _style_;
|
|
14
14
|
|
|
15
15
|
export var namespace = _namespace_;
|
|
16
|
-
export var classes = {"root":"
|
|
16
|
+
export var classes = {"root":"exclamation2784991636__root","exclamation":"exclamation2784991636__exclamation","actions":"exclamation2784991636__actions","action":"exclamation2784991636__action"};
|
|
17
17
|
export var keyframes = {};
|
|
18
18
|
export var layers = {};
|
|
19
19
|
export var containers = {};
|
|
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var _namespace_ = "
|
|
8
|
+
var _namespace_ = "highlightedtext3503248983";
|
|
9
9
|
var _style_ = classesRuntime.bind(null, _namespace_);
|
|
10
10
|
|
|
11
11
|
export var cssStates = statesRuntime.bind(null, _namespace_);
|
|
@@ -13,8 +13,8 @@ export var style: import("@stylable/runtime").STFunction = _style_;
|
|
|
13
13
|
export var st: import("@stylable/runtime").STFunction = _style_;
|
|
14
14
|
|
|
15
15
|
export var namespace = _namespace_;
|
|
16
|
-
export var classes = {"root":"
|
|
17
|
-
export var keyframes = {"highlighted":"
|
|
16
|
+
export var classes = {"root":"highlightedtext3503248983__root","substring":"highlightedtext3503248983__substring"};
|
|
17
|
+
export var keyframes = {"highlighted":"highlightedtext3503248983__highlighted","highlighted-match":"highlightedtext3503248983__highlighted-match"};
|
|
18
18
|
export var layers = {};
|
|
19
19
|
export var containers = {};
|
|
20
20
|
export var stVars = {};
|
|
@@ -8,6 +8,7 @@ import { BaseInputProps } from '../../types/base-input';
|
|
|
8
8
|
import { isEmpty } from '../../validations/string';
|
|
9
9
|
import { getImageUrl } from '../../utils/get-image-url';
|
|
10
10
|
import { MEDIA_HEIGHT, MEDIA_MAX_WIDTH } from '../../utils/media-constants';
|
|
11
|
+
import { useFieldRef } from '../../hooks';
|
|
11
12
|
|
|
12
13
|
export interface FormImageInputProps extends BaseInputProps<string> {}
|
|
13
14
|
|
|
@@ -50,6 +51,8 @@ const _FormImageInput = (props: FormImageInputProps) => {
|
|
|
50
51
|
},
|
|
51
52
|
});
|
|
52
53
|
|
|
54
|
+
const setFieldRef = useFieldRef(controller.field.ref);
|
|
55
|
+
|
|
53
56
|
const imageUrl =
|
|
54
57
|
controller.field.value && getImageUrl(controller.field.value);
|
|
55
58
|
|
|
@@ -66,7 +69,7 @@ const _FormImageInput = (props: FormImageInputProps) => {
|
|
|
66
69
|
// ImageViewer keeps its focus node on whichever button is live, so
|
|
67
70
|
// one ref serves both the empty and filled states. Lets
|
|
68
71
|
// react-hook-form's shouldFocusError reach this field.
|
|
69
|
-
ref={
|
|
72
|
+
ref={setFieldRef}
|
|
70
73
|
imageUrl={imageUrl}
|
|
71
74
|
dataHook={`image-${field.id}`}
|
|
72
75
|
onAddImage={isMobile ? undefined : () => openMedia()}
|
|
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var _namespace_ = "
|
|
8
|
+
var _namespace_ = "thumbnailreplaceoverlay394833446";
|
|
9
9
|
var _style_ = classesRuntime.bind(null, _namespace_);
|
|
10
10
|
|
|
11
11
|
export var cssStates = statesRuntime.bind(null, _namespace_);
|
|
@@ -13,7 +13,7 @@ export var style: import("@stylable/runtime").STFunction = _style_;
|
|
|
13
13
|
export var st: import("@stylable/runtime").STFunction = _style_;
|
|
14
14
|
|
|
15
15
|
export var namespace = _namespace_;
|
|
16
|
-
export var classes = {"root":"
|
|
16
|
+
export var classes = {"root":"thumbnailreplaceoverlay394833446__root","icon":"thumbnailreplaceoverlay394833446__icon"};
|
|
17
17
|
export var keyframes = {};
|
|
18
18
|
export var layers = {};
|
|
19
19
|
export var containers = {};
|
|
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var _namespace_ = "
|
|
8
|
+
var _namespace_ = "cellmediaeditshell2637278711";
|
|
9
9
|
var _style_ = classesRuntime.bind(null, _namespace_);
|
|
10
10
|
|
|
11
11
|
export var cssStates = statesRuntime.bind(null, _namespace_);
|
|
@@ -13,7 +13,7 @@ export var style: import("@stylable/runtime").STFunction = _style_;
|
|
|
13
13
|
export var st: import("@stylable/runtime").STFunction = _style_;
|
|
14
14
|
|
|
15
15
|
export var namespace = _namespace_;
|
|
16
|
-
export var classes = {"root":"
|
|
16
|
+
export var classes = {"root":"cellmediaeditshell2637278711__root"};
|
|
17
17
|
export var keyframes = {};
|
|
18
18
|
export var layers = {};
|
|
19
19
|
export var containers = {};
|
|
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../stylable-esm-runtime.js";
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var _namespace_ = "
|
|
8
|
+
var _namespace_ = "pasteurlbutton62614613";
|
|
9
9
|
var _style_ = classesRuntime.bind(null, _namespace_);
|
|
10
10
|
|
|
11
11
|
export var cssStates = statesRuntime.bind(null, _namespace_);
|
|
@@ -13,7 +13,7 @@ export var style: import("@stylable/runtime").STFunction = _style_;
|
|
|
13
13
|
export var st: import("@stylable/runtime").STFunction = _style_;
|
|
14
14
|
|
|
15
15
|
export var namespace = _namespace_;
|
|
16
|
-
export var classes = {"root":"
|
|
16
|
+
export var classes = {"root":"pasteurlbutton62614613__root","iconButtonTooltip":"pasteurlbutton62614613__iconButtonTooltip","iconButton":"pasteurlbutton62614613__iconButton"};
|
|
17
17
|
export var keyframes = {};
|
|
18
18
|
export var layers = {};
|
|
19
19
|
export var containers = {};
|