@coreui/react 4.9.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.
package/dist/index.js CHANGED
@@ -2477,6 +2477,54 @@ CSSTransition.propTypes = process.env.NODE_ENV !== "production" ? _extends({}, T
2477
2477
  }) : {};
2478
2478
  var CSSTransition$1 = CSSTransition;
2479
2479
 
2480
+ var getStoredTheme = function (localStorageItemName) {
2481
+ return typeof window !== 'undefined' && localStorage.getItem(localStorageItemName);
2482
+ };
2483
+ var setStoredTheme = function (localStorageItemName, colorMode) {
2484
+ return localStorage.setItem(localStorageItemName, colorMode);
2485
+ };
2486
+ var getPreferredColorScheme = function (localStorageItemName) {
2487
+ if (typeof window === 'undefined') {
2488
+ return 'light';
2489
+ }
2490
+ var storedTheme = getStoredTheme(localStorageItemName);
2491
+ if (storedTheme) {
2492
+ return storedTheme;
2493
+ }
2494
+ return window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
2495
+ };
2496
+ var setTheme = function (colorMode) {
2497
+ document.documentElement.dataset.coreuiTheme =
2498
+ colorMode === 'auto' && window.matchMedia('(prefers-color-scheme: dark)').matches
2499
+ ? 'dark'
2500
+ : colorMode;
2501
+ var event = new Event('ColorSchemeChange');
2502
+ document.documentElement.dispatchEvent(event);
2503
+ };
2504
+ var useColorModes = function (localStorageItemName) {
2505
+ if (localStorageItemName === void 0) { localStorageItemName = 'coreui-react-color-scheme'; }
2506
+ var _a = React.useState(getPreferredColorScheme(localStorageItemName)), colorMode = _a[0], setColorMode = _a[1];
2507
+ React.useEffect(function () {
2508
+ if (colorMode) {
2509
+ setStoredTheme(localStorageItemName, colorMode);
2510
+ setTheme(colorMode);
2511
+ }
2512
+ }, [colorMode]);
2513
+ React.useEffect(function () {
2514
+ window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', function () {
2515
+ var storedTheme = getStoredTheme(localStorageItemName);
2516
+ if (storedTheme !== 'light' && storedTheme !== 'dark' && colorMode) {
2517
+ setTheme(colorMode);
2518
+ }
2519
+ });
2520
+ });
2521
+ return {
2522
+ colorMode: colorMode,
2523
+ isColorModeSet: function () { return Boolean(getStoredTheme(localStorageItemName)); },
2524
+ setColorMode: setColorMode,
2525
+ };
2526
+ };
2527
+
2480
2528
  // code borrowed from https://github.com/reach/reach-ui
2481
2529
  // problem described https://github.com/facebook/react/issues/13029
2482
2530
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -4834,6 +4882,16 @@ CCardTitle.propTypes = {
4834
4882
  };
4835
4883
  CCardTitle.displayName = 'CCardTitle';
4836
4884
 
4885
+ var isRTL = function (element) {
4886
+ if (typeof document !== 'undefined' && document.documentElement.dir === 'rtl') {
4887
+ return true;
4888
+ }
4889
+ if (element) {
4890
+ return element.closest('[dir="rtl"]') !== null;
4891
+ }
4892
+ return false;
4893
+ };
4894
+
4837
4895
  var getRTLPlacement = function (placement, element) {
4838
4896
  switch (placement) {
4839
4897
  case 'right': {
@@ -4856,16 +4914,6 @@ var isInViewport = function (element) {
4856
4914
  Math.floor(rect.right) <= (window.innerWidth || document.documentElement.clientWidth));
4857
4915
  };
4858
4916
 
4859
- var isRTL = function (element) {
4860
- if (typeof document !== 'undefined' && document.documentElement.dir === 'rtl') {
4861
- return true;
4862
- }
4863
- if (element) {
4864
- return element.closest('[dir="rtl"]') !== null;
4865
- }
4866
- return false;
4867
- };
4868
-
4869
4917
  var CCarouselContext = React.createContext({});
4870
4918
  var CCarousel = React.forwardRef(function (_a, ref) {
4871
4919
  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(_a, ["children", "activeIndex", "className", "controls", "dark", "indicators", "interval", "onSlid", "onSlide", "pause", "touch", "transition", "wrap"]);
@@ -7547,6 +7595,7 @@ exports.CWidgetStatsC = CWidgetStatsC;
7547
7595
  exports.CWidgetStatsD = CWidgetStatsD;
7548
7596
  exports.CWidgetStatsE = CWidgetStatsE;
7549
7597
  exports.CWidgetStatsF = CWidgetStatsF;
7598
+ exports.useColorModes = useColorModes;
7550
7599
  exports.useForkedRef = useForkedRef;
7551
7600
  exports.usePopper = usePopper;
7552
7601
  //# sourceMappingURL=index.js.map