@dynamic-framework/ui-react 2.8.0 → 2.10.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/css/dynamic-ui.css +5 -22
- package/dist/css/dynamic-ui.min.css +2 -2
- package/dist/esm/components/DAlert/DAlert.js +16 -0
- package/dist/esm/components/DAlert/DAlert.js.map +1 -0
- package/dist/esm/components/DAlert/index.js +6 -0
- package/dist/esm/components/DAlert/index.js.map +1 -0
- package/dist/esm/components/DAvatar/DAvatar.js +23 -0
- package/dist/esm/components/DAvatar/DAvatar.js.map +1 -0
- package/dist/esm/components/DAvatar/index.js +6 -0
- package/dist/esm/components/DAvatar/index.js.map +1 -0
- package/dist/esm/components/DBadge/DBadge.js +31 -0
- package/dist/esm/components/DBadge/DBadge.js.map +1 -0
- package/dist/esm/components/DBadge/index.js +6 -0
- package/dist/esm/components/DBadge/index.js.map +1 -0
- package/dist/esm/components/DBox/DBox.js +9 -0
- package/dist/esm/components/DBox/DBox.js.map +1 -0
- package/dist/esm/components/DBox/index.js +6 -0
- package/dist/esm/components/DBox/index.js.map +1 -0
- package/dist/esm/components/DBoxFile/DBoxFile.js +26 -0
- package/dist/esm/components/DBoxFile/DBoxFile.js.map +1 -0
- package/dist/esm/components/DBoxFile/index.js +6 -0
- package/dist/esm/components/DBoxFile/index.js.map +1 -0
- package/dist/esm/components/DBoxFile/useDBoxFile.js +236 -0
- package/dist/esm/components/DBoxFile/useDBoxFile.js.map +1 -0
- package/dist/esm/components/DBoxFile/utils.js +127 -0
- package/dist/esm/components/DBoxFile/utils.js.map +1 -0
- package/dist/esm/components/DButton/DButton.js +84 -0
- package/dist/esm/components/DButton/DButton.js.map +1 -0
- package/dist/esm/components/DButton/index.js +6 -0
- package/dist/esm/components/DButton/index.js.map +1 -0
- package/dist/esm/components/DButtonIcon/DButtonIcon.js +52 -0
- package/dist/esm/components/DButtonIcon/DButtonIcon.js.map +1 -0
- package/dist/esm/components/DButtonIcon/index.js +6 -0
- package/dist/esm/components/DButtonIcon/index.js.map +1 -0
- package/dist/esm/components/DButtonIcon/warnMissingAccessibleName.js +40 -0
- package/dist/esm/components/DButtonIcon/warnMissingAccessibleName.js.map +1 -0
- package/dist/esm/components/DCard/DCard.js +17 -0
- package/dist/esm/components/DCard/DCard.js.map +1 -0
- package/dist/esm/components/DCard/components/DCardBody.js +9 -0
- package/dist/esm/components/DCard/components/DCardBody.js.map +1 -0
- package/dist/esm/components/DCard/components/DCardFooter.js +9 -0
- package/dist/esm/components/DCard/components/DCardFooter.js.map +1 -0
- package/dist/esm/components/DCard/components/DCardHeader.js +9 -0
- package/dist/esm/components/DCard/components/DCardHeader.js.map +1 -0
- package/dist/esm/components/DCard/index.js +9 -0
- package/dist/esm/components/DCard/index.js.map +1 -0
- package/dist/esm/components/DCarousel/DCarousel.js +39 -0
- package/dist/esm/components/DCarousel/DCarousel.js.map +1 -0
- package/dist/esm/components/DCarousel/components/DCarouselSlide.js +12 -0
- package/dist/esm/components/DCarousel/components/DCarouselSlide.js.map +1 -0
- package/dist/esm/components/DCarousel/index.js +7 -0
- package/dist/esm/components/DCarousel/index.js.map +1 -0
- package/dist/esm/components/DChip/DChip.js +18 -0
- package/dist/esm/components/DChip/DChip.js.map +1 -0
- package/dist/esm/components/DChip/index.js +6 -0
- package/dist/esm/components/DChip/index.js.map +1 -0
- package/dist/esm/components/DCollapse/DCollapse.js +30 -0
- package/dist/esm/components/DCollapse/DCollapse.js.map +1 -0
- package/dist/esm/components/DCollapse/index.js +6 -0
- package/dist/esm/components/DCollapse/index.js.map +1 -0
- package/dist/esm/components/DConfirmModal/DConfirmModalContainer.js +59 -0
- package/dist/esm/components/DConfirmModal/DConfirmModalContainer.js.map +1 -0
- package/dist/esm/components/DConfirmModal/DConfirmModalUI.js +39 -0
- package/dist/esm/components/DConfirmModal/DConfirmModalUI.js.map +1 -0
- package/dist/esm/components/DConfirmModal/confirmModalStore.js +38 -0
- package/dist/esm/components/DConfirmModal/confirmModalStore.js.map +1 -0
- package/dist/esm/components/DCreditCard/DCreditCard.js +15 -0
- package/dist/esm/components/DCreditCard/DCreditCard.js.map +1 -0
- package/dist/esm/components/DCreditCard/index.js +6 -0
- package/dist/esm/components/DCreditCard/index.js.map +1 -0
- package/dist/esm/components/DCurrencyText/DCurrencyText.js +10 -0
- package/dist/esm/components/DCurrencyText/DCurrencyText.js.map +1 -0
- package/dist/esm/components/DCurrencyText/index.js +6 -0
- package/dist/esm/components/DCurrencyText/index.js.map +1 -0
- package/dist/esm/components/DDataStateWrapper/DDataStateWrapper.js +35 -0
- package/dist/esm/components/DDataStateWrapper/DDataStateWrapper.js.map +1 -0
- package/dist/esm/components/DDataStateWrapper/components/EmptyState.js +10 -0
- package/dist/esm/components/DDataStateWrapper/components/EmptyState.js.map +1 -0
- package/dist/esm/components/DDataStateWrapper/components/ErrorState.js +10 -0
- package/dist/esm/components/DDataStateWrapper/components/ErrorState.js.map +1 -0
- package/dist/esm/components/DDataStateWrapper/components/LoadingState.js +8 -0
- package/dist/esm/components/DDataStateWrapper/components/LoadingState.js.map +1 -0
- package/dist/esm/components/DDataStateWrapper/index.js +9 -0
- package/dist/esm/components/DDataStateWrapper/index.js.map +1 -0
- package/dist/esm/components/DDatePicker/DDatePicker.js +54 -0
- package/dist/esm/components/DDatePicker/DDatePicker.js.map +1 -0
- package/dist/esm/components/DDatePicker/components/DDatePickerHeaderSelector.js +50 -0
- package/dist/esm/components/DDatePicker/components/DDatePickerHeaderSelector.js.map +1 -0
- package/dist/esm/components/DDatePicker/components/DDatePickerInput.js +16 -0
- package/dist/esm/components/DDatePicker/components/DDatePickerInput.js.map +1 -0
- package/dist/esm/components/DDatePicker/components/DDatePickerTime.js +11 -0
- package/dist/esm/components/DDatePicker/components/DDatePickerTime.js.map +1 -0
- package/dist/esm/components/DDatePicker/index.js +6 -0
- package/dist/esm/components/DDatePicker/index.js.map +1 -0
- package/dist/esm/components/DDropdown/DDropdown.js +315 -0
- package/dist/esm/components/DDropdown/DDropdown.js.map +1 -0
- package/dist/esm/components/DDropdown/index.js +6 -0
- package/dist/esm/components/DDropdown/index.js.map +1 -0
- package/dist/esm/components/DErrorBoundary/DErrorBoundary.js +22 -0
- package/dist/esm/components/DErrorBoundary/DErrorBoundary.js.map +1 -0
- package/dist/esm/components/DErrorBoundary/components/DefaultErrorBoundary.js +10 -0
- package/dist/esm/components/DErrorBoundary/components/DefaultErrorBoundary.js.map +1 -0
- package/dist/esm/components/DErrorBoundary/index.js +7 -0
- package/dist/esm/components/DErrorBoundary/index.js.map +1 -0
- package/dist/esm/components/DIcon/DIcon.js +21 -0
- package/dist/esm/components/DIcon/DIcon.js.map +1 -0
- package/dist/esm/components/DIcon/index.js +6 -0
- package/dist/esm/components/DIcon/index.js.map +1 -0
- package/dist/esm/components/DIconBase/DIconBase.js +146 -0
- package/dist/esm/components/DIconBase/DIconBase.js.map +1 -0
- package/dist/esm/components/DIconBase/index.js +6 -0
- package/dist/esm/components/DIconBase/index.js.map +1 -0
- package/dist/esm/components/DIconBase/resolveIconFromRegistry.js +20 -0
- package/dist/esm/components/DIconBase/resolveIconFromRegistry.js.map +1 -0
- package/dist/esm/components/DIconBase/warnUnknownIcon.js +59 -0
- package/dist/esm/components/DIconBase/warnUnknownIcon.js.map +1 -0
- package/dist/esm/components/DInput/DInput.js +83 -0
- package/dist/esm/components/DInput/DInput.js.map +1 -0
- package/dist/esm/components/DInput/index.js +6 -0
- package/dist/esm/components/DInput/index.js.map +1 -0
- package/dist/esm/components/DInputCheck/DInputCheck.js +57 -0
- package/dist/esm/components/DInputCheck/DInputCheck.js.map +1 -0
- package/dist/esm/components/DInputCheck/index.js +6 -0
- package/dist/esm/components/DInputCheck/index.js.map +1 -0
- package/dist/esm/components/DInputCounter/DInputCounter.js +49 -0
- package/dist/esm/components/DInputCounter/DInputCounter.js.map +1 -0
- package/dist/esm/components/DInputCounter/index.js +6 -0
- package/dist/esm/components/DInputCounter/index.js.map +1 -0
- package/dist/esm/components/DInputCurrency/DInputCurrency.js +20 -0
- package/dist/esm/components/DInputCurrency/DInputCurrency.js.map +1 -0
- package/dist/esm/components/DInputCurrency/index.js +6 -0
- package/dist/esm/components/DInputCurrency/index.js.map +1 -0
- package/dist/esm/components/DInputMask/DInputMask.js +13 -0
- package/dist/esm/components/DInputMask/DInputMask.js.map +1 -0
- package/dist/esm/components/DInputMask/index.js +6 -0
- package/dist/esm/components/DInputMask/index.js.map +1 -0
- package/dist/esm/components/DInputPassword/DInputPassword.js +24 -0
- package/dist/esm/components/DInputPassword/DInputPassword.js.map +1 -0
- package/dist/esm/components/DInputPassword/index.js +6 -0
- package/dist/esm/components/DInputPassword/index.js.map +1 -0
- package/dist/esm/components/DInputPhone/DInputPhone.js +96 -0
- package/dist/esm/components/DInputPhone/DInputPhone.js.map +1 -0
- package/dist/esm/components/DInputPhone/index.js +6 -0
- package/dist/esm/components/DInputPhone/index.js.map +1 -0
- package/dist/esm/components/DInputPin/DInputPin.js +86 -0
- package/dist/esm/components/DInputPin/DInputPin.js.map +1 -0
- package/dist/esm/components/DInputPin/index.js +6 -0
- package/dist/esm/components/DInputPin/index.js.map +1 -0
- package/dist/esm/components/DInputRange/DInputRange.js +46 -0
- package/dist/esm/components/DInputRange/DInputRange.js.map +1 -0
- package/dist/esm/components/DInputRange/index.js +6 -0
- package/dist/esm/components/DInputRange/index.js.map +1 -0
- package/dist/esm/components/DInputSearch/DInputSearch.js +57 -0
- package/dist/esm/components/DInputSearch/DInputSearch.js.map +1 -0
- package/dist/esm/components/DInputSearch/index.js +6 -0
- package/dist/esm/components/DInputSearch/index.js.map +1 -0
- package/dist/esm/components/DInputSelect/DInputSelect.js +90 -0
- package/dist/esm/components/DInputSelect/DInputSelect.js.map +1 -0
- package/dist/esm/components/DInputSelect/index.js +6 -0
- package/dist/esm/components/DInputSelect/index.js.map +1 -0
- package/dist/esm/components/DInputSwitch/DInputSwitch.js +32 -0
- package/dist/esm/components/DInputSwitch/DInputSwitch.js.map +1 -0
- package/dist/esm/components/DInputSwitch/index.js +6 -0
- package/dist/esm/components/DInputSwitch/index.js.map +1 -0
- package/dist/esm/components/DLayout/DLayout.js +22 -0
- package/dist/esm/components/DLayout/DLayout.js.map +1 -0
- package/dist/esm/components/DLayout/components/DLayoutPane.js +16 -0
- package/dist/esm/components/DLayout/components/DLayoutPane.js.map +1 -0
- package/dist/esm/components/DLayout/index.js +7 -0
- package/dist/esm/components/DLayout/index.js.map +1 -0
- package/dist/esm/components/DListGroup/DListGroup.js +31 -0
- package/dist/esm/components/DListGroup/DListGroup.js.map +1 -0
- package/dist/esm/components/DListGroup/components/DListGroupItem.js +41 -0
- package/dist/esm/components/DListGroup/components/DListGroupItem.js.map +1 -0
- package/dist/esm/components/DListGroup/index.js +7 -0
- package/dist/esm/components/DListGroup/index.js.map +1 -0
- package/dist/esm/components/DModal/DModal.js +37 -0
- package/dist/esm/components/DModal/DModal.js.map +1 -0
- package/dist/esm/components/DModal/components/DModalBody.js +9 -0
- package/dist/esm/components/DModal/components/DModalBody.js.map +1 -0
- package/dist/esm/components/DModal/components/DModalFooter.js +14 -0
- package/dist/esm/components/DModal/components/DModalFooter.js.map +1 -0
- package/dist/esm/components/DModal/components/DModalHeader.js +15 -0
- package/dist/esm/components/DModal/components/DModalHeader.js.map +1 -0
- package/dist/esm/components/DModal/index.js +9 -0
- package/dist/esm/components/DModal/index.js.map +1 -0
- package/dist/esm/components/DOffcanvas/DOffcanvas.js +82 -0
- package/dist/esm/components/DOffcanvas/DOffcanvas.js.map +1 -0
- package/dist/esm/components/DOffcanvas/components/DOffcanvasBody.js +9 -0
- package/dist/esm/components/DOffcanvas/components/DOffcanvasBody.js.map +1 -0
- package/dist/esm/components/DOffcanvas/components/DOffcanvasFooter.js +14 -0
- package/dist/esm/components/DOffcanvas/components/DOffcanvasFooter.js.map +1 -0
- package/dist/esm/components/DOffcanvas/components/DOffcanvasHeader.js +15 -0
- package/dist/esm/components/DOffcanvas/components/DOffcanvasHeader.js.map +1 -0
- package/dist/esm/components/DOffcanvas/index.js +9 -0
- package/dist/esm/components/DOffcanvas/index.js.map +1 -0
- package/dist/esm/components/DOtp/DOtp.js +26 -0
- package/dist/esm/components/DOtp/DOtp.js.map +1 -0
- package/dist/esm/components/DOtp/components/OtpCountdown.js +12 -0
- package/dist/esm/components/DOtp/components/OtpCountdown.js.map +1 -0
- package/dist/esm/components/DOtp/index.js +6 -0
- package/dist/esm/components/DOtp/index.js.map +1 -0
- package/dist/esm/components/DPaginator/DPaginator.js +12 -0
- package/dist/esm/components/DPaginator/DPaginator.js.map +1 -0
- package/dist/esm/components/DPaginator/index.js +6 -0
- package/dist/esm/components/DPaginator/index.js.map +1 -0
- package/dist/esm/components/DPasswordStrengthMeter/DPasswordStrengthMeter.js +27 -0
- package/dist/esm/components/DPasswordStrengthMeter/DPasswordStrengthMeter.js.map +1 -0
- package/dist/esm/components/DPasswordStrengthMeter/PasswordCheckItem.js +10 -0
- package/dist/esm/components/DPasswordStrengthMeter/PasswordCheckItem.js.map +1 -0
- package/dist/esm/components/DPasswordStrengthMeter/PasswordCheckList.js +41 -0
- package/dist/esm/components/DPasswordStrengthMeter/PasswordCheckList.js.map +1 -0
- package/dist/esm/components/DPasswordStrengthMeter/PasswordStrength.js +23 -0
- package/dist/esm/components/DPasswordStrengthMeter/PasswordStrength.js.map +1 -0
- package/dist/esm/components/DPasswordStrengthMeter/index.js +6 -0
- package/dist/esm/components/DPasswordStrengthMeter/index.js.map +1 -0
- package/dist/esm/components/DPopover/DPopover.js +49 -0
- package/dist/esm/components/DPopover/DPopover.js.map +1 -0
- package/dist/esm/components/DPopover/index.js +6 -0
- package/dist/esm/components/DPopover/index.js.map +1 -0
- package/dist/esm/components/DProgress/DProgress.js +16 -0
- package/dist/esm/components/DProgress/DProgress.js.map +1 -0
- package/dist/esm/components/DProgress/index.js +6 -0
- package/dist/esm/components/DProgress/index.js.map +1 -0
- package/dist/esm/components/DSelect/DSelect.js +60 -0
- package/dist/esm/components/DSelect/DSelect.js.map +1 -0
- package/dist/esm/components/DSelect/components/DSelectClearIndicator.js +12 -0
- package/dist/esm/components/DSelect/components/DSelectClearIndicator.js.map +1 -0
- package/dist/esm/components/DSelect/components/DSelectDropdownIndicator.js +12 -0
- package/dist/esm/components/DSelect/components/DSelectDropdownIndicator.js.map +1 -0
- package/dist/esm/components/DSelect/components/DSelectLoadingIndicator.js +12 -0
- package/dist/esm/components/DSelect/components/DSelectLoadingIndicator.js.map +1 -0
- package/dist/esm/components/DSelect/components/DSelectMultiValueRemove.js +12 -0
- package/dist/esm/components/DSelect/components/DSelectMultiValueRemove.js.map +1 -0
- package/dist/esm/components/DSelect/components/DSelectOptionCheck.js +14 -0
- package/dist/esm/components/DSelect/components/DSelectOptionCheck.js.map +1 -0
- package/dist/esm/components/DSelect/components/DSelectOptionEmoji.js +14 -0
- package/dist/esm/components/DSelect/components/DSelectOptionEmoji.js.map +1 -0
- package/dist/esm/components/DSelect/components/DSelectOptionIcon.js +15 -0
- package/dist/esm/components/DSelect/components/DSelectOptionIcon.js.map +1 -0
- package/dist/esm/components/DSelect/components/DSelectPlaceholder.js +14 -0
- package/dist/esm/components/DSelect/components/DSelectPlaceholder.js.map +1 -0
- package/dist/esm/components/DSelect/components/DSelectSingleValueEmoji.js +15 -0
- package/dist/esm/components/DSelect/components/DSelectSingleValueEmoji.js.map +1 -0
- package/dist/esm/components/DSelect/components/DSelectSingleValueEmojiText.js +15 -0
- package/dist/esm/components/DSelect/components/DSelectSingleValueEmojiText.js.map +1 -0
- package/dist/esm/components/DSelect/components/DSelectSingleValueIconText.js +16 -0
- package/dist/esm/components/DSelect/components/DSelectSingleValueIconText.js.map +1 -0
- package/dist/esm/components/DSelect/index.js +6 -0
- package/dist/esm/components/DSelect/index.js.map +1 -0
- package/dist/esm/components/DStepper/DStepper.js +13 -0
- package/dist/esm/components/DStepper/DStepper.js.map +1 -0
- package/dist/esm/components/DStepper/index.js +6 -0
- package/dist/esm/components/DStepper/index.js.map +1 -0
- package/dist/esm/components/DStepperDesktop/DStepperDesktop.js +27 -0
- package/dist/esm/components/DStepperDesktop/DStepperDesktop.js.map +1 -0
- package/dist/esm/components/DStepperDesktop/index.js +6 -0
- package/dist/esm/components/DStepperDesktop/index.js.map +1 -0
- package/dist/esm/components/DStepperMobile/DStepperMobile.js +37 -0
- package/dist/esm/components/DStepperMobile/DStepperMobile.js.map +1 -0
- package/dist/esm/components/DStepperMobile/index.js +6 -0
- package/dist/esm/components/DStepperMobile/index.js.map +1 -0
- package/dist/esm/components/DTabs/DTabs.js +117 -0
- package/dist/esm/components/DTabs/DTabs.js.map +1 -0
- package/dist/esm/components/DTabs/TabContext.js +13 -0
- package/dist/esm/components/DTabs/TabContext.js.map +1 -0
- package/dist/esm/components/DTabs/components/DTabContent.js +14 -0
- package/dist/esm/components/DTabs/components/DTabContent.js.map +1 -0
- package/dist/esm/components/DTabs/index.js +8 -0
- package/dist/esm/components/DTabs/index.js.map +1 -0
- package/dist/esm/components/DTimeline/DTimeline.js +12 -0
- package/dist/esm/components/DTimeline/DTimeline.js.map +1 -0
- package/dist/esm/components/DTimeline/index.js +6 -0
- package/dist/esm/components/DTimeline/index.js.map +1 -0
- package/dist/esm/components/DToast/DToast.js +15 -0
- package/dist/esm/components/DToast/DToast.js.map +1 -0
- package/dist/esm/components/DToast/components/DToastBody.js +9 -0
- package/dist/esm/components/DToast/components/DToastBody.js.map +1 -0
- package/dist/esm/components/DToast/components/DToastHeader.js +9 -0
- package/dist/esm/components/DToast/components/DToastHeader.js.map +1 -0
- package/dist/esm/components/DToast/index.js +8 -0
- package/dist/esm/components/DToast/index.js.map +1 -0
- package/dist/esm/components/DToastContainer/DToastContainer.js +9 -0
- package/dist/esm/components/DToastContainer/DToastContainer.js.map +1 -0
- package/dist/esm/components/DToastContainer/index.js +7 -0
- package/dist/esm/components/DToastContainer/index.js.map +1 -0
- package/dist/esm/components/DToastContainer/useDToast.js +58 -0
- package/dist/esm/components/DToastContainer/useDToast.js.map +1 -0
- package/dist/esm/components/DTooltip/DTooltip.js +51 -0
- package/dist/esm/components/DTooltip/DTooltip.js.map +1 -0
- package/dist/esm/components/DTooltip/index.js +6 -0
- package/dist/esm/components/DTooltip/index.js.map +1 -0
- package/dist/esm/components/DVoucher/DVoucher.js +55 -0
- package/dist/esm/components/DVoucher/DVoucher.js.map +1 -0
- package/dist/esm/components/DVoucher/hooks/useScreenshot.js +30 -0
- package/dist/esm/components/DVoucher/hooks/useScreenshot.js.map +1 -0
- package/dist/esm/components/DVoucher/hooks/useScreenshotDownload.js +30 -0
- package/dist/esm/components/DVoucher/hooks/useScreenshotDownload.js.map +1 -0
- package/dist/esm/components/DVoucher/hooks/useScreenshotWebShare.js +27 -0
- package/dist/esm/components/DVoucher/hooks/useScreenshotWebShare.js.map +1 -0
- package/dist/esm/components/DVoucher/index.js +9 -0
- package/dist/esm/components/DVoucher/index.js.map +1 -0
- package/dist/esm/components/config.js +14 -0
- package/dist/esm/components/config.js.map +1 -0
- package/dist/esm/contexts/DContext.js +124 -0
- package/dist/esm/contexts/DContext.js.map +1 -0
- package/dist/esm/contexts/DPortalContext.js +128 -0
- package/dist/esm/contexts/DPortalContext.js.map +1 -0
- package/dist/esm/hooks/useConfirmModal.js +63 -0
- package/dist/esm/hooks/useConfirmModal.js.map +1 -0
- package/dist/esm/hooks/useCountdown.js +45 -0
- package/dist/esm/hooks/useCountdown.js.map +1 -0
- package/dist/esm/hooks/useDisableBodyScrollEffect.js +52 -0
- package/dist/esm/hooks/useDisableBodyScrollEffect.js.map +1 -0
- package/dist/esm/hooks/useDisableInputWheel.js +17 -0
- package/dist/esm/hooks/useDisableInputWheel.js.map +1 -0
- package/dist/esm/hooks/useFormatCurrency.js +16 -0
- package/dist/esm/hooks/useFormatCurrency.js.map +1 -0
- package/dist/esm/hooks/useInputCurrency.js +76 -0
- package/dist/esm/hooks/useInputCurrency.js.map +1 -0
- package/dist/esm/hooks/useItemSelection.js +35 -0
- package/dist/esm/hooks/useItemSelection.js.map +1 -0
- package/dist/esm/hooks/useMediaBreakpointUp.js +30 -0
- package/dist/esm/hooks/useMediaBreakpointUp.js.map +1 -0
- package/dist/esm/hooks/useMediaQuery.js +11 -0
- package/dist/esm/hooks/useMediaQuery.js.map +1 -0
- package/dist/esm/hooks/useOtp.js +107 -0
- package/dist/esm/hooks/useOtp.js.map +1 -0
- package/dist/esm/hooks/usePortal.js +26 -0
- package/dist/esm/hooks/usePortal.js.map +1 -0
- package/dist/esm/hooks/useProvidedRefOrCreate.js +24 -0
- package/dist/esm/hooks/useProvidedRefOrCreate.js.map +1 -0
- package/dist/esm/hooks/useResponsiveProp.js +50 -0
- package/dist/esm/hooks/useResponsiveProp.js.map +1 -0
- package/dist/esm/hooks/useStackState.js +40 -0
- package/dist/esm/hooks/useStackState.js.map +1 -0
- package/dist/esm/icons/coreIcons.js +55 -0
- package/dist/esm/icons/coreIcons.js.map +1 -0
- package/dist/esm/index.js +98 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/utils/attr-accept.js +38 -0
- package/dist/esm/utils/attr-accept.js.map +1 -0
- package/dist/esm/utils/buildUrl.js +57 -0
- package/dist/esm/utils/buildUrl.js.map +1 -0
- package/dist/esm/utils/changeQueryString.js +19 -0
- package/dist/esm/utils/changeQueryString.js.map +1 -0
- package/dist/esm/utils/configureI18n.js +20 -0
- package/dist/esm/utils/configureI18n.js.map +1 -0
- package/dist/esm/utils/formatCurrency.js +8 -0
- package/dist/esm/utils/formatCurrency.js.map +1 -0
- package/dist/esm/utils/getCssVariable.js +7 -0
- package/dist/esm/utils/getCssVariable.js.map +1 -0
- package/dist/esm/utils/getKeyboardFocusableElements.js +11 -0
- package/dist/esm/utils/getKeyboardFocusableElements.js.map +1 -0
- package/dist/esm/utils/getQueryString.js +8 -0
- package/dist/esm/utils/getQueryString.js.map +1 -0
- package/dist/esm/utils/mediaQuery.js +13 -0
- package/dist/esm/utils/mediaQuery.js.map +1 -0
- package/dist/esm/utils/sanitizeHref.js +67 -0
- package/dist/esm/utils/sanitizeHref.js.map +1 -0
- package/dist/esm/utils/validatePhoneNumber.js +14 -0
- package/dist/esm/utils/validatePhoneNumber.js.map +1 -0
- package/dist/icons-core.json +33 -0
- package/dist/index.esm.js +463 -55
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +465 -54
- package/dist/index.js.map +1 -1
- package/dist/types/components/DButtonIcon/warnMissingAccessibleName.d.ts +18 -0
- package/dist/types/components/DIcon/DIcon.d.ts +8 -0
- package/dist/types/components/DIconBase/DIconBase.d.ts +43 -1
- package/dist/types/components/DIconBase/resolveIconFromRegistry.d.ts +14 -0
- package/dist/types/components/DIconBase/warnUnknownIcon.d.ts +13 -0
- package/dist/types/components/DInputCheck/DInputCheck.d.ts +1 -0
- package/dist/types/components/DInputRange/DInputRange.d.ts +1 -1
- package/dist/types/components/DInputSwitch/DInputSwitch.d.ts +2 -1
- package/dist/types/components/DModal/components/DModalHeader.d.ts +5 -1
- package/dist/types/components/DOffcanvas/components/DOffcanvasHeader.d.ts +5 -1
- package/dist/types/components/DTooltip/DTooltip.d.ts +38 -3
- package/dist/types/components/config.d.ts +10 -0
- package/dist/types/icons/coreIcons.d.ts +24 -0
- package/dist/types/icons/index.d.ts +2 -0
- package/dist/types/index.d.ts +1 -0
- package/dist/types/utils/buildUrl.d.ts +32 -0
- package/dist/types/utils/index.d.ts +2 -0
- package/dist/types/utils/sanitizeHref.d.ts +37 -0
- package/package.json +12 -9
- package/src/style/_shame.scss +1 -5
- package/src/style/abstracts/variables/_+import.scss +1 -0
- package/src/style/abstracts/variables/_box.scss +7 -0
- package/src/style/abstracts/variables/_forms.scss +1 -3
- package/src/style/abstracts/variables/_shadow.scss +12 -1
- package/src/style/base/_+import.scss +0 -1
- package/src/style/base/_form-check.scss +4 -2
- package/src/style/components/_d-box.scss +5 -5
- package/dist/types/components/DVoucher/hooks/useScreenshotDownload.spec.d.ts +0 -1
- package/dist/types/components/DVoucher/hooks/useScreenshotWebShare.spec.d.ts +0 -1
- package/dist/types/hooks/tests/useCountdown.spec.d.ts +0 -1
- package/dist/types/hooks/tests/useDisableBodyScrollEffect.spec.d.ts +0 -1
- package/dist/types/hooks/tests/useDisableInputWheel.spec.d.ts +0 -1
- package/dist/types/hooks/tests/useFormatCurrency.spec.d.ts +0 -1
- package/dist/types/hooks/tests/useInputCurrency.spec.d.ts +0 -1
- package/dist/types/hooks/tests/useItemSelection.spec.d.ts +0 -1
- package/dist/types/hooks/tests/useMediaBreakpointUp.spec.d.ts +0 -1
- package/dist/types/hooks/tests/useMediaQuery.spec.d.ts +0 -1
- package/dist/types/hooks/tests/usePortal.spec.d.ts +0 -1
- package/dist/types/hooks/tests/useProvidedRefOrCreate.spec.d.ts +0 -1
- package/dist/types/hooks/tests/useStackState.spec.d.ts +0 -1
- package/dist/types/utils/tests/attr-accept.spec.d.ts +0 -1
- package/dist/types/utils/tests/changeQueryString.spec.d.ts +0 -1
- package/dist/types/utils/tests/configureI18n.spec.d.ts +0 -1
- package/dist/types/utils/tests/formatCurrency.spec.d.ts +0 -1
- package/dist/types/utils/tests/getCssVariable.spec.d.ts +0 -1
- package/dist/types/utils/tests/getKeyboardFocusableElements.spec.d.ts +0 -1
- package/dist/types/utils/tests/getQueryString.spec.d.ts +0 -1
- package/dist/types/utils/tests/mediaQuery.spec.d.ts +0 -1
- package/dist/types/utils/tests/validatePhoneNumber.spec.d.ts +0 -1
- package/src/style/base/_form-text.scss +0 -12
|
@@ -0,0 +1,315 @@
|
|
|
1
|
+
import { __rest } from 'tslib';
|
|
2
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
3
|
+
import { useState, useRef, useCallback, useLayoutEffect } from 'react';
|
|
4
|
+
import { createPortal } from 'react-dom';
|
|
5
|
+
import classNames from 'classnames';
|
|
6
|
+
import DButtonIcon from '../DButtonIcon/DButtonIcon.js';
|
|
7
|
+
import DIcon from '../DIcon/DIcon.js';
|
|
8
|
+
|
|
9
|
+
// Gap between the toggle and the menu.
|
|
10
|
+
const GAP = 4;
|
|
11
|
+
// Minimum distance the menu should keep from the viewport edges.
|
|
12
|
+
const VIEWPORT_PADDING = 8;
|
|
13
|
+
// Minimum usable height left for the menu before we consider a side unusable.
|
|
14
|
+
const MIN_USABLE_SPACE = 120;
|
|
15
|
+
const getItemClass = (action) => classNames({
|
|
16
|
+
'dropdown-item d-flex align-items-center': true,
|
|
17
|
+
[`dropdown-item-${action.color}`]: !!action.color,
|
|
18
|
+
disabled: action.disabled,
|
|
19
|
+
});
|
|
20
|
+
const clamp = (value, min, max) => {
|
|
21
|
+
if (max < min)
|
|
22
|
+
return min;
|
|
23
|
+
return Math.min(Math.max(value, min), max);
|
|
24
|
+
};
|
|
25
|
+
/**
|
|
26
|
+
* `position: fixed` is normally relative to the viewport, but any ancestor
|
|
27
|
+
* with a `transform`, `perspective`, `filter`, `will-change` (of those) or a
|
|
28
|
+
* non-trivial `contain` establishes a new containing block, making `fixed`
|
|
29
|
+
* behave like `absolute` relative to that ancestor instead (e.g. Storybook's
|
|
30
|
+
* docs canvas wrapper, animated cards, sticky containers, etc.). We detect
|
|
31
|
+
* that ancestor so the computed coordinates can be adjusted accordingly,
|
|
32
|
+
* keeping the menu correctly anchored to the toggle in every context.
|
|
33
|
+
*/
|
|
34
|
+
const getFixedPositioningOffset = (fromEl) => {
|
|
35
|
+
var _a;
|
|
36
|
+
let node = (_a = fromEl === null || fromEl === void 0 ? void 0 : fromEl.parentElement) !== null && _a !== void 0 ? _a : null;
|
|
37
|
+
while (node && node !== document.body) {
|
|
38
|
+
const cs = window.getComputedStyle(node);
|
|
39
|
+
// Treat empty/undefined values as "unset" (jsdom returns "" rather than
|
|
40
|
+
// the CSS initial value like "none" for some of these properties).
|
|
41
|
+
const isSet = (value) => !!value && value !== 'none';
|
|
42
|
+
const establishesContainingBlock = isSet(cs.transform)
|
|
43
|
+
|| isSet(cs.perspective)
|
|
44
|
+
|| isSet(cs.filter)
|
|
45
|
+
|| isSet(cs.backdropFilter)
|
|
46
|
+
|| ['transform', 'perspective', 'filter'].some((prop) => { var _a; return (_a = cs.willChange) === null || _a === void 0 ? void 0 : _a.includes(prop); })
|
|
47
|
+
|| cs.contain.split(' ').some((value) => ['layout', 'paint', 'strict', 'content'].includes(value));
|
|
48
|
+
if (establishesContainingBlock) {
|
|
49
|
+
const rect = node.getBoundingClientRect();
|
|
50
|
+
return { top: rect.top, left: rect.left };
|
|
51
|
+
}
|
|
52
|
+
node = node.parentElement;
|
|
53
|
+
}
|
|
54
|
+
return { top: 0, left: 0 };
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Resolves where the menu should render (flip) and where it should sit along
|
|
58
|
+
* the cross axis (shift), so it always stays fully inside the viewport
|
|
59
|
+
* regardless of where the toggle is placed or how the viewport is resized.
|
|
60
|
+
* This mimics floating-ui's `flip` + `shift` middlewares without adding the
|
|
61
|
+
* dependency, keeping the existing Bootstrap markup/classes.
|
|
62
|
+
*/
|
|
63
|
+
const computeCoords = (toggleRect, menuSize, placement, alignment) => {
|
|
64
|
+
const viewportWidth = window.innerWidth;
|
|
65
|
+
const viewportHeight = window.innerHeight;
|
|
66
|
+
const spaceBelow = viewportHeight - toggleRect.bottom;
|
|
67
|
+
const spaceAbove = toggleRect.top;
|
|
68
|
+
const spaceLeft = toggleRect.left;
|
|
69
|
+
const spaceRight = viewportWidth - toggleRect.right;
|
|
70
|
+
let side = placement === 'auto'
|
|
71
|
+
? 'down'
|
|
72
|
+
: placement;
|
|
73
|
+
if (placement === 'auto') {
|
|
74
|
+
side = spaceBelow >= menuSize.height + GAP || spaceBelow >= spaceAbove ? 'down' : 'up';
|
|
75
|
+
}
|
|
76
|
+
// Flip within the current axis if the chosen side can't fit the menu but
|
|
77
|
+
// the opposite side (same axis) can.
|
|
78
|
+
if (side === 'down' && spaceBelow < menuSize.height + GAP && spaceAbove > spaceBelow) {
|
|
79
|
+
side = 'up';
|
|
80
|
+
}
|
|
81
|
+
else if (side === 'up' && spaceAbove < menuSize.height + GAP && spaceBelow > spaceAbove) {
|
|
82
|
+
side = 'down';
|
|
83
|
+
}
|
|
84
|
+
else if (side === 'start' && spaceLeft < menuSize.width + GAP && spaceRight > spaceLeft) {
|
|
85
|
+
side = 'end';
|
|
86
|
+
}
|
|
87
|
+
else if (side === 'end' && spaceRight < menuSize.width + GAP && spaceLeft > spaceRight) {
|
|
88
|
+
side = 'start';
|
|
89
|
+
}
|
|
90
|
+
// Cross-axis fallback: e.g. a horizontally-centered toggle on a narrow
|
|
91
|
+
// viewport can't open sideways (neither `start` nor `end` fit), but there
|
|
92
|
+
// is plenty of room above/below — switch the whole axis in that case
|
|
93
|
+
// (and vice versa for `down`/`up` squeezed against a short viewport).
|
|
94
|
+
const bestVerticalSpace = Math.max(spaceBelow, spaceAbove);
|
|
95
|
+
const bestHorizontalSpace = Math.max(spaceLeft, spaceRight);
|
|
96
|
+
if (side === 'down' || side === 'up') {
|
|
97
|
+
if (bestVerticalSpace < MIN_USABLE_SPACE && bestHorizontalSpace > bestVerticalSpace) {
|
|
98
|
+
side = spaceRight >= spaceLeft ? 'end' : 'start';
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
else if (bestHorizontalSpace < menuSize.width + GAP
|
|
102
|
+
&& bestVerticalSpace > bestHorizontalSpace) {
|
|
103
|
+
side = spaceBelow >= spaceAbove ? 'down' : 'up';
|
|
104
|
+
}
|
|
105
|
+
if (side === 'down' || side === 'up') {
|
|
106
|
+
const top = side === 'down'
|
|
107
|
+
? toggleRect.bottom + GAP
|
|
108
|
+
: toggleRect.top - menuSize.height - GAP;
|
|
109
|
+
// Align horizontally per the requested `alignment` (start/end/center), then
|
|
110
|
+
// fall back to the opposite edge if the preferred alignment would overflow
|
|
111
|
+
// the viewport, and clamp as a final safety net so it never overflows.
|
|
112
|
+
let left;
|
|
113
|
+
if (alignment === 'end') {
|
|
114
|
+
left = toggleRect.right - menuSize.width;
|
|
115
|
+
}
|
|
116
|
+
else if (alignment === 'center') {
|
|
117
|
+
left = toggleRect.left + (toggleRect.width / 2) - (menuSize.width / 2);
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
left = toggleRect.left;
|
|
121
|
+
}
|
|
122
|
+
if (left + menuSize.width > viewportWidth - VIEWPORT_PADDING && alignment !== 'end') {
|
|
123
|
+
const altLeft = toggleRect.right - menuSize.width;
|
|
124
|
+
if (altLeft >= VIEWPORT_PADDING)
|
|
125
|
+
left = altLeft;
|
|
126
|
+
}
|
|
127
|
+
else if (left < VIEWPORT_PADDING && alignment !== 'start') {
|
|
128
|
+
const altLeft = toggleRect.left;
|
|
129
|
+
if (altLeft + menuSize.width <= viewportWidth - VIEWPORT_PADDING)
|
|
130
|
+
left = altLeft;
|
|
131
|
+
}
|
|
132
|
+
left = clamp(left, VIEWPORT_PADDING, Math.max(viewportWidth - menuSize.width - VIEWPORT_PADDING, VIEWPORT_PADDING));
|
|
133
|
+
const availableHeight = side === 'down' ? spaceBelow : spaceAbove;
|
|
134
|
+
// Cap strictly to the space actually available on the resolved side —
|
|
135
|
+
// MIN_USABLE_SPACE is only meant to influence the flip/shift decision
|
|
136
|
+
// above, not to force a taller box than what physically fits and
|
|
137
|
+
// overflow the viewport.
|
|
138
|
+
const maxUsableHeight = Math.max(availableHeight - GAP - VIEWPORT_PADDING, 0);
|
|
139
|
+
return {
|
|
140
|
+
top,
|
|
141
|
+
left,
|
|
142
|
+
minWidth: Math.max(toggleRect.width, 160),
|
|
143
|
+
maxHeight: `${maxUsableHeight}px`,
|
|
144
|
+
resolvedSide: side,
|
|
145
|
+
};
|
|
146
|
+
}
|
|
147
|
+
// side is 'start' or 'end'
|
|
148
|
+
let left = side === 'start'
|
|
149
|
+
? toggleRect.left - menuSize.width - GAP
|
|
150
|
+
: toggleRect.right + GAP;
|
|
151
|
+
// Safety-net clamp: in rare cases where the toggle is squeezed so tightly
|
|
152
|
+
// that no side of any axis has enough room, keep the menu inside the
|
|
153
|
+
// viewport rather than letting it render off-screen.
|
|
154
|
+
left = clamp(left, VIEWPORT_PADDING, Math.max(viewportWidth - menuSize.width - VIEWPORT_PADDING, VIEWPORT_PADDING));
|
|
155
|
+
// Shift vertically: align with the toggle's top edge by default, but switch
|
|
156
|
+
// to the bottom edge (or clamp) if that would overflow the viewport.
|
|
157
|
+
let { top } = toggleRect;
|
|
158
|
+
if (top + menuSize.height > viewportHeight - VIEWPORT_PADDING) {
|
|
159
|
+
top = toggleRect.bottom - menuSize.height;
|
|
160
|
+
}
|
|
161
|
+
top = clamp(top, VIEWPORT_PADDING, Math.max(viewportHeight - menuSize.height - VIEWPORT_PADDING, VIEWPORT_PADDING));
|
|
162
|
+
return {
|
|
163
|
+
top,
|
|
164
|
+
left,
|
|
165
|
+
minWidth: Math.max(toggleRect.width, 160),
|
|
166
|
+
maxHeight: `${Math.max(viewportHeight - top - VIEWPORT_PADDING, 0)}px`,
|
|
167
|
+
resolvedSide: side,
|
|
168
|
+
};
|
|
169
|
+
};
|
|
170
|
+
function DDropdown({ actions, dropdownToggle, className, classNameMenu, asPortal = false, placement = 'auto', alignment = 'start', }) {
|
|
171
|
+
const [open, setOpen] = useState(false);
|
|
172
|
+
const [coords, setCoords] = useState(null);
|
|
173
|
+
// Initialize from `placement` (falling back to 'down' for 'auto') so the
|
|
174
|
+
// wrapper's `drop-*` class reflects the requested side even before the
|
|
175
|
+
// first open/measurement, matching the previous `drop-${placement}` class
|
|
176
|
+
// behavior (relevant for Bootstrap caret/orientation styling).
|
|
177
|
+
const [resolvedSide, setResolvedSide] = useState(placement === 'auto' ? 'down' : placement);
|
|
178
|
+
// Wraps the toggle in both modes — used to read its viewport-relative rect.
|
|
179
|
+
const toggleRef = useRef(null);
|
|
180
|
+
// Ref on the rendered <ul> — used to measure its size and for outside-click detection.
|
|
181
|
+
const menuRef = useRef(null);
|
|
182
|
+
const toggle = () => {
|
|
183
|
+
setCoords(null);
|
|
184
|
+
setOpen((prev) => !prev);
|
|
185
|
+
};
|
|
186
|
+
// Measures the toggle + menu and (re)computes fixed, pixel-perfect coords
|
|
187
|
+
// with collision detection, so the menu never overflows the viewport.
|
|
188
|
+
const updatePosition = useCallback(() => {
|
|
189
|
+
if (!toggleRef.current || !menuRef.current)
|
|
190
|
+
return;
|
|
191
|
+
const toggleRect = toggleRef.current.getBoundingClientRect();
|
|
192
|
+
// If the toggle itself has scrolled completely out of the viewport
|
|
193
|
+
// (regardless of `placement`), close the menu instead of leaving it
|
|
194
|
+
// rendered detached from the toggle that opened it.
|
|
195
|
+
const toggleIsMeasured = toggleRect.width > 0 || toggleRect.height > 0;
|
|
196
|
+
const toggleIsOutOfView = toggleRect.bottom <= 0
|
|
197
|
+
|| toggleRect.top >= window.innerHeight
|
|
198
|
+
|| toggleRect.right <= 0
|
|
199
|
+
|| toggleRect.left >= window.innerWidth;
|
|
200
|
+
if (toggleIsMeasured && toggleIsOutOfView) {
|
|
201
|
+
setOpen(false);
|
|
202
|
+
return;
|
|
203
|
+
}
|
|
204
|
+
const menuRect = menuRef.current.getBoundingClientRect();
|
|
205
|
+
const _a = computeCoords(toggleRect, { width: menuRect.width, height: menuRect.height }, placement, alignment), { resolvedSide: side } = _a, menuCoords = __rest(_a, ["resolvedSide"]);
|
|
206
|
+
// In portal mode the menu is appended to document.body, whose containing
|
|
207
|
+
// block for `fixed` is always the viewport (no adjustment needed). In
|
|
208
|
+
// inline mode the menu stays next to the toggle, so we must look for a
|
|
209
|
+
// containing-block-establishing ancestor starting from the toggle.
|
|
210
|
+
const offset = asPortal
|
|
211
|
+
? { top: 0, left: 0 }
|
|
212
|
+
: getFixedPositioningOffset(toggleRef.current);
|
|
213
|
+
setResolvedSide(side);
|
|
214
|
+
setCoords(Object.assign(Object.assign({}, menuCoords), { top: menuCoords.top - offset.top, left: menuCoords.left - offset.left }));
|
|
215
|
+
}, [placement, alignment, asPortal]);
|
|
216
|
+
// Throttles scroll/resize-triggered updates to at most once per frame,
|
|
217
|
+
// avoiding repeated forced reflows on busy/high-frequency scroll events.
|
|
218
|
+
const rafIdRef = useRef(null);
|
|
219
|
+
const scheduleUpdatePosition = useCallback(() => {
|
|
220
|
+
if (rafIdRef.current !== null)
|
|
221
|
+
return;
|
|
222
|
+
rafIdRef.current = window.requestAnimationFrame(() => {
|
|
223
|
+
rafIdRef.current = null;
|
|
224
|
+
updatePosition();
|
|
225
|
+
});
|
|
226
|
+
}, [updatePosition]);
|
|
227
|
+
// Outside-click detection (checks both the toggle and the floating menu,
|
|
228
|
+
// since in portal mode the menu isn't a DOM descendant of the toggle).
|
|
229
|
+
useLayoutEffect(() => {
|
|
230
|
+
if (!open)
|
|
231
|
+
return () => { };
|
|
232
|
+
const handler = (event) => {
|
|
233
|
+
var _a, _b;
|
|
234
|
+
const target = event.target;
|
|
235
|
+
if (!((_a = toggleRef.current) === null || _a === void 0 ? void 0 : _a.contains(target)) && !((_b = menuRef.current) === null || _b === void 0 ? void 0 : _b.contains(target))) {
|
|
236
|
+
setOpen(false);
|
|
237
|
+
}
|
|
238
|
+
};
|
|
239
|
+
document.addEventListener('mousedown', handler);
|
|
240
|
+
return () => document.removeEventListener('mousedown', handler);
|
|
241
|
+
}, [open]);
|
|
242
|
+
// Computes the initial position synchronously (before paint, to avoid a
|
|
243
|
+
// flicker) and keeps it fresh while the menu is open and the viewport
|
|
244
|
+
// scrolls or resizes (throttled to one update per frame, see above).
|
|
245
|
+
useLayoutEffect(() => {
|
|
246
|
+
if (!open)
|
|
247
|
+
return () => { };
|
|
248
|
+
updatePosition();
|
|
249
|
+
window.addEventListener('scroll', scheduleUpdatePosition, { passive: true, capture: true });
|
|
250
|
+
window.addEventListener('resize', scheduleUpdatePosition, { passive: true });
|
|
251
|
+
return () => {
|
|
252
|
+
window.removeEventListener('scroll', scheduleUpdatePosition, { capture: true });
|
|
253
|
+
window.removeEventListener('resize', scheduleUpdatePosition);
|
|
254
|
+
if (rafIdRef.current !== null) {
|
|
255
|
+
window.cancelAnimationFrame(rafIdRef.current);
|
|
256
|
+
rafIdRef.current = null;
|
|
257
|
+
}
|
|
258
|
+
};
|
|
259
|
+
}, [open, updatePosition, scheduleUpdatePosition]);
|
|
260
|
+
let ToggleElement;
|
|
261
|
+
if (dropdownToggle) {
|
|
262
|
+
ToggleElement = typeof dropdownToggle === 'function'
|
|
263
|
+
? dropdownToggle({ open, toggle })
|
|
264
|
+
: dropdownToggle;
|
|
265
|
+
}
|
|
266
|
+
else {
|
|
267
|
+
ToggleElement = (jsx(DButtonIcon, { variant: "link", stopPropagationEnabled: false, "aria-label": "Toggle Dropdown", "aria-haspopup": "menu", "aria-expanded": open, onClick: toggle, icon: "MoreVertical" }));
|
|
268
|
+
}
|
|
269
|
+
// Until the first measurement is available, keep the menu off-screen but
|
|
270
|
+
// measurable (visibility: hidden preserves layout, unlike display: none).
|
|
271
|
+
const menuStyle = coords
|
|
272
|
+
? {
|
|
273
|
+
position: 'fixed',
|
|
274
|
+
top: coords.top,
|
|
275
|
+
left: coords.left,
|
|
276
|
+
minWidth: coords.minWidth,
|
|
277
|
+
maxHeight: coords.maxHeight,
|
|
278
|
+
overflowY: 'auto',
|
|
279
|
+
zIndex: 1050,
|
|
280
|
+
transform: 'none',
|
|
281
|
+
visibility: 'visible',
|
|
282
|
+
}
|
|
283
|
+
: {
|
|
284
|
+
position: 'fixed',
|
|
285
|
+
top: 0,
|
|
286
|
+
left: 0,
|
|
287
|
+
visibility: 'hidden',
|
|
288
|
+
pointerEvents: 'none',
|
|
289
|
+
zIndex: 1050,
|
|
290
|
+
transform: 'none',
|
|
291
|
+
};
|
|
292
|
+
const menuItems = (jsx("ul", { ref: menuRef, role: "menu", className: classNames('dropdown-menu p-2', { show: open }, classNameMenu), style: menuStyle, children: actions.map((action, index) => {
|
|
293
|
+
if (action.isDivider) {
|
|
294
|
+
return jsx("hr", { className: "dropdown-divider" }, index);
|
|
295
|
+
}
|
|
296
|
+
return (jsx("li", { children: action.href ? (jsxs("a", { className: getItemClass(action), href: action.href, onClick: (e) => {
|
|
297
|
+
if (action.disabled) {
|
|
298
|
+
e.preventDefault();
|
|
299
|
+
}
|
|
300
|
+
else {
|
|
301
|
+
setOpen(false);
|
|
302
|
+
}
|
|
303
|
+
}, children: [action.icon && jsx(DIcon, { icon: action.icon, className: "me-2", size: "1rem" }), action.label] })) : (jsxs("button", { className: getItemClass(action), type: "button", onClick: () => {
|
|
304
|
+
var _a;
|
|
305
|
+
if (!action.disabled) {
|
|
306
|
+
(_a = action.onClick) === null || _a === void 0 ? void 0 : _a.call(action);
|
|
307
|
+
setOpen(false);
|
|
308
|
+
}
|
|
309
|
+
}, disabled: action.disabled, children: [action.icon && jsx(DIcon, { icon: action.icon, className: "me-2", size: "1rem" }), action.label] })) }, index));
|
|
310
|
+
}) }));
|
|
311
|
+
return (jsxs("div", { ref: toggleRef, className: classNames(`dropdown drop-${resolvedSide} d-inline-block`, className), children: [ToggleElement, open && (asPortal ? createPortal(menuItems, document.body) : menuItems)] }));
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
export { DDropdown as default };
|
|
315
|
+
//# sourceMappingURL=DDropdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DDropdown.js","sources":["../../../../dist-transpiled/components/DDropdown/DDropdown.js"],"sourcesContent":["import { __rest } from \"tslib\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\n/* eslint-disable react/no-array-index-key */\nimport { useCallback, useLayoutEffect, useRef, useState, } from 'react';\nimport { createPortal } from 'react-dom';\nimport classNames from 'classnames';\nimport DButtonIcon from '../DButtonIcon';\nimport DIcon from '../DIcon';\n// Gap between the toggle and the menu.\nconst GAP = 4;\n// Minimum distance the menu should keep from the viewport edges.\nconst VIEWPORT_PADDING = 8;\n// Minimum usable height left for the menu before we consider a side unusable.\nconst MIN_USABLE_SPACE = 120;\nconst getItemClass = (action) => classNames({\n 'dropdown-item d-flex align-items-center': true,\n [`dropdown-item-${action.color}`]: !!action.color,\n disabled: action.disabled,\n});\nconst clamp = (value, min, max) => {\n if (max < min)\n return min;\n return Math.min(Math.max(value, min), max);\n};\n/**\n * `position: fixed` is normally relative to the viewport, but any ancestor\n * with a `transform`, `perspective`, `filter`, `will-change` (of those) or a\n * non-trivial `contain` establishes a new containing block, making `fixed`\n * behave like `absolute` relative to that ancestor instead (e.g. Storybook's\n * docs canvas wrapper, animated cards, sticky containers, etc.). We detect\n * that ancestor so the computed coordinates can be adjusted accordingly,\n * keeping the menu correctly anchored to the toggle in every context.\n */\nconst getFixedPositioningOffset = (fromEl) => {\n var _a;\n let node = (_a = fromEl === null || fromEl === void 0 ? void 0 : fromEl.parentElement) !== null && _a !== void 0 ? _a : null;\n while (node && node !== document.body) {\n const cs = window.getComputedStyle(node);\n // Treat empty/undefined values as \"unset\" (jsdom returns \"\" rather than\n // the CSS initial value like \"none\" for some of these properties).\n const isSet = (value) => !!value && value !== 'none';\n const establishesContainingBlock = isSet(cs.transform)\n || isSet(cs.perspective)\n || isSet(cs.filter)\n || isSet(cs.backdropFilter)\n || ['transform', 'perspective', 'filter'].some((prop) => { var _a; return (_a = cs.willChange) === null || _a === void 0 ? void 0 : _a.includes(prop); })\n || cs.contain.split(' ').some((value) => ['layout', 'paint', 'strict', 'content'].includes(value));\n if (establishesContainingBlock) {\n const rect = node.getBoundingClientRect();\n return { top: rect.top, left: rect.left };\n }\n node = node.parentElement;\n }\n return { top: 0, left: 0 };\n};\n/**\n * Resolves where the menu should render (flip) and where it should sit along\n * the cross axis (shift), so it always stays fully inside the viewport\n * regardless of where the toggle is placed or how the viewport is resized.\n * This mimics floating-ui's `flip` + `shift` middlewares without adding the\n * dependency, keeping the existing Bootstrap markup/classes.\n */\nconst computeCoords = (toggleRect, menuSize, placement, alignment) => {\n const viewportWidth = window.innerWidth;\n const viewportHeight = window.innerHeight;\n const spaceBelow = viewportHeight - toggleRect.bottom;\n const spaceAbove = toggleRect.top;\n const spaceLeft = toggleRect.left;\n const spaceRight = viewportWidth - toggleRect.right;\n let side = placement === 'auto'\n ? 'down'\n : placement;\n if (placement === 'auto') {\n side = spaceBelow >= menuSize.height + GAP || spaceBelow >= spaceAbove ? 'down' : 'up';\n }\n // Flip within the current axis if the chosen side can't fit the menu but\n // the opposite side (same axis) can.\n if (side === 'down' && spaceBelow < menuSize.height + GAP && spaceAbove > spaceBelow) {\n side = 'up';\n }\n else if (side === 'up' && spaceAbove < menuSize.height + GAP && spaceBelow > spaceAbove) {\n side = 'down';\n }\n else if (side === 'start' && spaceLeft < menuSize.width + GAP && spaceRight > spaceLeft) {\n side = 'end';\n }\n else if (side === 'end' && spaceRight < menuSize.width + GAP && spaceLeft > spaceRight) {\n side = 'start';\n }\n // Cross-axis fallback: e.g. a horizontally-centered toggle on a narrow\n // viewport can't open sideways (neither `start` nor `end` fit), but there\n // is plenty of room above/below — switch the whole axis in that case\n // (and vice versa for `down`/`up` squeezed against a short viewport).\n const bestVerticalSpace = Math.max(spaceBelow, spaceAbove);\n const bestHorizontalSpace = Math.max(spaceLeft, spaceRight);\n if (side === 'down' || side === 'up') {\n if (bestVerticalSpace < MIN_USABLE_SPACE && bestHorizontalSpace > bestVerticalSpace) {\n side = spaceRight >= spaceLeft ? 'end' : 'start';\n }\n }\n else if (bestHorizontalSpace < menuSize.width + GAP\n && bestVerticalSpace > bestHorizontalSpace) {\n side = spaceBelow >= spaceAbove ? 'down' : 'up';\n }\n if (side === 'down' || side === 'up') {\n const top = side === 'down'\n ? toggleRect.bottom + GAP\n : toggleRect.top - menuSize.height - GAP;\n // Align horizontally per the requested `alignment` (start/end/center), then\n // fall back to the opposite edge if the preferred alignment would overflow\n // the viewport, and clamp as a final safety net so it never overflows.\n let left;\n if (alignment === 'end') {\n left = toggleRect.right - menuSize.width;\n }\n else if (alignment === 'center') {\n left = toggleRect.left + (toggleRect.width / 2) - (menuSize.width / 2);\n }\n else {\n left = toggleRect.left;\n }\n if (left + menuSize.width > viewportWidth - VIEWPORT_PADDING && alignment !== 'end') {\n const altLeft = toggleRect.right - menuSize.width;\n if (altLeft >= VIEWPORT_PADDING)\n left = altLeft;\n }\n else if (left < VIEWPORT_PADDING && alignment !== 'start') {\n const altLeft = toggleRect.left;\n if (altLeft + menuSize.width <= viewportWidth - VIEWPORT_PADDING)\n left = altLeft;\n }\n left = clamp(left, VIEWPORT_PADDING, Math.max(viewportWidth - menuSize.width - VIEWPORT_PADDING, VIEWPORT_PADDING));\n const availableHeight = side === 'down' ? spaceBelow : spaceAbove;\n // Cap strictly to the space actually available on the resolved side —\n // MIN_USABLE_SPACE is only meant to influence the flip/shift decision\n // above, not to force a taller box than what physically fits and\n // overflow the viewport.\n const maxUsableHeight = Math.max(availableHeight - GAP - VIEWPORT_PADDING, 0);\n return {\n top,\n left,\n minWidth: Math.max(toggleRect.width, 160),\n maxHeight: `${maxUsableHeight}px`,\n resolvedSide: side,\n };\n }\n // side is 'start' or 'end'\n let left = side === 'start'\n ? toggleRect.left - menuSize.width - GAP\n : toggleRect.right + GAP;\n // Safety-net clamp: in rare cases where the toggle is squeezed so tightly\n // that no side of any axis has enough room, keep the menu inside the\n // viewport rather than letting it render off-screen.\n left = clamp(left, VIEWPORT_PADDING, Math.max(viewportWidth - menuSize.width - VIEWPORT_PADDING, VIEWPORT_PADDING));\n // Shift vertically: align with the toggle's top edge by default, but switch\n // to the bottom edge (or clamp) if that would overflow the viewport.\n let { top } = toggleRect;\n if (top + menuSize.height > viewportHeight - VIEWPORT_PADDING) {\n top = toggleRect.bottom - menuSize.height;\n }\n top = clamp(top, VIEWPORT_PADDING, Math.max(viewportHeight - menuSize.height - VIEWPORT_PADDING, VIEWPORT_PADDING));\n return {\n top,\n left,\n minWidth: Math.max(toggleRect.width, 160),\n maxHeight: `${Math.max(viewportHeight - top - VIEWPORT_PADDING, 0)}px`,\n resolvedSide: side,\n };\n};\nexport default function DDropdown({ actions, dropdownToggle, className, classNameMenu, asPortal = false, placement = 'auto', alignment = 'start', }) {\n const [open, setOpen] = useState(false);\n const [coords, setCoords] = useState(null);\n // Initialize from `placement` (falling back to 'down' for 'auto') so the\n // wrapper's `drop-*` class reflects the requested side even before the\n // first open/measurement, matching the previous `drop-${placement}` class\n // behavior (relevant for Bootstrap caret/orientation styling).\n const [resolvedSide, setResolvedSide] = useState(placement === 'auto' ? 'down' : placement);\n // Wraps the toggle in both modes — used to read its viewport-relative rect.\n const toggleRef = useRef(null);\n // Ref on the rendered <ul> — used to measure its size and for outside-click detection.\n const menuRef = useRef(null);\n const toggle = () => {\n setCoords(null);\n setOpen((prev) => !prev);\n };\n // Measures the toggle + menu and (re)computes fixed, pixel-perfect coords\n // with collision detection, so the menu never overflows the viewport.\n const updatePosition = useCallback(() => {\n if (!toggleRef.current || !menuRef.current)\n return;\n const toggleRect = toggleRef.current.getBoundingClientRect();\n // If the toggle itself has scrolled completely out of the viewport\n // (regardless of `placement`), close the menu instead of leaving it\n // rendered detached from the toggle that opened it.\n const toggleIsMeasured = toggleRect.width > 0 || toggleRect.height > 0;\n const toggleIsOutOfView = toggleRect.bottom <= 0\n || toggleRect.top >= window.innerHeight\n || toggleRect.right <= 0\n || toggleRect.left >= window.innerWidth;\n if (toggleIsMeasured && toggleIsOutOfView) {\n setOpen(false);\n return;\n }\n const menuRect = menuRef.current.getBoundingClientRect();\n const _a = computeCoords(toggleRect, { width: menuRect.width, height: menuRect.height }, placement, alignment), { resolvedSide: side } = _a, menuCoords = __rest(_a, [\"resolvedSide\"]);\n // In portal mode the menu is appended to document.body, whose containing\n // block for `fixed` is always the viewport (no adjustment needed). In\n // inline mode the menu stays next to the toggle, so we must look for a\n // containing-block-establishing ancestor starting from the toggle.\n const offset = asPortal\n ? { top: 0, left: 0 }\n : getFixedPositioningOffset(toggleRef.current);\n setResolvedSide(side);\n setCoords(Object.assign(Object.assign({}, menuCoords), { top: menuCoords.top - offset.top, left: menuCoords.left - offset.left }));\n }, [placement, alignment, asPortal]);\n // Throttles scroll/resize-triggered updates to at most once per frame,\n // avoiding repeated forced reflows on busy/high-frequency scroll events.\n const rafIdRef = useRef(null);\n const scheduleUpdatePosition = useCallback(() => {\n if (rafIdRef.current !== null)\n return;\n rafIdRef.current = window.requestAnimationFrame(() => {\n rafIdRef.current = null;\n updatePosition();\n });\n }, [updatePosition]);\n // Outside-click detection (checks both the toggle and the floating menu,\n // since in portal mode the menu isn't a DOM descendant of the toggle).\n useLayoutEffect(() => {\n if (!open)\n return () => { };\n const handler = (event) => {\n var _a, _b;\n const target = event.target;\n if (!((_a = toggleRef.current) === null || _a === void 0 ? void 0 : _a.contains(target)) && !((_b = menuRef.current) === null || _b === void 0 ? void 0 : _b.contains(target))) {\n setOpen(false);\n }\n };\n document.addEventListener('mousedown', handler);\n return () => document.removeEventListener('mousedown', handler);\n }, [open]);\n // Computes the initial position synchronously (before paint, to avoid a\n // flicker) and keeps it fresh while the menu is open and the viewport\n // scrolls or resizes (throttled to one update per frame, see above).\n useLayoutEffect(() => {\n if (!open)\n return () => { };\n updatePosition();\n window.addEventListener('scroll', scheduleUpdatePosition, { passive: true, capture: true });\n window.addEventListener('resize', scheduleUpdatePosition, { passive: true });\n return () => {\n window.removeEventListener('scroll', scheduleUpdatePosition, { capture: true });\n window.removeEventListener('resize', scheduleUpdatePosition);\n if (rafIdRef.current !== null) {\n window.cancelAnimationFrame(rafIdRef.current);\n rafIdRef.current = null;\n }\n };\n }, [open, updatePosition, scheduleUpdatePosition]);\n let ToggleElement;\n if (dropdownToggle) {\n ToggleElement = typeof dropdownToggle === 'function'\n ? dropdownToggle({ open, toggle })\n : dropdownToggle;\n }\n else {\n ToggleElement = (_jsx(DButtonIcon, { variant: \"link\", stopPropagationEnabled: false, \"aria-label\": \"Toggle Dropdown\", \"aria-haspopup\": \"menu\", \"aria-expanded\": open, onClick: toggle, icon: \"MoreVertical\" }));\n }\n // Until the first measurement is available, keep the menu off-screen but\n // measurable (visibility: hidden preserves layout, unlike display: none).\n const menuStyle = coords\n ? {\n position: 'fixed',\n top: coords.top,\n left: coords.left,\n minWidth: coords.minWidth,\n maxHeight: coords.maxHeight,\n overflowY: 'auto',\n zIndex: 1050,\n transform: 'none',\n visibility: 'visible',\n }\n : {\n position: 'fixed',\n top: 0,\n left: 0,\n visibility: 'hidden',\n pointerEvents: 'none',\n zIndex: 1050,\n transform: 'none',\n };\n const menuItems = (_jsx(\"ul\", { ref: menuRef, role: \"menu\", className: classNames('dropdown-menu p-2', { show: open }, classNameMenu), style: menuStyle, children: actions.map((action, index) => {\n if (action.isDivider) {\n return _jsx(\"hr\", { className: \"dropdown-divider\" }, index);\n }\n return (_jsx(\"li\", { children: action.href ? (_jsxs(\"a\", { className: getItemClass(action), href: action.href, onClick: (e) => {\n if (action.disabled) {\n e.preventDefault();\n }\n else {\n setOpen(false);\n }\n }, children: [action.icon && _jsx(DIcon, { icon: action.icon, className: \"me-2\", size: \"1rem\" }), action.label] })) : (_jsxs(\"button\", { className: getItemClass(action), type: \"button\", onClick: () => {\n var _a;\n if (!action.disabled) {\n (_a = action.onClick) === null || _a === void 0 ? void 0 : _a.call(action);\n setOpen(false);\n }\n }, disabled: action.disabled, children: [action.icon && _jsx(DIcon, { icon: action.icon, className: \"me-2\", size: \"1rem\" }), action.label] })) }, index));\n }) }));\n return (_jsxs(\"div\", { ref: toggleRef, className: classNames(`dropdown drop-${resolvedSide} d-inline-block`, className), children: [ToggleElement, open && (asPortal ? createPortal(menuItems, document.body) : menuItems)] }));\n}\n//# sourceMappingURL=DDropdown.js.map"],"names":["_jsx","_jsxs"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { jsx } from 'react/jsx-runtime';
|
|
2
|
+
import { useCallback } from 'react';
|
|
3
|
+
import { getErrorMessage, ErrorBoundary } from 'react-error-boundary';
|
|
4
|
+
export { getErrorMessage, useErrorBoundary } from 'react-error-boundary';
|
|
5
|
+
import DefaultErrorBoundary from './components/DefaultErrorBoundary.js';
|
|
6
|
+
|
|
7
|
+
function DErrorBoundary({ name, fallback, resetKeys, onReset, onError, children, }) {
|
|
8
|
+
const handleError = useCallback((error, info) => {
|
|
9
|
+
// eslint-disable-next-line no-console
|
|
10
|
+
console.error(`[DErrorBoundary${name ? `:${name}` : ''}]`, getErrorMessage(error), info);
|
|
11
|
+
onError === null || onError === void 0 ? void 0 : onError(error, info);
|
|
12
|
+
}, [name, onError]);
|
|
13
|
+
const FallbackRender = useCallback((props) => {
|
|
14
|
+
if (fallback)
|
|
15
|
+
return fallback(props);
|
|
16
|
+
return (jsx(DefaultErrorBoundary, { resetErrorBoundary: props.resetErrorBoundary }));
|
|
17
|
+
}, [fallback]);
|
|
18
|
+
return (jsx(ErrorBoundary, { resetKeys: resetKeys, onReset: onReset, onError: handleError, fallbackRender: FallbackRender, children: children }));
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export { DErrorBoundary as default };
|
|
22
|
+
//# sourceMappingURL=DErrorBoundary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DErrorBoundary.js","sources":["../../../../dist-transpiled/components/DErrorBoundary/DErrorBoundary.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useCallback, } from 'react';\nimport { ErrorBoundary, useErrorBoundary, getErrorMessage, } from 'react-error-boundary';\nimport DefaultErrorBoundary from './components/DefaultErrorBoundary';\nexport { useErrorBoundary, getErrorMessage, };\nexport default function DErrorBoundary({ name, fallback, resetKeys, onReset, onError, children, }) {\n const handleError = useCallback((error, info) => {\n // eslint-disable-next-line no-console\n console.error(`[DErrorBoundary${name ? `:${name}` : ''}]`, getErrorMessage(error), info);\n onError === null || onError === void 0 ? void 0 : onError(error, info);\n }, [name, onError]);\n const FallbackRender = useCallback((props) => {\n if (fallback)\n return fallback(props);\n return (_jsx(DefaultErrorBoundary, { resetErrorBoundary: props.resetErrorBoundary }));\n }, [fallback]);\n return (_jsx(ErrorBoundary, { resetKeys: resetKeys, onReset: onReset, onError: handleError, fallbackRender: FallbackRender, children: children }));\n}\n//# sourceMappingURL=DErrorBoundary.js.map"],"names":["_jsx"],"mappings":";;;;;;AAKe,SAAS,cAAc,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,GAAG,EAAE;AACnG,IAAI,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,KAAK,EAAE,IAAI,KAAK;AACrD;AACA,QAAQ,OAAO,CAAC,KAAK,CAAC,CAAC,eAAe,EAAE,IAAI,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC;AAChG,QAAQ,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;AAC9E,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACvB,IAAI,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,KAAK,KAAK;AAClD,QAAQ,IAAI,QAAQ;AACpB,YAAY,OAAO,QAAQ,CAAC,KAAK,CAAC;AAClC,QAAQ,QAAQA,GAAI,CAAC,oBAAoB,EAAE,EAAE,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAAE,CAAC;AAC5F,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AAClB,IAAI,QAAQA,GAAI,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACrJ;;;;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
2
|
+
import DAlert from '../../DAlert/DAlert.js';
|
|
3
|
+
import DButton from '../../DButton/DButton.js';
|
|
4
|
+
|
|
5
|
+
function DefaultErrorBoundary({ resetErrorBoundary }) {
|
|
6
|
+
return (jsx(DAlert, { color: "danger", showClose: false, children: jsxs("div", { className: "d-error-boundary-content", children: [jsx("span", { children: "An unexpected error occurred." }), jsx(DButton, { color: "secondary", variant: "outline", size: "sm", onClick: resetErrorBoundary, children: "Retry" })] }) }));
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export { DefaultErrorBoundary as default };
|
|
10
|
+
//# sourceMappingURL=DefaultErrorBoundary.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DefaultErrorBoundary.js","sources":["../../../../../dist-transpiled/components/DErrorBoundary/components/DefaultErrorBoundary.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport DAlert from '../../DAlert';\nimport DButton from '../../DButton';\nexport default function DefaultErrorBoundary({ resetErrorBoundary }) {\n return (_jsx(DAlert, { color: \"danger\", showClose: false, children: _jsxs(\"div\", { className: \"d-error-boundary-content\", children: [_jsx(\"span\", { children: \"An unexpected error occurred.\" }), _jsx(DButton, { color: \"secondary\", variant: \"outline\", size: \"sm\", onClick: resetErrorBoundary, children: \"Retry\" })] }) }));\n}\n//# sourceMappingURL=DefaultErrorBoundary.js.map"],"names":["_jsx","_jsxs"],"mappings":";;;;AAGe,SAAS,oBAAoB,CAAC,EAAE,kBAAkB,EAAE,EAAE;AACrE,IAAI,QAAQA,GAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAEC,IAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,0BAA0B,EAAE,QAAQ,EAAE,CAACD,GAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,+BAA+B,EAAE,CAAC,EAAEA,GAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAClU;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { __rest } from 'tslib';
|
|
2
|
+
import { jsx } from 'react/jsx-runtime';
|
|
3
|
+
import DIconBase from '../DIconBase/DIconBase.js';
|
|
4
|
+
import { useDContext } from '../../contexts/DContext.js';
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Thin wrapper over `DIconBase` that fills the icon-font configuration
|
|
8
|
+
* (`familyClass`, `familyPrefix`, `materialStyle`) from `DContextProvider`
|
|
9
|
+
* whenever the caller does not pass it explicitly.
|
|
10
|
+
*
|
|
11
|
+
* Name resolution itself — registry, then lucide-react, then the icon-font
|
|
12
|
+
* family — lives in `DIconBase`, so both components behave identically.
|
|
13
|
+
*/
|
|
14
|
+
function DIcon(_a) {
|
|
15
|
+
var { icon, familyClass: propFamilyClass, familyPrefix: propFamilyPrefix, materialStyle: propMaterialStyle } = _a, props = __rest(_a, ["icon", "familyClass", "familyPrefix", "materialStyle"]);
|
|
16
|
+
const { icon: { familyClass, familyPrefix, materialStyle, }, } = useDContext();
|
|
17
|
+
return (jsx(DIconBase, Object.assign({ icon: icon, familyClass: propFamilyClass !== null && propFamilyClass !== void 0 ? propFamilyClass : familyClass, familyPrefix: propFamilyPrefix !== null && propFamilyPrefix !== void 0 ? propFamilyPrefix : familyPrefix, materialStyle: propMaterialStyle !== null && propMaterialStyle !== void 0 ? propMaterialStyle : materialStyle }, props)));
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
export { DIcon as default };
|
|
21
|
+
//# sourceMappingURL=DIcon.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"DIcon.js","sources":["../../../../dist-transpiled/components/DIcon/DIcon.js"],"sourcesContent":["import { __rest } from \"tslib\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport DIconBase from '../DIconBase';\nimport { useDContext } from '../../contexts';\n/**\n * Thin wrapper over `DIconBase` that fills the icon-font configuration\n * (`familyClass`, `familyPrefix`, `materialStyle`) from `DContextProvider`\n * whenever the caller does not pass it explicitly.\n *\n * Name resolution itself — registry, then lucide-react, then the icon-font\n * family — lives in `DIconBase`, so both components behave identically.\n */\nexport default function DIcon(_a) {\n var { icon, familyClass: propFamilyClass, familyPrefix: propFamilyPrefix, materialStyle: propMaterialStyle } = _a, props = __rest(_a, [\"icon\", \"familyClass\", \"familyPrefix\", \"materialStyle\"]);\n const { icon: { familyClass, familyPrefix, materialStyle, }, } = useDContext();\n return (_jsx(DIconBase, Object.assign({ icon: icon, familyClass: propFamilyClass !== null && propFamilyClass !== void 0 ? propFamilyClass : familyClass, familyPrefix: propFamilyPrefix !== null && propFamilyPrefix !== void 0 ? propFamilyPrefix : familyPrefix, materialStyle: propMaterialStyle !== null && propMaterialStyle !== void 0 ? propMaterialStyle : materialStyle }, props)));\n}\n//# sourceMappingURL=DIcon.js.map"],"names":["_jsx"],"mappings":";;;;;AAIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAAS,KAAK,CAAC,EAAE,EAAE;AAClC,IAAI,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,aAAa,EAAE,iBAAiB,EAAE,GAAG,EAAE,EAAE,KAAK,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,eAAe,CAAC,CAAC;AACnM,IAAI,MAAM,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,GAAG,GAAG,GAAG,WAAW,EAAE;AAClF,IAAI,QAAQA,GAAI,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,KAAK,IAAI,IAAI,eAAe,KAAK,MAAM,GAAG,eAAe,GAAG,WAAW,EAAE,YAAY,EAAE,gBAAgB,KAAK,IAAI,IAAI,gBAAgB,KAAK,MAAM,GAAG,gBAAgB,GAAG,YAAY,EAAE,aAAa,EAAE,iBAAiB,KAAK,IAAI,IAAI,iBAAiB,KAAK,MAAM,GAAG,iBAAiB,GAAG,aAAa,EAAE,EAAE,KAAK,CAAC,CAAC;AAC/X;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
|