@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,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Warns, once per icon and only outside production builds, that an icon-only
|
|
3
|
+
* button has no accessible name.
|
|
4
|
+
*
|
|
5
|
+
* The control has no text to fall back on and its icon is hidden from the
|
|
6
|
+
* accessibility tree, so the name has to be given explicitly. `aria-label` is
|
|
7
|
+
* the direct way; on a button `aria-labelledby` and `title` count too, since
|
|
8
|
+
* `rest` reaches the DOM there, while an anchor drops them — hence `kind`, so
|
|
9
|
+
* the advice matches what the element can actually receive.
|
|
10
|
+
*
|
|
11
|
+
* A legacy icon-font icon used to leak its ligature as the name by accident —
|
|
12
|
+
* never a good one, being unlocalised and often meaningless ("more_vert") — and
|
|
13
|
+
* no longer does, so the omission is now visible instead of silent.
|
|
14
|
+
*
|
|
15
|
+
* The `process.env.NODE_ENV` guard is what bundlers constant-fold, so the whole
|
|
16
|
+
* call — and this module — drops out of a consumer's production bundle.
|
|
17
|
+
*/
|
|
18
|
+
export default function warnMissingAccessibleName(icon: string, kind: 'button' | 'link'): void;
|
|
@@ -1,5 +1,13 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import type { DIconBaseProps } from '../DIconBase';
|
|
3
3
|
type Props = DIconBaseProps;
|
|
4
|
+
/**
|
|
5
|
+
* Thin wrapper over `DIconBase` that fills the icon-font configuration
|
|
6
|
+
* (`familyClass`, `familyPrefix`, `materialStyle`) from `DContextProvider`
|
|
7
|
+
* whenever the caller does not pass it explicitly.
|
|
8
|
+
*
|
|
9
|
+
* Name resolution itself — registry, then lucide-react, then the icon-font
|
|
10
|
+
* family — lives in `DIconBase`, so both components behave identically.
|
|
11
|
+
*/
|
|
4
12
|
export default function DIcon({ icon, familyClass: propFamilyClass, familyPrefix: propFamilyPrefix, materialStyle: propMaterialStyle, ...props }: Props): import("react").JSX.Element;
|
|
5
13
|
export {};
|
|
@@ -17,7 +17,49 @@ type Props = BaseProps & {
|
|
|
17
17
|
familyClass?: string;
|
|
18
18
|
familyPrefix?: string;
|
|
19
19
|
strokeWidth?: number;
|
|
20
|
+
/**
|
|
21
|
+
* Hides the icon from the accessibility tree. Defaults to `true`, because
|
|
22
|
+
* an icon is almost always decorative: it sits next to a visible label, or
|
|
23
|
+
* inside a control that already carries its own accessible name.
|
|
24
|
+
*
|
|
25
|
+
* Pass `ariaLabel` instead when the icon itself is the only carrier of
|
|
26
|
+
* meaning. `ariaHidden` wins over `ariaLabel`, since hiding is absolute;
|
|
27
|
+
* `ariaHidden={false}` alongside an `ariaLabel` is not a conflict, as both
|
|
28
|
+
* expose the icon and the name is kept. Setting `ariaHidden={false}` on its
|
|
29
|
+
* own exposes an unnamed graphic and warns outside production builds.
|
|
30
|
+
*
|
|
31
|
+
* It is forwarded to the icon so a hidden `<svg>` follows the wrapper, but a
|
|
32
|
+
* registry component that hardcodes its own `aria-hidden` rather than
|
|
33
|
+
* spreading the props it receives stays hidden regardless.
|
|
34
|
+
*/
|
|
35
|
+
ariaHidden?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Accessible name for an icon that carries meaning on its own. Renders
|
|
38
|
+
* `role="img"` alongside it and drops the default `aria-hidden`.
|
|
39
|
+
*/
|
|
40
|
+
ariaLabel?: string;
|
|
20
41
|
};
|
|
21
42
|
export type DIconBaseProps = Props;
|
|
22
|
-
|
|
43
|
+
/**
|
|
44
|
+
* Renders an icon, resolving the `icon` prop in this order:
|
|
45
|
+
*
|
|
46
|
+
* 1. **Icon registry** — a string name found in `DContextProvider`'s
|
|
47
|
+
* `iconRegistry` renders the component registered under it. A component
|
|
48
|
+
* passed directly skips this step and renders as-is.
|
|
49
|
+
* 2. **lucide-react** — a PascalCase name exported by lucide-react renders that
|
|
50
|
+
* icon. When `materialStyle` is on, this step is skipped and the name is
|
|
51
|
+
* emitted as the text content of the icon-font element instead.
|
|
52
|
+
* 3. **Icon-font family** — anything left over renders as
|
|
53
|
+
* `<i class="{familyClass} {familyPrefix}{name}">`, the legacy path for
|
|
54
|
+
* Material Symbols and Bootstrap Icons. Outside production builds, a name
|
|
55
|
+
* that reaches this step while the family is still the package default logs
|
|
56
|
+
* a one-time warning.
|
|
57
|
+
*
|
|
58
|
+
* A name that resolves nowhere and has no family configured renders `?`.
|
|
59
|
+
*
|
|
60
|
+
* Every path is hidden from the accessibility tree by default (`aria-hidden`),
|
|
61
|
+
* since icons are overwhelmingly decorative. See `ariaHidden` / `ariaLabel` to
|
|
62
|
+
* override that for an icon that carries meaning on its own.
|
|
63
|
+
*/
|
|
64
|
+
export default function DIconBase({ icon: iconProp, color, style, className, size, useListenerSize, hasCircle, materialStyle, familyClass, familyPrefix, strokeWidth, ariaHidden, ariaLabel, dataAttributes, }: Props): import("react").JSX.Element;
|
|
23
65
|
export {};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { IconComponent, IconValue } from '../interface';
|
|
2
|
+
/**
|
|
3
|
+
* Resolves a string icon name against the registry supplied through
|
|
4
|
+
* `DContextProvider`'s `iconRegistry` prop.
|
|
5
|
+
*
|
|
6
|
+
* This is the single implementation shared by `DIcon` and `DIconBase`, so both
|
|
7
|
+
* public entry points — and every Dynamic UI component that renders an icon
|
|
8
|
+
* through them — resolve names identically.
|
|
9
|
+
*
|
|
10
|
+
* A non-string `icon` is returned untouched: a component passed directly needs
|
|
11
|
+
* no lookup. A name missing from the registry is also returned untouched, so
|
|
12
|
+
* the caller can fall through to lucide-react and then to the icon-font family.
|
|
13
|
+
*/
|
|
14
|
+
export default function resolveIconFromRegistry(icon: IconValue, iconRegistry?: Record<string, IconComponent>): IconValue;
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Warns, once per name and only outside production builds, that an icon name
|
|
3
|
+
* resolved to neither the registry nor lucide-react and is falling back to the
|
|
4
|
+
* default icon font, which this package no longer ships.
|
|
5
|
+
*
|
|
6
|
+
* Whether that fallback renders depends on the host app: if it loads the font
|
|
7
|
+
* itself the `<i>` shows the glyph, and if it does not, nothing appears. The
|
|
8
|
+
* message states both possibilities instead of assuming the second.
|
|
9
|
+
*
|
|
10
|
+
* The `process.env.NODE_ENV` guard is what bundlers constant-fold, so the whole
|
|
11
|
+
* call — and this module — drops out of a consumer's production bundle.
|
|
12
|
+
*/
|
|
13
|
+
export default function warnUnknownIcon(name: string, familyClass: string, familyPrefix: string): void;
|
|
@@ -12,6 +12,7 @@ type Props = ComponentPropsWithoutRef<'input'> & BaseProps & {
|
|
|
12
12
|
invalid?: boolean;
|
|
13
13
|
valid?: boolean;
|
|
14
14
|
hint?: string;
|
|
15
|
+
/** Only applies when `type` is `checkbox`; ignored for `radio`. */
|
|
15
16
|
indeterminate?: boolean;
|
|
16
17
|
value?: string;
|
|
17
18
|
onChange?: (event: ChangeEvent<HTMLInputElement>) => void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
import type { BaseProps } from '../interface';
|
|
3
|
-
declare const ForwardedDInputRange: import("react").ForwardRefExoticComponent<Omit<Omit<Omit<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref">, "type">, "label" | keyof BaseProps | "
|
|
3
|
+
declare const ForwardedDInputRange: import("react").ForwardRefExoticComponent<Omit<Omit<Omit<import("react").DetailedHTMLProps<import("react").InputHTMLAttributes<HTMLInputElement>, HTMLInputElement>, "ref">, "type">, "label" | "ariaLabel" | keyof BaseProps | "filledValue"> & BaseProps & {
|
|
4
4
|
label?: string | undefined;
|
|
5
5
|
ariaLabel?: string | undefined;
|
|
6
6
|
filledValue?: boolean | undefined;
|
|
@@ -10,8 +10,9 @@ type Props = BaseProps & {
|
|
|
10
10
|
inputClassName?: string;
|
|
11
11
|
invalid?: boolean;
|
|
12
12
|
valid?: boolean;
|
|
13
|
+
hint?: string;
|
|
13
14
|
readonly?: boolean;
|
|
14
15
|
onChange?: (isChecked: boolean) => void;
|
|
15
16
|
};
|
|
16
|
-
export default function DInputSwitch({ id: idProp, label, ariaLabel, name, checked, disabled, invalid, valid, readonly, className, style, dataAttributes, inputClassName, onChange, }: Props): import("react").JSX.Element;
|
|
17
|
+
export default function DInputSwitch({ id: idProp, label, ariaLabel, name, checked, disabled, invalid, valid, hint, readonly, className, style, dataAttributes, inputClassName, onChange, }: Props): import("react").JSX.Element;
|
|
17
18
|
export {};
|
|
@@ -3,8 +3,12 @@ import type { BaseProps, FamilyIconProps } from '../../interface';
|
|
|
3
3
|
type Props = BaseProps & FamilyIconProps & PropsWithChildren<{
|
|
4
4
|
showCloseButton?: boolean;
|
|
5
5
|
icon?: string;
|
|
6
|
+
iconMaterialStyle?: boolean;
|
|
7
|
+
/**
|
|
8
|
+
* @deprecated Use `iconMaterialStyle` instead. It will be removed in a future major version.
|
|
9
|
+
*/
|
|
6
10
|
materialStyle?: boolean;
|
|
7
11
|
onClose?: () => void;
|
|
8
12
|
}>;
|
|
9
|
-
export default function DModalHeader({ showCloseButton, onClose, children, className, style, iconFamilyClass, iconFamilyPrefix, icon: iconProp, materialStyle, }: Props): import("react").JSX.Element;
|
|
13
|
+
export default function DModalHeader({ showCloseButton, onClose, children, className, style, iconFamilyClass, iconFamilyPrefix, icon: iconProp, iconMaterialStyle, materialStyle: materialStyleProp, }: Props): import("react").JSX.Element;
|
|
10
14
|
export {};
|
|
@@ -3,8 +3,12 @@ import type { BaseProps, FamilyIconProps } from '../../interface';
|
|
|
3
3
|
type Props = BaseProps & FamilyIconProps & PropsWithChildren<{
|
|
4
4
|
showCloseButton?: boolean;
|
|
5
5
|
icon?: string;
|
|
6
|
+
iconMaterialStyle?: boolean;
|
|
7
|
+
/**
|
|
8
|
+
* @deprecated Use `iconMaterialStyle` instead. It will be removed in a future major version.
|
|
9
|
+
*/
|
|
6
10
|
materialStyle?: boolean;
|
|
7
11
|
onClose?: () => void;
|
|
8
12
|
}>;
|
|
9
|
-
export default function DOffcanvasHeader({ showCloseButton, onClose, children, className, style, iconFamilyClass, iconFamilyPrefix, icon: iconProp, materialStyle, }: Props): import("react").JSX.Element;
|
|
13
|
+
export default function DOffcanvasHeader({ showCloseButton, onClose, children, className, style, iconFamilyClass, iconFamilyPrefix, icon: iconProp, iconMaterialStyle, materialStyle: materialStyleProp, }: Props): import("react").JSX.Element;
|
|
10
14
|
export {};
|
|
@@ -1,16 +1,51 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
2
|
import type { Placement } from '@floating-ui/react';
|
|
3
3
|
import type { BaseProps, ComponentSize } from '../interface';
|
|
4
|
-
export type Props = BaseProps &
|
|
4
|
+
export type Props = BaseProps & {
|
|
5
|
+
/** CSS class applied to the wrapper element that surrounds `Component` (the trigger). */
|
|
5
6
|
childrenClassName?: string;
|
|
7
|
+
/**
|
|
8
|
+
* Distance in pixels between the trigger and the floating tooltip.
|
|
9
|
+
* Defaults to arrow height + gap.
|
|
10
|
+
*/
|
|
6
11
|
offSet?: number;
|
|
12
|
+
/** Virtual padding, in pixels, used to keep the tooltip within the viewport boundaries. */
|
|
7
13
|
padding?: number;
|
|
14
|
+
/** When true, the tooltip opens when the pointer hovers over the trigger element. */
|
|
8
15
|
withHover?: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* When true, the tooltip opens when the trigger element receives keyboard focus
|
|
18
|
+
* (recommended for accessibility).
|
|
19
|
+
*/
|
|
9
20
|
withFocus?: boolean;
|
|
21
|
+
/** When true, the tooltip toggles open/closed when the trigger element is clicked. */
|
|
10
22
|
withClick?: boolean;
|
|
23
|
+
/** Controls the initial open state of the tooltip. */
|
|
11
24
|
open?: boolean;
|
|
25
|
+
/** Size of the tooltip content. Omit for the default size. */
|
|
12
26
|
size?: ComponentSize;
|
|
27
|
+
/**
|
|
28
|
+
* Preferred position of the tooltip relative to the trigger element.
|
|
29
|
+
* Flips automatically if there isn't enough space.
|
|
30
|
+
*/
|
|
13
31
|
placement?: Placement;
|
|
32
|
+
/**
|
|
33
|
+
* Element that triggers the tooltip. It is rendered inside a wrapper `<div>`
|
|
34
|
+
* that holds the Floating UI reference and the interaction handlers, so the
|
|
35
|
+
* trigger area is that wrapper rather than this node itself. Style it with
|
|
36
|
+
* `childrenClassName`.
|
|
37
|
+
*/
|
|
14
38
|
Component: ReactNode;
|
|
15
|
-
|
|
39
|
+
/**
|
|
40
|
+
* Floating content rendered inside the tooltip body. Keep it short and
|
|
41
|
+
* non-critical: the tooltip is only visible while it is open.
|
|
42
|
+
*/
|
|
43
|
+
children?: ReactNode;
|
|
44
|
+
};
|
|
45
|
+
/**
|
|
46
|
+
* Tooltip is an abstraction component that wraps any element (`Component`) and displays
|
|
47
|
+
* floating contextual content (`children`) positioned relative to it using Floating UI.
|
|
48
|
+
* Use it to add short, non-critical hints or descriptions triggered by hover, focus, or
|
|
49
|
+
* click, without altering the surrounding layout.
|
|
50
|
+
*/
|
|
16
51
|
export default function DTooltip({ className, childrenClassName, style, offSet, padding, withFocus, withClick, withHover, open, placement, size, Component, children, }: Props): import("react").JSX.Element;
|
|
@@ -1 +1,11 @@
|
|
|
1
1
|
export declare const PREFIX_BS = "bs-";
|
|
2
|
+
/**
|
|
3
|
+
* Default icon-font family configured by `DContextProvider`.
|
|
4
|
+
*
|
|
5
|
+
* `DIconBase` compares the family it receives against these values to tell an
|
|
6
|
+
* unconfigured consumer apart from one that deliberately opted into an icon
|
|
7
|
+
* font (Material Symbols, Bootstrap Icons). Only the former gets the
|
|
8
|
+
* development warning for an unresolved icon name.
|
|
9
|
+
*/
|
|
10
|
+
export declare const DEFAULT_ICON_FAMILY_CLASS = "bi";
|
|
11
|
+
export declare const DEFAULT_ICON_FAMILY_PREFIX = "bi-";
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The lucide-react icons Dynamic UI renders on its own, without the consumer
|
|
3
|
+
* asking for them by name.
|
|
4
|
+
*
|
|
5
|
+
* Two sources feed this list:
|
|
6
|
+
*
|
|
7
|
+
* - The `iconMap` defaults of `DContextProvider` (`src/contexts/DContext.tsx`),
|
|
8
|
+
* used by close buttons, chevrons, alert states, input adornments and the
|
|
9
|
+
* stepper checkmark.
|
|
10
|
+
* - Names hard-coded in component JSX or in a prop default, such as
|
|
11
|
+
* `DDropdown`'s toggle or `DVoucher`'s action buttons.
|
|
12
|
+
*
|
|
13
|
+
* Any bundler-level optimisation that narrows lucide-react down to the icons a
|
|
14
|
+
* widget actually uses must keep this set, or Dynamic UI components break for
|
|
15
|
+
* reasons the widget author cannot see in their own source. That is why the
|
|
16
|
+
* list ships in the package as `dist/icons-core.json` and is exported here.
|
|
17
|
+
*
|
|
18
|
+
* `src/icons/coreIcons.spec.ts` scans `src/components/**` and fails when an
|
|
19
|
+
* internally used icon name is missing from this list or absent from
|
|
20
|
+
* lucide-react, so the two cannot drift apart.
|
|
21
|
+
*/
|
|
22
|
+
export declare const CORE_LUCIDE_ICONS: readonly ["AlertCircle", "AlertTriangle", "Calendar", "Check", "CheckCircle", "ChevronDown", "ChevronLeft", "ChevronRight", "ChevronUp", "Eye", "EyeOff", "Info", "Minus", "Plus", "Search", "Upload", "X", "Circle", "CircleCheck", "CircleCheckBig", "Download", "FileText", "MoreVertical", "Paperclip", "RefreshCw", "Share2", "Trash"];
|
|
23
|
+
/** A name from {@link CORE_LUCIDE_ICONS}. */
|
|
24
|
+
export type CoreLucideIcon = typeof CORE_LUCIDE_ICONS[number];
|
package/dist/types/index.d.ts
CHANGED
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Builds an internal URL from a `path` and a set of query `params`, normalizing leading
|
|
3
|
+
* separators to prevent scheme-relative URLs (e.g. `//accounts` and `/\accounts` both become
|
|
4
|
+
* `/accounts`).
|
|
5
|
+
*
|
|
6
|
+
* The `path` is trimmed and every tab, line feed and carriage return is removed before
|
|
7
|
+
* building the result, because the URL parser ignores those characters too and they would
|
|
8
|
+
* otherwise hide a scheme-relative prefix (`/<TAB>/evil.com` resolves to `//evil.com`).
|
|
9
|
+
*
|
|
10
|
+
* Handles the special case where `path` is the literal string `'#'`, which happens when
|
|
11
|
+
* a Liquid template variable used as a link target is left unconfigured; in that case the
|
|
12
|
+
* params are ignored and `'#'` is returned as-is instead of building a broken URL.
|
|
13
|
+
*
|
|
14
|
+
* @param path - The path to build the URL from. Leading separators are stripped before
|
|
15
|
+
* building the result (`/accounts`, `//accounts` and `\accounts` are all treated as `accounts`).
|
|
16
|
+
* @param params - Key/value pairs serialized as the query string.
|
|
17
|
+
* @returns The resulting URL:
|
|
18
|
+
* - `'#'` when `path` normalizes to `'#'` (`'#'`, `'/#'`), ignoring the params.
|
|
19
|
+
* - `'/'` when `path` is empty and there are no params.
|
|
20
|
+
* - `'/?<query>'` when `path` is empty and there are params.
|
|
21
|
+
* - `'<path>'` or `'<path>?<query>'` when `path` starts with `#`, since a fragment must not be
|
|
22
|
+
* prefixed with `/` (it would navigate away from the current document).
|
|
23
|
+
* - `'/<path>'` or `'/<path>?<query>'` otherwise.
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* buildUrl('accounts', { account_id: '42' }); // '/accounts?account_id=42'
|
|
27
|
+
* buildUrl('//accounts', {}); // '/accounts'
|
|
28
|
+
* buildUrl('#', { account_id: '42' }); // '#'
|
|
29
|
+
* buildUrl('#accounts', { account_id: '42' }); // '#accounts?account_id=42'
|
|
30
|
+
* buildUrl('', { tab: 'movimientos' }); // '/?tab=movimientos'
|
|
31
|
+
*/
|
|
32
|
+
export default function buildUrl(path: string, params: Record<string, string | number>): string;
|
|
@@ -4,4 +4,6 @@ export { default as getQueryString } from './getQueryString';
|
|
|
4
4
|
export { default as changeQueryString } from './changeQueryString';
|
|
5
5
|
export { default as getCssVariable } from './getCssVariable';
|
|
6
6
|
export { default as validatePhoneNumber } from './validatePhoneNumber';
|
|
7
|
+
export { default as sanitizeHref } from './sanitizeHref';
|
|
8
|
+
export { default as buildUrl } from './buildUrl';
|
|
7
9
|
export * from './mediaQuery';
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Validates a `href` value and returns it only if it is safe to render as a link,
|
|
3
|
+
* preventing XSS through unsafe URL schemes and scheme-relative URLs.
|
|
4
|
+
*
|
|
5
|
+
* Before validating, the value is trimmed and every tab, line feed and carriage return is
|
|
6
|
+
* removed, because the URL parser ignores those characters too and they would otherwise
|
|
7
|
+
* hide an unsafe value from the checks below.
|
|
8
|
+
*
|
|
9
|
+
* A `href` is considered safe when it is either:
|
|
10
|
+
* - An absolute path starting with a single separator (e.g. `/accounts/42`). A leading `\`
|
|
11
|
+
* is normalized to `/` in the returned value, since that is how the browser resolves it.
|
|
12
|
+
* - A URL using one of the allowed schemes: `http:`, `https:`, `mailto:`, `tel:`.
|
|
13
|
+
*
|
|
14
|
+
* A `href` is rejected (returns `undefined`) when it is:
|
|
15
|
+
* - Empty or made only of whitespace/ignored characters (`''`, `' '`).
|
|
16
|
+
* - Scheme-relative (starts with two separators, e.g. `//evil.com`, `/\evil.com`,
|
|
17
|
+
* `/<TAB>/evil.com`), since the browser would resolve it using the current protocol and it
|
|
18
|
+
* can be used to redirect to an attacker-controlled host.
|
|
19
|
+
* - Using a disallowed/dangerous scheme, such as `javascript:` or `data:`
|
|
20
|
+
* (e.g. `javascript:alert(1)`, `data:text/html,<script>...</script>`).
|
|
21
|
+
* - Not parseable as an absolute URL and not an absolute path, such as bare fragments
|
|
22
|
+
* (`#anchor`) or scheme-less relative paths (`relative/path`). These cannot be validated
|
|
23
|
+
* against `SAFE_SCHEMES`, so they are rejected rather than assumed safe.
|
|
24
|
+
*
|
|
25
|
+
* @param href - The raw URL or path to validate, typically coming from user input,
|
|
26
|
+
* a CMS, or an external API.
|
|
27
|
+
* @returns The sanitized `href` when safe, `undefined` otherwise.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* sanitizeHref('/accounts/42'); // '/accounts/42'
|
|
31
|
+
* sanitizeHref('https://example.com'); // 'https://example.com'
|
|
32
|
+
* sanitizeHref('mailto:test@example.com'); // 'mailto:test@example.com'
|
|
33
|
+
* sanitizeHref('//evil.com'); // undefined
|
|
34
|
+
* sanitizeHref('/\\evil.com'); // undefined
|
|
35
|
+
* sanitizeHref('javascript:alert(1)'); // undefined
|
|
36
|
+
*/
|
|
37
|
+
export default function sanitizeHref(href: string): string | undefined;
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"sideEffects": [
|
|
4
4
|
"*.css"
|
|
5
5
|
],
|
|
6
|
-
"version": "2.
|
|
6
|
+
"version": "2.10.0",
|
|
7
7
|
"description": "React Dynamic Framework",
|
|
8
8
|
"license": "https://github.com/dynamic-framework/dynamic-ui/blob/master/LICENSE.md",
|
|
9
9
|
"repository": {
|
|
@@ -40,14 +40,16 @@
|
|
|
40
40
|
}
|
|
41
41
|
],
|
|
42
42
|
"scripts": {
|
|
43
|
-
"test": "jest",
|
|
44
|
-
"test:watch": "jest --watch",
|
|
45
|
-
"test:coverage": "jest --coverage",
|
|
43
|
+
"test": "jest --testPathPatterns=\\.spec\\.tsx?$",
|
|
44
|
+
"test:watch": "jest --testPathPatterns=\\.spec\\.tsx?$ --watch",
|
|
45
|
+
"test:coverage": "jest --testPathPatterns=\\.spec\\.tsx?$ --coverage",
|
|
46
|
+
"test:a11y": "jest --testPathPatterns=\\.a11y\\.test\\.tsx$",
|
|
46
47
|
"test:storybook": "test-storybook",
|
|
47
|
-
"build": "npm run clean && npm run build:react && npm run build:scss && npm run cp",
|
|
48
|
+
"build": "npm run clean && npm run build:react && npm run build:scss && npm run build:icons-core && npm run cp",
|
|
48
49
|
"build:react": "tsc -p ./tsconfig.build.json && rollup -c rollup.config.mjs",
|
|
49
50
|
"build:react:watch": "tsc -p ./tsconfig.build.json && rollup -c rollup.config.mjs",
|
|
50
51
|
"build:scss": "node scripts/build-scss.js",
|
|
52
|
+
"build:icons-core": "npx tsx scripts/build-icons-core.ts",
|
|
51
53
|
"build:scss:watch": "npx nodemon --watch src --ext scss --exec 'npm run build:scss'",
|
|
52
54
|
"dev:ts": "tsc -p tsconfig.build.json",
|
|
53
55
|
"dev:rollup": "rollup -c rollup.config.mjs",
|
|
@@ -80,13 +82,14 @@
|
|
|
80
82
|
"prepare": "husky",
|
|
81
83
|
"commitlint": "commitlint --edit",
|
|
82
84
|
"verify": "node scripts/verify.js",
|
|
83
|
-
"axe": "npx tsx scripts/generate-a11y-report.ts"
|
|
85
|
+
"axe": "npx tsx scripts/generate-a11y-report.ts",
|
|
86
|
+
"axe:browser": "npx tsx scripts/generate-a11y-browser-warnings.ts"
|
|
84
87
|
},
|
|
85
88
|
"engines": {
|
|
86
89
|
"node": ">=22.0.0"
|
|
87
90
|
},
|
|
88
91
|
"main": "./dist/index.js",
|
|
89
|
-
"module": "./dist/index.
|
|
92
|
+
"module": "./dist/esm/index.js",
|
|
90
93
|
"types": "./dist/types/index.d.ts",
|
|
91
94
|
"files": [
|
|
92
95
|
"dist/",
|
|
@@ -105,7 +108,6 @@
|
|
|
105
108
|
"file-selector": "~2.1.2",
|
|
106
109
|
"google-libphonenumber": "~3.2.43",
|
|
107
110
|
"html2canvas": "^1.4.1",
|
|
108
|
-
"jspdf": "^4.0.0",
|
|
109
111
|
"lucide-react": "^0.553.0",
|
|
110
112
|
"react-datepicker": "~8.3.0",
|
|
111
113
|
"react-error-boundary": "^6.1.0",
|
|
@@ -130,6 +132,7 @@
|
|
|
130
132
|
"@testing-library/user-event": "^14.6.1",
|
|
131
133
|
"@types/google-libphonenumber": "~7.4.30",
|
|
132
134
|
"@types/jest": "~29.5.12",
|
|
135
|
+
"@types/jest-axe": "^3.5.9",
|
|
133
136
|
"@types/node": "^22.0.0",
|
|
134
137
|
"@types/react": "^19.2.0",
|
|
135
138
|
"@types/react-dom": "^19.2.0",
|
|
@@ -157,7 +160,7 @@
|
|
|
157
160
|
"jest-axe": "^10.0.0",
|
|
158
161
|
"jest-environment-jsdom": "^30.3.0",
|
|
159
162
|
"lint-staged": "^15.2.10",
|
|
160
|
-
"playwright": "
|
|
163
|
+
"playwright": "1.61.1",
|
|
161
164
|
"postcss-cli": "~10.1.0",
|
|
162
165
|
"react": "~19.2.1",
|
|
163
166
|
"react-docgen-typescript": "^2.4.0",
|
package/src/style/_shame.scss
CHANGED
|
@@ -4,16 +4,12 @@
|
|
|
4
4
|
flex: 1;
|
|
5
5
|
}
|
|
6
6
|
|
|
7
|
+
// Deprecated by bootstrap 5.3, but still used in some components
|
|
7
8
|
.text-muted {
|
|
8
9
|
--#{$prefix}text-muted: var(--#{$prefix}gray-500);
|
|
9
10
|
color: var(--#{$prefix}text-muted) !important;
|
|
10
11
|
}
|
|
11
12
|
|
|
12
|
-
.form-text {
|
|
13
|
-
--#{$prefix}form-text: var(--#{$prefix}gray-500);
|
|
14
|
-
color: var(--#{$prefix}form-text) !important;
|
|
15
|
-
}
|
|
16
|
-
|
|
17
13
|
.spinner-border {
|
|
18
14
|
margin-top: 4px;
|
|
19
15
|
margin-bottom: 4px;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Box (DBox)
|
|
2
|
+
|
|
3
|
+
$box-component-bg: var(--#{$prefix}white) !default;
|
|
4
|
+
$box-component-border: 0 !default;
|
|
5
|
+
$box-component-border-radius: var(--#{$prefix}border-radius) !default;
|
|
6
|
+
$box-component-padding: var(--#{$prefix}ref-spacer-4) !default;
|
|
7
|
+
$box-component-shadow: var(--#{$prefix}box-shadow-sm) !default;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// scss-docs-start form-text-variables
|
|
2
2
|
$form-text-margin-top: var(--#{$prefix}ref-spacer-1) !default;
|
|
3
|
-
$form-text-color: var(--#{$prefix}gray-
|
|
3
|
+
$form-text-color: var(--#{$prefix}gray-500) !default;
|
|
4
4
|
// scss-docs-end form-text-variables
|
|
5
5
|
|
|
6
6
|
// scss-docs-start form-label-variables
|
|
@@ -81,8 +81,6 @@ $input-group-addon-border-color: transparent !default;
|
|
|
81
81
|
// custom
|
|
82
82
|
$input-group-sm-icon-size: $spacer-4 !default;
|
|
83
83
|
$input-group-lg-icon-size: $spacer-6 !default;
|
|
84
|
-
$form-text-padding-y: 0 !default;
|
|
85
|
-
$form-text-padding-x: 0 !default;
|
|
86
84
|
// end custom
|
|
87
85
|
|
|
88
86
|
// scss-docs-start form-select-variables
|
|
@@ -1 +1,12 @@
|
|
|
1
|
-
|
|
1
|
+
// Shadows
|
|
2
|
+
//
|
|
3
|
+
// Bootstrap's shadow scale, declared here explicitly so the elevation ramp is
|
|
4
|
+
// visible in one place and can be retuned quickly. Keep it monotonic:
|
|
5
|
+
// `sm` < default < `lg`, otherwise the `.shadow-*` / `.hover:shadow-*`
|
|
6
|
+
// utilities stop matching what Bootstrap's docs show.
|
|
7
|
+
//
|
|
8
|
+
// scss-docs-start box-shadow-variables
|
|
9
|
+
$box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15) !default;
|
|
10
|
+
$box-shadow-sm: 0 .125rem .25rem rgba(0, 0, 0, .075) !default;
|
|
11
|
+
$box-shadow-lg: 0 1rem 3rem rgba(0, 0, 0, .175) !default;
|
|
12
|
+
// scss-docs-end box-shadow-variables
|
|
@@ -8,10 +8,12 @@
|
|
|
8
8
|
}
|
|
9
9
|
|
|
10
10
|
.form-check {
|
|
11
|
+
// .form-check padding-start only accounts for the input width, the gap between
|
|
12
|
+
// the input and the label comes from .form-check-label's --bs-label-padding-x.
|
|
13
|
+
// The hint must repeat that offset to stay aligned with the label text.
|
|
11
14
|
.form-text {
|
|
12
|
-
--#{$prefix}form-text-padding: 0 var(--#{$prefix}ref-spacer-2);
|
|
13
|
-
|
|
14
15
|
display: flex;
|
|
16
|
+
padding-inline: var(--#{$prefix}ref-spacer-2);
|
|
15
17
|
}
|
|
16
18
|
|
|
17
19
|
@each $state, $data in $form-validation-states {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
.d-box {
|
|
2
|
-
--#{$prefix}box-component-bg: #{
|
|
3
|
-
--#{$prefix}box-component-border:
|
|
4
|
-
--#{$prefix}box-component-border-radius: #{
|
|
5
|
-
--#{$prefix}box-component-padding: #{
|
|
6
|
-
--#{$prefix}box-component-shadow: #{
|
|
2
|
+
--#{$prefix}box-component-bg: #{$box-component-bg};
|
|
3
|
+
--#{$prefix}box-component-border: #{$box-component-border};
|
|
4
|
+
--#{$prefix}box-component-border-radius: #{$box-component-border-radius};
|
|
5
|
+
--#{$prefix}box-component-padding: #{$box-component-padding};
|
|
6
|
+
--#{$prefix}box-component-shadow: #{$box-component-shadow};
|
|
7
7
|
|
|
8
8
|
padding: var(--#{$prefix}box-component-padding);
|
|
9
9
|
background-color: var(--#{$prefix}box-component-bg);
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
.form-text {
|
|
2
|
-
--#{$prefix}form-text-padding: #{$form-text-padding-y} #{$form-text-padding-x};
|
|
3
|
-
--#{$prefix}form-text-gap: var(--#{$prefix}ref-spacer-1);
|
|
4
|
-
--#{$prefix}form-text-color: #{$form-text-color};
|
|
5
|
-
|
|
6
|
-
display: inline-flex;
|
|
7
|
-
flex-direction: row;
|
|
8
|
-
gap: var(--#{$prefix}form-text-gap);
|
|
9
|
-
align-items: center;
|
|
10
|
-
padding: var(--#{$prefix}form-text-padding);
|
|
11
|
-
color: var(--#{$prefix}form-text-color);
|
|
12
|
-
}
|