@dynamic-framework/ui-react 2.9.0 → 2.11.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/DPortalStack-6zJm6JoD.js +14 -0
- package/dist/DPortalStack-6zJm6JoD.js.map +1 -0
- package/dist/DPortalStack-D1-GGU4C.js +12 -0
- package/dist/DPortalStack-D1-GGU4C.js.map +1 -0
- package/dist/api.json +7429 -0
- package/dist/css/dynamic-ui.css +95 -26
- 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 +55 -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 +42 -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 +95 -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 +94 -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 +107 -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 +25 -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 +108 -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 +88 -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 +60 -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 +104 -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 +43 -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 +39 -0
- package/dist/esm/components/DListGroup/DListGroup.js.map +1 -0
- package/dist/esm/components/DListGroup/ListGroupContext.js +11 -0
- package/dist/esm/components/DListGroup/ListGroupContext.js.map +1 -0
- package/dist/esm/components/DListGroup/components/DListGroupItem.js +59 -0
- package/dist/esm/components/DListGroup/components/DListGroupItem.js.map +1 -0
- package/dist/esm/components/DListGroup/components/warnInvalidListMarkup.js +30 -0
- package/dist/esm/components/DListGroup/components/warnInvalidListMarkup.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 +22 -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 +88 -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/createAriaGuidance.js +57 -0
- package/dist/esm/components/DSelect/createAriaGuidance.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 +106 -0
- package/dist/esm/components/DTabs/DTabs.js.map +1 -0
- package/dist/esm/components/DTabs/TabContext.js +14 -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/components/DTabsProvider.js +22 -0
- package/dist/esm/components/DTabs/components/DTabsProvider.js.map +1 -0
- package/dist/esm/components/DTabs/index.js +9 -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 +20 -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/components/internal/DFormLabel.js +46 -0
- package/dist/esm/components/internal/DFormLabel.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 +163 -0
- package/dist/esm/contexts/DPortalContext.js.map +1 -0
- package/dist/esm/contexts/portal/DPortalStack.js +12 -0
- package/dist/esm/contexts/portal/DPortalStack.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/useControlledState.js +51 -0
- package/dist/esm/hooks/useControlledState.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 +130 -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 +69 -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 +61 -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 +99 -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/hasLabelContent.js +48 -0
- package/dist/esm/utils/hasLabelContent.js.map +1 -0
- package/dist/esm/utils/isTextLabel.js +23 -0
- package/dist/esm/utils/isTextLabel.js.map +1 -0
- package/dist/esm/utils/labelClickGuard.js +61 -0
- package/dist/esm/utils/labelClickGuard.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/esm/utils/warnLabelUsage.js +57 -0
- package/dist/esm/utils/warnLabelUsage.js.map +1 -0
- package/dist/icons-core.json +33 -0
- package/dist/index.esm.js +1151 -184
- package/dist/index.esm.js.map +1 -1
- package/dist/index.js +1151 -182
- package/dist/index.js.map +1 -1
- package/dist/types/components/DAlert/DAlert.d.ts +16 -2
- package/dist/types/components/DButtonIcon/DButtonIcon.d.ts +9 -1
- package/dist/types/components/DButtonIcon/warnMissingAccessibleName.d.ts +18 -0
- package/dist/types/components/DDataStateWrapper/DDataStateWrapper.d.ts +29 -4
- package/dist/types/components/DDataStateWrapper/index.d.ts +1 -1
- package/dist/types/components/DErrorBoundary/DErrorBoundary.d.ts +6 -1
- package/dist/types/components/DErrorBoundary/components/DefaultErrorBoundary.d.ts +3 -1
- 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/DInput/DInput.d.ts +11 -2
- package/dist/types/components/DInputCheck/DInputCheck.d.ts +28 -3
- package/dist/types/components/DInputCounter/DInputCounter.d.ts +15 -3
- package/dist/types/components/DInputCurrency/DInputCurrency.d.ts +10 -3
- package/dist/types/components/DInputPhone/DInputPhone.d.ts +11 -2
- package/dist/types/components/DInputPin/DInputPin.d.ts +12 -2
- package/dist/types/components/DInputRange/DInputRange.d.ts +16 -3
- package/dist/types/components/DInputSelect/DInputSelect.d.ts +18 -3
- package/dist/types/components/DInputSwitch/DInputSwitch.d.ts +28 -3
- package/dist/types/components/DListGroup/DListGroup.d.ts +12 -1
- package/dist/types/components/DListGroup/ListGroupContext.d.ts +8 -0
- package/dist/types/components/DListGroup/components/DListGroupItem.d.ts +6 -1
- package/dist/types/components/DListGroup/components/warnInvalidListMarkup.d.ts +13 -0
- package/dist/types/components/DPasswordStrengthMeter/DPasswordStrengthMeter.d.ts +18 -3
- package/dist/types/components/DProgress/DProgress.d.ts +13 -1
- package/dist/types/components/DSelect/DSelect.d.ts +23 -3
- package/dist/types/components/DSelect/createAriaGuidance.d.ts +21 -0
- package/dist/types/components/DTabs/DTabs.d.ts +13 -2
- package/dist/types/components/DTabs/TabContext.d.ts +5 -0
- package/dist/types/components/DTabs/components/DTabsProvider.d.ts +11 -0
- package/dist/types/components/DTabs/index.d.ts +1 -0
- package/dist/types/components/DToast/DToast.d.ts +10 -3
- package/dist/types/components/DToastContainer/useDToast.d.ts +8 -1
- package/dist/types/components/config.d.ts +10 -0
- package/dist/types/components/index.d.ts +2 -2
- package/dist/types/components/interface.d.ts +7 -0
- package/dist/types/components/internal/DFormLabel.d.ts +30 -0
- package/dist/types/contexts/portal/DPortalStack.d.ts +13 -0
- package/dist/types/hooks/useControlledState.d.ts +17 -0
- package/dist/types/hooks/useInputCurrency.d.ts +26 -1
- package/dist/types/hooks/useMediaBreakpointUp.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/hasLabelContent.d.ts +30 -0
- package/dist/types/utils/isTextLabel.d.ts +17 -0
- package/dist/types/utils/labelClickGuard.d.ts +20 -0
- package/dist/types/utils/warnLabelUsage.d.ts +43 -0
- package/package.json +10 -5
- package/src/style/abstracts/variables/_body.scss +2 -2
- package/src/style/abstracts/variables/_chips.scss +2 -0
- package/src/style/abstracts/variables/_colors.scss +2 -2
- package/src/style/base/_buttons.scss +4 -1
- package/src/style/base/_input-group.scss +5 -2
- package/src/style/base/_list-group.scss +55 -0
- package/src/style/components/_d-chip.scss +7 -2
- package/src/style/components/_d-tabs.scss +3 -0
- package/src/style/helpers/_color-bg.scss +5 -0
- package/src/style/root/_root.scss +9 -0
- 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/buildUrl.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/sanitizeHref.spec.d.ts +0 -1
- package/dist/types/utils/tests/validatePhoneNumber.spec.d.ts +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
2
|
import type { BaseProps } from '../interface';
|
|
3
3
|
export type ValidationMessages = {
|
|
4
4
|
number: string;
|
|
@@ -10,7 +10,22 @@ export type ValidationMessages = {
|
|
|
10
10
|
export type ValidationCheck = 'uppercase' | 'lowercase' | 'number' | 'specialChar';
|
|
11
11
|
type Props = BaseProps & {
|
|
12
12
|
id?: string;
|
|
13
|
-
|
|
13
|
+
/**
|
|
14
|
+
* The label of the password field. Any node is accepted, so it can carry a
|
|
15
|
+
* link or an info trigger.
|
|
16
|
+
*
|
|
17
|
+
* Text doubles as the control's accessible name. A richer label does not, so
|
|
18
|
+
* pass `aria-label` alongside it; a development-only warning says so when it
|
|
19
|
+
* is missing.
|
|
20
|
+
*/
|
|
21
|
+
label?: ReactNode;
|
|
22
|
+
/**
|
|
23
|
+
* Accessible name of the password field. Spelled as the native attribute
|
|
24
|
+
* because it is forwarded straight to the nested input, which is also the
|
|
25
|
+
* component the development-only naming warning comes from — so the advice it
|
|
26
|
+
* gives names a prop this component accepts.
|
|
27
|
+
*/
|
|
28
|
+
'aria-label'?: string;
|
|
14
29
|
placeholder?: string;
|
|
15
30
|
value?: string;
|
|
16
31
|
name?: string;
|
|
@@ -21,5 +36,5 @@ type Props = BaseProps & {
|
|
|
21
36
|
onChange?: (value: string) => void;
|
|
22
37
|
readonly?: boolean;
|
|
23
38
|
};
|
|
24
|
-
export default function DPasswordStrengthMeter({ id, label, placeholder, value, name, disabled, invalid, validationMessages, enabledChecks, className, style, dataAttributes, onChange, readonly, }: Props): import("react").JSX.Element;
|
|
39
|
+
export default function DPasswordStrengthMeter({ id, label, 'aria-label': ariaLabel, placeholder, value, name, disabled, invalid, validationMessages, enabledChecks, className, style, dataAttributes, onChange, readonly, }: Props): import("react").JSX.Element;
|
|
25
40
|
export {};
|
|
@@ -7,6 +7,18 @@ type Props = BaseProps & {
|
|
|
7
7
|
hideCurrentValue?: boolean;
|
|
8
8
|
enableStripedAnimation?: boolean;
|
|
9
9
|
height?: string | number;
|
|
10
|
+
/**
|
|
11
|
+
* Accessible name of the bar. Describe what progresses (e.g. "Upload
|
|
12
|
+
* progress"), not the role. Defaults to `'Progress bar'` when neither this
|
|
13
|
+
* nor `ariaLabelledBy` is set.
|
|
14
|
+
*/
|
|
15
|
+
ariaLabel?: string;
|
|
16
|
+
/**
|
|
17
|
+
* Id of a visible element that names the bar, for a title rendered next to
|
|
18
|
+
* it. When set, `aria-label` is not rendered, so `ariaLabel` and the default
|
|
19
|
+
* name are ignored.
|
|
20
|
+
*/
|
|
21
|
+
ariaLabelledBy?: string;
|
|
10
22
|
};
|
|
11
|
-
export default function DProgress({ className, style, currentValue, minValue, maxValue, hideCurrentValue, enableStripedAnimation, height, dataAttributes, }: Props): import("react").JSX.Element;
|
|
23
|
+
export default function DProgress({ className, style, currentValue, minValue, maxValue, hideCurrentValue, enableStripedAnimation, height, ariaLabel, ariaLabelledBy, dataAttributes, }: Props): import("react").JSX.Element;
|
|
12
24
|
export {};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
2
|
import type { Props as SelectProps, GroupBase } from 'react-select';
|
|
3
3
|
import DSelectOptionCheck from './components/DSelectOptionCheck';
|
|
4
4
|
import DSelectOptionIcon from './components/DSelectOptionIcon';
|
|
@@ -13,7 +13,27 @@ import DSelectSingleValueEmojiText from './components/DSelectSingleValueEmojiTex
|
|
|
13
13
|
import DSelectPlaceholder from './components/DSelectPlaceholder';
|
|
14
14
|
import type { BaseProps, EndIconProps, FamilyIconProps, StartIconProps } from '../interface';
|
|
15
15
|
type Props<Option, IsMulti extends boolean, Group extends GroupBase<Option>> = BaseProps & FamilyIconProps & StartIconProps & EndIconProps & Omit<SelectProps<Option, IsMulti, Group>, 'isDisabled' | 'isClearable' | 'isLoading' | 'isRtl' | 'isSearchable' | 'isMulti'> & {
|
|
16
|
-
|
|
16
|
+
/**
|
|
17
|
+
* The label of the control. Any node is accepted, so it can carry a link, an
|
|
18
|
+
* info trigger or other markup.
|
|
19
|
+
*
|
|
20
|
+
* Text doubles as the control's accessible name. A richer label does not, so
|
|
21
|
+
* pass `ariaLabel`, or `aria-labelledby` pointing at a text element, alongside
|
|
22
|
+
* it; a development-only warning says so when both are missing. A rich label
|
|
23
|
+
* also does not fit `floatingLabel`, whose layout animates a single line of
|
|
24
|
+
* text.
|
|
25
|
+
*/
|
|
26
|
+
label?: ReactNode;
|
|
27
|
+
/**
|
|
28
|
+
* Accessible name of the control. It outranks the `label` in the accessible
|
|
29
|
+
* name computation, so use it to name a control with a non-text label or to
|
|
30
|
+
* replace the name a text label gives.
|
|
31
|
+
*
|
|
32
|
+
* Without a `label` or an `aria-labelledby` it falls back to a generic
|
|
33
|
+
* string, so an unlabelled select is never nameless. With either there is no
|
|
34
|
+
* fallback: a generic `aria-label` would override the label and make every
|
|
35
|
+
* select announce the same name.
|
|
36
|
+
*/
|
|
17
37
|
ariaLabel?: string;
|
|
18
38
|
hint?: string;
|
|
19
39
|
invalid?: boolean;
|
|
@@ -29,7 +49,7 @@ type Props<Option, IsMulti extends boolean, Group extends GroupBase<Option>> = B
|
|
|
29
49
|
searchable?: SelectProps<Option, IsMulti, Group>['isSearchable'];
|
|
30
50
|
multi?: SelectProps<Option, IsMulti, Group>['isMulti'];
|
|
31
51
|
};
|
|
32
|
-
declare function DSelect<Option = unknown, IsMulti extends boolean = false, Group extends GroupBase<Option> = GroupBase<Option>>({ id: idProp, className, style, label, hint, iconFamilyClass, iconFamilyPrefix, iconStart, iconStartFamilyClass, iconStartFamilyPrefix, iconStartAriaLabel, iconStartTabIndex, iconEnd, iconEndFamilyClass, iconEndFamilyPrefix, iconEndAriaLabel, iconEndTabIndex, invalid, valid, menuWithMaxContent, disabled, clearable, loading, floatingLabel, rtl, searchable, multi, components, defaultValue, placeholder, onIconStartClick, onIconEndClick, dataAttributes, ariaLabel, ...props }: Props<Option, IsMulti, Group>): import("react").JSX.Element;
|
|
52
|
+
declare function DSelect<Option = unknown, IsMulti extends boolean = false, Group extends GroupBase<Option> = GroupBase<Option>>({ id: idProp, inputId: inputIdProp, className, style, label, hint, iconFamilyClass, iconFamilyPrefix, iconStart, iconStartFamilyClass, iconStartFamilyPrefix, iconStartAriaLabel, iconStartTabIndex, iconEnd, iconEndFamilyClass, iconEndFamilyPrefix, iconEndAriaLabel, iconEndTabIndex, invalid, valid, menuWithMaxContent, disabled, clearable, loading, floatingLabel, rtl, searchable, multi, components, defaultValue, placeholder, onIconStartClick, onIconEndClick, dataAttributes, ariaLabel, ariaLiveMessages, ...props }: Props<Option, IsMulti, Group>): import("react").JSX.Element;
|
|
33
53
|
declare const _default: typeof DSelect & {
|
|
34
54
|
OptionCheck: typeof DSelectOptionCheck;
|
|
35
55
|
OptionIcon: typeof DSelectOptionIcon;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { AriaGuidanceProps } from 'react-select';
|
|
2
|
+
type Names = {
|
|
3
|
+
/** The `aria-labelledby` that reaches the input, if any. */
|
|
4
|
+
labelledBy?: string;
|
|
5
|
+
/** The text of the visible `label`, if it is text. */
|
|
6
|
+
label?: string;
|
|
7
|
+
};
|
|
8
|
+
/**
|
|
9
|
+
* Builds react-select's `guidance` live message around the control's name.
|
|
10
|
+
*
|
|
11
|
+
* react-select announces "<aria-label> is focused" on the first focus of the
|
|
12
|
+
* input, falling back to "Select" when there is no `aria-label`. Neither a text
|
|
13
|
+
* `label` nor `aria-labelledby` reaches that message, so the announcement would
|
|
14
|
+
* disagree with the name assistive technology exposes.
|
|
15
|
+
*
|
|
16
|
+
* The name follows the accessible name precedence: `aria-labelledby`, then
|
|
17
|
+
* `aria-label`, then the `<label>`. react-select does not export its default
|
|
18
|
+
* messages, so this mirrors them for every context and only swaps the name.
|
|
19
|
+
*/
|
|
20
|
+
export default function createAriaGuidance({ labelledBy, label }: Names): ({ "aria-label": ariaLabel, context, isSearchable, isMulti, tabSelectsValue, isInitialFocus, }: AriaGuidanceProps) => string;
|
|
21
|
+
export {};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { PropsWithChildren } from 'react';
|
|
2
2
|
import DTabContent from './components/DTabContent';
|
|
3
|
+
import DTabsProvider from './components/DTabsProvider';
|
|
3
4
|
import type { BaseProps } from '../interface';
|
|
4
5
|
export type DTabOption = {
|
|
5
6
|
label: string | React.ReactNode;
|
|
@@ -9,16 +10,26 @@ export type DTabOption = {
|
|
|
9
10
|
export type TabVariant = 'tabs' | 'pills' | 'underline' | 'toggle-button-group';
|
|
10
11
|
type Props = BaseProps & PropsWithChildren<{
|
|
11
12
|
classNameTab?: string;
|
|
13
|
+
/**
|
|
14
|
+
* Class for the panels container. It is only rendered when `DTabs` has
|
|
15
|
+
* children, so a tab bar used as pure navigation leaves no empty node.
|
|
16
|
+
*/
|
|
17
|
+
classNameContent?: string;
|
|
12
18
|
onChange?: (option: DTabOption) => void;
|
|
13
19
|
options: Array<DTabOption>;
|
|
14
|
-
|
|
20
|
+
/**
|
|
21
|
+
* Ignored inside `DTabs.Provider`, which owns the selection. Without it, the
|
|
22
|
+
* first enabled tab is selected when omitted.
|
|
23
|
+
*/
|
|
24
|
+
defaultSelected?: string;
|
|
15
25
|
vertical?: boolean;
|
|
16
26
|
variant?: TabVariant;
|
|
17
27
|
ariaLabel?: string;
|
|
18
28
|
ariaLabelledBy?: string;
|
|
19
29
|
}>;
|
|
20
|
-
declare function DTabs({ children, defaultSelected, onChange, options, className, classNameTab, style, vertical, variant, dataAttributes, ariaLabel, ariaLabelledBy, }: Props): import("react").JSX.Element;
|
|
30
|
+
declare function DTabs({ children, defaultSelected, onChange, options, className, classNameTab, classNameContent, style, vertical, variant, dataAttributes, ariaLabel, ariaLabelledBy, }: Props): import("react").JSX.Element;
|
|
21
31
|
declare const _default: typeof DTabs & {
|
|
22
32
|
Tab: typeof DTabContent;
|
|
33
|
+
Provider: typeof DTabsProvider;
|
|
23
34
|
};
|
|
24
35
|
export default _default;
|
|
@@ -4,5 +4,10 @@ type TabContextState = {
|
|
|
4
4
|
isSelected: (tab: DTabOption['tab']) => boolean;
|
|
5
5
|
};
|
|
6
6
|
declare const TabContext: import("react").Context<TabContextState | undefined>;
|
|
7
|
+
type TabsState = {
|
|
8
|
+
selected: string;
|
|
9
|
+
setSelected: (tab: string) => void;
|
|
10
|
+
};
|
|
11
|
+
export declare const TabsStateContext: import("react").Context<TabsState | undefined>;
|
|
7
12
|
export declare function useTabContext(): TabContextState;
|
|
8
13
|
export default TabContext;
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import type { PropsWithChildren } from 'react';
|
|
2
|
+
type Props = PropsWithChildren<{
|
|
3
|
+
defaultSelected: string;
|
|
4
|
+
}>;
|
|
5
|
+
/**
|
|
6
|
+
* Owns the selected tab so the tab bar (`DTabs`) and its panels (`DTabs.Tab`)
|
|
7
|
+
* can live anywhere inside it, e.g. the bar in a header and the panels in
|
|
8
|
+
* another column.
|
|
9
|
+
*/
|
|
10
|
+
export default function DTabsProvider({ defaultSelected, children, }: Props): import("react").JSX.Element;
|
|
11
|
+
export {};
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import DTabs from './DTabs';
|
|
2
2
|
export type { DTabOption } from './DTabs';
|
|
3
3
|
export { default as DTabContent } from './components/DTabContent';
|
|
4
|
+
export { default as DTabsProvider } from './components/DTabsProvider';
|
|
4
5
|
export { useTabContext } from './TabContext';
|
|
5
6
|
export default DTabs;
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
import { PropsWithChildren } from 'react';
|
|
2
2
|
import DToastHeader from './components/DToastHeader';
|
|
3
3
|
import DToastBody from './components/DToastBody';
|
|
4
|
-
import { BaseProps } from '../interface';
|
|
5
|
-
type Props = PropsWithChildren<BaseProps
|
|
6
|
-
|
|
4
|
+
import { BaseProps, LiveRegionRole } from '../interface';
|
|
5
|
+
type Props = PropsWithChildren<BaseProps & {
|
|
6
|
+
/**
|
|
7
|
+
* `alert` (default) interrupts the screen reader, for critical errors.
|
|
8
|
+
* `status` announces without interrupting, for confirmations and other
|
|
9
|
+
* non-critical messages. `none` renders no live region.
|
|
10
|
+
*/
|
|
11
|
+
role?: LiveRegionRole;
|
|
12
|
+
}>;
|
|
13
|
+
declare function DToast({ children, role, className, style, dataAttributes, }: Props): import("react").JSX.Element;
|
|
7
14
|
declare const _default: typeof DToast & {
|
|
8
15
|
Header: typeof DToastHeader;
|
|
9
16
|
Body: typeof DToastBody;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Renderable, Toast, ToastPosition, ValueFunction } from 'react-hot-toast';
|
|
2
|
-
import { ComponentStateColor } from '../interface';
|
|
2
|
+
import { ComponentStateColor, LiveRegionRole } from '../interface';
|
|
3
3
|
/**
|
|
4
4
|
* Data used to render the default DToast component via `useDToast`.
|
|
5
5
|
* When `description` is provided, the toast renders with a header and body layout.
|
|
@@ -19,6 +19,13 @@ export type ToastData = {
|
|
|
19
19
|
closeIcon?: string;
|
|
20
20
|
/** Applies the `toast-{color}` CSS modifier class. */
|
|
21
21
|
color?: ComponentStateColor;
|
|
22
|
+
/**
|
|
23
|
+
* Live region role of the toast. Defaults to `alert`; use `status` for
|
|
24
|
+
* confirmations so the screen reader doesn't interrupt the user.
|
|
25
|
+
*/
|
|
26
|
+
role?: LiveRegionRole;
|
|
27
|
+
/** Accessible name of the close button. Defaults to `"Close"`. */
|
|
28
|
+
closeAriaLabel?: string;
|
|
22
29
|
};
|
|
23
30
|
/** Options forwarded to react-hot-toast for a single toast instance. */
|
|
24
31
|
export interface DToastOptions {
|
|
@@ -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-";
|
|
@@ -42,7 +42,7 @@ export { default as DStepperDesktop } from './DStepperDesktop';
|
|
|
42
42
|
export { default as DStepperMobile } from './DStepperMobile';
|
|
43
43
|
export { default as DTooltip } from './DTooltip';
|
|
44
44
|
export { default as DTimeline } from './DTimeline';
|
|
45
|
-
export { default as DTabs, useTabContext, DTabContent, } from './DTabs';
|
|
45
|
+
export { default as DTabs, useTabContext, DTabContent, DTabsProvider, } from './DTabs';
|
|
46
46
|
export type { DTabOption } from './DTabs';
|
|
47
47
|
export { default as DToast } from './DToast';
|
|
48
48
|
export { default as DToastContainer, useDToast, } from './DToastContainer';
|
|
@@ -54,6 +54,6 @@ export { default as DVoucher, useScreenshot, useScreenshotDownload, useScreensho
|
|
|
54
54
|
export { default as DOtp } from './DOtp';
|
|
55
55
|
export { default as DErrorBoundary, useErrorBoundary, type FallbackProps, getErrorMessage, } from './DErrorBoundary';
|
|
56
56
|
export { default as DDataStateWrapper, EmptyState, ErrorState, LoadingState, } from './DDataStateWrapper';
|
|
57
|
-
export type { DDataStateMessages } from './DDataStateWrapper';
|
|
57
|
+
export type { DDataStateMessages, DDataStateWrapperListProps, DDataStateWrapperSingleProps, } from './DDataStateWrapper';
|
|
58
58
|
export { default as DConfirmModalContainer } from './DConfirmModal/DConfirmModalContainer';
|
|
59
59
|
export type { ConfirmModalEntry, ConfirmModalStore } from './DConfirmModal/types';
|
|
@@ -11,6 +11,13 @@ export type NavegableProps = {
|
|
|
11
11
|
'aria-current'?: string;
|
|
12
12
|
};
|
|
13
13
|
export type ComponentSize = 'sm' | 'lg';
|
|
14
|
+
/**
|
|
15
|
+
* How a message is exposed to assistive technology: `alert` interrupts the
|
|
16
|
+
* screen reader (critical errors), `status` is announced without interrupting
|
|
17
|
+
* (non-critical dynamic messages) and `none` is not a live region (static
|
|
18
|
+
* content already on screen).
|
|
19
|
+
*/
|
|
20
|
+
export type LiveRegionRole = 'alert' | 'status' | 'none';
|
|
14
21
|
export type BreakpointSize = 'sm' | 'md' | 'lg' | 'xl' | 'xxl';
|
|
15
22
|
export type AvatarSize = 'xs' | 'sm' | 'lg' | 'xl' | 'xxl';
|
|
16
23
|
export type DataAttributes = Record<`data-${string}`, string | number | undefined | null | boolean>;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
type Props = {
|
|
3
|
+
htmlFor: string;
|
|
4
|
+
className?: string;
|
|
5
|
+
children: ReactNode;
|
|
6
|
+
};
|
|
7
|
+
/**
|
|
8
|
+
* The `<label>` every form control renders, with the click guard already wired.
|
|
9
|
+
*
|
|
10
|
+
* Internal: it exists so the guard — and the lint exception it needs — lives in
|
|
11
|
+
* one place instead of being repeated across every input component.
|
|
12
|
+
*
|
|
13
|
+
* The guard runs in the capture phase, not on bubble: a tooltip or modal
|
|
14
|
+
* trigger that calls `stopPropagation()` in its own handler — a common pattern —
|
|
15
|
+
* would otherwise keep the guard from ever running, and the browser would go on
|
|
16
|
+
* to activate the labelled control. Confirmed in Chromium, where the same
|
|
17
|
+
* trigger toggles the control with a bubble-phase guard and does not with this
|
|
18
|
+
* one. Capturing changes nothing else: `preventDefault` applies to the default
|
|
19
|
+
* action, which is evaluated after propagation either way.
|
|
20
|
+
*
|
|
21
|
+
* The `jsx-a11y` rules below assume a click handler is being used to make a
|
|
22
|
+
* non-interactive element interactive, which then owes the keyboard an
|
|
23
|
+
* equivalent. This handler does the opposite: it suppresses a pointer-only
|
|
24
|
+
* behaviour, the click a label forwards to its control, and adds no way to
|
|
25
|
+
* activate anything. Keyboard support for a nested trigger is the consumer's:
|
|
26
|
+
* `<a href>` carries its own, while a `span` with a role and a tabindex is
|
|
27
|
+
* focusable but inert until they handle Enter and Space themselves.
|
|
28
|
+
*/
|
|
29
|
+
export default function DFormLabel({ htmlFor, className, children }: Props): import("react").JSX.Element;
|
|
30
|
+
export {};
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { FC } from 'react';
|
|
2
|
+
type Props = {
|
|
3
|
+
stack: Array<{
|
|
4
|
+
name: string;
|
|
5
|
+
Component: FC<{
|
|
6
|
+
name: string;
|
|
7
|
+
payload: any;
|
|
8
|
+
}>;
|
|
9
|
+
payload: unknown;
|
|
10
|
+
}>;
|
|
11
|
+
};
|
|
12
|
+
export default function DPortalStack({ stack }: Props): import("react").JSX.Element;
|
|
13
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Backs a value that the consumer may or may not drive, so a control works in
|
|
3
|
+
* both modes without a copy of the state drifting away from the props.
|
|
4
|
+
*
|
|
5
|
+
* A control counts as controlled only when the consumer passes the value *and*
|
|
6
|
+
* an `onChange` to push it back. The value on its own has always meant "start
|
|
7
|
+
* here" in this library — `<DInputCheck type="radio" checked />` inside a radio
|
|
8
|
+
* group, for one — so treating it as controlled would silently freeze those
|
|
9
|
+
* controls, and React emits no warning to say why: the components always attach
|
|
10
|
+
* their own `onChange` handler.
|
|
11
|
+
*
|
|
12
|
+
* @param value the value coming from props, or `undefined` when not passed.
|
|
13
|
+
* @param isControlled whether the consumer can drive the value back.
|
|
14
|
+
* @param initialValue what to start from when no value is passed.
|
|
15
|
+
* @returns the value to render, and a setter to call on every user change.
|
|
16
|
+
*/
|
|
17
|
+
export default function useControlledState<T>(value: T | undefined, isControlled: boolean, initialValue: T): [T, (next: T) => void];
|
|
@@ -1,9 +1,34 @@
|
|
|
1
1
|
import type { RefObject, ForwardedRef, FocusEvent } from 'react';
|
|
2
2
|
import type { Options } from 'currency.js';
|
|
3
|
-
|
|
3
|
+
/**
|
|
4
|
+
* State and handlers for a currency input: a formatted string while the field
|
|
5
|
+
* is idle and the raw number while it is being edited.
|
|
6
|
+
*
|
|
7
|
+
* `minValue`/`maxValue` bound the value. With `clamp` (default `true`) an
|
|
8
|
+
* out-of-range value is brought into range whenever it is not being typed:
|
|
9
|
+
* on mount, when `value` or the bounds change, and on blur. Every time the
|
|
10
|
+
* clamp changes the value, `onChange` receives the clamped number, so the
|
|
11
|
+
* input and the consumer's state never disagree. While the field is focused
|
|
12
|
+
* the typed number is reported as is, so a partial entry is not rewritten.
|
|
13
|
+
*
|
|
14
|
+
* With `clamp: false` the value is never changed: the bounds only feed
|
|
15
|
+
* `isOverMax` / `isUnderMin`, so the consumer can show its own message (e.g.
|
|
16
|
+
* "You exceeded the limit") and keep the entered amount.
|
|
17
|
+
*
|
|
18
|
+
* Controlled usage follows the same contract as a native controlled input:
|
|
19
|
+
* reflect `onChange` into `value` in the same event (`setState` in the
|
|
20
|
+
* handler). The hook keeps showing `value` whenever it isn't being edited, so
|
|
21
|
+
* a consumer can reject a change by keeping `value` as it was. Deferring the
|
|
22
|
+
* update (a timer, awaiting a request) makes the hook see a stale `value` in
|
|
23
|
+
* between: the field can flash the previous amount and a clamp can be
|
|
24
|
+
* reported again when the deferred value arrives.
|
|
25
|
+
*/
|
|
26
|
+
export default function useInputCurrency(currencyOptions: Options, value?: number, onFocus?: (event: FocusEvent<HTMLInputElement>) => void, onChange?: (value?: number) => void, onBlur?: (event: FocusEvent<HTMLInputElement>) => void, ref?: ForwardedRef<HTMLInputElement>, minValue?: number, maxValue?: number, clamp?: boolean): {
|
|
4
27
|
inputRef: RefObject<HTMLInputElement | null>;
|
|
5
28
|
innerValue: string;
|
|
6
29
|
innerType: string;
|
|
30
|
+
isOverMax: boolean;
|
|
31
|
+
isUnderMin: boolean;
|
|
7
32
|
handleOnFocus: (event: FocusEvent<HTMLInputElement>) => void;
|
|
8
33
|
handleOnChange: (newValue?: string) => void;
|
|
9
34
|
handleOnBlur: (event: FocusEvent<HTMLInputElement>) => void;
|
|
@@ -1,3 +1,13 @@
|
|
|
1
|
+
import type { BreakpointProps } from '../contexts/DContext';
|
|
2
|
+
/** Clears the cached CSS breakpoints. Only meant for tests. */
|
|
3
|
+
export declare function resetCssBreakpointsCache(): void;
|
|
4
|
+
/**
|
|
5
|
+
* Pixel value of a breakpoint. `DContextProvider` reads them from the CSS and
|
|
6
|
+
* shares them through the context; outside of it (a tree without the
|
|
7
|
+
* provider, or its first render) they are read from the same CSS variables
|
|
8
|
+
* here, so responsive props resolve either way.
|
|
9
|
+
*/
|
|
10
|
+
export declare function useBreakpointValue(breakpoint: keyof BreakpointProps): string;
|
|
1
11
|
export declare function useMediaBreakpointUpXs(useListener?: boolean): boolean;
|
|
2
12
|
export declare function useMediaBreakpointUpSm(useListener?: boolean): boolean;
|
|
3
13
|
export declare function useMediaBreakpointUpMd(useListener?: boolean): boolean;
|
|
@@ -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,30 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Whether a `label` node has something to render.
|
|
4
|
+
*
|
|
5
|
+
* The render paths cannot test `label` for truthiness: since the prop widened
|
|
6
|
+
* to `ReactNode` it also accepts `0`, which React renders as the text "0" and
|
|
7
|
+
* which `isTextLabel` counts as a text label, yet which a truthiness check
|
|
8
|
+
* would drop — leaving the control visibly unlabelled.
|
|
9
|
+
*
|
|
10
|
+
* Absent (`undefined`, `null`), empty (`''`) and boolean labels render nothing,
|
|
11
|
+
* so they are the ones that stand for "no label". The empty string matters
|
|
12
|
+
* because it is the default several components fall back to.
|
|
13
|
+
*
|
|
14
|
+
* Arrays are inspected rather than taken at face value: `label={items.map(...)}`
|
|
15
|
+
* over an empty list yields `[]`, while a list of skipped entries yields
|
|
16
|
+
* `[false, null]`. Both render nothing, so treating them as content would leave
|
|
17
|
+
* an empty `<label>` on the page — and make the naming warning fire over a
|
|
18
|
+
* label that was never there.
|
|
19
|
+
*
|
|
20
|
+
* Only arrays, though, even though `ReactNode` admits any iterable. Reading a
|
|
21
|
+
* one-shot iterator — a generator — would exhaust it here, and the component
|
|
22
|
+
* goes on to render the same value, so the label would vanish precisely because
|
|
23
|
+
* we checked for it. An array can be walked as often as needed; anything else
|
|
24
|
+
* is taken on faith.
|
|
25
|
+
*
|
|
26
|
+
* Anything else — an element, a portal, a generator — counts as content: what
|
|
27
|
+
* it renders is only knowable by rendering it, and an element that draws
|
|
28
|
+
* nothing visible is the consumer's decision rather than an absent label.
|
|
29
|
+
*/
|
|
30
|
+
export default function hasLabelContent(label: ReactNode): boolean;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Narrows a `label` node to the plain-text case.
|
|
4
|
+
*
|
|
5
|
+
* `label` accepts any `ReactNode` so patterns like a terms-and-conditions link
|
|
6
|
+
* or an info trigger can live next to the field name. Anything that is not text
|
|
7
|
+
* cannot be forwarded to a string-only attribute (`aria-label`, `placeholder`)
|
|
8
|
+
* nor laid out by Bootstrap's `form-floating`, so those paths check this first.
|
|
9
|
+
*
|
|
10
|
+
* Numbers and bigints count as text: React renders them as their string form
|
|
11
|
+
* and so does `String()`, which is what the string-only attributes end up
|
|
12
|
+
* receiving. `bigint` is part of `ReactNode` under these React types, so
|
|
13
|
+
* leaving it out made a label React draws as text get treated as a rich node.
|
|
14
|
+
* React 18 cannot render one, which `DFormLabel` handles by rendering its
|
|
15
|
+
* string form — the classification stays true for every supported React.
|
|
16
|
+
*/
|
|
17
|
+
export default function isTextLabel(label: ReactNode): label is string | number | bigint;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { MouseEvent } from 'react';
|
|
2
|
+
/**
|
|
3
|
+
* Stops a click on a non-native trigger inside a `<label>` from also activating
|
|
4
|
+
* the labelled control.
|
|
5
|
+
*
|
|
6
|
+
* Verified against Chromium, which forwards the click for every one of the
|
|
7
|
+
* `PSEUDO_INTERACTIVE` selectors above while exempting the native ones. Note
|
|
8
|
+
* that jsdom does not reproduce this: its `isInteractiveContent` counts any
|
|
9
|
+
* element carrying a `tabindex` as interactive content, so a jsdom test passes
|
|
10
|
+
* whether or not this guard exists. That is why the guard is unit-tested
|
|
11
|
+
* directly rather than through a rendered component.
|
|
12
|
+
*
|
|
13
|
+
* Native interactive content returns early rather than falling through, since
|
|
14
|
+
* `preventDefault` on those clicks would cancel the link navigation or the
|
|
15
|
+
* image map the label is meant to let through.
|
|
16
|
+
*
|
|
17
|
+
* `DFormLabel` wires this in the capture phase so a trigger that stops
|
|
18
|
+
* propagation cannot skip it.
|
|
19
|
+
*/
|
|
20
|
+
export default function labelClickGuard(event: MouseEvent<HTMLLabelElement>): void;
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
type WarnLabelUsageOptions = {
|
|
3
|
+
/** Component name, used to key the warning and to address the developer. */
|
|
4
|
+
component: string;
|
|
5
|
+
/** The `label` prop as received. */
|
|
6
|
+
label: ReactNode;
|
|
7
|
+
/** Whether an explicit accessible name reaches the control. */
|
|
8
|
+
hasAccessibleName: boolean;
|
|
9
|
+
/**
|
|
10
|
+
* The prop this component actually accepts for the accessible name, so the
|
|
11
|
+
* advice is usable: components that spread the native input attributes take
|
|
12
|
+
* `aria-label`, the rest expose the camelCase `ariaLabel` and reject the
|
|
13
|
+
* native one at compile time.
|
|
14
|
+
*/
|
|
15
|
+
accessibleNameProp: 'aria-label' | 'ariaLabel';
|
|
16
|
+
/** Whether the component is rendering in Bootstrap's floating-label layout. */
|
|
17
|
+
floatingLabel?: boolean;
|
|
18
|
+
};
|
|
19
|
+
/**
|
|
20
|
+
* Warns, only outside production builds, about the two ways a non-text `label`
|
|
21
|
+
* goes wrong.
|
|
22
|
+
*
|
|
23
|
+
* A text label doubles as the control's accessible name. A `ReactNode` one does
|
|
24
|
+
* not: the name becomes whatever the subtree happens to compute to, which for a
|
|
25
|
+
* label carrying a link or an icon trigger reads as the wrong thing or as
|
|
26
|
+
* nothing at all — so an explicit name is needed. Which prop carries it differs
|
|
27
|
+
* per component, hence `accessibleNameProp`: naming the wrong one would send
|
|
28
|
+
* the developer to a prop their component rejects.
|
|
29
|
+
*
|
|
30
|
+
* `form-floating` is the second case: it animates a single line of text between
|
|
31
|
+
* the placeholder and the label position, so a node with its own height or its
|
|
32
|
+
* own interactive children breaks the layout rather than the semantics.
|
|
33
|
+
*
|
|
34
|
+
* Labels the render paths drop are skipped through the same `hasLabelContent`
|
|
35
|
+
* they use, so `label={condition && <span />}` with a false condition warns
|
|
36
|
+
* about nothing: there is no label on the page to name.
|
|
37
|
+
*
|
|
38
|
+
* The `process.env.NODE_ENV` guard belongs at the call site — that is what
|
|
39
|
+
* bundlers constant-fold, dropping this module from a consumer's production
|
|
40
|
+
* bundle.
|
|
41
|
+
*/
|
|
42
|
+
export default function warnLabelUsage({ component, label, hasAccessibleName, accessibleNameProp, floatingLabel, }: WarnLabelUsageOptions): void;
|
|
43
|
+
export {};
|
package/package.json
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"sideEffects": [
|
|
4
4
|
"*.css"
|
|
5
5
|
],
|
|
6
|
-
"version": "2.
|
|
6
|
+
"version": "2.11.0",
|
|
7
7
|
"description": "React Dynamic Framework",
|
|
8
8
|
"license": "https://github.com/dynamic-framework/dynamic-ui/blob/master/LICENSE.md",
|
|
9
9
|
"repository": {
|
|
@@ -45,10 +45,12 @@
|
|
|
45
45
|
"test:coverage": "jest --testPathPatterns=\\.spec\\.tsx?$ --coverage",
|
|
46
46
|
"test:a11y": "jest --testPathPatterns=\\.a11y\\.test\\.tsx$",
|
|
47
47
|
"test:storybook": "test-storybook",
|
|
48
|
-
"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 build:api && npm run cp",
|
|
49
49
|
"build:react": "tsc -p ./tsconfig.build.json && rollup -c rollup.config.mjs",
|
|
50
50
|
"build:react:watch": "tsc -p ./tsconfig.build.json && rollup -c rollup.config.mjs",
|
|
51
51
|
"build:scss": "node scripts/build-scss.js",
|
|
52
|
+
"build:icons-core": "npx tsx scripts/build-icons-core.ts",
|
|
53
|
+
"build:api": "node scripts/generate-api.mjs && mkdir -p dist && cp registry/api.json dist/api.json",
|
|
52
54
|
"build:scss:watch": "npx nodemon --watch src --ext scss --exec 'npm run build:scss'",
|
|
53
55
|
"dev:ts": "tsc -p tsconfig.build.json",
|
|
54
56
|
"dev:rollup": "rollup -c rollup.config.mjs",
|
|
@@ -66,6 +68,9 @@
|
|
|
66
68
|
"validate:registry": "node scripts/validate-registry.mjs",
|
|
67
69
|
"generate:token-overrides": "node scripts/generate-token-overrides.mjs && node scripts/generate-token-overrides-schema.mjs",
|
|
68
70
|
"validate:token-overrides": "node scripts/validate-token-overrides.mjs",
|
|
71
|
+
"theme:expand": "node scripts/theme/theme-expand.mjs",
|
|
72
|
+
"theme:validate": "node scripts/theme/theme-validate.mjs",
|
|
73
|
+
"theme:preview": "vite scripts/theme --port 4173 --open /preview/",
|
|
69
74
|
"eslint": "npm run eslint:src && npm run eslint:stories && npm run eslint:test",
|
|
70
75
|
"eslint:src": "eslint 'src/**/*.ts' 'src/**/*.tsx' --ignore-pattern '**/*.spec.tsx'",
|
|
71
76
|
"eslint:stories": "eslint stories/**/*.stories.tsx",
|
|
@@ -74,7 +79,7 @@
|
|
|
74
79
|
"postversion": "npm run build:scss",
|
|
75
80
|
"publish:cdn": "npm run publish:cdn-version && npm run publish:cdn-latest",
|
|
76
81
|
"publish:cdn-version": "node scripts/publish-cdn.js",
|
|
77
|
-
"publish:cdn-latest": "aws s3 sync ./dist/ s3://dynamicframework-cdn/assets/latest/ui-react --delete --exclude 'api.json' --acl public-read",
|
|
82
|
+
"publish:cdn-latest": "aws s3 sync ./dist/ s3://dynamicframework-cdn/assets/latest/ui-react --delete --exclude 'api.json' --exclude 'manifests/*' --acl public-read",
|
|
78
83
|
"publish:cdn-rc": "aws s3 sync ./dist/ s3://dynamicframework-cdn/assets/rc/ui-react --delete --acl public-read",
|
|
79
84
|
"publish:cdn-dev": "aws s3 sync ./dist/ s3://dynamicframework-cdn/assets/dev/ui-react --delete --acl public-read",
|
|
80
85
|
"lint-staged": "lint-staged",
|
|
@@ -88,7 +93,7 @@
|
|
|
88
93
|
"node": ">=22.0.0"
|
|
89
94
|
},
|
|
90
95
|
"main": "./dist/index.js",
|
|
91
|
-
"module": "./dist/index.
|
|
96
|
+
"module": "./dist/esm/index.js",
|
|
92
97
|
"types": "./dist/types/index.d.ts",
|
|
93
98
|
"files": [
|
|
94
99
|
"dist/",
|
|
@@ -107,7 +112,6 @@
|
|
|
107
112
|
"file-selector": "~2.1.2",
|
|
108
113
|
"google-libphonenumber": "~3.2.43",
|
|
109
114
|
"html2canvas": "^1.4.1",
|
|
110
|
-
"jspdf": "^4.0.0",
|
|
111
115
|
"lucide-react": "^0.553.0",
|
|
112
116
|
"react-datepicker": "~8.3.0",
|
|
113
117
|
"react-error-boundary": "^6.1.0",
|
|
@@ -145,6 +149,7 @@
|
|
|
145
149
|
"autoprefixer": "~10.4.16",
|
|
146
150
|
"axe-playwright": "~1.2.3",
|
|
147
151
|
"conventional-changelog-conventionalcommits": "~6.1.0",
|
|
152
|
+
"culori": "^4.0.2",
|
|
148
153
|
"eslint": "~8.52.0",
|
|
149
154
|
"eslint-config-airbnb": "~19.0.4",
|
|
150
155
|
"eslint-config-airbnb-typescript": "~17.1.0",
|
|
@@ -17,10 +17,10 @@ $body-color: map-get($all-colors, $body-color-mapping) !default;
|
|
|
17
17
|
$body-bg: #f5f6fa !default;
|
|
18
18
|
|
|
19
19
|
$body-secondary-color: var(--#{$prefix}body-color-rgb) !default;
|
|
20
|
-
$body-secondary-bg: var(--#{$prefix}gray-200) !default;
|
|
20
|
+
$body-secondary-bg: var(--#{$prefix}gray-200-rgb) !default;
|
|
21
21
|
|
|
22
22
|
$body-tertiary-color: var(--#{$prefix}body-color-rgb) !default;
|
|
23
|
-
$body-tertiary-bg: var(--#{$prefix}gray-100) !default;
|
|
23
|
+
$body-tertiary-bg: var(--#{$prefix}gray-100-rgb) !default;
|
|
24
24
|
|
|
25
25
|
$body-emphasis-color: var(--#{$prefix}black-rgb) !default;
|
|
26
26
|
// end custom
|