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