@yamada-ui/skeleton 1.1.6-dev-20240923141540 → 1.1.6-dev-20240923144612
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/{chunk-XU67OKIG.mjs → chunk-22DLXLXV.mjs} +2 -2
 - package/dist/{chunk-ID637AXQ.mjs → chunk-2U4SAIJD.mjs} +7 -7
 - package/dist/chunk-2U4SAIJD.mjs.map +1 -0
 - package/dist/{chunk-EXTYGSHF.mjs → chunk-BWLL2ZTF.mjs} +9 -9
 - package/dist/chunk-BWLL2ZTF.mjs.map +1 -0
 - package/dist/index.js +13 -13
 - package/dist/index.js.map +1 -1
 - package/dist/index.mjs +3 -3
 - package/dist/skeleton-circle.js +8 -8
 - package/dist/skeleton-circle.js.map +1 -1
 - package/dist/skeleton-circle.mjs +2 -2
 - package/dist/skeleton-text.js +13 -13
 - package/dist/skeleton-text.js.map +1 -1
 - package/dist/skeleton-text.mjs +2 -2
 - package/dist/skeleton.js +8 -8
 - package/dist/skeleton.js.map +1 -1
 - package/dist/skeleton.mjs +1 -1
 - package/package.json +6 -6
 - package/dist/chunk-EXTYGSHF.mjs.map +0 -1
 - package/dist/chunk-ID637AXQ.mjs.map +0 -1
 - /package/dist/{chunk-XU67OKIG.mjs.map → chunk-22DLXLXV.mjs.map} +0 -0
 
| 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            "use client"
         
     | 
| 
       2 
2 
     | 
    
         
             
            import {
         
     | 
| 
       3 
3 
     | 
    
         
             
              Skeleton
         
     | 
| 
       4 
     | 
    
         
            -
            } from "./chunk- 
     | 
| 
      
 4 
     | 
    
         
            +
            } from "./chunk-BWLL2ZTF.mjs";
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
            // src/skeleton-circle.tsx
         
     | 
| 
       7 
7 
     | 
    
         
             
            import { forwardRef } from "@yamada-ui/core";
         
     | 
| 
         @@ -38,4 +38,4 @@ SkeletonCircle.__ui__ = "SkeletonCircle"; 
     | 
|
| 
       38 
38 
     | 
    
         
             
            export {
         
     | 
| 
       39 
39 
     | 
    
         
             
              SkeletonCircle
         
     | 
| 
       40 
40 
     | 
    
         
             
            };
         
     | 
| 
       41 
     | 
    
         
            -
            //# sourceMappingURL=chunk- 
     | 
| 
      
 41 
     | 
    
         
            +
            //# sourceMappingURL=chunk-22DLXLXV.mjs.map
         
     | 
| 
         @@ -1,7 +1,7 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            "use client"
         
     | 
| 
       2 
2 
     | 
    
         
             
            import {
         
     | 
| 
       3 
3 
     | 
    
         
             
              Skeleton
         
     | 
| 
       4 
     | 
    
         
            -
            } from "./chunk- 
     | 
| 
      
 4 
     | 
    
         
            +
            } from "./chunk-BWLL2ZTF.mjs";
         
     | 
| 
       5 
5 
     | 
    
         | 
| 
       6 
6 
     | 
    
         
             
            // src/skeleton-text.tsx
         
     | 
| 
       7 
7 
     | 
    
         
             
            import { ui, forwardRef } from "@yamada-ui/core";
         
     | 
| 
         @@ -11,7 +11,7 @@ import { jsx } from "react/jsx-runtime"; 
     | 
|
| 
       11 
11 
     | 
    
         
             
            var SkeletonText = forwardRef(
         
     | 
| 
       12 
12 
     | 
    
         
             
              ({
         
     | 
| 
       13 
13 
     | 
    
         
             
                className,
         
     | 
| 
       14 
     | 
    
         
            -
                lineClamp = 3,
         
     | 
| 
      
 14 
     | 
    
         
            +
                lineClamp: _lineClamp = 3,
         
     | 
| 
       15 
15 
     | 
    
         
             
                startColor,
         
     | 
| 
       16 
16 
     | 
    
         
             
                endColor,
         
     | 
| 
       17 
17 
     | 
    
         
             
                fadeDuration,
         
     | 
| 
         @@ -22,7 +22,7 @@ var SkeletonText = forwardRef( 
     | 
|
| 
       22 
22 
     | 
    
         
             
                children,
         
     | 
| 
       23 
23 
     | 
    
         
             
                ...rest
         
     | 
| 
       24 
24 
     | 
    
         
             
              }, ref) => {
         
     | 
| 
       25 
     | 
    
         
            -
                const  
     | 
| 
      
 25 
     | 
    
         
            +
                const lineClamp = useValue(_lineClamp);
         
     | 
| 
       26 
26 
     | 
    
         
             
                const css = {
         
     | 
| 
       27 
27 
     | 
    
         
             
                  w: "100%"
         
     | 
| 
       28 
28 
     | 
    
         
             
                };
         
     | 
| 
         @@ -33,12 +33,12 @@ var SkeletonText = forwardRef( 
     | 
|
| 
       33 
33 
     | 
    
         
             
                    className: cx("ui-skeleton__text", className),
         
     | 
| 
       34 
34 
     | 
    
         
             
                    __css: css,
         
     | 
| 
       35 
35 
     | 
    
         
             
                    ...rest,
         
     | 
| 
       36 
     | 
    
         
            -
                    children: Array( 
     | 
| 
      
 36 
     | 
    
         
            +
                    children: Array(lineClamp).fill(0).map((_, index) => {
         
     | 
| 
       37 
37 
     | 
    
         
             
                      if (isLoaded && index > 0) return null;
         
     | 
| 
       38 
     | 
    
         
            -
                      const isLast = index + 1 ===  
     | 
| 
      
 38 
     | 
    
         
            +
                      const isLast = index + 1 === lineClamp;
         
     | 
| 
       39 
39 
     | 
    
         
             
                      const props = !isLoaded ? {
         
     | 
| 
       40 
40 
     | 
    
         
             
                        mb: !isLast ? gap : void 0,
         
     | 
| 
       41 
     | 
    
         
            -
                        w:  
     | 
| 
      
 41 
     | 
    
         
            +
                        w: lineClamp > 1 ? !isLast ? "100%" : "80%" : "100%",
         
     | 
| 
       42 
42 
     | 
    
         
             
                        h: textHeight
         
     | 
| 
       43 
43 
     | 
    
         
             
                      } : {};
         
     | 
| 
       44 
44 
     | 
    
         
             
                      return /* @__PURE__ */ jsx(
         
     | 
| 
         @@ -67,4 +67,4 @@ SkeletonText.__ui__ = "SkeletonText"; 
     | 
|
| 
       67 
67 
     | 
    
         
             
            export {
         
     | 
| 
       68 
68 
     | 
    
         
             
              SkeletonText
         
     | 
| 
       69 
69 
     | 
    
         
             
            };
         
     | 
| 
       70 
     | 
    
         
            -
            //# sourceMappingURL=chunk- 
     | 
| 
      
 70 
     | 
    
         
            +
            //# sourceMappingURL=chunk-2U4SAIJD.mjs.map
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            {"version":3,"sources":["../src/skeleton-text.tsx"],"sourcesContent":["import type { CSSUIProps, CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { useValue } from \"@yamada-ui/use-value\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type { SkeletonProps } from \"./skeleton\"\nimport { Skeleton } from \"./skeleton\"\n\ninterface SkeletonTextOptions {\n  /**\n   * The CSS `gap` property.\n   */\n  gap?: CSSUIProps[\"gap\"]\n  /**\n   * The CSS `height` property.\n   */\n  textHeight?: CSSUIProps[\"height\"]\n}\n\nexport interface SkeletonTextProps\n  extends Omit<SkeletonProps, \"isFitContent\">,\n    SkeletonTextOptions {}\n\nexport const SkeletonText = forwardRef<SkeletonTextProps, \"div\">(\n  (\n    {\n      className,\n      lineClamp: _lineClamp = 3,\n      startColor,\n      endColor,\n      fadeDuration,\n      speed,\n      isLoaded,\n      gap = \"fallback(2, 0.5rem)\",\n      textHeight = \"fallback(2, 0.5rem)\",\n      children,\n      ...rest\n    },\n    ref,\n  ) => {\n    const lineClamp = useValue(_lineClamp)\n\n    const css: CSSUIObject = {\n      w: \"100%\",\n    }\n\n    return (\n      <ui.div\n        ref={ref}\n        className={cx(\"ui-skeleton__text\", className)}\n        __css={css}\n        {...rest}\n      >\n        {Array(lineClamp)\n          .fill(0)\n          .map((_, index) => {\n            if (isLoaded && index > 0) return null\n\n            const isLast = index + 1 === lineClamp\n\n            const props: SkeletonProps = !isLoaded\n              ? {\n                  mb: !isLast ? gap : undefined,\n                  w: lineClamp > 1 ? (!isLast ? \"100%\" : \"80%\") : \"100%\",\n                  h: textHeight,\n                }\n              : {}\n\n            return (\n              <Skeleton\n                key={index}\n                {...{\n                  startColor,\n                  endColor,\n                  fadeDuration,\n                  speed,\n                  isLoaded,\n                  ...props,\n                }}\n              >\n                {index === 0 ? children : undefined}\n              </Skeleton>\n            )\n          })}\n      </ui.div>\n    )\n  },\n)\n\nSkeletonText.displayName = \"SkeletonText\"\nSkeletonText.__ui__ = \"SkeletonText\"\n"],"mappings":";;;;;;AACA,SAAS,IAAI,kBAAkB;AAC/B,SAAS,gBAAgB;AACzB,SAAS,UAAU;AAiEL;AA9CP,IAAM,eAAe;AAAA,EAC1B,CACE;AAAA,IACE;AAAA,IACA,WAAW,aAAa;AAAA,IACxB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,MAAM;AAAA,IACN,aAAa;AAAA,IACb;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,UAAM,YAAY,SAAS,UAAU;AAErC,UAAM,MAAmB;AAAA,MACvB,GAAG;AAAA,IACL;AAEA,WACE;AAAA,MAAC,GAAG;AAAA,MAAH;AAAA,QACC;AAAA,QACA,WAAW,GAAG,qBAAqB,SAAS;AAAA,QAC5C,OAAO;AAAA,QACN,GAAG;AAAA,QAEH,gBAAM,SAAS,EACb,KAAK,CAAC,EACN,IAAI,CAAC,GAAG,UAAU;AACjB,cAAI,YAAY,QAAQ,EAAG,QAAO;AAElC,gBAAM,SAAS,QAAQ,MAAM;AAE7B,gBAAM,QAAuB,CAAC,WAC1B;AAAA,YACE,IAAI,CAAC,SAAS,MAAM;AAAA,YACpB,GAAG,YAAY,IAAK,CAAC,SAAS,SAAS,QAAS;AAAA,YAChD,GAAG;AAAA,UACL,IACA,CAAC;AAEL,iBACE;AAAA,YAAC;AAAA;AAAA,cAEE,GAAG;AAAA,gBACF;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA,GAAG;AAAA,cACL;AAAA,cAEC,oBAAU,IAAI,WAAW;AAAA;AAAA,YAVrB;AAAA,UAWP;AAAA,QAEJ,CAAC;AAAA;AAAA,IACL;AAAA,EAEJ;AACF;AAEA,aAAa,cAAc;AAC3B,aAAa,SAAS;","names":[]}
         
     | 
| 
         @@ -16,8 +16,8 @@ var Skeleton = forwardRef((props, ref) => { 
     | 
|
| 
       16 
16 
     | 
    
         
             
              const [styles, mergedProps] = useComponentStyle("Skeleton", props);
         
     | 
| 
       17 
17 
     | 
    
         
             
              let {
         
     | 
| 
       18 
18 
     | 
    
         
             
                className,
         
     | 
| 
       19 
     | 
    
         
            -
                startColor,
         
     | 
| 
       20 
     | 
    
         
            -
                endColor,
         
     | 
| 
      
 19 
     | 
    
         
            +
                startColor: _startColor,
         
     | 
| 
      
 20 
     | 
    
         
            +
                endColor: _endColor,
         
     | 
| 
       21 
21 
     | 
    
         
             
                fadeDuration = 0.4,
         
     | 
| 
       22 
22 
     | 
    
         
             
                speed = 0.8,
         
     | 
| 
       23 
23 
     | 
    
         
             
                isLoaded,
         
     | 
| 
         @@ -28,8 +28,8 @@ var Skeleton = forwardRef((props, ref) => { 
     | 
|
| 
       28 
28 
     | 
    
         
             
              const [isMounted] = useIsMounted();
         
     | 
| 
       29 
29 
     | 
    
         
             
              const validChildren = getValidChildren(children);
         
     | 
| 
       30 
30 
     | 
    
         
             
              const prevIsLoaded = usePrevious(isLoaded);
         
     | 
| 
       31 
     | 
    
         
            -
              const  
     | 
| 
       32 
     | 
    
         
            -
              const  
     | 
| 
      
 31 
     | 
    
         
            +
              const startColor = useValue(_startColor);
         
     | 
| 
      
 32 
     | 
    
         
            +
              const endColor = useValue(_endColor);
         
     | 
| 
       33 
33 
     | 
    
         
             
              const hasChildren = !!validChildren.length;
         
     | 
| 
       34 
34 
     | 
    
         
             
              isFitContent != null ? isFitContent : isFitContent = hasChildren;
         
     | 
| 
       35 
35 
     | 
    
         
             
              const fadeIn = useAnimation({
         
     | 
| 
         @@ -46,12 +46,12 @@ var Skeleton = forwardRef((props, ref) => { 
     | 
|
| 
       46 
46 
     | 
    
         
             
              const animation = useAnimation({
         
     | 
| 
       47 
47 
     | 
    
         
             
                keyframes: {
         
     | 
| 
       48 
48 
     | 
    
         
             
                  "0%": {
         
     | 
| 
       49 
     | 
    
         
            -
                    borderColor:  
     | 
| 
       50 
     | 
    
         
            -
                    background:  
     | 
| 
      
 49 
     | 
    
         
            +
                    borderColor: startColor,
         
     | 
| 
      
 50 
     | 
    
         
            +
                    background: startColor
         
     | 
| 
       51 
51 
     | 
    
         
             
                  },
         
     | 
| 
       52 
52 
     | 
    
         
             
                  "100%": {
         
     | 
| 
       53 
     | 
    
         
            -
                    borderColor:  
     | 
| 
       54 
     | 
    
         
            -
                    background:  
     | 
| 
      
 53 
     | 
    
         
            +
                    borderColor: endColor,
         
     | 
| 
      
 54 
     | 
    
         
            +
                    background: endColor
         
     | 
| 
       55 
55 
     | 
    
         
             
                  }
         
     | 
| 
       56 
56 
     | 
    
         
             
                },
         
     | 
| 
       57 
57 
     | 
    
         
             
                duration: typeof speed === "string" ? speed : `${speed}s`,
         
     | 
| 
         @@ -108,4 +108,4 @@ Skeleton.__ui__ = "Skeleton"; 
     | 
|
| 
       108 
108 
     | 
    
         
             
            export {
         
     | 
| 
       109 
109 
     | 
    
         
             
              Skeleton
         
     | 
| 
       110 
110 
     | 
    
         
             
            };
         
     | 
| 
       111 
     | 
    
         
            -
            //# sourceMappingURL=chunk- 
     | 
| 
      
 111 
     | 
    
         
            +
            //# sourceMappingURL=chunk-BWLL2ZTF.mjs.map
         
     | 
| 
         @@ -0,0 +1 @@ 
     | 
|
| 
      
 1 
     | 
    
         
            +
            {"version":3,"sources":["../src/skeleton.tsx"],"sourcesContent":["import type {\n  CSSUIObject,\n  HTMLUIProps,\n  ThemeProps,\n  CSSUIProps,\n} from \"@yamada-ui/core\"\nimport {\n  ui,\n  forwardRef,\n  omitThemeProps,\n  useComponentStyle,\n} from \"@yamada-ui/core\"\nimport { useAnimation } from \"@yamada-ui/use-animation\"\nimport { usePrevious } from \"@yamada-ui/use-previous\"\nimport { useValue } from \"@yamada-ui/use-value\"\nimport { cx, getValidChildren, useIsMounted } from \"@yamada-ui/utils\"\n\ninterface SkeletonOptions {\n  /**\n   * The color at the animation start.\n   */\n  startColor?: CSSUIProps[\"color\"]\n  /**\n   * The color at the animation end.\n   */\n  endColor?: CSSUIProps[\"color\"]\n  /**\n   * If `true`, it'll render its children with a nice fade transition.\n   *\n   * @default false\n   */\n  isLoaded?: boolean\n  /**\n   * The animation speed in seconds.\n   *\n   * @default 0.8\n   */\n  speed?: string | number\n  /**\n   * The fadeIn duration in seconds. Requires `isLoaded` toggled to `true` in order to see the transition.\n   *\n   * @default 0.4\n   */\n  fadeDuration?: string | number\n  /**\n   * If `true`, the skeleton will take the width of it's children.\n   *\n   * @default false\n   */\n  isFitContent?: boolean\n}\n\nexport interface SkeletonProps\n  extends HTMLUIProps,\n    ThemeProps<\"Skeleton\">,\n    SkeletonOptions {}\n\n/**\n * `Skeleton` is a component that acts as a placeholder until content is loaded.\n *\n * @see Docs https://yamada-ui.com/components/feedback/skeleton\n */\nexport const Skeleton = forwardRef<SkeletonProps, \"div\">((props, ref) => {\n  const [styles, mergedProps] = useComponentStyle(\"Skeleton\", props)\n  let {\n    className,\n    startColor: _startColor,\n    endColor: _endColor,\n    fadeDuration = 0.4,\n    speed = 0.8,\n    isLoaded,\n    isFitContent,\n    children,\n    ...rest\n  } = omitThemeProps(mergedProps)\n  const [isMounted] = useIsMounted()\n  const validChildren = getValidChildren(children)\n  const prevIsLoaded = usePrevious(isLoaded)\n  const startColor = useValue(_startColor)\n  const endColor = useValue(_endColor)\n  const hasChildren = !!validChildren.length\n\n  isFitContent ??= hasChildren\n\n  const fadeIn = useAnimation({\n    keyframes: {\n      \"0%\": {\n        opacity: 0,\n      },\n      \"100%\": {\n        opacity: 1,\n      },\n    },\n    duration:\n      typeof fadeDuration === \"string\" ? fadeDuration : `${fadeDuration}s`,\n  })\n\n  const animation = useAnimation({\n    keyframes: {\n      \"0%\": {\n        borderColor: startColor,\n        background: startColor,\n      },\n      \"100%\": {\n        borderColor: endColor,\n        background: endColor,\n      },\n    },\n    duration: typeof speed === \"string\" ? speed : `${speed}s`,\n    iterationCount: \"infinite\",\n    direction: \"alternate\",\n    timingFunction: \"linear\",\n  })\n\n  const css: CSSUIObject = {\n    w: isFitContent ? \"fit-content\" : \"100%\",\n    maxW: \"100%\",\n    h: isFitContent ? \"fit-content\" : \"fallback(4, 1rem)\",\n    boxShadow: \"none\",\n    backgroundClip: \"padding-box\",\n    cursor: \"default\",\n    color: \"transparent\",\n    pointerEvents: \"none\",\n    userSelect: \"none\",\n    \"&::before, &::after, *\": {\n      visibility: \"hidden\",\n    },\n    ...styles,\n  }\n\n  if (isLoaded) {\n    const animation = !isMounted() || prevIsLoaded ? \"none\" : fadeIn\n\n    return (\n      <ui.div\n        ref={ref}\n        className={cx(\"ui-skeleton\", \"ui-skeleton--loaded\", className)}\n        {...rest}\n        animation={animation}\n        aria-busy=\"false\"\n      >\n        {validChildren}\n      </ui.div>\n    )\n  } else {\n    return (\n      <ui.div\n        ref={ref}\n        className={cx(\"ui-skeleton\", className)}\n        __css={css}\n        {...rest}\n        animation={animation}\n        aria-busy=\"true\"\n      >\n        {validChildren}\n      </ui.div>\n    )\n  }\n})\n\nSkeleton.displayName = \"Skeleton\"\nSkeleton.__ui__ = \"Skeleton\"\n"],"mappings":";;;AAMA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,oBAAoB;AAC7B,SAAS,mBAAmB;AAC5B,SAAS,gBAAgB;AACzB,SAAS,IAAI,kBAAkB,oBAAoB;AAuH7C;AAxEC,IAAM,WAAW,WAAiC,CAAC,OAAO,QAAQ;AACvE,QAAM,CAAC,QAAQ,WAAW,IAAI,kBAAkB,YAAY,KAAK;AACjE,MAAI;AAAA,IACF;AAAA,IACA,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,eAAe;AAAA,IACf,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,IAAI,eAAe,WAAW;AAC9B,QAAM,CAAC,SAAS,IAAI,aAAa;AACjC,QAAM,gBAAgB,iBAAiB,QAAQ;AAC/C,QAAM,eAAe,YAAY,QAAQ;AACzC,QAAM,aAAa,SAAS,WAAW;AACvC,QAAM,WAAW,SAAS,SAAS;AACnC,QAAM,cAAc,CAAC,CAAC,cAAc;AAEpC,uDAAiB;AAEjB,QAAM,SAAS,aAAa;AAAA,IAC1B,WAAW;AAAA,MACT,MAAM;AAAA,QACJ,SAAS;AAAA,MACX;AAAA,MACA,QAAQ;AAAA,QACN,SAAS;AAAA,MACX;AAAA,IACF;AAAA,IACA,UACE,OAAO,iBAAiB,WAAW,eAAe,GAAG,YAAY;AAAA,EACrE,CAAC;AAED,QAAM,YAAY,aAAa;AAAA,IAC7B,WAAW;AAAA,MACT,MAAM;AAAA,QACJ,aAAa;AAAA,QACb,YAAY;AAAA,MACd;AAAA,MACA,QAAQ;AAAA,QACN,aAAa;AAAA,QACb,YAAY;AAAA,MACd;AAAA,IACF;AAAA,IACA,UAAU,OAAO,UAAU,WAAW,QAAQ,GAAG,KAAK;AAAA,IACtD,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,gBAAgB;AAAA,EAClB,CAAC;AAED,QAAM,MAAmB;AAAA,IACvB,GAAG,eAAe,gBAAgB;AAAA,IAClC,MAAM;AAAA,IACN,GAAG,eAAe,gBAAgB;AAAA,IAClC,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,eAAe;AAAA,IACf,YAAY;AAAA,IACZ,0BAA0B;AAAA,MACxB,YAAY;AAAA,IACd;AAAA,IACA,GAAG;AAAA,EACL;AAEA,MAAI,UAAU;AACZ,UAAMA,aAAY,CAAC,UAAU,KAAK,eAAe,SAAS;AAE1D,WACE;AAAA,MAAC,GAAG;AAAA,MAAH;AAAA,QACC;AAAA,QACA,WAAW,GAAG,eAAe,uBAAuB,SAAS;AAAA,QAC5D,GAAG;AAAA,QACJ,WAAWA;AAAA,QACX,aAAU;AAAA,QAET;AAAA;AAAA,IACH;AAAA,EAEJ,OAAO;AACL,WACE;AAAA,MAAC,GAAG;AAAA,MAAH;AAAA,QACC;AAAA,QACA,WAAW,GAAG,eAAe,SAAS;AAAA,QACtC,OAAO;AAAA,QACN,GAAG;AAAA,QACJ;AAAA,QACA,aAAU;AAAA,QAET;AAAA;AAAA,IACH;AAAA,EAEJ;AACF,CAAC;AAED,SAAS,cAAc;AACvB,SAAS,SAAS;","names":["animation"]}
         
     | 
    
        package/dist/index.js
    CHANGED
    
    | 
         @@ -38,8 +38,8 @@ var Skeleton = (0, import_core.forwardRef)((props, ref) => { 
     | 
|
| 
       38 
38 
     | 
    
         
             
              const [styles, mergedProps] = (0, import_core.useComponentStyle)("Skeleton", props);
         
     | 
| 
       39 
39 
     | 
    
         
             
              let {
         
     | 
| 
       40 
40 
     | 
    
         
             
                className,
         
     | 
| 
       41 
     | 
    
         
            -
                startColor,
         
     | 
| 
       42 
     | 
    
         
            -
                endColor,
         
     | 
| 
      
 41 
     | 
    
         
            +
                startColor: _startColor,
         
     | 
| 
      
 42 
     | 
    
         
            +
                endColor: _endColor,
         
     | 
| 
       43 
43 
     | 
    
         
             
                fadeDuration = 0.4,
         
     | 
| 
       44 
44 
     | 
    
         
             
                speed = 0.8,
         
     | 
| 
       45 
45 
     | 
    
         
             
                isLoaded,
         
     | 
| 
         @@ -50,8 +50,8 @@ var Skeleton = (0, import_core.forwardRef)((props, ref) => { 
     | 
|
| 
       50 
50 
     | 
    
         
             
              const [isMounted] = (0, import_utils.useIsMounted)();
         
     | 
| 
       51 
51 
     | 
    
         
             
              const validChildren = (0, import_utils.getValidChildren)(children);
         
     | 
| 
       52 
52 
     | 
    
         
             
              const prevIsLoaded = (0, import_use_previous.usePrevious)(isLoaded);
         
     | 
| 
       53 
     | 
    
         
            -
              const  
     | 
| 
       54 
     | 
    
         
            -
              const  
     | 
| 
      
 53 
     | 
    
         
            +
              const startColor = (0, import_use_value.useValue)(_startColor);
         
     | 
| 
      
 54 
     | 
    
         
            +
              const endColor = (0, import_use_value.useValue)(_endColor);
         
     | 
| 
       55 
55 
     | 
    
         
             
              const hasChildren = !!validChildren.length;
         
     | 
| 
       56 
56 
     | 
    
         
             
              isFitContent != null ? isFitContent : isFitContent = hasChildren;
         
     | 
| 
       57 
57 
     | 
    
         
             
              const fadeIn = (0, import_use_animation.useAnimation)({
         
     | 
| 
         @@ -68,12 +68,12 @@ var Skeleton = (0, import_core.forwardRef)((props, ref) => { 
     | 
|
| 
       68 
68 
     | 
    
         
             
              const animation = (0, import_use_animation.useAnimation)({
         
     | 
| 
       69 
69 
     | 
    
         
             
                keyframes: {
         
     | 
| 
       70 
70 
     | 
    
         
             
                  "0%": {
         
     | 
| 
       71 
     | 
    
         
            -
                    borderColor:  
     | 
| 
       72 
     | 
    
         
            -
                    background:  
     | 
| 
      
 71 
     | 
    
         
            +
                    borderColor: startColor,
         
     | 
| 
      
 72 
     | 
    
         
            +
                    background: startColor
         
     | 
| 
       73 
73 
     | 
    
         
             
                  },
         
     | 
| 
       74 
74 
     | 
    
         
             
                  "100%": {
         
     | 
| 
       75 
     | 
    
         
            -
                    borderColor:  
     | 
| 
       76 
     | 
    
         
            -
                    background:  
     | 
| 
      
 75 
     | 
    
         
            +
                    borderColor: endColor,
         
     | 
| 
      
 76 
     | 
    
         
            +
                    background: endColor
         
     | 
| 
       77 
77 
     | 
    
         
             
                  }
         
     | 
| 
       78 
78 
     | 
    
         
             
                },
         
     | 
| 
       79 
79 
     | 
    
         
             
                duration: typeof speed === "string" ? speed : `${speed}s`,
         
     | 
| 
         @@ -167,7 +167,7 @@ var import_jsx_runtime3 = require("react/jsx-runtime"); 
     | 
|
| 
       167 
167 
     | 
    
         
             
            var SkeletonText = (0, import_core3.forwardRef)(
         
     | 
| 
       168 
168 
     | 
    
         
             
              ({
         
     | 
| 
       169 
169 
     | 
    
         
             
                className,
         
     | 
| 
       170 
     | 
    
         
            -
                lineClamp = 3,
         
     | 
| 
      
 170 
     | 
    
         
            +
                lineClamp: _lineClamp = 3,
         
     | 
| 
       171 
171 
     | 
    
         
             
                startColor,
         
     | 
| 
       172 
172 
     | 
    
         
             
                endColor,
         
     | 
| 
       173 
173 
     | 
    
         
             
                fadeDuration,
         
     | 
| 
         @@ -178,7 +178,7 @@ var SkeletonText = (0, import_core3.forwardRef)( 
     | 
|
| 
       178 
178 
     | 
    
         
             
                children,
         
     | 
| 
       179 
179 
     | 
    
         
             
                ...rest
         
     | 
| 
       180 
180 
     | 
    
         
             
              }, ref) => {
         
     | 
| 
       181 
     | 
    
         
            -
                const  
     | 
| 
      
 181 
     | 
    
         
            +
                const lineClamp = (0, import_use_value2.useValue)(_lineClamp);
         
     | 
| 
       182 
182 
     | 
    
         
             
                const css = {
         
     | 
| 
       183 
183 
     | 
    
         
             
                  w: "100%"
         
     | 
| 
       184 
184 
     | 
    
         
             
                };
         
     | 
| 
         @@ -189,12 +189,12 @@ var SkeletonText = (0, import_core3.forwardRef)( 
     | 
|
| 
       189 
189 
     | 
    
         
             
                    className: (0, import_utils3.cx)("ui-skeleton__text", className),
         
     | 
| 
       190 
190 
     | 
    
         
             
                    __css: css,
         
     | 
| 
       191 
191 
     | 
    
         
             
                    ...rest,
         
     | 
| 
       192 
     | 
    
         
            -
                    children: Array( 
     | 
| 
      
 192 
     | 
    
         
            +
                    children: Array(lineClamp).fill(0).map((_, index) => {
         
     | 
| 
       193 
193 
     | 
    
         
             
                      if (isLoaded && index > 0) return null;
         
     | 
| 
       194 
     | 
    
         
            -
                      const isLast = index + 1 ===  
     | 
| 
      
 194 
     | 
    
         
            +
                      const isLast = index + 1 === lineClamp;
         
     | 
| 
       195 
195 
     | 
    
         
             
                      const props = !isLoaded ? {
         
     | 
| 
       196 
196 
     | 
    
         
             
                        mb: !isLast ? gap : void 0,
         
     | 
| 
       197 
     | 
    
         
            -
                        w:  
     | 
| 
      
 197 
     | 
    
         
            +
                        w: lineClamp > 1 ? !isLast ? "100%" : "80%" : "100%",
         
     | 
| 
       198 
198 
     | 
    
         
             
                        h: textHeight
         
     | 
| 
       199 
199 
     | 
    
         
             
                      } : {};
         
     | 
| 
       200 
200 
     | 
    
         
             
                      return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
         
     | 
    
        package/dist/index.js.map
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"sources":["../src/index.ts","../src/skeleton.tsx","../src/skeleton-circle.tsx","../src/skeleton-text.tsx"],"sourcesContent":["export { Skeleton } from \"./skeleton\"\nexport type { SkeletonProps } from \"./skeleton\"\nexport { SkeletonCircle } from \"./skeleton-circle\"\nexport type { SkeletonCircleProps } from \"./skeleton-circle\"\nexport { SkeletonText } from \"./skeleton-text\"\nexport type { SkeletonTextProps } from \"./skeleton-text\"\n","import type {\n  CSSUIObject,\n  HTMLUIProps,\n  ThemeProps,\n  CSSUIProps,\n} from \"@yamada-ui/core\"\nimport {\n  ui,\n  forwardRef,\n  omitThemeProps,\n  useComponentStyle,\n} from \"@yamada-ui/core\"\nimport { useAnimation } from \"@yamada-ui/use-animation\"\nimport { usePrevious } from \"@yamada-ui/use-previous\"\nimport { useValue } from \"@yamada-ui/use-value\"\nimport { cx, getValidChildren, useIsMounted } from \"@yamada-ui/utils\"\n\ninterface SkeletonOptions {\n  /**\n   * The color at the animation start.\n   */\n  startColor?: CSSUIProps[\"color\"]\n  /**\n   * The color at the animation end.\n   */\n  endColor?: CSSUIProps[\"color\"]\n  /**\n   * If `true`, it'll render its children with a nice fade transition.\n   *\n   * @default false\n   */\n  isLoaded?: boolean\n  /**\n   * The animation speed in seconds.\n   *\n   * @default 0.8\n   */\n  speed?: string | number\n  /**\n   * The fadeIn duration in seconds. Requires `isLoaded` toggled to `true` in order to see the transition.\n   *\n   * @default 0.4\n   */\n  fadeDuration?: string | number\n  /**\n   * If `true`, the skeleton will take the width of it's children.\n   *\n   * @default false\n   */\n  isFitContent?: boolean\n}\n\nexport interface SkeletonProps\n  extends HTMLUIProps,\n    ThemeProps<\"Skeleton\">,\n    SkeletonOptions {}\n\n/**\n * `Skeleton` is a component that acts as a placeholder until content is loaded.\n *\n * @see Docs https://yamada-ui.com/components/feedback/skeleton\n */\nexport const Skeleton = forwardRef<SkeletonProps, \"div\">((props, ref) => {\n  const [styles, mergedProps] = useComponentStyle(\"Skeleton\", props)\n  let {\n    className,\n    startColor,\n    endColor,\n    fadeDuration = 0.4,\n    speed = 0.8,\n    isLoaded,\n    isFitContent,\n    children,\n    ...rest\n  } = omitThemeProps(mergedProps)\n  const [isMounted] = useIsMounted()\n  const validChildren = getValidChildren(children)\n  const prevIsLoaded = usePrevious(isLoaded)\n  const computedStartColor = useValue(startColor)\n  const computedEndColor = useValue(endColor)\n  const hasChildren = !!validChildren.length\n\n  isFitContent ??= hasChildren\n\n  const fadeIn = useAnimation({\n    keyframes: {\n      \"0%\": {\n        opacity: 0,\n      },\n      \"100%\": {\n        opacity: 1,\n      },\n    },\n    duration:\n      typeof fadeDuration === \"string\" ? fadeDuration : `${fadeDuration}s`,\n  })\n\n  const animation = useAnimation({\n    keyframes: {\n      \"0%\": {\n        borderColor: computedStartColor,\n        background: computedStartColor,\n      },\n      \"100%\": {\n        borderColor: computedEndColor,\n        background: computedEndColor,\n      },\n    },\n    duration: typeof speed === \"string\" ? speed : `${speed}s`,\n    iterationCount: \"infinite\",\n    direction: \"alternate\",\n    timingFunction: \"linear\",\n  })\n\n  const css: CSSUIObject = {\n    w: isFitContent ? \"fit-content\" : \"100%\",\n    maxW: \"100%\",\n    h: isFitContent ? \"fit-content\" : \"fallback(4, 1rem)\",\n    boxShadow: \"none\",\n    backgroundClip: \"padding-box\",\n    cursor: \"default\",\n    color: \"transparent\",\n    pointerEvents: \"none\",\n    userSelect: \"none\",\n    \"&::before, &::after, *\": {\n      visibility: \"hidden\",\n    },\n    ...styles,\n  }\n\n  if (isLoaded) {\n    const animation = !isMounted() || prevIsLoaded ? \"none\" : fadeIn\n\n    return (\n      <ui.div\n        ref={ref}\n        className={cx(\"ui-skeleton\", \"ui-skeleton--loaded\", className)}\n        {...rest}\n        animation={animation}\n        aria-busy=\"false\"\n      >\n        {validChildren}\n      </ui.div>\n    )\n  } else {\n    return (\n      <ui.div\n        ref={ref}\n        className={cx(\"ui-skeleton\", className)}\n        __css={css}\n        {...rest}\n        animation={animation}\n        aria-busy=\"true\"\n      >\n        {validChildren}\n      </ui.div>\n    )\n  }\n})\n\nSkeleton.displayName = \"Skeleton\"\nSkeleton.__ui__ = \"Skeleton\"\n","import { forwardRef } from \"@yamada-ui/core\"\nimport { cx, getValidChildren } from \"@yamada-ui/utils\"\nimport type { SkeletonProps } from \"./skeleton\"\nimport { Skeleton } from \"./skeleton\"\n\nexport interface SkeletonCircleProps extends SkeletonProps {}\n\nexport const SkeletonCircle = forwardRef<SkeletonCircleProps, \"div\">(\n  (\n    {\n      className,\n      boxSize = \"fallback(12, 3rem)\",\n      children,\n      isFitContent,\n      ...rest\n    },\n    ref,\n  ) => {\n    const validChildren = getValidChildren(children)\n    const hasChildren = !!validChildren.length\n\n    isFitContent ??= hasChildren\n\n    return (\n      <Skeleton\n        ref={ref}\n        className={cx(\"ui-skeleton__circle\", className)}\n        rounded=\"fallback(full, 9999px)\"\n        isFitContent={isFitContent}\n        {...(!isFitContent ? { boxSize } : {})}\n        {...rest}\n      >\n        {validChildren}\n      </Skeleton>\n    )\n  },\n)\n\nSkeletonCircle.displayName = \"SkeletonCircle\"\nSkeletonCircle.__ui__ = \"SkeletonCircle\"\n","import type { CSSUIProps, CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { useValue } from \"@yamada-ui/use-value\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type { SkeletonProps } from \"./skeleton\"\nimport { Skeleton } from \"./skeleton\"\n\ninterface SkeletonTextOptions {\n  /**\n   * The CSS `gap` property.\n   */\n  gap?: CSSUIProps[\"gap\"]\n  /**\n   * The CSS `height` property.\n   */\n  textHeight?: CSSUIProps[\"height\"]\n}\n\nexport interface SkeletonTextProps\n  extends Omit<SkeletonProps, \"isFitContent\">,\n    SkeletonTextOptions {}\n\nexport const SkeletonText = forwardRef<SkeletonTextProps, \"div\">(\n  (\n    {\n      className,\n      lineClamp = 3,\n      startColor,\n      endColor,\n      fadeDuration,\n      speed,\n      isLoaded,\n      gap = \"fallback(2, 0.5rem)\",\n      textHeight = \"fallback(2, 0.5rem)\",\n      children,\n      ...rest\n    },\n    ref,\n  ) => {\n    const computedLineClamp = useValue(lineClamp)\n\n    const css: CSSUIObject = {\n      w: \"100%\",\n    }\n\n    return (\n      <ui.div\n        ref={ref}\n        className={cx(\"ui-skeleton__text\", className)}\n        __css={css}\n        {...rest}\n      >\n        {Array(computedLineClamp)\n          .fill(0)\n          .map((_, index) => {\n            if (isLoaded && index > 0) return null\n\n            const isLast = index + 1 === computedLineClamp\n\n            const props: SkeletonProps = !isLoaded\n              ? {\n                  mb: !isLast ? gap : undefined,\n                  w:\n                    computedLineClamp > 1 ? (!isLast ? \"100%\" : \"80%\") : \"100%\",\n                  h: textHeight,\n                }\n              : {}\n\n            return (\n              <Skeleton\n                key={index}\n                {...{\n                  startColor,\n                  endColor,\n                  fadeDuration,\n                  speed,\n                  isLoaded,\n                  ...props,\n                }}\n              >\n                {index === 0 ? children : undefined}\n              </Skeleton>\n            )\n          })}\n      </ui.div>\n    )\n  },\n)\n\nSkeletonText.displayName = \"SkeletonText\"\nSkeletonText.__ui__ = \"SkeletonText\"\n"],"mappings":"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","names":["animation","import_core","import_utils","import_jsx_runtime","import_core","import_use_value","import_utils","import_jsx_runtime"]}
         
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"sources":["../src/index.ts","../src/skeleton.tsx","../src/skeleton-circle.tsx","../src/skeleton-text.tsx"],"sourcesContent":["export { Skeleton } from \"./skeleton\"\nexport type { SkeletonProps } from \"./skeleton\"\nexport { SkeletonCircle } from \"./skeleton-circle\"\nexport type { SkeletonCircleProps } from \"./skeleton-circle\"\nexport { SkeletonText } from \"./skeleton-text\"\nexport type { SkeletonTextProps } from \"./skeleton-text\"\n","import type {\n  CSSUIObject,\n  HTMLUIProps,\n  ThemeProps,\n  CSSUIProps,\n} from \"@yamada-ui/core\"\nimport {\n  ui,\n  forwardRef,\n  omitThemeProps,\n  useComponentStyle,\n} from \"@yamada-ui/core\"\nimport { useAnimation } from \"@yamada-ui/use-animation\"\nimport { usePrevious } from \"@yamada-ui/use-previous\"\nimport { useValue } from \"@yamada-ui/use-value\"\nimport { cx, getValidChildren, useIsMounted } from \"@yamada-ui/utils\"\n\ninterface SkeletonOptions {\n  /**\n   * The color at the animation start.\n   */\n  startColor?: CSSUIProps[\"color\"]\n  /**\n   * The color at the animation end.\n   */\n  endColor?: CSSUIProps[\"color\"]\n  /**\n   * If `true`, it'll render its children with a nice fade transition.\n   *\n   * @default false\n   */\n  isLoaded?: boolean\n  /**\n   * The animation speed in seconds.\n   *\n   * @default 0.8\n   */\n  speed?: string | number\n  /**\n   * The fadeIn duration in seconds. Requires `isLoaded` toggled to `true` in order to see the transition.\n   *\n   * @default 0.4\n   */\n  fadeDuration?: string | number\n  /**\n   * If `true`, the skeleton will take the width of it's children.\n   *\n   * @default false\n   */\n  isFitContent?: boolean\n}\n\nexport interface SkeletonProps\n  extends HTMLUIProps,\n    ThemeProps<\"Skeleton\">,\n    SkeletonOptions {}\n\n/**\n * `Skeleton` is a component that acts as a placeholder until content is loaded.\n *\n * @see Docs https://yamada-ui.com/components/feedback/skeleton\n */\nexport const Skeleton = forwardRef<SkeletonProps, \"div\">((props, ref) => {\n  const [styles, mergedProps] = useComponentStyle(\"Skeleton\", props)\n  let {\n    className,\n    startColor: _startColor,\n    endColor: _endColor,\n    fadeDuration = 0.4,\n    speed = 0.8,\n    isLoaded,\n    isFitContent,\n    children,\n    ...rest\n  } = omitThemeProps(mergedProps)\n  const [isMounted] = useIsMounted()\n  const validChildren = getValidChildren(children)\n  const prevIsLoaded = usePrevious(isLoaded)\n  const startColor = useValue(_startColor)\n  const endColor = useValue(_endColor)\n  const hasChildren = !!validChildren.length\n\n  isFitContent ??= hasChildren\n\n  const fadeIn = useAnimation({\n    keyframes: {\n      \"0%\": {\n        opacity: 0,\n      },\n      \"100%\": {\n        opacity: 1,\n      },\n    },\n    duration:\n      typeof fadeDuration === \"string\" ? fadeDuration : `${fadeDuration}s`,\n  })\n\n  const animation = useAnimation({\n    keyframes: {\n      \"0%\": {\n        borderColor: startColor,\n        background: startColor,\n      },\n      \"100%\": {\n        borderColor: endColor,\n        background: endColor,\n      },\n    },\n    duration: typeof speed === \"string\" ? speed : `${speed}s`,\n    iterationCount: \"infinite\",\n    direction: \"alternate\",\n    timingFunction: \"linear\",\n  })\n\n  const css: CSSUIObject = {\n    w: isFitContent ? \"fit-content\" : \"100%\",\n    maxW: \"100%\",\n    h: isFitContent ? \"fit-content\" : \"fallback(4, 1rem)\",\n    boxShadow: \"none\",\n    backgroundClip: \"padding-box\",\n    cursor: \"default\",\n    color: \"transparent\",\n    pointerEvents: \"none\",\n    userSelect: \"none\",\n    \"&::before, &::after, *\": {\n      visibility: \"hidden\",\n    },\n    ...styles,\n  }\n\n  if (isLoaded) {\n    const animation = !isMounted() || prevIsLoaded ? \"none\" : fadeIn\n\n    return (\n      <ui.div\n        ref={ref}\n        className={cx(\"ui-skeleton\", \"ui-skeleton--loaded\", className)}\n        {...rest}\n        animation={animation}\n        aria-busy=\"false\"\n      >\n        {validChildren}\n      </ui.div>\n    )\n  } else {\n    return (\n      <ui.div\n        ref={ref}\n        className={cx(\"ui-skeleton\", className)}\n        __css={css}\n        {...rest}\n        animation={animation}\n        aria-busy=\"true\"\n      >\n        {validChildren}\n      </ui.div>\n    )\n  }\n})\n\nSkeleton.displayName = \"Skeleton\"\nSkeleton.__ui__ = \"Skeleton\"\n","import { forwardRef } from \"@yamada-ui/core\"\nimport { cx, getValidChildren } from \"@yamada-ui/utils\"\nimport type { SkeletonProps } from \"./skeleton\"\nimport { Skeleton } from \"./skeleton\"\n\nexport interface SkeletonCircleProps extends SkeletonProps {}\n\nexport const SkeletonCircle = forwardRef<SkeletonCircleProps, \"div\">(\n  (\n    {\n      className,\n      boxSize = \"fallback(12, 3rem)\",\n      children,\n      isFitContent,\n      ...rest\n    },\n    ref,\n  ) => {\n    const validChildren = getValidChildren(children)\n    const hasChildren = !!validChildren.length\n\n    isFitContent ??= hasChildren\n\n    return (\n      <Skeleton\n        ref={ref}\n        className={cx(\"ui-skeleton__circle\", className)}\n        rounded=\"fallback(full, 9999px)\"\n        isFitContent={isFitContent}\n        {...(!isFitContent ? { boxSize } : {})}\n        {...rest}\n      >\n        {validChildren}\n      </Skeleton>\n    )\n  },\n)\n\nSkeletonCircle.displayName = \"SkeletonCircle\"\nSkeletonCircle.__ui__ = \"SkeletonCircle\"\n","import type { CSSUIProps, CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { useValue } from \"@yamada-ui/use-value\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type { SkeletonProps } from \"./skeleton\"\nimport { Skeleton } from \"./skeleton\"\n\ninterface SkeletonTextOptions {\n  /**\n   * The CSS `gap` property.\n   */\n  gap?: CSSUIProps[\"gap\"]\n  /**\n   * The CSS `height` property.\n   */\n  textHeight?: CSSUIProps[\"height\"]\n}\n\nexport interface SkeletonTextProps\n  extends Omit<SkeletonProps, \"isFitContent\">,\n    SkeletonTextOptions {}\n\nexport const SkeletonText = forwardRef<SkeletonTextProps, \"div\">(\n  (\n    {\n      className,\n      lineClamp: _lineClamp = 3,\n      startColor,\n      endColor,\n      fadeDuration,\n      speed,\n      isLoaded,\n      gap = \"fallback(2, 0.5rem)\",\n      textHeight = \"fallback(2, 0.5rem)\",\n      children,\n      ...rest\n    },\n    ref,\n  ) => {\n    const lineClamp = useValue(_lineClamp)\n\n    const css: CSSUIObject = {\n      w: \"100%\",\n    }\n\n    return (\n      <ui.div\n        ref={ref}\n        className={cx(\"ui-skeleton__text\", className)}\n        __css={css}\n        {...rest}\n      >\n        {Array(lineClamp)\n          .fill(0)\n          .map((_, index) => {\n            if (isLoaded && index > 0) return null\n\n            const isLast = index + 1 === lineClamp\n\n            const props: SkeletonProps = !isLoaded\n              ? {\n                  mb: !isLast ? gap : undefined,\n                  w: lineClamp > 1 ? (!isLast ? \"100%\" : \"80%\") : \"100%\",\n                  h: textHeight,\n                }\n              : {}\n\n            return (\n              <Skeleton\n                key={index}\n                {...{\n                  startColor,\n                  endColor,\n                  fadeDuration,\n                  speed,\n                  isLoaded,\n                  ...props,\n                }}\n              >\n                {index === 0 ? children : undefined}\n              </Skeleton>\n            )\n          })}\n      </ui.div>\n    )\n  },\n)\n\nSkeletonText.displayName = \"SkeletonText\"\nSkeletonText.__ui__ = \"SkeletonText\"\n"],"mappings":"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","names":["animation","import_core","import_utils","import_jsx_runtime","import_core","import_use_value","import_utils","import_jsx_runtime"]}
         
     | 
    
        package/dist/index.mjs
    CHANGED
    
    | 
         @@ -1,13 +1,13 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            "use client"
         
     | 
| 
       2 
2 
     | 
    
         
             
            import {
         
     | 
| 
       3 
3 
     | 
    
         
             
              SkeletonCircle
         
     | 
| 
       4 
     | 
    
         
            -
            } from "./chunk- 
     | 
| 
      
 4 
     | 
    
         
            +
            } from "./chunk-22DLXLXV.mjs";
         
     | 
| 
       5 
5 
     | 
    
         
             
            import {
         
     | 
| 
       6 
6 
     | 
    
         
             
              SkeletonText
         
     | 
| 
       7 
     | 
    
         
            -
            } from "./chunk- 
     | 
| 
      
 7 
     | 
    
         
            +
            } from "./chunk-2U4SAIJD.mjs";
         
     | 
| 
       8 
8 
     | 
    
         
             
            import {
         
     | 
| 
       9 
9 
     | 
    
         
             
              Skeleton
         
     | 
| 
       10 
     | 
    
         
            -
            } from "./chunk- 
     | 
| 
      
 10 
     | 
    
         
            +
            } from "./chunk-BWLL2ZTF.mjs";
         
     | 
| 
       11 
11 
     | 
    
         
             
            export {
         
     | 
| 
       12 
12 
     | 
    
         
             
              Skeleton,
         
     | 
| 
       13 
13 
     | 
    
         
             
              SkeletonCircle,
         
     | 
    
        package/dist/skeleton-circle.js
    CHANGED
    
    | 
         @@ -38,8 +38,8 @@ var Skeleton = (0, import_core.forwardRef)((props, ref) => { 
     | 
|
| 
       38 
38 
     | 
    
         
             
              const [styles, mergedProps] = (0, import_core.useComponentStyle)("Skeleton", props);
         
     | 
| 
       39 
39 
     | 
    
         
             
              let {
         
     | 
| 
       40 
40 
     | 
    
         
             
                className,
         
     | 
| 
       41 
     | 
    
         
            -
                startColor,
         
     | 
| 
       42 
     | 
    
         
            -
                endColor,
         
     | 
| 
      
 41 
     | 
    
         
            +
                startColor: _startColor,
         
     | 
| 
      
 42 
     | 
    
         
            +
                endColor: _endColor,
         
     | 
| 
       43 
43 
     | 
    
         
             
                fadeDuration = 0.4,
         
     | 
| 
       44 
44 
     | 
    
         
             
                speed = 0.8,
         
     | 
| 
       45 
45 
     | 
    
         
             
                isLoaded,
         
     | 
| 
         @@ -50,8 +50,8 @@ var Skeleton = (0, import_core.forwardRef)((props, ref) => { 
     | 
|
| 
       50 
50 
     | 
    
         
             
              const [isMounted] = (0, import_utils.useIsMounted)();
         
     | 
| 
       51 
51 
     | 
    
         
             
              const validChildren = (0, import_utils.getValidChildren)(children);
         
     | 
| 
       52 
52 
     | 
    
         
             
              const prevIsLoaded = (0, import_use_previous.usePrevious)(isLoaded);
         
     | 
| 
       53 
     | 
    
         
            -
              const  
     | 
| 
       54 
     | 
    
         
            -
              const  
     | 
| 
      
 53 
     | 
    
         
            +
              const startColor = (0, import_use_value.useValue)(_startColor);
         
     | 
| 
      
 54 
     | 
    
         
            +
              const endColor = (0, import_use_value.useValue)(_endColor);
         
     | 
| 
       55 
55 
     | 
    
         
             
              const hasChildren = !!validChildren.length;
         
     | 
| 
       56 
56 
     | 
    
         
             
              isFitContent != null ? isFitContent : isFitContent = hasChildren;
         
     | 
| 
       57 
57 
     | 
    
         
             
              const fadeIn = (0, import_use_animation.useAnimation)({
         
     | 
| 
         @@ -68,12 +68,12 @@ var Skeleton = (0, import_core.forwardRef)((props, ref) => { 
     | 
|
| 
       68 
68 
     | 
    
         
             
              const animation = (0, import_use_animation.useAnimation)({
         
     | 
| 
       69 
69 
     | 
    
         
             
                keyframes: {
         
     | 
| 
       70 
70 
     | 
    
         
             
                  "0%": {
         
     | 
| 
       71 
     | 
    
         
            -
                    borderColor:  
     | 
| 
       72 
     | 
    
         
            -
                    background:  
     | 
| 
      
 71 
     | 
    
         
            +
                    borderColor: startColor,
         
     | 
| 
      
 72 
     | 
    
         
            +
                    background: startColor
         
     | 
| 
       73 
73 
     | 
    
         
             
                  },
         
     | 
| 
       74 
74 
     | 
    
         
             
                  "100%": {
         
     | 
| 
       75 
     | 
    
         
            -
                    borderColor:  
     | 
| 
       76 
     | 
    
         
            -
                    background:  
     | 
| 
      
 75 
     | 
    
         
            +
                    borderColor: endColor,
         
     | 
| 
      
 76 
     | 
    
         
            +
                    background: endColor
         
     | 
| 
       77 
77 
     | 
    
         
             
                  }
         
     | 
| 
       78 
78 
     | 
    
         
             
                },
         
     | 
| 
       79 
79 
     | 
    
         
             
                duration: typeof speed === "string" ? speed : `${speed}s`,
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"sources":["../src/skeleton-circle.tsx","../src/skeleton.tsx"],"sourcesContent":["import { forwardRef } from \"@yamada-ui/core\"\nimport { cx, getValidChildren } from \"@yamada-ui/utils\"\nimport type { SkeletonProps } from \"./skeleton\"\nimport { Skeleton } from \"./skeleton\"\n\nexport interface SkeletonCircleProps extends SkeletonProps {}\n\nexport const SkeletonCircle = forwardRef<SkeletonCircleProps, \"div\">(\n  (\n    {\n      className,\n      boxSize = \"fallback(12, 3rem)\",\n      children,\n      isFitContent,\n      ...rest\n    },\n    ref,\n  ) => {\n    const validChildren = getValidChildren(children)\n    const hasChildren = !!validChildren.length\n\n    isFitContent ??= hasChildren\n\n    return (\n      <Skeleton\n        ref={ref}\n        className={cx(\"ui-skeleton__circle\", className)}\n        rounded=\"fallback(full, 9999px)\"\n        isFitContent={isFitContent}\n        {...(!isFitContent ? { boxSize } : {})}\n        {...rest}\n      >\n        {validChildren}\n      </Skeleton>\n    )\n  },\n)\n\nSkeletonCircle.displayName = \"SkeletonCircle\"\nSkeletonCircle.__ui__ = \"SkeletonCircle\"\n","import type {\n  CSSUIObject,\n  HTMLUIProps,\n  ThemeProps,\n  CSSUIProps,\n} from \"@yamada-ui/core\"\nimport {\n  ui,\n  forwardRef,\n  omitThemeProps,\n  useComponentStyle,\n} from \"@yamada-ui/core\"\nimport { useAnimation } from \"@yamada-ui/use-animation\"\nimport { usePrevious } from \"@yamada-ui/use-previous\"\nimport { useValue } from \"@yamada-ui/use-value\"\nimport { cx, getValidChildren, useIsMounted } from \"@yamada-ui/utils\"\n\ninterface SkeletonOptions {\n  /**\n   * The color at the animation start.\n   */\n  startColor?: CSSUIProps[\"color\"]\n  /**\n   * The color at the animation end.\n   */\n  endColor?: CSSUIProps[\"color\"]\n  /**\n   * If `true`, it'll render its children with a nice fade transition.\n   *\n   * @default false\n   */\n  isLoaded?: boolean\n  /**\n   * The animation speed in seconds.\n   *\n   * @default 0.8\n   */\n  speed?: string | number\n  /**\n   * The fadeIn duration in seconds. Requires `isLoaded` toggled to `true` in order to see the transition.\n   *\n   * @default 0.4\n   */\n  fadeDuration?: string | number\n  /**\n   * If `true`, the skeleton will take the width of it's children.\n   *\n   * @default false\n   */\n  isFitContent?: boolean\n}\n\nexport interface SkeletonProps\n  extends HTMLUIProps,\n    ThemeProps<\"Skeleton\">,\n    SkeletonOptions {}\n\n/**\n * `Skeleton` is a component that acts as a placeholder until content is loaded.\n *\n * @see Docs https://yamada-ui.com/components/feedback/skeleton\n */\nexport const Skeleton = forwardRef<SkeletonProps, \"div\">((props, ref) => {\n  const [styles, mergedProps] = useComponentStyle(\"Skeleton\", props)\n  let {\n    className,\n    startColor,\n    endColor,\n    fadeDuration = 0.4,\n    speed = 0.8,\n    isLoaded,\n    isFitContent,\n    children,\n    ...rest\n  } = omitThemeProps(mergedProps)\n  const [isMounted] = useIsMounted()\n  const validChildren = getValidChildren(children)\n  const prevIsLoaded = usePrevious(isLoaded)\n  const  
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"sources":["../src/skeleton-circle.tsx","../src/skeleton.tsx"],"sourcesContent":["import { forwardRef } from \"@yamada-ui/core\"\nimport { cx, getValidChildren } from \"@yamada-ui/utils\"\nimport type { SkeletonProps } from \"./skeleton\"\nimport { Skeleton } from \"./skeleton\"\n\nexport interface SkeletonCircleProps extends SkeletonProps {}\n\nexport const SkeletonCircle = forwardRef<SkeletonCircleProps, \"div\">(\n  (\n    {\n      className,\n      boxSize = \"fallback(12, 3rem)\",\n      children,\n      isFitContent,\n      ...rest\n    },\n    ref,\n  ) => {\n    const validChildren = getValidChildren(children)\n    const hasChildren = !!validChildren.length\n\n    isFitContent ??= hasChildren\n\n    return (\n      <Skeleton\n        ref={ref}\n        className={cx(\"ui-skeleton__circle\", className)}\n        rounded=\"fallback(full, 9999px)\"\n        isFitContent={isFitContent}\n        {...(!isFitContent ? { boxSize } : {})}\n        {...rest}\n      >\n        {validChildren}\n      </Skeleton>\n    )\n  },\n)\n\nSkeletonCircle.displayName = \"SkeletonCircle\"\nSkeletonCircle.__ui__ = \"SkeletonCircle\"\n","import type {\n  CSSUIObject,\n  HTMLUIProps,\n  ThemeProps,\n  CSSUIProps,\n} from \"@yamada-ui/core\"\nimport {\n  ui,\n  forwardRef,\n  omitThemeProps,\n  useComponentStyle,\n} from \"@yamada-ui/core\"\nimport { useAnimation } from \"@yamada-ui/use-animation\"\nimport { usePrevious } from \"@yamada-ui/use-previous\"\nimport { useValue } from \"@yamada-ui/use-value\"\nimport { cx, getValidChildren, useIsMounted } from \"@yamada-ui/utils\"\n\ninterface SkeletonOptions {\n  /**\n   * The color at the animation start.\n   */\n  startColor?: CSSUIProps[\"color\"]\n  /**\n   * The color at the animation end.\n   */\n  endColor?: CSSUIProps[\"color\"]\n  /**\n   * If `true`, it'll render its children with a nice fade transition.\n   *\n   * @default false\n   */\n  isLoaded?: boolean\n  /**\n   * The animation speed in seconds.\n   *\n   * @default 0.8\n   */\n  speed?: string | number\n  /**\n   * The fadeIn duration in seconds. Requires `isLoaded` toggled to `true` in order to see the transition.\n   *\n   * @default 0.4\n   */\n  fadeDuration?: string | number\n  /**\n   * If `true`, the skeleton will take the width of it's children.\n   *\n   * @default false\n   */\n  isFitContent?: boolean\n}\n\nexport interface SkeletonProps\n  extends HTMLUIProps,\n    ThemeProps<\"Skeleton\">,\n    SkeletonOptions {}\n\n/**\n * `Skeleton` is a component that acts as a placeholder until content is loaded.\n *\n * @see Docs https://yamada-ui.com/components/feedback/skeleton\n */\nexport const Skeleton = forwardRef<SkeletonProps, \"div\">((props, ref) => {\n  const [styles, mergedProps] = useComponentStyle(\"Skeleton\", props)\n  let {\n    className,\n    startColor: _startColor,\n    endColor: _endColor,\n    fadeDuration = 0.4,\n    speed = 0.8,\n    isLoaded,\n    isFitContent,\n    children,\n    ...rest\n  } = omitThemeProps(mergedProps)\n  const [isMounted] = useIsMounted()\n  const validChildren = getValidChildren(children)\n  const prevIsLoaded = usePrevious(isLoaded)\n  const startColor = useValue(_startColor)\n  const endColor = useValue(_endColor)\n  const hasChildren = !!validChildren.length\n\n  isFitContent ??= hasChildren\n\n  const fadeIn = useAnimation({\n    keyframes: {\n      \"0%\": {\n        opacity: 0,\n      },\n      \"100%\": {\n        opacity: 1,\n      },\n    },\n    duration:\n      typeof fadeDuration === \"string\" ? fadeDuration : `${fadeDuration}s`,\n  })\n\n  const animation = useAnimation({\n    keyframes: {\n      \"0%\": {\n        borderColor: startColor,\n        background: startColor,\n      },\n      \"100%\": {\n        borderColor: endColor,\n        background: endColor,\n      },\n    },\n    duration: typeof speed === \"string\" ? speed : `${speed}s`,\n    iterationCount: \"infinite\",\n    direction: \"alternate\",\n    timingFunction: \"linear\",\n  })\n\n  const css: CSSUIObject = {\n    w: isFitContent ? \"fit-content\" : \"100%\",\n    maxW: \"100%\",\n    h: isFitContent ? \"fit-content\" : \"fallback(4, 1rem)\",\n    boxShadow: \"none\",\n    backgroundClip: \"padding-box\",\n    cursor: \"default\",\n    color: \"transparent\",\n    pointerEvents: \"none\",\n    userSelect: \"none\",\n    \"&::before, &::after, *\": {\n      visibility: \"hidden\",\n    },\n    ...styles,\n  }\n\n  if (isLoaded) {\n    const animation = !isMounted() || prevIsLoaded ? \"none\" : fadeIn\n\n    return (\n      <ui.div\n        ref={ref}\n        className={cx(\"ui-skeleton\", \"ui-skeleton--loaded\", className)}\n        {...rest}\n        animation={animation}\n        aria-busy=\"false\"\n      >\n        {validChildren}\n      </ui.div>\n    )\n  } else {\n    return (\n      <ui.div\n        ref={ref}\n        className={cx(\"ui-skeleton\", className)}\n        __css={css}\n        {...rest}\n        animation={animation}\n        aria-busy=\"true\"\n      >\n        {validChildren}\n      </ui.div>\n    )\n  }\n})\n\nSkeleton.displayName = \"Skeleton\"\nSkeleton.__ui__ = \"Skeleton\"\n"],"mappings":"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","names":["import_core","import_utils","animation","import_jsx_runtime"]}
         
     | 
    
        package/dist/skeleton-circle.mjs
    CHANGED
    
    
    
        package/dist/skeleton-text.js
    CHANGED
    
    | 
         @@ -39,8 +39,8 @@ var Skeleton = (0, import_core.forwardRef)((props, ref) => { 
     | 
|
| 
       39 
39 
     | 
    
         
             
              const [styles, mergedProps] = (0, import_core.useComponentStyle)("Skeleton", props);
         
     | 
| 
       40 
40 
     | 
    
         
             
              let {
         
     | 
| 
       41 
41 
     | 
    
         
             
                className,
         
     | 
| 
       42 
     | 
    
         
            -
                startColor,
         
     | 
| 
       43 
     | 
    
         
            -
                endColor,
         
     | 
| 
      
 42 
     | 
    
         
            +
                startColor: _startColor,
         
     | 
| 
      
 43 
     | 
    
         
            +
                endColor: _endColor,
         
     | 
| 
       44 
44 
     | 
    
         
             
                fadeDuration = 0.4,
         
     | 
| 
       45 
45 
     | 
    
         
             
                speed = 0.8,
         
     | 
| 
       46 
46 
     | 
    
         
             
                isLoaded,
         
     | 
| 
         @@ -51,8 +51,8 @@ var Skeleton = (0, import_core.forwardRef)((props, ref) => { 
     | 
|
| 
       51 
51 
     | 
    
         
             
              const [isMounted] = (0, import_utils.useIsMounted)();
         
     | 
| 
       52 
52 
     | 
    
         
             
              const validChildren = (0, import_utils.getValidChildren)(children);
         
     | 
| 
       53 
53 
     | 
    
         
             
              const prevIsLoaded = (0, import_use_previous.usePrevious)(isLoaded);
         
     | 
| 
       54 
     | 
    
         
            -
              const  
     | 
| 
       55 
     | 
    
         
            -
              const  
     | 
| 
      
 54 
     | 
    
         
            +
              const startColor = (0, import_use_value.useValue)(_startColor);
         
     | 
| 
      
 55 
     | 
    
         
            +
              const endColor = (0, import_use_value.useValue)(_endColor);
         
     | 
| 
       56 
56 
     | 
    
         
             
              const hasChildren = !!validChildren.length;
         
     | 
| 
       57 
57 
     | 
    
         
             
              isFitContent != null ? isFitContent : isFitContent = hasChildren;
         
     | 
| 
       58 
58 
     | 
    
         
             
              const fadeIn = (0, import_use_animation.useAnimation)({
         
     | 
| 
         @@ -69,12 +69,12 @@ var Skeleton = (0, import_core.forwardRef)((props, ref) => { 
     | 
|
| 
       69 
69 
     | 
    
         
             
              const animation = (0, import_use_animation.useAnimation)({
         
     | 
| 
       70 
70 
     | 
    
         
             
                keyframes: {
         
     | 
| 
       71 
71 
     | 
    
         
             
                  "0%": {
         
     | 
| 
       72 
     | 
    
         
            -
                    borderColor:  
     | 
| 
       73 
     | 
    
         
            -
                    background:  
     | 
| 
      
 72 
     | 
    
         
            +
                    borderColor: startColor,
         
     | 
| 
      
 73 
     | 
    
         
            +
                    background: startColor
         
     | 
| 
       74 
74 
     | 
    
         
             
                  },
         
     | 
| 
       75 
75 
     | 
    
         
             
                  "100%": {
         
     | 
| 
       76 
     | 
    
         
            -
                    borderColor:  
     | 
| 
       77 
     | 
    
         
            -
                    background:  
     | 
| 
      
 76 
     | 
    
         
            +
                    borderColor: endColor,
         
     | 
| 
      
 77 
     | 
    
         
            +
                    background: endColor
         
     | 
| 
       78 
78 
     | 
    
         
             
                  }
         
     | 
| 
       79 
79 
     | 
    
         
             
                },
         
     | 
| 
       80 
80 
     | 
    
         
             
                duration: typeof speed === "string" ? speed : `${speed}s`,
         
     | 
| 
         @@ -133,7 +133,7 @@ var import_jsx_runtime2 = require("react/jsx-runtime"); 
     | 
|
| 
       133 
133 
     | 
    
         
             
            var SkeletonText = (0, import_core2.forwardRef)(
         
     | 
| 
       134 
134 
     | 
    
         
             
              ({
         
     | 
| 
       135 
135 
     | 
    
         
             
                className,
         
     | 
| 
       136 
     | 
    
         
            -
                lineClamp = 3,
         
     | 
| 
      
 136 
     | 
    
         
            +
                lineClamp: _lineClamp = 3,
         
     | 
| 
       137 
137 
     | 
    
         
             
                startColor,
         
     | 
| 
       138 
138 
     | 
    
         
             
                endColor,
         
     | 
| 
       139 
139 
     | 
    
         
             
                fadeDuration,
         
     | 
| 
         @@ -144,7 +144,7 @@ var SkeletonText = (0, import_core2.forwardRef)( 
     | 
|
| 
       144 
144 
     | 
    
         
             
                children,
         
     | 
| 
       145 
145 
     | 
    
         
             
                ...rest
         
     | 
| 
       146 
146 
     | 
    
         
             
              }, ref) => {
         
     | 
| 
       147 
     | 
    
         
            -
                const  
     | 
| 
      
 147 
     | 
    
         
            +
                const lineClamp = (0, import_use_value2.useValue)(_lineClamp);
         
     | 
| 
       148 
148 
     | 
    
         
             
                const css = {
         
     | 
| 
       149 
149 
     | 
    
         
             
                  w: "100%"
         
     | 
| 
       150 
150 
     | 
    
         
             
                };
         
     | 
| 
         @@ -155,12 +155,12 @@ var SkeletonText = (0, import_core2.forwardRef)( 
     | 
|
| 
       155 
155 
     | 
    
         
             
                    className: (0, import_utils2.cx)("ui-skeleton__text", className),
         
     | 
| 
       156 
156 
     | 
    
         
             
                    __css: css,
         
     | 
| 
       157 
157 
     | 
    
         
             
                    ...rest,
         
     | 
| 
       158 
     | 
    
         
            -
                    children: Array( 
     | 
| 
      
 158 
     | 
    
         
            +
                    children: Array(lineClamp).fill(0).map((_, index) => {
         
     | 
| 
       159 
159 
     | 
    
         
             
                      if (isLoaded && index > 0) return null;
         
     | 
| 
       160 
     | 
    
         
            -
                      const isLast = index + 1 ===  
     | 
| 
      
 160 
     | 
    
         
            +
                      const isLast = index + 1 === lineClamp;
         
     | 
| 
       161 
161 
     | 
    
         
             
                      const props = !isLoaded ? {
         
     | 
| 
       162 
162 
     | 
    
         
             
                        mb: !isLast ? gap : void 0,
         
     | 
| 
       163 
     | 
    
         
            -
                        w:  
     | 
| 
      
 163 
     | 
    
         
            +
                        w: lineClamp > 1 ? !isLast ? "100%" : "80%" : "100%",
         
     | 
| 
       164 
164 
     | 
    
         
             
                        h: textHeight
         
     | 
| 
       165 
165 
     | 
    
         
             
                      } : {};
         
     | 
| 
       166 
166 
     | 
    
         
             
                      return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
         
     | 
| 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"sources":["../src/skeleton-text.tsx","../src/skeleton.tsx"],"sourcesContent":["import type { CSSUIProps, CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { useValue } from \"@yamada-ui/use-value\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type { SkeletonProps } from \"./skeleton\"\nimport { Skeleton } from \"./skeleton\"\n\ninterface SkeletonTextOptions {\n  /**\n   * The CSS `gap` property.\n   */\n  gap?: CSSUIProps[\"gap\"]\n  /**\n   * The CSS `height` property.\n   */\n  textHeight?: CSSUIProps[\"height\"]\n}\n\nexport interface SkeletonTextProps\n  extends Omit<SkeletonProps, \"isFitContent\">,\n    SkeletonTextOptions {}\n\nexport const SkeletonText = forwardRef<SkeletonTextProps, \"div\">(\n  (\n    {\n      className,\n      lineClamp = 3,\n      startColor,\n      endColor,\n      fadeDuration,\n      speed,\n      isLoaded,\n      gap = \"fallback(2, 0.5rem)\",\n      textHeight = \"fallback(2, 0.5rem)\",\n      children,\n      ...rest\n    },\n    ref,\n  ) => {\n    const  
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"sources":["../src/skeleton-text.tsx","../src/skeleton.tsx"],"sourcesContent":["import type { CSSUIProps, CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { useValue } from \"@yamada-ui/use-value\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type { SkeletonProps } from \"./skeleton\"\nimport { Skeleton } from \"./skeleton\"\n\ninterface SkeletonTextOptions {\n  /**\n   * The CSS `gap` property.\n   */\n  gap?: CSSUIProps[\"gap\"]\n  /**\n   * The CSS `height` property.\n   */\n  textHeight?: CSSUIProps[\"height\"]\n}\n\nexport interface SkeletonTextProps\n  extends Omit<SkeletonProps, \"isFitContent\">,\n    SkeletonTextOptions {}\n\nexport const SkeletonText = forwardRef<SkeletonTextProps, \"div\">(\n  (\n    {\n      className,\n      lineClamp: _lineClamp = 3,\n      startColor,\n      endColor,\n      fadeDuration,\n      speed,\n      isLoaded,\n      gap = \"fallback(2, 0.5rem)\",\n      textHeight = \"fallback(2, 0.5rem)\",\n      children,\n      ...rest\n    },\n    ref,\n  ) => {\n    const lineClamp = useValue(_lineClamp)\n\n    const css: CSSUIObject = {\n      w: \"100%\",\n    }\n\n    return (\n      <ui.div\n        ref={ref}\n        className={cx(\"ui-skeleton__text\", className)}\n        __css={css}\n        {...rest}\n      >\n        {Array(lineClamp)\n          .fill(0)\n          .map((_, index) => {\n            if (isLoaded && index > 0) return null\n\n            const isLast = index + 1 === lineClamp\n\n            const props: SkeletonProps = !isLoaded\n              ? {\n                  mb: !isLast ? gap : undefined,\n                  w: lineClamp > 1 ? (!isLast ? \"100%\" : \"80%\") : \"100%\",\n                  h: textHeight,\n                }\n              : {}\n\n            return (\n              <Skeleton\n                key={index}\n                {...{\n                  startColor,\n                  endColor,\n                  fadeDuration,\n                  speed,\n                  isLoaded,\n                  ...props,\n                }}\n              >\n                {index === 0 ? children : undefined}\n              </Skeleton>\n            )\n          })}\n      </ui.div>\n    )\n  },\n)\n\nSkeletonText.displayName = \"SkeletonText\"\nSkeletonText.__ui__ = \"SkeletonText\"\n","import type {\n  CSSUIObject,\n  HTMLUIProps,\n  ThemeProps,\n  CSSUIProps,\n} from \"@yamada-ui/core\"\nimport {\n  ui,\n  forwardRef,\n  omitThemeProps,\n  useComponentStyle,\n} from \"@yamada-ui/core\"\nimport { useAnimation } from \"@yamada-ui/use-animation\"\nimport { usePrevious } from \"@yamada-ui/use-previous\"\nimport { useValue } from \"@yamada-ui/use-value\"\nimport { cx, getValidChildren, useIsMounted } from \"@yamada-ui/utils\"\n\ninterface SkeletonOptions {\n  /**\n   * The color at the animation start.\n   */\n  startColor?: CSSUIProps[\"color\"]\n  /**\n   * The color at the animation end.\n   */\n  endColor?: CSSUIProps[\"color\"]\n  /**\n   * If `true`, it'll render its children with a nice fade transition.\n   *\n   * @default false\n   */\n  isLoaded?: boolean\n  /**\n   * The animation speed in seconds.\n   *\n   * @default 0.8\n   */\n  speed?: string | number\n  /**\n   * The fadeIn duration in seconds. Requires `isLoaded` toggled to `true` in order to see the transition.\n   *\n   * @default 0.4\n   */\n  fadeDuration?: string | number\n  /**\n   * If `true`, the skeleton will take the width of it's children.\n   *\n   * @default false\n   */\n  isFitContent?: boolean\n}\n\nexport interface SkeletonProps\n  extends HTMLUIProps,\n    ThemeProps<\"Skeleton\">,\n    SkeletonOptions {}\n\n/**\n * `Skeleton` is a component that acts as a placeholder until content is loaded.\n *\n * @see Docs https://yamada-ui.com/components/feedback/skeleton\n */\nexport const Skeleton = forwardRef<SkeletonProps, \"div\">((props, ref) => {\n  const [styles, mergedProps] = useComponentStyle(\"Skeleton\", props)\n  let {\n    className,\n    startColor: _startColor,\n    endColor: _endColor,\n    fadeDuration = 0.4,\n    speed = 0.8,\n    isLoaded,\n    isFitContent,\n    children,\n    ...rest\n  } = omitThemeProps(mergedProps)\n  const [isMounted] = useIsMounted()\n  const validChildren = getValidChildren(children)\n  const prevIsLoaded = usePrevious(isLoaded)\n  const startColor = useValue(_startColor)\n  const endColor = useValue(_endColor)\n  const hasChildren = !!validChildren.length\n\n  isFitContent ??= hasChildren\n\n  const fadeIn = useAnimation({\n    keyframes: {\n      \"0%\": {\n        opacity: 0,\n      },\n      \"100%\": {\n        opacity: 1,\n      },\n    },\n    duration:\n      typeof fadeDuration === \"string\" ? fadeDuration : `${fadeDuration}s`,\n  })\n\n  const animation = useAnimation({\n    keyframes: {\n      \"0%\": {\n        borderColor: startColor,\n        background: startColor,\n      },\n      \"100%\": {\n        borderColor: endColor,\n        background: endColor,\n      },\n    },\n    duration: typeof speed === \"string\" ? speed : `${speed}s`,\n    iterationCount: \"infinite\",\n    direction: \"alternate\",\n    timingFunction: \"linear\",\n  })\n\n  const css: CSSUIObject = {\n    w: isFitContent ? \"fit-content\" : \"100%\",\n    maxW: \"100%\",\n    h: isFitContent ? \"fit-content\" : \"fallback(4, 1rem)\",\n    boxShadow: \"none\",\n    backgroundClip: \"padding-box\",\n    cursor: \"default\",\n    color: \"transparent\",\n    pointerEvents: \"none\",\n    userSelect: \"none\",\n    \"&::before, &::after, *\": {\n      visibility: \"hidden\",\n    },\n    ...styles,\n  }\n\n  if (isLoaded) {\n    const animation = !isMounted() || prevIsLoaded ? \"none\" : fadeIn\n\n    return (\n      <ui.div\n        ref={ref}\n        className={cx(\"ui-skeleton\", \"ui-skeleton--loaded\", className)}\n        {...rest}\n        animation={animation}\n        aria-busy=\"false\"\n      >\n        {validChildren}\n      </ui.div>\n    )\n  } else {\n    return (\n      <ui.div\n        ref={ref}\n        className={cx(\"ui-skeleton\", className)}\n        __css={css}\n        {...rest}\n        animation={animation}\n        aria-busy=\"true\"\n      >\n        {validChildren}\n      </ui.div>\n    )\n  }\n})\n\nSkeleton.displayName = \"Skeleton\"\nSkeleton.__ui__ = \"Skeleton\"\n"],"mappings":"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","names":["import_core","import_use_value","import_utils","animation","import_jsx_runtime"]}
         
     | 
    
        package/dist/skeleton-text.mjs
    CHANGED
    
    
    
        package/dist/skeleton.js
    CHANGED
    
    | 
         @@ -34,8 +34,8 @@ var Skeleton = (0, import_core.forwardRef)((props, ref) => { 
     | 
|
| 
       34 
34 
     | 
    
         
             
              const [styles, mergedProps] = (0, import_core.useComponentStyle)("Skeleton", props);
         
     | 
| 
       35 
35 
     | 
    
         
             
              let {
         
     | 
| 
       36 
36 
     | 
    
         
             
                className,
         
     | 
| 
       37 
     | 
    
         
            -
                startColor,
         
     | 
| 
       38 
     | 
    
         
            -
                endColor,
         
     | 
| 
      
 37 
     | 
    
         
            +
                startColor: _startColor,
         
     | 
| 
      
 38 
     | 
    
         
            +
                endColor: _endColor,
         
     | 
| 
       39 
39 
     | 
    
         
             
                fadeDuration = 0.4,
         
     | 
| 
       40 
40 
     | 
    
         
             
                speed = 0.8,
         
     | 
| 
       41 
41 
     | 
    
         
             
                isLoaded,
         
     | 
| 
         @@ -46,8 +46,8 @@ var Skeleton = (0, import_core.forwardRef)((props, ref) => { 
     | 
|
| 
       46 
46 
     | 
    
         
             
              const [isMounted] = (0, import_utils.useIsMounted)();
         
     | 
| 
       47 
47 
     | 
    
         
             
              const validChildren = (0, import_utils.getValidChildren)(children);
         
     | 
| 
       48 
48 
     | 
    
         
             
              const prevIsLoaded = (0, import_use_previous.usePrevious)(isLoaded);
         
     | 
| 
       49 
     | 
    
         
            -
              const  
     | 
| 
       50 
     | 
    
         
            -
              const  
     | 
| 
      
 49 
     | 
    
         
            +
              const startColor = (0, import_use_value.useValue)(_startColor);
         
     | 
| 
      
 50 
     | 
    
         
            +
              const endColor = (0, import_use_value.useValue)(_endColor);
         
     | 
| 
       51 
51 
     | 
    
         
             
              const hasChildren = !!validChildren.length;
         
     | 
| 
       52 
52 
     | 
    
         
             
              isFitContent != null ? isFitContent : isFitContent = hasChildren;
         
     | 
| 
       53 
53 
     | 
    
         
             
              const fadeIn = (0, import_use_animation.useAnimation)({
         
     | 
| 
         @@ -64,12 +64,12 @@ var Skeleton = (0, import_core.forwardRef)((props, ref) => { 
     | 
|
| 
       64 
64 
     | 
    
         
             
              const animation = (0, import_use_animation.useAnimation)({
         
     | 
| 
       65 
65 
     | 
    
         
             
                keyframes: {
         
     | 
| 
       66 
66 
     | 
    
         
             
                  "0%": {
         
     | 
| 
       67 
     | 
    
         
            -
                    borderColor:  
     | 
| 
       68 
     | 
    
         
            -
                    background:  
     | 
| 
      
 67 
     | 
    
         
            +
                    borderColor: startColor,
         
     | 
| 
      
 68 
     | 
    
         
            +
                    background: startColor
         
     | 
| 
       69 
69 
     | 
    
         
             
                  },
         
     | 
| 
       70 
70 
     | 
    
         
             
                  "100%": {
         
     | 
| 
       71 
     | 
    
         
            -
                    borderColor:  
     | 
| 
       72 
     | 
    
         
            -
                    background:  
     | 
| 
      
 71 
     | 
    
         
            +
                    borderColor: endColor,
         
     | 
| 
      
 72 
     | 
    
         
            +
                    background: endColor
         
     | 
| 
       73 
73 
     | 
    
         
             
                  }
         
     | 
| 
       74 
74 
     | 
    
         
             
                },
         
     | 
| 
       75 
75 
     | 
    
         
             
                duration: typeof speed === "string" ? speed : `${speed}s`,
         
     | 
    
        package/dist/skeleton.js.map
    CHANGED
    
    | 
         @@ -1 +1 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"sources":["../src/skeleton.tsx"],"sourcesContent":["import type {\n  CSSUIObject,\n  HTMLUIProps,\n  ThemeProps,\n  CSSUIProps,\n} from \"@yamada-ui/core\"\nimport {\n  ui,\n  forwardRef,\n  omitThemeProps,\n  useComponentStyle,\n} from \"@yamada-ui/core\"\nimport { useAnimation } from \"@yamada-ui/use-animation\"\nimport { usePrevious } from \"@yamada-ui/use-previous\"\nimport { useValue } from \"@yamada-ui/use-value\"\nimport { cx, getValidChildren, useIsMounted } from \"@yamada-ui/utils\"\n\ninterface SkeletonOptions {\n  /**\n   * The color at the animation start.\n   */\n  startColor?: CSSUIProps[\"color\"]\n  /**\n   * The color at the animation end.\n   */\n  endColor?: CSSUIProps[\"color\"]\n  /**\n   * If `true`, it'll render its children with a nice fade transition.\n   *\n   * @default false\n   */\n  isLoaded?: boolean\n  /**\n   * The animation speed in seconds.\n   *\n   * @default 0.8\n   */\n  speed?: string | number\n  /**\n   * The fadeIn duration in seconds. Requires `isLoaded` toggled to `true` in order to see the transition.\n   *\n   * @default 0.4\n   */\n  fadeDuration?: string | number\n  /**\n   * If `true`, the skeleton will take the width of it's children.\n   *\n   * @default false\n   */\n  isFitContent?: boolean\n}\n\nexport interface SkeletonProps\n  extends HTMLUIProps,\n    ThemeProps<\"Skeleton\">,\n    SkeletonOptions {}\n\n/**\n * `Skeleton` is a component that acts as a placeholder until content is loaded.\n *\n * @see Docs https://yamada-ui.com/components/feedback/skeleton\n */\nexport const Skeleton = forwardRef<SkeletonProps, \"div\">((props, ref) => {\n  const [styles, mergedProps] = useComponentStyle(\"Skeleton\", props)\n  let {\n    className,\n    startColor,\n    endColor,\n    fadeDuration = 0.4,\n    speed = 0.8,\n    isLoaded,\n    isFitContent,\n    children,\n    ...rest\n  } = omitThemeProps(mergedProps)\n  const [isMounted] = useIsMounted()\n  const validChildren = getValidChildren(children)\n  const prevIsLoaded = usePrevious(isLoaded)\n  const  
     | 
| 
      
 1 
     | 
    
         
            +
            {"version":3,"sources":["../src/skeleton.tsx"],"sourcesContent":["import type {\n  CSSUIObject,\n  HTMLUIProps,\n  ThemeProps,\n  CSSUIProps,\n} from \"@yamada-ui/core\"\nimport {\n  ui,\n  forwardRef,\n  omitThemeProps,\n  useComponentStyle,\n} from \"@yamada-ui/core\"\nimport { useAnimation } from \"@yamada-ui/use-animation\"\nimport { usePrevious } from \"@yamada-ui/use-previous\"\nimport { useValue } from \"@yamada-ui/use-value\"\nimport { cx, getValidChildren, useIsMounted } from \"@yamada-ui/utils\"\n\ninterface SkeletonOptions {\n  /**\n   * The color at the animation start.\n   */\n  startColor?: CSSUIProps[\"color\"]\n  /**\n   * The color at the animation end.\n   */\n  endColor?: CSSUIProps[\"color\"]\n  /**\n   * If `true`, it'll render its children with a nice fade transition.\n   *\n   * @default false\n   */\n  isLoaded?: boolean\n  /**\n   * The animation speed in seconds.\n   *\n   * @default 0.8\n   */\n  speed?: string | number\n  /**\n   * The fadeIn duration in seconds. Requires `isLoaded` toggled to `true` in order to see the transition.\n   *\n   * @default 0.4\n   */\n  fadeDuration?: string | number\n  /**\n   * If `true`, the skeleton will take the width of it's children.\n   *\n   * @default false\n   */\n  isFitContent?: boolean\n}\n\nexport interface SkeletonProps\n  extends HTMLUIProps,\n    ThemeProps<\"Skeleton\">,\n    SkeletonOptions {}\n\n/**\n * `Skeleton` is a component that acts as a placeholder until content is loaded.\n *\n * @see Docs https://yamada-ui.com/components/feedback/skeleton\n */\nexport const Skeleton = forwardRef<SkeletonProps, \"div\">((props, ref) => {\n  const [styles, mergedProps] = useComponentStyle(\"Skeleton\", props)\n  let {\n    className,\n    startColor: _startColor,\n    endColor: _endColor,\n    fadeDuration = 0.4,\n    speed = 0.8,\n    isLoaded,\n    isFitContent,\n    children,\n    ...rest\n  } = omitThemeProps(mergedProps)\n  const [isMounted] = useIsMounted()\n  const validChildren = getValidChildren(children)\n  const prevIsLoaded = usePrevious(isLoaded)\n  const startColor = useValue(_startColor)\n  const endColor = useValue(_endColor)\n  const hasChildren = !!validChildren.length\n\n  isFitContent ??= hasChildren\n\n  const fadeIn = useAnimation({\n    keyframes: {\n      \"0%\": {\n        opacity: 0,\n      },\n      \"100%\": {\n        opacity: 1,\n      },\n    },\n    duration:\n      typeof fadeDuration === \"string\" ? fadeDuration : `${fadeDuration}s`,\n  })\n\n  const animation = useAnimation({\n    keyframes: {\n      \"0%\": {\n        borderColor: startColor,\n        background: startColor,\n      },\n      \"100%\": {\n        borderColor: endColor,\n        background: endColor,\n      },\n    },\n    duration: typeof speed === \"string\" ? speed : `${speed}s`,\n    iterationCount: \"infinite\",\n    direction: \"alternate\",\n    timingFunction: \"linear\",\n  })\n\n  const css: CSSUIObject = {\n    w: isFitContent ? \"fit-content\" : \"100%\",\n    maxW: \"100%\",\n    h: isFitContent ? \"fit-content\" : \"fallback(4, 1rem)\",\n    boxShadow: \"none\",\n    backgroundClip: \"padding-box\",\n    cursor: \"default\",\n    color: \"transparent\",\n    pointerEvents: \"none\",\n    userSelect: \"none\",\n    \"&::before, &::after, *\": {\n      visibility: \"hidden\",\n    },\n    ...styles,\n  }\n\n  if (isLoaded) {\n    const animation = !isMounted() || prevIsLoaded ? \"none\" : fadeIn\n\n    return (\n      <ui.div\n        ref={ref}\n        className={cx(\"ui-skeleton\", \"ui-skeleton--loaded\", className)}\n        {...rest}\n        animation={animation}\n        aria-busy=\"false\"\n      >\n        {validChildren}\n      </ui.div>\n    )\n  } else {\n    return (\n      <ui.div\n        ref={ref}\n        className={cx(\"ui-skeleton\", className)}\n        __css={css}\n        {...rest}\n        animation={animation}\n        aria-busy=\"true\"\n      >\n        {validChildren}\n      </ui.div>\n    )\n  }\n})\n\nSkeleton.displayName = \"Skeleton\"\nSkeleton.__ui__ = \"Skeleton\"\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,kBAKO;AACP,2BAA6B;AAC7B,0BAA4B;AAC5B,uBAAyB;AACzB,mBAAmD;AAuH7C;AAxEC,IAAM,eAAW,wBAAiC,CAAC,OAAO,QAAQ;AACvE,QAAM,CAAC,QAAQ,WAAW,QAAI,+BAAkB,YAAY,KAAK;AACjE,MAAI;AAAA,IACF;AAAA,IACA,YAAY;AAAA,IACZ,UAAU;AAAA,IACV,eAAe;AAAA,IACf,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,QAAI,4BAAe,WAAW;AAC9B,QAAM,CAAC,SAAS,QAAI,2BAAa;AACjC,QAAM,oBAAgB,+BAAiB,QAAQ;AAC/C,QAAM,mBAAe,iCAAY,QAAQ;AACzC,QAAM,iBAAa,2BAAS,WAAW;AACvC,QAAM,eAAW,2BAAS,SAAS;AACnC,QAAM,cAAc,CAAC,CAAC,cAAc;AAEpC,uDAAiB;AAEjB,QAAM,aAAS,mCAAa;AAAA,IAC1B,WAAW;AAAA,MACT,MAAM;AAAA,QACJ,SAAS;AAAA,MACX;AAAA,MACA,QAAQ;AAAA,QACN,SAAS;AAAA,MACX;AAAA,IACF;AAAA,IACA,UACE,OAAO,iBAAiB,WAAW,eAAe,GAAG,YAAY;AAAA,EACrE,CAAC;AAED,QAAM,gBAAY,mCAAa;AAAA,IAC7B,WAAW;AAAA,MACT,MAAM;AAAA,QACJ,aAAa;AAAA,QACb,YAAY;AAAA,MACd;AAAA,MACA,QAAQ;AAAA,QACN,aAAa;AAAA,QACb,YAAY;AAAA,MACd;AAAA,IACF;AAAA,IACA,UAAU,OAAO,UAAU,WAAW,QAAQ,GAAG,KAAK;AAAA,IACtD,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,gBAAgB;AAAA,EAClB,CAAC;AAED,QAAM,MAAmB;AAAA,IACvB,GAAG,eAAe,gBAAgB;AAAA,IAClC,MAAM;AAAA,IACN,GAAG,eAAe,gBAAgB;AAAA,IAClC,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,eAAe;AAAA,IACf,YAAY;AAAA,IACZ,0BAA0B;AAAA,MACxB,YAAY;AAAA,IACd;AAAA,IACA,GAAG;AAAA,EACL;AAEA,MAAI,UAAU;AACZ,UAAMA,aAAY,CAAC,UAAU,KAAK,eAAe,SAAS;AAE1D,WACE;AAAA,MAAC,eAAG;AAAA,MAAH;AAAA,QACC;AAAA,QACA,eAAW,iBAAG,eAAe,uBAAuB,SAAS;AAAA,QAC5D,GAAG;AAAA,QACJ,WAAWA;AAAA,QACX,aAAU;AAAA,QAET;AAAA;AAAA,IACH;AAAA,EAEJ,OAAO;AACL,WACE;AAAA,MAAC,eAAG;AAAA,MAAH;AAAA,QACC;AAAA,QACA,eAAW,iBAAG,eAAe,SAAS;AAAA,QACtC,OAAO;AAAA,QACN,GAAG;AAAA,QACJ;AAAA,QACA,aAAU;AAAA,QAET;AAAA;AAAA,IACH;AAAA,EAEJ;AACF,CAAC;AAED,SAAS,cAAc;AACvB,SAAS,SAAS;","names":["animation"]}
         
     | 
    
        package/dist/skeleton.mjs
    CHANGED
    
    
    
        package/package.json
    CHANGED
    
    | 
         @@ -1,6 +1,6 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            {
         
     | 
| 
       2 
2 
     | 
    
         
             
              "name": "@yamada-ui/skeleton",
         
     | 
| 
       3 
     | 
    
         
            -
              "version": "1.1.6-dev- 
     | 
| 
      
 3 
     | 
    
         
            +
              "version": "1.1.6-dev-20240923144612",
         
     | 
| 
       4 
4 
     | 
    
         
             
              "description": "Yamada UI skeleton component",
         
     | 
| 
       5 
5 
     | 
    
         
             
              "keywords": [
         
     | 
| 
       6 
6 
     | 
    
         
             
                "yamada",
         
     | 
| 
         @@ -36,11 +36,11 @@ 
     | 
|
| 
       36 
36 
     | 
    
         
             
                "url": "https://github.com/yamada-ui/yamada-ui/issues"
         
     | 
| 
       37 
37 
     | 
    
         
             
              },
         
     | 
| 
       38 
38 
     | 
    
         
             
              "dependencies": {
         
     | 
| 
       39 
     | 
    
         
            -
                "@yamada-ui/core": "1.15.1-dev- 
     | 
| 
       40 
     | 
    
         
            -
                "@yamada-ui/use-animation": "1.0.38-dev- 
     | 
| 
       41 
     | 
    
         
            -
                "@yamada-ui/use-previous": "1.0.21-dev- 
     | 
| 
       42 
     | 
    
         
            -
                "@yamada-ui/use-value": "1.1.26-dev- 
     | 
| 
       43 
     | 
    
         
            -
                "@yamada-ui/utils": "1.5.2-dev- 
     | 
| 
      
 39 
     | 
    
         
            +
                "@yamada-ui/core": "1.15.1-dev-20240923144612",
         
     | 
| 
      
 40 
     | 
    
         
            +
                "@yamada-ui/use-animation": "1.0.38-dev-20240923144612",
         
     | 
| 
      
 41 
     | 
    
         
            +
                "@yamada-ui/use-previous": "1.0.21-dev-20240923144612",
         
     | 
| 
      
 42 
     | 
    
         
            +
                "@yamada-ui/use-value": "1.1.26-dev-20240923144612",
         
     | 
| 
      
 43 
     | 
    
         
            +
                "@yamada-ui/utils": "1.5.2-dev-20240923144612"
         
     | 
| 
       44 
44 
     | 
    
         
             
              },
         
     | 
| 
       45 
45 
     | 
    
         
             
              "devDependencies": {
         
     | 
| 
       46 
46 
     | 
    
         
             
                "clean-package": "2.2.0",
         
     | 
| 
         @@ -1 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"sources":["../src/skeleton.tsx"],"sourcesContent":["import type {\n  CSSUIObject,\n  HTMLUIProps,\n  ThemeProps,\n  CSSUIProps,\n} from \"@yamada-ui/core\"\nimport {\n  ui,\n  forwardRef,\n  omitThemeProps,\n  useComponentStyle,\n} from \"@yamada-ui/core\"\nimport { useAnimation } from \"@yamada-ui/use-animation\"\nimport { usePrevious } from \"@yamada-ui/use-previous\"\nimport { useValue } from \"@yamada-ui/use-value\"\nimport { cx, getValidChildren, useIsMounted } from \"@yamada-ui/utils\"\n\ninterface SkeletonOptions {\n  /**\n   * The color at the animation start.\n   */\n  startColor?: CSSUIProps[\"color\"]\n  /**\n   * The color at the animation end.\n   */\n  endColor?: CSSUIProps[\"color\"]\n  /**\n   * If `true`, it'll render its children with a nice fade transition.\n   *\n   * @default false\n   */\n  isLoaded?: boolean\n  /**\n   * The animation speed in seconds.\n   *\n   * @default 0.8\n   */\n  speed?: string | number\n  /**\n   * The fadeIn duration in seconds. Requires `isLoaded` toggled to `true` in order to see the transition.\n   *\n   * @default 0.4\n   */\n  fadeDuration?: string | number\n  /**\n   * If `true`, the skeleton will take the width of it's children.\n   *\n   * @default false\n   */\n  isFitContent?: boolean\n}\n\nexport interface SkeletonProps\n  extends HTMLUIProps,\n    ThemeProps<\"Skeleton\">,\n    SkeletonOptions {}\n\n/**\n * `Skeleton` is a component that acts as a placeholder until content is loaded.\n *\n * @see Docs https://yamada-ui.com/components/feedback/skeleton\n */\nexport const Skeleton = forwardRef<SkeletonProps, \"div\">((props, ref) => {\n  const [styles, mergedProps] = useComponentStyle(\"Skeleton\", props)\n  let {\n    className,\n    startColor,\n    endColor,\n    fadeDuration = 0.4,\n    speed = 0.8,\n    isLoaded,\n    isFitContent,\n    children,\n    ...rest\n  } = omitThemeProps(mergedProps)\n  const [isMounted] = useIsMounted()\n  const validChildren = getValidChildren(children)\n  const prevIsLoaded = usePrevious(isLoaded)\n  const computedStartColor = useValue(startColor)\n  const computedEndColor = useValue(endColor)\n  const hasChildren = !!validChildren.length\n\n  isFitContent ??= hasChildren\n\n  const fadeIn = useAnimation({\n    keyframes: {\n      \"0%\": {\n        opacity: 0,\n      },\n      \"100%\": {\n        opacity: 1,\n      },\n    },\n    duration:\n      typeof fadeDuration === \"string\" ? fadeDuration : `${fadeDuration}s`,\n  })\n\n  const animation = useAnimation({\n    keyframes: {\n      \"0%\": {\n        borderColor: computedStartColor,\n        background: computedStartColor,\n      },\n      \"100%\": {\n        borderColor: computedEndColor,\n        background: computedEndColor,\n      },\n    },\n    duration: typeof speed === \"string\" ? speed : `${speed}s`,\n    iterationCount: \"infinite\",\n    direction: \"alternate\",\n    timingFunction: \"linear\",\n  })\n\n  const css: CSSUIObject = {\n    w: isFitContent ? \"fit-content\" : \"100%\",\n    maxW: \"100%\",\n    h: isFitContent ? \"fit-content\" : \"fallback(4, 1rem)\",\n    boxShadow: \"none\",\n    backgroundClip: \"padding-box\",\n    cursor: \"default\",\n    color: \"transparent\",\n    pointerEvents: \"none\",\n    userSelect: \"none\",\n    \"&::before, &::after, *\": {\n      visibility: \"hidden\",\n    },\n    ...styles,\n  }\n\n  if (isLoaded) {\n    const animation = !isMounted() || prevIsLoaded ? \"none\" : fadeIn\n\n    return (\n      <ui.div\n        ref={ref}\n        className={cx(\"ui-skeleton\", \"ui-skeleton--loaded\", className)}\n        {...rest}\n        animation={animation}\n        aria-busy=\"false\"\n      >\n        {validChildren}\n      </ui.div>\n    )\n  } else {\n    return (\n      <ui.div\n        ref={ref}\n        className={cx(\"ui-skeleton\", className)}\n        __css={css}\n        {...rest}\n        animation={animation}\n        aria-busy=\"true\"\n      >\n        {validChildren}\n      </ui.div>\n    )\n  }\n})\n\nSkeleton.displayName = \"Skeleton\"\nSkeleton.__ui__ = \"Skeleton\"\n"],"mappings":";;;AAMA;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACK;AACP,SAAS,oBAAoB;AAC7B,SAAS,mBAAmB;AAC5B,SAAS,gBAAgB;AACzB,SAAS,IAAI,kBAAkB,oBAAoB;AAuH7C;AAxEC,IAAM,WAAW,WAAiC,CAAC,OAAO,QAAQ;AACvE,QAAM,CAAC,QAAQ,WAAW,IAAI,kBAAkB,YAAY,KAAK;AACjE,MAAI;AAAA,IACF;AAAA,IACA;AAAA,IACA;AAAA,IACA,eAAe;AAAA,IACf,QAAQ;AAAA,IACR;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,IAAI,eAAe,WAAW;AAC9B,QAAM,CAAC,SAAS,IAAI,aAAa;AACjC,QAAM,gBAAgB,iBAAiB,QAAQ;AAC/C,QAAM,eAAe,YAAY,QAAQ;AACzC,QAAM,qBAAqB,SAAS,UAAU;AAC9C,QAAM,mBAAmB,SAAS,QAAQ;AAC1C,QAAM,cAAc,CAAC,CAAC,cAAc;AAEpC,uDAAiB;AAEjB,QAAM,SAAS,aAAa;AAAA,IAC1B,WAAW;AAAA,MACT,MAAM;AAAA,QACJ,SAAS;AAAA,MACX;AAAA,MACA,QAAQ;AAAA,QACN,SAAS;AAAA,MACX;AAAA,IACF;AAAA,IACA,UACE,OAAO,iBAAiB,WAAW,eAAe,GAAG,YAAY;AAAA,EACrE,CAAC;AAED,QAAM,YAAY,aAAa;AAAA,IAC7B,WAAW;AAAA,MACT,MAAM;AAAA,QACJ,aAAa;AAAA,QACb,YAAY;AAAA,MACd;AAAA,MACA,QAAQ;AAAA,QACN,aAAa;AAAA,QACb,YAAY;AAAA,MACd;AAAA,IACF;AAAA,IACA,UAAU,OAAO,UAAU,WAAW,QAAQ,GAAG,KAAK;AAAA,IACtD,gBAAgB;AAAA,IAChB,WAAW;AAAA,IACX,gBAAgB;AAAA,EAClB,CAAC;AAED,QAAM,MAAmB;AAAA,IACvB,GAAG,eAAe,gBAAgB;AAAA,IAClC,MAAM;AAAA,IACN,GAAG,eAAe,gBAAgB;AAAA,IAClC,WAAW;AAAA,IACX,gBAAgB;AAAA,IAChB,QAAQ;AAAA,IACR,OAAO;AAAA,IACP,eAAe;AAAA,IACf,YAAY;AAAA,IACZ,0BAA0B;AAAA,MACxB,YAAY;AAAA,IACd;AAAA,IACA,GAAG;AAAA,EACL;AAEA,MAAI,UAAU;AACZ,UAAMA,aAAY,CAAC,UAAU,KAAK,eAAe,SAAS;AAE1D,WACE;AAAA,MAAC,GAAG;AAAA,MAAH;AAAA,QACC;AAAA,QACA,WAAW,GAAG,eAAe,uBAAuB,SAAS;AAAA,QAC5D,GAAG;AAAA,QACJ,WAAWA;AAAA,QACX,aAAU;AAAA,QAET;AAAA;AAAA,IACH;AAAA,EAEJ,OAAO;AACL,WACE;AAAA,MAAC,GAAG;AAAA,MAAH;AAAA,QACC;AAAA,QACA,WAAW,GAAG,eAAe,SAAS;AAAA,QACtC,OAAO;AAAA,QACN,GAAG;AAAA,QACJ;AAAA,QACA,aAAU;AAAA,QAET;AAAA;AAAA,IACH;AAAA,EAEJ;AACF,CAAC;AAED,SAAS,cAAc;AACvB,SAAS,SAAS;","names":["animation"]}
         
     | 
| 
         @@ -1 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            {"version":3,"sources":["../src/skeleton-text.tsx"],"sourcesContent":["import type { CSSUIProps, CSSUIObject } from \"@yamada-ui/core\"\nimport { ui, forwardRef } from \"@yamada-ui/core\"\nimport { useValue } from \"@yamada-ui/use-value\"\nimport { cx } from \"@yamada-ui/utils\"\nimport type { SkeletonProps } from \"./skeleton\"\nimport { Skeleton } from \"./skeleton\"\n\ninterface SkeletonTextOptions {\n  /**\n   * The CSS `gap` property.\n   */\n  gap?: CSSUIProps[\"gap\"]\n  /**\n   * The CSS `height` property.\n   */\n  textHeight?: CSSUIProps[\"height\"]\n}\n\nexport interface SkeletonTextProps\n  extends Omit<SkeletonProps, \"isFitContent\">,\n    SkeletonTextOptions {}\n\nexport const SkeletonText = forwardRef<SkeletonTextProps, \"div\">(\n  (\n    {\n      className,\n      lineClamp = 3,\n      startColor,\n      endColor,\n      fadeDuration,\n      speed,\n      isLoaded,\n      gap = \"fallback(2, 0.5rem)\",\n      textHeight = \"fallback(2, 0.5rem)\",\n      children,\n      ...rest\n    },\n    ref,\n  ) => {\n    const computedLineClamp = useValue(lineClamp)\n\n    const css: CSSUIObject = {\n      w: \"100%\",\n    }\n\n    return (\n      <ui.div\n        ref={ref}\n        className={cx(\"ui-skeleton__text\", className)}\n        __css={css}\n        {...rest}\n      >\n        {Array(computedLineClamp)\n          .fill(0)\n          .map((_, index) => {\n            if (isLoaded && index > 0) return null\n\n            const isLast = index + 1 === computedLineClamp\n\n            const props: SkeletonProps = !isLoaded\n              ? {\n                  mb: !isLast ? gap : undefined,\n                  w:\n                    computedLineClamp > 1 ? (!isLast ? \"100%\" : \"80%\") : \"100%\",\n                  h: textHeight,\n                }\n              : {}\n\n            return (\n              <Skeleton\n                key={index}\n                {...{\n                  startColor,\n                  endColor,\n                  fadeDuration,\n                  speed,\n                  isLoaded,\n                  ...props,\n                }}\n              >\n                {index === 0 ? children : undefined}\n              </Skeleton>\n            )\n          })}\n      </ui.div>\n    )\n  },\n)\n\nSkeletonText.displayName = \"SkeletonText\"\nSkeletonText.__ui__ = \"SkeletonText\"\n"],"mappings":";;;;;;AACA,SAAS,IAAI,kBAAkB;AAC/B,SAAS,gBAAgB;AACzB,SAAS,UAAU;AAkEL;AA/CP,IAAM,eAAe;AAAA,EAC1B,CACE;AAAA,IACE;AAAA,IACA,YAAY;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,MAAM;AAAA,IACN,aAAa;AAAA,IACb;AAAA,IACA,GAAG;AAAA,EACL,GACA,QACG;AACH,UAAM,oBAAoB,SAAS,SAAS;AAE5C,UAAM,MAAmB;AAAA,MACvB,GAAG;AAAA,IACL;AAEA,WACE;AAAA,MAAC,GAAG;AAAA,MAAH;AAAA,QACC;AAAA,QACA,WAAW,GAAG,qBAAqB,SAAS;AAAA,QAC5C,OAAO;AAAA,QACN,GAAG;AAAA,QAEH,gBAAM,iBAAiB,EACrB,KAAK,CAAC,EACN,IAAI,CAAC,GAAG,UAAU;AACjB,cAAI,YAAY,QAAQ,EAAG,QAAO;AAElC,gBAAM,SAAS,QAAQ,MAAM;AAE7B,gBAAM,QAAuB,CAAC,WAC1B;AAAA,YACE,IAAI,CAAC,SAAS,MAAM;AAAA,YACpB,GACE,oBAAoB,IAAK,CAAC,SAAS,SAAS,QAAS;AAAA,YACvD,GAAG;AAAA,UACL,IACA,CAAC;AAEL,iBACE;AAAA,YAAC;AAAA;AAAA,cAEE,GAAG;AAAA,gBACF;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA;AAAA,gBACA,GAAG;AAAA,cACL;AAAA,cAEC,oBAAU,IAAI,WAAW;AAAA;AAAA,YAVrB;AAAA,UAWP;AAAA,QAEJ,CAAC;AAAA;AAAA,IACL;AAAA,EAEJ;AACF;AAEA,aAAa,cAAc;AAC3B,aAAa,SAAS;","names":[]}
         
     | 
| 
         
            File without changes
         
     |