@coreui/react-pro 4.12.0-rc.0 → 5.0.0-alpha.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 (33) hide show
  1. package/README.md +1 -1
  2. package/dist/components/date-range-picker/CDateRangePicker copy.d.ts +114 -0
  3. package/dist/components/dropdown/CDropdown.d.ts +1 -1
  4. package/dist/components/multi-select/CMultiSelect.d.ts +2 -2
  5. package/dist/components/multi-select-new/CMultiSelect.d.ts +133 -0
  6. package/dist/components/multi-select-new/CMultiSelectNativeSelect.d.ts +7 -0
  7. package/dist/components/multi-select-new/CMultiSelectNew.d.ts +121 -0
  8. package/dist/components/multi-select-new/CMultiSelectOptions.d.ts +16 -0
  9. package/dist/components/multi-select-new/CMultiSelectSelection.d.ts +11 -0
  10. package/dist/components/multi-select-new/index.d.ts +2 -0
  11. package/dist/components/multi-select-new/types.d.ts +15 -0
  12. package/dist/components/multi-select-new/utils.d.ts +11 -0
  13. package/dist/components/picker/CPicker copy.d.ts +82 -0
  14. package/dist/components/picker copy/CPicker.d.ts +82 -0
  15. package/dist/components/popover/CPopover.d.ts +3 -3
  16. package/dist/components/smart-table/CSmartTableCleaner.d.ts +7 -0
  17. package/dist/components/tooltip/CTooltip.d.ts +3 -3
  18. package/dist/hooks/index.d.ts +2 -1
  19. package/dist/index.es.js +101 -39
  20. package/dist/index.es.js.map +1 -1
  21. package/dist/index.js +101 -38
  22. package/dist/index.js.map +1 -1
  23. package/package.json +12 -12
  24. package/src/components/date-range-picker/CDateRangePicker.tsx +18 -35
  25. package/src/components/dropdown/CDropdown.tsx +1 -1
  26. package/src/components/multi-select/CMultiSelect.tsx +17 -8
  27. package/src/components/multi-select/CMultiSelectSelection.tsx +1 -3
  28. package/src/components/picker/CPicker.tsx +2 -11
  29. package/src/components/popover/CPopover.tsx +3 -3
  30. package/src/components/time-picker/CTimePicker.tsx +15 -29
  31. package/src/components/tooltip/CTooltip.tsx +3 -3
  32. package/src/hooks/index.ts +2 -1
  33. package/src/utils/getRTLPlacement.ts +1 -1
package/dist/index.js CHANGED
@@ -17,7 +17,7 @@ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
17
17
  OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
18
18
  PERFORMANCE OF THIS SOFTWARE.
19
19
  ***************************************************************************** */
20
- /* global Reflect, Promise */
20
+ /* global Reflect, Promise, SuppressedError, Symbol */
21
21
 
22
22
 
23
23
  var __assign$1 = function() {
@@ -51,7 +51,12 @@ function __spreadArray(to, from, pack) {
51
51
  }
52
52
  }
53
53
  return to.concat(ar || Array.prototype.slice.call(from));
54
- }
54
+ }
55
+
56
+ typeof SuppressedError === "function" ? SuppressedError : function (error, suppressed, message) {
57
+ var e = new Error(message);
58
+ return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
59
+ };
55
60
 
56
61
  var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
57
62
 
@@ -2474,6 +2479,54 @@ CSSTransition.propTypes = process.env.NODE_ENV !== "production" ? _extends$1({},
2474
2479
  }) : {};
2475
2480
  var CSSTransition$1 = CSSTransition;
2476
2481
 
2482
+ var getStoredTheme = function (localStorageItemName) {
2483
+ return typeof window !== 'undefined' && localStorage.getItem(localStorageItemName);
2484
+ };
2485
+ var setStoredTheme = function (localStorageItemName, colorMode) {
2486
+ return localStorage.setItem(localStorageItemName, colorMode);
2487
+ };
2488
+ var getPreferredColorScheme = function (localStorageItemName) {
2489
+ if (typeof window === 'undefined') {
2490
+ return 'light';
2491
+ }
2492
+ var storedTheme = getStoredTheme(localStorageItemName);
2493
+ if (storedTheme) {
2494
+ return storedTheme;
2495
+ }
2496
+ return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
2497
+ };
2498
+ var setTheme = function (colorMode) {
2499
+ document.documentElement.dataset.coreuiTheme =
2500
+ colorMode === 'auto' && window.matchMedia('(prefers-color-scheme: dark)').matches
2501
+ ? 'dark'
2502
+ : colorMode;
2503
+ var event = new Event('ColorSchemeChange');
2504
+ document.documentElement.dispatchEvent(event);
2505
+ };
2506
+ var useColorModes = function (localStorageItemName) {
2507
+ if (localStorageItemName === void 0) { localStorageItemName = 'coreui-react-color-scheme'; }
2508
+ var _a = React$1.useState(getPreferredColorScheme(localStorageItemName)), colorMode = _a[0], setColorMode = _a[1];
2509
+ React$1.useEffect(function () {
2510
+ if (colorMode) {
2511
+ setStoredTheme(localStorageItemName, colorMode);
2512
+ setTheme(colorMode);
2513
+ }
2514
+ }, [colorMode]);
2515
+ React$1.useEffect(function () {
2516
+ window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', function () {
2517
+ var storedTheme = getStoredTheme(localStorageItemName);
2518
+ if (storedTheme !== 'light' && storedTheme !== 'dark' && colorMode) {
2519
+ setTheme(colorMode);
2520
+ }
2521
+ });
2522
+ });
2523
+ return {
2524
+ colorMode: colorMode,
2525
+ isColorModeSet: function () { return Boolean(getStoredTheme(localStorageItemName)); },
2526
+ setColorMode: setColorMode,
2527
+ };
2528
+ };
2529
+
2477
2530
  // code borrowed from https://github.com/reach/reach-ui
2478
2531
  // problem described https://github.com/facebook/react/issues/13029
2479
2532
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -4850,6 +4903,16 @@ CCardTitle.propTypes = {
4850
4903
  };
4851
4904
  CCardTitle.displayName = 'CCardTitle';
4852
4905
 
4906
+ var isRTL = function (element) {
4907
+ if (typeof document !== 'undefined' && document.documentElement.dir === 'rtl') {
4908
+ return true;
4909
+ }
4910
+ if (element) {
4911
+ return element.closest('[dir="rtl"]') !== null;
4912
+ }
4913
+ return false;
4914
+ };
4915
+
4853
4916
  var getRTLPlacement = function (placement, element) {
4854
4917
  switch (placement) {
4855
4918
  case 'right': {
@@ -4886,16 +4949,6 @@ var isObjectInArray = function (array, item, ignore) {
4886
4949
  });
4887
4950
  };
4888
4951
 
4889
- var isRTL = function (element) {
4890
- if (typeof document !== 'undefined' && document.documentElement.dir === 'rtl') {
4891
- return true;
4892
- }
4893
- if (element) {
4894
- return element.closest('[dir="rtl"]') !== null;
4895
- }
4896
- return false;
4897
- };
4898
-
4899
4952
  var CCarouselContext = React$1.createContext({});
4900
4953
  var CCarousel = React$1.forwardRef(function (_a, ref) {
4901
4954
  var children = _a.children, _b = _a.activeIndex, activeIndex = _b === void 0 ? 0 : _b, className = _a.className, controls = _a.controls, dark = _a.dark, indicators = _a.indicators, _c = _a.interval, interval = _c === void 0 ? 5000 : _c, onSlid = _a.onSlid, onSlide = _a.onSlide, _d = _a.pause, pause = _d === void 0 ? 'hover' : _d, _e = _a.touch, touch = _e === void 0 ? true : _e, transition = _a.transition, _f = _a.wrap, wrap = _f === void 0 ? true : _f, rest = __rest$1(_a, ["children", "activeIndex", "className", "controls", "dark", "indicators", "interval", "onSlid", "onSlide", "pause", "touch", "transition", "wrap"]);
@@ -9048,7 +9101,7 @@ var CPicker = React$1.forwardRef(function (_a, ref) {
9048
9101
  return (React$1.createElement("div", { className: classNames$1('picker', className), ref: pickerForkedRef }, children));
9049
9102
  }
9050
9103
  default: {
9051
- return (React$1.createElement("div", { className: classNames$1('dropdown', 'picker', className, {
9104
+ return (React$1.createElement("div", { className: classNames$1(className, {
9052
9105
  show: _visible,
9053
9106
  }), onClick: function () { return !disabled && setVisible(true); }, ref: pickerForkedRef },
9054
9107
  toggler &&
@@ -9056,9 +9109,7 @@ var CPicker = React$1.forwardRef(function (_a, ref) {
9056
9109
  React$1.cloneElement(toggler, {
9057
9110
  ref: togglerRef,
9058
9111
  }),
9059
- React$1.createElement("div", { className: classNames$1('dropdown-menu', {
9060
- show: _visible,
9061
- }, dropdownClassNames), ref: dropdownRef },
9112
+ React$1.createElement("div", { className: dropdownClassNames, ref: dropdownRef },
9062
9113
  children,
9063
9114
  footer && footerContent)));
9064
9115
  }
@@ -9271,15 +9322,20 @@ var CTimePicker = React$1.forwardRef(function (_a, ref) {
9271
9322
  setDate(new Date(_date));
9272
9323
  onTimeChange && onTimeChange(_date.toTimeString(), _date.toLocaleTimeString(), _date);
9273
9324
  };
9274
- var InputGroup = function () { return (React$1.createElement("div", { className: "input-group picker-input-group" },
9275
- React$1.createElement("input", { autoComplete: "off", className: "form-control",
9325
+ var InputGroup = function () { return (React$1.createElement("div", { className: "time-picker-input-group" },
9326
+ React$1.createElement("input", { autoComplete: "off", className: "time-picker-input",
9276
9327
  // delay={true}
9277
9328
  disabled: disabled, onChange: function (event) {
9278
9329
  return isValidTime(event.target.value) && setDate(convertTimeToDate(event.target.value));
9279
9330
  }, placeholder: placeholder, readOnly: inputReadOnly, required: required, ref: inputRef }),
9280
- (indicator || cleaner) && (React$1.createElement("span", { className: "input-group-text" },
9281
- indicator && (React$1.createElement("span", { className: "picker-input-group-indicator" }, typeof indicator === 'boolean' ? (React$1.createElement("span", { className: "picker-input-group-icon time-picker-input-icon" })) : (indicator))),
9282
- cleaner && date && (React$1.createElement("span", { className: "picker-input-group-cleaner", role: "button", onClick: function (event) { return handleClear(event); } }, typeof cleaner === 'boolean' ? (React$1.createElement("span", { className: "picker-input-group-icon time-picker-cleaner-icon" })) : (cleaner))))))); };
9331
+ indicator &&
9332
+ (typeof indicator === 'boolean' ? React$1.createElement("div", { className: "time-picker-indicator" }) : indicator),
9333
+ cleaner &&
9334
+ date &&
9335
+ (typeof cleaner === 'boolean' ? (React$1.createElement("div", { className: "time-picker-cleaner", onClick: function (event) { return handleClear(event); } })) : (React$1.isValidElement(cleaner) &&
9336
+ React$1.cloneElement(cleaner, {
9337
+ onClick: function (event) { return handleClear(event); },
9338
+ }))))); };
9283
9339
  var TimePickerSelect = function () {
9284
9340
  return (React$1.createElement(React$1.Fragment, null,
9285
9341
  React$1.createElement("span", { className: "time-picker-inline-icon" }),
@@ -9318,7 +9374,7 @@ var CTimePicker = React$1.forwardRef(function (_a, ref) {
9318
9374
  _b.disabled = disabled,
9319
9375
  _b['is-invalid'] = isValid === false ? true : false,
9320
9376
  _b['is-valid'] = isValid,
9321
- _b), className), container: container, disabled: disabled, dropdownClassNames: "time-picker-dropdown", footer: footer, footerContent: React$1.createElement("div", { className: "picker-footer" },
9377
+ _b), className), container: container, disabled: disabled, dropdownClassNames: "time-picker-dropdown", footer: footer, footerContent: React$1.createElement("div", { className: "time-picker-footer" },
9322
9378
  cancelButton && (React$1.createElement(CButton, { color: cancelButtonColor, size: cancelButtonSize, variant: cancelButtonVariant, onClick: function () {
9323
9379
  initialDate && setDate(new Date(initialDate));
9324
9380
  setVisible(false);
@@ -9501,8 +9557,8 @@ var CDateRangePicker = React$1.forwardRef(function (_a, ref) {
9501
9557
  setVisible(false);
9502
9558
  }
9503
9559
  };
9504
- var InputGroup = function () { return (React$1.createElement("div", { className: "input-group picker-input-group" },
9505
- React$1.createElement("input", __assign$1({ autoComplete: "off", className: classNames$1('form-control date-picker-input', {
9560
+ var InputGroup = function () { return (React$1.createElement("div", { className: "date-picker-input-group" },
9561
+ React$1.createElement("input", __assign$1({ autoComplete: "off", className: classNames$1('date-picker-input', {
9506
9562
  hover: inputStartHoverValue,
9507
9563
  }),
9508
9564
  // delay={true}
@@ -9513,9 +9569,8 @@ var CDateRangePicker = React$1.forwardRef(function (_a, ref) {
9513
9569
  setStartDate(date);
9514
9570
  }
9515
9571
  }, onClick: function () { return setSelectEndDate(false); }, ref: inputStartRef })),
9516
- range && separator !== false && (React$1.createElement("span", { className: "input-group-text" },
9517
- React$1.createElement("span", { className: "picker-input-group-icon date-picker-arrow-icon" }))),
9518
- range && (React$1.createElement("input", __assign$1({ autoComplete: "off", className: classNames$1('form-control date-picker-input', {
9572
+ range && separator !== false && React$1.createElement("div", { className: "date-picker-separator" }),
9573
+ range && (React$1.createElement("input", __assign$1({ autoComplete: "off", className: classNames$1('date-picker-input', {
9519
9574
  hover: inputEndHoverValue,
9520
9575
  }),
9521
9576
  // delay={true}
@@ -9526,16 +9581,21 @@ var CDateRangePicker = React$1.forwardRef(function (_a, ref) {
9526
9581
  setEndDate(date);
9527
9582
  }
9528
9583
  }, onClick: function () { return setSelectEndDate(true); }, ref: inputEndRef }))),
9529
- (indicator || cleaner) && (React$1.createElement("span", { className: "input-group-text" },
9530
- indicator && (React$1.createElement("span", { className: "picker-input-group-indicator" }, typeof indicator === 'boolean' ? (React$1.createElement("span", { className: "picker-input-group-icon date-picker-input-icon" })) : (indicator))),
9531
- cleaner && (_startDate || _endDate) && (React$1.createElement("span", { className: "picker-input-group-cleaner", role: "button", onClick: function (event) { return handleClear(event); } }, typeof cleaner === 'boolean' ? (React$1.createElement("span", { className: "picker-input-group-icon date-picker-cleaner-icon" })) : (cleaner))))))); };
9584
+ indicator &&
9585
+ (typeof indicator === 'boolean' ? React$1.createElement("div", { className: "date-picker-indicator" }) : indicator),
9586
+ cleaner &&
9587
+ (_startDate || _endDate) &&
9588
+ (typeof cleaner === 'boolean' ? (React$1.createElement("div", { className: "date-picker-cleaner", onClick: function (event) { return handleClear(event); } })) : (React$1.isValidElement(cleaner) &&
9589
+ React$1.cloneElement(cleaner, {
9590
+ onClick: function (event) { return handleClear(event); },
9591
+ }))))); };
9532
9592
  return (React$1.createElement(CFormControlWrapper, { describedby: rest['aria-describedby'], feedback: feedback, feedbackInvalid: feedbackInvalid, feedbackValid: feedbackValid, id: id, invalid: isValid === false ? true : false, label: label, text: text, tooltipFeedback: tooltipFeedback, valid: isValid },
9533
9593
  React$1.createElement(CPicker, __assign$1({ className: classNames$1('date-picker', (_b = {},
9534
9594
  _b["date-picker-".concat(size)] = size,
9535
9595
  _b.disabled = disabled,
9536
9596
  _b['is-invalid'] = isValid === false ? true : false,
9537
9597
  _b['is-valid'] = isValid,
9538
- _b), className), disabled: disabled, footer: footer || timepicker, footerContent: React$1.createElement("div", { className: "picker-footer" },
9598
+ _b), className), disabled: disabled, dropdownClassNames: "date-picker-dropdown", footer: footer || timepicker, footerContent: React$1.createElement("div", { className: "date-picker-footer" },
9539
9599
  todayButton && (React$1.createElement(CButton, { className: "me-auto", color: todayButtonColor, size: todayButtonSize, variant: todayButtonVariant, onClick: function () {
9540
9600
  var date = new Date();
9541
9601
  handleStartDateChange(date);
@@ -10877,8 +10937,7 @@ var CMultiSelectSelection = React$1.forwardRef(function (_a, ref) {
10877
10937
  if (selectionType === 'tags') {
10878
10938
  return (React$1.createElement("span", { className: "form-multi-select-tag", key: index },
10879
10939
  option.text,
10880
- !option.disabled && (React$1.createElement("button", { className: "form-multi-select-tag-delete", "aria-label": "Close", onClick: function () { return onRemove && onRemove(option); } },
10881
- React$1.createElement("span", { "aria-hidden": "true" }, "\u00D7")))));
10940
+ !option.disabled && (React$1.createElement("button", { className: "form-multi-select-tag-delete", "aria-label": "Close", onClick: function () { return onRemove && onRemove(option); } }))));
10882
10941
  }
10883
10942
  return;
10884
10943
  }),
@@ -11062,11 +11121,8 @@ var CMultiSelect = React$1.forwardRef(function (_a, ref) {
11062
11121
  React$1.createElement(CMultiSelectNativeSelect, { id: id, multiple: multiple, options: selected, required: required, value: multiple
11063
11122
  ? selected.map(function (option) { return option.value.toString(); })
11064
11123
  : selected.map(function (option) { return option.value; })[0], onChange: function () { return onChange && onChange(selected); }, ref: nativeSelectRef }),
11065
- React$1.createElement("div", { className: classNames$1('form-multi-select', (_b = {
11066
- 'form-multi-select-with-cleaner': cleaner
11067
- },
11124
+ React$1.createElement("div", { className: classNames$1('form-multi-select', (_b = {},
11068
11125
  _b["form-multi-select-".concat(size)] = size,
11069
- _b['form-multi-select-selection-tags'] = multiple && selectionType === 'tags',
11070
11126
  _b.disabled = disabled,
11071
11127
  _b['is-invalid'] = invalid,
11072
11128
  _b['is-valid'] = valid,
@@ -11080,7 +11136,13 @@ var CMultiSelect = React$1.forwardRef(function (_a, ref) {
11080
11136
  !multiple && { placeholder: selected.map(function (option) { return option.text; })[0] }), (multiple &&
11081
11137
  selected.length > 0 &&
11082
11138
  selectionType !== 'counter' && { size: searchValue.length + 2 }), { ref: searchRef })))),
11083
- !disabled && cleaner && selected.length > 0 && (React$1.createElement("button", { type: "button", className: "form-multi-select-selection-cleaner", onClick: function () { return handleDeselectAll(); } }))),
11139
+ React$1.createElement("div", { className: "form-multi-select-buttons" },
11140
+ !disabled && cleaner && selected.length > 0 && (React$1.createElement("button", { type: "button", className: "form-multi-select-cleaner", onClick: function () { return handleDeselectAll(); } })),
11141
+ React$1.createElement("button", { type: "button", className: "form-multi-select-indicator", onClick: function (event) {
11142
+ event.preventDefault();
11143
+ event.stopPropagation();
11144
+ setVisible(!_visible);
11145
+ } }))),
11084
11146
  React$1.createElement("div", { className: "form-multi-select-dropdown", role: "menu", ref: dropdownRef },
11085
11147
  multiple && selectAll && (React$1.createElement("button", { type: "button", className: "form-multi-select-all", onClick: function () { return handleSelectAll(); } }, selectAllLabel)),
11086
11148
  React$1.createElement(CMultiSelectOptions, { handleOptionOnClick: function (option) { return !disabled && handleOptionOnClick(option); }, loading: loading, options: filteredOptions.length === 0 && allowCreateOptions
@@ -14601,6 +14663,7 @@ exports.CWidgetStatsC = CWidgetStatsC;
14601
14663
  exports.CWidgetStatsD = CWidgetStatsD;
14602
14664
  exports.CWidgetStatsE = CWidgetStatsE;
14603
14665
  exports.CWidgetStatsF = CWidgetStatsF;
14666
+ exports.useColorModes = useColorModes;
14604
14667
  exports.useForkedRef = useForkedRef;
14605
14668
  exports.usePopper = usePopper;
14606
14669
  exports.useStateWithCallback = useStateWithCallback;