@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.
Files changed (478) hide show
  1. package/dist/DPortalStack-6zJm6JoD.js +14 -0
  2. package/dist/DPortalStack-6zJm6JoD.js.map +1 -0
  3. package/dist/DPortalStack-D1-GGU4C.js +12 -0
  4. package/dist/DPortalStack-D1-GGU4C.js.map +1 -0
  5. package/dist/api.json +7429 -0
  6. package/dist/css/dynamic-ui.css +95 -26
  7. package/dist/css/dynamic-ui.min.css +2 -2
  8. package/dist/esm/components/DAlert/DAlert.js +16 -0
  9. package/dist/esm/components/DAlert/DAlert.js.map +1 -0
  10. package/dist/esm/components/DAlert/index.js +6 -0
  11. package/dist/esm/components/DAlert/index.js.map +1 -0
  12. package/dist/esm/components/DAvatar/DAvatar.js +23 -0
  13. package/dist/esm/components/DAvatar/DAvatar.js.map +1 -0
  14. package/dist/esm/components/DAvatar/index.js +6 -0
  15. package/dist/esm/components/DAvatar/index.js.map +1 -0
  16. package/dist/esm/components/DBadge/DBadge.js +31 -0
  17. package/dist/esm/components/DBadge/DBadge.js.map +1 -0
  18. package/dist/esm/components/DBadge/index.js +6 -0
  19. package/dist/esm/components/DBadge/index.js.map +1 -0
  20. package/dist/esm/components/DBox/DBox.js +9 -0
  21. package/dist/esm/components/DBox/DBox.js.map +1 -0
  22. package/dist/esm/components/DBox/index.js +6 -0
  23. package/dist/esm/components/DBox/index.js.map +1 -0
  24. package/dist/esm/components/DBoxFile/DBoxFile.js +26 -0
  25. package/dist/esm/components/DBoxFile/DBoxFile.js.map +1 -0
  26. package/dist/esm/components/DBoxFile/index.js +6 -0
  27. package/dist/esm/components/DBoxFile/index.js.map +1 -0
  28. package/dist/esm/components/DBoxFile/useDBoxFile.js +236 -0
  29. package/dist/esm/components/DBoxFile/useDBoxFile.js.map +1 -0
  30. package/dist/esm/components/DBoxFile/utils.js +127 -0
  31. package/dist/esm/components/DBoxFile/utils.js.map +1 -0
  32. package/dist/esm/components/DButton/DButton.js +84 -0
  33. package/dist/esm/components/DButton/DButton.js.map +1 -0
  34. package/dist/esm/components/DButton/index.js +6 -0
  35. package/dist/esm/components/DButton/index.js.map +1 -0
  36. package/dist/esm/components/DButtonIcon/DButtonIcon.js +55 -0
  37. package/dist/esm/components/DButtonIcon/DButtonIcon.js.map +1 -0
  38. package/dist/esm/components/DButtonIcon/index.js +6 -0
  39. package/dist/esm/components/DButtonIcon/index.js.map +1 -0
  40. package/dist/esm/components/DButtonIcon/warnMissingAccessibleName.js +40 -0
  41. package/dist/esm/components/DButtonIcon/warnMissingAccessibleName.js.map +1 -0
  42. package/dist/esm/components/DCard/DCard.js +17 -0
  43. package/dist/esm/components/DCard/DCard.js.map +1 -0
  44. package/dist/esm/components/DCard/components/DCardBody.js +9 -0
  45. package/dist/esm/components/DCard/components/DCardBody.js.map +1 -0
  46. package/dist/esm/components/DCard/components/DCardFooter.js +9 -0
  47. package/dist/esm/components/DCard/components/DCardFooter.js.map +1 -0
  48. package/dist/esm/components/DCard/components/DCardHeader.js +9 -0
  49. package/dist/esm/components/DCard/components/DCardHeader.js.map +1 -0
  50. package/dist/esm/components/DCard/index.js +9 -0
  51. package/dist/esm/components/DCard/index.js.map +1 -0
  52. package/dist/esm/components/DCarousel/DCarousel.js +39 -0
  53. package/dist/esm/components/DCarousel/DCarousel.js.map +1 -0
  54. package/dist/esm/components/DCarousel/components/DCarouselSlide.js +12 -0
  55. package/dist/esm/components/DCarousel/components/DCarouselSlide.js.map +1 -0
  56. package/dist/esm/components/DCarousel/index.js +7 -0
  57. package/dist/esm/components/DCarousel/index.js.map +1 -0
  58. package/dist/esm/components/DChip/DChip.js +18 -0
  59. package/dist/esm/components/DChip/DChip.js.map +1 -0
  60. package/dist/esm/components/DChip/index.js +6 -0
  61. package/dist/esm/components/DChip/index.js.map +1 -0
  62. package/dist/esm/components/DCollapse/DCollapse.js +30 -0
  63. package/dist/esm/components/DCollapse/DCollapse.js.map +1 -0
  64. package/dist/esm/components/DCollapse/index.js +6 -0
  65. package/dist/esm/components/DCollapse/index.js.map +1 -0
  66. package/dist/esm/components/DConfirmModal/DConfirmModalContainer.js +59 -0
  67. package/dist/esm/components/DConfirmModal/DConfirmModalContainer.js.map +1 -0
  68. package/dist/esm/components/DConfirmModal/DConfirmModalUI.js +39 -0
  69. package/dist/esm/components/DConfirmModal/DConfirmModalUI.js.map +1 -0
  70. package/dist/esm/components/DConfirmModal/confirmModalStore.js +38 -0
  71. package/dist/esm/components/DConfirmModal/confirmModalStore.js.map +1 -0
  72. package/dist/esm/components/DCreditCard/DCreditCard.js +15 -0
  73. package/dist/esm/components/DCreditCard/DCreditCard.js.map +1 -0
  74. package/dist/esm/components/DCreditCard/index.js +6 -0
  75. package/dist/esm/components/DCreditCard/index.js.map +1 -0
  76. package/dist/esm/components/DCurrencyText/DCurrencyText.js +10 -0
  77. package/dist/esm/components/DCurrencyText/DCurrencyText.js.map +1 -0
  78. package/dist/esm/components/DCurrencyText/index.js +6 -0
  79. package/dist/esm/components/DCurrencyText/index.js.map +1 -0
  80. package/dist/esm/components/DDataStateWrapper/DDataStateWrapper.js +42 -0
  81. package/dist/esm/components/DDataStateWrapper/DDataStateWrapper.js.map +1 -0
  82. package/dist/esm/components/DDataStateWrapper/components/EmptyState.js +10 -0
  83. package/dist/esm/components/DDataStateWrapper/components/EmptyState.js.map +1 -0
  84. package/dist/esm/components/DDataStateWrapper/components/ErrorState.js +10 -0
  85. package/dist/esm/components/DDataStateWrapper/components/ErrorState.js.map +1 -0
  86. package/dist/esm/components/DDataStateWrapper/components/LoadingState.js +8 -0
  87. package/dist/esm/components/DDataStateWrapper/components/LoadingState.js.map +1 -0
  88. package/dist/esm/components/DDataStateWrapper/index.js +9 -0
  89. package/dist/esm/components/DDataStateWrapper/index.js.map +1 -0
  90. package/dist/esm/components/DDatePicker/DDatePicker.js +54 -0
  91. package/dist/esm/components/DDatePicker/DDatePicker.js.map +1 -0
  92. package/dist/esm/components/DDatePicker/components/DDatePickerHeaderSelector.js +50 -0
  93. package/dist/esm/components/DDatePicker/components/DDatePickerHeaderSelector.js.map +1 -0
  94. package/dist/esm/components/DDatePicker/components/DDatePickerInput.js +16 -0
  95. package/dist/esm/components/DDatePicker/components/DDatePickerInput.js.map +1 -0
  96. package/dist/esm/components/DDatePicker/components/DDatePickerTime.js +11 -0
  97. package/dist/esm/components/DDatePicker/components/DDatePickerTime.js.map +1 -0
  98. package/dist/esm/components/DDatePicker/index.js +6 -0
  99. package/dist/esm/components/DDatePicker/index.js.map +1 -0
  100. package/dist/esm/components/DDropdown/DDropdown.js +315 -0
  101. package/dist/esm/components/DDropdown/DDropdown.js.map +1 -0
  102. package/dist/esm/components/DDropdown/index.js +6 -0
  103. package/dist/esm/components/DDropdown/index.js.map +1 -0
  104. package/dist/esm/components/DErrorBoundary/DErrorBoundary.js +22 -0
  105. package/dist/esm/components/DErrorBoundary/DErrorBoundary.js.map +1 -0
  106. package/dist/esm/components/DErrorBoundary/components/DefaultErrorBoundary.js +10 -0
  107. package/dist/esm/components/DErrorBoundary/components/DefaultErrorBoundary.js.map +1 -0
  108. package/dist/esm/components/DErrorBoundary/index.js +7 -0
  109. package/dist/esm/components/DErrorBoundary/index.js.map +1 -0
  110. package/dist/esm/components/DIcon/DIcon.js +21 -0
  111. package/dist/esm/components/DIcon/DIcon.js.map +1 -0
  112. package/dist/esm/components/DIcon/index.js +6 -0
  113. package/dist/esm/components/DIcon/index.js.map +1 -0
  114. package/dist/esm/components/DIconBase/DIconBase.js +146 -0
  115. package/dist/esm/components/DIconBase/DIconBase.js.map +1 -0
  116. package/dist/esm/components/DIconBase/index.js +6 -0
  117. package/dist/esm/components/DIconBase/index.js.map +1 -0
  118. package/dist/esm/components/DIconBase/resolveIconFromRegistry.js +20 -0
  119. package/dist/esm/components/DIconBase/resolveIconFromRegistry.js.map +1 -0
  120. package/dist/esm/components/DIconBase/warnUnknownIcon.js +59 -0
  121. package/dist/esm/components/DIconBase/warnUnknownIcon.js.map +1 -0
  122. package/dist/esm/components/DInput/DInput.js +95 -0
  123. package/dist/esm/components/DInput/DInput.js.map +1 -0
  124. package/dist/esm/components/DInput/index.js +6 -0
  125. package/dist/esm/components/DInput/index.js.map +1 -0
  126. package/dist/esm/components/DInputCheck/DInputCheck.js +94 -0
  127. package/dist/esm/components/DInputCheck/DInputCheck.js.map +1 -0
  128. package/dist/esm/components/DInputCheck/index.js +6 -0
  129. package/dist/esm/components/DInputCheck/index.js.map +1 -0
  130. package/dist/esm/components/DInputCounter/DInputCounter.js +107 -0
  131. package/dist/esm/components/DInputCounter/DInputCounter.js.map +1 -0
  132. package/dist/esm/components/DInputCounter/index.js +6 -0
  133. package/dist/esm/components/DInputCounter/index.js.map +1 -0
  134. package/dist/esm/components/DInputCurrency/DInputCurrency.js +25 -0
  135. package/dist/esm/components/DInputCurrency/DInputCurrency.js.map +1 -0
  136. package/dist/esm/components/DInputCurrency/index.js +6 -0
  137. package/dist/esm/components/DInputCurrency/index.js.map +1 -0
  138. package/dist/esm/components/DInputMask/DInputMask.js +13 -0
  139. package/dist/esm/components/DInputMask/DInputMask.js.map +1 -0
  140. package/dist/esm/components/DInputMask/index.js +6 -0
  141. package/dist/esm/components/DInputMask/index.js.map +1 -0
  142. package/dist/esm/components/DInputPassword/DInputPassword.js +24 -0
  143. package/dist/esm/components/DInputPassword/DInputPassword.js.map +1 -0
  144. package/dist/esm/components/DInputPassword/index.js +6 -0
  145. package/dist/esm/components/DInputPassword/index.js.map +1 -0
  146. package/dist/esm/components/DInputPhone/DInputPhone.js +108 -0
  147. package/dist/esm/components/DInputPhone/DInputPhone.js.map +1 -0
  148. package/dist/esm/components/DInputPhone/index.js +6 -0
  149. package/dist/esm/components/DInputPhone/index.js.map +1 -0
  150. package/dist/esm/components/DInputPin/DInputPin.js +88 -0
  151. package/dist/esm/components/DInputPin/DInputPin.js.map +1 -0
  152. package/dist/esm/components/DInputPin/index.js +6 -0
  153. package/dist/esm/components/DInputPin/index.js.map +1 -0
  154. package/dist/esm/components/DInputRange/DInputRange.js +60 -0
  155. package/dist/esm/components/DInputRange/DInputRange.js.map +1 -0
  156. package/dist/esm/components/DInputRange/index.js +6 -0
  157. package/dist/esm/components/DInputRange/index.js.map +1 -0
  158. package/dist/esm/components/DInputSearch/DInputSearch.js +57 -0
  159. package/dist/esm/components/DInputSearch/DInputSearch.js.map +1 -0
  160. package/dist/esm/components/DInputSearch/index.js +6 -0
  161. package/dist/esm/components/DInputSearch/index.js.map +1 -0
  162. package/dist/esm/components/DInputSelect/DInputSelect.js +104 -0
  163. package/dist/esm/components/DInputSelect/DInputSelect.js.map +1 -0
  164. package/dist/esm/components/DInputSelect/index.js +6 -0
  165. package/dist/esm/components/DInputSelect/index.js.map +1 -0
  166. package/dist/esm/components/DInputSwitch/DInputSwitch.js +43 -0
  167. package/dist/esm/components/DInputSwitch/DInputSwitch.js.map +1 -0
  168. package/dist/esm/components/DInputSwitch/index.js +6 -0
  169. package/dist/esm/components/DInputSwitch/index.js.map +1 -0
  170. package/dist/esm/components/DLayout/DLayout.js +22 -0
  171. package/dist/esm/components/DLayout/DLayout.js.map +1 -0
  172. package/dist/esm/components/DLayout/components/DLayoutPane.js +16 -0
  173. package/dist/esm/components/DLayout/components/DLayoutPane.js.map +1 -0
  174. package/dist/esm/components/DLayout/index.js +7 -0
  175. package/dist/esm/components/DLayout/index.js.map +1 -0
  176. package/dist/esm/components/DListGroup/DListGroup.js +39 -0
  177. package/dist/esm/components/DListGroup/DListGroup.js.map +1 -0
  178. package/dist/esm/components/DListGroup/ListGroupContext.js +11 -0
  179. package/dist/esm/components/DListGroup/ListGroupContext.js.map +1 -0
  180. package/dist/esm/components/DListGroup/components/DListGroupItem.js +59 -0
  181. package/dist/esm/components/DListGroup/components/DListGroupItem.js.map +1 -0
  182. package/dist/esm/components/DListGroup/components/warnInvalidListMarkup.js +30 -0
  183. package/dist/esm/components/DListGroup/components/warnInvalidListMarkup.js.map +1 -0
  184. package/dist/esm/components/DListGroup/index.js +7 -0
  185. package/dist/esm/components/DListGroup/index.js.map +1 -0
  186. package/dist/esm/components/DModal/DModal.js +37 -0
  187. package/dist/esm/components/DModal/DModal.js.map +1 -0
  188. package/dist/esm/components/DModal/components/DModalBody.js +9 -0
  189. package/dist/esm/components/DModal/components/DModalBody.js.map +1 -0
  190. package/dist/esm/components/DModal/components/DModalFooter.js +14 -0
  191. package/dist/esm/components/DModal/components/DModalFooter.js.map +1 -0
  192. package/dist/esm/components/DModal/components/DModalHeader.js +15 -0
  193. package/dist/esm/components/DModal/components/DModalHeader.js.map +1 -0
  194. package/dist/esm/components/DModal/index.js +9 -0
  195. package/dist/esm/components/DModal/index.js.map +1 -0
  196. package/dist/esm/components/DOffcanvas/DOffcanvas.js +82 -0
  197. package/dist/esm/components/DOffcanvas/DOffcanvas.js.map +1 -0
  198. package/dist/esm/components/DOffcanvas/components/DOffcanvasBody.js +9 -0
  199. package/dist/esm/components/DOffcanvas/components/DOffcanvasBody.js.map +1 -0
  200. package/dist/esm/components/DOffcanvas/components/DOffcanvasFooter.js +14 -0
  201. package/dist/esm/components/DOffcanvas/components/DOffcanvasFooter.js.map +1 -0
  202. package/dist/esm/components/DOffcanvas/components/DOffcanvasHeader.js +15 -0
  203. package/dist/esm/components/DOffcanvas/components/DOffcanvasHeader.js.map +1 -0
  204. package/dist/esm/components/DOffcanvas/index.js +9 -0
  205. package/dist/esm/components/DOffcanvas/index.js.map +1 -0
  206. package/dist/esm/components/DOtp/DOtp.js +26 -0
  207. package/dist/esm/components/DOtp/DOtp.js.map +1 -0
  208. package/dist/esm/components/DOtp/components/OtpCountdown.js +12 -0
  209. package/dist/esm/components/DOtp/components/OtpCountdown.js.map +1 -0
  210. package/dist/esm/components/DOtp/index.js +6 -0
  211. package/dist/esm/components/DOtp/index.js.map +1 -0
  212. package/dist/esm/components/DPaginator/DPaginator.js +12 -0
  213. package/dist/esm/components/DPaginator/DPaginator.js.map +1 -0
  214. package/dist/esm/components/DPaginator/index.js +6 -0
  215. package/dist/esm/components/DPaginator/index.js.map +1 -0
  216. package/dist/esm/components/DPasswordStrengthMeter/DPasswordStrengthMeter.js +27 -0
  217. package/dist/esm/components/DPasswordStrengthMeter/DPasswordStrengthMeter.js.map +1 -0
  218. package/dist/esm/components/DPasswordStrengthMeter/PasswordCheckItem.js +10 -0
  219. package/dist/esm/components/DPasswordStrengthMeter/PasswordCheckItem.js.map +1 -0
  220. package/dist/esm/components/DPasswordStrengthMeter/PasswordCheckList.js +41 -0
  221. package/dist/esm/components/DPasswordStrengthMeter/PasswordCheckList.js.map +1 -0
  222. package/dist/esm/components/DPasswordStrengthMeter/PasswordStrength.js +23 -0
  223. package/dist/esm/components/DPasswordStrengthMeter/PasswordStrength.js.map +1 -0
  224. package/dist/esm/components/DPasswordStrengthMeter/index.js +6 -0
  225. package/dist/esm/components/DPasswordStrengthMeter/index.js.map +1 -0
  226. package/dist/esm/components/DPopover/DPopover.js +49 -0
  227. package/dist/esm/components/DPopover/DPopover.js.map +1 -0
  228. package/dist/esm/components/DPopover/index.js +6 -0
  229. package/dist/esm/components/DPopover/index.js.map +1 -0
  230. package/dist/esm/components/DProgress/DProgress.js +22 -0
  231. package/dist/esm/components/DProgress/DProgress.js.map +1 -0
  232. package/dist/esm/components/DProgress/index.js +6 -0
  233. package/dist/esm/components/DProgress/index.js.map +1 -0
  234. package/dist/esm/components/DSelect/DSelect.js +88 -0
  235. package/dist/esm/components/DSelect/DSelect.js.map +1 -0
  236. package/dist/esm/components/DSelect/components/DSelectClearIndicator.js +12 -0
  237. package/dist/esm/components/DSelect/components/DSelectClearIndicator.js.map +1 -0
  238. package/dist/esm/components/DSelect/components/DSelectDropdownIndicator.js +12 -0
  239. package/dist/esm/components/DSelect/components/DSelectDropdownIndicator.js.map +1 -0
  240. package/dist/esm/components/DSelect/components/DSelectLoadingIndicator.js +12 -0
  241. package/dist/esm/components/DSelect/components/DSelectLoadingIndicator.js.map +1 -0
  242. package/dist/esm/components/DSelect/components/DSelectMultiValueRemove.js +12 -0
  243. package/dist/esm/components/DSelect/components/DSelectMultiValueRemove.js.map +1 -0
  244. package/dist/esm/components/DSelect/components/DSelectOptionCheck.js +14 -0
  245. package/dist/esm/components/DSelect/components/DSelectOptionCheck.js.map +1 -0
  246. package/dist/esm/components/DSelect/components/DSelectOptionEmoji.js +14 -0
  247. package/dist/esm/components/DSelect/components/DSelectOptionEmoji.js.map +1 -0
  248. package/dist/esm/components/DSelect/components/DSelectOptionIcon.js +15 -0
  249. package/dist/esm/components/DSelect/components/DSelectOptionIcon.js.map +1 -0
  250. package/dist/esm/components/DSelect/components/DSelectPlaceholder.js +14 -0
  251. package/dist/esm/components/DSelect/components/DSelectPlaceholder.js.map +1 -0
  252. package/dist/esm/components/DSelect/components/DSelectSingleValueEmoji.js +15 -0
  253. package/dist/esm/components/DSelect/components/DSelectSingleValueEmoji.js.map +1 -0
  254. package/dist/esm/components/DSelect/components/DSelectSingleValueEmojiText.js +15 -0
  255. package/dist/esm/components/DSelect/components/DSelectSingleValueEmojiText.js.map +1 -0
  256. package/dist/esm/components/DSelect/components/DSelectSingleValueIconText.js +16 -0
  257. package/dist/esm/components/DSelect/components/DSelectSingleValueIconText.js.map +1 -0
  258. package/dist/esm/components/DSelect/createAriaGuidance.js +57 -0
  259. package/dist/esm/components/DSelect/createAriaGuidance.js.map +1 -0
  260. package/dist/esm/components/DSelect/index.js +6 -0
  261. package/dist/esm/components/DSelect/index.js.map +1 -0
  262. package/dist/esm/components/DStepper/DStepper.js +13 -0
  263. package/dist/esm/components/DStepper/DStepper.js.map +1 -0
  264. package/dist/esm/components/DStepper/index.js +6 -0
  265. package/dist/esm/components/DStepper/index.js.map +1 -0
  266. package/dist/esm/components/DStepperDesktop/DStepperDesktop.js +27 -0
  267. package/dist/esm/components/DStepperDesktop/DStepperDesktop.js.map +1 -0
  268. package/dist/esm/components/DStepperDesktop/index.js +6 -0
  269. package/dist/esm/components/DStepperDesktop/index.js.map +1 -0
  270. package/dist/esm/components/DStepperMobile/DStepperMobile.js +37 -0
  271. package/dist/esm/components/DStepperMobile/DStepperMobile.js.map +1 -0
  272. package/dist/esm/components/DStepperMobile/index.js +6 -0
  273. package/dist/esm/components/DStepperMobile/index.js.map +1 -0
  274. package/dist/esm/components/DTabs/DTabs.js +106 -0
  275. package/dist/esm/components/DTabs/DTabs.js.map +1 -0
  276. package/dist/esm/components/DTabs/TabContext.js +14 -0
  277. package/dist/esm/components/DTabs/TabContext.js.map +1 -0
  278. package/dist/esm/components/DTabs/components/DTabContent.js +14 -0
  279. package/dist/esm/components/DTabs/components/DTabContent.js.map +1 -0
  280. package/dist/esm/components/DTabs/components/DTabsProvider.js +22 -0
  281. package/dist/esm/components/DTabs/components/DTabsProvider.js.map +1 -0
  282. package/dist/esm/components/DTabs/index.js +9 -0
  283. package/dist/esm/components/DTabs/index.js.map +1 -0
  284. package/dist/esm/components/DTimeline/DTimeline.js +12 -0
  285. package/dist/esm/components/DTimeline/DTimeline.js.map +1 -0
  286. package/dist/esm/components/DTimeline/index.js +6 -0
  287. package/dist/esm/components/DTimeline/index.js.map +1 -0
  288. package/dist/esm/components/DToast/DToast.js +20 -0
  289. package/dist/esm/components/DToast/DToast.js.map +1 -0
  290. package/dist/esm/components/DToast/components/DToastBody.js +9 -0
  291. package/dist/esm/components/DToast/components/DToastBody.js.map +1 -0
  292. package/dist/esm/components/DToast/components/DToastHeader.js +9 -0
  293. package/dist/esm/components/DToast/components/DToastHeader.js.map +1 -0
  294. package/dist/esm/components/DToast/index.js +8 -0
  295. package/dist/esm/components/DToast/index.js.map +1 -0
  296. package/dist/esm/components/DToastContainer/DToastContainer.js +9 -0
  297. package/dist/esm/components/DToastContainer/DToastContainer.js.map +1 -0
  298. package/dist/esm/components/DToastContainer/index.js +7 -0
  299. package/dist/esm/components/DToastContainer/index.js.map +1 -0
  300. package/dist/esm/components/DToastContainer/useDToast.js +58 -0
  301. package/dist/esm/components/DToastContainer/useDToast.js.map +1 -0
  302. package/dist/esm/components/DTooltip/DTooltip.js +51 -0
  303. package/dist/esm/components/DTooltip/DTooltip.js.map +1 -0
  304. package/dist/esm/components/DTooltip/index.js +6 -0
  305. package/dist/esm/components/DTooltip/index.js.map +1 -0
  306. package/dist/esm/components/DVoucher/DVoucher.js +55 -0
  307. package/dist/esm/components/DVoucher/DVoucher.js.map +1 -0
  308. package/dist/esm/components/DVoucher/hooks/useScreenshot.js +30 -0
  309. package/dist/esm/components/DVoucher/hooks/useScreenshot.js.map +1 -0
  310. package/dist/esm/components/DVoucher/hooks/useScreenshotDownload.js +30 -0
  311. package/dist/esm/components/DVoucher/hooks/useScreenshotDownload.js.map +1 -0
  312. package/dist/esm/components/DVoucher/hooks/useScreenshotWebShare.js +27 -0
  313. package/dist/esm/components/DVoucher/hooks/useScreenshotWebShare.js.map +1 -0
  314. package/dist/esm/components/DVoucher/index.js +9 -0
  315. package/dist/esm/components/DVoucher/index.js.map +1 -0
  316. package/dist/esm/components/config.js +14 -0
  317. package/dist/esm/components/config.js.map +1 -0
  318. package/dist/esm/components/internal/DFormLabel.js +46 -0
  319. package/dist/esm/components/internal/DFormLabel.js.map +1 -0
  320. package/dist/esm/contexts/DContext.js +124 -0
  321. package/dist/esm/contexts/DContext.js.map +1 -0
  322. package/dist/esm/contexts/DPortalContext.js +163 -0
  323. package/dist/esm/contexts/DPortalContext.js.map +1 -0
  324. package/dist/esm/contexts/portal/DPortalStack.js +12 -0
  325. package/dist/esm/contexts/portal/DPortalStack.js.map +1 -0
  326. package/dist/esm/hooks/useConfirmModal.js +63 -0
  327. package/dist/esm/hooks/useConfirmModal.js.map +1 -0
  328. package/dist/esm/hooks/useControlledState.js +51 -0
  329. package/dist/esm/hooks/useControlledState.js.map +1 -0
  330. package/dist/esm/hooks/useCountdown.js +45 -0
  331. package/dist/esm/hooks/useCountdown.js.map +1 -0
  332. package/dist/esm/hooks/useDisableBodyScrollEffect.js +52 -0
  333. package/dist/esm/hooks/useDisableBodyScrollEffect.js.map +1 -0
  334. package/dist/esm/hooks/useDisableInputWheel.js +17 -0
  335. package/dist/esm/hooks/useDisableInputWheel.js.map +1 -0
  336. package/dist/esm/hooks/useFormatCurrency.js +16 -0
  337. package/dist/esm/hooks/useFormatCurrency.js.map +1 -0
  338. package/dist/esm/hooks/useInputCurrency.js +130 -0
  339. package/dist/esm/hooks/useInputCurrency.js.map +1 -0
  340. package/dist/esm/hooks/useItemSelection.js +35 -0
  341. package/dist/esm/hooks/useItemSelection.js.map +1 -0
  342. package/dist/esm/hooks/useMediaBreakpointUp.js +69 -0
  343. package/dist/esm/hooks/useMediaBreakpointUp.js.map +1 -0
  344. package/dist/esm/hooks/useMediaQuery.js +11 -0
  345. package/dist/esm/hooks/useMediaQuery.js.map +1 -0
  346. package/dist/esm/hooks/useOtp.js +107 -0
  347. package/dist/esm/hooks/useOtp.js.map +1 -0
  348. package/dist/esm/hooks/usePortal.js +26 -0
  349. package/dist/esm/hooks/usePortal.js.map +1 -0
  350. package/dist/esm/hooks/useProvidedRefOrCreate.js +24 -0
  351. package/dist/esm/hooks/useProvidedRefOrCreate.js.map +1 -0
  352. package/dist/esm/hooks/useResponsiveProp.js +61 -0
  353. package/dist/esm/hooks/useResponsiveProp.js.map +1 -0
  354. package/dist/esm/hooks/useStackState.js +40 -0
  355. package/dist/esm/hooks/useStackState.js.map +1 -0
  356. package/dist/esm/icons/coreIcons.js +55 -0
  357. package/dist/esm/icons/coreIcons.js.map +1 -0
  358. package/dist/esm/index.js +99 -0
  359. package/dist/esm/index.js.map +1 -0
  360. package/dist/esm/utils/attr-accept.js +38 -0
  361. package/dist/esm/utils/attr-accept.js.map +1 -0
  362. package/dist/esm/utils/buildUrl.js +57 -0
  363. package/dist/esm/utils/buildUrl.js.map +1 -0
  364. package/dist/esm/utils/changeQueryString.js +19 -0
  365. package/dist/esm/utils/changeQueryString.js.map +1 -0
  366. package/dist/esm/utils/configureI18n.js +20 -0
  367. package/dist/esm/utils/configureI18n.js.map +1 -0
  368. package/dist/esm/utils/formatCurrency.js +8 -0
  369. package/dist/esm/utils/formatCurrency.js.map +1 -0
  370. package/dist/esm/utils/getCssVariable.js +7 -0
  371. package/dist/esm/utils/getCssVariable.js.map +1 -0
  372. package/dist/esm/utils/getKeyboardFocusableElements.js +11 -0
  373. package/dist/esm/utils/getKeyboardFocusableElements.js.map +1 -0
  374. package/dist/esm/utils/getQueryString.js +8 -0
  375. package/dist/esm/utils/getQueryString.js.map +1 -0
  376. package/dist/esm/utils/hasLabelContent.js +48 -0
  377. package/dist/esm/utils/hasLabelContent.js.map +1 -0
  378. package/dist/esm/utils/isTextLabel.js +23 -0
  379. package/dist/esm/utils/isTextLabel.js.map +1 -0
  380. package/dist/esm/utils/labelClickGuard.js +61 -0
  381. package/dist/esm/utils/labelClickGuard.js.map +1 -0
  382. package/dist/esm/utils/mediaQuery.js +13 -0
  383. package/dist/esm/utils/mediaQuery.js.map +1 -0
  384. package/dist/esm/utils/sanitizeHref.js +67 -0
  385. package/dist/esm/utils/sanitizeHref.js.map +1 -0
  386. package/dist/esm/utils/validatePhoneNumber.js +14 -0
  387. package/dist/esm/utils/validatePhoneNumber.js.map +1 -0
  388. package/dist/esm/utils/warnLabelUsage.js +57 -0
  389. package/dist/esm/utils/warnLabelUsage.js.map +1 -0
  390. package/dist/icons-core.json +33 -0
  391. package/dist/index.esm.js +1151 -184
  392. package/dist/index.esm.js.map +1 -1
  393. package/dist/index.js +1151 -182
  394. package/dist/index.js.map +1 -1
  395. package/dist/types/components/DAlert/DAlert.d.ts +16 -2
  396. package/dist/types/components/DButtonIcon/DButtonIcon.d.ts +9 -1
  397. package/dist/types/components/DButtonIcon/warnMissingAccessibleName.d.ts +18 -0
  398. package/dist/types/components/DDataStateWrapper/DDataStateWrapper.d.ts +29 -4
  399. package/dist/types/components/DDataStateWrapper/index.d.ts +1 -1
  400. package/dist/types/components/DErrorBoundary/DErrorBoundary.d.ts +6 -1
  401. package/dist/types/components/DErrorBoundary/components/DefaultErrorBoundary.d.ts +3 -1
  402. package/dist/types/components/DIcon/DIcon.d.ts +8 -0
  403. package/dist/types/components/DIconBase/DIconBase.d.ts +43 -1
  404. package/dist/types/components/DIconBase/resolveIconFromRegistry.d.ts +14 -0
  405. package/dist/types/components/DIconBase/warnUnknownIcon.d.ts +13 -0
  406. package/dist/types/components/DInput/DInput.d.ts +11 -2
  407. package/dist/types/components/DInputCheck/DInputCheck.d.ts +28 -3
  408. package/dist/types/components/DInputCounter/DInputCounter.d.ts +15 -3
  409. package/dist/types/components/DInputCurrency/DInputCurrency.d.ts +10 -3
  410. package/dist/types/components/DInputPhone/DInputPhone.d.ts +11 -2
  411. package/dist/types/components/DInputPin/DInputPin.d.ts +12 -2
  412. package/dist/types/components/DInputRange/DInputRange.d.ts +16 -3
  413. package/dist/types/components/DInputSelect/DInputSelect.d.ts +18 -3
  414. package/dist/types/components/DInputSwitch/DInputSwitch.d.ts +28 -3
  415. package/dist/types/components/DListGroup/DListGroup.d.ts +12 -1
  416. package/dist/types/components/DListGroup/ListGroupContext.d.ts +8 -0
  417. package/dist/types/components/DListGroup/components/DListGroupItem.d.ts +6 -1
  418. package/dist/types/components/DListGroup/components/warnInvalidListMarkup.d.ts +13 -0
  419. package/dist/types/components/DPasswordStrengthMeter/DPasswordStrengthMeter.d.ts +18 -3
  420. package/dist/types/components/DProgress/DProgress.d.ts +13 -1
  421. package/dist/types/components/DSelect/DSelect.d.ts +23 -3
  422. package/dist/types/components/DSelect/createAriaGuidance.d.ts +21 -0
  423. package/dist/types/components/DTabs/DTabs.d.ts +13 -2
  424. package/dist/types/components/DTabs/TabContext.d.ts +5 -0
  425. package/dist/types/components/DTabs/components/DTabsProvider.d.ts +11 -0
  426. package/dist/types/components/DTabs/index.d.ts +1 -0
  427. package/dist/types/components/DToast/DToast.d.ts +10 -3
  428. package/dist/types/components/DToastContainer/useDToast.d.ts +8 -1
  429. package/dist/types/components/config.d.ts +10 -0
  430. package/dist/types/components/index.d.ts +2 -2
  431. package/dist/types/components/interface.d.ts +7 -0
  432. package/dist/types/components/internal/DFormLabel.d.ts +30 -0
  433. package/dist/types/contexts/portal/DPortalStack.d.ts +13 -0
  434. package/dist/types/hooks/useControlledState.d.ts +17 -0
  435. package/dist/types/hooks/useInputCurrency.d.ts +26 -1
  436. package/dist/types/hooks/useMediaBreakpointUp.d.ts +10 -0
  437. package/dist/types/icons/coreIcons.d.ts +24 -0
  438. package/dist/types/icons/index.d.ts +2 -0
  439. package/dist/types/index.d.ts +1 -0
  440. package/dist/types/utils/hasLabelContent.d.ts +30 -0
  441. package/dist/types/utils/isTextLabel.d.ts +17 -0
  442. package/dist/types/utils/labelClickGuard.d.ts +20 -0
  443. package/dist/types/utils/warnLabelUsage.d.ts +43 -0
  444. package/package.json +10 -5
  445. package/src/style/abstracts/variables/_body.scss +2 -2
  446. package/src/style/abstracts/variables/_chips.scss +2 -0
  447. package/src/style/abstracts/variables/_colors.scss +2 -2
  448. package/src/style/base/_buttons.scss +4 -1
  449. package/src/style/base/_input-group.scss +5 -2
  450. package/src/style/base/_list-group.scss +55 -0
  451. package/src/style/components/_d-chip.scss +7 -2
  452. package/src/style/components/_d-tabs.scss +3 -0
  453. package/src/style/helpers/_color-bg.scss +5 -0
  454. package/src/style/root/_root.scss +9 -0
  455. package/dist/types/components/DVoucher/hooks/useScreenshotDownload.spec.d.ts +0 -1
  456. package/dist/types/components/DVoucher/hooks/useScreenshotWebShare.spec.d.ts +0 -1
  457. package/dist/types/hooks/tests/useCountdown.spec.d.ts +0 -1
  458. package/dist/types/hooks/tests/useDisableBodyScrollEffect.spec.d.ts +0 -1
  459. package/dist/types/hooks/tests/useDisableInputWheel.spec.d.ts +0 -1
  460. package/dist/types/hooks/tests/useFormatCurrency.spec.d.ts +0 -1
  461. package/dist/types/hooks/tests/useInputCurrency.spec.d.ts +0 -1
  462. package/dist/types/hooks/tests/useItemSelection.spec.d.ts +0 -1
  463. package/dist/types/hooks/tests/useMediaBreakpointUp.spec.d.ts +0 -1
  464. package/dist/types/hooks/tests/useMediaQuery.spec.d.ts +0 -1
  465. package/dist/types/hooks/tests/usePortal.spec.d.ts +0 -1
  466. package/dist/types/hooks/tests/useProvidedRefOrCreate.spec.d.ts +0 -1
  467. package/dist/types/hooks/tests/useStackState.spec.d.ts +0 -1
  468. package/dist/types/utils/tests/attr-accept.spec.d.ts +0 -1
  469. package/dist/types/utils/tests/buildUrl.spec.d.ts +0 -1
  470. package/dist/types/utils/tests/changeQueryString.spec.d.ts +0 -1
  471. package/dist/types/utils/tests/configureI18n.spec.d.ts +0 -1
  472. package/dist/types/utils/tests/formatCurrency.spec.d.ts +0 -1
  473. package/dist/types/utils/tests/getCssVariable.spec.d.ts +0 -1
  474. package/dist/types/utils/tests/getKeyboardFocusableElements.spec.d.ts +0 -1
  475. package/dist/types/utils/tests/getQueryString.spec.d.ts +0 -1
  476. package/dist/types/utils/tests/mediaQuery.spec.d.ts +0 -1
  477. package/dist/types/utils/tests/sanitizeHref.spec.d.ts +0 -1
  478. package/dist/types/utils/tests/validatePhoneNumber.spec.d.ts +0 -1
@@ -1,4 +1,4 @@
1
- /// <reference types="react" />
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
- label?: string;
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
- /// <reference types="react" />
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
- label?: string;
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
- defaultSelected: string;
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
- declare function DToast({ children, className, style, dataAttributes, }: Props): import("react").JSX.Element;
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
- 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): {
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];
@@ -0,0 +1,2 @@
1
+ export { CORE_LUCIDE_ICONS } from './coreIcons';
2
+ export type { CoreLucideIcon } from './coreIcons';
@@ -2,3 +2,4 @@ export * from './components';
2
2
  export * from './contexts';
3
3
  export * from './utils';
4
4
  export * from './hooks';
5
+ export * from './icons';
@@ -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.9.0",
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.esm.js",
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