@wix/patterns-fields 1.71.0 → 1.73.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/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/input/form-address-input.js +5 -16
- package/dist/cjs/components/address/input/form-address-input.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.js +14 -13
- package/dist/cjs/components/audio/audio-field/form-audio-field.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 +6 -1
- 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/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-view.st.css.js +4 -4
- package/dist/cjs/components/color-view/color-view.st.css.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.js +7 -6
- package/dist/cjs/components/document/form-document-field.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 +6 -1
- 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 -1
- 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/json-input/form-json-input.js +2 -1
- package/dist/cjs/components/json-input/form-json-input.js.map +1 -1
- package/dist/cjs/components/json-input/json-input.js +2 -1
- package/dist/cjs/components/json-input/json-input.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.js +24 -21
- package/dist/cjs/components/media-gallery/form-media-gallery-field.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 +6 -1
- 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-field.js +7 -6
- package/dist/cjs/components/multi-document/multi-document-input/form-multi-document-field.js.map +1 -1
- package/dist/cjs/components/multi-document/multi-document-input/form-multi-document.js +6 -1
- 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/object/cell-json-input.js +2 -1
- package/dist/cjs/components/object/cell-json-input.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/form-rich-content.js +20 -5
- package/dist/cjs/components/rich-content/form-rich-content.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.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 +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/form-rich-text.js +18 -5
- package/dist/cjs/components/rich-text/form-rich-text.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/text-view.st.css.js +3 -3
- package/dist/cjs/components/text/text-view.st.css.js.map +1 -1
- package/dist/cjs/hooks/index.js +12 -0
- package/dist/cjs/hooks/index.js.map +1 -1
- package/dist/cjs/hooks/use-merged-ref.js +27 -0
- package/dist/cjs/hooks/use-merged-ref.js.map +1 -0
- package/dist/cjs/hooks/use-scroll-to-error-ref.js +34 -0
- package/dist/cjs/hooks/use-scroll-to-error-ref.js.map +1 -0
- package/dist/cjs/styles.global.css +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/address/input/form-address-input.js +4 -15
- package/dist/esm/components/address/input/form-address-input.js.map +1 -1
- package/dist/esm/components/audio/actions/actions-menu/actions-menu.st.css.js +2 -2
- package/dist/esm/components/audio/audio-field/form-audio-field.js +4 -4
- package/dist/esm/components/audio/audio-field/form-audio-field.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 +9 -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/color-view/cell-color-view.st.css.js +2 -2
- package/dist/esm/components/color-view/cell-color-view.st.css.js.map +1 -1
- package/dist/esm/components/color-view/color-view.st.css.js +2 -2
- package/dist/esm/components/delete-dialog/delete-dialog.st.css.js +2 -2
- package/dist/esm/components/document/form-document-field.js +4 -4
- package/dist/esm/components/document/form-document-field.js.map +1 -1
- package/dist/esm/components/document/form-document-field.st.css.js +2 -2
- package/dist/esm/components/document/form-document.js +9 -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/highlighted-text/highlighted-text.st.css.js.map +1 -1
- package/dist/esm/components/image/form-image-input.js +9 -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/json-input/form-json-input.js +1 -0
- package/dist/esm/components/json-input/form-json-input.js.map +1 -1
- package/dist/esm/components/json-input/json-input.js +1 -0
- package/dist/esm/components/json-input/json-input.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/paste-url-button.st.css.js +2 -2
- package/dist/esm/components/media-gallery/form-media-gallery-field.js +7 -5
- package/dist/esm/components/media-gallery/form-media-gallery-field.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 +9 -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/media-image.st.css.js.map +1 -1
- package/dist/esm/components/media-image/overlays/overlay.st.css.js +2 -2
- package/dist/esm/components/media-image/overlays/overlay.st.css.js.map +1 -1
- package/dist/esm/components/media-loader/media-loader.st.css.js +2 -2
- package/dist/esm/components/media-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/cell-multi-document-edit.st.css.js.map +1 -1
- package/dist/esm/components/multi-document/multi-document-input/form-multi-document-field.js +4 -4
- package/dist/esm/components/multi-document/multi-document-input/form-multi-document-field.js.map +1 -1
- package/dist/esm/components/multi-document/multi-document-input/form-multi-document.js +9 -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/object/cell-json-input.js +1 -0
- package/dist/esm/components/object/cell-json-input.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/form-rich-content.js +8 -3
- package/dist/esm/components/rich-content/form-rich-content.js.map +1 -1
- 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/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-viewer/rich-content-viewer.st.css.js +2 -2
- package/dist/esm/components/rich-text/form-rich-text.js +7 -3
- package/dist/esm/components/rich-text/form-rich-text.js.map +1 -1
- package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/rich-editor.st.css.js +2 -2
- package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js +2 -2
- package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.js.map +1 -1
- package/dist/esm/components/rich-text/rich-text-input/rich-text-editor/toolbar/toolbar.st.css.js +2 -2
- package/dist/esm/components/text/text-view.st.css.js +2 -2
- package/dist/esm/hooks/index.js +2 -0
- package/dist/esm/hooks/index.js.map +1 -1
- package/dist/esm/hooks/use-merged-ref.js +23 -0
- package/dist/esm/hooks/use-merged-ref.js.map +1 -0
- package/dist/esm/hooks/use-scroll-to-error-ref.js +26 -0
- package/dist/esm/hooks/use-scroll-to-error-ref.js.map +1 -0
- package/dist/esm/styles.global.css +1 -1
- package/dist/types/components/address/input/address-input.st.css.d.ts.map +1 -1
- package/dist/types/components/address/input/form-address-input.d.ts.map +1 -1
- package/dist/types/components/audio/audio-field/form-audio-field.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/color-view/cell-color-view.st.css.d.ts.map +1 -1
- package/dist/types/components/document/form-document-field.d.ts.map +1 -1
- package/dist/types/components/document/form-document.d.ts.map +1 -1
- package/dist/types/components/highlighted-text/highlighted-text.st.css.d.ts.map +1 -1
- package/dist/types/components/image/form-image-input.d.ts.map +1 -1
- package/dist/types/components/json-input/form-json-input.d.ts +1 -1
- package/dist/types/components/json-input/form-json-input.d.ts.map +1 -1
- package/dist/types/components/json-input/json-input.d.ts.map +1 -1
- package/dist/types/components/media-gallery/form-media-gallery-field.d.ts +3 -0
- package/dist/types/components/media-gallery/form-media-gallery-field.d.ts.map +1 -1
- package/dist/types/components/media-gallery/form-media-gallery.d.ts.map +1 -1
- package/dist/types/components/media-image/media-image.st.css.d.ts.map +1 -1
- package/dist/types/components/media-image/overlays/overlay.st.css.d.ts.map +1 -1
- package/dist/types/components/multi-document/cell-multi-document-edit.st.css.d.ts.map +1 -1
- package/dist/types/components/multi-document/multi-document-input/form-multi-document-field.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/object/cell-json-input.d.ts.map +1 -1
- package/dist/types/components/rich-content/form-rich-content.d.ts.map +1 -1
- package/dist/types/components/rich-text/form-rich-text.d.ts.map +1 -1
- package/dist/types/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.d.ts.map +1 -1
- package/dist/types/hooks/index.d.ts +2 -0
- package/dist/types/hooks/index.d.ts.map +1 -1
- package/dist/types/hooks/use-merged-ref.d.ts +11 -0
- package/dist/types/hooks/use-merged-ref.d.ts.map +1 -0
- package/dist/types/hooks/use-scroll-to-error-ref.d.ts +14 -0
- package/dist/types/hooks/use-scroll-to-error-ref.d.ts.map +1 -0
- package/package.json +7 -7
- package/src/__tests__/components/audio/form-audio.spec.tsx +22 -0
- package/src/__tests__/components/document/form-document.spec.tsx +22 -0
- package/src/__tests__/components/form-multi-document-field.spec.tsx +0 -8
- package/src/__tests__/components/image/form-image-input.spec.tsx +22 -0
- package/src/__tests__/components/media-gallery/form-media-gallery.spec.tsx +21 -0
- package/src/__tests__/components/multi-document/form-multi-document.spec.tsx +21 -0
- package/src/__tests__/components/rich-content/form-rich-content.spec.tsx +22 -0
- package/src/__tests__/components/rich-text/form-rich-text.spec.tsx +18 -0
- package/src/components/address/input/address-input.st.css.ts +2 -2
- package/src/components/address/input/form-address-input.tsx +5 -20
- 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-field.tsx +4 -3
- package/src/components/audio/audio-field/form-audio.tsx +4 -0
- package/src/components/audio/audio-player/audio-player.st.css.ts +2 -2
- package/src/components/color-view/cell-color-view.st.css.ts +2 -2
- package/src/components/color-view/color-view.st.css.ts +2 -2
- 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-field.tsx +4 -3
- package/src/components/document/form-document.tsx +4 -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.tsx +4 -0
- package/src/components/image/thumbnail-replace-overlay.st.css.ts +2 -2
- package/src/components/json-input/form-json-input.tsx +4 -1
- package/src/components/json-input/json-input.tsx +4 -1
- 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-field.tsx +9 -4
- package/src/components/media-gallery/form-media-gallery.tsx +4 -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/cell-multi-document-edit.st.css.ts +2 -2
- package/src/components/multi-document/multi-document-input/form-multi-document-field.tsx +4 -3
- 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 -0
- package/src/components/object/cell-json-input.tsx +4 -1
- 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/form-rich-content.tsx +24 -14
- 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.tsx +18 -9
- 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/text-view.st.css.ts +2 -2
- package/src/hooks/index.ts +2 -0
- package/src/hooks/use-merged-ref.ts +30 -0
- package/src/hooks/use-scroll-to-error-ref.ts +34 -0
- package/src/styles.global.css +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"form-rich-text.d.ts","sourceRoot":"","sources":["../../../../src/components/rich-text/form-rich-text.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAUxD,MAAM,WAAW,iBAAkB,SAAQ,cAAc,CAAC,MAAM,CAAC;CAAG;
|
|
1
|
+
{"version":3,"file":"form-rich-text.d.ts","sourceRoot":"","sources":["../../../../src/components/rich-text/form-rich-text.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAM1B,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AAUxD,MAAM,WAAW,iBAAkB,SAAQ,cAAc,CAAC,MAAM,CAAC;CAAG;AA0EpE,eAAO,MAAM,YAAY,WAxEK,iBAAiB;;CAwEI,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rich-text-editor.st.css.d.ts","sourceRoot":"","sources":["../../../../../../src/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.ts"],"names":[],"mappings":"AAUA,eAAO,IAAI,SAAS,+BAAwC,CAAC;AAC7D,eAAO,IAAI,KAAK,EAAE,OAAO,mBAAmB,EAAE,UAAoB,CAAC;AACnE,eAAO,IAAI,EAAE,EAAE,OAAO,mBAAmB,EAAE,UAAoB,CAAC;AAEhE,eAAO,IAAI,SAAS,QAAc,CAAC;AACnC,eAAO,IAAI,OAAO;;;;
|
|
1
|
+
{"version":3,"file":"rich-text-editor.st.css.d.ts","sourceRoot":"","sources":["../../../../../../src/components/rich-text/rich-text-input/rich-text-editor/rich-text-editor.st.css.ts"],"names":[],"mappings":"AAUA,eAAO,IAAI,SAAS,+BAAwC,CAAC;AAC7D,eAAO,IAAI,KAAK,EAAE,OAAO,mBAAmB,EAAE,UAAoB,CAAC;AACnE,eAAO,IAAI,EAAE,EAAE,OAAO,mBAAmB,EAAE,UAAoB,CAAC;AAEhE,eAAO,IAAI,SAAS,QAAc,CAAC;AACnC,eAAO,IAAI,OAAO;;;;CAA2I,CAAC;AAC9J,eAAO,IAAI,SAAS,IAAK,CAAC;AAC1B,eAAO,IAAI,MAAM,IAAK,CAAC;AACvB,eAAO,IAAI,UAAU,IAAK,CAAC;AAC3B,eAAO,IAAI,MAAM,IAAK,CAAC;AACvB,eAAO,IAAI,IAAI;;;;;;;;;;CAAsb,CAAC"}
|
|
@@ -7,4 +7,6 @@ export * from './use-translations';
|
|
|
7
7
|
export * from './use-with-callback';
|
|
8
8
|
export * from './use-resize-effect';
|
|
9
9
|
export * from './use-cell-edit-keyboard';
|
|
10
|
+
export * from './use-merged-ref';
|
|
11
|
+
export * from './use-scroll-to-error-ref';
|
|
10
12
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/hooks/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC;AACjC,cAAc,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { MutableRefObject, Ref } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Keeps a component's own ref filled while also handing the value to a
|
|
4
|
+
* caller's ref.
|
|
5
|
+
*
|
|
6
|
+
* Media inputs need both: the local ref drives `autoFocus` and media
|
|
7
|
+
* callbacks, while a caller such as react-hook-form supplies its own ref to
|
|
8
|
+
* focus the field when it blocks save.
|
|
9
|
+
*/
|
|
10
|
+
export declare const useMergedRef: <T>(forwarded?: Ref<T> | undefined) => [MutableRefObject<T | null>, (value: T | null) => void];
|
|
11
|
+
//# sourceMappingURL=use-merged-ref.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-merged-ref.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-merged-ref.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,GAAG,EAAE,MAAM,OAAO,CAAC;AAGnD;;;;;;;GAOG;AACH,eAAO,MAAM,YAAY,2FAE4B,IAAI,CAgBxD,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Ref for a field whose control cannot be handed to react-hook-form directly.
|
|
3
|
+
*
|
|
4
|
+
* react-hook-form focuses an invalid field by calling `focus()` on whatever
|
|
5
|
+
* was registered, so registering a plain wrapper element does nothing — a
|
|
6
|
+
* `div` is not focusable and the call is silently dropped. Registering an
|
|
7
|
+
* object with a `focus()` of our own works instead: it brings the wrapper
|
|
8
|
+
* into view, then focuses the control inside it when there is one.
|
|
9
|
+
*
|
|
10
|
+
* @param registerRef `controller.field.ref` from useController.
|
|
11
|
+
* @param focusSelector Control to focus inside the wrapper, when present.
|
|
12
|
+
*/
|
|
13
|
+
export declare const useScrollToErrorRef: <T extends HTMLElement>(registerRef: (instance: unknown) => void, focusSelector: string) => (element: T | null) => void;
|
|
14
|
+
//# sourceMappingURL=use-scroll-to-error-ref.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-scroll-to-error-ref.d.ts","sourceRoot":"","sources":["../../../src/hooks/use-scroll-to-error-ref.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,mBAAmB,kDACN,OAAO,KAAK,IAAI,iBACzB,MAAM,gCAiBpB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@wix/patterns-fields",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.73.0",
|
|
4
4
|
"license": "UNLICENSED",
|
|
5
5
|
"author": {
|
|
6
6
|
"name": "Kobi",
|
|
@@ -124,10 +124,10 @@
|
|
|
124
124
|
"@wix/atlas": "^1.0.35",
|
|
125
125
|
"@wix/data": "^1.0.323",
|
|
126
126
|
"@wix/media": "^1.0.231",
|
|
127
|
-
"@wix/patterns-fields-utils": "1.
|
|
127
|
+
"@wix/patterns-fields-utils": "1.54.0",
|
|
128
128
|
"@wix/rich-content": "1.0.37",
|
|
129
129
|
"@wix/sdk": "^1.17.2",
|
|
130
|
-
"@wix/wix-ui-icons-common": "^3.
|
|
130
|
+
"@wix/wix-ui-icons-common": "^3.189.0",
|
|
131
131
|
"color": "^2.0.1",
|
|
132
132
|
"draft-js": "^0.11.7",
|
|
133
133
|
"draft-js-export-html": "^1.4.1",
|
|
@@ -152,8 +152,8 @@
|
|
|
152
152
|
"@types/lodash": "^4.17.20",
|
|
153
153
|
"@types/react": "^16.14.68",
|
|
154
154
|
"@wix/babel-cli": "^1.11.0",
|
|
155
|
-
"@wix/bex-core": "2.
|
|
156
|
-
"@wix/design-system": "^1.
|
|
155
|
+
"@wix/bex-core": "2.351.0",
|
|
156
|
+
"@wix/design-system": "^1.314.0",
|
|
157
157
|
"@wix/eslint-config-yoshi": "^6.74.0",
|
|
158
158
|
"@wix/jest-yoshi-preset": "^6.74.0",
|
|
159
159
|
"@wix/wix-data-items-common": "^1.0.270",
|
|
@@ -168,7 +168,7 @@
|
|
|
168
168
|
},
|
|
169
169
|
"peerDependencies": {
|
|
170
170
|
"@wix/bex-core": "^2.284.0",
|
|
171
|
-
"@wix/design-system": "^1.
|
|
171
|
+
"@wix/design-system": "^1.314.0",
|
|
172
172
|
"mobx": "^6.1.8",
|
|
173
173
|
"react": "^16.8.0 || ^18.0.0",
|
|
174
174
|
"react-dom": "^16.8.0 || ^18.0.0"
|
|
@@ -212,5 +212,5 @@
|
|
|
212
212
|
"optional": true
|
|
213
213
|
}
|
|
214
214
|
},
|
|
215
|
-
"falconPackageHash": "
|
|
215
|
+
"falconPackageHash": "772c06391e8c8c0054dd3a1efbcbb58220b2237b346f1b57f9b2ea0f"
|
|
216
216
|
}
|
|
@@ -60,4 +60,26 @@ describe('FormAudio field', () => {
|
|
|
60
60
|
'cairo.fieldValidation.requiredField',
|
|
61
61
|
);
|
|
62
62
|
});
|
|
63
|
+
|
|
64
|
+
// Only the empty state can fail `required`, so its add button is where
|
|
65
|
+
// react-hook-form should land. Nothing focuses a field whose input never
|
|
66
|
+
// reached controller.field.ref.
|
|
67
|
+
it('focuses the add button when a required value blocks submit', async () => {
|
|
68
|
+
const field = makeField({
|
|
69
|
+
type: 'AUDIO',
|
|
70
|
+
validation: { required: true },
|
|
71
|
+
});
|
|
72
|
+
const driver = setup({ field });
|
|
73
|
+
|
|
74
|
+
await driver.submit();
|
|
75
|
+
|
|
76
|
+
const active = document.activeElement;
|
|
77
|
+
expect(active?.tagName).toBe('BUTTON');
|
|
78
|
+
expect(
|
|
79
|
+
document
|
|
80
|
+
.querySelector(`[data-hook="audio-field-${field.id}"]`)
|
|
81
|
+
?.contains(active),
|
|
82
|
+
).toBe(true);
|
|
83
|
+
});
|
|
84
|
+
|
|
63
85
|
});
|
|
@@ -51,4 +51,26 @@ describe('FormDocument field', () => {
|
|
|
51
51
|
'cairo.fieldValidation.requiredField',
|
|
52
52
|
);
|
|
53
53
|
});
|
|
54
|
+
|
|
55
|
+
// Only the empty state can fail `required`, so its add button is where
|
|
56
|
+
// react-hook-form should land. Nothing focuses a field whose input never
|
|
57
|
+
// reached controller.field.ref.
|
|
58
|
+
it('focuses the add button when a required value blocks submit', async () => {
|
|
59
|
+
const field = makeField({
|
|
60
|
+
type: 'DOCUMENT',
|
|
61
|
+
validation: { required: true },
|
|
62
|
+
});
|
|
63
|
+
const driver = setup({ field });
|
|
64
|
+
|
|
65
|
+
await driver.submit();
|
|
66
|
+
|
|
67
|
+
const active = document.activeElement;
|
|
68
|
+
expect(active?.tagName).toBe('BUTTON');
|
|
69
|
+
expect(
|
|
70
|
+
document
|
|
71
|
+
.querySelector(`[data-hook="document-field-${field.id}"]`)
|
|
72
|
+
?.contains(active),
|
|
73
|
+
).toBe(true);
|
|
74
|
+
});
|
|
75
|
+
|
|
54
76
|
});
|
|
@@ -262,14 +262,6 @@ describe('<FormMultiDocumentField/>', () => {
|
|
|
262
262
|
await documentControlActionsTestkit.clickPopoverMenu();
|
|
263
263
|
});
|
|
264
264
|
|
|
265
|
-
const replaceAction =
|
|
266
|
-
await documentControlActionsTestkit.getVisibleActionByDataHookButtonDriver(
|
|
267
|
-
'document-view-replace-action',
|
|
268
|
-
);
|
|
269
|
-
|
|
270
|
-
// no text for the visibleAction so just verify it exists
|
|
271
|
-
expect(await replaceAction.exists()).toBe(true);
|
|
272
|
-
|
|
273
265
|
expect(await secondaryActionsTestKit.isMenuOpen()).toBe(true);
|
|
274
266
|
expect(await secondaryActionsTestKit.itemContentAt(0)).toContain(
|
|
275
267
|
'replace',
|
|
@@ -72,4 +72,26 @@ describe('FormImageInput field', () => {
|
|
|
72
72
|
'cairo.fieldValidation.requiredField',
|
|
73
73
|
);
|
|
74
74
|
});
|
|
75
|
+
|
|
76
|
+
// Only the empty state can fail `required`, so its add button is where
|
|
77
|
+
// react-hook-form should land. Nothing focuses a field whose input never
|
|
78
|
+
// reached controller.field.ref.
|
|
79
|
+
it('focuses the add button when a required value blocks submit', async () => {
|
|
80
|
+
const field = makeField({
|
|
81
|
+
type: 'IMAGE',
|
|
82
|
+
validation: { required: true },
|
|
83
|
+
});
|
|
84
|
+
const driver = setup({ field });
|
|
85
|
+
|
|
86
|
+
await driver.submit();
|
|
87
|
+
|
|
88
|
+
const active = document.activeElement;
|
|
89
|
+
expect(active?.tagName).toBe('BUTTON');
|
|
90
|
+
expect(
|
|
91
|
+
document
|
|
92
|
+
.querySelector(`[data-hook="image-field-${field.id}"]`)
|
|
93
|
+
?.contains(active),
|
|
94
|
+
).toBe(true);
|
|
95
|
+
});
|
|
96
|
+
|
|
75
97
|
});
|
|
@@ -71,4 +71,25 @@ describe('FormMediaGallery field', () => {
|
|
|
71
71
|
|
|
72
72
|
expect(await driver.tk.hasError()).toBe(false);
|
|
73
73
|
});
|
|
74
|
+
|
|
75
|
+
// Only the empty state can fail `required`, so its add button is where
|
|
76
|
+
// react-hook-form should land. Nothing focuses a field whose input never
|
|
77
|
+
// reached controller.field.ref.
|
|
78
|
+
it('focuses the add button when a required value blocks submit', async () => {
|
|
79
|
+
const field = makeField({
|
|
80
|
+
type: 'MEDIA_GALLERY',
|
|
81
|
+
validation: { required: true },
|
|
82
|
+
});
|
|
83
|
+
const driver = setup({ field });
|
|
84
|
+
|
|
85
|
+
await driver.submit();
|
|
86
|
+
|
|
87
|
+
const active = document.activeElement;
|
|
88
|
+
expect(active?.tagName).toBe('BUTTON');
|
|
89
|
+
expect(
|
|
90
|
+
document
|
|
91
|
+
.querySelector(`[data-hook="media-gallery-field-${field.id}"]`)
|
|
92
|
+
?.contains(active),
|
|
93
|
+
).toBe(true);
|
|
94
|
+
});
|
|
74
95
|
});
|
|
@@ -57,4 +57,25 @@ describe('FormMultiDocument field', () => {
|
|
|
57
57
|
'cairo.fieldValidation.requiredField',
|
|
58
58
|
);
|
|
59
59
|
});
|
|
60
|
+
|
|
61
|
+
// Only the empty state can fail `required`, so its add button is where
|
|
62
|
+
// react-hook-form should land. Nothing focuses a field whose input never
|
|
63
|
+
// reached controller.field.ref.
|
|
64
|
+
it('focuses the add button when a required value blocks submit', async () => {
|
|
65
|
+
const field = makeField({
|
|
66
|
+
type: 'MULTI_DOCUMENT',
|
|
67
|
+
validation: { required: true },
|
|
68
|
+
});
|
|
69
|
+
const driver = setup({ field });
|
|
70
|
+
|
|
71
|
+
await driver.submit();
|
|
72
|
+
|
|
73
|
+
const active = document.activeElement;
|
|
74
|
+
expect(active?.tagName).toBe('BUTTON');
|
|
75
|
+
expect(
|
|
76
|
+
document
|
|
77
|
+
.querySelector(`[data-hook="multi-document-field-${field.id}"]`)
|
|
78
|
+
?.contains(active),
|
|
79
|
+
).toBe(true);
|
|
80
|
+
});
|
|
60
81
|
});
|
|
@@ -77,4 +77,26 @@ describe('FormRichContent field', () => {
|
|
|
77
77
|
'cairo.fieldValidation.requiredField',
|
|
78
78
|
);
|
|
79
79
|
});
|
|
80
|
+
|
|
81
|
+
// Ricos is lazy and renders no editable node here, so there is nothing to
|
|
82
|
+
// focus — the wrapper still has to bring the field into view. Without the
|
|
83
|
+
// ref registered, react-hook-form calls nothing at all.
|
|
84
|
+
it('brings the field into view when a required value blocks submit', async () => {
|
|
85
|
+
const scrollIntoView = jest.fn();
|
|
86
|
+
// Not implemented in jsdom.
|
|
87
|
+
Element.prototype.scrollIntoView = scrollIntoView;
|
|
88
|
+
|
|
89
|
+
const field = makeField({
|
|
90
|
+
type: 'RICH_CONTENT',
|
|
91
|
+
validation: { required: true },
|
|
92
|
+
});
|
|
93
|
+
const driver = setup({ field, initialValue: '' });
|
|
94
|
+
|
|
95
|
+
await driver.submit();
|
|
96
|
+
|
|
97
|
+
expect(scrollIntoView).toHaveBeenCalled();
|
|
98
|
+
|
|
99
|
+
delete (Element.prototype as Partial<Element>).scrollIntoView;
|
|
100
|
+
});
|
|
101
|
+
|
|
80
102
|
});
|
|
@@ -76,4 +76,22 @@ describe('FormRichText field', () => {
|
|
|
76
76
|
'cairo.fieldValidation.requiredField',
|
|
77
77
|
);
|
|
78
78
|
});
|
|
79
|
+
|
|
80
|
+
// The editor exposes no focus handle, so react-hook-form gets a wrapper
|
|
81
|
+
// whose focus() brings the field into view and then focuses the editor if
|
|
82
|
+
// it has rendered. Nothing happens at all when the ref is not registered.
|
|
83
|
+
it('focuses the editor when a required value blocks submit', async () => {
|
|
84
|
+
const field = makeField({
|
|
85
|
+
type: 'RICH_TEXT',
|
|
86
|
+
validation: { required: true },
|
|
87
|
+
});
|
|
88
|
+
const driver = setup({ field, initialValue: '' });
|
|
89
|
+
|
|
90
|
+
await driver.submit();
|
|
91
|
+
|
|
92
|
+
const editable = document.querySelector('[contenteditable]');
|
|
93
|
+
expect(editable).toBeTruthy();
|
|
94
|
+
expect(document.activeElement).toBe(editable);
|
|
95
|
+
});
|
|
96
|
+
|
|
79
97
|
});
|
|
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../../stylable-esm-runtime.js"
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var _namespace_ = "
|
|
8
|
+
var _namespace_ = "addressinput249613619";
|
|
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":"addressinput249613619__root","tableAddressInput":"addressinput249613619__tableAddressInput"};
|
|
17
17
|
export var keyframes = {};
|
|
18
18
|
export var layers = {};
|
|
19
19
|
export var containers = {};
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import React
|
|
1
|
+
import React from 'react';
|
|
2
2
|
|
|
3
3
|
import type { Address } from '../../../types/address';
|
|
4
4
|
import type { FormInputProps } from '../../../types/form-input';
|
|
5
5
|
import { Z_INDEX_MODAL_POPOVER } from '../../common';
|
|
6
|
-
import { useAutoFocus } from '../../../hooks';
|
|
6
|
+
import { useAutoFocus, useMergedRef } from '../../../hooks';
|
|
7
7
|
|
|
8
8
|
import type { AddressInputImperativeHandle } from './address-input';
|
|
9
9
|
import { AddressInput } from './address-input';
|
|
@@ -25,28 +25,13 @@ export const FormAddressInput: React.FC<FormAddressInputProps> = ({
|
|
|
25
25
|
dataHook,
|
|
26
26
|
inputRef: forwardedRef,
|
|
27
27
|
}) => {
|
|
28
|
-
const inputRef =
|
|
28
|
+
const [inputRef, setInputRef] =
|
|
29
|
+
useMergedRef<AddressInputImperativeHandle>(forwardedRef);
|
|
29
30
|
useAutoFocus(inputRef, autoFocus);
|
|
30
31
|
|
|
31
|
-
// autoFocus reads the handle from here, so a caller's ref has to be filled
|
|
32
|
-
// alongside it rather than replacing it.
|
|
33
|
-
const setRef = useCallback(
|
|
34
|
-
(handle: AddressInputImperativeHandle | null) => {
|
|
35
|
-
inputRef.current = handle;
|
|
36
|
-
if (typeof forwardedRef === 'function') {
|
|
37
|
-
forwardedRef(handle);
|
|
38
|
-
} else if (forwardedRef) {
|
|
39
|
-
(
|
|
40
|
-
forwardedRef as React.MutableRefObject<AddressInputImperativeHandle | null>
|
|
41
|
-
).current = handle;
|
|
42
|
-
}
|
|
43
|
-
},
|
|
44
|
-
[forwardedRef],
|
|
45
|
-
);
|
|
46
|
-
|
|
47
32
|
return (
|
|
48
33
|
<AddressInput
|
|
49
|
-
ref={
|
|
34
|
+
ref={setInputRef}
|
|
50
35
|
dataHook={dataHook}
|
|
51
36
|
value={data}
|
|
52
37
|
onChange={onChange}
|
|
@@ -5,7 +5,7 @@ import { classesRuntime, statesRuntime } from "../../../../stylable-esm-runtime.
|
|
|
5
5
|
|
|
6
6
|
|
|
7
7
|
|
|
8
|
-
var _namespace_ = "
|
|
8
|
+
var _namespace_ = "actionsmenu101643419";
|
|
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":"actionsmenu101643419__root","action":"actionsmenu101643419__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_ = "formaudiofield606935778";
|
|
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":"formaudiofield606935778__root","addItem":"formaudiofield606935778__addItem","mediaTitle":"formaudiofield606935778__mediaTitle"};
|
|
17
17
|
export var keyframes = {};
|
|
18
18
|
export var layers = {};
|
|
19
19
|
export var containers = {};
|
|
@@ -5,7 +5,7 @@ import { getMediaURL } from '../../../auto-field-types';
|
|
|
5
5
|
import type { AddItemActions } from '@wix/design-system';
|
|
6
6
|
import { AddItem, AudioPlayer, Box, Text } from '@wix/design-system';
|
|
7
7
|
|
|
8
|
-
import { useTranslations, useWithCallback } from '../../../hooks';
|
|
8
|
+
import { useMergedRef, useTranslations, useWithCallback } from '../../../hooks';
|
|
9
9
|
import { getMediaTitle, MEDIA_TYPES } from '../../../utils';
|
|
10
10
|
|
|
11
11
|
import { Z_INDEX_MODAL_POPOVER } from '../../common';
|
|
@@ -26,13 +26,14 @@ export const FormAudioField: FC<FormMediaControlProps> = ({
|
|
|
26
26
|
readOnly,
|
|
27
27
|
invalid,
|
|
28
28
|
dataHook,
|
|
29
|
+
inputRef: forwardedRef,
|
|
29
30
|
}) => {
|
|
30
31
|
const { t } = useTranslations();
|
|
31
32
|
|
|
32
33
|
const onChange = useWithCallback(onChangeAudio, onInput);
|
|
33
34
|
const onClear = useWithCallback(onClearAudio, onInput);
|
|
34
35
|
|
|
35
|
-
const inputRef =
|
|
36
|
+
const [inputRef, setInputRef] = useMergedRef<AddItemActions>(forwardedRef);
|
|
36
37
|
const viewRef = useRef<HTMLDivElement>(null);
|
|
37
38
|
|
|
38
39
|
const { callMedia, onMediaLoad, downloadMedia, loading } = useMediaControl({
|
|
@@ -91,7 +92,7 @@ export const FormAudioField: FC<FormMediaControlProps> = ({
|
|
|
91
92
|
if (!data) {
|
|
92
93
|
return (
|
|
93
94
|
<AddItem
|
|
94
|
-
ref={
|
|
95
|
+
ref={setInputRef}
|
|
95
96
|
dataHook={dataHook}
|
|
96
97
|
className={style(classes.addItem, {
|
|
97
98
|
disabled: !!readOnly,
|
|
@@ -39,6 +39,10 @@ const _FormAudio = (props: FormAudioProps) => {
|
|
|
39
39
|
dataHook={dataHook}
|
|
40
40
|
>
|
|
41
41
|
<FormAudioField
|
|
42
|
+
// Hand the add button to react-hook-form so
|
|
43
|
+
// shouldFocusError scrolls to + focuses this field when it
|
|
44
|
+
// blocks save.
|
|
45
|
+
inputRef={controller.field.ref}
|
|
42
46
|
data={controller.field.value}
|
|
43
47
|
onChange={(value) => controller.field.onChange(value)}
|
|
44
48
|
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_ = "audioplayer2613344239";
|
|
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":"audioplayer2613344239__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_ = "cellcolorview1178629535";
|
|
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":"cellcolorview1178629535__root","hashPrefix":"cellcolorview1178629535__hashPrefix"};
|
|
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_ = "colorview2624366234";
|
|
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":"colorview2624366234__root","view":"colorview2624366234__view","fillPreview":"colorview2624366234__fillPreview"};
|
|
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_ = "deletedialog1579435053";
|
|
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":"deletedialog1579435053__root","layout":"deletedialog1579435053__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_ = "formdocumentfield3894914095";
|
|
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":"formdocumentfield3894914095__root","viewWrapper":"formdocumentfield3894914095__viewWrapper","textWidth":"formdocumentfield3894914095__textWidth","documentLoader":"formdocumentfield3894914095__documentLoader","addDocument":"formdocumentfield3894914095__addDocument","addItemWrapper":"formdocumentfield3894914095__addItemWrapper"};
|
|
17
17
|
export var keyframes = {};
|
|
18
18
|
export var layers = {};
|
|
19
19
|
export var containers = {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { useRef } from 'react';
|
|
2
2
|
|
|
3
3
|
import { MEDIA_TYPES } from '../../utils/media-utils';
|
|
4
|
-
import { useTranslations, useWithCallback } from '../../hooks';
|
|
4
|
+
import { useMergedRef, useTranslations, useWithCallback } from '../../hooks';
|
|
5
5
|
import type { AddItemActions } from '@wix/design-system';
|
|
6
6
|
|
|
7
7
|
import type { FormMediaControlProps } from '../media-control';
|
|
@@ -26,13 +26,14 @@ export const FormDocumentField: React.FC<FormMediaControlProps> = ({
|
|
|
26
26
|
readOnly,
|
|
27
27
|
invalid,
|
|
28
28
|
dataHook,
|
|
29
|
+
inputRef: forwardedRef,
|
|
29
30
|
}) => {
|
|
30
31
|
const { t } = useTranslations();
|
|
31
32
|
|
|
32
33
|
const onChange = useWithCallback(onChangeDocument, onInput);
|
|
33
34
|
const onClear = useWithCallback(onClearDocument, onInput);
|
|
34
35
|
|
|
35
|
-
const inputRef =
|
|
36
|
+
const [inputRef, setInputRef] = useMergedRef<AddItemActions>(forwardedRef);
|
|
36
37
|
const viewRef = useRef<HTMLDivElement>(null);
|
|
37
38
|
|
|
38
39
|
const { callMedia, loading, downloadMedia } = useMediaControl({
|
|
@@ -54,7 +55,7 @@ export const FormDocumentField: React.FC<FormMediaControlProps> = ({
|
|
|
54
55
|
{!data ? (
|
|
55
56
|
<FormDocumentInput
|
|
56
57
|
dataHook={dataHook}
|
|
57
|
-
ref={
|
|
58
|
+
ref={setInputRef}
|
|
58
59
|
theme="dashes"
|
|
59
60
|
disabled={readOnly}
|
|
60
61
|
loading={loading}
|
|
@@ -39,6 +39,10 @@ const _FormDocument = (props: FormDocumentProps) => {
|
|
|
39
39
|
dataHook={dataHook}
|
|
40
40
|
>
|
|
41
41
|
<FormDocumentField
|
|
42
|
+
// Hand the add button to react-hook-form so
|
|
43
|
+
// shouldFocusError scrolls to + focuses this field when it
|
|
44
|
+
// blocks save.
|
|
45
|
+
inputRef={controller.field.ref}
|
|
42
46
|
data={controller.field.value}
|
|
43
47
|
onChange={(value) => controller.field.onChange(value)}
|
|
44
48
|
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_ = "exclamation2180886733";
|
|
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":"exclamation2180886733__root","exclamation":"exclamation2180886733__exclamation","actions":"exclamation2180886733__actions","action":"exclamation2180886733__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_ = "highlightedtext3218260618";
|
|
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":"highlightedtext3218260618__root","substring":"highlightedtext3218260618__substring"};
|
|
17
|
+
export var keyframes = {"highlighted":"highlightedtext3218260618__highlighted","highlighted-match":"highlightedtext3218260618__highlighted-match"};
|
|
18
18
|
export var layers = {};
|
|
19
19
|
export var containers = {};
|
|
20
20
|
export var stVars = {};
|