@dynamic-framework/ui-react 2.9.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.
Files changed (402) hide show
  1. package/dist/css/dynamic-ui.css +1 -1
  2. package/dist/css/dynamic-ui.min.css +1 -1
  3. package/dist/esm/components/DAlert/DAlert.js +16 -0
  4. package/dist/esm/components/DAlert/DAlert.js.map +1 -0
  5. package/dist/esm/components/DAlert/index.js +6 -0
  6. package/dist/esm/components/DAlert/index.js.map +1 -0
  7. package/dist/esm/components/DAvatar/DAvatar.js +23 -0
  8. package/dist/esm/components/DAvatar/DAvatar.js.map +1 -0
  9. package/dist/esm/components/DAvatar/index.js +6 -0
  10. package/dist/esm/components/DAvatar/index.js.map +1 -0
  11. package/dist/esm/components/DBadge/DBadge.js +31 -0
  12. package/dist/esm/components/DBadge/DBadge.js.map +1 -0
  13. package/dist/esm/components/DBadge/index.js +6 -0
  14. package/dist/esm/components/DBadge/index.js.map +1 -0
  15. package/dist/esm/components/DBox/DBox.js +9 -0
  16. package/dist/esm/components/DBox/DBox.js.map +1 -0
  17. package/dist/esm/components/DBox/index.js +6 -0
  18. package/dist/esm/components/DBox/index.js.map +1 -0
  19. package/dist/esm/components/DBoxFile/DBoxFile.js +26 -0
  20. package/dist/esm/components/DBoxFile/DBoxFile.js.map +1 -0
  21. package/dist/esm/components/DBoxFile/index.js +6 -0
  22. package/dist/esm/components/DBoxFile/index.js.map +1 -0
  23. package/dist/esm/components/DBoxFile/useDBoxFile.js +236 -0
  24. package/dist/esm/components/DBoxFile/useDBoxFile.js.map +1 -0
  25. package/dist/esm/components/DBoxFile/utils.js +127 -0
  26. package/dist/esm/components/DBoxFile/utils.js.map +1 -0
  27. package/dist/esm/components/DButton/DButton.js +84 -0
  28. package/dist/esm/components/DButton/DButton.js.map +1 -0
  29. package/dist/esm/components/DButton/index.js +6 -0
  30. package/dist/esm/components/DButton/index.js.map +1 -0
  31. package/dist/esm/components/DButtonIcon/DButtonIcon.js +52 -0
  32. package/dist/esm/components/DButtonIcon/DButtonIcon.js.map +1 -0
  33. package/dist/esm/components/DButtonIcon/index.js +6 -0
  34. package/dist/esm/components/DButtonIcon/index.js.map +1 -0
  35. package/dist/esm/components/DButtonIcon/warnMissingAccessibleName.js +40 -0
  36. package/dist/esm/components/DButtonIcon/warnMissingAccessibleName.js.map +1 -0
  37. package/dist/esm/components/DCard/DCard.js +17 -0
  38. package/dist/esm/components/DCard/DCard.js.map +1 -0
  39. package/dist/esm/components/DCard/components/DCardBody.js +9 -0
  40. package/dist/esm/components/DCard/components/DCardBody.js.map +1 -0
  41. package/dist/esm/components/DCard/components/DCardFooter.js +9 -0
  42. package/dist/esm/components/DCard/components/DCardFooter.js.map +1 -0
  43. package/dist/esm/components/DCard/components/DCardHeader.js +9 -0
  44. package/dist/esm/components/DCard/components/DCardHeader.js.map +1 -0
  45. package/dist/esm/components/DCard/index.js +9 -0
  46. package/dist/esm/components/DCard/index.js.map +1 -0
  47. package/dist/esm/components/DCarousel/DCarousel.js +39 -0
  48. package/dist/esm/components/DCarousel/DCarousel.js.map +1 -0
  49. package/dist/esm/components/DCarousel/components/DCarouselSlide.js +12 -0
  50. package/dist/esm/components/DCarousel/components/DCarouselSlide.js.map +1 -0
  51. package/dist/esm/components/DCarousel/index.js +7 -0
  52. package/dist/esm/components/DCarousel/index.js.map +1 -0
  53. package/dist/esm/components/DChip/DChip.js +18 -0
  54. package/dist/esm/components/DChip/DChip.js.map +1 -0
  55. package/dist/esm/components/DChip/index.js +6 -0
  56. package/dist/esm/components/DChip/index.js.map +1 -0
  57. package/dist/esm/components/DCollapse/DCollapse.js +30 -0
  58. package/dist/esm/components/DCollapse/DCollapse.js.map +1 -0
  59. package/dist/esm/components/DCollapse/index.js +6 -0
  60. package/dist/esm/components/DCollapse/index.js.map +1 -0
  61. package/dist/esm/components/DConfirmModal/DConfirmModalContainer.js +59 -0
  62. package/dist/esm/components/DConfirmModal/DConfirmModalContainer.js.map +1 -0
  63. package/dist/esm/components/DConfirmModal/DConfirmModalUI.js +39 -0
  64. package/dist/esm/components/DConfirmModal/DConfirmModalUI.js.map +1 -0
  65. package/dist/esm/components/DConfirmModal/confirmModalStore.js +38 -0
  66. package/dist/esm/components/DConfirmModal/confirmModalStore.js.map +1 -0
  67. package/dist/esm/components/DCreditCard/DCreditCard.js +15 -0
  68. package/dist/esm/components/DCreditCard/DCreditCard.js.map +1 -0
  69. package/dist/esm/components/DCreditCard/index.js +6 -0
  70. package/dist/esm/components/DCreditCard/index.js.map +1 -0
  71. package/dist/esm/components/DCurrencyText/DCurrencyText.js +10 -0
  72. package/dist/esm/components/DCurrencyText/DCurrencyText.js.map +1 -0
  73. package/dist/esm/components/DCurrencyText/index.js +6 -0
  74. package/dist/esm/components/DCurrencyText/index.js.map +1 -0
  75. package/dist/esm/components/DDataStateWrapper/DDataStateWrapper.js +35 -0
  76. package/dist/esm/components/DDataStateWrapper/DDataStateWrapper.js.map +1 -0
  77. package/dist/esm/components/DDataStateWrapper/components/EmptyState.js +10 -0
  78. package/dist/esm/components/DDataStateWrapper/components/EmptyState.js.map +1 -0
  79. package/dist/esm/components/DDataStateWrapper/components/ErrorState.js +10 -0
  80. package/dist/esm/components/DDataStateWrapper/components/ErrorState.js.map +1 -0
  81. package/dist/esm/components/DDataStateWrapper/components/LoadingState.js +8 -0
  82. package/dist/esm/components/DDataStateWrapper/components/LoadingState.js.map +1 -0
  83. package/dist/esm/components/DDataStateWrapper/index.js +9 -0
  84. package/dist/esm/components/DDataStateWrapper/index.js.map +1 -0
  85. package/dist/esm/components/DDatePicker/DDatePicker.js +54 -0
  86. package/dist/esm/components/DDatePicker/DDatePicker.js.map +1 -0
  87. package/dist/esm/components/DDatePicker/components/DDatePickerHeaderSelector.js +50 -0
  88. package/dist/esm/components/DDatePicker/components/DDatePickerHeaderSelector.js.map +1 -0
  89. package/dist/esm/components/DDatePicker/components/DDatePickerInput.js +16 -0
  90. package/dist/esm/components/DDatePicker/components/DDatePickerInput.js.map +1 -0
  91. package/dist/esm/components/DDatePicker/components/DDatePickerTime.js +11 -0
  92. package/dist/esm/components/DDatePicker/components/DDatePickerTime.js.map +1 -0
  93. package/dist/esm/components/DDatePicker/index.js +6 -0
  94. package/dist/esm/components/DDatePicker/index.js.map +1 -0
  95. package/dist/esm/components/DDropdown/DDropdown.js +315 -0
  96. package/dist/esm/components/DDropdown/DDropdown.js.map +1 -0
  97. package/dist/esm/components/DDropdown/index.js +6 -0
  98. package/dist/esm/components/DDropdown/index.js.map +1 -0
  99. package/dist/esm/components/DErrorBoundary/DErrorBoundary.js +22 -0
  100. package/dist/esm/components/DErrorBoundary/DErrorBoundary.js.map +1 -0
  101. package/dist/esm/components/DErrorBoundary/components/DefaultErrorBoundary.js +10 -0
  102. package/dist/esm/components/DErrorBoundary/components/DefaultErrorBoundary.js.map +1 -0
  103. package/dist/esm/components/DErrorBoundary/index.js +7 -0
  104. package/dist/esm/components/DErrorBoundary/index.js.map +1 -0
  105. package/dist/esm/components/DIcon/DIcon.js +21 -0
  106. package/dist/esm/components/DIcon/DIcon.js.map +1 -0
  107. package/dist/esm/components/DIcon/index.js +6 -0
  108. package/dist/esm/components/DIcon/index.js.map +1 -0
  109. package/dist/esm/components/DIconBase/DIconBase.js +146 -0
  110. package/dist/esm/components/DIconBase/DIconBase.js.map +1 -0
  111. package/dist/esm/components/DIconBase/index.js +6 -0
  112. package/dist/esm/components/DIconBase/index.js.map +1 -0
  113. package/dist/esm/components/DIconBase/resolveIconFromRegistry.js +20 -0
  114. package/dist/esm/components/DIconBase/resolveIconFromRegistry.js.map +1 -0
  115. package/dist/esm/components/DIconBase/warnUnknownIcon.js +59 -0
  116. package/dist/esm/components/DIconBase/warnUnknownIcon.js.map +1 -0
  117. package/dist/esm/components/DInput/DInput.js +83 -0
  118. package/dist/esm/components/DInput/DInput.js.map +1 -0
  119. package/dist/esm/components/DInput/index.js +6 -0
  120. package/dist/esm/components/DInput/index.js.map +1 -0
  121. package/dist/esm/components/DInputCheck/DInputCheck.js +57 -0
  122. package/dist/esm/components/DInputCheck/DInputCheck.js.map +1 -0
  123. package/dist/esm/components/DInputCheck/index.js +6 -0
  124. package/dist/esm/components/DInputCheck/index.js.map +1 -0
  125. package/dist/esm/components/DInputCounter/DInputCounter.js +49 -0
  126. package/dist/esm/components/DInputCounter/DInputCounter.js.map +1 -0
  127. package/dist/esm/components/DInputCounter/index.js +6 -0
  128. package/dist/esm/components/DInputCounter/index.js.map +1 -0
  129. package/dist/esm/components/DInputCurrency/DInputCurrency.js +20 -0
  130. package/dist/esm/components/DInputCurrency/DInputCurrency.js.map +1 -0
  131. package/dist/esm/components/DInputCurrency/index.js +6 -0
  132. package/dist/esm/components/DInputCurrency/index.js.map +1 -0
  133. package/dist/esm/components/DInputMask/DInputMask.js +13 -0
  134. package/dist/esm/components/DInputMask/DInputMask.js.map +1 -0
  135. package/dist/esm/components/DInputMask/index.js +6 -0
  136. package/dist/esm/components/DInputMask/index.js.map +1 -0
  137. package/dist/esm/components/DInputPassword/DInputPassword.js +24 -0
  138. package/dist/esm/components/DInputPassword/DInputPassword.js.map +1 -0
  139. package/dist/esm/components/DInputPassword/index.js +6 -0
  140. package/dist/esm/components/DInputPassword/index.js.map +1 -0
  141. package/dist/esm/components/DInputPhone/DInputPhone.js +96 -0
  142. package/dist/esm/components/DInputPhone/DInputPhone.js.map +1 -0
  143. package/dist/esm/components/DInputPhone/index.js +6 -0
  144. package/dist/esm/components/DInputPhone/index.js.map +1 -0
  145. package/dist/esm/components/DInputPin/DInputPin.js +86 -0
  146. package/dist/esm/components/DInputPin/DInputPin.js.map +1 -0
  147. package/dist/esm/components/DInputPin/index.js +6 -0
  148. package/dist/esm/components/DInputPin/index.js.map +1 -0
  149. package/dist/esm/components/DInputRange/DInputRange.js +46 -0
  150. package/dist/esm/components/DInputRange/DInputRange.js.map +1 -0
  151. package/dist/esm/components/DInputRange/index.js +6 -0
  152. package/dist/esm/components/DInputRange/index.js.map +1 -0
  153. package/dist/esm/components/DInputSearch/DInputSearch.js +57 -0
  154. package/dist/esm/components/DInputSearch/DInputSearch.js.map +1 -0
  155. package/dist/esm/components/DInputSearch/index.js +6 -0
  156. package/dist/esm/components/DInputSearch/index.js.map +1 -0
  157. package/dist/esm/components/DInputSelect/DInputSelect.js +90 -0
  158. package/dist/esm/components/DInputSelect/DInputSelect.js.map +1 -0
  159. package/dist/esm/components/DInputSelect/index.js +6 -0
  160. package/dist/esm/components/DInputSelect/index.js.map +1 -0
  161. package/dist/esm/components/DInputSwitch/DInputSwitch.js +32 -0
  162. package/dist/esm/components/DInputSwitch/DInputSwitch.js.map +1 -0
  163. package/dist/esm/components/DInputSwitch/index.js +6 -0
  164. package/dist/esm/components/DInputSwitch/index.js.map +1 -0
  165. package/dist/esm/components/DLayout/DLayout.js +22 -0
  166. package/dist/esm/components/DLayout/DLayout.js.map +1 -0
  167. package/dist/esm/components/DLayout/components/DLayoutPane.js +16 -0
  168. package/dist/esm/components/DLayout/components/DLayoutPane.js.map +1 -0
  169. package/dist/esm/components/DLayout/index.js +7 -0
  170. package/dist/esm/components/DLayout/index.js.map +1 -0
  171. package/dist/esm/components/DListGroup/DListGroup.js +31 -0
  172. package/dist/esm/components/DListGroup/DListGroup.js.map +1 -0
  173. package/dist/esm/components/DListGroup/components/DListGroupItem.js +41 -0
  174. package/dist/esm/components/DListGroup/components/DListGroupItem.js.map +1 -0
  175. package/dist/esm/components/DListGroup/index.js +7 -0
  176. package/dist/esm/components/DListGroup/index.js.map +1 -0
  177. package/dist/esm/components/DModal/DModal.js +37 -0
  178. package/dist/esm/components/DModal/DModal.js.map +1 -0
  179. package/dist/esm/components/DModal/components/DModalBody.js +9 -0
  180. package/dist/esm/components/DModal/components/DModalBody.js.map +1 -0
  181. package/dist/esm/components/DModal/components/DModalFooter.js +14 -0
  182. package/dist/esm/components/DModal/components/DModalFooter.js.map +1 -0
  183. package/dist/esm/components/DModal/components/DModalHeader.js +15 -0
  184. package/dist/esm/components/DModal/components/DModalHeader.js.map +1 -0
  185. package/dist/esm/components/DModal/index.js +9 -0
  186. package/dist/esm/components/DModal/index.js.map +1 -0
  187. package/dist/esm/components/DOffcanvas/DOffcanvas.js +82 -0
  188. package/dist/esm/components/DOffcanvas/DOffcanvas.js.map +1 -0
  189. package/dist/esm/components/DOffcanvas/components/DOffcanvasBody.js +9 -0
  190. package/dist/esm/components/DOffcanvas/components/DOffcanvasBody.js.map +1 -0
  191. package/dist/esm/components/DOffcanvas/components/DOffcanvasFooter.js +14 -0
  192. package/dist/esm/components/DOffcanvas/components/DOffcanvasFooter.js.map +1 -0
  193. package/dist/esm/components/DOffcanvas/components/DOffcanvasHeader.js +15 -0
  194. package/dist/esm/components/DOffcanvas/components/DOffcanvasHeader.js.map +1 -0
  195. package/dist/esm/components/DOffcanvas/index.js +9 -0
  196. package/dist/esm/components/DOffcanvas/index.js.map +1 -0
  197. package/dist/esm/components/DOtp/DOtp.js +26 -0
  198. package/dist/esm/components/DOtp/DOtp.js.map +1 -0
  199. package/dist/esm/components/DOtp/components/OtpCountdown.js +12 -0
  200. package/dist/esm/components/DOtp/components/OtpCountdown.js.map +1 -0
  201. package/dist/esm/components/DOtp/index.js +6 -0
  202. package/dist/esm/components/DOtp/index.js.map +1 -0
  203. package/dist/esm/components/DPaginator/DPaginator.js +12 -0
  204. package/dist/esm/components/DPaginator/DPaginator.js.map +1 -0
  205. package/dist/esm/components/DPaginator/index.js +6 -0
  206. package/dist/esm/components/DPaginator/index.js.map +1 -0
  207. package/dist/esm/components/DPasswordStrengthMeter/DPasswordStrengthMeter.js +27 -0
  208. package/dist/esm/components/DPasswordStrengthMeter/DPasswordStrengthMeter.js.map +1 -0
  209. package/dist/esm/components/DPasswordStrengthMeter/PasswordCheckItem.js +10 -0
  210. package/dist/esm/components/DPasswordStrengthMeter/PasswordCheckItem.js.map +1 -0
  211. package/dist/esm/components/DPasswordStrengthMeter/PasswordCheckList.js +41 -0
  212. package/dist/esm/components/DPasswordStrengthMeter/PasswordCheckList.js.map +1 -0
  213. package/dist/esm/components/DPasswordStrengthMeter/PasswordStrength.js +23 -0
  214. package/dist/esm/components/DPasswordStrengthMeter/PasswordStrength.js.map +1 -0
  215. package/dist/esm/components/DPasswordStrengthMeter/index.js +6 -0
  216. package/dist/esm/components/DPasswordStrengthMeter/index.js.map +1 -0
  217. package/dist/esm/components/DPopover/DPopover.js +49 -0
  218. package/dist/esm/components/DPopover/DPopover.js.map +1 -0
  219. package/dist/esm/components/DPopover/index.js +6 -0
  220. package/dist/esm/components/DPopover/index.js.map +1 -0
  221. package/dist/esm/components/DProgress/DProgress.js +16 -0
  222. package/dist/esm/components/DProgress/DProgress.js.map +1 -0
  223. package/dist/esm/components/DProgress/index.js +6 -0
  224. package/dist/esm/components/DProgress/index.js.map +1 -0
  225. package/dist/esm/components/DSelect/DSelect.js +60 -0
  226. package/dist/esm/components/DSelect/DSelect.js.map +1 -0
  227. package/dist/esm/components/DSelect/components/DSelectClearIndicator.js +12 -0
  228. package/dist/esm/components/DSelect/components/DSelectClearIndicator.js.map +1 -0
  229. package/dist/esm/components/DSelect/components/DSelectDropdownIndicator.js +12 -0
  230. package/dist/esm/components/DSelect/components/DSelectDropdownIndicator.js.map +1 -0
  231. package/dist/esm/components/DSelect/components/DSelectLoadingIndicator.js +12 -0
  232. package/dist/esm/components/DSelect/components/DSelectLoadingIndicator.js.map +1 -0
  233. package/dist/esm/components/DSelect/components/DSelectMultiValueRemove.js +12 -0
  234. package/dist/esm/components/DSelect/components/DSelectMultiValueRemove.js.map +1 -0
  235. package/dist/esm/components/DSelect/components/DSelectOptionCheck.js +14 -0
  236. package/dist/esm/components/DSelect/components/DSelectOptionCheck.js.map +1 -0
  237. package/dist/esm/components/DSelect/components/DSelectOptionEmoji.js +14 -0
  238. package/dist/esm/components/DSelect/components/DSelectOptionEmoji.js.map +1 -0
  239. package/dist/esm/components/DSelect/components/DSelectOptionIcon.js +15 -0
  240. package/dist/esm/components/DSelect/components/DSelectOptionIcon.js.map +1 -0
  241. package/dist/esm/components/DSelect/components/DSelectPlaceholder.js +14 -0
  242. package/dist/esm/components/DSelect/components/DSelectPlaceholder.js.map +1 -0
  243. package/dist/esm/components/DSelect/components/DSelectSingleValueEmoji.js +15 -0
  244. package/dist/esm/components/DSelect/components/DSelectSingleValueEmoji.js.map +1 -0
  245. package/dist/esm/components/DSelect/components/DSelectSingleValueEmojiText.js +15 -0
  246. package/dist/esm/components/DSelect/components/DSelectSingleValueEmojiText.js.map +1 -0
  247. package/dist/esm/components/DSelect/components/DSelectSingleValueIconText.js +16 -0
  248. package/dist/esm/components/DSelect/components/DSelectSingleValueIconText.js.map +1 -0
  249. package/dist/esm/components/DSelect/index.js +6 -0
  250. package/dist/esm/components/DSelect/index.js.map +1 -0
  251. package/dist/esm/components/DStepper/DStepper.js +13 -0
  252. package/dist/esm/components/DStepper/DStepper.js.map +1 -0
  253. package/dist/esm/components/DStepper/index.js +6 -0
  254. package/dist/esm/components/DStepper/index.js.map +1 -0
  255. package/dist/esm/components/DStepperDesktop/DStepperDesktop.js +27 -0
  256. package/dist/esm/components/DStepperDesktop/DStepperDesktop.js.map +1 -0
  257. package/dist/esm/components/DStepperDesktop/index.js +6 -0
  258. package/dist/esm/components/DStepperDesktop/index.js.map +1 -0
  259. package/dist/esm/components/DStepperMobile/DStepperMobile.js +37 -0
  260. package/dist/esm/components/DStepperMobile/DStepperMobile.js.map +1 -0
  261. package/dist/esm/components/DStepperMobile/index.js +6 -0
  262. package/dist/esm/components/DStepperMobile/index.js.map +1 -0
  263. package/dist/esm/components/DTabs/DTabs.js +117 -0
  264. package/dist/esm/components/DTabs/DTabs.js.map +1 -0
  265. package/dist/esm/components/DTabs/TabContext.js +13 -0
  266. package/dist/esm/components/DTabs/TabContext.js.map +1 -0
  267. package/dist/esm/components/DTabs/components/DTabContent.js +14 -0
  268. package/dist/esm/components/DTabs/components/DTabContent.js.map +1 -0
  269. package/dist/esm/components/DTabs/index.js +8 -0
  270. package/dist/esm/components/DTabs/index.js.map +1 -0
  271. package/dist/esm/components/DTimeline/DTimeline.js +12 -0
  272. package/dist/esm/components/DTimeline/DTimeline.js.map +1 -0
  273. package/dist/esm/components/DTimeline/index.js +6 -0
  274. package/dist/esm/components/DTimeline/index.js.map +1 -0
  275. package/dist/esm/components/DToast/DToast.js +15 -0
  276. package/dist/esm/components/DToast/DToast.js.map +1 -0
  277. package/dist/esm/components/DToast/components/DToastBody.js +9 -0
  278. package/dist/esm/components/DToast/components/DToastBody.js.map +1 -0
  279. package/dist/esm/components/DToast/components/DToastHeader.js +9 -0
  280. package/dist/esm/components/DToast/components/DToastHeader.js.map +1 -0
  281. package/dist/esm/components/DToast/index.js +8 -0
  282. package/dist/esm/components/DToast/index.js.map +1 -0
  283. package/dist/esm/components/DToastContainer/DToastContainer.js +9 -0
  284. package/dist/esm/components/DToastContainer/DToastContainer.js.map +1 -0
  285. package/dist/esm/components/DToastContainer/index.js +7 -0
  286. package/dist/esm/components/DToastContainer/index.js.map +1 -0
  287. package/dist/esm/components/DToastContainer/useDToast.js +58 -0
  288. package/dist/esm/components/DToastContainer/useDToast.js.map +1 -0
  289. package/dist/esm/components/DTooltip/DTooltip.js +51 -0
  290. package/dist/esm/components/DTooltip/DTooltip.js.map +1 -0
  291. package/dist/esm/components/DTooltip/index.js +6 -0
  292. package/dist/esm/components/DTooltip/index.js.map +1 -0
  293. package/dist/esm/components/DVoucher/DVoucher.js +55 -0
  294. package/dist/esm/components/DVoucher/DVoucher.js.map +1 -0
  295. package/dist/esm/components/DVoucher/hooks/useScreenshot.js +30 -0
  296. package/dist/esm/components/DVoucher/hooks/useScreenshot.js.map +1 -0
  297. package/dist/esm/components/DVoucher/hooks/useScreenshotDownload.js +30 -0
  298. package/dist/esm/components/DVoucher/hooks/useScreenshotDownload.js.map +1 -0
  299. package/dist/esm/components/DVoucher/hooks/useScreenshotWebShare.js +27 -0
  300. package/dist/esm/components/DVoucher/hooks/useScreenshotWebShare.js.map +1 -0
  301. package/dist/esm/components/DVoucher/index.js +9 -0
  302. package/dist/esm/components/DVoucher/index.js.map +1 -0
  303. package/dist/esm/components/config.js +14 -0
  304. package/dist/esm/components/config.js.map +1 -0
  305. package/dist/esm/contexts/DContext.js +124 -0
  306. package/dist/esm/contexts/DContext.js.map +1 -0
  307. package/dist/esm/contexts/DPortalContext.js +128 -0
  308. package/dist/esm/contexts/DPortalContext.js.map +1 -0
  309. package/dist/esm/hooks/useConfirmModal.js +63 -0
  310. package/dist/esm/hooks/useConfirmModal.js.map +1 -0
  311. package/dist/esm/hooks/useCountdown.js +45 -0
  312. package/dist/esm/hooks/useCountdown.js.map +1 -0
  313. package/dist/esm/hooks/useDisableBodyScrollEffect.js +52 -0
  314. package/dist/esm/hooks/useDisableBodyScrollEffect.js.map +1 -0
  315. package/dist/esm/hooks/useDisableInputWheel.js +17 -0
  316. package/dist/esm/hooks/useDisableInputWheel.js.map +1 -0
  317. package/dist/esm/hooks/useFormatCurrency.js +16 -0
  318. package/dist/esm/hooks/useFormatCurrency.js.map +1 -0
  319. package/dist/esm/hooks/useInputCurrency.js +76 -0
  320. package/dist/esm/hooks/useInputCurrency.js.map +1 -0
  321. package/dist/esm/hooks/useItemSelection.js +35 -0
  322. package/dist/esm/hooks/useItemSelection.js.map +1 -0
  323. package/dist/esm/hooks/useMediaBreakpointUp.js +30 -0
  324. package/dist/esm/hooks/useMediaBreakpointUp.js.map +1 -0
  325. package/dist/esm/hooks/useMediaQuery.js +11 -0
  326. package/dist/esm/hooks/useMediaQuery.js.map +1 -0
  327. package/dist/esm/hooks/useOtp.js +107 -0
  328. package/dist/esm/hooks/useOtp.js.map +1 -0
  329. package/dist/esm/hooks/usePortal.js +26 -0
  330. package/dist/esm/hooks/usePortal.js.map +1 -0
  331. package/dist/esm/hooks/useProvidedRefOrCreate.js +24 -0
  332. package/dist/esm/hooks/useProvidedRefOrCreate.js.map +1 -0
  333. package/dist/esm/hooks/useResponsiveProp.js +50 -0
  334. package/dist/esm/hooks/useResponsiveProp.js.map +1 -0
  335. package/dist/esm/hooks/useStackState.js +40 -0
  336. package/dist/esm/hooks/useStackState.js.map +1 -0
  337. package/dist/esm/icons/coreIcons.js +55 -0
  338. package/dist/esm/icons/coreIcons.js.map +1 -0
  339. package/dist/esm/index.js +98 -0
  340. package/dist/esm/index.js.map +1 -0
  341. package/dist/esm/utils/attr-accept.js +38 -0
  342. package/dist/esm/utils/attr-accept.js.map +1 -0
  343. package/dist/esm/utils/buildUrl.js +57 -0
  344. package/dist/esm/utils/buildUrl.js.map +1 -0
  345. package/dist/esm/utils/changeQueryString.js +19 -0
  346. package/dist/esm/utils/changeQueryString.js.map +1 -0
  347. package/dist/esm/utils/configureI18n.js +20 -0
  348. package/dist/esm/utils/configureI18n.js.map +1 -0
  349. package/dist/esm/utils/formatCurrency.js +8 -0
  350. package/dist/esm/utils/formatCurrency.js.map +1 -0
  351. package/dist/esm/utils/getCssVariable.js +7 -0
  352. package/dist/esm/utils/getCssVariable.js.map +1 -0
  353. package/dist/esm/utils/getKeyboardFocusableElements.js +11 -0
  354. package/dist/esm/utils/getKeyboardFocusableElements.js.map +1 -0
  355. package/dist/esm/utils/getQueryString.js +8 -0
  356. package/dist/esm/utils/getQueryString.js.map +1 -0
  357. package/dist/esm/utils/mediaQuery.js +13 -0
  358. package/dist/esm/utils/mediaQuery.js.map +1 -0
  359. package/dist/esm/utils/sanitizeHref.js +67 -0
  360. package/dist/esm/utils/sanitizeHref.js.map +1 -0
  361. package/dist/esm/utils/validatePhoneNumber.js +14 -0
  362. package/dist/esm/utils/validatePhoneNumber.js.map +1 -0
  363. package/dist/icons-core.json +33 -0
  364. package/dist/index.esm.js +287 -22
  365. package/dist/index.esm.js.map +1 -1
  366. package/dist/index.js +287 -21
  367. package/dist/index.js.map +1 -1
  368. package/dist/types/components/DButtonIcon/warnMissingAccessibleName.d.ts +18 -0
  369. package/dist/types/components/DIcon/DIcon.d.ts +8 -0
  370. package/dist/types/components/DIconBase/DIconBase.d.ts +43 -1
  371. package/dist/types/components/DIconBase/resolveIconFromRegistry.d.ts +14 -0
  372. package/dist/types/components/DIconBase/warnUnknownIcon.d.ts +13 -0
  373. package/dist/types/components/DInputRange/DInputRange.d.ts +1 -1
  374. package/dist/types/components/config.d.ts +10 -0
  375. package/dist/types/icons/coreIcons.d.ts +24 -0
  376. package/dist/types/icons/index.d.ts +2 -0
  377. package/dist/types/index.d.ts +1 -0
  378. package/package.json +4 -4
  379. package/dist/types/components/DVoucher/hooks/useScreenshotDownload.spec.d.ts +0 -1
  380. package/dist/types/components/DVoucher/hooks/useScreenshotWebShare.spec.d.ts +0 -1
  381. package/dist/types/hooks/tests/useCountdown.spec.d.ts +0 -1
  382. package/dist/types/hooks/tests/useDisableBodyScrollEffect.spec.d.ts +0 -1
  383. package/dist/types/hooks/tests/useDisableInputWheel.spec.d.ts +0 -1
  384. package/dist/types/hooks/tests/useFormatCurrency.spec.d.ts +0 -1
  385. package/dist/types/hooks/tests/useInputCurrency.spec.d.ts +0 -1
  386. package/dist/types/hooks/tests/useItemSelection.spec.d.ts +0 -1
  387. package/dist/types/hooks/tests/useMediaBreakpointUp.spec.d.ts +0 -1
  388. package/dist/types/hooks/tests/useMediaQuery.spec.d.ts +0 -1
  389. package/dist/types/hooks/tests/usePortal.spec.d.ts +0 -1
  390. package/dist/types/hooks/tests/useProvidedRefOrCreate.spec.d.ts +0 -1
  391. package/dist/types/hooks/tests/useStackState.spec.d.ts +0 -1
  392. package/dist/types/utils/tests/attr-accept.spec.d.ts +0 -1
  393. package/dist/types/utils/tests/buildUrl.spec.d.ts +0 -1
  394. package/dist/types/utils/tests/changeQueryString.spec.d.ts +0 -1
  395. package/dist/types/utils/tests/configureI18n.spec.d.ts +0 -1
  396. package/dist/types/utils/tests/formatCurrency.spec.d.ts +0 -1
  397. package/dist/types/utils/tests/getCssVariable.spec.d.ts +0 -1
  398. package/dist/types/utils/tests/getKeyboardFocusableElements.spec.d.ts +0 -1
  399. package/dist/types/utils/tests/getQueryString.spec.d.ts +0 -1
  400. package/dist/types/utils/tests/mediaQuery.spec.d.ts +0 -1
  401. package/dist/types/utils/tests/sanitizeHref.spec.d.ts +0 -1
  402. package/dist/types/utils/tests/validatePhoneNumber.spec.d.ts +0 -1
@@ -0,0 +1,107 @@
1
+ import { useState, useCallback } from 'react';
2
+ import useCountdown from './useCountdown.js';
3
+
4
+ /**
5
+ * Headless hook exposing the same OTP logic used internally by `DOtp`
6
+ * (code state, length + correctness validation, submit action and resend
7
+ * countdown), without any bundled markup/styles.
8
+ *
9
+ * Use this when the default `DOtp` component doesn't match your design and
10
+ * you need to build a fully custom UI while reusing the same behavior.
11
+ *
12
+ * Internally composes `useCountdown` for the resend timer and re-exposes
13
+ * `secondsLeft`/`restartCountdown`, so there is no need to call
14
+ * `useCountdown` separately.
15
+ *
16
+ * `invalid` becomes `true` both when the OTP is shorter than `otpSize` and
17
+ * when `action` throws/rejects (e.g. the backend rejected the entered code
18
+ * as incorrect). In the latter case, the thrown value is exposed as `error`
19
+ * so custom UIs can render an appropriate message (e.g. "Invalid code" vs.
20
+ * "Enter all digits"). `invalid`/`error` are cleared automatically as soon
21
+ * as the user edits the code via `setOtp`.
22
+ *
23
+ * @example
24
+ * function CustomOtp() {
25
+ * const {
26
+ * otp,
27
+ * setOtp,
28
+ * invalid,
29
+ * error,
30
+ * submit,
31
+ * isLoading,
32
+ * secondsLeft,
33
+ * restartCountdown,
34
+ * } = useOtp({ action: async () => verifyOtp(otp), otpSize: 6, seconds: 15 });
35
+ *
36
+ * return (
37
+ * <>
38
+ * <MyCustomPinInput value={otp} onChange={setOtp} invalid={invalid} />
39
+ * {invalid && <span>{error ? 'Invalid code' : 'Enter all digits'}</span>}
40
+ * <button disabled={isLoading} onClick={() => { submit().catch(() => {}); }}>
41
+ * {isLoading ? 'Submitting...' : 'Submit'}
42
+ * </button>
43
+ * <button disabled={secondsLeft > 0} onClick={restartCountdown}>
44
+ * Resend {secondsLeft > 0 ? `(${secondsLeft}s)` : ''}
45
+ * </button>
46
+ * </>
47
+ * );
48
+ * }
49
+ */
50
+ function useOtp({ action, otpSize = 6, seconds = 15, }) {
51
+ const [otp, setOtpValue] = useState('');
52
+ const [invalid, setInvalid] = useState(false);
53
+ const [error, setError] = useState(null);
54
+ const [isLoading, setIsLoading] = useState(false);
55
+ const { secondsLeft, restartCountdown } = useCountdown(seconds);
56
+ const setOtp = useCallback((value) => {
57
+ setOtpValue((prevOtp) => {
58
+ // Guard against no-op calls (e.g. DInputPin re-notifying the same
59
+ // value when its onChange reference changes) so we don't wipe out
60
+ // an `invalid`/`error` state that was just set by submit().
61
+ if (prevOtp === value) {
62
+ return prevOtp;
63
+ }
64
+ setInvalid(false);
65
+ setError(null);
66
+ return value;
67
+ });
68
+ }, []);
69
+ const submit = useCallback(async () => {
70
+ if (otp.length < otpSize) {
71
+ setInvalid(true);
72
+ setError(null);
73
+ return;
74
+ }
75
+ setIsLoading(true);
76
+ try {
77
+ await action();
78
+ setInvalid(false);
79
+ setError(null);
80
+ }
81
+ catch (err) {
82
+ setInvalid(true);
83
+ setError(err);
84
+ throw err;
85
+ }
86
+ finally {
87
+ setIsLoading(false);
88
+ }
89
+ }, [
90
+ otp.length,
91
+ action,
92
+ otpSize,
93
+ ]);
94
+ return {
95
+ otp,
96
+ setOtp,
97
+ invalid,
98
+ error,
99
+ submit,
100
+ isLoading,
101
+ secondsLeft,
102
+ restartCountdown,
103
+ };
104
+ }
105
+
106
+ export { useOtp as default };
107
+ //# sourceMappingURL=useOtp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useOtp.js","sources":["../../../dist-transpiled/hooks/useOtp.js"],"sourcesContent":["import { useCallback, useState } from 'react';\nimport useCountdown from './useCountdown';\n/**\n * Headless hook exposing the same OTP logic used internally by `DOtp`\n * (code state, length + correctness validation, submit action and resend\n * countdown), without any bundled markup/styles.\n *\n * Use this when the default `DOtp` component doesn't match your design and\n * you need to build a fully custom UI while reusing the same behavior.\n *\n * Internally composes `useCountdown` for the resend timer and re-exposes\n * `secondsLeft`/`restartCountdown`, so there is no need to call\n * `useCountdown` separately.\n *\n * `invalid` becomes `true` both when the OTP is shorter than `otpSize` and\n * when `action` throws/rejects (e.g. the backend rejected the entered code\n * as incorrect). In the latter case, the thrown value is exposed as `error`\n * so custom UIs can render an appropriate message (e.g. \"Invalid code\" vs.\n * \"Enter all digits\"). `invalid`/`error` are cleared automatically as soon\n * as the user edits the code via `setOtp`.\n *\n * @example\n * function CustomOtp() {\n * const {\n * otp,\n * setOtp,\n * invalid,\n * error,\n * submit,\n * isLoading,\n * secondsLeft,\n * restartCountdown,\n * } = useOtp({ action: async () => verifyOtp(otp), otpSize: 6, seconds: 15 });\n *\n * return (\n * <>\n * <MyCustomPinInput value={otp} onChange={setOtp} invalid={invalid} />\n * {invalid && <span>{error ? 'Invalid code' : 'Enter all digits'}</span>}\n * <button disabled={isLoading} onClick={() => { submit().catch(() => {}); }}>\n * {isLoading ? 'Submitting...' : 'Submit'}\n * </button>\n * <button disabled={secondsLeft > 0} onClick={restartCountdown}>\n * Resend {secondsLeft > 0 ? `(${secondsLeft}s)` : ''}\n * </button>\n * </>\n * );\n * }\n */\nexport default function useOtp({ action, otpSize = 6, seconds = 15, }) {\n const [otp, setOtpValue] = useState('');\n const [invalid, setInvalid] = useState(false);\n const [error, setError] = useState(null);\n const [isLoading, setIsLoading] = useState(false);\n const { secondsLeft, restartCountdown } = useCountdown(seconds);\n const setOtp = useCallback((value) => {\n setOtpValue((prevOtp) => {\n // Guard against no-op calls (e.g. DInputPin re-notifying the same\n // value when its onChange reference changes) so we don't wipe out\n // an `invalid`/`error` state that was just set by submit().\n if (prevOtp === value) {\n return prevOtp;\n }\n setInvalid(false);\n setError(null);\n return value;\n });\n }, []);\n const submit = useCallback(async () => {\n if (otp.length < otpSize) {\n setInvalid(true);\n setError(null);\n return;\n }\n setIsLoading(true);\n try {\n await action();\n setInvalid(false);\n setError(null);\n }\n catch (err) {\n setInvalid(true);\n setError(err);\n throw err;\n }\n finally {\n setIsLoading(false);\n }\n }, [\n otp.length,\n action,\n otpSize,\n ]);\n return {\n otp,\n setOtp,\n invalid,\n error,\n submit,\n isLoading,\n secondsLeft,\n restartCountdown,\n };\n}\n//# sourceMappingURL=useOtp.js.map"],"names":[],"mappings":";;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAAS,MAAM,CAAC,EAAE,MAAM,EAAE,OAAO,GAAG,CAAC,EAAE,OAAO,GAAG,EAAE,GAAG,EAAE;AACvE,IAAI,MAAM,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC;AAC3C,IAAI,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AACjD,IAAI,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC;AAC5C,IAAI,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AACrD,IAAI,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,GAAG,YAAY,CAAC,OAAO,CAAC;AACnE,IAAI,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,KAAK,KAAK;AAC1C,QAAQ,WAAW,CAAC,CAAC,OAAO,KAAK;AACjC;AACA;AACA;AACA,YAAY,IAAI,OAAO,KAAK,KAAK,EAAE;AACnC,gBAAgB,OAAO,OAAO;AAC9B,YAAY;AACZ,YAAY,UAAU,CAAC,KAAK,CAAC;AAC7B,YAAY,QAAQ,CAAC,IAAI,CAAC;AAC1B,YAAY,OAAO,KAAK;AACxB,QAAQ,CAAC,CAAC;AACV,IAAI,CAAC,EAAE,EAAE,CAAC;AACV,IAAI,MAAM,MAAM,GAAG,WAAW,CAAC,YAAY;AAC3C,QAAQ,IAAI,GAAG,CAAC,MAAM,GAAG,OAAO,EAAE;AAClC,YAAY,UAAU,CAAC,IAAI,CAAC;AAC5B,YAAY,QAAQ,CAAC,IAAI,CAAC;AAC1B,YAAY;AACZ,QAAQ;AACR,QAAQ,YAAY,CAAC,IAAI,CAAC;AAC1B,QAAQ,IAAI;AACZ,YAAY,MAAM,MAAM,EAAE;AAC1B,YAAY,UAAU,CAAC,KAAK,CAAC;AAC7B,YAAY,QAAQ,CAAC,IAAI,CAAC;AAC1B,QAAQ;AACR,QAAQ,OAAO,GAAG,EAAE;AACpB,YAAY,UAAU,CAAC,IAAI,CAAC;AAC5B,YAAY,QAAQ,CAAC,GAAG,CAAC;AACzB,YAAY,MAAM,GAAG;AACrB,QAAQ;AACR,gBAAgB;AAChB,YAAY,YAAY,CAAC,KAAK,CAAC;AAC/B,QAAQ;AACR,IAAI,CAAC,EAAE;AACP,QAAQ,GAAG,CAAC,MAAM;AAClB,QAAQ,MAAM;AACd,QAAQ,OAAO;AACf,KAAK,CAAC;AACN,IAAI,OAAO;AACX,QAAQ,GAAG;AACX,QAAQ,MAAM;AACd,QAAQ,OAAO;AACf,QAAQ,KAAK;AACb,QAAQ,MAAM;AACd,QAAQ,SAAS;AACjB,QAAQ,WAAW;AACnB,QAAQ,gBAAgB;AACxB,KAAK;AACL;;;;"}
@@ -0,0 +1,26 @@
1
+ import { useState, useEffect } from 'react';
2
+
3
+ /**
4
+ * @internal
5
+ * Creates a DOM `<div>` portal mount point and appends it to `document.body`.
6
+ * This hook is used exclusively by `DPortalContextProvider` and is **not** part
7
+ * of the public API. Use `useDPortalContext` instead.
8
+ */
9
+ function usePortal(portalName) {
10
+ const [hasPortal, setHasPortal] = useState(false);
11
+ useEffect(() => {
12
+ const previousPortal = document.querySelector(`#${portalName}`);
13
+ if (previousPortal) {
14
+ previousPortal.remove();
15
+ }
16
+ const portal = document.createElement('div');
17
+ portal.id = portalName;
18
+ portal.className = 'd-portal';
19
+ document.body.appendChild(portal);
20
+ setHasPortal(true);
21
+ }, [portalName]);
22
+ return { created: hasPortal };
23
+ }
24
+
25
+ export { usePortal as default };
26
+ //# sourceMappingURL=usePortal.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"usePortal.js","sources":["../../../dist-transpiled/hooks/usePortal.js"],"sourcesContent":["import { useEffect, useState } from 'react';\n/**\n * @internal\n * Creates a DOM `<div>` portal mount point and appends it to `document.body`.\n * This hook is used exclusively by `DPortalContextProvider` and is **not** part\n * of the public API. Use `useDPortalContext` instead.\n */\nexport default function usePortal(portalName) {\n const [hasPortal, setHasPortal] = useState(false);\n useEffect(() => {\n const previousPortal = document.querySelector(`#${portalName}`);\n if (previousPortal) {\n previousPortal.remove();\n }\n const portal = document.createElement('div');\n portal.id = portalName;\n portal.className = 'd-portal';\n document.body.appendChild(portal);\n setHasPortal(true);\n }, [portalName]);\n return { created: hasPortal };\n}\n//# sourceMappingURL=usePortal.js.map"],"names":[],"mappings":";;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAAS,SAAS,CAAC,UAAU,EAAE;AAC9C,IAAI,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC;AACrD,IAAI,SAAS,CAAC,MAAM;AACpB,QAAQ,MAAM,cAAc,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,CAAC;AACvE,QAAQ,IAAI,cAAc,EAAE;AAC5B,YAAY,cAAc,CAAC,MAAM,EAAE;AACnC,QAAQ;AACR,QAAQ,MAAM,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AACpD,QAAQ,MAAM,CAAC,EAAE,GAAG,UAAU;AAC9B,QAAQ,MAAM,CAAC,SAAS,GAAG,UAAU;AACrC,QAAQ,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC;AACzC,QAAQ,YAAY,CAAC,IAAI,CAAC;AAC1B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;AACpB,IAAI,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE;AACjC;;;;"}
@@ -0,0 +1,24 @@
1
+ import React from 'react';
2
+
3
+ /* eslint-disable */
4
+ /**
5
+ * This file is originally from `@primer/react`
6
+ * The original source for this lived in the URL below.
7
+ *
8
+ * @see https://github.com/primer/react/blob/216d2a9f57b8acb0701ab4e04a23e057fc325c90/src/hooks/useProvidedRefOrCreate.ts
9
+ */
10
+ /**
11
+ * There are some situations where we only want to create a new ref if one is not provided to a component
12
+ * or hook as a prop. However, due to the `rules-of-hooks`, we cannot conditionally make a call to `React.useRef`
13
+ * only in the situations where the ref is not provided as a prop.
14
+ * This hook aims to encapsulate that logic, so the consumer doesn't need to be concerned with violating `rules-of-hooks`.
15
+ * @param providedRef The ref to use - if undefined, will use the ref from a call to React.useRef
16
+ * @type TRef The type of the RefObject which should be created.
17
+ */
18
+ function useProvidedRefOrCreate(providedRef) {
19
+ const createdRef = React.useRef(null);
20
+ return providedRef !== null && providedRef !== void 0 ? providedRef : createdRef;
21
+ }
22
+
23
+ export { useProvidedRefOrCreate as default };
24
+ //# sourceMappingURL=useProvidedRefOrCreate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useProvidedRefOrCreate.js","sources":["../../../dist-transpiled/hooks/useProvidedRefOrCreate.js"],"sourcesContent":["/* eslint-disable */\n/**\n * This file is originally from `@primer/react`\n * The original source for this lived in the URL below.\n *\n * @see https://github.com/primer/react/blob/216d2a9f57b8acb0701ab4e04a23e057fc325c90/src/hooks/useProvidedRefOrCreate.ts\n */\nimport React from 'react';\n/**\n * There are some situations where we only want to create a new ref if one is not provided to a component\n * or hook as a prop. However, due to the `rules-of-hooks`, we cannot conditionally make a call to `React.useRef`\n * only in the situations where the ref is not provided as a prop.\n * This hook aims to encapsulate that logic, so the consumer doesn't need to be concerned with violating `rules-of-hooks`.\n * @param providedRef The ref to use - if undefined, will use the ref from a call to React.useRef\n * @type TRef The type of the RefObject which should be created.\n */\nexport default function useProvidedRefOrCreate(providedRef) {\n const createdRef = React.useRef(null);\n return providedRef !== null && providedRef !== void 0 ? providedRef : createdRef;\n}\n//# sourceMappingURL=useProvidedRefOrCreate.js.map"],"names":[],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAAS,sBAAsB,CAAC,WAAW,EAAE;AAC5D,IAAI,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC;AACzC,IAAI,OAAO,WAAW,KAAK,IAAI,IAAI,WAAW,KAAK,MAAM,GAAG,WAAW,GAAG,UAAU;AACpF;;;;"}
@@ -0,0 +1,50 @@
1
+ import { useCallback } from 'react';
2
+ import { useMediaBreakpointUpXs, useMediaBreakpointUpSm, useMediaBreakpointUpMd, useMediaBreakpointUpLg, useMediaBreakpointUpXl, useMediaBreakpointUpXxl } from './useMediaBreakpointUp.js';
3
+
4
+ /**
5
+ * React hook to resolve a responsive property value based on the current viewport breakpoint.
6
+ *
7
+ * Given a `ResponsiveProp` object, this hook returns the value for the highest matching breakpoint.
8
+ * If multiple breakpoints match, the value for the largest (highest) breakpoint is used.
9
+ * If no breakpoints match, `undefined` is returned.
10
+ *
11
+ * @param useListener - Whether to listen for breakpoint changes (default: false).
12
+ * @returns An object with a `responsivePropValue` function that takes a
13
+ * `ResponsiveProp` and returns the resolved value.
14
+ *
15
+ * Usage example:
16
+ * ```ts
17
+ * const { responsivePropValue } = useResponsiveProp();
18
+ * const value = responsivePropValue({ xs: "A", md: "B", xl: "C" });
19
+ * // value will be "C" if xl breakpoint is active, "B" if md is active, etc.
20
+ * ```
21
+ */
22
+ function useResponsiveProp(useListener = false) {
23
+ const bpXsUp = useMediaBreakpointUpXs(useListener);
24
+ const bpSmUp = useMediaBreakpointUpSm(useListener);
25
+ const bpMdUp = useMediaBreakpointUpMd(useListener);
26
+ const bpLgUp = useMediaBreakpointUpLg(useListener);
27
+ const bpXlUp = useMediaBreakpointUpXl(useListener);
28
+ const bpXxlUp = useMediaBreakpointUpXxl(useListener);
29
+ const responsivePropValue = useCallback((prop) => {
30
+ // Pick the highest matched breakpoint value that is defined in prop
31
+ if (prop.xxl !== undefined && bpXxlUp)
32
+ return prop.xxl;
33
+ if (prop.xl !== undefined && bpXlUp)
34
+ return prop.xl;
35
+ if (prop.lg !== undefined && bpLgUp)
36
+ return prop.lg;
37
+ if (prop.md !== undefined && bpMdUp)
38
+ return prop.md;
39
+ if (prop.sm !== undefined && bpSmUp)
40
+ return prop.sm;
41
+ if (prop.xs !== undefined && bpXsUp)
42
+ return prop.xs;
43
+ // Fallback: return undefined if no breakpoint matches
44
+ return undefined;
45
+ }, [bpSmUp, bpMdUp, bpLgUp, bpXlUp, bpXxlUp, bpXsUp]);
46
+ return { responsivePropValue };
47
+ }
48
+
49
+ export { useResponsiveProp };
50
+ //# sourceMappingURL=useResponsiveProp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useResponsiveProp.js","sources":["../../../dist-transpiled/hooks/useResponsiveProp.js"],"sourcesContent":["import { useCallback } from 'react';\nimport { useMediaBreakpointUpLg, useMediaBreakpointUpMd, useMediaBreakpointUpSm, useMediaBreakpointUpXl, useMediaBreakpointUpXs, useMediaBreakpointUpXxl, } from './useMediaBreakpointUp';\n/**\n * React hook to resolve a responsive property value based on the current viewport breakpoint.\n *\n * Given a `ResponsiveProp` object, this hook returns the value for the highest matching breakpoint.\n * If multiple breakpoints match, the value for the largest (highest) breakpoint is used.\n * If no breakpoints match, `undefined` is returned.\n *\n * @param useListener - Whether to listen for breakpoint changes (default: false).\n * @returns An object with a `responsivePropValue` function that takes a\n * `ResponsiveProp` and returns the resolved value.\n *\n * Usage example:\n * ```ts\n * const { responsivePropValue } = useResponsiveProp();\n * const value = responsivePropValue({ xs: \"A\", md: \"B\", xl: \"C\" });\n * // value will be \"C\" if xl breakpoint is active, \"B\" if md is active, etc.\n * ```\n */\nexport function useResponsiveProp(useListener = false) {\n const bpXsUp = useMediaBreakpointUpXs(useListener);\n const bpSmUp = useMediaBreakpointUpSm(useListener);\n const bpMdUp = useMediaBreakpointUpMd(useListener);\n const bpLgUp = useMediaBreakpointUpLg(useListener);\n const bpXlUp = useMediaBreakpointUpXl(useListener);\n const bpXxlUp = useMediaBreakpointUpXxl(useListener);\n const responsivePropValue = useCallback((prop) => {\n // Pick the highest matched breakpoint value that is defined in prop\n if (prop.xxl !== undefined && bpXxlUp)\n return prop.xxl;\n if (prop.xl !== undefined && bpXlUp)\n return prop.xl;\n if (prop.lg !== undefined && bpLgUp)\n return prop.lg;\n if (prop.md !== undefined && bpMdUp)\n return prop.md;\n if (prop.sm !== undefined && bpSmUp)\n return prop.sm;\n if (prop.xs !== undefined && bpXsUp)\n return prop.xs;\n // Fallback: return undefined if no breakpoint matches\n return undefined;\n }, [bpSmUp, bpMdUp, bpLgUp, bpXlUp, bpXxlUp, bpXsUp]);\n return { responsivePropValue };\n}\n//# sourceMappingURL=useResponsiveProp.js.map"],"names":[],"mappings":";;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAAS,iBAAiB,CAAC,WAAW,GAAG,KAAK,EAAE;AACvD,IAAI,MAAM,MAAM,GAAG,sBAAsB,CAAC,WAAW,CAAC;AACtD,IAAI,MAAM,MAAM,GAAG,sBAAsB,CAAC,WAAW,CAAC;AACtD,IAAI,MAAM,MAAM,GAAG,sBAAsB,CAAC,WAAW,CAAC;AACtD,IAAI,MAAM,MAAM,GAAG,sBAAsB,CAAC,WAAW,CAAC;AACtD,IAAI,MAAM,MAAM,GAAG,sBAAsB,CAAC,WAAW,CAAC;AACtD,IAAI,MAAM,OAAO,GAAG,uBAAuB,CAAC,WAAW,CAAC;AACxD,IAAI,MAAM,mBAAmB,GAAG,WAAW,CAAC,CAAC,IAAI,KAAK;AACtD;AACA,QAAQ,IAAI,IAAI,CAAC,GAAG,KAAK,SAAS,IAAI,OAAO;AAC7C,YAAY,OAAO,IAAI,CAAC,GAAG;AAC3B,QAAQ,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS,IAAI,MAAM;AAC3C,YAAY,OAAO,IAAI,CAAC,EAAE;AAC1B,QAAQ,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS,IAAI,MAAM;AAC3C,YAAY,OAAO,IAAI,CAAC,EAAE;AAC1B,QAAQ,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS,IAAI,MAAM;AAC3C,YAAY,OAAO,IAAI,CAAC,EAAE;AAC1B,QAAQ,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS,IAAI,MAAM;AAC3C,YAAY,OAAO,IAAI,CAAC,EAAE;AAC1B,QAAQ,IAAI,IAAI,CAAC,EAAE,KAAK,SAAS,IAAI,MAAM;AAC3C,YAAY,OAAO,IAAI,CAAC,EAAE;AAC1B;AACA,QAAQ,OAAO,SAAS;AACxB,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;AACzD,IAAI,OAAO,EAAE,mBAAmB,EAAE;AAClC;;;;"}
@@ -0,0 +1,40 @@
1
+ import { useState, useCallback, useMemo } from 'react';
2
+
3
+ /**
4
+ * useStackState inspired from rooks
5
+ * @see https://github.com/imbhargav5/rooks/blob/main/packages/rooks/src/hooks/useStackState.ts
6
+ * @description Manages a stack with react hooks.
7
+ * @param initialList Initial value of the list
8
+ * @returns The list and controls to modify the stack
9
+ * @see https://react-hooks.org/docs/useStackState
10
+ */
11
+ function useStackState(initialList = []) {
12
+ const [list, setList] = useState(initialList);
13
+ const push = useCallback((item) => (setList((prevList) => [
14
+ ...prevList,
15
+ item,
16
+ ])), []);
17
+ const pop = useCallback(() => (setList((prevList) => (prevList.slice(0, prevList.length - 1)))), []);
18
+ const peek = useCallback(() => list.at(-1), [list]);
19
+ const clear = useCallback(() => setList([]), []);
20
+ const isEmpty = useCallback(() => list.length === 0, [list.length]);
21
+ const controls = useMemo(() => ({
22
+ clear,
23
+ isEmpty,
24
+ length: list.length,
25
+ peek,
26
+ pop,
27
+ push,
28
+ }), [
29
+ clear,
30
+ isEmpty,
31
+ list.length,
32
+ peek,
33
+ pop,
34
+ push,
35
+ ]);
36
+ return [list, controls];
37
+ }
38
+
39
+ export { useStackState as default };
40
+ //# sourceMappingURL=useStackState.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useStackState.js","sources":["../../../dist-transpiled/hooks/useStackState.js"],"sourcesContent":["import { useCallback, useMemo, useState } from 'react';\n/**\n * useStackState inspired from rooks\n * @see https://github.com/imbhargav5/rooks/blob/main/packages/rooks/src/hooks/useStackState.ts\n * @description Manages a stack with react hooks.\n * @param initialList Initial value of the list\n * @returns The list and controls to modify the stack\n * @see https://react-hooks.org/docs/useStackState\n */\nexport default function useStackState(initialList = []) {\n const [list, setList] = useState(initialList);\n const push = useCallback((item) => (setList((prevList) => [\n ...prevList,\n item,\n ])), []);\n const pop = useCallback(() => (setList((prevList) => (prevList.slice(0, prevList.length - 1)))), []);\n const peek = useCallback(() => list.at(-1), [list]);\n const clear = useCallback(() => setList([]), []);\n const isEmpty = useCallback(() => list.length === 0, [list.length]);\n const controls = useMemo(() => ({\n clear,\n isEmpty,\n length: list.length,\n peek,\n pop,\n push,\n }), [\n clear,\n isEmpty,\n list.length,\n peek,\n pop,\n push,\n ]);\n return [list, controls];\n}\n//# sourceMappingURL=useStackState.js.map"],"names":[],"mappings":";;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAAS,aAAa,CAAC,WAAW,GAAG,EAAE,EAAE;AACxD,IAAI,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC,WAAW,CAAC;AACjD,IAAI,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,IAAI,MAAM,OAAO,CAAC,CAAC,QAAQ,KAAK;AAC9D,QAAQ,GAAG,QAAQ;AACnB,QAAQ,IAAI;AACZ,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC;AACZ,IAAI,MAAM,GAAG,GAAG,WAAW,CAAC,OAAO,OAAO,CAAC,CAAC,QAAQ,MAAM,QAAQ,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AACxG,IAAI,MAAM,IAAI,GAAG,WAAW,CAAC,MAAM,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,CAAC;AACvD,IAAI,MAAM,KAAK,GAAG,WAAW,CAAC,MAAM,OAAO,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;AACpD,IAAI,MAAM,OAAO,GAAG,WAAW,CAAC,MAAM,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACvE,IAAI,MAAM,QAAQ,GAAG,OAAO,CAAC,OAAO;AACpC,QAAQ,KAAK;AACb,QAAQ,OAAO;AACf,QAAQ,MAAM,EAAE,IAAI,CAAC,MAAM;AAC3B,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK,CAAC,EAAE;AACR,QAAQ,KAAK;AACb,QAAQ,OAAO;AACf,QAAQ,IAAI,CAAC,MAAM;AACnB,QAAQ,IAAI;AACZ,QAAQ,GAAG;AACX,QAAQ,IAAI;AACZ,KAAK,CAAC;AACN,IAAI,OAAO,CAAC,IAAI,EAAE,QAAQ,CAAC;AAC3B;;;;"}
@@ -0,0 +1,55 @@
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
+ const CORE_LUCIDE_ICONS = [
23
+ // iconMap defaults — src/contexts/DContext.tsx
24
+ 'AlertCircle',
25
+ 'AlertTriangle',
26
+ 'Calendar',
27
+ 'Check',
28
+ 'CheckCircle',
29
+ 'ChevronDown',
30
+ 'ChevronLeft',
31
+ 'ChevronRight',
32
+ 'ChevronUp',
33
+ 'Eye',
34
+ 'EyeOff',
35
+ 'Info',
36
+ 'Minus',
37
+ 'Plus',
38
+ 'Search',
39
+ 'Upload',
40
+ 'X',
41
+ // Hard-coded in component JSX or in a prop default
42
+ 'Circle',
43
+ 'CircleCheck',
44
+ 'CircleCheckBig',
45
+ 'Download',
46
+ 'FileText',
47
+ 'MoreVertical',
48
+ 'Paperclip',
49
+ 'RefreshCw',
50
+ 'Share2',
51
+ 'Trash',
52
+ ];
53
+
54
+ export { CORE_LUCIDE_ICONS };
55
+ //# sourceMappingURL=coreIcons.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coreIcons.js","sources":["../../../dist-transpiled/icons/coreIcons.js"],"sourcesContent":["/**\n * The lucide-react icons Dynamic UI renders on its own, without the consumer\n * asking for them by name.\n *\n * Two sources feed this list:\n *\n * - The `iconMap` defaults of `DContextProvider` (`src/contexts/DContext.tsx`),\n * used by close buttons, chevrons, alert states, input adornments and the\n * stepper checkmark.\n * - Names hard-coded in component JSX or in a prop default, such as\n * `DDropdown`'s toggle or `DVoucher`'s action buttons.\n *\n * Any bundler-level optimisation that narrows lucide-react down to the icons a\n * widget actually uses must keep this set, or Dynamic UI components break for\n * reasons the widget author cannot see in their own source. That is why the\n * list ships in the package as `dist/icons-core.json` and is exported here.\n *\n * `src/icons/coreIcons.spec.ts` scans `src/components/**` and fails when an\n * internally used icon name is missing from this list or absent from\n * lucide-react, so the two cannot drift apart.\n */\nexport const CORE_LUCIDE_ICONS = [\n // iconMap defaults — src/contexts/DContext.tsx\n 'AlertCircle',\n 'AlertTriangle',\n 'Calendar',\n 'Check',\n 'CheckCircle',\n 'ChevronDown',\n 'ChevronLeft',\n 'ChevronRight',\n 'ChevronUp',\n 'Eye',\n 'EyeOff',\n 'Info',\n 'Minus',\n 'Plus',\n 'Search',\n 'Upload',\n 'X',\n // Hard-coded in component JSX or in a prop default\n 'Circle',\n 'CircleCheck',\n 'CircleCheckBig',\n 'Download',\n 'FileText',\n 'MoreVertical',\n 'Paperclip',\n 'RefreshCw',\n 'Share2',\n 'Trash',\n];\n//# sourceMappingURL=coreIcons.js.map"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACY,MAAC,iBAAiB,GAAG;AACjC;AACA,IAAI,aAAa;AACjB,IAAI,eAAe;AACnB,IAAI,UAAU;AACd,IAAI,OAAO;AACX,IAAI,aAAa;AACjB,IAAI,aAAa;AACjB,IAAI,aAAa;AACjB,IAAI,cAAc;AAClB,IAAI,WAAW;AACf,IAAI,KAAK;AACT,IAAI,QAAQ;AACZ,IAAI,MAAM;AACV,IAAI,OAAO;AACX,IAAI,MAAM;AACV,IAAI,QAAQ;AACZ,IAAI,QAAQ;AACZ,IAAI,GAAG;AACP;AACA,IAAI,QAAQ;AACZ,IAAI,aAAa;AACjB,IAAI,gBAAgB;AACpB,IAAI,UAAU;AACd,IAAI,UAAU;AACd,IAAI,cAAc;AAClB,IAAI,WAAW;AACf,IAAI,WAAW;AACf,IAAI,QAAQ;AACZ,IAAI,OAAO;AACX;;;;"}
@@ -0,0 +1,98 @@
1
+ export { default as DAlert } from './components/DAlert/DAlert.js';
2
+ export { default as DAvatar } from './components/DAvatar/DAvatar.js';
3
+ export { default as DBadge } from './components/DBadge/DBadge.js';
4
+ export { default as DBox } from './components/DBox/DBox.js';
5
+ export { default as DBoxFile } from './components/DBoxFile/DBoxFile.js';
6
+ export { default as DButton } from './components/DButton/DButton.js';
7
+ export { default as DButtonIcon } from './components/DButtonIcon/DButtonIcon.js';
8
+ export { default as DCard } from './components/DCard/DCard.js';
9
+ export { default as DCardHeader } from './components/DCard/components/DCardHeader.js';
10
+ export { default as DCardBody } from './components/DCard/components/DCardBody.js';
11
+ export { default as DCardFooter } from './components/DCard/components/DCardFooter.js';
12
+ export { default as DCarousel } from './components/DCarousel/DCarousel.js';
13
+ export { default as DCarouselSlide } from './components/DCarousel/components/DCarouselSlide.js';
14
+ export { default as DChip } from './components/DChip/DChip.js';
15
+ export { default as DCollapse } from './components/DCollapse/DCollapse.js';
16
+ export { default as DConfirmModalContainer } from './components/DConfirmModal/DConfirmModalContainer.js';
17
+ export { default as DCreditCard } from './components/DCreditCard/DCreditCard.js';
18
+ export { default as DCurrencyText } from './components/DCurrencyText/DCurrencyText.js';
19
+ export { default as DDataStateWrapper } from './components/DDataStateWrapper/DDataStateWrapper.js';
20
+ export { EmptyState } from './components/DDataStateWrapper/components/EmptyState.js';
21
+ export { ErrorState } from './components/DDataStateWrapper/components/ErrorState.js';
22
+ export { LoadingState } from './components/DDataStateWrapper/components/LoadingState.js';
23
+ export { default as DDatePicker } from './components/DDatePicker/DDatePicker.js';
24
+ export { default as DDropdown } from './components/DDropdown/DDropdown.js';
25
+ export { default as DErrorBoundary } from './components/DErrorBoundary/DErrorBoundary.js';
26
+ export { default as DIcon } from './components/DIcon/DIcon.js';
27
+ export { default as DIconBase } from './components/DIconBase/DIconBase.js';
28
+ export { default as DInput } from './components/DInput/DInput.js';
29
+ export { default as DInputCheck } from './components/DInputCheck/DInputCheck.js';
30
+ export { default as DInputCounter } from './components/DInputCounter/DInputCounter.js';
31
+ export { default as DInputCurrency } from './components/DInputCurrency/DInputCurrency.js';
32
+ export { default as DInputMask } from './components/DInputMask/DInputMask.js';
33
+ export { default as DInputPassword } from './components/DInputPassword/DInputPassword.js';
34
+ export { default as DInputPhone } from './components/DInputPhone/DInputPhone.js';
35
+ export { default as DInputPin } from './components/DInputPin/DInputPin.js';
36
+ export { default as DInputRange } from './components/DInputRange/DInputRange.js';
37
+ export { default as DInputSearch } from './components/DInputSearch/DInputSearch.js';
38
+ export { default as DInputSelect } from './components/DInputSelect/DInputSelect.js';
39
+ export { default as DInputSwitch } from './components/DInputSwitch/DInputSwitch.js';
40
+ export { default as DLayout } from './components/DLayout/DLayout.js';
41
+ export { default as DLayoutPane } from './components/DLayout/components/DLayoutPane.js';
42
+ export { default as DListGroup } from './components/DListGroup/DListGroup.js';
43
+ export { default as DListGroupItem } from './components/DListGroup/components/DListGroupItem.js';
44
+ export { default as DModal } from './components/DModal/DModal.js';
45
+ export { default as DModalHeader } from './components/DModal/components/DModalHeader.js';
46
+ export { default as DModalBody } from './components/DModal/components/DModalBody.js';
47
+ export { default as DModalFooter } from './components/DModal/components/DModalFooter.js';
48
+ export { default as DOffcanvas } from './components/DOffcanvas/DOffcanvas.js';
49
+ export { default as DOffcanvasHeader } from './components/DOffcanvas/components/DOffcanvasHeader.js';
50
+ export { default as DOffcanvasBody } from './components/DOffcanvas/components/DOffcanvasBody.js';
51
+ export { default as DOffcanvasFooter } from './components/DOffcanvas/components/DOffcanvasFooter.js';
52
+ export { default as DOtp } from './components/DOtp/DOtp.js';
53
+ export { default as DPaginator } from './components/DPaginator/DPaginator.js';
54
+ export { default as DPasswordStrengthMeter } from './components/DPasswordStrengthMeter/DPasswordStrengthMeter.js';
55
+ export { default as DPopover } from './components/DPopover/DPopover.js';
56
+ export { default as DProgress } from './components/DProgress/DProgress.js';
57
+ export { default as DSelect } from './components/DSelect/DSelect.js';
58
+ export { default as DStepper } from './components/DStepper/DStepper.js';
59
+ export { default as DStepperDesktop } from './components/DStepperDesktop/DStepperDesktop.js';
60
+ export { default as DStepperMobile } from './components/DStepperMobile/DStepperMobile.js';
61
+ export { default as DTabContent } from './components/DTabs/components/DTabContent.js';
62
+ export { default as DTabs } from './components/DTabs/DTabs.js';
63
+ export { useTabContext } from './components/DTabs/TabContext.js';
64
+ export { default as DTimeline } from './components/DTimeline/DTimeline.js';
65
+ export { default as DToast } from './components/DToast/DToast.js';
66
+ export { default as DToastContainer } from './components/DToastContainer/DToastContainer.js';
67
+ export { default as useDToast } from './components/DToastContainer/useDToast.js';
68
+ export { default as DTooltip } from './components/DTooltip/DTooltip.js';
69
+ export { default as DVoucher } from './components/DVoucher/DVoucher.js';
70
+ export { default as useScreenshot } from './components/DVoucher/hooks/useScreenshot.js';
71
+ export { default as useScreenshotDownload } from './components/DVoucher/hooks/useScreenshotDownload.js';
72
+ export { default as useScreenshotWebShare } from './components/DVoucher/hooks/useScreenshotWebShare.js';
73
+ export { default as buildUrl } from './utils/buildUrl.js';
74
+ export { default as changeQueryString } from './utils/changeQueryString.js';
75
+ export { default as configureI18n } from './utils/configureI18n.js';
76
+ export { default as formatCurrency } from './utils/formatCurrency.js';
77
+ export { default as getCssVariable } from './utils/getCssVariable.js';
78
+ export { default as getQueryString } from './utils/getQueryString.js';
79
+ export { default as sanitizeHref } from './utils/sanitizeHref.js';
80
+ export { default as useConfirmModal } from './hooks/useConfirmModal.js';
81
+ export { default as useCountdown } from './hooks/useCountdown.js';
82
+ export { default as useDisableBodyScrollEffect } from './hooks/useDisableBodyScrollEffect.js';
83
+ export { default as useDisableInputWheel } from './hooks/useDisableInputWheel.js';
84
+ export { default as useFormatCurrency } from './hooks/useFormatCurrency.js';
85
+ export { default as useInputCurrency } from './hooks/useInputCurrency.js';
86
+ export { default as useItemSelection } from './hooks/useItemSelection.js';
87
+ export { default as useMediaQuery } from './hooks/useMediaQuery.js';
88
+ export { default as useOtp } from './hooks/useOtp.js';
89
+ export { default as useProvidedRefOrCreate } from './hooks/useProvidedRefOrCreate.js';
90
+ export { default as useStackState } from './hooks/useStackState.js';
91
+ export { default as validatePhoneNumber } from './utils/validatePhoneNumber.js';
92
+ export { CORE_LUCIDE_ICONS } from './icons/coreIcons.js';
93
+ export { DContext, DContextProvider, useDContext } from './contexts/DContext.js';
94
+ export { checkMediaQuery, subscribeToMediaQuery } from './utils/mediaQuery.js';
95
+ export { getErrorMessage, useErrorBoundary } from 'react-error-boundary';
96
+ export { useDPortalContext } from './contexts/DPortalContext.js';
97
+ export { useMediaBreakpointUpLg, useMediaBreakpointUpMd, useMediaBreakpointUpSm, useMediaBreakpointUpXl, useMediaBreakpointUpXs, useMediaBreakpointUpXxl } from './hooks/useMediaBreakpointUp.js';
98
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,38 @@
1
+ /**
2
+ * Check if the provided file type should be accepted by the input with accept attribute.
3
+ * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input#attr-accept
4
+ *
5
+ * Inspired by https://github.com/enyo/dropzone
6
+ *
7
+ * @param file {File} https://developer.mozilla.org/en-US/docs/Web/API/File
8
+ * @param acceptedFiles {string|string[]}
9
+ * @returns {boolean}
10
+ */
11
+ function attrAccept(file, acceptedFiles) {
12
+ if (file && acceptedFiles) {
13
+ const acceptedFilesArray = Array.isArray(acceptedFiles)
14
+ ? acceptedFiles
15
+ : acceptedFiles.split(',');
16
+ if (acceptedFilesArray.length === 0) {
17
+ return true;
18
+ }
19
+ const fileName = file.name || '';
20
+ const mimeType = (file.type || '').toLowerCase();
21
+ const baseMimeType = mimeType.replace(/\/.*$/, '');
22
+ return acceptedFilesArray.some((type) => {
23
+ const validType = type.trim().toLowerCase();
24
+ if (validType.charAt(0) === '.') {
25
+ return fileName.toLowerCase().endsWith(validType);
26
+ }
27
+ if (validType.endsWith('/*')) {
28
+ // This is something like a image/* mime type
29
+ return baseMimeType === validType.replace(/\/.*$/, '');
30
+ }
31
+ return mimeType === validType;
32
+ });
33
+ }
34
+ return true;
35
+ }
36
+
37
+ export { attrAccept as default };
38
+ //# sourceMappingURL=attr-accept.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"attr-accept.js","sources":["../../../dist-transpiled/utils/attr-accept.js"],"sourcesContent":["/**\n * Check if the provided file type should be accepted by the input with accept attribute.\n * https://developer.mozilla.org/en-US/docs/Web/HTML/Element/Input#attr-accept\n *\n * Inspired by https://github.com/enyo/dropzone\n *\n * @param file {File} https://developer.mozilla.org/en-US/docs/Web/API/File\n * @param acceptedFiles {string|string[]}\n * @returns {boolean}\n */\nexport default function attrAccept(file, acceptedFiles) {\n if (file && acceptedFiles) {\n const acceptedFilesArray = Array.isArray(acceptedFiles)\n ? acceptedFiles\n : acceptedFiles.split(',');\n if (acceptedFilesArray.length === 0) {\n return true;\n }\n const fileName = file.name || '';\n const mimeType = (file.type || '').toLowerCase();\n const baseMimeType = mimeType.replace(/\\/.*$/, '');\n return acceptedFilesArray.some((type) => {\n const validType = type.trim().toLowerCase();\n if (validType.charAt(0) === '.') {\n return fileName.toLowerCase().endsWith(validType);\n }\n if (validType.endsWith('/*')) {\n // This is something like a image/* mime type\n return baseMimeType === validType.replace(/\\/.*$/, '');\n }\n return mimeType === validType;\n });\n }\n return true;\n}\n//# sourceMappingURL=attr-accept.js.map"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAAS,UAAU,CAAC,IAAI,EAAE,aAAa,EAAE;AACxD,IAAI,IAAI,IAAI,IAAI,aAAa,EAAE;AAC/B,QAAQ,MAAM,kBAAkB,GAAG,KAAK,CAAC,OAAO,CAAC,aAAa;AAC9D,cAAc;AACd,cAAc,aAAa,CAAC,KAAK,CAAC,GAAG,CAAC;AACtC,QAAQ,IAAI,kBAAkB,CAAC,MAAM,KAAK,CAAC,EAAE;AAC7C,YAAY,OAAO,IAAI;AACvB,QAAQ;AACR,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,IAAI,EAAE;AACxC,QAAQ,MAAM,QAAQ,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,EAAE,WAAW,EAAE;AACxD,QAAQ,MAAM,YAAY,GAAG,QAAQ,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;AAC1D,QAAQ,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC,IAAI,KAAK;AACjD,YAAY,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC,WAAW,EAAE;AACvD,YAAY,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAC7C,gBAAgB,OAAO,QAAQ,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;AACjE,YAAY;AACZ,YAAY,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;AAC1C;AACA,gBAAgB,OAAO,YAAY,KAAK,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC;AACtE,YAAY;AACZ,YAAY,OAAO,QAAQ,KAAK,SAAS;AACzC,QAAQ,CAAC,CAAC;AACV,IAAI;AACJ,IAAI,OAAO,IAAI;AACf;;;;"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * Characters the URL parser drops before resolving a URL, so they cannot be used to hide a
3
+ * scheme-relative prefix (e.g. `/<TAB>/evil.com`).
4
+ */
5
+ const IGNORED_CHARS = /[\t\n\r]/g;
6
+ /**
7
+ * Leading separators. Browsers treat a leading `\` exactly like a leading `/`, so both have
8
+ * to be stripped to prevent scheme-relative URLs (`//evil.com`, `/\evil.com`, `\\evil.com`).
9
+ */
10
+ const LEADING_SEPARATORS = /^[/\\]+/;
11
+ /**
12
+ * Builds an internal URL from a `path` and a set of query `params`, normalizing leading
13
+ * separators to prevent scheme-relative URLs (e.g. `//accounts` and `/\accounts` both become
14
+ * `/accounts`).
15
+ *
16
+ * The `path` is trimmed and every tab, line feed and carriage return is removed before
17
+ * building the result, because the URL parser ignores those characters too and they would
18
+ * otherwise hide a scheme-relative prefix (`/<TAB>/evil.com` resolves to `//evil.com`).
19
+ *
20
+ * Handles the special case where `path` is the literal string `'#'`, which happens when
21
+ * a Liquid template variable used as a link target is left unconfigured; in that case the
22
+ * params are ignored and `'#'` is returned as-is instead of building a broken URL.
23
+ *
24
+ * @param path - The path to build the URL from. Leading separators are stripped before
25
+ * building the result (`/accounts`, `//accounts` and `\accounts` are all treated as `accounts`).
26
+ * @param params - Key/value pairs serialized as the query string.
27
+ * @returns The resulting URL:
28
+ * - `'#'` when `path` normalizes to `'#'` (`'#'`, `'/#'`), ignoring the params.
29
+ * - `'/'` when `path` is empty and there are no params.
30
+ * - `'/?<query>'` when `path` is empty and there are params.
31
+ * - `'<path>'` or `'<path>?<query>'` when `path` starts with `#`, since a fragment must not be
32
+ * prefixed with `/` (it would navigate away from the current document).
33
+ * - `'/<path>'` or `'/<path>?<query>'` otherwise.
34
+ *
35
+ * @example
36
+ * buildUrl('accounts', { account_id: '42' }); // '/accounts?account_id=42'
37
+ * buildUrl('//accounts', {}); // '/accounts'
38
+ * buildUrl('#', { account_id: '42' }); // '#'
39
+ * buildUrl('#accounts', { account_id: '42' }); // '#accounts?account_id=42'
40
+ * buildUrl('', { tab: 'movimientos' }); // '/?tab=movimientos'
41
+ */
42
+ function buildUrl(path, params) {
43
+ const normalizedPath = path
44
+ .trim()
45
+ .replace(IGNORED_CHARS, '')
46
+ .replace(LEADING_SEPARATORS, '');
47
+ if (normalizedPath === '#')
48
+ return '#';
49
+ const query = new URLSearchParams(Object.entries(params).map(([key, value]) => [key, String(value)])).toString();
50
+ if (normalizedPath === '')
51
+ return query ? `/?${query}` : '/';
52
+ const prefix = normalizedPath.startsWith('#') ? '' : '/';
53
+ return `${prefix}${normalizedPath}${query ? `?${query}` : ''}`;
54
+ }
55
+
56
+ export { buildUrl as default };
57
+ //# sourceMappingURL=buildUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buildUrl.js","sources":["../../../dist-transpiled/utils/buildUrl.js"],"sourcesContent":["/**\n * Characters the URL parser drops before resolving a URL, so they cannot be used to hide a\n * scheme-relative prefix (e.g. `/<TAB>/evil.com`).\n */\nconst IGNORED_CHARS = /[\\t\\n\\r]/g;\n/**\n * Leading separators. Browsers treat a leading `\\` exactly like a leading `/`, so both have\n * to be stripped to prevent scheme-relative URLs (`//evil.com`, `/\\evil.com`, `\\\\evil.com`).\n */\nconst LEADING_SEPARATORS = /^[/\\\\]+/;\n/**\n * Builds an internal URL from a `path` and a set of query `params`, normalizing leading\n * separators to prevent scheme-relative URLs (e.g. `//accounts` and `/\\accounts` both become\n * `/accounts`).\n *\n * The `path` is trimmed and every tab, line feed and carriage return is removed before\n * building the result, because the URL parser ignores those characters too and they would\n * otherwise hide a scheme-relative prefix (`/<TAB>/evil.com` resolves to `//evil.com`).\n *\n * Handles the special case where `path` is the literal string `'#'`, which happens when\n * a Liquid template variable used as a link target is left unconfigured; in that case the\n * params are ignored and `'#'` is returned as-is instead of building a broken URL.\n *\n * @param path - The path to build the URL from. Leading separators are stripped before\n * building the result (`/accounts`, `//accounts` and `\\accounts` are all treated as `accounts`).\n * @param params - Key/value pairs serialized as the query string.\n * @returns The resulting URL:\n * - `'#'` when `path` normalizes to `'#'` (`'#'`, `'/#'`), ignoring the params.\n * - `'/'` when `path` is empty and there are no params.\n * - `'/?<query>'` when `path` is empty and there are params.\n * - `'<path>'` or `'<path>?<query>'` when `path` starts with `#`, since a fragment must not be\n * prefixed with `/` (it would navigate away from the current document).\n * - `'/<path>'` or `'/<path>?<query>'` otherwise.\n *\n * @example\n * buildUrl('accounts', { account_id: '42' }); // '/accounts?account_id=42'\n * buildUrl('//accounts', {}); // '/accounts'\n * buildUrl('#', { account_id: '42' }); // '#'\n * buildUrl('#accounts', { account_id: '42' }); // '#accounts?account_id=42'\n * buildUrl('', { tab: 'movimientos' }); // '/?tab=movimientos'\n */\nexport default function buildUrl(path, params) {\n const normalizedPath = path\n .trim()\n .replace(IGNORED_CHARS, '')\n .replace(LEADING_SEPARATORS, '');\n if (normalizedPath === '#')\n return '#';\n const query = new URLSearchParams(Object.entries(params).map(([key, value]) => [key, String(value)])).toString();\n if (normalizedPath === '')\n return query ? `/?${query}` : '/';\n const prefix = normalizedPath.startsWith('#') ? '' : '/';\n return `${prefix}${normalizedPath}${query ? `?${query}` : ''}`;\n}\n//# sourceMappingURL=buildUrl.js.map"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA,MAAM,aAAa,GAAG,WAAW;AACjC;AACA;AACA;AACA;AACA,MAAM,kBAAkB,GAAG,SAAS;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACe,SAAS,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE;AAC/C,IAAI,MAAM,cAAc,GAAG;AAC3B,SAAS,IAAI;AACb,SAAS,OAAO,CAAC,aAAa,EAAE,EAAE;AAClC,SAAS,OAAO,CAAC,kBAAkB,EAAE,EAAE,CAAC;AACxC,IAAI,IAAI,cAAc,KAAK,GAAG;AAC9B,QAAQ,OAAO,GAAG;AAClB,IAAI,MAAM,KAAK,GAAG,IAAI,eAAe,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;AACpH,IAAI,IAAI,cAAc,KAAK,EAAE;AAC7B,QAAQ,OAAO,KAAK,GAAG,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,GAAG,GAAG;AACzC,IAAI,MAAM,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG;AAC5D,IAAI,OAAO,CAAC,EAAE,MAAM,CAAC,EAAE,cAAc,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC;AAClE;;;;"}
@@ -0,0 +1,19 @@
1
+ function changeQueryString(values, { useSearch = true, pushState = false, } = {}) {
2
+ const searchParams = new URLSearchParams(useSearch ? window.location.search : '');
3
+ Object.entries(values).forEach(([key, value]) => {
4
+ if (!value) {
5
+ searchParams.delete(key);
6
+ return;
7
+ }
8
+ searchParams.set(key, String(value));
9
+ });
10
+ if (pushState) {
11
+ const url = new URL(window.location.href);
12
+ url.search = searchParams.toString();
13
+ window.history.pushState(null, '', url.toString());
14
+ }
15
+ return searchParams.toString();
16
+ }
17
+
18
+ export { changeQueryString as default };
19
+ //# sourceMappingURL=changeQueryString.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"changeQueryString.js","sources":["../../../dist-transpiled/utils/changeQueryString.js"],"sourcesContent":["export default function changeQueryString(values, { useSearch = true, pushState = false, } = {}) {\n const searchParams = new URLSearchParams(useSearch ? window.location.search : '');\n Object.entries(values).forEach(([key, value]) => {\n if (!value) {\n searchParams.delete(key);\n return;\n }\n searchParams.set(key, String(value));\n });\n if (pushState) {\n const url = new URL(window.location.href);\n url.search = searchParams.toString();\n window.history.pushState(null, '', url.toString());\n }\n return searchParams.toString();\n}\n//# sourceMappingURL=changeQueryString.js.map"],"names":[],"mappings":"AAAe,SAAS,iBAAiB,CAAC,MAAM,EAAE,EAAE,SAAS,GAAG,IAAI,EAAE,SAAS,GAAG,KAAK,GAAG,GAAG,EAAE,EAAE;AACjG,IAAI,MAAM,YAAY,GAAG,IAAI,eAAe,CAAC,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE,CAAC;AACrF,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,KAAK;AACrD,QAAQ,IAAI,CAAC,KAAK,EAAE;AACpB,YAAY,YAAY,CAAC,MAAM,CAAC,GAAG,CAAC;AACpC,YAAY;AACZ,QAAQ;AACR,QAAQ,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5C,IAAI,CAAC,CAAC;AACN,IAAI,IAAI,SAAS,EAAE;AACnB,QAAQ,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC;AACjD,QAAQ,GAAG,CAAC,MAAM,GAAG,YAAY,CAAC,QAAQ,EAAE;AAC5C,QAAQ,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;AAC1D,IAAI;AACJ,IAAI,OAAO,YAAY,CAAC,QAAQ,EAAE;AAClC;;;;"}
@@ -0,0 +1,20 @@
1
+ import { __rest } from 'tslib';
2
+ import i18n from 'i18next';
3
+ import { initReactI18next } from 'react-i18next';
4
+
5
+ async function configureI8n(resources, _a = {}) {
6
+ var { lng = 'en', fallbackLng = 'en' } = _a, config = __rest(_a, ["lng", "fallbackLng"]);
7
+ return i18n
8
+ .use(initReactI18next)
9
+ .init(Object.assign({ resources,
10
+ lng, initImmediate: true, fallbackLng, interpolation: {
11
+ escapeValue: false,
12
+ prefix: '{',
13
+ suffix: '}',
14
+ // skipOnVariables: false,
15
+ } }, config))
16
+ .then((t) => t);
17
+ }
18
+
19
+ export { configureI8n as default };
20
+ //# sourceMappingURL=configureI18n.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configureI18n.js","sources":["../../../dist-transpiled/utils/configureI18n.js"],"sourcesContent":["import { __rest } from \"tslib\";\nimport i18n from 'i18next';\nimport { initReactI18next } from 'react-i18next';\nexport default async function configureI8n(resources, _a = {}) {\n var { lng = 'en', fallbackLng = 'en' } = _a, config = __rest(_a, [\"lng\", \"fallbackLng\"]);\n return i18n\n .use(initReactI18next)\n .init(Object.assign({ resources,\n lng, initImmediate: true, fallbackLng, interpolation: {\n escapeValue: false,\n prefix: '{',\n suffix: '}',\n // skipOnVariables: false,\n } }, config))\n .then((t) => t);\n}\n//# sourceMappingURL=configureI18n.js.map"],"names":[],"mappings":";;;;AAGe,eAAe,YAAY,CAAC,SAAS,EAAE,EAAE,GAAG,EAAE,EAAE;AAC/D,IAAI,IAAI,EAAE,GAAG,GAAG,IAAI,EAAE,WAAW,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE,MAAM,GAAG,MAAM,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC;AAC5F,IAAI,OAAO;AACX,SAAS,GAAG,CAAC,gBAAgB;AAC7B,SAAS,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS;AACvC,QAAQ,GAAG,EAAE,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,aAAa,EAAE;AAC9D,YAAY,WAAW,EAAE,KAAK;AAC9B,YAAY,MAAM,EAAE,GAAG;AACvB,YAAY,MAAM,EAAE,GAAG;AACvB;AACA,SAAS,EAAE,EAAE,MAAM,CAAC;AACpB,SAAS,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACvB;;;;"}