premium-react-loaders 1.0.1 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (128) hide show
  1. package/dist/components/progress/ProgressBar.d.ts +2 -0
  2. package/dist/components/progress/ProgressBar.d.ts.map +1 -1
  3. package/dist/components/progress/ProgressCircle.d.ts +2 -1
  4. package/dist/components/progress/ProgressCircle.d.ts.map +1 -1
  5. package/dist/components/progress/ProgressRing.d.ts +2 -1
  6. package/dist/components/progress/ProgressRing.d.ts.map +1 -1
  7. package/dist/components/progress/ProgressSteps.d.ts +16 -0
  8. package/dist/components/progress/ProgressSteps.d.ts.map +1 -0
  9. package/dist/components/progress/index.d.ts +1 -0
  10. package/dist/components/progress/index.d.ts.map +1 -1
  11. package/dist/components/pulse/TypingIndicator.d.ts +16 -0
  12. package/dist/components/pulse/TypingIndicator.d.ts.map +1 -0
  13. package/dist/components/pulse/index.d.ts +1 -0
  14. package/dist/components/pulse/index.d.ts.map +1 -1
  15. package/dist/components/skeleton/SkeletonForm.d.ts +16 -0
  16. package/dist/components/skeleton/SkeletonForm.d.ts.map +1 -0
  17. package/dist/components/skeleton/SkeletonText.d.ts +1 -1
  18. package/dist/components/skeleton/SkeletonText.d.ts.map +1 -1
  19. package/dist/components/skeleton/index.d.ts +1 -0
  20. package/dist/components/skeleton/index.d.ts.map +1 -1
  21. package/dist/components/spinner/SpinnerDots.d.ts.map +1 -1
  22. package/dist/components/spinner/SpinnerPulse.d.ts +15 -0
  23. package/dist/components/spinner/SpinnerPulse.d.ts.map +1 -0
  24. package/dist/components/spinner/SpinnerRing.d.ts +1 -0
  25. package/dist/components/spinner/SpinnerRing.d.ts.map +1 -1
  26. package/dist/components/spinner/SpinnerWave.d.ts +15 -0
  27. package/dist/components/spinner/SpinnerWave.d.ts.map +1 -0
  28. package/dist/components/spinner/index.d.ts +2 -0
  29. package/dist/components/spinner/index.d.ts.map +1 -1
  30. package/dist/index.cjs +23 -13
  31. package/dist/index.cjs.map +1 -1
  32. package/dist/index.d.ts +1 -1
  33. package/dist/index.js +23 -13
  34. package/dist/index.js.map +1 -1
  35. package/dist/index13.cjs +54 -35
  36. package/dist/index13.cjs.map +1 -1
  37. package/dist/index13.js +56 -37
  38. package/dist/index13.js.map +1 -1
  39. package/dist/index14.cjs +23 -11
  40. package/dist/index14.cjs.map +1 -1
  41. package/dist/index14.js +23 -11
  42. package/dist/index14.js.map +1 -1
  43. package/dist/index15.cjs +10 -32
  44. package/dist/index15.cjs.map +1 -1
  45. package/dist/index15.js +10 -32
  46. package/dist/index15.js.map +1 -1
  47. package/dist/index16.cjs +41 -24
  48. package/dist/index16.cjs.map +1 -1
  49. package/dist/index16.js +42 -25
  50. package/dist/index16.js.map +1 -1
  51. package/dist/index17.cjs +24 -37
  52. package/dist/index17.cjs.map +1 -1
  53. package/dist/index17.js +24 -37
  54. package/dist/index17.js.map +1 -1
  55. package/dist/index18.cjs +48 -58
  56. package/dist/index18.cjs.map +1 -1
  57. package/dist/index18.js +49 -59
  58. package/dist/index18.js.map +1 -1
  59. package/dist/index19.cjs +41 -83
  60. package/dist/index19.cjs.map +1 -1
  61. package/dist/index19.js +42 -84
  62. package/dist/index19.js.map +1 -1
  63. package/dist/index20.cjs +54 -87
  64. package/dist/index20.cjs.map +1 -1
  65. package/dist/index20.js +55 -88
  66. package/dist/index20.js.map +1 -1
  67. package/dist/index21.cjs +73 -27
  68. package/dist/index21.cjs.map +1 -1
  69. package/dist/index21.js +76 -30
  70. package/dist/index21.js.map +1 -1
  71. package/dist/index22.cjs +98 -31
  72. package/dist/index22.cjs.map +1 -1
  73. package/dist/index22.js +100 -33
  74. package/dist/index22.js.map +1 -1
  75. package/dist/index23.cjs +104 -33
  76. package/dist/index23.cjs.map +1 -1
  77. package/dist/index23.js +107 -36
  78. package/dist/index23.js.map +1 -1
  79. package/dist/index24.cjs +108 -48
  80. package/dist/index24.cjs.map +1 -1
  81. package/dist/index24.js +110 -50
  82. package/dist/index24.js.map +1 -1
  83. package/dist/index25.cjs +55 -16
  84. package/dist/index25.cjs.map +1 -1
  85. package/dist/index25.js +54 -15
  86. package/dist/index25.js.map +1 -1
  87. package/dist/index26.cjs +62 -0
  88. package/dist/index26.cjs.map +1 -0
  89. package/dist/index26.js +62 -0
  90. package/dist/index26.js.map +1 -0
  91. package/dist/index27.cjs +64 -0
  92. package/dist/index27.cjs.map +1 -0
  93. package/dist/index27.js +64 -0
  94. package/dist/index27.js.map +1 -0
  95. package/dist/index28.cjs +61 -0
  96. package/dist/index28.cjs.map +1 -0
  97. package/dist/index28.js +61 -0
  98. package/dist/index28.js.map +1 -0
  99. package/dist/index29.cjs +71 -0
  100. package/dist/index29.cjs.map +1 -0
  101. package/dist/index29.js +71 -0
  102. package/dist/index29.js.map +1 -0
  103. package/dist/index3.cjs +1 -1
  104. package/dist/index3.js +1 -1
  105. package/dist/index30.cjs +18 -0
  106. package/dist/index30.cjs.map +1 -0
  107. package/dist/index30.js +18 -0
  108. package/dist/index30.js.map +1 -0
  109. package/dist/index4.cjs +63 -3
  110. package/dist/index4.cjs.map +1 -1
  111. package/dist/index4.js +64 -4
  112. package/dist/index4.js.map +1 -1
  113. package/dist/index6.cjs +2 -1
  114. package/dist/index6.cjs.map +1 -1
  115. package/dist/index6.js +2 -1
  116. package/dist/index6.js.map +1 -1
  117. package/dist/premium-react-loaders.css +32 -0
  118. package/dist/types/progress.d.ts +32 -1
  119. package/dist/types/progress.d.ts.map +1 -1
  120. package/dist/types/pulse.d.ts +13 -0
  121. package/dist/types/pulse.d.ts.map +1 -1
  122. package/dist/types/skeleton.d.ts +19 -0
  123. package/dist/types/skeleton.d.ts.map +1 -1
  124. package/dist/types/spinner.d.ts +18 -0
  125. package/dist/types/spinner.d.ts.map +1 -1
  126. package/dist/utils/colors.d.ts +14 -1
  127. package/dist/utils/colors.d.ts.map +1 -1
  128. package/package.json +1 -1
package/dist/index6.cjs CHANGED
@@ -11,6 +11,7 @@ const SkeletonText = react.forwardRef(
11
11
  width = "100%",
12
12
  height = "1rem",
13
13
  gap = "0.5rem",
14
+ lastLineWidth = "80%",
14
15
  animate = true,
15
16
  baseColor,
16
17
  highlightColor,
@@ -36,7 +37,7 @@ const SkeletonText = react.forwardRef(
36
37
  "aria-busy": "true",
37
38
  ...rest,
38
39
  children: Array.from({ length: lines }).map((_, index) => {
39
- const lineWidth = index === lines - 1 ? "80%" : width;
40
+ const lineWidth = index === lines - 1 ? lastLineWidth : width;
40
41
  return /* @__PURE__ */ jsxRuntime.jsx(
41
42
  Skeleton.Skeleton,
42
43
  {
@@ -1 +1 @@
1
- {"version":3,"file":"index6.cjs","sources":["../src/components/skeleton/SkeletonText.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport { SkeletonTextProps } from '../../types';\nimport { cn, normalizeSize } from '../../utils';\nimport { Skeleton } from './Skeleton';\n\n/**\n * SkeletonText - Multi-line text skeleton loader\n *\n * Renders multiple skeleton lines to mimic text content while loading.\n *\n * @example\n * ```tsx\n * <SkeletonText lines={3} />\n * <SkeletonText lines={5} gap={8} />\n * ```\n */\nexport const SkeletonText = forwardRef<HTMLDivElement, SkeletonTextProps>(\n (\n {\n lines = 3,\n width = '100%',\n height = '1rem',\n gap = '0.5rem',\n animate = true,\n baseColor,\n highlightColor,\n className,\n style,\n testId = 'skeleton-text',\n visible = true,\n ...rest\n },\n ref\n ) => {\n if (!visible) return null;\n\n return (\n <div\n ref={ref}\n data-testid={testId}\n className={cn('flex flex-col', className)}\n style={{\n gap: normalizeSize(gap),\n ...style,\n }}\n role=\"status\"\n aria-label=\"Loading text...\"\n aria-busy=\"true\"\n {...rest}\n >\n {Array.from({ length: lines }).map((_, index) => {\n // Last line is typically shorter (80% width)\n const lineWidth = index === lines - 1 ? '80%' : width;\n\n return (\n <Skeleton\n key={index}\n width={lineWidth}\n height={height}\n animate={animate}\n baseColor={baseColor}\n highlightColor={highlightColor}\n variant=\"text\"\n />\n );\n })}\n </div>\n );\n }\n);\n\nSkeletonText.displayName = 'SkeletonText';\n"],"names":["forwardRef","jsx","cn","normalizeSize","Skeleton"],"mappings":";;;;;;;AAgBO,MAAM,eAAeA,MAAAA;AAAAA,EAC1B,CACE;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT,UAAU;AAAA,IACV,GAAG;AAAA,EAAA,GAEL,QACG;AACH,QAAI,CAAC,QAAS,QAAO;AAErB,WACEC,2BAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,eAAa;AAAA,QACb,WAAWC,WAAAA,GAAG,iBAAiB,SAAS;AAAA,QACxC,OAAO;AAAA,UACL,KAAKC,OAAAA,cAAc,GAAG;AAAA,UACtB,GAAG;AAAA,QAAA;AAAA,QAEL,MAAK;AAAA,QACL,cAAW;AAAA,QACX,aAAU;AAAA,QACT,GAAG;AAAA,QAEH,UAAA,MAAM,KAAK,EAAE,QAAQ,MAAA,CAAO,EAAE,IAAI,CAAC,GAAG,UAAU;AAE/C,gBAAM,YAAY,UAAU,QAAQ,IAAI,QAAQ;AAEhD,iBACEF,2BAAAA;AAAAA,YAACG,SAAAA;AAAAA,YAAA;AAAA,cAEC,OAAO;AAAA,cACP;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA,SAAQ;AAAA,YAAA;AAAA,YANH;AAAA,UAAA;AAAA,QASX,CAAC;AAAA,MAAA;AAAA,IAAA;AAAA,EAGP;AACF;AAEA,aAAa,cAAc;;"}
1
+ {"version":3,"file":"index6.cjs","sources":["../src/components/skeleton/SkeletonText.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport { SkeletonTextProps } from '../../types';\nimport { cn, normalizeSize } from '../../utils';\nimport { Skeleton } from './Skeleton';\n\n/**\n * SkeletonText - Multi-line text skeleton loader\n *\n * Renders multiple skeleton lines to mimic text content while loading.\n *\n * @example\n * ```tsx\n * <SkeletonText lines={3} />\n * <SkeletonText lines={5} gap={8} lastLineWidth=\"60%\" />\n * ```\n */\nexport const SkeletonText = forwardRef<HTMLDivElement, SkeletonTextProps>(\n (\n {\n lines = 3,\n width = '100%',\n height = '1rem',\n gap = '0.5rem',\n lastLineWidth = '80%',\n animate = true,\n baseColor,\n highlightColor,\n className,\n style,\n testId = 'skeleton-text',\n visible = true,\n ...rest\n },\n ref\n ) => {\n if (!visible) return null;\n\n return (\n <div\n ref={ref}\n data-testid={testId}\n className={cn('flex flex-col', className)}\n style={{\n gap: normalizeSize(gap),\n ...style,\n }}\n role=\"status\"\n aria-label=\"Loading text...\"\n aria-busy=\"true\"\n {...rest}\n >\n {Array.from({ length: lines }).map((_, index) => {\n // Last line uses custom width or default (80%)\n const lineWidth = index === lines - 1 ? lastLineWidth : width;\n\n return (\n <Skeleton\n key={index}\n width={lineWidth}\n height={height}\n animate={animate}\n baseColor={baseColor}\n highlightColor={highlightColor}\n variant=\"text\"\n />\n );\n })}\n </div>\n );\n }\n);\n\nSkeletonText.displayName = 'SkeletonText';\n"],"names":["forwardRef","jsx","cn","normalizeSize","Skeleton"],"mappings":";;;;;;;AAgBO,MAAM,eAAeA,MAAAA;AAAAA,EAC1B,CACE;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT,UAAU;AAAA,IACV,GAAG;AAAA,EAAA,GAEL,QACG;AACH,QAAI,CAAC,QAAS,QAAO;AAErB,WACEC,2BAAAA;AAAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,eAAa;AAAA,QACb,WAAWC,WAAAA,GAAG,iBAAiB,SAAS;AAAA,QACxC,OAAO;AAAA,UACL,KAAKC,OAAAA,cAAc,GAAG;AAAA,UACtB,GAAG;AAAA,QAAA;AAAA,QAEL,MAAK;AAAA,QACL,cAAW;AAAA,QACX,aAAU;AAAA,QACT,GAAG;AAAA,QAEH,UAAA,MAAM,KAAK,EAAE,QAAQ,MAAA,CAAO,EAAE,IAAI,CAAC,GAAG,UAAU;AAE/C,gBAAM,YAAY,UAAU,QAAQ,IAAI,gBAAgB;AAExD,iBACEF,2BAAAA;AAAAA,YAACG,SAAAA;AAAAA,YAAA;AAAA,cAEC,OAAO;AAAA,cACP;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA,SAAQ;AAAA,YAAA;AAAA,YANH;AAAA,UAAA;AAAA,QASX,CAAC;AAAA,MAAA;AAAA,IAAA;AAAA,EAGP;AACF;AAEA,aAAa,cAAc;;"}
package/dist/index6.js CHANGED
@@ -9,6 +9,7 @@ const SkeletonText = forwardRef(
9
9
  width = "100%",
10
10
  height = "1rem",
11
11
  gap = "0.5rem",
12
+ lastLineWidth = "80%",
12
13
  animate = true,
13
14
  baseColor,
14
15
  highlightColor,
@@ -34,7 +35,7 @@ const SkeletonText = forwardRef(
34
35
  "aria-busy": "true",
35
36
  ...rest,
36
37
  children: Array.from({ length: lines }).map((_, index) => {
37
- const lineWidth = index === lines - 1 ? "80%" : width;
38
+ const lineWidth = index === lines - 1 ? lastLineWidth : width;
38
39
  return /* @__PURE__ */ jsx(
39
40
  Skeleton,
40
41
  {
@@ -1 +1 @@
1
- {"version":3,"file":"index6.js","sources":["../src/components/skeleton/SkeletonText.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport { SkeletonTextProps } from '../../types';\nimport { cn, normalizeSize } from '../../utils';\nimport { Skeleton } from './Skeleton';\n\n/**\n * SkeletonText - Multi-line text skeleton loader\n *\n * Renders multiple skeleton lines to mimic text content while loading.\n *\n * @example\n * ```tsx\n * <SkeletonText lines={3} />\n * <SkeletonText lines={5} gap={8} />\n * ```\n */\nexport const SkeletonText = forwardRef<HTMLDivElement, SkeletonTextProps>(\n (\n {\n lines = 3,\n width = '100%',\n height = '1rem',\n gap = '0.5rem',\n animate = true,\n baseColor,\n highlightColor,\n className,\n style,\n testId = 'skeleton-text',\n visible = true,\n ...rest\n },\n ref\n ) => {\n if (!visible) return null;\n\n return (\n <div\n ref={ref}\n data-testid={testId}\n className={cn('flex flex-col', className)}\n style={{\n gap: normalizeSize(gap),\n ...style,\n }}\n role=\"status\"\n aria-label=\"Loading text...\"\n aria-busy=\"true\"\n {...rest}\n >\n {Array.from({ length: lines }).map((_, index) => {\n // Last line is typically shorter (80% width)\n const lineWidth = index === lines - 1 ? '80%' : width;\n\n return (\n <Skeleton\n key={index}\n width={lineWidth}\n height={height}\n animate={animate}\n baseColor={baseColor}\n highlightColor={highlightColor}\n variant=\"text\"\n />\n );\n })}\n </div>\n );\n }\n);\n\nSkeletonText.displayName = 'SkeletonText';\n"],"names":[],"mappings":";;;;;AAgBO,MAAM,eAAe;AAAA,EAC1B,CACE;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT,UAAU;AAAA,IACV,GAAG;AAAA,EAAA,GAEL,QACG;AACH,QAAI,CAAC,QAAS,QAAO;AAErB,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,eAAa;AAAA,QACb,WAAW,GAAG,iBAAiB,SAAS;AAAA,QACxC,OAAO;AAAA,UACL,KAAK,cAAc,GAAG;AAAA,UACtB,GAAG;AAAA,QAAA;AAAA,QAEL,MAAK;AAAA,QACL,cAAW;AAAA,QACX,aAAU;AAAA,QACT,GAAG;AAAA,QAEH,UAAA,MAAM,KAAK,EAAE,QAAQ,MAAA,CAAO,EAAE,IAAI,CAAC,GAAG,UAAU;AAE/C,gBAAM,YAAY,UAAU,QAAQ,IAAI,QAAQ;AAEhD,iBACE;AAAA,YAAC;AAAA,YAAA;AAAA,cAEC,OAAO;AAAA,cACP;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA,SAAQ;AAAA,YAAA;AAAA,YANH;AAAA,UAAA;AAAA,QASX,CAAC;AAAA,MAAA;AAAA,IAAA;AAAA,EAGP;AACF;AAEA,aAAa,cAAc;"}
1
+ {"version":3,"file":"index6.js","sources":["../src/components/skeleton/SkeletonText.tsx"],"sourcesContent":["import { forwardRef } from 'react';\nimport { SkeletonTextProps } from '../../types';\nimport { cn, normalizeSize } from '../../utils';\nimport { Skeleton } from './Skeleton';\n\n/**\n * SkeletonText - Multi-line text skeleton loader\n *\n * Renders multiple skeleton lines to mimic text content while loading.\n *\n * @example\n * ```tsx\n * <SkeletonText lines={3} />\n * <SkeletonText lines={5} gap={8} lastLineWidth=\"60%\" />\n * ```\n */\nexport const SkeletonText = forwardRef<HTMLDivElement, SkeletonTextProps>(\n (\n {\n lines = 3,\n width = '100%',\n height = '1rem',\n gap = '0.5rem',\n lastLineWidth = '80%',\n animate = true,\n baseColor,\n highlightColor,\n className,\n style,\n testId = 'skeleton-text',\n visible = true,\n ...rest\n },\n ref\n ) => {\n if (!visible) return null;\n\n return (\n <div\n ref={ref}\n data-testid={testId}\n className={cn('flex flex-col', className)}\n style={{\n gap: normalizeSize(gap),\n ...style,\n }}\n role=\"status\"\n aria-label=\"Loading text...\"\n aria-busy=\"true\"\n {...rest}\n >\n {Array.from({ length: lines }).map((_, index) => {\n // Last line uses custom width or default (80%)\n const lineWidth = index === lines - 1 ? lastLineWidth : width;\n\n return (\n <Skeleton\n key={index}\n width={lineWidth}\n height={height}\n animate={animate}\n baseColor={baseColor}\n highlightColor={highlightColor}\n variant=\"text\"\n />\n );\n })}\n </div>\n );\n }\n);\n\nSkeletonText.displayName = 'SkeletonText';\n"],"names":[],"mappings":";;;;;AAgBO,MAAM,eAAe;AAAA,EAC1B,CACE;AAAA,IACE,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,SAAS;AAAA,IACT,MAAM;AAAA,IACN,gBAAgB;AAAA,IAChB,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,SAAS;AAAA,IACT,UAAU;AAAA,IACV,GAAG;AAAA,EAAA,GAEL,QACG;AACH,QAAI,CAAC,QAAS,QAAO;AAErB,WACE;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA,eAAa;AAAA,QACb,WAAW,GAAG,iBAAiB,SAAS;AAAA,QACxC,OAAO;AAAA,UACL,KAAK,cAAc,GAAG;AAAA,UACtB,GAAG;AAAA,QAAA;AAAA,QAEL,MAAK;AAAA,QACL,cAAW;AAAA,QACX,aAAU;AAAA,QACT,GAAG;AAAA,QAEH,UAAA,MAAM,KAAK,EAAE,QAAQ,MAAA,CAAO,EAAE,IAAI,CAAC,GAAG,UAAU;AAE/C,gBAAM,YAAY,UAAU,QAAQ,IAAI,gBAAgB;AAExD,iBACE;AAAA,YAAC;AAAA,YAAA;AAAA,cAEC,OAAO;AAAA,cACP;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACA,SAAQ;AAAA,YAAA;AAAA,YANH;AAAA,UAAA;AAAA,QASX,CAAC;AAAA,MAAA;AAAA,IAAA;AAAA,EAGP;AACF;AAEA,aAAa,cAAc;"}
@@ -560,6 +560,9 @@ video {
560
560
  .mb-4 {
561
561
  margin-bottom: 1rem;
562
562
  }
563
+ .mt-1 {
564
+ margin-top: 0.25rem;
565
+ }
563
566
  .block {
564
567
  display: block;
565
568
  }
@@ -620,6 +623,9 @@ video {
620
623
  .grid-cols-4 {
621
624
  grid-template-columns: repeat(4, minmax(0, 1fr));
622
625
  }
626
+ .flex-row {
627
+ flex-direction: row;
628
+ }
623
629
  .flex-col {
624
630
  flex-direction: column;
625
631
  }
@@ -632,6 +638,12 @@ video {
632
638
  .items-center {
633
639
  align-items: center;
634
640
  }
641
+ .justify-start {
642
+ justify-content: flex-start;
643
+ }
644
+ .justify-end {
645
+ justify-content: flex-end;
646
+ }
635
647
  .justify-center {
636
648
  justify-content: center;
637
649
  }
@@ -694,6 +706,9 @@ video {
694
706
  .border {
695
707
  border-width: 1px;
696
708
  }
709
+ .border-2 {
710
+ border-width: 2px;
711
+ }
697
712
  .border-b {
698
713
  border-bottom-width: 1px;
699
714
  }
@@ -731,6 +746,12 @@ video {
731
746
  .pb-6 {
732
747
  padding-bottom: 1.5rem;
733
748
  }
749
+ .text-left {
750
+ text-align: left;
751
+ }
752
+ .text-center {
753
+ text-align: center;
754
+ }
734
755
  .text-2xl {
735
756
  font-size: 1.5rem;
736
757
  line-height: 2rem;
@@ -756,6 +777,9 @@ video {
756
777
  --tw-text-opacity: 1;
757
778
  color: rgb(75 85 99 / var(--tw-text-opacity, 1));
758
779
  }
780
+ .opacity-30 {
781
+ opacity: 0.3;
782
+ }
759
783
  .shadow-lg {
760
784
  --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
761
785
  --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
@@ -780,12 +804,20 @@ video {
780
804
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
781
805
  transition-duration: 150ms;
782
806
  }
807
+ .transition-colors {
808
+ transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
809
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
810
+ transition-duration: 150ms;
811
+ }
783
812
  .duration-300 {
784
813
  transition-duration: 300ms;
785
814
  }
786
815
  .ease-in-out {
787
816
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
788
817
  }
818
+ .ease-out {
819
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
820
+ }
789
821
  /* CSS Variables for theming */
790
822
  :root {
791
823
  --loader-primary: #3b82f6;
@@ -1,10 +1,14 @@
1
- import { ProgressLoaderProps } from './common';
1
+ import { ProgressLoaderProps, BaseLoaderProps } from './common';
2
2
  /**
3
3
  * ProgressBar component props
4
4
  */
5
5
  export interface ProgressBarProps extends ProgressLoaderProps {
6
6
  /** Height of the progress bar */
7
7
  height?: number | string;
8
+ /** Enable gradient */
9
+ gradient?: boolean;
10
+ /** Buffer value (0-100) for showing partial loading */
11
+ buffer?: number;
8
12
  }
9
13
  /**
10
14
  * ProgressCircle component props
@@ -12,6 +16,8 @@ export interface ProgressBarProps extends ProgressLoaderProps {
12
16
  export interface ProgressCircleProps extends ProgressLoaderProps {
13
17
  /** Size of the circle */
14
18
  size?: number | string;
19
+ /** Buffer value (0-100) for showing partial loading */
20
+ buffer?: number;
15
21
  }
16
22
  /**
17
23
  * ProgressRing component props
@@ -21,5 +27,30 @@ export interface ProgressRingProps extends ProgressLoaderProps {
21
27
  size?: number | string;
22
28
  /** Enable gradient */
23
29
  gradient?: boolean;
30
+ /** Buffer value (0-100) for showing partial loading */
31
+ buffer?: number;
32
+ }
33
+ /**
34
+ * ProgressSteps component props
35
+ */
36
+ export interface ProgressStepsProps extends BaseLoaderProps {
37
+ /** Total number of steps (required) */
38
+ steps: number;
39
+ /** Current active step (0-indexed, required) */
40
+ currentStep: number;
41
+ /** Optional step labels */
42
+ labels?: string[];
43
+ /** Show step numbers */
44
+ showNumbers?: boolean;
45
+ /** Layout orientation */
46
+ orientation?: 'horizontal' | 'vertical';
47
+ /** Connector style between steps */
48
+ connector?: 'line' | 'none';
49
+ /** Color for completed steps */
50
+ completedColor?: string;
51
+ /** Color for active step */
52
+ activeColor?: string;
53
+ /** Color for inactive steps */
54
+ inactiveColor?: string;
24
55
  }
25
56
  //# sourceMappingURL=progress.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/types/progress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE/C;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,mBAAmB;IAC3D,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CAC1B;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;IAC9D,yBAAyB;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,mBAAmB;IAC5D,uBAAuB;IACvB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB"}
1
+ {"version":3,"file":"progress.d.ts","sourceRoot":"","sources":["../../src/types/progress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAEhE;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,mBAAmB;IAC3D,iCAAiC;IACjC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,mBAAmB;IAC9D,yBAAyB;IACzB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,mBAAmB;IAC5D,uBAAuB;IACvB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,sBAAsB;IACtB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IACzD,uCAAuC;IACvC,KAAK,EAAE,MAAM,CAAC;IACd,gDAAgD;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,2BAA2B;IAC3B,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,wBAAwB;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,yBAAyB;IACzB,WAAW,CAAC,EAAE,YAAY,GAAG,UAAU,CAAC;IACxC,oCAAoC;IACpC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC5B,gCAAgC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4BAA4B;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB"}
@@ -22,4 +22,17 @@ export interface PulseBarsProps extends BaseLoaderProps {
22
22
  /** Number of bars */
23
23
  barCount?: number;
24
24
  }
25
+ /**
26
+ * TypingIndicator component props
27
+ */
28
+ export interface TypingIndicatorProps extends BaseLoaderProps {
29
+ /** Number of dots */
30
+ dotCount?: number;
31
+ /** Size of each dot */
32
+ dotSize?: number | string;
33
+ /** Space between dots */
34
+ gap?: number | string;
35
+ /** Animation style */
36
+ variant?: 'bounce' | 'fade';
37
+ }
25
38
  //# sourceMappingURL=pulse.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pulse.d.ts","sourceRoot":"","sources":["../../src/types/pulse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,eAAe;IACrD,qBAAqB;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,eAAe;IACrD,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,eAAe;IACrD,qBAAqB;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
1
+ {"version":3,"file":"pulse.d.ts","sourceRoot":"","sources":["../../src/types/pulse.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,eAAe;IACrD,qBAAqB;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,eAAe;IACrD,6BAA6B;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAe,SAAQ,eAAe;IACrD,qBAAqB;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,oBAAqB,SAAQ,eAAe;IAC3D,qBAAqB;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC1B,yBAAyB;IACzB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,sBAAsB;IACtB,OAAO,CAAC,EAAE,QAAQ,GAAG,MAAM,CAAC;CAC7B"}
@@ -18,6 +18,8 @@ export interface SkeletonTextProps extends SkeletonBaseProps {
18
18
  lines?: number;
19
19
  /** Gap between lines */
20
20
  gap?: number | string;
21
+ /** Width of the last line (defaults to '80%') */
22
+ lastLineWidth?: number | string;
21
23
  }
22
24
  /**
23
25
  * SkeletonAvatar component props
@@ -75,4 +77,21 @@ export interface SkeletonPageProps extends SkeletonBaseProps {
75
77
  /** Page layout variant */
76
78
  variant?: 'default' | 'dashboard' | 'article' | 'profile';
77
79
  }
80
+ /**
81
+ * SkeletonForm component props
82
+ */
83
+ export interface SkeletonFormProps extends SkeletonBaseProps {
84
+ /** Number of form fields */
85
+ fields?: number;
86
+ /** Show field labels */
87
+ showLabels?: boolean;
88
+ /** Show submit button */
89
+ showButton?: boolean;
90
+ /** Spacing between fields */
91
+ gap?: number | string;
92
+ /** Button width */
93
+ buttonWidth?: number | string;
94
+ /** Button alignment */
95
+ buttonPosition?: 'left' | 'right' | 'center';
96
+ }
78
97
  //# sourceMappingURL=skeleton.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../../src/types/skeleton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,UAAU,GAAG,aAAa,GAAG,SAAS,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,iBAAiB;IACtD,oBAAoB;IACpB,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC5D,mBAAmB;IACnB,KAAK,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D,kBAAkB;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,qBAAqB;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wBAAwB;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D,0BAA0B;IAC1B,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;CAC3D"}
1
+ {"version":3,"file":"skeleton.d.ts","sourceRoot":"","sources":["../../src/types/skeleton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAE7C;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,GAAG,UAAU,GAAG,aAAa,GAAG,SAAS,CAAC;AAE9E;;GAEG;AACH,MAAM,WAAW,aAAc,SAAQ,iBAAiB;IACtD,oBAAoB;IACpB,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,iDAAiD;IACjD,aAAa,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,iBAAiB;IAC5D,mBAAmB;IACnB,KAAK,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,gDAAgD;IAChD,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D,kBAAkB;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,kCAAkC;IAClC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D,2BAA2B;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB;IAClB,UAAU,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC7B,wBAAwB;IACxB,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,qBAAqB;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wBAAwB;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D,0BAA0B;IAC1B,OAAO,CAAC,EAAE,SAAS,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,CAAC;CAC3D;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,iBAAiB;IAC1D,4BAA4B;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,wBAAwB;IACxB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,yBAAyB;IACzB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,6BAA6B;IAC7B,GAAG,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACtB,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,uBAAuB;IACvB,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;CAC9C"}
@@ -36,4 +36,22 @@ export interface SpinnerGridProps extends BaseLoaderProps {
36
36
  /** Grid size (e.g., 3 for 3x3) */
37
37
  gridSize?: number;
38
38
  }
39
+ /**
40
+ * SpinnerWave component props
41
+ */
42
+ export interface SpinnerWaveProps extends BaseLoaderProps {
43
+ /** Number of expanding ripples */
44
+ ripples?: number;
45
+ /** Maximum scale before fade */
46
+ maxScale?: number;
47
+ }
48
+ /**
49
+ * SpinnerPulse component props
50
+ */
51
+ export interface SpinnerPulseProps extends BaseLoaderProps {
52
+ /** Number of pulse circles (1-3) */
53
+ pulses?: number;
54
+ /** Maximum scale at expansion */
55
+ maxScale?: number;
56
+ }
39
57
  //# sourceMappingURL=spinner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"spinner.d.ts","sourceRoot":"","sources":["../../src/types/spinner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IACzD,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,qBAAqB;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,qBAAqB;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
1
+ {"version":3,"file":"spinner.d.ts","sourceRoot":"","sources":["../../src/types/spinner.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,UAAU,CAAC;AAE3C;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,eAAe;IACzD,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,4BAA4B;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,qBAAqB;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uBAAuB;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,qBAAqB;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,kCAAkC;IAClC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAiB,SAAQ,eAAe;IACvD,kCAAkC;IAClC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gCAAgC;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAkB,SAAQ,eAAe;IACxD,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB"}
@@ -17,9 +17,22 @@ export declare function hexToRgb(hex: string): {
17
17
  /**
18
18
  * Get animation duration in CSS format
19
19
  */
20
- export declare function getAnimationDuration(speed: 'slow' | 'normal' | 'fast' | number): string;
20
+ export declare function getAnimationDuration(speed?: 'slow' | 'normal' | 'fast' | number): string;
21
21
  /**
22
22
  * Normalize size value to CSS string
23
23
  */
24
24
  export declare function normalizeSize(size?: number | string): string;
25
+ /**
26
+ * Safely parse size to number with fallback
27
+ */
28
+ export declare function parseSizeToNumber(size: number | string | undefined, fallback: number): number;
29
+ /**
30
+ * Calculate relative luminance of a color (0-1 scale)
31
+ * Used for determining if text should be light or dark for contrast
32
+ */
33
+ export declare function getColorLuminance(color: string): number;
34
+ /**
35
+ * Get contrast color (black or white) based on background luminance
36
+ */
37
+ export declare function getContrastColor(backgroundColor: string): string;
25
38
  //# sourceMappingURL=colors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../src/utils/colors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAShF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAYvF;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAK5D"}
1
+ {"version":3,"file":"colors.d.ts","sourceRoot":"","sources":["../../src/utils/colors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEjD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAC;IAAC,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAShF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,GAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,MAAiB,GAAG,MAAM,CAclG;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAK5D;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAW7F;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CA8BvD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,eAAe,EAAE,MAAM,GAAG,MAAM,CAIhE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "premium-react-loaders",
3
- "version": "1.0.1",
3
+ "version": "1.1.0",
4
4
  "description": "Premium, production-ready loading components for React with TypeScript and Tailwind CSS",
5
5
  "author": "Ishan Karunaratne",
6
6
  "license": "MIT",