@feathery/react 2.6.8 → 2.8.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/Form/components/{AIExtractionToast/ExtractionItem.d.ts → ActionToast/ToastItem.d.ts} +6 -6
- package/dist/Form/components/ActionToast/ToastItem.d.ts.map +1 -0
- package/dist/Form/components/{AIExtractionToast → ActionToast}/icons.d.ts +7 -7
- package/dist/Form/components/ActionToast/icons.d.ts.map +1 -0
- package/dist/Form/components/ActionToast/index.d.ts +8 -0
- package/dist/Form/components/ActionToast/index.d.ts.map +1 -0
- package/dist/Form/components/{AIExtractionToast → ActionToast}/useAIExtractionToast.d.ts +72 -64
- package/dist/Form/components/ActionToast/useAIExtractionToast.d.ts.map +1 -0
- package/dist/Form/components/ActionToast/useEnvelopeGenerationToast.d.ts +20 -0
- package/dist/Form/components/ActionToast/useEnvelopeGenerationToast.d.ts.map +1 -0
- package/dist/Form/components/DevNavBar.d.ts +1 -1
- package/dist/Form/components/ReactPortal.d.ts +2 -2
- package/dist/Form/definitions.d.ts +40 -40
- package/dist/Form/grid/CalendlyEmbed.d.ts +1 -1
- package/dist/Form/grid/Container/index.d.ts +19 -19
- package/dist/Form/grid/Element/index.d.ts +2 -2
- package/dist/Form/grid/Element/utils/address.d.ts +3 -3
- package/dist/Form/grid/Element/utils/utils.d.ts +13 -13
- package/dist/Form/grid/StyledContainer/hooks/index.d.ts +20 -20
- package/dist/Form/grid/StyledContainer/hooks/useFixedContainer.d.ts +1 -1
- package/dist/Form/grid/StyledContainer/index.d.ts +21 -21
- package/dist/Form/grid/StyledContainer/styles.d.ts +5 -5
- package/dist/Form/grid/StyledContainer/transform.d.ts +4 -4
- package/dist/Form/grid/StyledContainer/utils.d.ts +44 -44
- package/dist/Form/grid/index.d.ts +2 -2
- package/dist/Form/hooks/useCheckButtonAction.d.ts +6 -6
- package/dist/Form/hooks/useTrackUserInteraction.d.ts +2 -2
- package/dist/Form/index.d.ts +52 -52
- package/dist/Form/index.d.ts.map +1 -1
- package/dist/Form/logic.d.ts +10 -10
- package/dist/Form/tests/testMocks.d.ts +6 -6
- package/dist/auth/LoginError.d.ts +3 -3
- package/dist/auth/LoginForm.d.ts +29 -29
- package/dist/auth/internal/AuthIntegrationInterface.d.ts +31 -31
- package/dist/auth/internal/useFormAuth.d.ts +10 -10
- package/dist/auth/internal/utils.d.ts +13 -13
- package/dist/auth/useAuthClient.d.ts +2 -2
- package/dist/auth/utils.d.ts +1 -1
- package/dist/elements/basic/ButtonElement.d.ts +2 -2
- package/dist/elements/basic/ImageElement.d.ts +3 -3
- package/dist/elements/basic/ProgressBarElement/components/SegmentBar.d.ts +2 -2
- package/dist/elements/basic/ProgressBarElement/components/SmoothBar.d.ts +2 -2
- package/dist/elements/basic/ProgressBarElement/index.d.ts +2 -2
- package/dist/elements/basic/TextElement.d.ts +2 -2
- package/dist/elements/basic/VideoElement.d.ts +2 -2
- package/dist/elements/components/ErrorInput.d.ts +2 -2
- package/dist/elements/components/FormControl.d.ts +10 -10
- package/dist/elements/components/FormOff.d.ts +10 -10
- package/dist/elements/components/InlineTooltip.d.ts +11 -11
- package/dist/elements/components/LoaderContainer.d.ts +10 -10
- package/dist/elements/components/Lottie.d.ts +2 -2
- package/dist/elements/components/Overlay.d.ts +15 -15
- package/dist/elements/components/Placeholder.d.ts +1 -1
- package/dist/elements/components/QuikFormViewer/transforms/form.d.ts +1 -1
- package/dist/elements/components/QuikFormViewer/transforms/header.d.ts +1 -1
- package/dist/elements/components/QuikFormViewer/transforms/sidebar.d.ts +6 -6
- package/dist/elements/components/QuikFormViewer.d.ts +9 -9
- package/dist/elements/components/Spinner.d.ts +4 -4
- package/dist/elements/components/TextHoverTooltip.d.ts +8 -8
- package/dist/elements/components/TextNodes.d.ts +4 -4
- package/dist/elements/components/Tooltip.d.ts +7 -7
- package/dist/elements/components/Watermark.d.ts +1 -1
- package/dist/elements/components/data/countries.d.ts +14 -14
- package/dist/elements/components/data/states/ae.d.ts +5 -5
- package/dist/elements/components/data/states/au.d.ts +5 -5
- package/dist/elements/components/data/states/br.d.ts +5 -5
- package/dist/elements/components/data/states/ca.d.ts +5 -5
- package/dist/elements/components/data/states/cl.d.ts +5 -5
- package/dist/elements/components/data/states/cn.d.ts +5 -5
- package/dist/elements/components/data/states/co.d.ts +5 -5
- package/dist/elements/components/data/states/eg.d.ts +5 -5
- package/dist/elements/components/data/states/es.d.ts +5 -5
- package/dist/elements/components/data/states/gb.d.ts +5 -5
- package/dist/elements/components/data/states/gt.d.ts +5 -5
- package/dist/elements/components/data/states/hk.d.ts +5 -5
- package/dist/elements/components/data/states/id.d.ts +5 -5
- package/dist/elements/components/data/states/ie.d.ts +5 -5
- package/dist/elements/components/data/states/in.d.ts +5 -5
- package/dist/elements/components/data/states/index.d.ts +6 -6
- package/dist/elements/components/data/states/it.d.ts +5 -5
- package/dist/elements/components/data/states/jp.d.ts +5 -5
- package/dist/elements/components/data/states/kr.d.ts +5 -5
- package/dist/elements/components/data/states/mx.d.ts +5 -5
- package/dist/elements/components/data/states/my.d.ts +5 -5
- package/dist/elements/components/data/states/ng.d.ts +5 -5
- package/dist/elements/components/data/states/nz.d.ts +5 -5
- package/dist/elements/components/data/states/pa.d.ts +5 -5
- package/dist/elements/components/data/states/pe.d.ts +5 -5
- package/dist/elements/components/data/states/ph.d.ts +5 -5
- package/dist/elements/components/data/states/pt.d.ts +5 -5
- package/dist/elements/components/data/states/ro.d.ts +5 -5
- package/dist/elements/components/data/states/ru.d.ts +5 -5
- package/dist/elements/components/data/states/th.d.ts +5 -5
- package/dist/elements/components/data/states/us.d.ts +9 -9
- package/dist/elements/components/data/states/za.d.ts +5 -5
- package/dist/elements/components/icons/Close.d.ts +6 -6
- package/dist/elements/components/icons/DiagonalArrow.d.ts +5 -5
- package/dist/elements/components/icons/DownloadIcon.d.ts +4 -4
- package/dist/elements/components/icons/FileUpload.d.ts +1 -1
- package/dist/elements/components/icons/FormClosed.d.ts +5 -5
- package/dist/elements/components/icons/Heart.d.ts +1 -1
- package/dist/elements/components/icons/Help.d.ts +4 -4
- package/dist/elements/components/icons/HideEyeIcon.d.ts +5 -5
- package/dist/elements/components/icons/LeftChevron.d.ts +1 -1
- package/dist/elements/components/icons/RatingStar.d.ts +1 -1
- package/dist/elements/components/icons/RightChevron.d.ts +1 -1
- package/dist/elements/components/icons/ShowEyeIcon.d.ts +5 -5
- package/dist/elements/components/icons/Warning.d.ts +5 -5
- package/dist/elements/components/icons/index.d.ts +11 -11
- package/dist/elements/components/skeletons/FieldSkeleton.d.ts +7 -7
- package/dist/elements/components/useBorder.d.ts +21 -21
- package/dist/elements/components/useTextEdit.d.ts +6 -5
- package/dist/elements/components/useTextEdit.d.ts.map +1 -1
- package/dist/elements/fields/AddressLine1Field/index.d.ts +4 -4
- package/dist/elements/fields/AddressLine1Field/tests/test-utils.d.ts +34 -34
- package/dist/elements/fields/AddressLine1Field/utils.d.ts +2 -2
- package/dist/elements/fields/ButtonGroupField/index.d.ts +2 -2
- package/dist/elements/fields/ButtonGroupField/tests/test-utils.d.ts +46 -46
- package/dist/elements/fields/CheckboxField/index.d.ts +5 -5
- package/dist/elements/fields/CheckboxField/tests/test-utils.d.ts +20 -20
- package/dist/elements/fields/CheckboxGroupField/index.d.ts +2 -2
- package/dist/elements/fields/CheckboxGroupField/tests/test-utils.d.ts +60 -60
- package/dist/elements/fields/ColorPickerField/index.d.ts +2 -2
- package/dist/elements/fields/ColorPickerField/tests/test-utils.d.ts +21 -21
- package/dist/elements/fields/CustomField/Status.d.ts +8 -8
- package/dist/elements/fields/CustomField/index.d.ts +3 -3
- package/dist/elements/fields/CustomField/template.d.ts +1 -1
- package/dist/elements/fields/CustomField/useCustomComponentIframe.d.ts +15 -15
- package/dist/elements/fields/DateSelectorField/index.d.ts +22 -22
- package/dist/elements/fields/DateSelectorField/index.d.ts.map +1 -1
- package/dist/elements/fields/DateSelectorField/styles.d.ts +4 -4
- package/dist/elements/fields/DateSelectorField/tests/test-utils.d.ts +74 -74
- package/dist/elements/fields/DateSelectorField/useDateLocale.d.ts +7 -7
- package/dist/elements/fields/DateSelectorField/utils.d.ts +3 -3
- package/dist/elements/fields/DropdownField/index.d.ts +1 -1
- package/dist/elements/fields/DropdownField/tests/test-utils.d.ts +28 -28
- package/dist/elements/fields/DropdownMultiField/DropdownMultiFieldSelectComponents.d.ts +8 -8
- package/dist/elements/fields/DropdownMultiField/createDropdownSelect.d.ts +190 -190
- package/dist/elements/fields/DropdownMultiField/index.d.ts +1 -1
- package/dist/elements/fields/DropdownMultiField/optionNormalization.d.ts +9 -9
- package/dist/elements/fields/DropdownMultiField/selectStyles.d.ts +12 -12
- package/dist/elements/fields/DropdownMultiField/tests/test-utils.d.ts +47 -47
- package/dist/elements/fields/DropdownMultiField/types.d.ts +49 -49
- package/dist/elements/fields/DropdownMultiField/useCollapsedSelectionManager.d.ts +46 -46
- package/dist/elements/fields/DropdownMultiField/useCollapsedValuesMeasurement.d.ts +19 -19
- package/dist/elements/fields/DropdownMultiField/useDropdownInteractions.d.ts +46 -46
- package/dist/elements/fields/DropdownMultiField/useDropdownOptions.d.ts +24 -24
- package/dist/elements/fields/DropdownMultiField/useSelectProps.d.ts +112 -112
- package/dist/elements/fields/FileUploadField/index.d.ts +2 -2
- package/dist/elements/fields/FileUploadField/tests/test-utils.d.ts +10 -10
- package/dist/elements/fields/MatrixField/index.d.ts +2 -2
- package/dist/elements/fields/MatrixField/tests/test-utils.d.ts +67 -67
- package/dist/elements/fields/PasswordField/index.d.ts +4 -4
- package/dist/elements/fields/PasswordField/tests/test-utils.d.ts +30 -30
- package/dist/elements/fields/PaymentMethodField.d.ts +4 -4
- package/dist/elements/fields/PhoneField/CountryDropdown.d.ts +3 -3
- package/dist/elements/fields/PhoneField/exampleNumbers.d.ts +2 -2
- package/dist/elements/fields/PhoneField/index.d.ts +4 -4
- package/dist/elements/fields/PhoneField/tests/test-utils.d.ts +86 -86
- package/dist/elements/fields/PhoneField/timeZoneCountries.d.ts +4 -4
- package/dist/elements/fields/PhoneField/validation.d.ts +3 -3
- package/dist/elements/fields/PinInputField/index.d.ts +2 -2
- package/dist/elements/fields/PinInputField/tests/test-utils.d.ts +79 -79
- package/dist/elements/fields/PinInputField/useOTPListener.d.ts +1 -1
- package/dist/elements/fields/QRScanner/constants.d.ts +14 -14
- package/dist/elements/fields/QRScanner/hooks/use-device-rotation.d.ts +11 -11
- package/dist/elements/fields/QRScanner/index.d.ts +2 -2
- package/dist/elements/fields/QRScanner/qrLoader.d.ts +2 -2
- package/dist/elements/fields/QRScanner/utils/local-storage.d.ts +5 -5
- package/dist/elements/fields/QRScanner/utils/select-camera.d.ts +9 -9
- package/dist/elements/fields/QRScanner/utils/supports-zoom.d.ts +8 -8
- package/dist/elements/fields/RadioButtonGroupField/index.d.ts +2 -2
- package/dist/elements/fields/RadioButtonGroupField/tests/test-utils.d.ts +55 -55
- package/dist/elements/fields/RatingField/index.d.ts +1 -1
- package/dist/elements/fields/RatingField/tests/test-utils.d.ts +22 -22
- package/dist/elements/fields/SignatureField/components/SignatureCanvas.d.ts +22 -22
- package/dist/elements/fields/SignatureField/components/SignatureModal.d.ts +12 -12
- package/dist/elements/fields/SignatureField/components/utils.d.ts +10 -10
- package/dist/elements/fields/SignatureField/index.d.ts +3 -3
- package/dist/elements/fields/SignatureField/translation.d.ts +17 -17
- package/dist/elements/fields/SliderField/index.d.ts +1 -1
- package/dist/elements/fields/SliderField/styles.d.ts +3 -3
- package/dist/elements/fields/SliderField/tests/test-utils.d.ts +22 -22
- package/dist/elements/fields/TextArea/index.d.ts +4 -4
- package/dist/elements/fields/TextArea/tests/test-utils.d.ts +10 -10
- package/dist/elements/fields/TextField/TextAutocomplete.d.ts +15 -15
- package/dist/elements/fields/TextField/index.d.ts +4 -4
- package/dist/elements/fields/TextField/index.d.ts.map +1 -1
- package/dist/elements/fields/TextField/tests/test-utils.d.ts +10 -10
- package/dist/elements/fields/index.d.ts +27 -26
- package/dist/elements/fields/index.d.ts.map +1 -1
- package/dist/elements/fields/shared/tests/field-test-utils.d.ts +51 -51
- package/dist/elements/index.d.ts +36 -36
- package/dist/elements/styles.d.ts +64 -64
- package/dist/elements/utils/fieldNormalization.d.ts +12 -12
- package/dist/fthry_FormControl.CPHJNRoq.js +16 -0
- package/dist/fthry_InlineTooltip.AGcWhuhV.js +53 -0
- package/dist/fthry_Overlay.X0blINpo.js +228 -0
- package/dist/fthry_PaymentMethodField.DrAgJBPV.js +928 -0
- package/dist/fthry_Placeholder.DLtEoCLC.js +14 -0
- package/dist/fthry_ShowEyeIcon.CkEvtp1W.js +13 -0
- package/dist/fthry_index.BFrZ_89I.js +251 -0
- package/dist/fthry_index.BVM6mIvX.js +73 -0
- package/dist/fthry_index.B_soCJRW.js +1193 -0
- package/dist/fthry_index.BrWMLV_p.js +35 -0
- package/dist/fthry_index.CFbW8L20.js +42 -0
- package/dist/fthry_index.CWt9W3bv.js +95 -0
- package/dist/fthry_index.Cfk_0HTE.js +2000 -0
- package/dist/fthry_index.CjUraQwq.js +888 -0
- package/dist/fthry_index.D99W7p5a.js +293 -0
- package/dist/fthry_index.DAGDZi5r.js +97 -0
- package/dist/fthry_index.DV1PqB3d.js +138 -0
- package/dist/fthry_index.DWyfWu2d.js +216 -0
- package/dist/fthry_index.DaFYDmA_.js +15921 -0
- package/dist/fthry_index.DghPMqyH.js +8166 -0
- package/dist/fthry_index.DodXvrXD.js +98 -0
- package/dist/fthry_index.DohTu1v2.js +46 -0
- package/dist/fthry_index.F6BXSHA5.js +61120 -0
- package/dist/fthry_index.KRksei8j.js +513 -0
- package/dist/fthry_index.dYsdCe_k.js +1427 -0
- package/dist/fthry_index.lC0Xyh-d.js +1162 -0
- package/dist/fthry_index.mE9gZkgT.js +55 -0
- package/dist/fthry_index.rtVAtURz.js +1452 -0
- package/dist/fthry_index.uvWVc7KJ.js +131 -0
- package/dist/fthry_input.Bfzc5hmV.js +3779 -0
- package/dist/fthry_script.cAr9Z1Ke.js +157 -0
- package/dist/fthry_styles.yVoSvBEy.js +1654 -0
- package/dist/fthry_useElementSize.D3n9DgQ-.js +51 -0
- package/dist/fthry_useSalesforceSync.prWuB8V7.js +44 -0
- package/dist/fthry_webfontloader.DyMoLGZ3.js +57 -0
- package/dist/hooks/router.d.ts +14 -14
- package/dist/hooks/useElementSize.d.ts +7 -7
- package/dist/hooks/useLoader.d.ts +35 -35
- package/dist/hooks/useMounted.d.ts +2 -2
- package/dist/hooks/usePollFuserData.d.ts +1 -1
- package/dist/hooks/usePrevious.d.ts +2 -2
- package/dist/hooks/useSalesforceSync.d.ts +10 -10
- package/dist/index.d.ts +150 -149
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +9 -1
- package/dist/integrations/alloy.d.ts +2 -2
- package/dist/integrations/amplitude.d.ts +1 -1
- package/dist/integrations/argyle.d.ts +2 -2
- package/dist/integrations/calendly.d.ts +2 -2
- package/dist/integrations/firebase.d.ts +42 -42
- package/dist/integrations/flinks/index.d.ts +10 -10
- package/dist/integrations/flinks/utils.d.ts +12 -12
- package/dist/integrations/googleAnalytics.d.ts +3 -3
- package/dist/integrations/googleTagManager.d.ts +1 -1
- package/dist/integrations/heap.d.ts +2 -2
- package/dist/integrations/intercom.d.ts +2 -2
- package/dist/integrations/mixpanel.d.ts +2 -2
- package/dist/integrations/persona.d.ts +2 -2
- package/dist/integrations/plaid.d.ts +2 -2
- package/dist/integrations/recaptcha.d.ts +2 -2
- package/dist/integrations/rudderstack.d.ts +3 -3
- package/dist/integrations/schwab.d.ts +1 -1
- package/dist/integrations/segment.d.ts +1 -1
- package/dist/integrations/stripe/Cart.d.ts +19 -19
- package/dist/integrations/stripe/SimplifiedProduct.d.ts +39 -39
- package/dist/integrations/stripe/index.d.ts +1 -1
- package/dist/integrations/stripe/stripe.d.ts +97 -97
- package/dist/integrations/stytch.d.ts +19 -19
- package/dist/integrations/trustedform.d.ts +2 -2
- package/dist/integrations/utils.d.ts +14 -14
- package/dist/setupTests.d.ts +1 -1
- package/dist/types/Form.d.ts +80 -80
- package/dist/utils/DangerouslySetHTMLContent.d.ts +2 -2
- package/dist/utils/ShadowDomHtmlContent.d.ts +8 -8
- package/dist/utils/array.d.ts +11 -11
- package/dist/utils/browser.d.ts +23 -23
- package/dist/utils/callbackQueue.d.ts +10 -10
- package/dist/utils/document.d.ts +1 -1
- package/dist/utils/elementActions.d.ts +55 -55
- package/dist/utils/entities/Collaborator.d.ts +14 -14
- package/dist/utils/entities/Field.d.ts +129 -129
- package/dist/utils/error.d.ts +13 -13
- package/dist/utils/featheryClient/index.d.ts +103 -103
- package/dist/utils/featheryClient/integrationClient.d.ts +114 -114
- package/dist/utils/featheryClient/utils.d.ts +1 -1
- package/dist/utils/fieldHelperFunctions.d.ts +70 -70
- package/dist/utils/formContext.d.ts +104 -104
- package/dist/utils/formHelperFunctions.d.ts +44 -44
- package/dist/utils/hideAndRepeats.d.ts +27 -27
- package/dist/utils/hydration.d.ts +14 -14
- package/dist/utils/image.d.ts +39 -39
- package/dist/utils/init.d.ts +59 -59
- package/dist/utils/init.d.ts.map +1 -1
- package/dist/utils/interactionState.d.ts +4 -4
- package/dist/utils/internalState.d.ts +91 -91
- package/dist/utils/logic.d.ts +50 -50
- package/dist/utils/offlineRequestHandler.d.ts +94 -94
- package/dist/utils/polyfills.d.ts +2 -2
- package/dist/utils/primitives.d.ts +14 -14
- package/dist/utils/random.d.ts +1 -1
- package/dist/utils/repeat.d.ts +38 -38
- package/dist/utils/sensitiveActions.d.ts +7 -7
- package/dist/utils/stepHelperFunctions.d.ts +22 -22
- package/dist/utils/styles.d.ts +5 -5
- package/dist/utils/validation.d.ts +58 -58
- package/package.json +18 -5
- package/umd/466.e3456c8b3407ad04ba56.js +1 -0
- package/umd/{DateSelectorField.b98c0ecb80f56e65cc69.js → DateSelectorField.bd5646949de71f571d04.js} +1 -1
- package/umd/{TextField.a3d8d42f6f8236d00f83.js → TextField.5a5296fe3ea60c4459f2.js} +1 -1
- package/umd/index.js +1 -1
- package/dist/Form/components/AIExtractionToast/ExtractionItem.d.ts.map +0 -1
- package/dist/Form/components/AIExtractionToast/icons.d.ts.map +0 -1
- package/dist/Form/components/AIExtractionToast/index.d.ts +0 -9
- package/dist/Form/components/AIExtractionToast/index.d.ts.map +0 -1
- package/dist/Form/components/AIExtractionToast/useAIExtractionToast.d.ts.map +0 -1
- package/umd/796.e66d52ea21ef09c4eeaa.js +0 -1
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
import { t as __rest, b as jsx, a as __assign, k as FORM_Z_INDEX, _ as __read, s as featheryDoc, l as featheryWindow, m as Fragment } from './fthry_index.F6BXSHA5.js';
|
|
2
|
+
import { useRef, useState, useCallback, useLayoutEffect, useEffect } from 'react';
|
|
3
|
+
import { createPortal } from 'react-dom';
|
|
4
|
+
|
|
5
|
+
var Tooltip = function (_a) {
|
|
6
|
+
var children = _a.children, css = _a.css, props = __rest(_a, ["children", "css"]);
|
|
7
|
+
return (jsx("div", __assign({ css: __assign({ zIndex: FORM_Z_INDEX + 1, padding: '.4rem 0', transition: 'opacity .10s linear', '.tooltip-inner': {
|
|
8
|
+
maxWidth: '200px',
|
|
9
|
+
padding: '.25rem .5rem',
|
|
10
|
+
color: '#fff',
|
|
11
|
+
textAlign: 'center',
|
|
12
|
+
backgroundColor: '#000',
|
|
13
|
+
borderRadius: '.25rem',
|
|
14
|
+
fontSize: 'smaller'
|
|
15
|
+
} }, css) }, props, { children: jsx("div", __assign({ className: 'tooltip-inner' }, { children: children })) })));
|
|
16
|
+
};
|
|
17
|
+
|
|
18
|
+
var Overlay = function (_a) {
|
|
19
|
+
var show = _a.show, targetRef = _a.targetRef, children = _a.children, onHide = _a.onHide, _b = _a.placement, placement = _b === void 0 ? 'bottom-start' : _b, _c = _a.offset, offset = _c === void 0 ? 0 : _c, _d = _a.zIndex, zIndex = _d === void 0 ? 1000 : _d, containerRef = _a.containerRef;
|
|
20
|
+
var ref = useRef(null);
|
|
21
|
+
var _e = __read(useState(null), 2), position = _e[0], setPosition = _e[1];
|
|
22
|
+
var getContainer = useCallback(function () {
|
|
23
|
+
return (containerRef === null || containerRef === void 0 ? void 0 : containerRef.current) || featheryDoc().body;
|
|
24
|
+
}, [containerRef]);
|
|
25
|
+
var recalcPosition = useCallback(function () {
|
|
26
|
+
var _a;
|
|
27
|
+
if (!show || !targetRef.current || !ref.current)
|
|
28
|
+
return;
|
|
29
|
+
var window = featheryWindow();
|
|
30
|
+
var container = getContainer();
|
|
31
|
+
if (!container)
|
|
32
|
+
return;
|
|
33
|
+
var targetRect = targetRef.current.getBoundingClientRect();
|
|
34
|
+
var overlayRect = ref.current.getBoundingClientRect();
|
|
35
|
+
var containerRect = container.getBoundingClientRect();
|
|
36
|
+
var _b = calcPosition(placement, targetRect, overlayRect, offset), top = _b.top, left = _b.left;
|
|
37
|
+
// Flip if it doesn’t fit
|
|
38
|
+
var overlayBottom = top + overlayRect.height;
|
|
39
|
+
var overlayRight = left + overlayRect.width;
|
|
40
|
+
var fitsVertically = top >= 0 && overlayBottom <= window.innerHeight;
|
|
41
|
+
var fitsHorizontally = left >= 0 && overlayRight <= window.innerWidth;
|
|
42
|
+
if (!fitsVertically || !fitsHorizontally) {
|
|
43
|
+
var flipped = getFlippedPlacement(placement, !fitsVertically, !fitsHorizontally);
|
|
44
|
+
if (flipped !== placement) {
|
|
45
|
+
(_a = calcPosition(flipped, targetRect, overlayRect, offset), top = _a.top, left = _a.left);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
var isBodyContainer = container === featheryDoc().body;
|
|
49
|
+
var finalTop = isBodyContainer
|
|
50
|
+
? top + window.scrollY
|
|
51
|
+
: top - containerRect.top;
|
|
52
|
+
var finalLeft = isBodyContainer
|
|
53
|
+
? left + window.scrollX
|
|
54
|
+
: left - containerRect.left;
|
|
55
|
+
setPosition(function (prev) {
|
|
56
|
+
if (!prev || prev.top !== finalTop || prev.left !== finalLeft) {
|
|
57
|
+
return { top: finalTop, left: finalLeft };
|
|
58
|
+
}
|
|
59
|
+
return prev;
|
|
60
|
+
});
|
|
61
|
+
}, [show, placement, offset, getContainer, targetRef]);
|
|
62
|
+
var throttledRecalc = useCallback(function () {
|
|
63
|
+
var ticking = false;
|
|
64
|
+
return function () {
|
|
65
|
+
if (!ticking) {
|
|
66
|
+
ticking = true;
|
|
67
|
+
requestAnimationFrame(function () {
|
|
68
|
+
recalcPosition();
|
|
69
|
+
ticking = false;
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
};
|
|
73
|
+
}, [recalcPosition])();
|
|
74
|
+
useLayoutEffect(function () {
|
|
75
|
+
if (show)
|
|
76
|
+
recalcPosition();
|
|
77
|
+
}, [show, recalcPosition]);
|
|
78
|
+
useEffect(function () {
|
|
79
|
+
if (!show)
|
|
80
|
+
return;
|
|
81
|
+
var window = featheryWindow();
|
|
82
|
+
var container = getContainer();
|
|
83
|
+
if (!container)
|
|
84
|
+
return;
|
|
85
|
+
window.addEventListener('resize', throttledRecalc);
|
|
86
|
+
window.addEventListener('scroll', throttledRecalc, true);
|
|
87
|
+
if (container !== featheryDoc().body) {
|
|
88
|
+
container.addEventListener('scroll', throttledRecalc);
|
|
89
|
+
}
|
|
90
|
+
var resizeObserver = new ResizeObserver(function () { return throttledRecalc(); });
|
|
91
|
+
if (targetRef.current)
|
|
92
|
+
resizeObserver.observe(targetRef.current);
|
|
93
|
+
if (container !== featheryDoc().body)
|
|
94
|
+
resizeObserver.observe(container);
|
|
95
|
+
return function () {
|
|
96
|
+
window.removeEventListener('resize', throttledRecalc);
|
|
97
|
+
window.removeEventListener('scroll', throttledRecalc, true);
|
|
98
|
+
if (container !== featheryDoc().body) {
|
|
99
|
+
container.removeEventListener('scroll', throttledRecalc);
|
|
100
|
+
}
|
|
101
|
+
resizeObserver.disconnect();
|
|
102
|
+
};
|
|
103
|
+
}, [show, throttledRecalc, getContainer, targetRef]);
|
|
104
|
+
useEffect(function () {
|
|
105
|
+
if (!show)
|
|
106
|
+
return;
|
|
107
|
+
var handleKeyDown = function (event) {
|
|
108
|
+
if (event.key === 'Escape') {
|
|
109
|
+
setPosition(null);
|
|
110
|
+
onHide === null || onHide === void 0 ? void 0 : onHide();
|
|
111
|
+
}
|
|
112
|
+
};
|
|
113
|
+
var handleClickOutside = function (event) {
|
|
114
|
+
var target = event.target;
|
|
115
|
+
if (ref.current &&
|
|
116
|
+
!ref.current.contains(target) &&
|
|
117
|
+
targetRef.current &&
|
|
118
|
+
!targetRef.current.contains(target)) {
|
|
119
|
+
setPosition(null);
|
|
120
|
+
onHide === null || onHide === void 0 ? void 0 : onHide();
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
var doc = featheryDoc();
|
|
124
|
+
doc.addEventListener('mousedown', handleClickOutside);
|
|
125
|
+
doc.addEventListener('keydown', handleKeyDown);
|
|
126
|
+
return function () {
|
|
127
|
+
doc.removeEventListener('mousedown', handleClickOutside);
|
|
128
|
+
doc.removeEventListener('keydown', handleKeyDown);
|
|
129
|
+
};
|
|
130
|
+
}, [show, onHide, targetRef]);
|
|
131
|
+
if (!show)
|
|
132
|
+
return null;
|
|
133
|
+
var container = getContainer();
|
|
134
|
+
if (!container)
|
|
135
|
+
return jsx(Fragment, { children: children });
|
|
136
|
+
return createPortal(jsx("div", __assign({ ref: ref, style: __assign(__assign({ position: 'absolute' }, (position || { top: -9999, left: -9999 })), { zIndex: zIndex }) }, { children: children })), container);
|
|
137
|
+
};
|
|
138
|
+
var getFlippedPlacement = function (original, needsVerticalFlip, needsHorizontalFlip) {
|
|
139
|
+
if (needsVerticalFlip) {
|
|
140
|
+
if (original.includes('top')) {
|
|
141
|
+
return original.replace('top', 'bottom');
|
|
142
|
+
}
|
|
143
|
+
if (original.includes('bottom')) {
|
|
144
|
+
return original.replace('bottom', 'top');
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
if (needsHorizontalFlip) {
|
|
148
|
+
if (original.includes('left')) {
|
|
149
|
+
return original.replace('left', 'right');
|
|
150
|
+
}
|
|
151
|
+
if (original.includes('right')) {
|
|
152
|
+
return original.replace('right', 'left');
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
return original;
|
|
156
|
+
};
|
|
157
|
+
var calcPosition = function (pl, targetRect, overlayRect, offset) {
|
|
158
|
+
if (offset === void 0) { offset = 0; }
|
|
159
|
+
switch (pl) {
|
|
160
|
+
case 'top':
|
|
161
|
+
return {
|
|
162
|
+
top: targetRect.top - overlayRect.height - offset,
|
|
163
|
+
left: targetRect.left + (targetRect.width - overlayRect.width) / 2
|
|
164
|
+
};
|
|
165
|
+
case 'top-start':
|
|
166
|
+
return {
|
|
167
|
+
top: targetRect.top - overlayRect.height - offset,
|
|
168
|
+
left: targetRect.left
|
|
169
|
+
};
|
|
170
|
+
case 'top-end':
|
|
171
|
+
return {
|
|
172
|
+
top: targetRect.top - overlayRect.height - offset,
|
|
173
|
+
left: targetRect.right - overlayRect.width
|
|
174
|
+
};
|
|
175
|
+
case 'left':
|
|
176
|
+
return {
|
|
177
|
+
top: targetRect.top + (targetRect.height - overlayRect.height) / 2,
|
|
178
|
+
left: targetRect.left - overlayRect.width - offset
|
|
179
|
+
};
|
|
180
|
+
case 'left-start':
|
|
181
|
+
return {
|
|
182
|
+
top: targetRect.top,
|
|
183
|
+
left: targetRect.left - overlayRect.width - offset
|
|
184
|
+
};
|
|
185
|
+
case 'left-end':
|
|
186
|
+
return {
|
|
187
|
+
top: targetRect.bottom - overlayRect.height,
|
|
188
|
+
left: targetRect.left - overlayRect.width - offset
|
|
189
|
+
};
|
|
190
|
+
case 'bottom':
|
|
191
|
+
return {
|
|
192
|
+
top: targetRect.bottom + offset,
|
|
193
|
+
left: targetRect.left + (targetRect.width - overlayRect.width) / 2
|
|
194
|
+
};
|
|
195
|
+
case 'bottom-start':
|
|
196
|
+
return {
|
|
197
|
+
top: targetRect.bottom + offset,
|
|
198
|
+
left: targetRect.left
|
|
199
|
+
};
|
|
200
|
+
case 'bottom-end':
|
|
201
|
+
return {
|
|
202
|
+
top: targetRect.bottom + offset,
|
|
203
|
+
left: targetRect.right - overlayRect.width
|
|
204
|
+
};
|
|
205
|
+
case 'right':
|
|
206
|
+
return {
|
|
207
|
+
top: targetRect.top + (targetRect.height - overlayRect.height) / 2,
|
|
208
|
+
left: targetRect.right + offset
|
|
209
|
+
};
|
|
210
|
+
case 'right-start':
|
|
211
|
+
return {
|
|
212
|
+
top: targetRect.top,
|
|
213
|
+
left: targetRect.right + offset
|
|
214
|
+
};
|
|
215
|
+
case 'right-end':
|
|
216
|
+
return {
|
|
217
|
+
top: targetRect.bottom - overlayRect.height,
|
|
218
|
+
left: targetRect.right + offset
|
|
219
|
+
};
|
|
220
|
+
default:
|
|
221
|
+
return {
|
|
222
|
+
top: targetRect.bottom + offset,
|
|
223
|
+
left: targetRect.left + (targetRect.width - overlayRect.width) / 2
|
|
224
|
+
};
|
|
225
|
+
}
|
|
226
|
+
};
|
|
227
|
+
|
|
228
|
+
export { Overlay as O, Tooltip as T };
|