@dynamic-framework/ui-react 2.10.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 (145) 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 +2 -2
  9. package/dist/esm/components/DAlert/DAlert.js.map +1 -1
  10. package/dist/esm/components/DButtonIcon/DButtonIcon.js +6 -3
  11. package/dist/esm/components/DButtonIcon/DButtonIcon.js.map +1 -1
  12. package/dist/esm/components/DDataStateWrapper/DDataStateWrapper.js +10 -3
  13. package/dist/esm/components/DDataStateWrapper/DDataStateWrapper.js.map +1 -1
  14. package/dist/esm/components/DErrorBoundary/DErrorBoundary.js +3 -3
  15. package/dist/esm/components/DErrorBoundary/DErrorBoundary.js.map +1 -1
  16. package/dist/esm/components/DErrorBoundary/components/DefaultErrorBoundary.js +2 -2
  17. package/dist/esm/components/DErrorBoundary/components/DefaultErrorBoundary.js.map +1 -1
  18. package/dist/esm/components/DInput/DInput.js +15 -3
  19. package/dist/esm/components/DInput/DInput.js.map +1 -1
  20. package/dist/esm/components/DInputCheck/DInputCheck.js +45 -8
  21. package/dist/esm/components/DInputCheck/DInputCheck.js.map +1 -1
  22. package/dist/esm/components/DInputCounter/DInputCounter.js +78 -20
  23. package/dist/esm/components/DInputCounter/DInputCounter.js.map +1 -1
  24. package/dist/esm/components/DInputCurrency/DInputCurrency.js +8 -3
  25. package/dist/esm/components/DInputCurrency/DInputCurrency.js.map +1 -1
  26. package/dist/esm/components/DInputPhone/DInputPhone.js +14 -2
  27. package/dist/esm/components/DInputPhone/DInputPhone.js.map +1 -1
  28. package/dist/esm/components/DInputPin/DInputPin.js +3 -1
  29. package/dist/esm/components/DInputPin/DInputPin.js.map +1 -1
  30. package/dist/esm/components/DInputRange/DInputRange.js +16 -2
  31. package/dist/esm/components/DInputRange/DInputRange.js.map +1 -1
  32. package/dist/esm/components/DInputSelect/DInputSelect.js +18 -4
  33. package/dist/esm/components/DInputSelect/DInputSelect.js.map +1 -1
  34. package/dist/esm/components/DInputSwitch/DInputSwitch.js +20 -9
  35. package/dist/esm/components/DInputSwitch/DInputSwitch.js.map +1 -1
  36. package/dist/esm/components/DListGroup/DListGroup.js +10 -2
  37. package/dist/esm/components/DListGroup/DListGroup.js.map +1 -1
  38. package/dist/esm/components/DListGroup/ListGroupContext.js +11 -0
  39. package/dist/esm/components/DListGroup/ListGroupContext.js.map +1 -0
  40. package/dist/esm/components/DListGroup/components/DListGroupItem.js +34 -16
  41. package/dist/esm/components/DListGroup/components/DListGroupItem.js.map +1 -1
  42. package/dist/esm/components/DListGroup/components/warnInvalidListMarkup.js +30 -0
  43. package/dist/esm/components/DListGroup/components/warnInvalidListMarkup.js.map +1 -0
  44. package/dist/esm/components/DPasswordStrengthMeter/DPasswordStrengthMeter.js +2 -2
  45. package/dist/esm/components/DPasswordStrengthMeter/DPasswordStrengthMeter.js.map +1 -1
  46. package/dist/esm/components/DProgress/DProgress.js +9 -3
  47. package/dist/esm/components/DProgress/DProgress.js.map +1 -1
  48. package/dist/esm/components/DSelect/DSelect.js +31 -3
  49. package/dist/esm/components/DSelect/DSelect.js.map +1 -1
  50. package/dist/esm/components/DSelect/createAriaGuidance.js +57 -0
  51. package/dist/esm/components/DSelect/createAriaGuidance.js.map +1 -0
  52. package/dist/esm/components/DTabs/DTabs.js +29 -40
  53. package/dist/esm/components/DTabs/DTabs.js.map +1 -1
  54. package/dist/esm/components/DTabs/TabContext.js +3 -2
  55. package/dist/esm/components/DTabs/TabContext.js.map +1 -1
  56. package/dist/esm/components/DTabs/components/DTabContent.js +2 -2
  57. package/dist/esm/components/DTabs/components/DTabContent.js.map +1 -1
  58. package/dist/esm/components/DTabs/components/DTabsProvider.js +22 -0
  59. package/dist/esm/components/DTabs/components/DTabsProvider.js.map +1 -0
  60. package/dist/esm/components/DTabs/index.js +1 -0
  61. package/dist/esm/components/DTabs/index.js.map +1 -1
  62. package/dist/esm/components/DToast/DToast.js +7 -2
  63. package/dist/esm/components/DToast/DToast.js.map +1 -1
  64. package/dist/esm/components/DToastContainer/useDToast.js +5 -5
  65. package/dist/esm/components/DToastContainer/useDToast.js.map +1 -1
  66. package/dist/esm/components/internal/DFormLabel.js +46 -0
  67. package/dist/esm/components/internal/DFormLabel.js.map +1 -0
  68. package/dist/esm/contexts/DPortalContext.js +43 -8
  69. package/dist/esm/contexts/DPortalContext.js.map +1 -1
  70. package/dist/esm/contexts/portal/DPortalStack.js +12 -0
  71. package/dist/esm/contexts/portal/DPortalStack.js.map +1 -0
  72. package/dist/esm/hooks/useControlledState.js +51 -0
  73. package/dist/esm/hooks/useControlledState.js.map +1 -0
  74. package/dist/esm/hooks/useInputCurrency.js +73 -19
  75. package/dist/esm/hooks/useInputCurrency.js.map +1 -1
  76. package/dist/esm/hooks/useMediaBreakpointUp.js +42 -3
  77. package/dist/esm/hooks/useMediaBreakpointUp.js.map +1 -1
  78. package/dist/esm/hooks/useResponsiveProp.js +13 -2
  79. package/dist/esm/hooks/useResponsiveProp.js.map +1 -1
  80. package/dist/esm/index.js +1 -0
  81. package/dist/esm/index.js.map +1 -1
  82. package/dist/esm/utils/hasLabelContent.js +48 -0
  83. package/dist/esm/utils/hasLabelContent.js.map +1 -0
  84. package/dist/esm/utils/isTextLabel.js +23 -0
  85. package/dist/esm/utils/isTextLabel.js.map +1 -0
  86. package/dist/esm/utils/labelClickGuard.js +61 -0
  87. package/dist/esm/utils/labelClickGuard.js.map +1 -0
  88. package/dist/esm/utils/warnLabelUsage.js +57 -0
  89. package/dist/esm/utils/warnLabelUsage.js.map +1 -0
  90. package/dist/icons-core.json +1 -1
  91. package/dist/index.esm.js +865 -163
  92. package/dist/index.esm.js.map +1 -1
  93. package/dist/index.js +864 -161
  94. package/dist/index.js.map +1 -1
  95. package/dist/types/components/DAlert/DAlert.d.ts +16 -2
  96. package/dist/types/components/DButtonIcon/DButtonIcon.d.ts +9 -1
  97. package/dist/types/components/DDataStateWrapper/DDataStateWrapper.d.ts +29 -4
  98. package/dist/types/components/DDataStateWrapper/index.d.ts +1 -1
  99. package/dist/types/components/DErrorBoundary/DErrorBoundary.d.ts +6 -1
  100. package/dist/types/components/DErrorBoundary/components/DefaultErrorBoundary.d.ts +3 -1
  101. package/dist/types/components/DInput/DInput.d.ts +11 -2
  102. package/dist/types/components/DInputCheck/DInputCheck.d.ts +28 -3
  103. package/dist/types/components/DInputCounter/DInputCounter.d.ts +15 -3
  104. package/dist/types/components/DInputCurrency/DInputCurrency.d.ts +10 -3
  105. package/dist/types/components/DInputPhone/DInputPhone.d.ts +11 -2
  106. package/dist/types/components/DInputPin/DInputPin.d.ts +12 -2
  107. package/dist/types/components/DInputRange/DInputRange.d.ts +15 -2
  108. package/dist/types/components/DInputSelect/DInputSelect.d.ts +18 -3
  109. package/dist/types/components/DInputSwitch/DInputSwitch.d.ts +28 -3
  110. package/dist/types/components/DListGroup/DListGroup.d.ts +12 -1
  111. package/dist/types/components/DListGroup/ListGroupContext.d.ts +8 -0
  112. package/dist/types/components/DListGroup/components/DListGroupItem.d.ts +6 -1
  113. package/dist/types/components/DListGroup/components/warnInvalidListMarkup.d.ts +13 -0
  114. package/dist/types/components/DPasswordStrengthMeter/DPasswordStrengthMeter.d.ts +18 -3
  115. package/dist/types/components/DProgress/DProgress.d.ts +13 -1
  116. package/dist/types/components/DSelect/DSelect.d.ts +23 -3
  117. package/dist/types/components/DSelect/createAriaGuidance.d.ts +21 -0
  118. package/dist/types/components/DTabs/DTabs.d.ts +13 -2
  119. package/dist/types/components/DTabs/TabContext.d.ts +5 -0
  120. package/dist/types/components/DTabs/components/DTabsProvider.d.ts +11 -0
  121. package/dist/types/components/DTabs/index.d.ts +1 -0
  122. package/dist/types/components/DToast/DToast.d.ts +10 -3
  123. package/dist/types/components/DToastContainer/useDToast.d.ts +8 -1
  124. package/dist/types/components/index.d.ts +2 -2
  125. package/dist/types/components/interface.d.ts +7 -0
  126. package/dist/types/components/internal/DFormLabel.d.ts +30 -0
  127. package/dist/types/contexts/portal/DPortalStack.d.ts +13 -0
  128. package/dist/types/hooks/useControlledState.d.ts +17 -0
  129. package/dist/types/hooks/useInputCurrency.d.ts +26 -1
  130. package/dist/types/hooks/useMediaBreakpointUp.d.ts +10 -0
  131. package/dist/types/utils/hasLabelContent.d.ts +30 -0
  132. package/dist/types/utils/isTextLabel.d.ts +17 -0
  133. package/dist/types/utils/labelClickGuard.d.ts +20 -0
  134. package/dist/types/utils/warnLabelUsage.d.ts +43 -0
  135. package/package.json +8 -3
  136. package/src/style/abstracts/variables/_body.scss +2 -2
  137. package/src/style/abstracts/variables/_chips.scss +2 -0
  138. package/src/style/abstracts/variables/_colors.scss +2 -2
  139. package/src/style/base/_buttons.scss +4 -1
  140. package/src/style/base/_input-group.scss +5 -2
  141. package/src/style/base/_list-group.scss +55 -0
  142. package/src/style/components/_d-chip.scss +7 -2
  143. package/src/style/components/_d-tabs.scss +3 -0
  144. package/src/style/helpers/_color-bg.scss +5 -0
  145. package/src/style/root/_root.scss +9 -0
@@ -4,12 +4,12 @@ import { useMemo } from 'react';
4
4
  import DIcon from '../DIcon/DIcon.js';
5
5
  import { useDContext } from '../../contexts/DContext.js';
6
6
 
7
- function DAlert({ color = 'success', icon: iconProp, iconFamilyClass, iconFamilyPrefix, iconMaterialStyle, iconClose: iconCloseProp, iconCloseFamilyClass, iconCloseFamilyPrefix, iconCloseMaterialStyle, showClose, onClose, children, id, className, style, dataAttributes, }) {
7
+ function DAlert({ color = 'success', role = 'alert', icon: iconProp, showIcon = true, iconFamilyClass, iconFamilyPrefix, iconMaterialStyle, iconClose: iconCloseProp, iconCloseFamilyClass, iconCloseFamilyPrefix, iconCloseMaterialStyle, showClose, closeAriaLabel = 'Close', onClose, children, id, className, style, dataAttributes, }) {
8
8
  const { icon: { materialStyle, familyClass, familyPrefix, }, iconMap: { alert, xLg, }, } = useDContext();
9
9
  const icon = useMemo(() => iconProp || alert[color], [alert, iconProp, color]);
10
10
  const iconClose = useMemo(() => (iconCloseProp || xLg), [iconCloseProp, xLg]);
11
11
  const generateClasses = useMemo(() => (Object.assign({ alert: true, [`alert-${color}`]: true, 'fade show': !!showClose }, className && { [className]: true })), [color, showClose, className]);
12
- return (jsxs("div", Object.assign({ className: classNames(generateClasses), style: style, role: "alert", id: id }, dataAttributes, { children: [icon && (jsx(DIcon, { className: "alert-icon", icon: icon, familyClass: iconFamilyClass !== null && iconFamilyClass !== void 0 ? iconFamilyClass : familyClass, familyPrefix: iconFamilyPrefix !== null && iconFamilyPrefix !== void 0 ? iconFamilyPrefix : familyPrefix, materialStyle: iconMaterialStyle !== null && iconMaterialStyle !== void 0 ? iconMaterialStyle : materialStyle })), jsx("div", { className: "alert-text", children: children }), showClose && (jsx("button", { type: "button", className: "d-close", "aria-label": "Close", onClick: onClose, children: jsx(DIcon, { icon: iconClose, familyClass: iconCloseFamilyClass !== null && iconCloseFamilyClass !== void 0 ? iconCloseFamilyClass : familyClass, familyPrefix: iconCloseFamilyPrefix !== null && iconCloseFamilyPrefix !== void 0 ? iconCloseFamilyPrefix : familyPrefix, materialStyle: iconCloseMaterialStyle !== null && iconCloseMaterialStyle !== void 0 ? iconCloseMaterialStyle : materialStyle }) }))] })));
12
+ return (jsxs("div", Object.assign({ className: classNames(generateClasses), style: style }, role !== 'none' && { role }, { id: id }, dataAttributes, { children: [showIcon && icon && (jsx(DIcon, { className: "alert-icon", icon: icon, familyClass: iconFamilyClass !== null && iconFamilyClass !== void 0 ? iconFamilyClass : familyClass, familyPrefix: iconFamilyPrefix !== null && iconFamilyPrefix !== void 0 ? iconFamilyPrefix : familyPrefix, materialStyle: iconMaterialStyle !== null && iconMaterialStyle !== void 0 ? iconMaterialStyle : materialStyle })), jsx("div", { className: "alert-text", children: children }), showClose && (jsx("button", { type: "button", className: "d-close", "aria-label": closeAriaLabel, onClick: onClose, children: jsx(DIcon, { icon: iconClose, familyClass: iconCloseFamilyClass !== null && iconCloseFamilyClass !== void 0 ? iconCloseFamilyClass : familyClass, familyPrefix: iconCloseFamilyPrefix !== null && iconCloseFamilyPrefix !== void 0 ? iconCloseFamilyPrefix : familyPrefix, materialStyle: iconCloseMaterialStyle !== null && iconCloseMaterialStyle !== void 0 ? iconCloseMaterialStyle : materialStyle }) }))] })));
13
13
  }
14
14
 
15
15
  export { DAlert as default };
@@ -1 +1 @@
1
- {"version":3,"file":"DAlert.js","sources":["../../../../dist-transpiled/components/DAlert/DAlert.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport classNames from 'classnames';\nimport { useMemo } from 'react';\nimport DIcon from '../DIcon';\nimport { useDContext } from '../../contexts';\nexport default function DAlert({ color = 'success', icon: iconProp, iconFamilyClass, iconFamilyPrefix, iconMaterialStyle, iconClose: iconCloseProp, iconCloseFamilyClass, iconCloseFamilyPrefix, iconCloseMaterialStyle, showClose, onClose, children, id, className, style, dataAttributes, }) {\n const { icon: { materialStyle, familyClass, familyPrefix, }, iconMap: { alert, xLg, }, } = useDContext();\n const icon = useMemo(() => iconProp || alert[color], [alert, iconProp, color]);\n const iconClose = useMemo(() => (iconCloseProp || xLg), [iconCloseProp, xLg]);\n const generateClasses = useMemo(() => (Object.assign({ alert: true, [`alert-${color}`]: true, 'fade show': !!showClose }, className && { [className]: true })), [color, showClose, className]);\n return (_jsxs(\"div\", Object.assign({ className: classNames(generateClasses), style: style, role: \"alert\", id: id }, dataAttributes, { children: [icon && (_jsx(DIcon, { className: \"alert-icon\", icon: icon, familyClass: iconFamilyClass !== null && iconFamilyClass !== void 0 ? iconFamilyClass : familyClass, familyPrefix: iconFamilyPrefix !== null && iconFamilyPrefix !== void 0 ? iconFamilyPrefix : familyPrefix, materialStyle: iconMaterialStyle !== null && iconMaterialStyle !== void 0 ? iconMaterialStyle : materialStyle })), _jsx(\"div\", { className: \"alert-text\", children: children }), showClose && (_jsx(\"button\", { type: \"button\", className: \"d-close\", \"aria-label\": \"Close\", onClick: onClose, children: _jsx(DIcon, { icon: iconClose, familyClass: iconCloseFamilyClass !== null && iconCloseFamilyClass !== void 0 ? iconCloseFamilyClass : familyClass, familyPrefix: iconCloseFamilyPrefix !== null && iconCloseFamilyPrefix !== void 0 ? iconCloseFamilyPrefix : familyPrefix, materialStyle: iconCloseMaterialStyle !== null && iconCloseMaterialStyle !== void 0 ? iconCloseMaterialStyle : materialStyle }) }))] })));\n}\n//# sourceMappingURL=DAlert.js.map"],"names":["_jsxs","_jsx"],"mappings":";;;;;;AAKe,SAAS,MAAM,CAAC,EAAE,KAAK,GAAG,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,SAAS,EAAE,aAAa,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,GAAG,EAAE;AAChS,IAAI,MAAM,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,GAAG,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,WAAW,EAAE;AAC5G,IAAI,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAClF,IAAI,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,aAAa,IAAI,GAAG,CAAC,EAAE,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;AACjF,IAAI,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,SAAS,EAAE,EAAE,SAAS,IAAI,EAAE,CAAC,SAAS,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAClM,IAAI,QAAQA,IAAK,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC,IAAI,KAAKC,GAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,KAAK,IAAI,IAAI,eAAe,KAAK,MAAM,GAAG,eAAe,GAAG,WAAW,EAAE,YAAY,EAAE,gBAAgB,KAAK,IAAI,IAAI,gBAAgB,KAAK,MAAM,GAAG,gBAAgB,GAAG,YAAY,EAAE,aAAa,EAAE,iBAAiB,KAAK,IAAI,IAAI,iBAAiB,KAAK,MAAM,GAAG,iBAAiB,GAAG,aAAa,EAAE,CAAC,CAAC,EAAEA,GAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,KAAKA,GAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAEA,GAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,oBAAoB,KAAK,IAAI,IAAI,oBAAoB,KAAK,MAAM,GAAG,oBAAoB,GAAG,WAAW,EAAE,YAAY,EAAE,qBAAqB,KAAK,IAAI,IAAI,qBAAqB,KAAK,MAAM,GAAG,qBAAqB,GAAG,YAAY,EAAE,aAAa,EAAE,sBAAsB,KAAK,IAAI,IAAI,sBAAsB,KAAK,MAAM,GAAG,sBAAsB,GAAG,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AAC7lC;;;;"}
1
+ {"version":3,"file":"DAlert.js","sources":["../../../../dist-transpiled/components/DAlert/DAlert.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport classNames from 'classnames';\nimport { useMemo } from 'react';\nimport DIcon from '../DIcon';\nimport { useDContext } from '../../contexts';\nexport default function DAlert({ color = 'success', role = 'alert', icon: iconProp, showIcon = true, iconFamilyClass, iconFamilyPrefix, iconMaterialStyle, iconClose: iconCloseProp, iconCloseFamilyClass, iconCloseFamilyPrefix, iconCloseMaterialStyle, showClose, closeAriaLabel = 'Close', onClose, children, id, className, style, dataAttributes, }) {\n const { icon: { materialStyle, familyClass, familyPrefix, }, iconMap: { alert, xLg, }, } = useDContext();\n const icon = useMemo(() => iconProp || alert[color], [alert, iconProp, color]);\n const iconClose = useMemo(() => (iconCloseProp || xLg), [iconCloseProp, xLg]);\n const generateClasses = useMemo(() => (Object.assign({ alert: true, [`alert-${color}`]: true, 'fade show': !!showClose }, className && { [className]: true })), [color, showClose, className]);\n return (_jsxs(\"div\", Object.assign({ className: classNames(generateClasses), style: style }, role !== 'none' && { role }, { id: id }, dataAttributes, { children: [showIcon && icon && (_jsx(DIcon, { className: \"alert-icon\", icon: icon, familyClass: iconFamilyClass !== null && iconFamilyClass !== void 0 ? iconFamilyClass : familyClass, familyPrefix: iconFamilyPrefix !== null && iconFamilyPrefix !== void 0 ? iconFamilyPrefix : familyPrefix, materialStyle: iconMaterialStyle !== null && iconMaterialStyle !== void 0 ? iconMaterialStyle : materialStyle })), _jsx(\"div\", { className: \"alert-text\", children: children }), showClose && (_jsx(\"button\", { type: \"button\", className: \"d-close\", \"aria-label\": closeAriaLabel, onClick: onClose, children: _jsx(DIcon, { icon: iconClose, familyClass: iconCloseFamilyClass !== null && iconCloseFamilyClass !== void 0 ? iconCloseFamilyClass : familyClass, familyPrefix: iconCloseFamilyPrefix !== null && iconCloseFamilyPrefix !== void 0 ? iconCloseFamilyPrefix : familyPrefix, materialStyle: iconCloseMaterialStyle !== null && iconCloseMaterialStyle !== void 0 ? iconCloseMaterialStyle : materialStyle }) }))] })));\n}\n//# sourceMappingURL=DAlert.js.map"],"names":["_jsxs","_jsx"],"mappings":";;;;;;AAKe,SAAS,MAAM,CAAC,EAAE,KAAK,GAAG,SAAS,EAAE,IAAI,GAAG,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,GAAG,IAAI,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,SAAS,EAAE,aAAa,EAAE,oBAAoB,EAAE,qBAAqB,EAAE,sBAAsB,EAAE,SAAS,EAAE,cAAc,GAAG,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,GAAG,EAAE;AAC3V,IAAI,MAAM,EAAE,IAAI,EAAE,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,GAAG,EAAE,OAAO,EAAE,EAAE,KAAK,EAAE,GAAG,GAAG,GAAG,GAAG,WAAW,EAAE;AAC5G,IAAI,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,QAAQ,IAAI,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,KAAK,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;AAClF,IAAI,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,aAAa,IAAI,GAAG,CAAC,EAAE,CAAC,aAAa,EAAE,GAAG,CAAC,CAAC;AACjF,IAAI,MAAM,eAAe,GAAG,OAAO,CAAC,OAAO,MAAM,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,GAAG,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC,SAAS,EAAE,EAAE,SAAS,IAAI,EAAE,CAAC,SAAS,GAAG,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;AAClM,IAAI,QAAQA,IAAK,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,SAAS,EAAE,UAAU,CAAC,eAAe,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,IAAI,KAAK,MAAM,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC,QAAQ,IAAI,IAAI,KAAKC,GAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,eAAe,KAAK,IAAI,IAAI,eAAe,KAAK,MAAM,GAAG,eAAe,GAAG,WAAW,EAAE,YAAY,EAAE,gBAAgB,KAAK,IAAI,IAAI,gBAAgB,KAAK,MAAM,GAAG,gBAAgB,GAAG,YAAY,EAAE,aAAa,EAAE,iBAAiB,KAAK,IAAI,IAAI,iBAAiB,KAAK,MAAM,GAAG,iBAAiB,GAAG,aAAa,EAAE,CAAC,CAAC,EAAEA,GAAI,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC,EAAE,SAAS,KAAKA,GAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,YAAY,EAAE,cAAc,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAEA,GAAI,CAAC,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,oBAAoB,KAAK,IAAI,IAAI,oBAAoB,KAAK,MAAM,GAAG,oBAAoB,GAAG,WAAW,EAAE,YAAY,EAAE,qBAAqB,KAAK,IAAI,IAAI,qBAAqB,KAAK,MAAM,GAAG,qBAAqB,GAAG,YAAY,EAAE,aAAa,EAAE,sBAAsB,KAAK,IAAI,IAAI,sBAAsB,KAAK,MAAM,GAAG,sBAAsB,GAAG,aAAa,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;AACloC;;;;"}
@@ -7,7 +7,7 @@ import warnMissingAccessibleName from './warnMissingAccessibleName.js';
7
7
  import { useDContext } from '../../contexts/DContext.js';
8
8
 
9
9
  function DButtonIcon(_a) {
10
- var { id, icon, size, className, variant, state, loadingAriaLabel, iconMaterialStyle, disabled = false, color = 'primary', loading = false, href, target, rel, stopPropagationEnabled = true, style, iconFamilyClass, iconFamilyPrefix, dataAttributes, onClick, 'aria-label': ariaLabelProp } = _a, rest = __rest(_a, ["id", "icon", "size", "className", "variant", "state", "loadingAriaLabel", "iconMaterialStyle", "disabled", "color", "loading", "href", "target", "rel", "stopPropagationEnabled", "style", "iconFamilyClass", "iconFamilyPrefix", "dataAttributes", "onClick", 'aria-label']);
10
+ var { id, icon, size, iconSize, className, variant, state, loadingAriaLabel, iconMaterialStyle, disabled = false, color = 'primary', loading = false, href, target, rel, stopPropagationEnabled = true, style, iconFamilyClass, iconFamilyPrefix, dataAttributes, onClick, 'aria-label': ariaLabelProp } = _a, rest = __rest(_a, ["id", "icon", "size", "iconSize", "className", "variant", "state", "loadingAriaLabel", "iconMaterialStyle", "disabled", "color", "loading", "href", "target", "rel", "stopPropagationEnabled", "style", "iconFamilyClass", "iconFamilyPrefix", "dataAttributes", "onClick", 'aria-label']);
11
11
  const { icon: { familyClass, familyPrefix, materialStyle, }, } = useDContext();
12
12
  const generateClasses = useMemo(() => {
13
13
  const variantClass = !variant || variant === 'solid'
@@ -15,6 +15,9 @@ function DButtonIcon(_a) {
15
15
  : `btn-${variant}-${color}`;
16
16
  return Object.assign(Object.assign(Object.assign({ 'btn d-button-icon': true, [variantClass]: true }, size && { [`btn-${size}`]: true }), (state && state !== 'disabled') && { [state]: true }), { loading });
17
17
  }, [variant, color, size, state, loading]);
18
+ // A responsive iconSize has to follow viewport changes, so DIcon only
19
+ // listens to breakpoints when it gets an object; a plain string needs none.
20
+ const useIconSizeListener = typeof iconSize === 'object';
18
21
  const isDisabled = useMemo(() => (state === 'disabled' || loading || disabled), [state, loading, disabled]);
19
22
  const clickHandler = useCallback((event) => {
20
23
  if (stopPropagationEnabled) {
@@ -41,11 +44,11 @@ function DButtonIcon(_a) {
41
44
  if (href) {
42
45
  return (jsx("a", Object.assign({ id: id, href: href, target: target, rel: rel, className: classNames(generateClasses, className), style: style, onClick: clickHandler, "aria-label": ariaLabel, "aria-disabled": isDisabled }, dataAttributes, { children: loading
43
46
  ? (jsx("span", { className: "spinner-border spinner-border-sm", role: "status", "aria-hidden": "true", children: jsx("span", { className: "visually-hidden", children: "Loading..." }) }))
44
- : (jsx(DIcon, { icon: icon, familyClass: iconFamilyClass !== null && iconFamilyClass !== void 0 ? iconFamilyClass : familyClass, familyPrefix: iconFamilyPrefix !== null && iconFamilyPrefix !== void 0 ? iconFamilyPrefix : familyPrefix, materialStyle: iconMaterialStyle !== null && iconMaterialStyle !== void 0 ? iconMaterialStyle : materialStyle })) })));
47
+ : (jsx(DIcon, { icon: icon, size: iconSize, useListenerSize: useIconSizeListener, familyClass: iconFamilyClass !== null && iconFamilyClass !== void 0 ? iconFamilyClass : familyClass, familyPrefix: iconFamilyPrefix !== null && iconFamilyPrefix !== void 0 ? iconFamilyPrefix : familyPrefix, materialStyle: iconMaterialStyle !== null && iconMaterialStyle !== void 0 ? iconMaterialStyle : materialStyle })) })));
45
48
  }
46
49
  return (jsx("button", Object.assign({ className: classNames(generateClasses, className), style: style, disabled: state === 'disabled' || loading, onClick: clickHandler, "aria-label": ariaLabel }, dataAttributes, rest, { children: loading
47
50
  ? (jsx("span", { className: "spinner-border spinner-border-sm", role: "status", "aria-hidden": "true", children: jsx("span", { className: "visually-hidden", children: "Loading..." }) }))
48
- : (jsx(DIcon, { icon: icon, familyClass: iconFamilyClass !== null && iconFamilyClass !== void 0 ? iconFamilyClass : familyClass, familyPrefix: iconFamilyPrefix !== null && iconFamilyPrefix !== void 0 ? iconFamilyPrefix : familyPrefix, materialStyle: iconMaterialStyle !== null && iconMaterialStyle !== void 0 ? iconMaterialStyle : materialStyle })) })));
51
+ : (jsx(DIcon, { icon: icon, size: iconSize, useListenerSize: useIconSizeListener, familyClass: iconFamilyClass !== null && iconFamilyClass !== void 0 ? iconFamilyClass : familyClass, familyPrefix: iconFamilyPrefix !== null && iconFamilyPrefix !== void 0 ? iconFamilyPrefix : familyPrefix, materialStyle: iconMaterialStyle !== null && iconMaterialStyle !== void 0 ? iconMaterialStyle : materialStyle })) })));
49
52
  }
50
53
 
51
54
  export { DButtonIcon as default };
@@ -1 +1 @@
1
- {"version":3,"file":"DButtonIcon.js","sources":["../../../../dist-transpiled/components/DButtonIcon/DButtonIcon.js"],"sourcesContent":["import { __rest } from \"tslib\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/* eslint-disable react/button-has-type */\nimport { useMemo, useCallback } from 'react';\nimport classNames from 'classnames';\nimport DIcon from '../DIcon';\nimport { useDContext } from '../../contexts';\nimport warnMissingAccessibleName from './warnMissingAccessibleName';\nexport default function DButtonIcon(_a) {\n var { id, icon, size, className, variant, state, loadingAriaLabel, iconMaterialStyle, disabled = false, color = 'primary', loading = false, href, target, rel, stopPropagationEnabled = true, style, iconFamilyClass, iconFamilyPrefix, dataAttributes, onClick, 'aria-label': ariaLabelProp } = _a, rest = __rest(_a, [\"id\", \"icon\", \"size\", \"className\", \"variant\", \"state\", \"loadingAriaLabel\", \"iconMaterialStyle\", \"disabled\", \"color\", \"loading\", \"href\", \"target\", \"rel\", \"stopPropagationEnabled\", \"style\", \"iconFamilyClass\", \"iconFamilyPrefix\", \"dataAttributes\", \"onClick\", 'aria-label']);\n const { icon: { familyClass, familyPrefix, materialStyle, }, } = useDContext();\n const generateClasses = useMemo(() => {\n const variantClass = !variant || variant === 'solid'\n ? `btn-${color}`\n : `btn-${variant}-${color}`;\n return Object.assign(Object.assign(Object.assign({ 'btn d-button-icon': true, [variantClass]: true }, size && { [`btn-${size}`]: true }), (state && state !== 'disabled') && { [state]: true }), { loading });\n }, [variant, color, size, state, loading]);\n const isDisabled = useMemo(() => (state === 'disabled' || loading || disabled), [state, loading, disabled]);\n const clickHandler = useCallback((event) => {\n if (stopPropagationEnabled) {\n event.stopPropagation();\n }\n if (isDisabled) {\n event.preventDefault();\n return;\n }\n onClick === null || onClick === void 0 ? void 0 : onClick(event);\n }, [stopPropagationEnabled, onClick, isDisabled]);\n const ariaLabel = useMemo(() => (loading\n ? loadingAriaLabel || ariaLabelProp\n : ariaLabelProp), [loading, loadingAriaLabel, ariaLabelProp]);\n /**\n * `aria-labelledby` and `title` also name a control, but they travel in `rest`,\n * which only the button branch spreads — an anchor drops them, so there the\n * button really is unnamed and the warning still applies.\n */\n const hasAccessibleName = useMemo(() => !!ariaLabel || (!href && (!!rest['aria-labelledby'] || !!rest.title)), [ariaLabel, href, rest]);\n if (process.env.NODE_ENV !== 'production' && !hasAccessibleName) {\n warnMissingAccessibleName(icon, href ? 'link' : 'button');\n }\n if (href) {\n return (_jsx(\"a\", Object.assign({ id: id, href: href, target: target, rel: rel, className: classNames(generateClasses, className), style: style, onClick: clickHandler, \"aria-label\": ariaLabel, \"aria-disabled\": isDisabled }, dataAttributes, { children: loading\n ? (_jsx(\"span\", { className: \"spinner-border spinner-border-sm\", role: \"status\", \"aria-hidden\": \"true\", children: _jsx(\"span\", { className: \"visually-hidden\", children: \"Loading...\" }) }))\n : (_jsx(DIcon, { icon: icon, familyClass: iconFamilyClass !== null && iconFamilyClass !== void 0 ? iconFamilyClass : familyClass, familyPrefix: iconFamilyPrefix !== null && iconFamilyPrefix !== void 0 ? iconFamilyPrefix : familyPrefix, materialStyle: iconMaterialStyle !== null && iconMaterialStyle !== void 0 ? iconMaterialStyle : materialStyle })) })));\n }\n return (_jsx(\"button\", Object.assign({ className: classNames(generateClasses, className), style: style, disabled: state === 'disabled' || loading, onClick: clickHandler, \"aria-label\": ariaLabel }, dataAttributes, rest, { children: loading\n ? (_jsx(\"span\", { className: \"spinner-border spinner-border-sm\", role: \"status\", \"aria-hidden\": \"true\", children: _jsx(\"span\", { className: \"visually-hidden\", children: \"Loading...\" }) }))\n : (_jsx(DIcon, { icon: icon, familyClass: iconFamilyClass !== null && iconFamilyClass !== void 0 ? iconFamilyClass : familyClass, familyPrefix: iconFamilyPrefix !== null && iconFamilyPrefix !== void 0 ? iconFamilyPrefix : familyPrefix, materialStyle: iconMaterialStyle !== null && iconMaterialStyle !== void 0 ? iconMaterialStyle : materialStyle })) })));\n}\n//# sourceMappingURL=DButtonIcon.js.map"],"names":["_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"DButtonIcon.js","sources":["../../../../dist-transpiled/components/DButtonIcon/DButtonIcon.js"],"sourcesContent":["import { __rest } from \"tslib\";\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n/* eslint-disable react/button-has-type */\nimport { useMemo, useCallback } from 'react';\nimport classNames from 'classnames';\nimport DIcon from '../DIcon';\nimport { useDContext } from '../../contexts';\nimport warnMissingAccessibleName from './warnMissingAccessibleName';\nexport default function DButtonIcon(_a) {\n var { id, icon, size, iconSize, className, variant, state, loadingAriaLabel, iconMaterialStyle, disabled = false, color = 'primary', loading = false, href, target, rel, stopPropagationEnabled = true, style, iconFamilyClass, iconFamilyPrefix, dataAttributes, onClick, 'aria-label': ariaLabelProp } = _a, rest = __rest(_a, [\"id\", \"icon\", \"size\", \"iconSize\", \"className\", \"variant\", \"state\", \"loadingAriaLabel\", \"iconMaterialStyle\", \"disabled\", \"color\", \"loading\", \"href\", \"target\", \"rel\", \"stopPropagationEnabled\", \"style\", \"iconFamilyClass\", \"iconFamilyPrefix\", \"dataAttributes\", \"onClick\", 'aria-label']);\n const { icon: { familyClass, familyPrefix, materialStyle, }, } = useDContext();\n const generateClasses = useMemo(() => {\n const variantClass = !variant || variant === 'solid'\n ? `btn-${color}`\n : `btn-${variant}-${color}`;\n return Object.assign(Object.assign(Object.assign({ 'btn d-button-icon': true, [variantClass]: true }, size && { [`btn-${size}`]: true }), (state && state !== 'disabled') && { [state]: true }), { loading });\n }, [variant, color, size, state, loading]);\n // A responsive iconSize has to follow viewport changes, so DIcon only\n // listens to breakpoints when it gets an object; a plain string needs none.\n const useIconSizeListener = typeof iconSize === 'object';\n const isDisabled = useMemo(() => (state === 'disabled' || loading || disabled), [state, loading, disabled]);\n const clickHandler = useCallback((event) => {\n if (stopPropagationEnabled) {\n event.stopPropagation();\n }\n if (isDisabled) {\n event.preventDefault();\n return;\n }\n onClick === null || onClick === void 0 ? void 0 : onClick(event);\n }, [stopPropagationEnabled, onClick, isDisabled]);\n const ariaLabel = useMemo(() => (loading\n ? loadingAriaLabel || ariaLabelProp\n : ariaLabelProp), [loading, loadingAriaLabel, ariaLabelProp]);\n /**\n * `aria-labelledby` and `title` also name a control, but they travel in `rest`,\n * which only the button branch spreads — an anchor drops them, so there the\n * button really is unnamed and the warning still applies.\n */\n const hasAccessibleName = useMemo(() => !!ariaLabel || (!href && (!!rest['aria-labelledby'] || !!rest.title)), [ariaLabel, href, rest]);\n if (process.env.NODE_ENV !== 'production' && !hasAccessibleName) {\n warnMissingAccessibleName(icon, href ? 'link' : 'button');\n }\n if (href) {\n return (_jsx(\"a\", Object.assign({ id: id, href: href, target: target, rel: rel, className: classNames(generateClasses, className), style: style, onClick: clickHandler, \"aria-label\": ariaLabel, \"aria-disabled\": isDisabled }, dataAttributes, { children: loading\n ? (_jsx(\"span\", { className: \"spinner-border spinner-border-sm\", role: \"status\", \"aria-hidden\": \"true\", children: _jsx(\"span\", { className: \"visually-hidden\", children: \"Loading...\" }) }))\n : (_jsx(DIcon, { icon: icon, size: iconSize, useListenerSize: useIconSizeListener, familyClass: iconFamilyClass !== null && iconFamilyClass !== void 0 ? iconFamilyClass : familyClass, familyPrefix: iconFamilyPrefix !== null && iconFamilyPrefix !== void 0 ? iconFamilyPrefix : familyPrefix, materialStyle: iconMaterialStyle !== null && iconMaterialStyle !== void 0 ? iconMaterialStyle : materialStyle })) })));\n }\n return (_jsx(\"button\", Object.assign({ className: classNames(generateClasses, className), style: style, disabled: state === 'disabled' || loading, onClick: clickHandler, \"aria-label\": ariaLabel }, dataAttributes, rest, { children: loading\n ? (_jsx(\"span\", { className: \"spinner-border spinner-border-sm\", role: \"status\", \"aria-hidden\": \"true\", children: _jsx(\"span\", { className: \"visually-hidden\", children: \"Loading...\" }) }))\n : (_jsx(DIcon, { icon: icon, size: iconSize, useListenerSize: useIconSizeListener, familyClass: iconFamilyClass !== null && iconFamilyClass !== void 0 ? iconFamilyClass : familyClass, familyPrefix: iconFamilyPrefix !== null && iconFamilyPrefix !== void 0 ? iconFamilyPrefix : familyPrefix, materialStyle: iconMaterialStyle !== null && iconMaterialStyle !== void 0 ? iconMaterialStyle : materialStyle })) })));\n}\n//# sourceMappingURL=DButtonIcon.js.map"],"names":["_jsx"],"mappings":"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"}
@@ -8,6 +8,11 @@ function render(renderable) {
8
8
  return null;
9
9
  return typeof renderable === 'function' ? renderable() : renderable;
10
10
  }
11
+ function isEmpty(data) {
12
+ if (Array.isArray(data))
13
+ return data.length === 0;
14
+ return data === null || data === undefined;
15
+ }
11
16
  function DDataStateWrapper({ isLoading, isError, data, onRetry, messages, renderLoading, renderEmpty, renderError, children, }) {
12
17
  // 1. Loading
13
18
  if (isLoading) {
@@ -21,13 +26,15 @@ function DDataStateWrapper({ isLoading, isError, data, onRetry, messages, render
21
26
  return render(renderError);
22
27
  return (jsx(ErrorState, { onRetry: onRetry, message: messages === null || messages === void 0 ? void 0 : messages.error, retryMessage: messages === null || messages === void 0 ? void 0 : messages.retry }));
23
28
  }
24
- // 3. Empty
25
- if (!(data === null || data === void 0 ? void 0 : data.length)) {
29
+ // 3. Empty: no items for a collection, null/undefined for a single resource
30
+ if (isEmpty(data)) {
26
31
  if (renderEmpty)
27
32
  return render(renderEmpty);
28
33
  return (jsx(EmptyState, { message: messages === null || messages === void 0 ? void 0 : messages.empty }));
29
34
  }
30
- // 4. Success
35
+ // 4. Success: the render prop gets the same shape it was given
36
+ // Both overloads pair `data` with its own `children` signature, so the
37
+ // value is handed back exactly as it was received.
31
38
  return jsx(Fragment, { children: children(data) });
32
39
  }
33
40
 
@@ -1 +1 @@
1
- {"version":3,"file":"DDataStateWrapper.js","sources":["../../../../dist-transpiled/components/DDataStateWrapper/DDataStateWrapper.js"],"sourcesContent":["import { jsx as _jsx, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { ErrorState } from './components/ErrorState';\nimport { EmptyState } from './components/EmptyState';\nimport { LoadingState } from './components/LoadingState';\nfunction render(renderable) {\n if (renderable === undefined)\n return null;\n return typeof renderable === 'function' ? renderable() : renderable;\n}\nexport default function DDataStateWrapper({ isLoading, isError, data, onRetry, messages, renderLoading, renderEmpty, renderError, children, }) {\n // 1. Loading\n if (isLoading) {\n if (renderLoading)\n return render(renderLoading);\n return _jsx(LoadingState, { ariaLabel: messages === null || messages === void 0 ? void 0 : messages.loading });\n }\n // 2. Error\n if (isError) {\n if (renderError)\n return render(renderError);\n return (_jsx(ErrorState, { onRetry: onRetry, message: messages === null || messages === void 0 ? void 0 : messages.error, retryMessage: messages === null || messages === void 0 ? void 0 : messages.retry }));\n }\n // 3. Empty\n if (!(data === null || data === void 0 ? void 0 : data.length)) {\n if (renderEmpty)\n return render(renderEmpty);\n return (_jsx(EmptyState, { message: messages === null || messages === void 0 ? void 0 : messages.empty }));\n }\n // 4. Success\n return _jsx(_Fragment, { children: children(data) });\n}\n//# sourceMappingURL=DDataStateWrapper.js.map"],"names":["_jsx","_Fragment"],"mappings":";;;;;AAIA,SAAS,MAAM,CAAC,UAAU,EAAE;AAC5B,IAAI,IAAI,UAAU,KAAK,SAAS;AAChC,QAAQ,OAAO,IAAI;AACnB,IAAI,OAAO,OAAO,UAAU,KAAK,UAAU,GAAG,UAAU,EAAE,GAAG,UAAU;AACvE;AACe,SAAS,iBAAiB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,GAAG,EAAE;AAC/I;AACA,IAAI,IAAI,SAAS,EAAE;AACnB,QAAQ,IAAI,aAAa;AACzB,YAAY,OAAO,MAAM,CAAC,aAAa,CAAC;AACxC,QAAQ,OAAOA,GAAI,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;AACtH,IAAI;AACJ;AACA,IAAI,IAAI,OAAO,EAAE;AACjB,QAAQ,IAAI,WAAW;AACvB,YAAY,OAAO,MAAM,CAAC,WAAW,CAAC;AACtC,QAAQ,QAAQA,GAAI,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;AACrN,IAAI;AACJ;AACA,IAAI,IAAI,EAAE,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,EAAE;AACpE,QAAQ,IAAI,WAAW;AACvB,YAAY,OAAO,MAAM,CAAC,WAAW,CAAC;AACtC,QAAQ,QAAQA,GAAI,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;AACjH,IAAI;AACJ;AACA,IAAI,OAAOA,GAAI,CAACC,QAAS,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;AACxD;;;;"}
1
+ {"version":3,"file":"DDataStateWrapper.js","sources":["../../../../dist-transpiled/components/DDataStateWrapper/DDataStateWrapper.js"],"sourcesContent":["import { jsx as _jsx, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { ErrorState } from './components/ErrorState';\nimport { EmptyState } from './components/EmptyState';\nimport { LoadingState } from './components/LoadingState';\nfunction render(renderable) {\n if (renderable === undefined)\n return null;\n return typeof renderable === 'function' ? renderable() : renderable;\n}\nfunction isEmpty(data) {\n if (Array.isArray(data))\n return data.length === 0;\n return data === null || data === undefined;\n}\nfunction DDataStateWrapper({ isLoading, isError, data, onRetry, messages, renderLoading, renderEmpty, renderError, children, }) {\n // 1. Loading\n if (isLoading) {\n if (renderLoading)\n return render(renderLoading);\n return _jsx(LoadingState, { ariaLabel: messages === null || messages === void 0 ? void 0 : messages.loading });\n }\n // 2. Error\n if (isError) {\n if (renderError)\n return render(renderError);\n return (_jsx(ErrorState, { onRetry: onRetry, message: messages === null || messages === void 0 ? void 0 : messages.error, retryMessage: messages === null || messages === void 0 ? void 0 : messages.retry }));\n }\n // 3. Empty: no items for a collection, null/undefined for a single resource\n if (isEmpty(data)) {\n if (renderEmpty)\n return render(renderEmpty);\n return (_jsx(EmptyState, { message: messages === null || messages === void 0 ? void 0 : messages.empty }));\n }\n // 4. Success: the render prop gets the same shape it was given\n // Both overloads pair `data` with its own `children` signature, so the\n // value is handed back exactly as it was received.\n return _jsx(_Fragment, { children: children(data) });\n}\nexport default DDataStateWrapper;\n//# sourceMappingURL=DDataStateWrapper.js.map"],"names":["_jsx","_Fragment"],"mappings":";;;;;AAIA,SAAS,MAAM,CAAC,UAAU,EAAE;AAC5B,IAAI,IAAI,UAAU,KAAK,SAAS;AAChC,QAAQ,OAAO,IAAI;AACnB,IAAI,OAAO,OAAO,UAAU,KAAK,UAAU,GAAG,UAAU,EAAE,GAAG,UAAU;AACvE;AACA,SAAS,OAAO,CAAC,IAAI,EAAE;AACvB,IAAI,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;AAC3B,QAAQ,OAAO,IAAI,CAAC,MAAM,KAAK,CAAC;AAChC,IAAI,OAAO,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS;AAC9C;AACA,SAAS,iBAAiB,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,WAAW,EAAE,QAAQ,GAAG,EAAE;AAChI;AACA,IAAI,IAAI,SAAS,EAAE;AACnB,QAAQ,IAAI,aAAa;AACzB,YAAY,OAAO,MAAM,CAAC,aAAa,CAAC;AACxC,QAAQ,OAAOA,GAAI,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,OAAO,EAAE,CAAC;AACtH,IAAI;AACJ;AACA,IAAI,IAAI,OAAO,EAAE;AACjB,QAAQ,IAAI,WAAW;AACvB,YAAY,OAAO,MAAM,CAAC,WAAW,CAAC;AACtC,QAAQ,QAAQA,GAAI,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;AACrN,IAAI;AACJ;AACA,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,EAAE;AACvB,QAAQ,IAAI,WAAW;AACvB,YAAY,OAAO,MAAM,CAAC,WAAW,CAAC;AACtC,QAAQ,QAAQA,GAAI,CAAC,UAAU,EAAE,EAAE,OAAO,EAAE,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;AACjH,IAAI;AACJ;AACA;AACA;AACA,IAAI,OAAOA,GAAI,CAACC,QAAS,EAAE,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;AACxD;;;;"}
@@ -4,7 +4,7 @@ import { getErrorMessage, ErrorBoundary } from 'react-error-boundary';
4
4
  export { getErrorMessage, useErrorBoundary } from 'react-error-boundary';
5
5
  import DefaultErrorBoundary from './components/DefaultErrorBoundary.js';
6
6
 
7
- function DErrorBoundary({ name, fallback, resetKeys, onReset, onError, children, }) {
7
+ function DErrorBoundary({ name, fallback, resetKeys, onReset, onError, messages, children, }) {
8
8
  const handleError = useCallback((error, info) => {
9
9
  // eslint-disable-next-line no-console
10
10
  console.error(`[DErrorBoundary${name ? `:${name}` : ''}]`, getErrorMessage(error), info);
@@ -13,8 +13,8 @@ function DErrorBoundary({ name, fallback, resetKeys, onReset, onError, children,
13
13
  const FallbackRender = useCallback((props) => {
14
14
  if (fallback)
15
15
  return fallback(props);
16
- return (jsx(DefaultErrorBoundary, { resetErrorBoundary: props.resetErrorBoundary }));
17
- }, [fallback]);
16
+ return (jsx(DefaultErrorBoundary, { resetErrorBoundary: props.resetErrorBoundary, message: messages === null || messages === void 0 ? void 0 : messages.error, retryMessage: messages === null || messages === void 0 ? void 0 : messages.retry }));
17
+ }, [fallback, messages]);
18
18
  return (jsx(ErrorBoundary, { resetKeys: resetKeys, onReset: onReset, onError: handleError, fallbackRender: FallbackRender, children: children }));
19
19
  }
20
20
 
@@ -1 +1 @@
1
- {"version":3,"file":"DErrorBoundary.js","sources":["../../../../dist-transpiled/components/DErrorBoundary/DErrorBoundary.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useCallback, } from 'react';\nimport { ErrorBoundary, useErrorBoundary, getErrorMessage, } from 'react-error-boundary';\nimport DefaultErrorBoundary from './components/DefaultErrorBoundary';\nexport { useErrorBoundary, getErrorMessage, };\nexport default function DErrorBoundary({ name, fallback, resetKeys, onReset, onError, children, }) {\n const handleError = useCallback((error, info) => {\n // eslint-disable-next-line no-console\n console.error(`[DErrorBoundary${name ? `:${name}` : ''}]`, getErrorMessage(error), info);\n onError === null || onError === void 0 ? void 0 : onError(error, info);\n }, [name, onError]);\n const FallbackRender = useCallback((props) => {\n if (fallback)\n return fallback(props);\n return (_jsx(DefaultErrorBoundary, { resetErrorBoundary: props.resetErrorBoundary }));\n }, [fallback]);\n return (_jsx(ErrorBoundary, { resetKeys: resetKeys, onReset: onReset, onError: handleError, fallbackRender: FallbackRender, children: children }));\n}\n//# sourceMappingURL=DErrorBoundary.js.map"],"names":["_jsx"],"mappings":";;;;;;AAKe,SAAS,cAAc,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,GAAG,EAAE;AACnG,IAAI,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,KAAK,EAAE,IAAI,KAAK;AACrD;AACA,QAAQ,OAAO,CAAC,KAAK,CAAC,CAAC,eAAe,EAAE,IAAI,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC;AAChG,QAAQ,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;AAC9E,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACvB,IAAI,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,KAAK,KAAK;AAClD,QAAQ,IAAI,QAAQ;AACpB,YAAY,OAAO,QAAQ,CAAC,KAAK,CAAC;AAClC,QAAQ,QAAQA,GAAI,CAAC,oBAAoB,EAAE,EAAE,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAAE,CAAC;AAC5F,IAAI,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;AAClB,IAAI,QAAQA,GAAI,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACrJ;;;;"}
1
+ {"version":3,"file":"DErrorBoundary.js","sources":["../../../../dist-transpiled/components/DErrorBoundary/DErrorBoundary.js"],"sourcesContent":["import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { useCallback, } from 'react';\nimport { ErrorBoundary, useErrorBoundary, getErrorMessage, } from 'react-error-boundary';\nimport DefaultErrorBoundary from './components/DefaultErrorBoundary';\nexport { useErrorBoundary, getErrorMessage, };\nexport default function DErrorBoundary({ name, fallback, resetKeys, onReset, onError, messages, children, }) {\n const handleError = useCallback((error, info) => {\n // eslint-disable-next-line no-console\n console.error(`[DErrorBoundary${name ? `:${name}` : ''}]`, getErrorMessage(error), info);\n onError === null || onError === void 0 ? void 0 : onError(error, info);\n }, [name, onError]);\n const FallbackRender = useCallback((props) => {\n if (fallback)\n return fallback(props);\n return (_jsx(DefaultErrorBoundary, { resetErrorBoundary: props.resetErrorBoundary, message: messages === null || messages === void 0 ? void 0 : messages.error, retryMessage: messages === null || messages === void 0 ? void 0 : messages.retry }));\n }, [fallback, messages]);\n return (_jsx(ErrorBoundary, { resetKeys: resetKeys, onReset: onReset, onError: handleError, fallbackRender: FallbackRender, children: children }));\n}\n//# sourceMappingURL=DErrorBoundary.js.map"],"names":["_jsx"],"mappings":";;;;;;AAKe,SAAS,cAAc,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,GAAG,EAAE;AAC7G,IAAI,MAAM,WAAW,GAAG,WAAW,CAAC,CAAC,KAAK,EAAE,IAAI,KAAK;AACrD;AACA,QAAQ,OAAO,CAAC,KAAK,CAAC,CAAC,eAAe,EAAE,IAAI,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,EAAE,eAAe,CAAC,KAAK,CAAC,EAAE,IAAI,CAAC;AAChG,QAAQ,OAAO,KAAK,IAAI,IAAI,OAAO,KAAK,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC;AAC9E,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;AACvB,IAAI,MAAM,cAAc,GAAG,WAAW,CAAC,CAAC,KAAK,KAAK;AAClD,QAAQ,IAAI,QAAQ;AACpB,YAAY,OAAO,QAAQ,CAAC,KAAK,CAAC;AAClC,QAAQ,QAAQA,GAAI,CAAC,oBAAoB,EAAE,EAAE,kBAAkB,EAAE,KAAK,CAAC,kBAAkB,EAAE,OAAO,EAAE,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,YAAY,EAAE,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,MAAM,GAAG,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;AAC3P,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC5B,IAAI,QAAQA,GAAI,CAAC,aAAa,EAAE,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AACrJ;;;;"}
@@ -2,8 +2,8 @@ import { jsx, jsxs } from 'react/jsx-runtime';
2
2
  import DAlert from '../../DAlert/DAlert.js';
3
3
  import DButton from '../../DButton/DButton.js';
4
4
 
5
- function DefaultErrorBoundary({ resetErrorBoundary }) {
6
- return (jsx(DAlert, { color: "danger", showClose: false, children: jsxs("div", { className: "d-error-boundary-content", children: [jsx("span", { children: "An unexpected error occurred." }), jsx(DButton, { color: "secondary", variant: "outline", size: "sm", onClick: resetErrorBoundary, children: "Retry" })] }) }));
5
+ function DefaultErrorBoundary({ resetErrorBoundary, message = 'An unexpected error occurred.', retryMessage = 'Retry', }) {
6
+ return (jsx(DAlert, { color: "danger", showClose: false, children: jsxs("div", { className: "d-error-boundary-content", children: [jsx("span", { children: message }), jsx(DButton, { color: "secondary", variant: "outline", size: "sm", onClick: resetErrorBoundary, children: retryMessage })] }) }));
7
7
  }
8
8
 
9
9
  export { DefaultErrorBoundary as default };
@@ -1 +1 @@
1
- {"version":3,"file":"DefaultErrorBoundary.js","sources":["../../../../../dist-transpiled/components/DErrorBoundary/components/DefaultErrorBoundary.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport DAlert from '../../DAlert';\nimport DButton from '../../DButton';\nexport default function DefaultErrorBoundary({ resetErrorBoundary }) {\n return (_jsx(DAlert, { color: \"danger\", showClose: false, children: _jsxs(\"div\", { className: \"d-error-boundary-content\", children: [_jsx(\"span\", { children: \"An unexpected error occurred.\" }), _jsx(DButton, { color: \"secondary\", variant: \"outline\", size: \"sm\", onClick: resetErrorBoundary, children: \"Retry\" })] }) }));\n}\n//# sourceMappingURL=DefaultErrorBoundary.js.map"],"names":["_jsx","_jsxs"],"mappings":";;;;AAGe,SAAS,oBAAoB,CAAC,EAAE,kBAAkB,EAAE,EAAE;AACrE,IAAI,QAAQA,GAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAEC,IAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,0BAA0B,EAAE,QAAQ,EAAE,CAACD,GAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,+BAA+B,EAAE,CAAC,EAAEA,GAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAClU;;;;"}
1
+ {"version":3,"file":"DefaultErrorBoundary.js","sources":["../../../../../dist-transpiled/components/DErrorBoundary/components/DefaultErrorBoundary.js"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport DAlert from '../../DAlert';\nimport DButton from '../../DButton';\nexport default function DefaultErrorBoundary({ resetErrorBoundary, message = 'An unexpected error occurred.', retryMessage = 'Retry', }) {\n return (_jsx(DAlert, { color: \"danger\", showClose: false, children: _jsxs(\"div\", { className: \"d-error-boundary-content\", children: [_jsx(\"span\", { children: message }), _jsx(DButton, { color: \"secondary\", variant: \"outline\", size: \"sm\", onClick: resetErrorBoundary, children: retryMessage })] }) }));\n}\n//# sourceMappingURL=DefaultErrorBoundary.js.map"],"names":["_jsx","_jsxs"],"mappings":";;;;AAGe,SAAS,oBAAoB,CAAC,EAAE,kBAAkB,EAAE,OAAO,GAAG,+BAA+B,EAAE,YAAY,GAAG,OAAO,GAAG,EAAE;AACzI,IAAI,QAAQA,GAAI,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,KAAK,EAAE,QAAQ,EAAEC,IAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,0BAA0B,EAAE,QAAQ,EAAE,CAACD,GAAI,CAAC,MAAM,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,EAAEA,GAAI,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC;AAC/S;;;;"}
@@ -4,6 +4,9 @@ import { forwardRef, useId, useMemo, useCallback } from 'react';
4
4
  import classNames from 'classnames';
5
5
  import DIcon from '../DIcon/DIcon.js';
6
6
  import useProvidedRefOrCreate from '../../hooks/useProvidedRefOrCreate.js';
7
+ import DFormLabel from '../internal/DFormLabel.js';
8
+ import hasLabelContent from '../../utils/hasLabelContent.js';
9
+ import warnLabelUsage from '../../utils/warnLabelUsage.js';
7
10
  import { useDContext } from '../../contexts/DContext.js';
8
11
 
9
12
  function DInput(_a, ref) {
@@ -45,7 +48,7 @@ function DInput(_a, ref) {
45
48
  const inputComponent = useMemo(() => (jsx("input", Object.assign({ ref: inputRef, id: id, className: classNames('form-control', {
46
49
  'is-invalid': invalid,
47
50
  'is-valid': valid,
48
- }), disabled: disabled || loading, readOnly: readonly, value: value, onChange: handleOnChange }, (floatingLabel || placeholder) && { placeholder: floatingLabel ? '' : placeholder }, ariaDescribedby && { 'aria-describedby': ariaDescribedby }, inputProps))), [
51
+ }), disabled: disabled || loading, readOnly: readonly, value: value, onChange: handleOnChange }, (floatingLabel || placeholder) && { placeholder: floatingLabel ? '' : placeholder }, ariaDescribedby && { 'aria-describedby': ariaDescribedby }, invalid && { 'aria-invalid': true }, inputProps))), [
49
52
  ariaDescribedby,
50
53
  disabled,
51
54
  handleOnChange,
@@ -60,7 +63,7 @@ function DInput(_a, ref) {
60
63
  value,
61
64
  readonly,
62
65
  ]);
63
- const labelComponent = useMemo(() => (jsx("label", { htmlFor: id, children: label })), [
66
+ const labelComponent = useMemo(() => (jsx(DFormLabel, { htmlFor: id, children: label })), [
64
67
  id,
65
68
  label,
66
69
  ]);
@@ -70,7 +73,16 @@ function DInput(_a, ref) {
70
73
  }
71
74
  return inputComponent;
72
75
  }, [floatingLabel, inputComponent, labelComponent]);
73
- return (jsxs("div", Object.assign({ className: className, style: style }, dataAttributes, { children: [label && !floatingLabel && labelComponent, jsxs("div", { className: classNames({
76
+ if (process.env.NODE_ENV !== 'production') {
77
+ warnLabelUsage({
78
+ component: 'DInput',
79
+ label,
80
+ hasAccessibleName: !!inputProps['aria-label'] || !!inputProps['aria-labelledby'],
81
+ accessibleNameProp: 'aria-label',
82
+ floatingLabel,
83
+ });
84
+ }
85
+ return (jsxs("div", Object.assign({ className: className, style: style }, dataAttributes, { children: [hasLabelContent(label) && !floatingLabel && labelComponent, jsxs("div", { className: classNames({
74
86
  [`input-group-${size}`]: !!size,
75
87
  'input-group': true,
76
88
  'has-validation': invalid || valid,
@@ -1 +1 @@
1
- {"version":3,"file":"DInput.js","sources":["../../../../dist-transpiled/components/DInput/DInput.js"],"sourcesContent":["import { __rest } from \"tslib\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { forwardRef, useCallback, useMemo, useId, } from 'react';\nimport classNames from 'classnames';\nimport DIcon from '../DIcon';\nimport useProvidedRefOrCreate from '../../hooks/useProvidedRefOrCreate';\nimport { useDContext } from '../../contexts';\nfunction DInput(_a, ref) {\n var { id: idProp, style, className, label = '', disabled = false, loading = false, iconFamilyClass, iconFamilyPrefix, iconMaterialStyle, iconStart, iconStartDisabled, iconStartFamilyClass, iconStartFamilyPrefix, iconStartAriaLabel, iconStartTabIndex, iconStartMaterialStyle, iconEnd, iconEndDisabled, iconEndFamilyClass, iconEndFamilyPrefix, iconEndAriaLabel, iconEndTabIndex, iconEndMaterialStyle, hint, size, invalid = false, valid = false, floatingLabel = false, inputStart, inputEnd, value, placeholder = '', dataAttributes, readonly, onChange, onIconStartClick, onIconEndClick } = _a, inputProps = __rest(_a, [\"id\", \"style\", \"className\", \"label\", \"disabled\", \"loading\", \"iconFamilyClass\", \"iconFamilyPrefix\", \"iconMaterialStyle\", \"iconStart\", \"iconStartDisabled\", \"iconStartFamilyClass\", \"iconStartFamilyPrefix\", \"iconStartAriaLabel\", \"iconStartTabIndex\", \"iconStartMaterialStyle\", \"iconEnd\", \"iconEndDisabled\", \"iconEndFamilyClass\", \"iconEndFamilyPrefix\", \"iconEndAriaLabel\", \"iconEndTabIndex\", \"iconEndMaterialStyle\", \"hint\", \"size\", \"invalid\", \"valid\", \"floatingLabel\", \"inputStart\", \"inputEnd\", \"value\", \"placeholder\", \"dataAttributes\", \"readonly\", \"onChange\", \"onIconStartClick\", \"onIconEndClick\"]);\n const inputRef = useProvidedRefOrCreate(ref);\n const innerId = useId();\n const id = useMemo(() => idProp || innerId, [idProp, innerId]);\n const { icon: { familyClass, familyPrefix, materialStyle, }, } = useDContext();\n const handleOnChange = useCallback((event) => {\n onChange === null || onChange === void 0 ? void 0 : onChange(event.currentTarget.value);\n }, [onChange]);\n const handleOnIconStartClick = useCallback(() => {\n onIconStartClick === null || onIconStartClick === void 0 ? void 0 : onIconStartClick(value);\n }, [onIconStartClick, value]);\n const handleOnIconEndClick = useCallback(() => {\n onIconEndClick === null || onIconEndClick === void 0 ? void 0 : onIconEndClick(value);\n }, [onIconEndClick, value]);\n const ariaDescribedby = useMemo(() => ([\n !!inputStart && `${id}InputStart`,\n !!iconStart && `${id}Start`,\n (invalid || valid) && !iconEnd && !loading && `${id}State`,\n (iconEnd && !loading) && `${id}End`,\n loading && `${id}Loading`,\n !!inputEnd && `${id}InputEnd`,\n !!hint && `${id}Hint`,\n ]\n .filter(Boolean)\n .join(' ')), [\n id,\n inputStart,\n iconStart,\n invalid,\n valid,\n iconEnd,\n loading,\n inputEnd,\n hint,\n ]);\n const inputComponent = useMemo(() => (_jsx(\"input\", Object.assign({ ref: inputRef, id: id, className: classNames('form-control', {\n 'is-invalid': invalid,\n 'is-valid': valid,\n }), disabled: disabled || loading, readOnly: readonly, value: value, onChange: handleOnChange }, (floatingLabel || placeholder) && { placeholder: floatingLabel ? '' : placeholder }, ariaDescribedby && { 'aria-describedby': ariaDescribedby }, inputProps))), [\n ariaDescribedby,\n disabled,\n handleOnChange,\n id,\n inputProps,\n inputRef,\n invalid,\n loading,\n placeholder,\n floatingLabel,\n valid,\n value,\n readonly,\n ]);\n const labelComponent = useMemo(() => (_jsx(\"label\", { htmlFor: id, children: label })), [\n id,\n label,\n ]);\n const dynamicComponent = useMemo(() => {\n if (floatingLabel) {\n return (_jsxs(\"div\", { className: \"form-floating\", children: [inputComponent, labelComponent] }));\n }\n return inputComponent;\n }, [floatingLabel, inputComponent, labelComponent]);\n return (_jsxs(\"div\", Object.assign({ className: className, style: style }, dataAttributes, { children: [label && !floatingLabel && labelComponent, _jsxs(\"div\", { className: classNames({\n [`input-group-${size}`]: !!size,\n 'input-group': true,\n 'has-validation': invalid || valid,\n }), children: [!!inputStart && (_jsx(\"div\", { className: \"input-group-text\", id: `${id}InputStart`, children: inputStart })), iconStart && (onIconStartClick ? (_jsx(\"button\", { type: \"button\", className: \"input-group-text\", id: `${id}Start`, onClick: handleOnIconStartClick, disabled: disabled || loading || iconStartDisabled, \"aria-label\": iconStartAriaLabel || (typeof iconStart === 'string' ? iconStart : 'start icon'), tabIndex: iconStartTabIndex, children: _jsx(DIcon, { icon: iconStart, familyClass: iconStartFamilyClass !== null && iconStartFamilyClass !== void 0 ? iconStartFamilyClass : familyClass, familyPrefix: iconStartFamilyPrefix !== null && iconStartFamilyPrefix !== void 0 ? iconStartFamilyPrefix : familyPrefix, materialStyle: iconStartMaterialStyle !== null && iconStartMaterialStyle !== void 0 ? iconStartMaterialStyle : materialStyle }) })) : (_jsx(\"div\", { className: \"input-group-text\", id: `${id}Start`, tabIndex: -1, children: _jsx(DIcon, { icon: iconStart, familyClass: iconStartFamilyClass !== null && iconStartFamilyClass !== void 0 ? iconStartFamilyClass : familyClass, familyPrefix: iconStartFamilyPrefix !== null && iconStartFamilyPrefix !== void 0 ? iconStartFamilyPrefix : familyPrefix, materialStyle: iconStartMaterialStyle !== null && iconStartMaterialStyle !== void 0 ? iconStartMaterialStyle : materialStyle }) }))), dynamicComponent, (iconEnd && !loading) && (onIconEndClick ? (_jsx(\"button\", { type: \"button\", className: \"input-group-text\", id: `${id}End`, onClick: handleOnIconEndClick, disabled: disabled || loading || iconEndDisabled, \"aria-label\": iconEndAriaLabel || (typeof iconEnd === 'string' ? iconEnd : 'end icon'), tabIndex: iconEndTabIndex, children: _jsx(DIcon, { icon: iconEnd, familyClass: iconEndFamilyClass !== null && iconEndFamilyClass !== void 0 ? iconEndFamilyClass : familyClass, familyPrefix: iconEndFamilyPrefix !== null && iconEndFamilyPrefix !== void 0 ? iconEndFamilyPrefix : familyPrefix, materialStyle: iconEndMaterialStyle !== null && iconEndMaterialStyle !== void 0 ? iconEndMaterialStyle : materialStyle }) })) : (_jsx(\"div\", { className: \"input-group-text\", id: `${id}End`, tabIndex: -1, children: _jsx(DIcon, { icon: iconEnd, familyClass: iconEndFamilyClass !== null && iconEndFamilyClass !== void 0 ? iconEndFamilyClass : familyClass, familyPrefix: iconEndFamilyPrefix !== null && iconEndFamilyPrefix !== void 0 ? iconEndFamilyPrefix : familyPrefix, materialStyle: iconEndMaterialStyle !== null && iconEndMaterialStyle !== void 0 ? iconEndMaterialStyle : materialStyle }) }))), loading && (_jsx(\"div\", { className: \"input-group-text\", id: `${id}Loading`, children: _jsx(\"span\", { className: \"spinner-border spinner-border-sm\", role: \"status\", \"aria-hidden\": \"true\", \"data-testid\": \"loading-spinner\", children: _jsx(\"span\", { className: \"visually-hidden\", children: \"Loading...\" }) }) })), !!inputEnd && (_jsx(\"div\", { className: \"input-group-text\", id: `${id}InputEnd`, children: inputEnd }))] }), hint && (_jsx(\"div\", { className: \"form-text\", id: `${id}Hint`, children: hint }))] })));\n}\nconst ForwardedDInput = forwardRef(DInput);\nForwardedDInput.displayName = 'DInput';\nexport default ForwardedDInput;\n//# sourceMappingURL=DInput.js.map"],"names":["_jsx","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"DInput.js","sources":["../../../../dist-transpiled/components/DInput/DInput.js"],"sourcesContent":["import { __rest } from \"tslib\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { forwardRef, useCallback, useMemo, useId, } from 'react';\nimport classNames from 'classnames';\nimport DIcon from '../DIcon';\nimport useProvidedRefOrCreate from '../../hooks/useProvidedRefOrCreate';\nimport DFormLabel from '../internal/DFormLabel';\nimport hasLabelContent from '../../utils/hasLabelContent';\nimport warnLabelUsage from '../../utils/warnLabelUsage';\nimport { useDContext } from '../../contexts';\nfunction DInput(_a, ref) {\n var { id: idProp, style, className, label = '', disabled = false, loading = false, iconFamilyClass, iconFamilyPrefix, iconMaterialStyle, iconStart, iconStartDisabled, iconStartFamilyClass, iconStartFamilyPrefix, iconStartAriaLabel, iconStartTabIndex, iconStartMaterialStyle, iconEnd, iconEndDisabled, iconEndFamilyClass, iconEndFamilyPrefix, iconEndAriaLabel, iconEndTabIndex, iconEndMaterialStyle, hint, size, invalid = false, valid = false, floatingLabel = false, inputStart, inputEnd, value, placeholder = '', dataAttributes, readonly, onChange, onIconStartClick, onIconEndClick } = _a, inputProps = __rest(_a, [\"id\", \"style\", \"className\", \"label\", \"disabled\", \"loading\", \"iconFamilyClass\", \"iconFamilyPrefix\", \"iconMaterialStyle\", \"iconStart\", \"iconStartDisabled\", \"iconStartFamilyClass\", \"iconStartFamilyPrefix\", \"iconStartAriaLabel\", \"iconStartTabIndex\", \"iconStartMaterialStyle\", \"iconEnd\", \"iconEndDisabled\", \"iconEndFamilyClass\", \"iconEndFamilyPrefix\", \"iconEndAriaLabel\", \"iconEndTabIndex\", \"iconEndMaterialStyle\", \"hint\", \"size\", \"invalid\", \"valid\", \"floatingLabel\", \"inputStart\", \"inputEnd\", \"value\", \"placeholder\", \"dataAttributes\", \"readonly\", \"onChange\", \"onIconStartClick\", \"onIconEndClick\"]);\n const inputRef = useProvidedRefOrCreate(ref);\n const innerId = useId();\n const id = useMemo(() => idProp || innerId, [idProp, innerId]);\n const { icon: { familyClass, familyPrefix, materialStyle, }, } = useDContext();\n const handleOnChange = useCallback((event) => {\n onChange === null || onChange === void 0 ? void 0 : onChange(event.currentTarget.value);\n }, [onChange]);\n const handleOnIconStartClick = useCallback(() => {\n onIconStartClick === null || onIconStartClick === void 0 ? void 0 : onIconStartClick(value);\n }, [onIconStartClick, value]);\n const handleOnIconEndClick = useCallback(() => {\n onIconEndClick === null || onIconEndClick === void 0 ? void 0 : onIconEndClick(value);\n }, [onIconEndClick, value]);\n const ariaDescribedby = useMemo(() => ([\n !!inputStart && `${id}InputStart`,\n !!iconStart && `${id}Start`,\n (invalid || valid) && !iconEnd && !loading && `${id}State`,\n (iconEnd && !loading) && `${id}End`,\n loading && `${id}Loading`,\n !!inputEnd && `${id}InputEnd`,\n !!hint && `${id}Hint`,\n ]\n .filter(Boolean)\n .join(' ')), [\n id,\n inputStart,\n iconStart,\n invalid,\n valid,\n iconEnd,\n loading,\n inputEnd,\n hint,\n ]);\n const inputComponent = useMemo(() => (_jsx(\"input\", Object.assign({ ref: inputRef, id: id, className: classNames('form-control', {\n 'is-invalid': invalid,\n 'is-valid': valid,\n }), disabled: disabled || loading, readOnly: readonly, value: value, onChange: handleOnChange }, (floatingLabel || placeholder) && { placeholder: floatingLabel ? '' : placeholder }, ariaDescribedby && { 'aria-describedby': ariaDescribedby }, invalid && { 'aria-invalid': true }, inputProps))), [\n ariaDescribedby,\n disabled,\n handleOnChange,\n id,\n inputProps,\n inputRef,\n invalid,\n loading,\n placeholder,\n floatingLabel,\n valid,\n value,\n readonly,\n ]);\n const labelComponent = useMemo(() => (_jsx(DFormLabel, { htmlFor: id, children: label })), [\n id,\n label,\n ]);\n const dynamicComponent = useMemo(() => {\n if (floatingLabel) {\n return (_jsxs(\"div\", { className: \"form-floating\", children: [inputComponent, labelComponent] }));\n }\n return inputComponent;\n }, [floatingLabel, inputComponent, labelComponent]);\n if (process.env.NODE_ENV !== 'production') {\n warnLabelUsage({\n component: 'DInput',\n label,\n hasAccessibleName: !!inputProps['aria-label'] || !!inputProps['aria-labelledby'],\n accessibleNameProp: 'aria-label',\n floatingLabel,\n });\n }\n return (_jsxs(\"div\", Object.assign({ className: className, style: style }, dataAttributes, { children: [hasLabelContent(label) && !floatingLabel && labelComponent, _jsxs(\"div\", { className: classNames({\n [`input-group-${size}`]: !!size,\n 'input-group': true,\n 'has-validation': invalid || valid,\n }), children: [!!inputStart && (_jsx(\"div\", { className: \"input-group-text\", id: `${id}InputStart`, children: inputStart })), iconStart && (onIconStartClick ? (_jsx(\"button\", { type: \"button\", className: \"input-group-text\", id: `${id}Start`, onClick: handleOnIconStartClick, disabled: disabled || loading || iconStartDisabled, \"aria-label\": iconStartAriaLabel || (typeof iconStart === 'string' ? iconStart : 'start icon'), tabIndex: iconStartTabIndex, children: _jsx(DIcon, { icon: iconStart, familyClass: iconStartFamilyClass !== null && iconStartFamilyClass !== void 0 ? iconStartFamilyClass : familyClass, familyPrefix: iconStartFamilyPrefix !== null && iconStartFamilyPrefix !== void 0 ? iconStartFamilyPrefix : familyPrefix, materialStyle: iconStartMaterialStyle !== null && iconStartMaterialStyle !== void 0 ? iconStartMaterialStyle : materialStyle }) })) : (_jsx(\"div\", { className: \"input-group-text\", id: `${id}Start`, tabIndex: -1, children: _jsx(DIcon, { icon: iconStart, familyClass: iconStartFamilyClass !== null && iconStartFamilyClass !== void 0 ? iconStartFamilyClass : familyClass, familyPrefix: iconStartFamilyPrefix !== null && iconStartFamilyPrefix !== void 0 ? iconStartFamilyPrefix : familyPrefix, materialStyle: iconStartMaterialStyle !== null && iconStartMaterialStyle !== void 0 ? iconStartMaterialStyle : materialStyle }) }))), dynamicComponent, (iconEnd && !loading) && (onIconEndClick ? (_jsx(\"button\", { type: \"button\", className: \"input-group-text\", id: `${id}End`, onClick: handleOnIconEndClick, disabled: disabled || loading || iconEndDisabled, \"aria-label\": iconEndAriaLabel || (typeof iconEnd === 'string' ? iconEnd : 'end icon'), tabIndex: iconEndTabIndex, children: _jsx(DIcon, { icon: iconEnd, familyClass: iconEndFamilyClass !== null && iconEndFamilyClass !== void 0 ? iconEndFamilyClass : familyClass, familyPrefix: iconEndFamilyPrefix !== null && iconEndFamilyPrefix !== void 0 ? iconEndFamilyPrefix : familyPrefix, materialStyle: iconEndMaterialStyle !== null && iconEndMaterialStyle !== void 0 ? iconEndMaterialStyle : materialStyle }) })) : (_jsx(\"div\", { className: \"input-group-text\", id: `${id}End`, tabIndex: -1, children: _jsx(DIcon, { icon: iconEnd, familyClass: iconEndFamilyClass !== null && iconEndFamilyClass !== void 0 ? iconEndFamilyClass : familyClass, familyPrefix: iconEndFamilyPrefix !== null && iconEndFamilyPrefix !== void 0 ? iconEndFamilyPrefix : familyPrefix, materialStyle: iconEndMaterialStyle !== null && iconEndMaterialStyle !== void 0 ? iconEndMaterialStyle : materialStyle }) }))), loading && (_jsx(\"div\", { className: \"input-group-text\", id: `${id}Loading`, children: _jsx(\"span\", { className: \"spinner-border spinner-border-sm\", role: \"status\", \"aria-hidden\": \"true\", \"data-testid\": \"loading-spinner\", children: _jsx(\"span\", { className: \"visually-hidden\", children: \"Loading...\" }) }) })), !!inputEnd && (_jsx(\"div\", { className: \"input-group-text\", id: `${id}InputEnd`, children: inputEnd }))] }), hint && (_jsx(\"div\", { className: \"form-text\", id: `${id}Hint`, children: hint }))] })));\n}\nconst ForwardedDInput = forwardRef(DInput);\nForwardedDInput.displayName = 'DInput';\nexport default ForwardedDInput;\n//# sourceMappingURL=DInput.js.map"],"names":["_jsx","_jsxs"],"mappings":"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"}
@@ -2,15 +2,32 @@ import { __rest } from 'tslib';
2
2
  import { jsx, jsxs } from 'react/jsx-runtime';
3
3
  import { useRef, useId, useMemo, useCallback, useEffect } from 'react';
4
4
  import classNames from 'classnames';
5
+ import DFormLabel from '../internal/DFormLabel.js';
6
+ import hasLabelContent from '../../utils/hasLabelContent.js';
7
+ import warnLabelUsage from '../../utils/warnLabelUsage.js';
5
8
 
6
9
  function DInputCheck(_a) {
7
- var { id: idProp, type, name, label, ariaLabel, checked = false, disabled = false, invalid = false, valid = false, indeterminate, inputClassName, value, hint, onChange, className, style, dataAttributes } = _a, props = __rest(_a, ["id", "type", "name", "label", "ariaLabel", "checked", "disabled", "invalid", "valid", "indeterminate", "inputClassName", "value", "hint", "onChange", "className", "style", "dataAttributes"]);
10
+ var { id: idProp, type, name, label, ariaLabel, checked, defaultChecked, disabled = false, invalid = false, valid = false, indeterminate, inputClassName, value, hint, onChange, className, style, dataAttributes } = _a, props = __rest(_a, ["id", "type", "name", "label", "ariaLabel", "checked", "defaultChecked", "disabled", "invalid", "valid", "indeterminate", "inputClassName", "value", "hint", "onChange", "className", "style", "dataAttributes"]);
8
11
  const innerRef = useRef(null);
12
+ // See `useControlledState` for why `onChange` takes part in this decision.
13
+ const isControlled = checked !== undefined && onChange !== undefined;
9
14
  const innerId = useId();
10
15
  const id = useMemo(() => idProp || innerId, [idProp, innerId]);
11
16
  const handleChange = useCallback((event) => {
12
17
  onChange === null || onChange === void 0 ? void 0 : onChange(event);
13
- }, [onChange]);
18
+ // Controlled only. Activating a checkbox clears the DOM `indeterminate`
19
+ // flag, and it has no HTML attribute for React to restore the way it
20
+ // restores `checked` when the parent rejects the change, so the mixed state
21
+ // would be gone after the first click — the effect below only re-runs when
22
+ // the prop moves. Uncontrolled keeps the browser's behaviour, where the
23
+ // click owns the state and `indeterminate` was only the starting look.
24
+ // Reapplied after `onChange` so a handler reading
25
+ // `event.target.indeterminate` still sees what the browser left, and a
26
+ // parent that does move the prop wins through that effect.
27
+ if (isControlled && innerRef.current) {
28
+ innerRef.current.indeterminate = type === 'checkbox' && Boolean(indeterminate);
29
+ }
30
+ }, [onChange, isControlled, indeterminate, type]);
14
31
  const ariaDescribedby = useMemo(() => ([
15
32
  !!hint && `${id}Hint`,
16
33
  ]
@@ -24,15 +41,24 @@ function DInputCheck(_a) {
24
41
  innerRef.current.indeterminate = type === 'checkbox' && Boolean(indeterminate);
25
42
  }
26
43
  }, [indeterminate, type]);
44
+ // Legacy path only: a `checked` with no `onChange` behind it still lands on
45
+ // the element, but through the DOM, so the input stays uncontrolled and both
46
+ // clicking it and the native radio-group behaviour keep working.
27
47
  useEffect(() => {
28
- if (innerRef.current) {
29
- innerRef.current.checked = checked;
48
+ if (isControlled || checked === undefined || !innerRef.current) {
49
+ return;
30
50
  }
31
- }, [checked]);
32
- const inputComponent = useMemo(() => (jsx("input", Object.assign({ ref: innerRef, onChange: handleChange, className: classNames('form-check-input', {
51
+ innerRef.current.checked = checked;
52
+ }, [isControlled, checked]);
53
+ const inputComponent = useMemo(() => (jsx("input", Object.assign({ ref: innerRef }, isControlled
54
+ ? { checked }
55
+ : defaultChecked !== undefined && { defaultChecked }, { onChange: handleChange, className: classNames('form-check-input', {
33
56
  'is-invalid': invalid,
34
57
  'is-valid': valid,
35
58
  }, inputClassName), style: style, id: id, disabled: disabled, type: type, name: name, value: value, "aria-label": ariaLabel }, ariaDescribedby && { 'aria-describedby': ariaDescribedby }, props))), [
59
+ isControlled,
60
+ checked,
61
+ defaultChecked,
36
62
  handleChange,
37
63
  invalid,
38
64
  valid,
@@ -47,10 +73,21 @@ function DInputCheck(_a) {
47
73
  ariaDescribedby,
48
74
  props,
49
75
  ]);
50
- if (!label) {
76
+ if (process.env.NODE_ENV !== 'production') {
77
+ warnLabelUsage({
78
+ component: 'DInputCheck',
79
+ label,
80
+ // `{...props}` is spread after `aria-label={ariaLabel}`, so a native
81
+ // `aria-label` wins — including when it is explicitly undefined.
82
+ hasAccessibleName: !!('aria-label' in props ? props['aria-label'] : ariaLabel)
83
+ || !!props['aria-labelledby'],
84
+ accessibleNameProp: 'ariaLabel',
85
+ });
86
+ }
87
+ if (!hasLabelContent(label)) {
51
88
  return inputComponent;
52
89
  }
53
- return (jsxs("div", Object.assign({ className: classNames('form-check', className) }, dataAttributes, { children: [inputComponent, jsx("label", { className: "form-check-label", htmlFor: id, children: label }), hint && (jsx("div", { className: "form-text", id: `${id}Hint`, children: hint }))] })));
90
+ return (jsxs("div", Object.assign({ className: classNames('form-check', className) }, dataAttributes, { children: [inputComponent, jsx(DFormLabel, { className: "form-check-label", htmlFor: id, children: label }), hint && (jsx("div", { className: "form-text", id: `${id}Hint`, children: hint }))] })));
54
91
  }
55
92
 
56
93
  export { DInputCheck as default };
@@ -1 +1 @@
1
- {"version":3,"file":"DInputCheck.js","sources":["../../../../dist-transpiled/components/DInputCheck/DInputCheck.js"],"sourcesContent":["import { __rest } from \"tslib\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useCallback, useEffect, useId, useMemo, useRef, } from 'react';\nimport classNames from 'classnames';\nexport default function DInputCheck(_a) {\n var { id: idProp, type, name, label, ariaLabel, checked = false, disabled = false, invalid = false, valid = false, indeterminate, inputClassName, value, hint, onChange, className, style, dataAttributes } = _a, props = __rest(_a, [\"id\", \"type\", \"name\", \"label\", \"ariaLabel\", \"checked\", \"disabled\", \"invalid\", \"valid\", \"indeterminate\", \"inputClassName\", \"value\", \"hint\", \"onChange\", \"className\", \"style\", \"dataAttributes\"]);\n const innerRef = useRef(null);\n const innerId = useId();\n const id = useMemo(() => idProp || innerId, [idProp, innerId]);\n const handleChange = useCallback((event) => {\n onChange === null || onChange === void 0 ? void 0 : onChange(event);\n }, [onChange]);\n const ariaDescribedby = useMemo(() => ([\n !!hint && `${id}Hint`,\n ]\n .filter(Boolean)\n .join(' ')), [\n id,\n hint,\n ]);\n useEffect(() => {\n if (innerRef.current) {\n innerRef.current.indeterminate = type === 'checkbox' && Boolean(indeterminate);\n }\n }, [indeterminate, type]);\n useEffect(() => {\n if (innerRef.current) {\n innerRef.current.checked = checked;\n }\n }, [checked]);\n const inputComponent = useMemo(() => (_jsx(\"input\", Object.assign({ ref: innerRef, onChange: handleChange, className: classNames('form-check-input', {\n 'is-invalid': invalid,\n 'is-valid': valid,\n }, inputClassName), style: style, id: id, disabled: disabled, type: type, name: name, value: value, \"aria-label\": ariaLabel }, ariaDescribedby && { 'aria-describedby': ariaDescribedby }, props))), [\n handleChange,\n invalid,\n valid,\n inputClassName,\n style,\n id,\n disabled,\n type,\n name,\n value,\n ariaLabel,\n ariaDescribedby,\n props,\n ]);\n if (!label) {\n return inputComponent;\n }\n return (_jsxs(\"div\", Object.assign({ className: classNames('form-check', className) }, dataAttributes, { children: [inputComponent, _jsx(\"label\", { className: \"form-check-label\", htmlFor: id, children: label }), hint && (_jsx(\"div\", { className: \"form-text\", id: `${id}Hint`, children: hint }))] })));\n}\n//# sourceMappingURL=DInputCheck.js.map"],"names":["_jsx","_jsxs"],"mappings":"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"}
1
+ {"version":3,"file":"DInputCheck.js","sources":["../../../../dist-transpiled/components/DInputCheck/DInputCheck.js"],"sourcesContent":["import { __rest } from \"tslib\";\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { useCallback, useEffect, useId, useMemo, useRef, } from 'react';\nimport classNames from 'classnames';\nimport DFormLabel from '../internal/DFormLabel';\nimport hasLabelContent from '../../utils/hasLabelContent';\nimport warnLabelUsage from '../../utils/warnLabelUsage';\nexport default function DInputCheck(_a) {\n var { id: idProp, type, name, label, ariaLabel, checked, defaultChecked, disabled = false, invalid = false, valid = false, indeterminate, inputClassName, value, hint, onChange, className, style, dataAttributes } = _a, props = __rest(_a, [\"id\", \"type\", \"name\", \"label\", \"ariaLabel\", \"checked\", \"defaultChecked\", \"disabled\", \"invalid\", \"valid\", \"indeterminate\", \"inputClassName\", \"value\", \"hint\", \"onChange\", \"className\", \"style\", \"dataAttributes\"]);\n const innerRef = useRef(null);\n // See `useControlledState` for why `onChange` takes part in this decision.\n const isControlled = checked !== undefined && onChange !== undefined;\n const innerId = useId();\n const id = useMemo(() => idProp || innerId, [idProp, innerId]);\n const handleChange = useCallback((event) => {\n onChange === null || onChange === void 0 ? void 0 : onChange(event);\n // Controlled only. Activating a checkbox clears the DOM `indeterminate`\n // flag, and it has no HTML attribute for React to restore the way it\n // restores `checked` when the parent rejects the change, so the mixed state\n // would be gone after the first click — the effect below only re-runs when\n // the prop moves. Uncontrolled keeps the browser's behaviour, where the\n // click owns the state and `indeterminate` was only the starting look.\n // Reapplied after `onChange` so a handler reading\n // `event.target.indeterminate` still sees what the browser left, and a\n // parent that does move the prop wins through that effect.\n if (isControlled && innerRef.current) {\n innerRef.current.indeterminate = type === 'checkbox' && Boolean(indeterminate);\n }\n }, [onChange, isControlled, indeterminate, type]);\n const ariaDescribedby = useMemo(() => ([\n !!hint && `${id}Hint`,\n ]\n .filter(Boolean)\n .join(' ')), [\n id,\n hint,\n ]);\n useEffect(() => {\n if (innerRef.current) {\n innerRef.current.indeterminate = type === 'checkbox' && Boolean(indeterminate);\n }\n }, [indeterminate, type]);\n // Legacy path only: a `checked` with no `onChange` behind it still lands on\n // the element, but through the DOM, so the input stays uncontrolled and both\n // clicking it and the native radio-group behaviour keep working.\n useEffect(() => {\n if (isControlled || checked === undefined || !innerRef.current) {\n return;\n }\n innerRef.current.checked = checked;\n }, [isControlled, checked]);\n const inputComponent = useMemo(() => (_jsx(\"input\", Object.assign({ ref: innerRef }, isControlled\n ? { checked }\n : defaultChecked !== undefined && { defaultChecked }, { onChange: handleChange, className: classNames('form-check-input', {\n 'is-invalid': invalid,\n 'is-valid': valid,\n }, inputClassName), style: style, id: id, disabled: disabled, type: type, name: name, value: value, \"aria-label\": ariaLabel }, ariaDescribedby && { 'aria-describedby': ariaDescribedby }, props))), [\n isControlled,\n checked,\n defaultChecked,\n handleChange,\n invalid,\n valid,\n inputClassName,\n style,\n id,\n disabled,\n type,\n name,\n value,\n ariaLabel,\n ariaDescribedby,\n props,\n ]);\n if (process.env.NODE_ENV !== 'production') {\n warnLabelUsage({\n component: 'DInputCheck',\n label,\n // `{...props}` is spread after `aria-label={ariaLabel}`, so a native\n // `aria-label` wins — including when it is explicitly undefined.\n hasAccessibleName: !!('aria-label' in props ? props['aria-label'] : ariaLabel)\n || !!props['aria-labelledby'],\n accessibleNameProp: 'ariaLabel',\n });\n }\n if (!hasLabelContent(label)) {\n return inputComponent;\n }\n return (_jsxs(\"div\", Object.assign({ className: classNames('form-check', className) }, dataAttributes, { children: [inputComponent, _jsx(DFormLabel, { className: \"form-check-label\", htmlFor: id, children: label }), hint && (_jsx(\"div\", { className: \"form-text\", id: `${id}Hint`, children: hint }))] })));\n}\n//# sourceMappingURL=DInputCheck.js.map"],"names":["_jsx","_jsxs"],"mappings":"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"}