@cleartrip/ct-design-spinner 4.0.0-TEST.1 → 5.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,73 @@
1
+ # Spinner
2
+
3
+ A loading spinner component with customizable appearance.
4
+
5
+ ---
6
+
7
+ ## Installation
8
+
9
+ ```bash
10
+ npm install @cleartrip/ct-design-spinner
11
+ # or
12
+ pnpm add @cleartrip/ct-design-spinner
13
+ ```
14
+
15
+ ### Peer dependencies
16
+
17
+ ```bash
18
+ # Required for all targets
19
+ npm install react
20
+
21
+ # Web only
22
+ npm install react-dom
23
+
24
+ # React Native only
25
+ npm install react-native
26
+ ```
27
+
28
+ ---
29
+
30
+ ## Usage
31
+
32
+ ### Basic
33
+
34
+ ```tsx
35
+ import { Spinner } from '@cleartrip/ct-design-spinner';
36
+
37
+ function Example() {
38
+ return (
39
+ <Spinner>
40
+ {/* Basic usage */}
41
+ </Spinner>
42
+ );
43
+ }
44
+ ```
45
+
46
+ ---
47
+
48
+ ## Props
49
+
50
+ | Prop | Type | Default | Required | Description |
51
+ |------|------|---------|----------|-------------|
52
+ | `width` | `number` | — | No | width property |
53
+ | `height` | `number` | — | No | height property |
54
+ | `gradientColors` | `string[]` | — | No | gradientColors property |
55
+
56
+ ---
57
+
58
+ ## Accessibility
59
+
60
+ - The component follows accessibility best practices
61
+ - Ensure proper ARIA attributes are provided where needed
62
+ - Test with screen readers to ensure usability
63
+
64
+ ---
65
+
66
+ ## Migration
67
+
68
+ If migrating from a previous version:
69
+
70
+ ```diff
71
+ - import { Spinner } from 'yagami/core/components';
72
+ + import { Spinner } from '@cleartrip/ct-design-spinner';
73
+ ```
package/dist/Spinner.d.ts CHANGED
@@ -1,4 +1,8 @@
1
- import { SpinnerProps } from './type';
2
- export * from './type';
3
- export default function Spinner({ height, width, borderColor }: SpinnerProps): import("react/jsx-runtime").JSX.Element;
1
+ import React from 'react';
2
+ import { ISpinnerProps } from './type';
3
+ declare const Spinner: {
4
+ ({ width, height, gradientColors }: ISpinnerProps): React.ReactElement;
5
+ displayName: string;
6
+ };
7
+ export default Spinner;
4
8
  //# sourceMappingURL=Spinner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../packages/components/Spinner/src/Spinner.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AACtC,cAAc,QAAQ,CAAC;AAEvB,MAAM,CAAC,OAAO,UAAU,OAAO,CAAC,EAAE,MAAe,EAAE,KAAc,EAAE,WAAgB,EAAE,EAAE,YAAY,2CAGlG"}
1
+ {"version":3,"file":"Spinner.d.ts","sourceRoot":"","sources":["../packages/components/Spinner/src/Spinner.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAgB,MAAM,OAAO,CAAC;AAMrC,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAavC,QAAA,MAAM,OAAO;wCAAiD,aAAa,GAAG,KAAK,CAAC,YAAY;;CAyD/F,CAAC;AAIF,eAAe,OAAO,CAAC"}
@@ -0,0 +1,8 @@
1
+ import React from 'react';
2
+ import { ISpinnerProps } from './type';
3
+ declare const Spinner: {
4
+ ({ width, height, gradientColors }: ISpinnerProps): React.ReactElement;
5
+ displayName: string;
6
+ };
7
+ export default Spinner;
8
+ //# sourceMappingURL=Spinner.native.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Spinner.native.d.ts","sourceRoot":"","sources":["../packages/components/Spinner/src/Spinner.native.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA2B,MAAM,OAAO,CAAC;AAMhD,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAKvC,QAAA,MAAM,OAAO;wCAAiD,aAAa,GAAG,KAAK,CAAC,YAAY;;CA4D/F,CAAC;AAIF,eAAe,OAAO,CAAC"}
@@ -1,2 +1,5 @@
1
- "use strict";var n=require("react/jsx-runtime"),e=require("@cleartrip/ct-design-theme"),r=require("tslib"),t=require("@emotion/styled"),i=require("@emotion/react");function o(n){return n&&n.__esModule?n:{default:n}}var a,s,d=o(t).default.div(s||(s=r.__makeTemplateObject(["\n border: ",";\n border-radius: 50%;\n border-top: ",";\n width: ",";\n height: ",";\n -webkit-animation: spin 2s linear infinite;\n animation: spin 2s linear infinite;\n\n @-webkit-keyframes spin {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n }\n\n @keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n ","\n"],["\n border: ",";\n border-radius: 50%;\n border-top: ",";\n width: ",";\n height: ",";\n -webkit-animation: spin 2s linear infinite;\n animation: spin 2s linear infinite;\n\n @-webkit-keyframes spin {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n }\n\n @keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n ","\n"])),(function(n){var e=n.theme,r=n.height,t=parseInt(r||e.size[12])/6;return"".concat(t>0?t:8,"px solid ").concat(e.color.spinner.primaryBg)}),(function(n){var e=n.theme,r=n.height,t=n.borderColor,i=parseInt(r||e.size[12])/6;return"".concat(i>0?i:8,"px solid ").concat(t||e.color.spinner.primary)}),(function(n){var e=n.width,r=n.theme;return e||r.size[12]}),(function(n){var e=n.height,r=n.theme;return e||r.size[12]}),(function(n){var e=n.css;return e&&i.css(a||(a=r.__makeTemplateObject(["\n\t","\n "],["\n\t","\n "])),e)}));exports.Spinner=function(r){var t=r.height,i=void 0===t?"16px":t,o=r.width,a=void 0===o?"16px":o,s=r.borderColor,m=void 0===s?"":s,u=e.useTheme();return n.jsx(d,{theme:u,height:i,width:a,borderColor:m})};
1
+ "use strict";var e=require("react/jsx-runtime"),r=require("react"),s=require("@cleartrip/ct-design-style-manager"),t=require("@emotion/css");const i=s.makeStyles(e=>({root:{position:"relative",borderWidth:e.border.width.lg,borderStyle:"solid",borderColor:"rgba(0, 0, 0, 0.3)",borderRadius:e.border.radius[32],borderTopColor:e.color.background.neutral}})),o=t.keyframes`
2
+ 0% { transform: rotate(0deg); }
3
+ 100% { transform: rotate(360deg); }
4
+ `,a=t.css({animation:`${o} 800ms linear infinite`}),n=({width:t=30,height:o=30,gradientColors:n})=>{const l=r.useId(),d=Array.isArray(n)&&n.length>0,c=s.useStyles(()=>({size:{width:t,height:o}}),[t,o]),h=s.useWebMergeStyles([i.root,c.size,a],[c.size,a]),u=s.useWebMergeStyles([c.size,a],[c.size,a]);if(d){const r=Math.min(t,o),s=r/2,i=(r-2)/2,a=2*Math.PI*i,d=`url(#${l})`;return e.jsx("span",{className:u,role:"status","aria-label":"Loading",children:e.jsxs("svg",{width:r,height:r,viewBox:`0 0 ${r} ${r}`,fill:"none",children:[e.jsx("defs",{children:e.jsx("linearGradient",{id:l,x1:"0%",y1:"0%",x2:"100%",y2:"0%",children:n.map((r,s)=>e.jsx("stop",{offset:s/(n.length-1)*100+"%",stopColor:r},s))})}),e.jsx("circle",{cx:s,cy:s,r:i,stroke:d,strokeWidth:2,strokeLinecap:"round",strokeDasharray:`${.65*a} ${.35*a}`,fill:"none"})]})})}return e.jsx("span",{role:"status","aria-label":"Loading",className:h})};n.displayName="Spinner",exports.Spinner=n;
2
5
  //# sourceMappingURL=ct-design-spinner.browser.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ct-design-spinner.browser.cjs.js","sources":["../packages/components/Spinner/src/style.tsx","../packages/components/Spinner/src/Spinner.tsx"],"sourcesContent":[null,null],"names":["StyledSpinner","default","div","_a","theme","height","spinerHeight","parseInt","size","concat","color","spinner","primaryBg","borderColor","primary","width","css","CSS","templateObject_1","__makeTemplateObject","_b","_c","_d","useTheme","_jsx"],"mappings":"+NAIaA,OAAsBC,QAACC,4fAAiB,eAIlD,2CAKA,eACqD,gBACG,0XAyBzD,SAnCU,SAACC,OAAEC,EAAKD,EAAAC,MAAEC,EAAMF,EAAAE,OAClBC,EAAeC,SAASF,GAAUD,EAAMI,KAAK,KAAO,EAC1D,MAAO,GAAAC,OAAGH,EAAe,EAAIA,EAAe,EAAC,aAAAG,OAAYL,EAAMM,MAAMC,QAAQC,UAC/E,IAEc,SAACT,GAAE,IAAAC,UAAOC,EAAMF,EAAAE,OAAEQ,EAAWV,EAAAU,YACnCP,EAAeC,SAASF,GAAUD,EAAMI,KAAK,KAAO,EAC1D,MAAO,GAAAC,OAAGH,EAAe,EAAIA,EAAe,EAAa,aAAAG,OAAAI,GAAeT,EAAMM,MAAMC,QAAQG,QAC9F,IACS,SAACX,OAAEY,EAAKZ,EAAAY,MAAEX,EAAKD,EAAAC,MAAO,OAAAW,GAASX,EAAMI,KAAK,GAApB,IACrB,SAACL,OAAEE,EAAMF,EAAAE,OAAED,EAAKD,EAAAC,MAAO,OAAAC,GAAUD,EAAMI,KAAK,GAArB,IAqB/B,SAACL,GAAE,IAAAa,EAAGb,EAAAa,IACN,OAAAA,GACAC,EAAGD,IAAAE,IAAAA,EAAAC,EAAAA,qBAAA,CAAA,OAAA,OAAA,CAAA,OACkC,SAAtCH,EAFC,oBChCoB,SAAQb,GAAE,IAAAiB,EAAAjB,EAAAE,OAAAA,OAAM,IAAAe,EAAG,OAAMA,EAAEC,UAAAN,OAAQ,IAAAM,EAAA,SAAQC,EAAAnB,EAAAU,YAAAA,OAAW,IAAAS,EAAG,GAAEA,EAC3ElB,EAAQmB,EAAAA,WACd,OAAOC,MAACxB,EAAa,CAACI,MAAOA,EAAOC,OAAQA,EAAQU,MAAOA,EAAOF,YAAaA,GACjF"}
1
+ {"version":3,"file":"ct-design-spinner.browser.cjs.js","sources":["../packages/components/Spinner/src/style.ts","../packages/components/Spinner/src/Spinner.tsx"],"sourcesContent":[null,null],"names":["spinnerStaticStyles","makeStyles","theme","root","position","borderWidth","border","width","lg","borderStyle","borderColor","borderRadius","radius","borderTopColor","color","background","neutral","spinAnimation","keyframes","animationClass","css","animation","Spinner","height","gradientColors","gradientId","useId","hasGradient","Array","isArray","length","dynamicStyles","useStyles","size","rootClassName","useWebMergeStyles","gradientWrapperClassName","Math","min","center","circumference","PI","strokeUrl","_jsx","className","role","children","_jsxs","jsxs","viewBox","fill","jsx","id","x1","y1","x2","y2","map","index","offset","stopColor","cx","cy","r","stroke","strokeWidth","strokeLinecap","strokeDasharray","displayName"],"mappings":"6IAEO,MAAMA,EAAsBC,EAAAA,WAAYC,IAAW,CACxDC,KAAM,CACJC,SAAU,WACVC,YAAaH,EAAMI,OAAOC,MAAMC,GAChCC,YAAa,QACbC,YAAa,qBACbC,aAAcT,EAAMI,OAAOM,OAAO,IAClCC,eAAgBX,EAAMY,MAAMC,WAAWC,YCDrCC,EAAgBC,EAASA,SAAA;;;EAKzBC,EAAiBC,EAAAA,IAAI,CACzBC,UAAW,GAAGJ,4BAKVK,EAAU,EAAGf,QAAQ,GAAIgB,SAAS,GAAIC,qBAC1C,MAAMC,EAAaC,EAAAA,QACbC,EAAcC,MAAMC,QAAQL,IAAmBA,EAAeM,OAAS,EAEvEC,EAAgBC,EAAAA,UACpB,KAAO,CACLC,KAAM,CACJ1B,QACAgB,YAGJ,CAAChB,EAAOgB,IAGJW,EAAgBC,EAAiBA,kBACrC,CAACnC,EAAoBG,KAAM4B,EAAcE,KAAMd,GAC/C,CAACY,EAAcE,KAAMd,IAGjBiB,EAA2BD,EAAAA,kBAC/B,CAACJ,EAAcE,KAAMd,GACrB,CAACY,EAAcE,KAAMd,IAGvB,GAAIQ,EAAa,CACf,MAAMM,EAAOI,KAAKC,IAAI/B,EAAOgB,GACvBgB,EAASN,EAAO,EAChBrB,GAAUqB,EA7BS,GA6BsB,EACzCO,EAAgB,EAAIH,KAAKI,GAAK7B,EAC9B8B,EAAY,QAAQjB,KAE1B,OACEkB,MAAA,OAAA,CAAMC,UAAWR,EAA0BS,KAAK,SAAoB,aAAA,UAClEC,SAAAC,EAAAC,KAAA,MAAA,CAAKzC,MAAO0B,EAAMV,OAAQU,EAAMgB,QAAS,OAAOhB,KAAQA,IAAQiB,KAAK,iBACnEP,MACE,OAAA,CAAAG,SAAAH,EAAAQ,IAAA,iBAAA,CAAgBC,GAAI3B,EAAY4B,GAAG,KAAKC,GAAG,KAAKC,GAAG,OAAOC,GAAG,KAAIV,SAC9DtB,EAAeiC,IAAI,CAAC3C,EAAO4C,IAC1Bf,MAAkB,OAAA,CAAAgB,OAAYD,GAASlC,EAAeM,OAAS,GAAM,IAA3C,IAAmD8B,UAAW9C,GAA7E4C,QAIjBf,EAAAA,IACE,SAAA,CAAAkB,GAAItB,EACJuB,GAAIvB,EACJwB,EAAGnD,EACHoD,OAAQtB,EACRuB,YAhDiB,EAiDjBC,cAAc,QACdC,gBAAiB,GAnDH,IAmDM3B,KAAkD,IAAbA,IACzDU,KAAK,aAKd,CAED,OAAOP,EAAAQ,IAAA,OAAA,CAAMN,KAAK,SAAQ,aAAY,UAAUD,UAAWV,KAG7DZ,EAAQ8C,YAAc"}
@@ -1,2 +1,5 @@
1
- import{jsx as n}from"react/jsx-runtime";import{useTheme as r}from"@cleartrip/ct-design-theme";import{__makeTemplateObject as t}from"tslib";import e from"@emotion/styled";import{css as i}from"@emotion/react";var o,a,s=e.div(a||(a=t(["\n border: ",";\n border-radius: 50%;\n border-top: ",";\n width: ",";\n height: ",";\n -webkit-animation: spin 2s linear infinite;\n animation: spin 2s linear infinite;\n\n @-webkit-keyframes spin {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n }\n\n @keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n ","\n"],["\n border: ",";\n border-radius: 50%;\n border-top: ",";\n width: ",";\n height: ",";\n -webkit-animation: spin 2s linear infinite;\n animation: spin 2s linear infinite;\n\n @-webkit-keyframes spin {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n }\n\n @keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n ","\n"])),(function(n){var r=n.theme,t=n.height,e=parseInt(t||r.size[12])/6;return"".concat(e>0?e:8,"px solid ").concat(r.color.spinner.primaryBg)}),(function(n){var r=n.theme,t=n.height,e=n.borderColor,i=parseInt(t||r.size[12])/6;return"".concat(i>0?i:8,"px solid ").concat(e||r.color.spinner.primary)}),(function(n){var r=n.width,t=n.theme;return r||t.size[12]}),(function(n){var r=n.height,t=n.theme;return r||t.size[12]}),(function(n){var r=n.css;return r&&i(o||(o=t(["\n\t","\n "],["\n\t","\n "])),r)}));function m(t){var e=t.height,i=void 0===e?"16px":e,o=t.width,a=void 0===o?"16px":o,m=t.borderColor,d=void 0===m?"":m,f=r();return n(s,{theme:f,height:i,width:a,borderColor:d})}export{m as Spinner};
1
+ import{jsx as r,jsxs as e}from"react/jsx-runtime";import{useId as o}from"react";import{makeStyles as t,useStyles as i,useWebMergeStyles as a}from"@cleartrip/ct-design-style-manager";import{keyframes as s,css as n}from"@emotion/css";const l=t(r=>({root:{position:"relative",borderWidth:r.border.width.lg,borderStyle:"solid",borderColor:"rgba(0, 0, 0, 0.3)",borderRadius:r.border.radius[32],borderTopColor:r.color.background.neutral}})),d=n({animation:`${s`
2
+ 0% { transform: rotate(0deg); }
3
+ 100% { transform: rotate(360deg); }
4
+ `} 800ms linear infinite`}),c=({width:t=30,height:s=30,gradientColors:n})=>{const c=o(),h=Array.isArray(n)&&n.length>0,m=i(()=>({size:{width:t,height:s}}),[t,s]),g=a([l.root,m.size,d],[m.size,d]),p=a([m.size,d],[m.size,d]);if(h){const o=Math.min(t,s),i=o/2,a=(o-2)/2,l=2*Math.PI*a,d=`url(#${c})`;return r("span",{className:p,role:"status","aria-label":"Loading",children:e("svg",{width:o,height:o,viewBox:`0 0 ${o} ${o}`,fill:"none",children:[r("defs",{children:r("linearGradient",{id:c,x1:"0%",y1:"0%",x2:"100%",y2:"0%",children:n.map((e,o)=>r("stop",{offset:o/(n.length-1)*100+"%",stopColor:e},o))})}),r("circle",{cx:i,cy:i,r:a,stroke:d,strokeWidth:2,strokeLinecap:"round",strokeDasharray:`${.65*l} ${.35*l}`,fill:"none"})]})})}return r("span",{role:"status","aria-label":"Loading",className:g})};c.displayName="Spinner";export{c as Spinner};
2
5
  //# sourceMappingURL=ct-design-spinner.browser.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ct-design-spinner.browser.esm.js","sources":["../packages/components/Spinner/src/style.tsx","../packages/components/Spinner/src/Spinner.tsx"],"sourcesContent":[null,null],"names":["StyledSpinner","styled","div","_a","theme","height","spinerHeight","parseInt","size","concat","color","spinner","primaryBg","borderColor","primary","width","css","CSS","templateObject_1","__makeTemplateObject","Spinner","_b","_c","_d","useTheme","_jsx"],"mappings":"+MAIO,QAAMA,EAAgBC,EAAOC,ueAAiB,eAIlD,2CAKA,eACqD,gBACG,0XAyBzD,SAnCU,SAACC,OAAEC,EAAKD,EAAAC,MAAEC,EAAMF,EAAAE,OAClBC,EAAeC,SAASF,GAAUD,EAAMI,KAAK,KAAO,EAC1D,MAAO,GAAAC,OAAGH,EAAe,EAAIA,EAAe,EAAC,aAAAG,OAAYL,EAAMM,MAAMC,QAAQC,UAC/E,IAEc,SAACT,GAAE,IAAAC,UAAOC,EAAMF,EAAAE,OAAEQ,EAAWV,EAAAU,YACnCP,EAAeC,SAASF,GAAUD,EAAMI,KAAK,KAAO,EAC1D,MAAO,GAAAC,OAAGH,EAAe,EAAIA,EAAe,EAAa,aAAAG,OAAAI,GAAeT,EAAMM,MAAMC,QAAQG,QAC9F,IACS,SAACX,OAAEY,EAAKZ,EAAAY,MAAEX,EAAKD,EAAAC,MAAO,OAAAW,GAASX,EAAMI,KAAK,GAApB,IACrB,SAACL,OAAEE,EAAMF,EAAAE,OAAED,EAAKD,EAAAC,MAAO,OAAAC,GAAUD,EAAMI,KAAK,GAArB,IAqB/B,SAACL,GAAE,IAAAa,EAAGb,EAAAa,IACN,OAAAA,GACAC,EAAGC,IAAAA,EAAAC,EAAA,CAAA,OAAA,OAAA,CAAA,OACkC,SAAtCH,EAFC,IChCoB,SAAAI,EAAQjB,GAAE,IAAAkB,EAAAlB,EAAAE,OAAAA,OAAM,IAAAgB,EAAG,OAAMA,EAAEC,UAAAP,OAAQ,IAAAO,EAAA,SAAQC,EAAApB,EAAAU,YAAAA,OAAW,IAAAU,EAAG,GAAEA,EAC3EnB,EAAQoB,IACd,OAAOC,EAACzB,EAAa,CAACI,MAAOA,EAAOC,OAAQA,EAAQU,MAAOA,EAAOF,YAAaA,GACjF"}
1
+ {"version":3,"file":"ct-design-spinner.browser.esm.js","sources":["../packages/components/Spinner/src/style.ts","../packages/components/Spinner/src/Spinner.tsx"],"sourcesContent":[null,null],"names":["spinnerStaticStyles","makeStyles","theme","root","position","borderWidth","border","width","lg","borderStyle","borderColor","borderRadius","radius","borderTopColor","color","background","neutral","animationClass","css","animation","keyframes","Spinner","height","gradientColors","gradientId","useId","hasGradient","Array","isArray","length","dynamicStyles","useStyles","size","rootClassName","useWebMergeStyles","gradientWrapperClassName","Math","min","center","circumference","PI","strokeUrl","_jsx","className","role","children","_jsxs","viewBox","fill","id","x1","y1","x2","y2","map","index","offset","stopColor","cx","cy","r","stroke","strokeWidth","strokeLinecap","strokeDasharray","displayName"],"mappings":"wOAEO,MAAMA,EAAsBC,EAAYC,IAAW,CACxDC,KAAM,CACJC,SAAU,WACVC,YAAaH,EAAMI,OAAOC,MAAMC,GAChCC,YAAa,QACbC,YAAa,qBACbC,aAAcT,EAAMI,OAAOM,OAAO,IAClCC,eAAgBX,EAAMY,MAAMC,WAAWC,YCIrCC,EAAiBC,EAAI,CACzBC,UAAW,GANSC,CAAS;;;4BAWzBC,EAAU,EAAGd,QAAQ,GAAIe,SAAS,GAAIC,qBAC1C,MAAMC,EAAaC,IACbC,EAAcC,MAAMC,QAAQL,IAAmBA,EAAeM,OAAS,EAEvEC,EAAgBC,EACpB,KAAO,CACLC,KAAM,CACJzB,QACAe,YAGJ,CAACf,EAAOe,IAGJW,EAAgBC,EACpB,CAAClC,EAAoBG,KAAM2B,EAAcE,KAAMf,GAC/C,CAACa,EAAcE,KAAMf,IAGjBkB,EAA2BD,EAC/B,CAACJ,EAAcE,KAAMf,GACrB,CAACa,EAAcE,KAAMf,IAGvB,GAAIS,EAAa,CACf,MAAMM,EAAOI,KAAKC,IAAI9B,EAAOe,GACvBgB,EAASN,EAAO,EAChBpB,GAAUoB,EA7BS,GA6BsB,EACzCO,EAAgB,EAAIH,KAAKI,GAAK5B,EAC9B6B,EAAY,QAAQjB,KAE1B,OACEkB,EAAA,OAAA,CAAMC,UAAWR,EAA0BS,KAAK,SAAoB,aAAA,UAClEC,SAAAC,EAAA,MAAA,CAAKvC,MAAOyB,EAAMV,OAAQU,EAAMe,QAAS,OAAOf,KAAQA,IAAQgB,KAAK,iBACnEN,EACE,OAAA,CAAAG,SAAAH,EAAA,iBAAA,CAAgBO,GAAIzB,EAAY0B,GAAG,KAAKC,GAAG,KAAKC,GAAG,OAAOC,GAAG,KAAIR,SAC9DtB,EAAe+B,IAAI,CAACxC,EAAOyC,IAC1Bb,EAAkB,OAAA,CAAAc,OAAYD,GAAShC,EAAeM,OAAS,GAAM,IAA3C,IAAmD4B,UAAW3C,GAA7EyC,QAIjBb,EACE,SAAA,CAAAgB,GAAIpB,EACJqB,GAAIrB,EACJsB,EAAGhD,EACHiD,OAAQpB,EACRqB,YAhDiB,EAiDjBC,cAAc,QACdC,gBAAiB,GAnDH,IAmDMzB,KAAkD,IAAbA,IACzDS,KAAK,aAKd,CAED,OAAON,EAAA,OAAA,CAAME,KAAK,SAAQ,aAAY,UAAUD,UAAWV,KAG7DZ,EAAQ4C,YAAc"}
@@ -1,40 +1,52 @@
1
1
  'use strict';
2
2
 
3
3
  var jsxRuntime = require('react/jsx-runtime');
4
- var ctDesignTheme = require('@cleartrip/ct-design-theme');
5
- var tslib = require('tslib');
6
- var styled = require('@emotion/styled');
7
- var react = require('@emotion/react');
4
+ var react = require('react');
5
+ var ctDesignStyleManager = require('@cleartrip/ct-design-style-manager');
6
+ var css = require('@emotion/css');
8
7
 
9
- function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
8
+ const spinnerStaticStyles = ctDesignStyleManager.makeStyles((theme) => ({
9
+ root: {
10
+ position: 'relative',
11
+ borderWidth: theme.border.width.lg,
12
+ borderStyle: 'solid',
13
+ borderColor: 'rgba(0, 0, 0, 0.3)',
14
+ borderRadius: theme.border.radius[32],
15
+ borderTopColor: theme.color.background.neutral,
16
+ },
17
+ }));
10
18
 
11
- var styled__default = /*#__PURE__*/_interopDefault(styled);
12
-
13
- var StyledSpinner = styled__default.default.div(templateObject_2 || (templateObject_2 = tslib.__makeTemplateObject(["\n border: ", ";\n border-radius: 50%;\n border-top: ", ";\n width: ", ";\n height: ", ";\n -webkit-animation: spin 2s linear infinite;\n animation: spin 2s linear infinite;\n\n @-webkit-keyframes spin {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n }\n\n @keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n ", "\n"], ["\n border: ", ";\n border-radius: 50%;\n border-top: ", ";\n width: ", ";\n height: ", ";\n -webkit-animation: spin 2s linear infinite;\n animation: spin 2s linear infinite;\n\n @-webkit-keyframes spin {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n }\n\n @keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n ", "\n"])), function (_a) {
14
- var theme = _a.theme, height = _a.height;
15
- var spinerHeight = parseInt(height || theme.size[12]) / 6;
16
- return "".concat(spinerHeight > 0 ? spinerHeight : 8, "px solid ").concat(theme.color.spinner.primaryBg);
17
- }, function (_a) {
18
- var theme = _a.theme, height = _a.height, borderColor = _a.borderColor;
19
- var spinerHeight = parseInt(height || theme.size[12]) / 6;
20
- return "".concat(spinerHeight > 0 ? spinerHeight : 8, "px solid ").concat(borderColor || theme.color.spinner.primary);
21
- }, function (_a) {
22
- var width = _a.width, theme = _a.theme;
23
- return width || theme.size[12];
24
- }, function (_a) {
25
- var height = _a.height, theme = _a.theme;
26
- return height || theme.size[12];
27
- }, function (_a) {
28
- var css = _a.css;
29
- return css && react.css(templateObject_1 || (templateObject_1 = tslib.__makeTemplateObject(["\n\t", "\n "], ["\n\t", "\n "])), css);
19
+ const spinAnimation = css.keyframes `
20
+ 0% { transform: rotate(0deg); }
21
+ 100% { transform: rotate(360deg); }
22
+ `;
23
+ const animationClass = css.css({
24
+ animation: `${spinAnimation} 800ms linear infinite`,
30
25
  });
31
- var templateObject_1, templateObject_2;
32
-
33
- function Spinner(_a) {
34
- var _b = _a.height, height = _b === void 0 ? '16px' : _b, _c = _a.width, width = _c === void 0 ? '16px' : _c, _d = _a.borderColor, borderColor = _d === void 0 ? '' : _d;
35
- var theme = ctDesignTheme.useTheme();
36
- return jsxRuntime.jsx(StyledSpinner, { theme: theme, height: height, width: width, borderColor: borderColor });
37
- }
26
+ const STROKE_DASH_RATIO = 0.65;
27
+ const DEFAULT_STROKE_WIDTH = 2;
28
+ const Spinner = ({ width = 30, height = 30, gradientColors }) => {
29
+ const gradientId = react.useId();
30
+ const hasGradient = Array.isArray(gradientColors) && gradientColors.length > 0;
31
+ const dynamicStyles = ctDesignStyleManager.useStyles(() => ({
32
+ size: {
33
+ width,
34
+ height,
35
+ },
36
+ }), [width, height]);
37
+ const rootClassName = ctDesignStyleManager.useWebMergeStyles([spinnerStaticStyles.root, dynamicStyles.size, animationClass], [dynamicStyles.size, animationClass]);
38
+ const gradientWrapperClassName = ctDesignStyleManager.useWebMergeStyles([dynamicStyles.size, animationClass], [dynamicStyles.size, animationClass]);
39
+ if (hasGradient) {
40
+ const size = Math.min(width, height);
41
+ const center = size / 2;
42
+ const radius = (size - DEFAULT_STROKE_WIDTH) / 2;
43
+ const circumference = 2 * Math.PI * radius;
44
+ const strokeUrl = `url(#${gradientId})`;
45
+ return (jsxRuntime.jsx("span", { className: gradientWrapperClassName, role: 'status', "aria-label": 'Loading', children: jsxRuntime.jsxs("svg", { width: size, height: size, viewBox: `0 0 ${size} ${size}`, fill: 'none', children: [jsxRuntime.jsx("defs", { children: jsxRuntime.jsx("linearGradient", { id: gradientId, x1: '0%', y1: '0%', x2: '100%', y2: '0%', children: gradientColors.map((color, index) => (jsxRuntime.jsx("stop", { offset: `${(index / (gradientColors.length - 1)) * 100}%`, stopColor: color }, index))) }) }), jsxRuntime.jsx("circle", { cx: center, cy: center, r: radius, stroke: strokeUrl, strokeWidth: DEFAULT_STROKE_WIDTH, strokeLinecap: 'round', strokeDasharray: `${circumference * STROKE_DASH_RATIO} ${circumference * (1 - STROKE_DASH_RATIO)}`, fill: 'none' })] }) }));
46
+ }
47
+ return jsxRuntime.jsx("span", { role: 'status', "aria-label": 'Loading', className: rootClassName });
48
+ };
49
+ Spinner.displayName = 'Spinner';
38
50
 
39
51
  exports.Spinner = Spinner;
40
52
  //# sourceMappingURL=ct-design-spinner.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ct-design-spinner.cjs.js","sources":["../packages/components/Spinner/src/style.tsx","../packages/components/Spinner/src/Spinner.tsx"],"sourcesContent":[null,null],"names":["styled","CSS","__makeTemplateObject","useTheme","_jsx"],"mappings":";;;;;;;;;;;;AAIO,IAAM,aAAa,GAAGA,uBAAM,CAAC,GAAG,qiBAAc,cACzC,EAGT,0CAEa,EAGb,cACQ,EAA6C,eAC5C,EAA+C,yXAqBvD,EAIF,IACD,CApCW,CAAA,CAAA,EAAA,UAAC,EAAiB,EAAA;QAAf,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,MAAM,GAAA,EAAA,CAAA,MAAA,CAAA;AACxB,IAAA,IAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IAC5D,OAAO,EAAA,CAAA,MAAA,CAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,EAAA,WAAA,CAAA,CAAA,MAAA,CAAY,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAE,CAAC;AAC3F,CAAC,EAEa,UAAC,EAA8B,EAAA;AAA5B,IAAA,IAAA,KAAK,WAAA,EAAE,MAAM,GAAA,EAAA,CAAA,MAAA,EAAE,WAAW,GAAA,EAAA,CAAA,WAAA,CAAA;AACzC,IAAA,IAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IAC5D,OAAO,EAAA,CAAA,MAAA,CAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,EAAY,WAAA,CAAA,CAAA,MAAA,CAAA,WAAW,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAE,CAAC;AACxG,CAAC,EACQ,UAAC,EAAgB,EAAA;QAAd,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA,CAAA;AAAO,IAAA,OAAA,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAAvB,CAAuB,EAC5C,UAAC,EAAiB,EAAA;QAAf,MAAM,GAAA,EAAA,CAAA,MAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA,CAAA;AAAO,IAAA,OAAA,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAAxB,CAAwB,EAqBvD,UAAC,EAAO,EAAA;AAAL,IAAA,IAAA,GAAG,GAAA,EAAA,CAAA,GAAA,CAAA;IACN,OAAA,GAAG,IACHC,SAAG,CAAA,gBAAA,KAAA,gBAAA,GAAAC,0BAAA,CAAA,CAAA,MAAA,EAAA,KAAA,CAAA,EAAA,CAAA,MACJ,EAAsC,KACvC,CADC,CAAA,CAAA,EAAA,GAAsC,CACvC,CAAA;AAHE,CAGF,CACD,CAAC;;;ACpCsB,SAAA,OAAO,CAAC,EAAmE,EAAA;AAAjE,IAAA,IAAA,EAAA,GAAA,EAAA,CAAA,MAAe,EAAf,MAAM,GAAA,EAAA,KAAA,KAAA,CAAA,GAAG,MAAM,GAAA,EAAA,EAAE,aAAc,EAAd,KAAK,GAAG,EAAA,KAAA,KAAA,CAAA,GAAA,MAAM,KAAA,EAAE,EAAA,GAAA,EAAA,CAAA,WAAgB,EAAhB,WAAW,GAAA,EAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAA,EAAA,CAAA;AACjF,IAAA,IAAM,KAAK,GAAGC,sBAAQ,EAAE,CAAC;AACzB,IAAA,OAAOC,eAAC,aAAa,EAAA,EAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,GAAI,CAAC;AACjG;;;;"}
1
+ {"version":3,"file":"ct-design-spinner.cjs.js","sources":["../packages/components/Spinner/src/style.ts","../packages/components/Spinner/src/Spinner.tsx"],"sourcesContent":[null,null],"names":["makeStyles","keyframes","css","useId","useStyles","useWebMergeStyles","_jsx","_jsxs"],"mappings":"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"}
@@ -1,34 +1,50 @@
1
- import { jsx } from 'react/jsx-runtime';
2
- import { useTheme } from '@cleartrip/ct-design-theme';
3
- import { __makeTemplateObject } from 'tslib';
4
- import styled from '@emotion/styled';
5
- import { css } from '@emotion/react';
1
+ import { jsx, jsxs } from 'react/jsx-runtime';
2
+ import { useId } from 'react';
3
+ import { makeStyles, useStyles, useWebMergeStyles } from '@cleartrip/ct-design-style-manager';
4
+ import { keyframes, css } from '@emotion/css';
6
5
 
7
- var StyledSpinner = styled.div(templateObject_2 || (templateObject_2 = __makeTemplateObject(["\n border: ", ";\n border-radius: 50%;\n border-top: ", ";\n width: ", ";\n height: ", ";\n -webkit-animation: spin 2s linear infinite;\n animation: spin 2s linear infinite;\n\n @-webkit-keyframes spin {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n }\n\n @keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n ", "\n"], ["\n border: ", ";\n border-radius: 50%;\n border-top: ", ";\n width: ", ";\n height: ", ";\n -webkit-animation: spin 2s linear infinite;\n animation: spin 2s linear infinite;\n\n @-webkit-keyframes spin {\n 0% {\n -webkit-transform: rotate(0deg);\n }\n 100% {\n -webkit-transform: rotate(360deg);\n }\n }\n\n @keyframes spin {\n 0% {\n transform: rotate(0deg);\n }\n 100% {\n transform: rotate(360deg);\n }\n }\n ", "\n"])), function (_a) {
8
- var theme = _a.theme, height = _a.height;
9
- var spinerHeight = parseInt(height || theme.size[12]) / 6;
10
- return "".concat(spinerHeight > 0 ? spinerHeight : 8, "px solid ").concat(theme.color.spinner.primaryBg);
11
- }, function (_a) {
12
- var theme = _a.theme, height = _a.height, borderColor = _a.borderColor;
13
- var spinerHeight = parseInt(height || theme.size[12]) / 6;
14
- return "".concat(spinerHeight > 0 ? spinerHeight : 8, "px solid ").concat(borderColor || theme.color.spinner.primary);
15
- }, function (_a) {
16
- var width = _a.width, theme = _a.theme;
17
- return width || theme.size[12];
18
- }, function (_a) {
19
- var height = _a.height, theme = _a.theme;
20
- return height || theme.size[12];
21
- }, function (_a) {
22
- var css$1 = _a.css;
23
- return css$1 && css(templateObject_1 || (templateObject_1 = __makeTemplateObject(["\n\t", "\n "], ["\n\t", "\n "])), css$1);
24
- });
25
- var templateObject_1, templateObject_2;
6
+ const spinnerStaticStyles = makeStyles((theme) => ({
7
+ root: {
8
+ position: 'relative',
9
+ borderWidth: theme.border.width.lg,
10
+ borderStyle: 'solid',
11
+ borderColor: 'rgba(0, 0, 0, 0.3)',
12
+ borderRadius: theme.border.radius[32],
13
+ borderTopColor: theme.color.background.neutral,
14
+ },
15
+ }));
26
16
 
27
- function Spinner(_a) {
28
- var _b = _a.height, height = _b === void 0 ? '16px' : _b, _c = _a.width, width = _c === void 0 ? '16px' : _c, _d = _a.borderColor, borderColor = _d === void 0 ? '' : _d;
29
- var theme = useTheme();
30
- return jsx(StyledSpinner, { theme: theme, height: height, width: width, borderColor: borderColor });
31
- }
17
+ const spinAnimation = keyframes `
18
+ 0% { transform: rotate(0deg); }
19
+ 100% { transform: rotate(360deg); }
20
+ `;
21
+ const animationClass = css({
22
+ animation: `${spinAnimation} 800ms linear infinite`,
23
+ });
24
+ const STROKE_DASH_RATIO = 0.65;
25
+ const DEFAULT_STROKE_WIDTH = 2;
26
+ const Spinner = ({ width = 30, height = 30, gradientColors }) => {
27
+ const gradientId = useId();
28
+ const hasGradient = Array.isArray(gradientColors) && gradientColors.length > 0;
29
+ const dynamicStyles = useStyles(() => ({
30
+ size: {
31
+ width,
32
+ height,
33
+ },
34
+ }), [width, height]);
35
+ const rootClassName = useWebMergeStyles([spinnerStaticStyles.root, dynamicStyles.size, animationClass], [dynamicStyles.size, animationClass]);
36
+ const gradientWrapperClassName = useWebMergeStyles([dynamicStyles.size, animationClass], [dynamicStyles.size, animationClass]);
37
+ if (hasGradient) {
38
+ const size = Math.min(width, height);
39
+ const center = size / 2;
40
+ const radius = (size - DEFAULT_STROKE_WIDTH) / 2;
41
+ const circumference = 2 * Math.PI * radius;
42
+ const strokeUrl = `url(#${gradientId})`;
43
+ return (jsx("span", { className: gradientWrapperClassName, role: 'status', "aria-label": 'Loading', children: jsxs("svg", { width: size, height: size, viewBox: `0 0 ${size} ${size}`, fill: 'none', children: [jsx("defs", { children: jsx("linearGradient", { id: gradientId, x1: '0%', y1: '0%', x2: '100%', y2: '0%', children: gradientColors.map((color, index) => (jsx("stop", { offset: `${(index / (gradientColors.length - 1)) * 100}%`, stopColor: color }, index))) }) }), jsx("circle", { cx: center, cy: center, r: radius, stroke: strokeUrl, strokeWidth: DEFAULT_STROKE_WIDTH, strokeLinecap: 'round', strokeDasharray: `${circumference * STROKE_DASH_RATIO} ${circumference * (1 - STROKE_DASH_RATIO)}`, fill: 'none' })] }) }));
44
+ }
45
+ return jsx("span", { role: 'status', "aria-label": 'Loading', className: rootClassName });
46
+ };
47
+ Spinner.displayName = 'Spinner';
32
48
 
33
49
  export { Spinner };
34
50
  //# sourceMappingURL=ct-design-spinner.esm.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ct-design-spinner.esm.js","sources":["../packages/components/Spinner/src/style.tsx","../packages/components/Spinner/src/Spinner.tsx"],"sourcesContent":[null,null],"names":["css","CSS","_jsx"],"mappings":";;;;;;AAIO,IAAM,aAAa,GAAG,MAAM,CAAC,GAAG,+hBAAc,cACzC,EAGT,0CAEa,EAGb,cACQ,EAA6C,eAC5C,EAA+C,yXAqBvD,EAIF,IACD,CApCW,CAAA,CAAA,EAAA,UAAC,EAAiB,EAAA;QAAf,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,MAAM,GAAA,EAAA,CAAA,MAAA,CAAA;AACxB,IAAA,IAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IAC5D,OAAO,EAAA,CAAA,MAAA,CAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,EAAA,WAAA,CAAA,CAAA,MAAA,CAAY,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAE,CAAC;AAC3F,CAAC,EAEa,UAAC,EAA8B,EAAA;AAA5B,IAAA,IAAA,KAAK,WAAA,EAAE,MAAM,GAAA,EAAA,CAAA,MAAA,EAAE,WAAW,GAAA,EAAA,CAAA,WAAA,CAAA;AACzC,IAAA,IAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;IAC5D,OAAO,EAAA,CAAA,MAAA,CAAG,YAAY,GAAG,CAAC,GAAG,YAAY,GAAG,CAAC,EAAY,WAAA,CAAA,CAAA,MAAA,CAAA,WAAW,IAAI,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAE,CAAC;AACxG,CAAC,EACQ,UAAC,EAAgB,EAAA;QAAd,KAAK,GAAA,EAAA,CAAA,KAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA,CAAA;AAAO,IAAA,OAAA,KAAK,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAAvB,CAAuB,EAC5C,UAAC,EAAiB,EAAA;QAAf,MAAM,GAAA,EAAA,CAAA,MAAA,EAAE,KAAK,GAAA,EAAA,CAAA,KAAA,CAAA;AAAO,IAAA,OAAA,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;AAAxB,CAAwB,EAqBvD,UAAC,EAAO,EAAA;AAAL,IAAA,IAAAA,KAAG,GAAA,EAAA,CAAA,GAAA,CAAA;IACN,OAAAA,KAAG,IACHC,GAAG,CAAA,gBAAA,KAAA,gBAAA,GAAA,oBAAA,CAAA,CAAA,MAAA,EAAA,KAAA,CAAA,EAAA,CAAA,MACJ,EAAsC,KACvC,CADC,CAAA,CAAA,EAAAD,KAAsC,CACvC,CAAA;AAHE,CAGF,CACD,CAAC;;;ACpCsB,SAAA,OAAO,CAAC,EAAmE,EAAA;AAAjE,IAAA,IAAA,EAAA,GAAA,EAAA,CAAA,MAAe,EAAf,MAAM,GAAA,EAAA,KAAA,KAAA,CAAA,GAAG,MAAM,GAAA,EAAA,EAAE,aAAc,EAAd,KAAK,GAAG,EAAA,KAAA,KAAA,CAAA,GAAA,MAAM,KAAA,EAAE,EAAA,GAAA,EAAA,CAAA,WAAgB,EAAhB,WAAW,GAAA,EAAA,KAAA,KAAA,CAAA,GAAG,EAAE,GAAA,EAAA,CAAA;AACjF,IAAA,IAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;AACzB,IAAA,OAAOE,IAAC,aAAa,EAAA,EAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,GAAI,CAAC;AACjG;;;;"}
1
+ {"version":3,"file":"ct-design-spinner.esm.js","sources":["../packages/components/Spinner/src/style.ts","../packages/components/Spinner/src/Spinner.tsx"],"sourcesContent":[null,null],"names":["_jsx","_jsxs"],"mappings":"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"}