@dynamic-framework/ui-react 1.14.1 → 1.15.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 (62) hide show
  1. package/dist/css/dynamic-ui-non-root.css +234 -29
  2. package/dist/css/dynamic-ui-non-root.min.css +1 -1
  3. package/dist/css/dynamic-ui.css +234 -29
  4. package/dist/css/dynamic-ui.min.css +1 -1
  5. package/dist/index.esm.js +211 -63
  6. package/dist/index.esm.js.map +1 -1
  7. package/dist/index.js +211 -64
  8. package/dist/index.js.map +1 -1
  9. package/dist/types/components/DAlert/DAlert.d.ts +6 -3
  10. package/dist/types/components/DBoxFile/DBoxFile.d.ts +2 -2
  11. package/dist/types/components/DButton/DButton.d.ts +1 -1
  12. package/dist/types/components/DChip/DChip.d.ts +5 -1
  13. package/dist/types/components/DCollapse/DCollapse.d.ts +5 -3
  14. package/dist/types/components/DDatePicker/DDatePicker.d.ts +6 -6
  15. package/dist/types/components/DDatePickerHeader/DDatePickerHeader.d.ts +5 -5
  16. package/dist/types/components/DInput/DInput.d.ts +2 -2
  17. package/dist/types/components/DInputCounter/DInputCounter.d.ts +2 -2
  18. package/dist/types/components/DInputCurrency/DInputCurrency.d.ts +1 -1
  19. package/dist/types/components/DInputCurrencyBase/DInputCurrencyBase.d.ts +1 -1
  20. package/dist/types/components/DInputMask/DInputMask.d.ts +1 -1
  21. package/dist/types/components/DInputPassword/DInputPassword.d.ts +1 -1
  22. package/dist/types/components/DInputPin/DInputPin.d.ts +3 -3
  23. package/dist/types/components/DInputSearch/DInputSearch.d.ts +2 -5
  24. package/dist/types/components/DInputSelect/index.d.ts +1 -1
  25. package/dist/types/components/DModal/components/DModalHeader.d.ts +2 -2
  26. package/dist/types/components/DMonthPicker/DMonthPicker.d.ts +5 -4
  27. package/dist/types/components/DOffcanvas/components/DOffcanvasHeader.d.ts +2 -2
  28. package/dist/types/components/DPopover/DPopover.d.ts +5 -0
  29. package/dist/types/components/DSelect/DSelect.d.ts +41 -0
  30. package/dist/types/components/DSelect/components/DSelectClearIndicator.d.ts +2 -0
  31. package/dist/types/components/DSelect/components/DSelectDropdownIndicator.d.ts +2 -0
  32. package/dist/types/components/DSelect/components/DSelectLoadingIndicator.d.ts +2 -0
  33. package/dist/types/components/DSelect/components/DSelectMultiValueRemove.d.ts +2 -0
  34. package/dist/types/components/DSelect/components/DSelectOptionCheck.d.ts +2 -0
  35. package/dist/types/components/DSelect/components/DSelectOptionEmoji.d.ts +7 -0
  36. package/dist/types/components/DSelect/components/DSelectOptionIcon.d.ts +7 -0
  37. package/dist/types/components/DSelect/components/DSelectSingleValueEmoji.d.ts +2 -0
  38. package/dist/types/components/DSelect/components/DSelectSingleValueEmojiText.d.ts +2 -0
  39. package/dist/types/components/DSelect/components/DSelectSingleValueIconText.d.ts +2 -0
  40. package/dist/types/components/DSelect/index.d.ts +4 -0
  41. package/dist/types/components/DStepper/DStepper.d.ts +5 -2
  42. package/dist/types/components/DStepperDesktop/DStepperDesktop.d.ts +5 -2
  43. package/dist/types/components/DTabs/index.d.ts +1 -1
  44. package/dist/types/components/DToastContainer/useToast.d.ts +3 -1
  45. package/dist/types/components/config.d.ts +0 -2
  46. package/dist/types/components/index.d.ts +2 -3
  47. package/dist/types/components/interface.d.ts +8 -0
  48. package/dist/types/contexts/DContext.d.ts +37 -12
  49. package/package.json +5 -3
  50. package/src/style/abstracts/variables/_buttons.scss +1 -1
  51. package/src/style/abstracts/variables/_forms.scss +2 -2
  52. package/src/style/components/_+import.scss +1 -0
  53. package/src/style/components/_d-badge.scss +1 -1
  54. package/src/style/components/_d-button.scss +6 -1
  55. package/src/style/components/_d-icon.scss +2 -4
  56. package/src/style/components/_d-input.scss +3 -13
  57. package/src/style/components/_d-select.scss +252 -0
  58. package/src/style/components/_d-tabs.scss +0 -5
  59. package/dist/types/components/DCardAccount/DCardAccount.d.ts +0 -13
  60. package/dist/types/components/DCardAccount/index.d.ts +0 -2
  61. package/dist/types/components/DCollapseIconText/DCollapseIconText.d.ts +0 -22
  62. package/dist/types/components/DCollapseIconText/index.d.ts +0 -2
package/dist/index.esm.js CHANGED
@@ -8,6 +8,7 @@ import currency from 'currency.js';
8
8
  import DatePicker from 'react-datepicker';
9
9
  import { parseISO, format, getMonth, getYear } from 'date-fns';
10
10
  import { InputMask } from '@react-input/mask';
11
+ import Select, { components } from 'react-select';
11
12
  import ResponsivePagination from 'react-responsive-pagination';
12
13
  import { useFloating, offset, flip, shift, autoUpdate, useClick, useDismiss, useRole, useInteractions, useId, FloatingFocusManager, arrow, useHover, useFocus, FloatingPortal, FloatingArrow } from '@floating-ui/react';
13
14
  import ContentLoader from 'react-content-loader';
@@ -47,16 +48,6 @@ function DPermissionGroup({ title, description, permissionState, permissionList,
47
48
  }
48
49
 
49
50
  const PREFIX_BS = 'bs-';
50
- const ALERT_TYPE_ICON = {
51
- warning: 'exclamation-circle',
52
- danger: 'exclamation-triangle',
53
- success: 'check-circle',
54
- info: 'info-circle',
55
- dark: 'info-circle',
56
- light: 'info-circle',
57
- primary: 'info-circle',
58
- secondary: 'info-circle',
59
- };
60
51
 
61
52
  function DIconBase({ icon, theme, style, className, size = '1.5rem', loading = false, loadingDuration = 1.8, hasCircle = false, circleSize = `calc(var(--${PREFIX_BS}icon-component-size) * 1)`, color, backgroundColor, materialStyle = false, familyClass = 'bi', familyPrefix = 'bi-', }) {
62
53
  const colorStyle = useMemo(() => {
@@ -113,14 +104,45 @@ const defaultState = {
113
104
  familyPrefix: 'bi-',
114
105
  materialStyle: false,
115
106
  },
107
+ iconMap: {
108
+ x: 'x',
109
+ xLg: 'x-lg',
110
+ chevronUp: 'chevron-up',
111
+ chevronDown: 'chevron-down',
112
+ chevronLeft: 'chevron-left',
113
+ chevronRight: 'chevron-right',
114
+ upload: 'cloud-upload',
115
+ calendar: 'calendar',
116
+ check: 'check',
117
+ alert: {
118
+ warning: 'exclamation-circle',
119
+ danger: 'exclamation-triangle',
120
+ success: 'check-circle',
121
+ info: 'info-circle',
122
+ dark: 'info-circle',
123
+ light: 'info-circle',
124
+ primary: 'info-circle',
125
+ secondary: 'info-circle',
126
+ },
127
+ input: {
128
+ invalid: 'exclamation-circle',
129
+ valid: 'check',
130
+ search: 'search',
131
+ show: 'eye',
132
+ hide: 'eye-slash',
133
+ increase: 'plus-square',
134
+ decrease: 'dash-square',
135
+ },
136
+ },
116
137
  setContext: () => { },
117
138
  };
118
139
  const DContext = createContext(defaultState);
119
- function DContextProvider({ language = defaultState.language, currency = defaultState.currency, icon = defaultState.icon, children, }) {
140
+ function DContextProvider({ language = defaultState.language, currency = defaultState.currency, icon = defaultState.icon, iconMap = defaultState.iconMap, children, }) {
120
141
  const [internalContext, setInternalContext,] = useState({
121
142
  language,
122
143
  currency,
123
144
  icon,
145
+ iconMap,
124
146
  });
125
147
  const value = useMemo(() => (Object.assign(Object.assign({}, internalContext), { setContext: (newValue) => setInternalContext(newValue) })), [internalContext]);
126
148
  return (jsx(DContext.Provider, { value: value, children: children }));
@@ -293,26 +315,30 @@ function DSummaryCard({ title, description, icon, iconSize, iconTheme, Summary,
293
315
  return (jsxs("div", { children: [jsx("h6", { className: "fw-bold fs-6", children: title }), jsx("p", { className: "fs-8", children: description }), jsxs("div", { className: "bg-white rounded p-4 d-flex gap-3 shadow-sm text-gray-700 fs-8", children: [jsx(DIcon, { icon: icon, theme: iconTheme, size: iconSize }), Summary] })] }));
294
316
  }
295
317
 
296
- function DAlert({ type = 'success', icon, closeIcon = 'x-lg', iconFamilyClass, iconFamilyPrefix, materialStyle = false, showIcon = true, soft = false, showClose, onClose, children, id, className, style, }) {
318
+ function DAlert({ type = 'success', icon: iconProp, iconFamilyClass, iconFamilyPrefix, iconMaterialStyle = false, iconClose: iconCloseProp, iconCloseFamilyClass, iconCloseFamilyPrefix, iconCloseMaterialStyle = false, showIcon = true, soft = false, showClose, onClose, children, id, className, style, }) {
319
+ const { iconMap: { alert, xLg, }, } = useDContext();
320
+ const icon = useMemo(() => iconProp || alert[type], [alert, iconProp, type]);
321
+ const iconClose = useMemo(() => (iconCloseProp || xLg), [iconCloseProp, xLg]);
297
322
  const generateClasses = useMemo(() => (Object.assign({ alert: true, [`alert-${type}`]: true, 'fade show': !!showClose, 'alert-soft': soft }, className && { [className]: true })), [type, showClose, soft, className]);
298
- const getIcon = useMemo(() => icon || ALERT_TYPE_ICON[type] || '', [icon, type]);
299
323
  const generateStyleVariables = useMemo(() => (Object.assign(Object.assign({}, style), { [`--${PREFIX_BS}alert-component-separator-opacity`]: '0.3' })), [style]);
300
- return (jsxs("div", { className: classNames(generateClasses), style: generateStyleVariables, role: "alert", id: id, children: [(showIcon || icon) && (jsx(DIcon, { className: "alert-icon", icon: getIcon })), jsx("div", { className: "alert-text", children: children }), showClose && (jsx("div", { className: "alert-separator" })), showClose && (jsx("button", { type: "button", className: "btn-close", "aria-label": "Close", onClick: onClose, children: jsx(DIcon, { className: "alert-close-icon", icon: closeIcon, familyClass: iconFamilyClass, familyPrefix: iconFamilyPrefix, materialStyle: materialStyle }) }))] }));
324
+ return (jsxs("div", { className: classNames(generateClasses), style: generateStyleVariables, role: "alert", id: id, children: [(showIcon || icon) && (jsx(DIcon, { className: "alert-icon", icon: icon, familyClass: iconFamilyClass, familyPrefix: iconFamilyPrefix, materialStyle: iconMaterialStyle })), jsx("div", { className: "alert-text", children: children }), showClose && (jsx("div", { className: "alert-separator" })), showClose && (jsx("button", { type: "button", className: "btn-close", "aria-label": "Close", onClick: onClose, children: jsx(DIcon, { className: "alert-close-icon", icon: iconClose, familyClass: iconCloseFamilyClass, familyPrefix: iconCloseFamilyPrefix, materialStyle: iconCloseMaterialStyle }) }))] }));
301
325
  }
302
326
 
303
327
  function DBoxFile(_a) {
304
- var { icon = 'cloud-upload', iconFamilyClass, iconFamilyPrefix, disabled = false, children, className, style } = _a, dropzoneOptions = __rest(_a, ["icon", "iconFamilyClass", "iconFamilyPrefix", "disabled", "children", "className", "style"]);
328
+ var { icon: iconProp, iconFamilyClass, iconFamilyPrefix, iconMaterialStyle, disabled = false, children, className, style } = _a, dropzoneOptions = __rest(_a, ["icon", "iconFamilyClass", "iconFamilyPrefix", "iconMaterialStyle", "disabled", "children", "className", "style"]);
305
329
  const { acceptedFiles, getRootProps, getInputProps, } = useDropzone(Object.assign({ disabled }, dropzoneOptions));
330
+ const { iconMap: { upload, }, } = useDContext();
331
+ const icon = useMemo(() => iconProp || upload, [iconProp, upload]);
306
332
  return (jsxs("section", { className: classNames('d-box-file', {
307
333
  'd-box-file-selected': !!acceptedFiles.length,
308
334
  }, className), style: style, children: [jsxs("div", Object.assign({}, getRootProps({
309
335
  className: classNames('d-box-file-dropzone', {
310
336
  disabled,
311
337
  }),
312
- }), { children: [jsx("input", Object.assign({}, getInputProps())), jsx(DIcon, { icon: icon, familyClass: iconFamilyClass, familyPrefix: iconFamilyPrefix }), jsx("div", { className: "d-box-content", children: children })] })), !!acceptedFiles.length && (jsx("aside", { className: "d-box-files", children: acceptedFiles.map((file) => (jsx("div", { className: "d-box-files-text", children: `${file.name} - ${file.size} bytes` }, file.name))) }))] }));
338
+ }), { children: [jsx("input", Object.assign({}, getInputProps())), jsx(DIcon, { icon: icon, familyClass: iconFamilyClass, familyPrefix: iconFamilyPrefix, materialStyle: iconMaterialStyle }), jsx("div", { className: "d-box-content", children: children })] })), !!acceptedFiles.length && (jsx("aside", { className: "d-box-files", children: acceptedFiles.map((file) => (jsx("div", { className: "d-box-files-text", children: `${file.name} - ${file.size} bytes` }, file.name))) }))] }));
313
339
  }
314
340
 
315
- function DButton({ theme = 'primary', size, variant, state, text = '', ariaLabel, iconStart, iconStartFamilyClass, iconStartFamilyPrefix, iconEnd, iconEndFamilyClass, iconEndFamilyPrefix, value, type = 'button', pill = false, loading = false, loadingAriaLabel, disabled = false, stopPropagationEnabled = true, className, form, onClick, }) {
341
+ function DButton({ theme = 'primary', size, variant, state, text = '', ariaLabel, iconStart, iconStartFamilyClass, iconStartFamilyPrefix, iconStartMaterialStyle, iconEnd, iconEndFamilyClass, iconEndFamilyPrefix, iconEndMaterialStyle, value, type = 'button', pill = false, loading = false, loadingAriaLabel, disabled = false, stopPropagationEnabled = true, className, form, onClick, }) {
316
342
  const generateClasses = useMemo(() => {
317
343
  const variantClass = variant
318
344
  ? `btn-${variant}-${theme}`
@@ -339,7 +365,7 @@ function DButton({ theme = 'primary', size, variant, state, text = '', ariaLabel
339
365
  const newAriaLabel = useMemo(() => (loading
340
366
  ? (loadingAriaLabel || ariaLabel || text)
341
367
  : (ariaLabel || text)), [loading, loadingAriaLabel, ariaLabel, text]);
342
- return (jsxs("button", Object.assign({ className: classNames(generateClasses, className), style: generateStyleVariables, type: type, disabled: isDisabled, onClick: clickHandler, "aria-label": newAriaLabel, form: form }, value && { value }, { children: [iconStart && (jsx(DIcon, { icon: iconStart, familyClass: iconStartFamilyClass, familyPrefix: iconStartFamilyPrefix })), (text && !loading) && (jsx("span", { children: text })), loading && (jsx("span", { className: "spinner-border spinner-border-sm", role: "status", "aria-hidden": "true", children: jsx("span", { className: "visually-hidden", children: "Loading..." }) })), iconEnd && (jsx(DIcon, { icon: iconEnd, familyClass: iconEndFamilyClass, familyPrefix: iconEndFamilyPrefix }))] })));
368
+ return (jsxs("button", Object.assign({ className: classNames(generateClasses, className), style: generateStyleVariables, type: type, disabled: isDisabled, onClick: clickHandler, "aria-label": newAriaLabel, form: form }, value && { value }, { children: [iconStart && (jsx(DIcon, { icon: iconStart, familyClass: iconStartFamilyClass, familyPrefix: iconStartFamilyPrefix, materialStyle: iconStartMaterialStyle })), (text && !loading) && (jsx("span", { children: text })), loading && (jsx("span", { className: "spinner-border spinner-border-sm", role: "status", "aria-hidden": "true", children: jsx("span", { className: "visually-hidden", children: "Loading..." }) })), iconEnd && (jsx(DIcon, { icon: iconEnd, familyClass: iconEndFamilyClass, familyPrefix: iconEndFamilyPrefix, materialStyle: iconEndMaterialStyle }))] })));
343
369
  }
344
370
 
345
371
  function DCardHeader({ className, style, children, }) {
@@ -363,10 +389,6 @@ var DCard$1 = Object.assign(DCard, {
363
389
  Footer: DCardFooter,
364
390
  });
365
391
 
366
- function DCardAccount({ className, style, icon, theme, name, number, balance, balanceText, onClick, actionText, }) {
367
- return (jsx(DCard$1, { className: classNames('d-card-account', className), style: style, children: jsxs(DCard$1.Body, { children: [jsxs("div", { className: "d-flex gap-3 align-items-center", children: [jsx(DIcon, { icon: icon, hasCircle: true, theme: theme, size: "1.5rem" }), jsxs("div", { className: "d-block flex-grow-1", children: [jsx("p", { className: "text-gray-700", children: name }), jsx("small", { className: "text-gray-500", children: number })] })] }), jsxs("div", { className: "d-block", children: [jsx("p", { className: "fw-bold fs-6 text-body", children: balance }), jsx("small", { className: "text-gray-700", children: balanceText })] }), jsx("div", { className: "d-flex justify-content-end", children: jsx(DButton, { text: actionText, variant: "link", size: "sm", theme: "secondary", iconEnd: "chevron-right", onClick: onClick }) })] }) }));
368
- }
369
-
370
392
  function DCarouselSlide(_a) {
371
393
  var { className } = _a, props = __rest(_a, ["className"]);
372
394
  return (jsx(SplideSlide, Object.assign({ className: classNames('d-carousel-slide', className) }, props)));
@@ -389,17 +411,22 @@ var DCarousel$1 = Object.assign(DCarousel, {
389
411
  Slide: DCarouselSlide,
390
412
  });
391
413
 
392
- function DChip({ theme = 'primary', text, icon, iconFamilyClass, iconFamilyPrefix, showClose = false, closeAriaLabel = 'close', className, style, onClose, }) {
414
+ function DChip({ theme = 'primary', text, icon, iconFamilyClass, iconFamilyPrefix, iconMaterialStyle, iconClose: iconCloseProp, iconCloseFamilyClass, iconCloseFamilyPrefix, iconCloseMaterialStyle, showClose = false, closeAriaLabel = 'close', className, style, onClose, }) {
393
415
  const generateClasses = useMemo(() => ({
394
416
  'd-chip': true,
395
417
  [`d-chip-${theme}`]: !!theme,
396
418
  }), [theme]);
397
- return (jsxs("span", { className: classNames(generateClasses, className), style: style, children: [icon && (jsx("div", { className: "d-chip-icon-container", children: jsx(DIcon, { icon: icon, familyClass: iconFamilyClass, familyPrefix: iconFamilyPrefix }) })), jsx("span", { children: text }), showClose && (jsx("button", { type: "button", className: "d-chip-icon-container", onClick: onClose, "aria-label": closeAriaLabel, children: jsx(DIcon, { icon: "x-lg" }) }))] }));
419
+ const { iconMap: { xLg, }, } = useDContext();
420
+ const iconClose = useMemo(() => iconCloseProp || xLg, [iconCloseProp, xLg]);
421
+ return (jsxs("span", { className: classNames(generateClasses, className), style: style, children: [icon && (jsx("div", { className: "d-chip-icon-container", children: jsx(DIcon, { icon: icon, familyClass: iconFamilyClass, familyPrefix: iconFamilyPrefix, materialStyle: iconMaterialStyle }) })), jsx("span", { children: text }), showClose && (jsx("button", { type: "button", className: "d-chip-icon-container", onClick: onClose, "aria-label": closeAriaLabel, children: jsx(DIcon, { icon: iconClose, familyClass: iconCloseFamilyClass, familyPrefix: iconCloseFamilyPrefix, materialStyle: iconCloseMaterialStyle }) }))] }));
398
422
  }
399
423
 
400
- function DCollapse({ id, className, style, Component, hasSeparator = false, defaultCollapsed = false, onChange, children, }) {
424
+ function DCollapse({ id, className, style, Component, hasSeparator = false, defaultCollapsed = false, onChange, children, iconOpen: iconOpenProp, iconClose: iconCloseProp, iconFamilyClass, iconFamilyPrefix, iconMaterialStyle = false, }) {
401
425
  const [toggle, setToggle] = useState(defaultCollapsed);
402
426
  const onChangeCollapse = () => setToggle((prev) => !prev);
427
+ const { iconMap: { chevronDown, chevronUp, }, } = useDContext();
428
+ const iconOpen = useMemo(() => iconOpenProp || chevronUp, [chevronUp, iconOpenProp]);
429
+ const iconClose = useMemo(() => iconCloseProp || chevronDown, [chevronDown, iconCloseProp]);
403
430
  useEffect(() => {
404
431
  if (onChange) {
405
432
  onChange(toggle);
@@ -411,15 +438,11 @@ function DCollapse({ id, className, style, Component, hasSeparator = false, defa
411
438
  const generateStyles = useMemo(() => ({
412
439
  [`--${PREFIX_BS}collapse-separator-display`]: hasSeparator ? 'block' : 'none',
413
440
  }), [hasSeparator]);
414
- return (jsxs("div", { id: id, className: classNames('collapse-container', className), style: style, children: [jsxs("button", { className: "collapse-button", type: "button", onClick: onChangeCollapse, children: [jsx("div", { className: "flex-grow-1", children: Component }), jsx(DIcon, { color: `var(--${PREFIX_BS}gray)`, size: `var(--${PREFIX_BS}ref-fs-small)`, icon: toggle ? 'chevron-up' : 'chevron-down' })] }), toggle && (jsx("div", { className: classNames({
441
+ return (jsxs("div", { id: id, className: classNames('collapse-container', className), style: style, children: [jsxs("button", { className: "collapse-button", type: "button", onClick: onChangeCollapse, children: [jsx("div", { className: "flex-grow-1", children: Component }), jsx(DIcon, { color: `var(--${PREFIX_BS}gray)`, size: `var(--${PREFIX_BS}ref-fs-small)`, icon: toggle ? iconOpen : iconClose, familyClass: iconFamilyClass, familyPrefix: iconFamilyPrefix, materialStyle: iconMaterialStyle })] }), toggle && (jsx("div", { className: classNames({
415
442
  'collapse-body': true,
416
443
  }), style: generateStyles, children: children }))] }));
417
444
  }
418
445
 
419
- function DCollapseIconText({ children, icon, iconSize = '1.5rem', iconTheme = 'primary', title, iconFamilyClass, iconFamilyPrefix, className, style, }) {
420
- return (jsx(DCollapse, { defaultCollapsed: true, className: classNames('d-collapse-icon-text', className), style: style, Component: (jsxs("div", { className: "d-collapse-icon-text-header", children: [jsx(DIcon, { icon: icon, size: iconSize, theme: iconTheme, familyClass: iconFamilyClass, familyPrefix: iconFamilyPrefix, hasCircle: true }), jsx("span", { className: "d-collapse-icon-text-title", children: title })] })), children: children }));
421
- }
422
-
423
446
  function formatCurrency(amount, options) {
424
447
  return currency(amount, options).format();
425
448
  }
@@ -460,7 +483,7 @@ function useProvidedRefOrCreate(providedRef) {
460
483
  }
461
484
 
462
485
  function DInput(_a, ref) {
463
- var { id, style, className, label = '', labelIcon, labelIconFamilyClass, labelIconFamilyPrefix, disabled = false, readOnly = false, loading = false, iconFamilyClass, iconFamilyPrefix, iconStart, iconStartDisabled, iconStartFamilyClass, iconStartFamilyPrefix, iconStartAriaLabel, iconStartTabIndex, iconEnd, iconEndDisabled, iconEndFamilyClass, iconEndFamilyPrefix, iconEndAriaLabel, iconEndTabIndex, hint, invalid = false, valid = false, floatingLabel = false, inputStart, inputEnd, value, placeholder = '', onChange, onIconStartClick, onIconEndClick } = _a, inputProps = __rest(_a, ["id", "style", "className", "label", "labelIcon", "labelIconFamilyClass", "labelIconFamilyPrefix", "disabled", "readOnly", "loading", "iconFamilyClass", "iconFamilyPrefix", "iconStart", "iconStartDisabled", "iconStartFamilyClass", "iconStartFamilyPrefix", "iconStartAriaLabel", "iconStartTabIndex", "iconEnd", "iconEndDisabled", "iconEndFamilyClass", "iconEndFamilyPrefix", "iconEndAriaLabel", "iconEndTabIndex", "hint", "invalid", "valid", "floatingLabel", "inputStart", "inputEnd", "value", "placeholder", "onChange", "onIconStartClick", "onIconEndClick"]);
486
+ var { id, style, className, label = '', labelIcon, labelIconFamilyClass, labelIconFamilyPrefix, labelIconMaterialStyle, disabled = false, loading = false, iconFamilyClass, iconFamilyPrefix, iconMaterialStyle, iconStart, iconStartDisabled, iconStartFamilyClass, iconStartFamilyPrefix, iconStartAriaLabel, iconStartTabIndex, iconStartMaterialStyle, iconEnd, iconEndDisabled, iconEndFamilyClass, iconEndFamilyPrefix, iconEndAriaLabel, iconEndTabIndex, iconEndMaterialStyle, invalidIcon: invalidIconProp, validIcon: validIconProp, hint, invalid = false, valid = false, floatingLabel = false, inputStart, inputEnd, value, placeholder = '', onChange, onIconStartClick, onIconEndClick } = _a, inputProps = __rest(_a, ["id", "style", "className", "label", "labelIcon", "labelIconFamilyClass", "labelIconFamilyPrefix", "labelIconMaterialStyle", "disabled", "loading", "iconFamilyClass", "iconFamilyPrefix", "iconMaterialStyle", "iconStart", "iconStartDisabled", "iconStartFamilyClass", "iconStartFamilyPrefix", "iconStartAriaLabel", "iconStartTabIndex", "iconStartMaterialStyle", "iconEnd", "iconEndDisabled", "iconEndFamilyClass", "iconEndFamilyPrefix", "iconEndAriaLabel", "iconEndTabIndex", "iconEndMaterialStyle", "invalidIcon", "validIcon", "hint", "invalid", "valid", "floatingLabel", "inputStart", "inputEnd", "value", "placeholder", "onChange", "onIconStartClick", "onIconEndClick"]);
464
487
  const inputRef = useProvidedRefOrCreate(ref);
465
488
  const handleOnChange = useCallback((event) => {
466
489
  onChange === null || onChange === void 0 ? void 0 : onChange(event.currentTarget.value);
@@ -481,7 +504,7 @@ function DInput(_a, ref) {
481
504
  const inputComponent = useMemo(() => (jsx("input", Object.assign({ ref: inputRef, id: id, className: classNames('form-control', {
482
505
  'is-invalid': invalid,
483
506
  'is-valid': valid,
484
- }), disabled: disabled || loading, readOnly: readOnly, value: value, onChange: handleOnChange }, (floatingLabel || placeholder) && { placeholder: floatingLabel ? '' : placeholder }, ariaDescribedby && { 'aria-describedby': ariaDescribedby }, inputProps))), [
507
+ }), disabled: disabled || loading, value: value, onChange: handleOnChange }, (floatingLabel || placeholder) && { placeholder: floatingLabel ? '' : placeholder }, ariaDescribedby && { 'aria-describedby': ariaDescribedby }, inputProps))), [
485
508
  ariaDescribedby,
486
509
  disabled,
487
510
  handleOnChange,
@@ -492,16 +515,16 @@ function DInput(_a, ref) {
492
515
  loading,
493
516
  placeholder,
494
517
  floatingLabel,
495
- readOnly,
496
518
  valid,
497
519
  value,
498
520
  ]);
499
- const labelComponent = useMemo(() => (jsxs("label", { htmlFor: id, children: [label, labelIcon && (jsx(DIcon, { className: "d-input-icon", icon: labelIcon, size: `var(--${PREFIX_BS}input-label-font-size)`, familyClass: labelIconFamilyClass, familyPrefix: labelIconFamilyPrefix }))] })), [
521
+ const labelComponent = useMemo(() => (jsxs("label", { htmlFor: id, children: [label, labelIcon && (jsx(DIcon, { className: "d-input-icon", icon: labelIcon, size: `var(--${PREFIX_BS}input-label-font-size)`, familyClass: labelIconFamilyClass, familyPrefix: labelIconFamilyPrefix, materialStyle: labelIconMaterialStyle }))] })), [
500
522
  id,
501
523
  label,
502
524
  labelIcon,
503
525
  labelIconFamilyClass,
504
526
  labelIconFamilyPrefix,
527
+ labelIconMaterialStyle,
505
528
  ]);
506
529
  const dynamicComponent = useMemo(() => {
507
530
  if (floatingLabel) {
@@ -509,11 +532,14 @@ function DInput(_a, ref) {
509
532
  }
510
533
  return inputComponent;
511
534
  }, [floatingLabel, inputComponent, labelComponent]);
535
+ const { iconMap: { input } } = useDContext();
536
+ const invalidIcon = useMemo(() => invalidIconProp || input.invalid, [input.invalid, invalidIconProp]);
537
+ const validIcon = useMemo(() => validIconProp || input.valid, [input.valid, validIconProp]);
512
538
  return (jsxs("div", { className: classNames(Object.assign({ 'd-input': true }, className && { [className]: true })), style: style, children: [label && !floatingLabel && (labelComponent), jsxs("div", { className: "d-input-control", children: [jsxs("div", { className: classNames({
513
539
  'input-group': true,
514
540
  'has-validation': invalid,
515
541
  disabled: disabled || loading,
516
- }), children: [!!inputStart && (jsx("div", { className: "input-group-text", children: inputStart })), iconStart && (jsx("button", { type: "button", className: "input-group-text", id: `${id}Start`, onClick: handleOnIconStartClick, disabled: disabled || loading || iconStartDisabled, "aria-label": iconStartAriaLabel, tabIndex: iconStartTabIndex, children: jsx(DIcon, { className: "d-input-icon", icon: iconStart, familyClass: iconStartFamilyClass, familyPrefix: iconStartFamilyPrefix }) })), dynamicComponent, ((invalid || valid) && !iconEnd && !loading) && (jsx("span", { className: "input-group-text", id: `${id}State`, children: jsx(DIcon, { className: "d-input-validation-icon", icon: invalid ? 'exclamation-circle' : 'check', familyClass: iconFamilyClass, familyPrefix: iconFamilyPrefix }) })), (iconEnd && !loading) && (jsx("button", { type: "button", className: "input-group-text", id: `${id}End`, onClick: handleOnIconEndClick, disabled: disabled || loading || iconEndDisabled, "aria-label": iconEndAriaLabel, tabIndex: iconEndTabIndex, children: jsx(DIcon, { className: "d-input-icon", icon: iconEnd, familyClass: iconEndFamilyClass, familyPrefix: iconEndFamilyPrefix }) })), loading && (jsx("div", { className: "input-group-text d-input-icon", children: jsx("span", { className: "spinner-border spinner-border-sm", role: "status", "aria-hidden": "true", children: jsx("span", { className: "visually-hidden", children: "Loading..." }) }) })), !!inputEnd && (jsx("div", { className: "input-group-text", children: inputEnd }))] }), hint && (jsx("div", { className: "form-text", id: `${id}Hint`, children: hint }))] })] }));
542
+ }), children: [!!inputStart && (jsx("div", { className: "input-group-text", children: inputStart })), iconStart && (jsx("button", { type: "button", className: "input-group-text", id: `${id}Start`, onClick: handleOnIconStartClick, disabled: disabled || loading || iconStartDisabled, "aria-label": iconStartAriaLabel, tabIndex: iconStartTabIndex, children: jsx(DIcon, { className: "d-input-icon", icon: iconStart, familyClass: iconStartFamilyClass, familyPrefix: iconStartFamilyPrefix, materialStyle: iconStartMaterialStyle }) })), dynamicComponent, ((invalid || valid) && !iconEnd && !loading) && (jsx("span", { className: "input-group-text", id: `${id}State`, children: jsx(DIcon, { className: "d-input-validation-icon", icon: invalid ? invalidIcon : validIcon, familyClass: iconFamilyClass, familyPrefix: iconFamilyPrefix, materialStyle: iconMaterialStyle }) })), (iconEnd && !loading) && (jsx("button", { type: "button", className: "input-group-text", id: `${id}End`, onClick: handleOnIconEndClick, disabled: disabled || loading || iconEndDisabled, "aria-label": iconEndAriaLabel, tabIndex: iconEndTabIndex, children: jsx(DIcon, { className: "d-input-icon", icon: iconEnd, familyClass: iconEndFamilyClass, familyPrefix: iconEndFamilyPrefix, materialStyle: iconEndMaterialStyle }) })), loading && (jsx("div", { className: "input-group-text d-input-icon", children: jsx("span", { className: "spinner-border spinner-border-sm", role: "status", "aria-hidden": "true", children: jsx("span", { className: "visually-hidden", children: "Loading..." }) }) })), !!inputEnd && (jsx("div", { className: "input-group-text", children: inputEnd }))] }), hint && (jsx("div", { className: "form-text", id: `${id}Hint`, children: hint }))] })] }));
517
543
  }
518
544
  const ForwardedDInput = forwardRef(DInput);
519
545
  ForwardedDInput.displayName = 'DInput';
@@ -535,37 +561,44 @@ ForwardedDDatePickerInput.displayName = 'DDatePickerInput';
535
561
  var DDatePickerInput$1 = ForwardedDDatePickerInput;
536
562
 
537
563
  function DMonthPicker(_a) {
538
- var { onChangeDate, date, locale, className, calendarClassName, headerPrevYearAriaLabel = 'decrease year', headerNextYearAriaLabel = 'increase year' } = _a, props = __rest(_a, ["onChangeDate", "date", "locale", "className", "calendarClassName", "headerPrevYearAriaLabel", "headerNextYearAriaLabel"]);
564
+ var { onChange, date, locale, className, calendarClassName, headerPrevYearAriaLabel = 'decrease year', headerNextYearAriaLabel = 'increase year', iconFamilyClass, iconFamilyPrefix, iconPrevMonth: iconPrevMonthProp, iconNextMonth: iconNextMonthProp } = _a, props = __rest(_a, ["onChange", "date", "locale", "className", "calendarClassName", "headerPrevYearAriaLabel", "headerNextYearAriaLabel", "iconFamilyClass", "iconFamilyPrefix", "iconPrevMonth", "iconNextMonth"]);
539
565
  const selected = useMemo(() => parseISO(date), [date]);
566
+ const { iconMap: { chevronLeft, chevronRight, }, } = useDContext();
567
+ const iconPrevMonth = useMemo(() => iconPrevMonthProp || chevronLeft, [chevronLeft, iconPrevMonthProp]);
568
+ const iconNextMonth = useMemo(() => iconNextMonthProp || chevronRight, [chevronRight, iconNextMonthProp]);
540
569
  const dateFormatted = useMemo(() => (format(new Date(date), 'MMMM yyyy', { locale })), [date, locale]);
541
- return (jsx(DatePicker, Object.assign({ showMonthYearPicker: true, selected: selected, className: className, calendarClassName: classNames('d-month-picker', calendarClassName), onChange: onChangeDate }, locale && { locale }, { customInput: (jsx("p", { className: "fw-bold text-capitalize", children: dateFormatted })), renderCustomHeader: ({ monthDate, decreaseYear, increaseYear, prevYearButtonDisabled, nextYearButtonDisabled, }) => (jsxs("div", { className: "d-flex align-items-center justify-content-between gap-4 fs-6 bg-dark", children: [jsx(DButton, { iconStart: "chevron-left", size: "sm", variant: "link", theme: "light", onClick: decreaseYear, disabled: prevYearButtonDisabled, ariaLabel: headerPrevYearAriaLabel }), jsx("p", { className: "fs-6 fw-bold", children: monthDate.getFullYear() }), jsx(DButton, { iconStart: "chevron-right", size: "sm", variant: "link", theme: "light", onClick: increaseYear, disabled: nextYearButtonDisabled, ariaLabel: headerNextYearAriaLabel })] })) }, props)));
570
+ return (jsx(DatePicker, Object.assign({ showMonthYearPicker: true, selected: selected, className: className, calendarClassName: classNames('d-month-picker', calendarClassName), onChange: onChange }, locale && { locale }, { customInput: (jsx("p", { className: "fw-bold text-capitalize", children: dateFormatted })), renderCustomHeader: ({ monthDate, decreaseYear, increaseYear, prevYearButtonDisabled, nextYearButtonDisabled, }) => (jsxs("div", { className: "d-flex align-items-center justify-content-between gap-4 fs-6 bg-dark", children: [jsx(DButton, { iconStart: iconPrevMonth, size: "sm", variant: "link", theme: "light", onClick: decreaseYear, disabled: prevYearButtonDisabled, ariaLabel: headerPrevYearAriaLabel, iconStartFamilyClass: iconFamilyClass, iconStartFamilyPrefix: iconFamilyPrefix }), jsx("p", { className: "fs-6 fw-bold", children: monthDate.getFullYear() }), jsx(DButton, { iconStart: iconNextMonth, size: "sm", variant: "link", theme: "light", onClick: increaseYear, disabled: nextYearButtonDisabled, ariaLabel: headerNextYearAriaLabel, iconEndFamilyClass: iconFamilyPrefix, iconEndFamilyPrefix: iconFamilyPrefix })] })) }, props)));
542
571
  }
543
572
 
544
- function DDatePickerHeader({ monthDate, changeMonth, changeYear, decreaseMonth, increaseMonth, prevMonthButtonDisabled, nextMonthButtonDisabled, withMonthSelector, prevMonthIcon, nextMonthIcon, prevMonthAriaLabel = 'decrease month', nextMonthAriaLabel = 'increase month', iconSize, buttonVariant, buttonTheme, locale, style, className, }) {
573
+ function DDatePickerHeader({ monthDate, changeMonth, changeYear, decreaseMonth, increaseMonth, prevMonthButtonDisabled, nextMonthButtonDisabled, withMonthSelector, iconPrevMonth, iconNextMonth, iconFamilyClass, iconFamilyPrefix, iconMaterialStyle, prevMonthAriaLabel = 'decrease month', nextMonthAriaLabel = 'increase month', iconSize, buttonVariant, buttonTheme, locale, style, className, }) {
545
574
  const onChangeDate = useCallback((value) => {
546
575
  if (value) {
547
576
  changeMonth(getMonth(value));
548
577
  changeYear(getYear(value));
549
578
  }
550
579
  }, [changeMonth, changeYear]);
551
- return (jsxs("div", { className: classNames('d-flex align-items-center justify-content-between d-datepicker-header', className), style: style, children: [jsx(DButton, { iconStart: prevMonthIcon, size: iconSize, variant: buttonVariant, theme: buttonTheme, onClick: decreaseMonth, disabled: prevMonthButtonDisabled, ariaLabel: prevMonthAriaLabel }), jsx(DMonthPicker, Object.assign({}, !withMonthSelector && { readOnly: true }, withMonthSelector && { className: 'cursor-pointer' }, { date: monthDate.toISOString(), onChangeDate: onChangeDate }, locale && { locale })), jsx(DButton, { iconStart: nextMonthIcon, size: iconSize, variant: buttonVariant, theme: buttonTheme, onClick: increaseMonth, disabled: nextMonthButtonDisabled, ariaLabel: nextMonthAriaLabel })] }));
580
+ return (jsxs("div", { className: classNames('d-flex align-items-center justify-content-between d-datepicker-header', className), style: style, children: [jsx(DButton, { iconStart: iconPrevMonth, iconStartFamilyClass: iconFamilyClass, iconStartFamilyPrefix: iconFamilyPrefix, iconStartMaterialStyle: iconMaterialStyle, size: iconSize, variant: buttonVariant, theme: buttonTheme, onClick: decreaseMonth, disabled: prevMonthButtonDisabled, ariaLabel: prevMonthAriaLabel }), jsx(DMonthPicker, Object.assign({}, !withMonthSelector && { readOnly: true }, withMonthSelector && { className: 'cursor-pointer' }, { date: monthDate.toISOString(), onChange: onChangeDate, iconPrevMonth: iconPrevMonth, iconNextMonth: iconNextMonth }, locale && { locale })), jsx(DButton, { iconStart: iconNextMonth, iconStartFamilyClass: iconFamilyClass, iconStartFamilyPrefix: iconFamilyPrefix, iconStartMaterialStyle: iconMaterialStyle, size: iconSize, variant: buttonVariant, theme: buttonTheme, onClick: increaseMonth, disabled: nextMonthButtonDisabled, ariaLabel: nextMonthAriaLabel })] }));
552
581
  }
553
582
 
554
583
  function DDatePicker(_a) {
555
- var { date, selectsRange = false, withMonthSelector, inputLabel, inputAriaLabel, inputActionAriaLabel = 'open calendar', inputIcon = 'calendar', inputId = 'input-calendar', timeId = 'input-time', timeLabel, headerPrevMonthIcon = 'chevron-left', headerPrevMonthAriaLabel = 'decrease month', headerNextMonthIcon = 'chevron-right', headerNextMonthAriaLabel = 'increase month', headerIconSize = 'sm', headerButtonVariant = 'link', headerButtonTheme = 'dark', locale, className, style } = _a, props = __rest(_a, ["date", "selectsRange", "withMonthSelector", "inputLabel", "inputAriaLabel", "inputActionAriaLabel", "inputIcon", "inputId", "timeId", "timeLabel", "headerPrevMonthIcon", "headerPrevMonthAriaLabel", "headerNextMonthIcon", "headerNextMonthAriaLabel", "headerIconSize", "headerButtonVariant", "headerButtonTheme", "locale", "className", "style"]);
584
+ var { date, selectsRange = false, withMonthSelector, inputLabel, inputAriaLabel, inputActionAriaLabel = 'open calendar', inputId = 'input-calendar', timeId = 'input-time', timeLabel, iconInput: iconInputProp, iconHeaderPrevMonth: iconHeaderPrevMonthProp, iconHeaderNextMonth: iconHeaderNextMonthProp, iconMaterialStyle: iconMaterialStyleProp, iconFamilyClass, iconFamilyPrefix, headerPrevMonthAriaLabel = 'decrease month', headerNextMonthAriaLabel = 'increase month', headerIconSize = 'sm', headerButtonVariant = 'link', headerButtonTheme = 'dark', locale, className, style } = _a, props = __rest(_a, ["date", "selectsRange", "withMonthSelector", "inputLabel", "inputAriaLabel", "inputActionAriaLabel", "inputId", "timeId", "timeLabel", "iconInput", "iconHeaderPrevMonth", "iconHeaderNextMonth", "iconMaterialStyle", "iconFamilyClass", "iconFamilyPrefix", "headerPrevMonthAriaLabel", "headerNextMonthAriaLabel", "headerIconSize", "headerButtonVariant", "headerButtonTheme", "locale", "className", "style"]);
585
+ const { iconMap: { calendar, chevronLeft, chevronRight, }, } = useDContext();
556
586
  const selected = useMemo(() => (date ? parseISO(date) : null), [date]);
557
- const DatePickerHeader = useCallback((headerProps) => (jsx(DDatePickerHeader, Object.assign({}, headerProps, locale && { locale }, { prevMonthIcon: headerPrevMonthIcon, nextMonthIcon: headerNextMonthIcon, prevMonthAriaLabel: headerPrevMonthAriaLabel, nextMonthAriaLabel: headerNextMonthAriaLabel, iconSize: headerIconSize, buttonVariant: headerButtonVariant, buttonTheme: headerButtonTheme, withMonthSelector: !!withMonthSelector }))), [
558
- headerButtonTheme,
559
- headerButtonVariant,
560
- headerPrevMonthIcon,
587
+ const iconInput = useMemo(() => iconInputProp || calendar, [calendar, iconInputProp]);
588
+ const iconPrevMonth = useMemo(() => iconHeaderPrevMonthProp || chevronLeft, [chevronLeft, iconHeaderPrevMonthProp]);
589
+ const iconNextMonth = useMemo(() => iconHeaderNextMonthProp || chevronRight, [chevronRight, iconHeaderNextMonthProp]);
590
+ const DatePickerHeader = useCallback((headerProps) => (jsx(DDatePickerHeader, Object.assign({}, headerProps, locale && { locale }, { iconPrevMonth: iconPrevMonth, iconNextMonth: iconNextMonth, iconMaterialStyle: iconMaterialStyleProp, prevMonthAriaLabel: headerPrevMonthAriaLabel, nextMonthAriaLabel: headerNextMonthAriaLabel, iconSize: headerIconSize, buttonVariant: headerButtonVariant, buttonTheme: headerButtonTheme, withMonthSelector: !!withMonthSelector }))), [locale,
591
+ iconPrevMonth,
592
+ iconNextMonth,
593
+ iconMaterialStyleProp,
561
594
  headerPrevMonthAriaLabel,
562
- headerIconSize,
563
- headerNextMonthIcon,
564
595
  headerNextMonthAriaLabel,
596
+ headerIconSize,
597
+ headerButtonVariant,
598
+ headerButtonTheme,
565
599
  withMonthSelector,
566
- locale,
567
600
  ]);
568
- return (jsx(DatePicker, Object.assign({ selected: selected, calendarClassName: "d-date-picker", renderCustomHeader: (headerProps) => jsx(DatePickerHeader, Object.assign({}, headerProps)), customInput: (jsx(DDatePickerInput$1, { id: inputId, "aria-label": inputAriaLabel, iconEndAriaLabel: inputActionAriaLabel, iconEnd: inputIcon, className: className, style: style })), customTimeInput: jsx(DDatePickerTime, { id: timeId, label: timeLabel }), selectsRange: selectsRange }, locale && { locale }, props)));
601
+ return (jsx(DatePicker, Object.assign({ selected: selected, calendarClassName: "d-date-picker", renderCustomHeader: (headerProps) => jsx(DatePickerHeader, Object.assign({}, headerProps)), customInput: (jsx(DDatePickerInput$1, { id: inputId, "aria-label": inputAriaLabel, iconEndAriaLabel: inputActionAriaLabel, iconMaterialStyle: iconMaterialStyleProp, iconEnd: iconInput, className: className, style: style })), customTimeInput: jsx(DDatePickerTime, { id: timeId, label: timeLabel }), selectsRange: selectsRange }, locale && { locale }, props)));
569
602
  }
570
603
 
571
604
  function DInputMask(props, ref) {
@@ -576,7 +609,7 @@ ForwardedDInputMask.displayName = 'DInputMask';
576
609
  var DInputMask$1 = ForwardedDInputMask;
577
610
 
578
611
  function DInputCounter(_a, ref) {
579
- var { minValue, maxValue, value = minValue, invalid, iconStart = 'dash-square', iconEnd = 'plus-square', iconStartAriaLabel = 'decrease action', iconEndAriaLabel = 'increase action', style, onChange } = _a, props = __rest(_a, ["minValue", "maxValue", "value", "invalid", "iconStart", "iconEnd", "iconStartAriaLabel", "iconEndAriaLabel", "style", "onChange"]);
612
+ var { minValue, maxValue, value = minValue, invalid, iconStart: iconStartProp, iconEnd: iconEndProp, iconStartAriaLabel = 'decrease action', iconEndAriaLabel = 'increase action', style, onChange } = _a, props = __rest(_a, ["minValue", "maxValue", "value", "invalid", "iconStart", "iconEnd", "iconStartAriaLabel", "iconEndAriaLabel", "style", "onChange"]);
580
613
  const inputRef = useProvidedRefOrCreate(ref);
581
614
  const [internalIsInvalid, setInternalIsInvalid] = useState(false);
582
615
  const [internalValue, setInternalValue] = useState(value);
@@ -600,6 +633,9 @@ function DInputCounter(_a, ref) {
600
633
  useEffect(() => {
601
634
  setInternalIsInvalid(!(internalValue >= minValue && internalValue <= maxValue));
602
635
  }, [internalValue, minValue, maxValue]);
636
+ const { iconMap: { input } } = useDContext();
637
+ const iconEnd = useMemo(() => iconEndProp || input.increase, [iconEndProp, input.increase]);
638
+ const iconStart = useMemo(() => iconStartProp || input.decrease, [iconStartProp, input.decrease]);
603
639
  return (jsx(DInput$1, Object.assign({ ref: inputRef, value: valueString, style: generateStyleVariables, iconStart: iconStart, iconEnd: iconEnd, invalid: internalIsInvalid || invalid, type: "number", onChange: handleOnChange, onIconStartClick: handleOnIconStartClick, onIconEndClick: handleOnIconEndClick, iconStartAriaLabel: iconStartAriaLabel, iconEndAriaLabel: iconEndAriaLabel }, internalValue === minValue && {
604
640
  iconStartDisabled: true,
605
641
  }, internalValue === maxValue && {
@@ -698,9 +734,9 @@ ForwardedDInputCurrencyBase.displayName = 'DInputCurrency';
698
734
  var DInputCurrency$1 = ForwardedDInputCurrencyBase;
699
735
 
700
736
  function DInputSearch(_a, ref) {
701
- var { onClick, type, iconEndAriaLabel = 'search' } = _a, props = __rest(_a, ["onClick", "type", "iconEndAriaLabel"]);
737
+ var { type, iconEnd: iconEndProp, iconEndAriaLabel = 'search' } = _a, props = __rest(_a, ["type", "iconEnd", "iconEndAriaLabel"]);
702
738
  const inputRef = useProvidedRefOrCreate(ref);
703
- return (jsx(DInput$1, Object.assign({ ref: inputRef, type: "text", iconEnd: "search", iconEndAriaLabel: iconEndAriaLabel, onIconEndClick: onClick }, props)));
739
+ return (jsx(DInput$1, Object.assign({ ref: inputRef, type: "text", iconEnd: "search", iconEndAriaLabel: iconEndAriaLabel }, props)));
704
740
  }
705
741
  const ForwardedDInputSearch = forwardRef(DInputSearch);
706
742
  ForwardedDInputSearch.displayName = 'DInputSearch';
@@ -714,7 +750,9 @@ function DInputPassword(_a, ref) {
714
750
  setVisible((prevVisible) => !prevVisible);
715
751
  onIconEndClick === null || onIconEndClick === void 0 ? void 0 : onIconEndClick();
716
752
  }, [onIconEndClick]);
717
- return (jsx(DInput$1, Object.assign({ ref: inputRef, iconEnd: !visible ? 'eye-slash' : 'eye', type: !visible ? 'password' : 'text', onIconEndClick: handleOnIconEndClick, iconEndAriaLabel: iconEndAriaLabel }, props)));
753
+ const { iconMap: { input } } = useDContext();
754
+ const iconEnd = useMemo(() => (!visible ? input.hide : input.show), [input.hide, input.show, visible]);
755
+ return (jsx(DInput$1, Object.assign({ ref: inputRef, iconEnd: iconEnd, type: !visible ? 'password' : 'text', onIconEndClick: handleOnIconEndClick, iconEndAriaLabel: iconEndAriaLabel }, props)));
718
756
  }
719
757
  const ForwardedDInputPassword = forwardRef(DInputPassword);
720
758
  ForwardedDInputPassword.displayName = 'DInputPassword';
@@ -741,7 +779,7 @@ function DInputCheck({ type, name, label, ariaLabel, checked = false, id, disabl
741
779
  return (jsxs("div", { className: "form-check", children: [jsx("input", { ref: innerRef, onChange: handleChange, className: classNames('form-check-input', className), style: style, id: id, disabled: disabled, type: type, name: name, value: value }), jsx("label", { className: "form-check-label", htmlFor: id, children: label })] }));
742
780
  }
743
781
 
744
- function DInputPin({ id, label = '', labelIcon, labelIconFamilyClass, labelIconFamilyPrefix, placeholder, type = 'text', disabled = false, loading = false, secret = false, iconFamilyClass, iconFamilyPrefix, characters = 4, innerInputMode = 'text', hint, invalid = false, valid = false, className, style, onChange, }) {
782
+ function DInputPin({ id, label = '', labelIcon, labelIconFamilyClass, labelIconFamilyPrefix, placeholder, type = 'text', disabled = false, loading = false, secret = false, iconFamilyClass, iconFamilyPrefix, characters = 4, invalidIcon: invalidIconProp, validIcon: validIconProp, innerInputMode = 'text', hint, invalid = false, valid = false, className, style, onChange, }) {
745
783
  const [pattern, setPattern] = useState('');
746
784
  useEffect(() => {
747
785
  setPattern(type === 'number' ? '[0-9]+' : '^[a-zA-Z0-9]+$');
@@ -790,11 +828,14 @@ function DInputPin({ id, label = '', labelIcon, labelIconFamilyClass, labelIconF
790
828
  const preventDefaultEvent = useCallback((event) => {
791
829
  event.preventDefault();
792
830
  }, []);
831
+ const { iconMap: { input } } = useDContext();
832
+ const invalidIcon = useMemo(() => invalidIconProp || input.invalid, [input.invalid, invalidIconProp]);
833
+ const validIcon = useMemo(() => validIconProp || input.valid, [input.valid, validIconProp]);
793
834
  return (jsxs("div", { className: classNames('d-input-pin', className), style: style, children: [label && (jsxs("label", { htmlFor: "pinIndex0", children: [label, labelIcon && (jsx(DIcon, { className: "d-input-pin-icon", icon: labelIcon, size: `var(--${PREFIX_BS}input-label-font-size)`, familyClass: labelIconFamilyClass, familyPrefix: labelIconFamilyPrefix }))] })), jsxs("form", { id: id, className: "d-input-pin-controls", onInput: formChange, onSubmit: preventDefaultEvent, children: [Array.from({ length: characters }).map((_, index) => (jsx("input", Object.assign({ className: classNames({
794
835
  'form-control': true,
795
836
  'is-invalid': invalid,
796
837
  'is-valid': valid,
797
- }), type: secret ? 'password' : type, "aria-describedby": `${id}State`, inputMode: innerInputMode, id: `pinIndex${index}`, name: `pin-${index}`, maxLength: 1, onChange: nextInput, onKeyDown: prevInput, onFocus: focusInput, onWheel: wheelInput, onClick: preventDefaultEvent, autoComplete: "off", placeholder: placeholder, disabled: disabled || loading, required: true }, type === 'number' && ({ min: 0, max: 9 })), index))), (invalid || valid) && !loading && (jsx("span", { className: "input-group-text", id: `${id}State`, children: jsx(DIcon, { className: "d-input-pin-validation-icon", icon: invalid ? 'exclamation-circle' : 'check', familyClass: iconFamilyClass, familyPrefix: iconFamilyPrefix }) })), loading && (jsx("div", { className: "input-group-text d-input-pin-icon", children: jsx("span", { className: "spinner-border spinner-border-sm", role: "status", "aria-hidden": "true", children: jsx("span", { className: "visually-hidden", children: "Loading..." }) }) }))] }), hint && (jsx("div", { className: "form-text", id: `${id}Hint`, children: hint }))] }));
838
+ }), type: secret ? 'password' : type, "aria-describedby": `${id}State`, inputMode: innerInputMode, id: `pinIndex${index}`, name: `pin-${index}`, maxLength: 1, onChange: nextInput, onKeyDown: prevInput, onFocus: focusInput, onWheel: wheelInput, onClick: preventDefaultEvent, autoComplete: "off", placeholder: placeholder, disabled: disabled || loading, required: true }, type === 'number' && ({ min: 0, max: 9 })), index))), (invalid || valid) && !loading && (jsx("span", { className: "input-group-text", id: `${id}State`, children: jsx(DIcon, { className: "d-input-pin-validation-icon", icon: invalid ? invalidIcon : validIcon, familyClass: iconFamilyClass, familyPrefix: iconFamilyPrefix }) })), loading && (jsx("div", { className: "input-group-text d-input-pin-icon", children: jsx("span", { className: "spinner-border spinner-border-sm", role: "status", "aria-hidden": "true", children: jsx("span", { className: "visually-hidden", children: "Loading..." }) }) }))] }), hint && (jsx("div", { className: "form-text", id: `${id}Hint`, children: hint }))] }));
798
839
  }
799
840
 
800
841
  function DInputSelect({ id, name, label = '', className, style, options = [], labelIcon, labelIconFamilyClass, labelIconFamilyPrefix, disabled = false, loading = false, iconStart, iconStartFamilyClass, iconStartFamilyPrefix, iconStartAriaLabel, iconEnd, iconEndFamilyClass, iconEndFamilyPrefix, iconEndAriaLabel, hint, value, floatingLabel = false, valueExtractor, labelExtractor, onChange, onBlur, onIconStartClick, onIconEndClick, }) {
@@ -876,6 +917,107 @@ function DInputSelect({ id, name, label = '', className, style, options = [], la
876
917
  }), children: [iconStart && (jsx("button", { type: "button", className: "input-group-text", id: `${id}Start`, onClick: iconStartClickHandler, disabled: disabled || loading, "aria-label": iconStartAriaLabel, children: iconStart && (jsx(DIcon, { className: "d-input-icon", icon: iconStart, familyClass: iconStartFamilyClass, familyPrefix: iconStartFamilyPrefix })) })), dynamicComponent, iconEnd && !loading && (jsx("button", { type: "button", className: "input-group-text", id: `${id}End`, onClick: iconEndClickHandler, disabled: disabled || loading, "aria-label": iconEndAriaLabel, children: iconEnd && (jsx(DIcon, { className: "d-input-icon", icon: iconEnd, familyClass: iconEndFamilyClass, familyPrefix: iconEndFamilyPrefix })) })), loading && (jsx("div", { className: "input-group-text form-control-icon loading", children: jsx("span", { className: "spinner-border spinner-border-sm", role: "status", "aria-hidden": "true", children: jsx("span", { className: "visually-hidden", children: "Loading..." }) }) }))] }), hint && (jsx("div", { className: "form-text", id: `${id}Hint`, children: hint }))] })] }));
877
918
  }
878
919
 
920
+ function DSelectOptionCheck(_a) {
921
+ var { innerProps, children, isSelected } = _a, props = __rest(_a, ["innerProps", "children", "isSelected"]);
922
+ return (jsx(components.Option, Object.assign({ className: classNames({
923
+ 'd-select__option': true,
924
+ 'd-select__option--is-checkbox': true,
925
+ }), isSelected: isSelected, innerProps: innerProps }, props, { children: jsxs("label", { htmlFor: `${innerProps.id}Check`, children: [jsx(DInputCheck, { type: "checkbox", checked: isSelected, id: `${innerProps.id}Check` }), children] }) })));
926
+ }
927
+
928
+ function DSelectOptionIcon(_a) {
929
+ var { children, data } = _a, props = __rest(_a, ["children", "data"]);
930
+ return (jsxs(components.Option, Object.assign({ className: classNames({
931
+ 'd-select__option--has-icon': true,
932
+ }), data: data }, props, { children: [jsx(DIcon, { icon: data.icon }), children] })));
933
+ }
934
+
935
+ function DSelectSingleValueIconText(_a) {
936
+ var { children, getValue } = _a, props = __rest(_a, ["children", "getValue"]);
937
+ const [value] = getValue();
938
+ return (jsxs(components.SingleValue, Object.assign({ className: classNames({
939
+ 'd-select__control--has-icon': true,
940
+ }), getValue: getValue }, props, { children: [jsx(DIcon, { icon: value.icon }), children] })));
941
+ }
942
+
943
+ function DSelectDropdownIndicator(props) {
944
+ const { iconMap: { chevronDown, }, } = useDContext();
945
+ return (jsx(components.DropdownIndicator, Object.assign({}, props, { children: jsx(DIcon, { icon: chevronDown }) })));
946
+ }
947
+
948
+ function DSelectClearIndicator(props) {
949
+ const { iconMap: { xLg, }, } = useDContext();
950
+ return (jsx(components.ClearIndicator, Object.assign({}, props, { children: jsx(DIcon, { icon: xLg }) })));
951
+ }
952
+
953
+ function DSelectMultiValueRemove(props) {
954
+ const { iconMap: { x, }, } = useDContext();
955
+ return (jsx(components.MultiValueRemove, Object.assign({}, props, { children: jsx(DIcon, { icon: x }) })));
956
+ }
957
+
958
+ function DSelectLoadingIndicator({ innerProps, }) {
959
+ return (jsx("div", Object.assign({ className: classNames({
960
+ 'd-select__indicator': true,
961
+ 'd-select__loading-indicator': true,
962
+ }) }, innerProps, { children: jsx("span", { className: "spinner-border spinner-border-sm", role: "status", "aria-hidden": "true", children: jsx("span", { className: "visually-hidden", children: "Loading..." }) }) })));
963
+ }
964
+
965
+ function DSelectOptionEmoji(_a) {
966
+ var { children, data } = _a, props = __rest(_a, ["children", "data"]);
967
+ return (jsxs(components.Option, Object.assign({ className: classNames({
968
+ 'd-select__option--has-icon': true,
969
+ }), data: data }, props, { children: [jsx("span", { children: data.emoji }), jsx("span", { children: children })] })));
970
+ }
971
+
972
+ function DSelectSingleValueEmoji(_a) {
973
+ var { children, getValue } = _a, props = __rest(_a, ["children", "getValue"]);
974
+ const [value] = getValue();
975
+ return (jsx(components.SingleValue, Object.assign({ className: classNames({
976
+ 'd-select__control--has-icon': true,
977
+ }), getValue: getValue }, props, { children: value.emoji })));
978
+ }
979
+
980
+ function DSelectSingleValueEmojiText(_a) {
981
+ var { children, getValue } = _a, props = __rest(_a, ["children", "getValue"]);
982
+ const [value] = getValue();
983
+ return (jsxs(components.SingleValue, Object.assign({ className: classNames({
984
+ 'd-select__control--has-icon': true,
985
+ }), getValue: getValue }, props, { children: [jsx("span", { children: value.emoji }), jsx("span", { children: children })] })));
986
+ }
987
+
988
+ function DSelect(_a) {
989
+ var { id, className, style, label, labelIcon, labelIconFamilyClass, labelIconFamilyPrefix, hint, iconFamilyClass, iconFamilyPrefix, iconStart, iconStartFamilyClass, iconStartFamilyPrefix, iconStartAriaLabel, iconStartTabIndex, iconEnd, iconEndFamilyClass, iconEndFamilyPrefix, iconEndAriaLabel, iconEndTabIndex, invalid, valid, menuWithMaxContent = false, disabled, clearable, loading, rtl, searchable, multi, components, defaultValue, onIconStartClick, onIconEndClick } = _a, props = __rest(_a, ["id", "className", "style", "label", "labelIcon", "labelIconFamilyClass", "labelIconFamilyPrefix", "hint", "iconFamilyClass", "iconFamilyPrefix", "iconStart", "iconStartFamilyClass", "iconStartFamilyPrefix", "iconStartAriaLabel", "iconStartTabIndex", "iconEnd", "iconEndFamilyClass", "iconEndFamilyPrefix", "iconEndAriaLabel", "iconEndTabIndex", "invalid", "valid", "menuWithMaxContent", "disabled", "clearable", "loading", "rtl", "searchable", "multi", "components", "defaultValue", "onIconStartClick", "onIconEndClick"]);
990
+ const handleOnIconStartClick = useCallback(() => {
991
+ onIconStartClick === null || onIconStartClick === void 0 ? void 0 : onIconStartClick(defaultValue);
992
+ }, [onIconStartClick, defaultValue]);
993
+ const handleOnIconEndClick = useCallback(() => {
994
+ onIconEndClick === null || onIconEndClick === void 0 ? void 0 : onIconEndClick(defaultValue);
995
+ }, [onIconEndClick, defaultValue]);
996
+ return (jsxs("div", { className: classNames('d-select', className, {
997
+ disabled: disabled || loading,
998
+ }), style: style, children: [label && (jsxs("label", { htmlFor: id, children: [label, labelIcon && (jsx(DIcon, { className: "d-select-icon", icon: labelIcon, size: `var(--${PREFIX_BS}input-label-font-size)`, familyClass: labelIconFamilyClass, familyPrefix: labelIconFamilyPrefix }))] })), jsxs("div", { className: "d-select-control", children: [jsxs("div", { className: classNames({
999
+ 'input-group': true,
1000
+ 'has-validation': invalid,
1001
+ disabled: disabled || loading,
1002
+ }), children: [iconStart && (jsx("button", { type: "button", className: "input-group-text", id: `${id}Start`, onClick: handleOnIconStartClick, disabled: disabled || loading, "aria-label": iconStartAriaLabel, tabIndex: iconStartTabIndex, children: jsx(DIcon, { className: "d-input-icon", icon: iconStart, familyClass: iconStartFamilyClass, familyPrefix: iconStartFamilyPrefix }) })), jsx(Select, Object.assign({ styles: {
1003
+ control: (base) => (Object.assign(Object.assign({}, base), { minHeight: 'unset' })),
1004
+ container: (base) => (Object.assign(Object.assign({}, base), { width: '100%' })),
1005
+ menu: (base) => (Object.assign(Object.assign({}, base), { width: menuWithMaxContent ? 'max-context' : '100%' })),
1006
+ }, className: "d-select-component", classNamePrefix: "d-select", isDisabled: disabled || loading, isClearable: clearable, isLoading: loading, isRtl: rtl, isSearchable: searchable, isMulti: multi, defaultValue: defaultValue, unstyled: true, components: Object.assign({ DropdownIndicator: DSelectDropdownIndicator, ClearIndicator: DSelectClearIndicator, MultiValueRemove: DSelectMultiValueRemove, LoadingIndicator: DSelectLoadingIndicator }, components) }, props)), ((invalid || valid) && !iconEnd && !loading) && (jsx("span", { className: "input-group-text", id: `${id}State`, children: jsx(DIcon, { className: "d-input-validation-icon", icon: invalid ? 'exclamation-circle' : 'check', familyClass: iconFamilyClass, familyPrefix: iconFamilyPrefix }) })), (iconEnd && !loading) && (jsx("button", { type: "button", className: "input-group-text", id: `${id}End`, onClick: handleOnIconEndClick, disabled: disabled || loading, "aria-label": iconEndAriaLabel, tabIndex: iconEndTabIndex, children: iconEnd && (jsx(DIcon, { className: "d-input-icon", icon: iconEnd, familyClass: iconEndFamilyClass, familyPrefix: iconEndFamilyPrefix })) }))] }), hint && (jsx("div", { className: "form-text", id: `${id}Hint`, children: hint }))] })] }));
1007
+ }
1008
+ var DSelect$1 = Object.assign(DSelect, {
1009
+ OptionCheck: DSelectOptionCheck,
1010
+ OptionIcon: DSelectOptionIcon,
1011
+ SingleValueIconText: DSelectSingleValueIconText,
1012
+ DropdownIndicator: DSelectDropdownIndicator,
1013
+ ClearIndicator: DSelectClearIndicator,
1014
+ MultiValueRemove: DSelectMultiValueRemove,
1015
+ LoadingIndicator: DSelectLoadingIndicator,
1016
+ OptionEmoji: DSelectOptionEmoji,
1017
+ SingleValueEmoji: DSelectSingleValueEmoji,
1018
+ SingleValueEmojiText: DSelectSingleValueEmojiText,
1019
+ });
1020
+
879
1021
  function DListItem({ children, className, style, active = false, disabled = false, theme, onClick, }) {
880
1022
  const Tag = useMemo(() => (onClick ? 'button' : 'div'), [onClick]);
881
1023
  return (jsx(Tag, Object.assign({}, Tag === 'button' && {
@@ -901,7 +1043,9 @@ var DList$1 = Object.assign(DList, {
901
1043
  Item: DListItem,
902
1044
  });
903
1045
 
904
- function DModalHeader({ showCloseButton, onClose, children, className, style, iconFamilyClass, iconFamilyPrefix, icon = 'x-lg', materialStyle = false, }) {
1046
+ function DModalHeader({ showCloseButton, onClose, children, className, style, iconFamilyClass, iconFamilyPrefix, icon: iconProp, materialStyle = false, }) {
1047
+ const { iconMap: { xLg, }, } = useDContext();
1048
+ const icon = useMemo(() => iconProp || xLg, [iconProp, xLg]);
905
1049
  return (jsxs("div", { className: classNames('modal-header', className), style: style, children: [jsx("div", { className: "d-modal-slot", children: children }), showCloseButton && (jsx("button", { type: "button", className: "d-modal-close", "aria-label": "Close", onClick: onClose, children: jsx(DIcon, { icon: icon, familyClass: iconFamilyClass, familyPrefix: iconFamilyPrefix, materialStyle: materialStyle }) }))] }));
906
1050
  }
907
1051
 
@@ -936,7 +1080,9 @@ var DModal$1 = Object.assign(DModal, {
936
1080
  Footer: DModalFooter,
937
1081
  });
938
1082
 
939
- function DOffcanvasHeader({ showCloseButton, onClose, children, className, style, iconFamilyClass, iconFamilyPrefix, icon = 'x-lg', materialStyle = false, }) {
1083
+ function DOffcanvasHeader({ showCloseButton, onClose, children, className, style, iconFamilyClass, iconFamilyPrefix, icon: iconProp, materialStyle = false, }) {
1084
+ const { iconMap: { xLg, }, } = useDContext();
1085
+ const icon = useMemo(() => iconProp || xLg, [iconProp, xLg]);
940
1086
  return (jsxs("div", { className: classNames('offcanvas-header', className), style: style, children: [jsx("div", { className: "d-offcanvas-slot", children: children }), showCloseButton && (jsx("button", { type: "button", className: "d-offcanvas-close", "aria-label": "Close", onClick: onClose, children: jsx(DIcon, { icon: icon, familyClass: iconFamilyClass, familyPrefix: iconFamilyPrefix, materialStyle: materialStyle }) }))] }));
941
1087
  }
942
1088
 
@@ -1088,7 +1234,9 @@ function DSkeleton({ speed = 2, viewBox, backgroundColor, foregroundColor, child
1088
1234
  return (jsx(ContentLoader, { speed: speed, viewBox: viewBox, backgroundColor: innerBackgroundColor, foregroundColor: innerForegroundColor, children: children }));
1089
1235
  }
1090
1236
 
1091
- function DStepper$2({ options, currentStep, successIcon = 'check', vertical = false, className, style, }) {
1237
+ function DStepper$2({ options, currentStep, iconSuccess: iconSuccessProp, iconSuccessFamilyClass, iconSuccessFamilyPrefix, iconSuccessMaterialStyle = false, vertical = false, className, style, }) {
1238
+ const { iconMap: { check, }, } = useDContext();
1239
+ const icon = useMemo(() => iconSuccessProp || check, [check, iconSuccessProp]);
1092
1240
  if (currentStep < 1 || currentStep > options.length) {
1093
1241
  throw new Error('Current step should be in the range from 1 to options length');
1094
1242
  }
@@ -1100,7 +1248,7 @@ function DStepper$2({ options, currentStep, successIcon = 'check', vertical = fa
1100
1248
  'd-step-check': value < currentStep,
1101
1249
  'd-step-current': value === currentStep,
1102
1250
  }), children: value < currentStep
1103
- ? (jsx(DIcon, { icon: successIcon, className: "d-step-icon" }))
1251
+ ? (jsx(DIcon, { icon: icon, familyClass: iconSuccessFamilyClass, familyPrefix: iconSuccessFamilyPrefix, materialStyle: iconSuccessMaterialStyle, className: "d-step-icon" }))
1104
1252
  : value }) }), jsx("div", { className: "d-step-label", children: label })] }, value))) }));
1105
1253
  }
1106
1254
 
@@ -1134,8 +1282,8 @@ function DStepper$1({ options, currentStep, className, style, }) {
1134
1282
  return (jsxs("div", { className: classNames('d-stepper', className), style: style, children: [jsx("div", { className: "d-step-bar", style: { background: progressStyle }, children: jsx("p", { className: "d-step-number", children: `${currentStep}/${options.length}` }) }), jsx("div", { className: "d-step-info", children: Object.keys(currentOption).length > 0 && (jsxs(Fragment, { children: [jsx("div", { className: "d-step-label", children: currentOption.label }), jsx("div", { className: "d-step-description", children: currentOption.description || '' })] })) })] }));
1135
1283
  }
1136
1284
 
1137
- function DStepper({ options, currentStep, successIcon = 'check', vertical = false, breakpoint = 'lg', className, style, }) {
1138
- return (jsxs("div", { className: className, style: style, children: [jsx("div", { className: `d-block d-${breakpoint}-none`, children: jsx(DStepper$1, { options: options, currentStep: currentStep }) }), jsx("div", { className: `d-none d-${breakpoint}-block`, children: jsx(DStepper$2, { options: options, currentStep: currentStep, successIcon: successIcon, vertical: vertical }) })] }));
1285
+ function DStepper({ options, currentStep, iconSuccess, iconSuccessFamilyClass, iconSuccessFamilyPrefix, iconSuccessMaterialStyle = false, vertical = false, breakpoint = 'lg', className, style, }) {
1286
+ return (jsxs("div", { className: className, style: style, children: [jsx("div", { className: `d-block d-${breakpoint}-none`, children: jsx(DStepper$1, { options: options, currentStep: currentStep }) }), jsx("div", { className: `d-none d-${breakpoint}-block`, children: jsx(DStepper$2, { options: options, currentStep: currentStep, vertical: vertical, iconSuccess: iconSuccess, iconSuccessFamilyClass: iconSuccessFamilyClass, iconSuccessFamilyPrefix: iconSuccessFamilyPrefix, iconSuccessMaterialStyle: iconSuccessMaterialStyle }) })] }));
1139
1287
  }
1140
1288
 
1141
1289
  const ARROW_WIDTH = 8;
@@ -1224,8 +1372,8 @@ function DToastContainer({ style, position = 'top-right', className, }) {
1224
1372
  }
1225
1373
 
1226
1374
  function useToast() {
1227
- const toast$1 = useCallback((message, { position = 'top-right', type = 'info', showClose = true, autoClose = false, } = {}) => {
1228
- toast(({ closeToast }) => (jsx(DAlert, { type: type, showClose: showClose, onClose: closeToast, id: "alertID", children: message })), {
1375
+ const toast$1 = useCallback((message, { position = 'top-right', type = 'info', showClose = true, autoClose = false, icon, iconClose, } = {}) => {
1376
+ toast(({ closeToast }) => (jsx(DAlert, { type: type, showClose: showClose, onClose: closeToast, id: "alertID", icon: icon, iconClose: iconClose, children: message })), {
1229
1377
  transition: Slide,
1230
1378
  position,
1231
1379
  autoClose,
@@ -1250,5 +1398,5 @@ async function configureI8n(resources, _a = {}) {
1250
1398
  .then((t) => t);
1251
1399
  }
1252
1400
 
1253
- export { DAlert, DBadge, DBoxFile, DButton, DCard$1 as DCard, DCardAccount, DCardBody, DCardFooter, DCardHeader, DCarousel$1 as DCarousel, DCarouselSlide, DChip, DCollapse, DCollapseIconText, DContext, DContextProvider, DCurrencyText, DDatePicker, DIcon, DIconBase, DInput$1 as DInput, DInputCheck, DInputCounter$1 as DInputCounter, DInputCurrency$1 as DInputCurrency, DInputCurrencyBase$1 as DInputCurrencyBase, DInputMask$1 as DInputMask, DInputPassword$1 as DInputPassword, DInputPin, DInputSearch$1 as DInputSearch, DInputSelect, DInputSwitch, DList$1 as DList, DListItem, DModal$1 as DModal, DModalBody, DModalContext, DModalContextProvider, DModalFooter, DModalHeader, DOffcanvas$1 as DOffcanvas, DOffcanvasBody, DOffcanvasContext, DOffcanvasContextProvider, DOffcanvasFooter, DOffcanvasHeader, DPaginator, DPermissionGroup, DPermissionItem, DPopover, DProgress, DQuickActionButton, DQuickActionCheck, DQuickActionSelect, DQuickActionSwitch, DSkeleton, DStepper, DStepper$2 as DStepperDesktop, DStepper$1 as DStepperMobile, DSummaryCard, DTabContent, DTabs$1 as DTabs, DToastContainer, DTooltip, configureI8n as configureI18n, formatCurrency, useDContext, useDModalContext, useDOffcanvasContext, useDisableBodyScrollEffect, useFormatCurrency, useInputCurrency, usePortal, useProvidedRefOrCreate, useStackState, useTabContext, useToast };
1401
+ export { DAlert, DBadge, DBoxFile, DButton, DCard$1 as DCard, DCardBody, DCardFooter, DCardHeader, DCarousel$1 as DCarousel, DCarouselSlide, DChip, DCollapse, DContext, DContextProvider, DCurrencyText, DDatePicker, DIcon, DIconBase, DInput$1 as DInput, DInputCheck, DInputCounter$1 as DInputCounter, DInputCurrency$1 as DInputCurrency, DInputCurrencyBase$1 as DInputCurrencyBase, DInputMask$1 as DInputMask, DInputPassword$1 as DInputPassword, DInputPin, DInputSearch$1 as DInputSearch, DInputSelect, DInputSwitch, DList$1 as DList, DListItem, DModal$1 as DModal, DModalBody, DModalContext, DModalContextProvider, DModalFooter, DModalHeader, DOffcanvas$1 as DOffcanvas, DOffcanvasBody, DOffcanvasContext, DOffcanvasContextProvider, DOffcanvasFooter, DOffcanvasHeader, DPaginator, DPermissionGroup, DPermissionItem, DPopover, DProgress, DQuickActionButton, DQuickActionCheck, DQuickActionSelect, DQuickActionSwitch, DSelect$1 as DSelect, DSkeleton, DStepper, DStepper$2 as DStepperDesktop, DStepper$1 as DStepperMobile, DSummaryCard, DTabContent, DTabs$1 as DTabs, DToastContainer, DTooltip, configureI8n as configureI18n, formatCurrency, useDContext, useDModalContext, useDOffcanvasContext, useDisableBodyScrollEffect, useFormatCurrency, useInputCurrency, usePortal, useProvidedRefOrCreate, useStackState, useTabContext, useToast };
1254
1402
  //# sourceMappingURL=index.esm.js.map