@vite-mf-monorepo/ui 0.4.5 → 0.4.6

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 (228) hide show
  1. package/dist/Avatar/Avatar.d.ts +19 -0
  2. package/dist/Avatar/Avatar.js +62 -0
  3. package/dist/Avatar/Avatar.js.map +1 -0
  4. package/dist/Avatar/index.d.ts +3 -0
  5. package/dist/Avatar/index.js +5 -0
  6. package/dist/Avatar/index.js.map +1 -0
  7. package/dist/Badge/Badge.d.ts +23 -0
  8. package/dist/Badge/Badge.js +48 -0
  9. package/dist/Badge/Badge.js.map +1 -0
  10. package/dist/Badge/index.d.ts +4 -0
  11. package/dist/Badge/index.js +5 -0
  12. package/dist/Badge/index.js.map +1 -0
  13. package/dist/Button/Button.utils.d.ts +23 -0
  14. package/dist/{chunk-IUGKH376.js → Button/Button.utils.js} +8 -7
  15. package/dist/Button/Button.utils.js.map +1 -0
  16. package/dist/Button/index.d.ts +6 -26
  17. package/dist/Button/index.js +4 -5
  18. package/dist/Button/index.js.map +1 -1
  19. package/dist/Card/Card.d.ts +11 -0
  20. package/dist/{chunk-RZU2FFBW.js → Card/Card.js} +7 -8
  21. package/dist/Card/Card.js.map +1 -0
  22. package/dist/Card/index.d.ts +3 -11
  23. package/dist/Card/index.js +4 -2
  24. package/dist/Card/index.js.map +1 -1
  25. package/dist/Carousel/Carousel.d.ts +65 -0
  26. package/dist/Carousel/Carousel.js +268 -0
  27. package/dist/Carousel/Carousel.js.map +1 -0
  28. package/dist/Carousel/CarouselCounter.d.ts +17 -0
  29. package/dist/Carousel/CarouselCounter.js +28 -0
  30. package/dist/Carousel/CarouselCounter.js.map +1 -0
  31. package/dist/Carousel/CarouselError.d.ts +8 -0
  32. package/dist/Carousel/CarouselError.js +18 -0
  33. package/dist/Carousel/CarouselError.js.map +1 -0
  34. package/dist/Carousel/CarouselItem.d.ts +16 -0
  35. package/dist/Carousel/CarouselItem.js +28 -0
  36. package/dist/Carousel/CarouselItem.js.map +1 -0
  37. package/dist/Carousel/CarouselLoading.d.ts +25 -0
  38. package/dist/Carousel/CarouselLoading.js +63 -0
  39. package/dist/Carousel/CarouselLoading.js.map +1 -0
  40. package/dist/Carousel/CarouselNavigation.d.ts +31 -0
  41. package/dist/Carousel/CarouselNavigation.js +97 -0
  42. package/dist/Carousel/CarouselNavigation.js.map +1 -0
  43. package/dist/Carousel/CarouselPagination.d.ts +20 -0
  44. package/dist/Carousel/CarouselPagination.js +29 -0
  45. package/dist/Carousel/CarouselPagination.js.map +1 -0
  46. package/dist/Carousel/index.d.ts +8 -0
  47. package/dist/Carousel/index.js +15 -0
  48. package/dist/Carousel/index.js.map +1 -0
  49. package/dist/HeroImage/HeroImage.d.ts +15 -0
  50. package/dist/HeroImage/HeroImage.js +47 -0
  51. package/dist/HeroImage/HeroImage.js.map +1 -0
  52. package/dist/HeroImage/index.d.ts +2 -0
  53. package/dist/HeroImage/index.js +5 -0
  54. package/dist/HeroImage/index.js.map +1 -0
  55. package/dist/Icon/Icon.d.ts +14 -0
  56. package/dist/Icon/Icon.js +204 -0
  57. package/dist/Icon/Icon.js.map +1 -0
  58. package/dist/Icon/index.d.ts +3 -14
  59. package/dist/Icon/index.js +4 -2
  60. package/dist/Icon/index.js.map +1 -1
  61. package/dist/IconButton/IconButton.d.ts +17 -0
  62. package/dist/IconButton/IconButton.js +44 -0
  63. package/dist/IconButton/IconButton.js.map +1 -0
  64. package/dist/IconButton/index.d.ts +4 -0
  65. package/dist/IconButton/index.js +5 -0
  66. package/dist/IconButton/index.js.map +1 -0
  67. package/dist/{MovieCard.utils-D8i4d7qA.d.ts → Image/Image.d.ts} +1 -28
  68. package/dist/Image/Image.js +125 -0
  69. package/dist/Image/Image.js.map +1 -0
  70. package/dist/Image/index.d.ts +3 -0
  71. package/dist/Image/index.js +5 -0
  72. package/dist/Image/index.js.map +1 -0
  73. package/dist/Modal/Modal.d.ts +20 -0
  74. package/dist/Modal/Modal.js +55 -0
  75. package/dist/Modal/Modal.js.map +1 -0
  76. package/dist/Modal/index.d.ts +3 -0
  77. package/dist/Modal/index.js +5 -0
  78. package/dist/Modal/index.js.map +1 -0
  79. package/dist/MovieCard/MovieCard.utils.d.ts +34 -0
  80. package/dist/MovieCard/MovieCard.utils.js +20 -0
  81. package/dist/MovieCard/MovieCard.utils.js.map +1 -0
  82. package/dist/MovieCard/MovieCardContent.d.ts +18 -0
  83. package/dist/MovieCard/MovieCardContent.js +75 -0
  84. package/dist/MovieCard/MovieCardContent.js.map +1 -0
  85. package/dist/MovieCard/index.d.ts +6 -0
  86. package/dist/MovieCard/index.js +5 -0
  87. package/dist/MovieCard/index.js.map +1 -0
  88. package/dist/Rating/CircleRating.d.ts +20 -0
  89. package/dist/Rating/CircleRating.js +75 -0
  90. package/dist/Rating/CircleRating.js.map +1 -0
  91. package/dist/Rating/Rating.d.ts +23 -0
  92. package/dist/Rating/Rating.js +41 -0
  93. package/dist/Rating/Rating.js.map +1 -0
  94. package/dist/Rating/StarsRating.d.ts +18 -0
  95. package/dist/Rating/StarsRating.js +47 -0
  96. package/dist/Rating/StarsRating.js.map +1 -0
  97. package/dist/Rating/index.d.ts +2 -0
  98. package/dist/Rating/index.js +5 -0
  99. package/dist/Rating/index.js.map +1 -0
  100. package/dist/Skeleton/Skeleton.d.ts +23 -0
  101. package/dist/{chunk-FJZK3PY6.js → Skeleton/Skeleton.js} +6 -7
  102. package/dist/Skeleton/Skeleton.js.map +1 -0
  103. package/dist/Skeleton/index.d.ts +3 -0
  104. package/dist/Skeleton/index.js +5 -0
  105. package/dist/Skeleton/index.js.map +1 -0
  106. package/dist/Spinner/Spinner.d.ts +8 -0
  107. package/dist/Spinner/Spinner.js +20 -0
  108. package/dist/Spinner/Spinner.js.map +1 -0
  109. package/dist/Spinner/index.d.ts +2 -0
  110. package/dist/Spinner/index.js +5 -0
  111. package/dist/Spinner/index.js.map +1 -0
  112. package/dist/Tabs/Tabs.d.ts +34 -0
  113. package/dist/Tabs/Tabs.js +47 -0
  114. package/dist/Tabs/Tabs.js.map +1 -0
  115. package/dist/Tabs/TabsContext.d.ts +21 -0
  116. package/dist/Tabs/TabsContext.js +16 -0
  117. package/dist/Tabs/TabsContext.js.map +1 -0
  118. package/dist/Tabs/TabsList.d.ts +7 -0
  119. package/dist/Tabs/TabsList.js +51 -0
  120. package/dist/Tabs/TabsList.js.map +1 -0
  121. package/dist/Tabs/TabsListContext.d.ts +16 -0
  122. package/dist/Tabs/TabsListContext.js +16 -0
  123. package/dist/Tabs/TabsListContext.js.map +1 -0
  124. package/dist/Tabs/TabsPanel.d.ts +17 -0
  125. package/dist/Tabs/TabsPanel.js +26 -0
  126. package/dist/Tabs/TabsPanel.js.map +1 -0
  127. package/dist/Tabs/TabsTrigger.d.ts +12 -0
  128. package/dist/Tabs/TabsTrigger.js +124 -0
  129. package/dist/Tabs/TabsTrigger.js.map +1 -0
  130. package/dist/Tabs/index.d.ts +6 -0
  131. package/dist/Tabs/index.js +5 -0
  132. package/dist/Tabs/index.js.map +1 -0
  133. package/dist/Talent/Talent.d.ts +19 -0
  134. package/dist/Talent/Talent.js +69 -0
  135. package/dist/Talent/Talent.js.map +1 -0
  136. package/dist/Talent/index.d.ts +4 -0
  137. package/dist/Talent/index.js +5 -0
  138. package/dist/Talent/index.js.map +1 -0
  139. package/dist/TrailerCard/TrailerCard.d.ts +15 -0
  140. package/dist/TrailerCard/TrailerCard.js +86 -0
  141. package/dist/TrailerCard/TrailerCard.js.map +1 -0
  142. package/dist/TrailerCard/index.d.ts +2 -0
  143. package/dist/TrailerCard/index.js +5 -0
  144. package/dist/TrailerCard/index.js.map +1 -0
  145. package/dist/Typography/Typography.d.ts +17 -0
  146. package/dist/Typography/Typography.js +55 -0
  147. package/dist/Typography/Typography.js.map +1 -0
  148. package/dist/Typography/index.d.ts +2 -0
  149. package/dist/Typography/index.js +5 -0
  150. package/dist/Typography/index.js.map +1 -0
  151. package/dist/index.d.ts +31 -372
  152. package/dist/index.js +50 -1099
  153. package/dist/index.js.map +1 -1
  154. package/dist/next/Button/Button.d.ts +9 -0
  155. package/dist/{chunk-ZTQU4GMY.js → next/Button/Button.js} +13 -10
  156. package/dist/next/Button/Button.js.map +1 -0
  157. package/dist/next/Button/Button.types.d.ts +26 -0
  158. package/dist/next/Button/Button.types.js +1 -0
  159. package/dist/next/Button/Button.types.js.map +1 -0
  160. package/dist/next/Button/index.d.ts +6 -0
  161. package/dist/next/Button/index.js +5 -0
  162. package/dist/next/Button/index.js.map +1 -0
  163. package/dist/next/HeroImage/HeroImage.d.ts +11 -0
  164. package/dist/next/HeroImage/HeroImage.js +44 -0
  165. package/dist/next/HeroImage/HeroImage.js.map +1 -0
  166. package/dist/next/HeroImage/index.d.ts +2 -0
  167. package/dist/next/HeroImage/index.js +5 -0
  168. package/dist/next/HeroImage/index.js.map +1 -0
  169. package/dist/next/Image/NextImage.d.ts +8 -0
  170. package/dist/next/Image/NextImage.js +84 -0
  171. package/dist/next/Image/NextImage.js.map +1 -0
  172. package/dist/next/Image/NextImage.types.d.ts +13 -0
  173. package/dist/next/Image/NextImage.types.js +1 -0
  174. package/dist/next/Image/NextImage.types.js.map +1 -0
  175. package/dist/next/Image/index.d.ts +5 -0
  176. package/dist/next/Image/index.js +5 -0
  177. package/dist/next/Image/index.js.map +1 -0
  178. package/dist/next/MovieCard/MovieCard.d.ts +9 -0
  179. package/dist/next/MovieCard/MovieCard.js +44 -0
  180. package/dist/next/MovieCard/MovieCard.js.map +1 -0
  181. package/dist/next/MovieCard/MovieCard.types.d.ts +15 -0
  182. package/dist/next/MovieCard/MovieCard.types.js +1 -0
  183. package/dist/next/MovieCard/MovieCard.types.js.map +1 -0
  184. package/dist/next/MovieCard/MovieCardContent.d.ts +19 -0
  185. package/dist/next/MovieCard/MovieCardContent.js +79 -0
  186. package/dist/next/MovieCard/MovieCardContent.js.map +1 -0
  187. package/dist/next/MovieCard/index.d.ts +6 -0
  188. package/dist/next/MovieCard/index.js +5 -0
  189. package/dist/next/MovieCard/index.js.map +1 -0
  190. package/dist/next/index.d.ts +14 -60
  191. package/dist/next/index.js +10 -270
  192. package/dist/next/index.js.map +1 -1
  193. package/dist/react-router/Button/Button.d.ts +9 -0
  194. package/dist/react-router/Button/Button.js +52 -0
  195. package/dist/react-router/Button/Button.js.map +1 -0
  196. package/dist/react-router/Button/Button.types.d.ts +24 -0
  197. package/dist/react-router/Button/Button.types.js +1 -0
  198. package/dist/react-router/Button/Button.types.js.map +1 -0
  199. package/dist/react-router/Button/index.d.ts +6 -0
  200. package/dist/react-router/Button/index.js +5 -0
  201. package/dist/react-router/Button/index.js.map +1 -0
  202. package/dist/react-router/MovieCard/MovieCard.d.ts +9 -0
  203. package/dist/react-router/MovieCard/MovieCard.js +42 -0
  204. package/dist/react-router/MovieCard/MovieCard.js.map +1 -0
  205. package/dist/react-router/MovieCard/MovieCard.types.d.ts +15 -0
  206. package/dist/react-router/MovieCard/MovieCard.types.js +1 -0
  207. package/dist/react-router/MovieCard/MovieCard.types.js.map +1 -0
  208. package/dist/react-router/MovieCard/index.d.ts +6 -0
  209. package/dist/react-router/MovieCard/index.js +5 -0
  210. package/dist/react-router/MovieCard/index.js.map +1 -0
  211. package/dist/react-router/index.d.ts +8 -17
  212. package/dist/react-router/index.js +6 -7
  213. package/dist/react-router/index.js.map +1 -1
  214. package/package.json +1 -1
  215. package/dist/chunk-6DP3KZQG.js +0 -214
  216. package/dist/chunk-6DP3KZQG.js.map +0 -1
  217. package/dist/chunk-6FBMTGXQ.js +0 -119
  218. package/dist/chunk-6FBMTGXQ.js.map +0 -1
  219. package/dist/chunk-7IAJQE27.js +0 -228
  220. package/dist/chunk-7IAJQE27.js.map +0 -1
  221. package/dist/chunk-DGJI4VNO.js +0 -3
  222. package/dist/chunk-DGJI4VNO.js.map +0 -1
  223. package/dist/chunk-FJZK3PY6.js.map +0 -1
  224. package/dist/chunk-IUGKH376.js.map +0 -1
  225. package/dist/chunk-RZU2FFBW.js.map +0 -1
  226. package/dist/chunk-ZTQU4GMY.js.map +0 -1
  227. package/dist/index.css +0 -1313
  228. package/dist/index.css.map +0 -1
@@ -0,0 +1,5 @@
1
+ import { default as default2 } from "./Button";
2
+ export {
3
+ default2 as Button
4
+ };
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/react-router/Button/index.ts"],"sourcesContent":["export { default as Button } from './Button'\nexport type { ButtonProps, ButtonAsButton, ButtonAsLink } from './Button.types'\n"],"mappings":"AAAA,SAAoB,WAAXA,gBAAyB;","names":["default"]}
@@ -0,0 +1,9 @@
1
+ import { MovieCardProps } from './MovieCard.types.js';
2
+ import '../../MovieCard/MovieCard.utils.js';
3
+ import * as react_jsx_runtime from 'react/jsx-runtime';
4
+ import '../../Image/Image.js';
5
+ import 'react';
6
+
7
+ declare function MovieCard({ id, title, posterUrl, voteAverage, year, className, imageLoading, as, ...rest }: Readonly<MovieCardProps>): react_jsx_runtime.JSX.Element;
8
+
9
+ export { MovieCard as default };
@@ -0,0 +1,42 @@
1
+ import { jsx } from "react/jsx-runtime";
2
+ import { Link } from "react-router-dom";
3
+ import { getMovieCardLinkClasses } from "../../MovieCard/MovieCard.utils";
4
+ import MovieCardContent from "../../MovieCard/MovieCardContent";
5
+ function MovieCard({
6
+ id,
7
+ title,
8
+ posterUrl,
9
+ voteAverage,
10
+ year,
11
+ className,
12
+ imageLoading = "lazy",
13
+ as = "card",
14
+ ...rest
15
+ }) {
16
+ const to = "to" in rest ? rest.to : void 0;
17
+ const onClick = "onClick" in rest ? rest.onClick : void 0;
18
+ const isInteractive = as === "link" || as === "button";
19
+ const cardContent = /* @__PURE__ */ jsx(
20
+ MovieCardContent,
21
+ {
22
+ id,
23
+ title,
24
+ posterUrl,
25
+ voteAverage,
26
+ year,
27
+ className,
28
+ imageLoading,
29
+ isInteractive,
30
+ onClick: as === "button" ? onClick : void 0
31
+ }
32
+ );
33
+ if (as === "link" && to) {
34
+ return /* @__PURE__ */ jsx(Link, { to, className: getMovieCardLinkClasses(), children: cardContent });
35
+ }
36
+ return cardContent;
37
+ }
38
+ var MovieCard_default = MovieCard;
39
+ export {
40
+ MovieCard_default as default
41
+ };
42
+ //# sourceMappingURL=MovieCard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/react-router/MovieCard/MovieCard.tsx"],"sourcesContent":["import { Link } from 'react-router-dom'\n\nimport { getMovieCardLinkClasses } from '../../MovieCard/MovieCard.utils'\nimport MovieCardContent from '../../MovieCard/MovieCardContent'\n\nimport type { MovieCardProps } from './MovieCard.types'\n\nfunction MovieCard({\n id,\n title,\n posterUrl,\n voteAverage,\n year,\n className,\n imageLoading = 'lazy',\n as = 'card',\n ...rest\n}: Readonly<MovieCardProps>) {\n const to = 'to' in rest ? rest.to : undefined\n const onClick = 'onClick' in rest ? rest.onClick : undefined\n\n const isInteractive = as === 'link' || as === 'button'\n\n const cardContent = (\n <MovieCardContent\n id={id}\n title={title}\n posterUrl={posterUrl}\n voteAverage={voteAverage}\n year={year}\n className={className}\n imageLoading={imageLoading}\n isInteractive={isInteractive}\n onClick={as === 'button' ? onClick : undefined}\n />\n )\n\n if (as === 'link' && to) {\n return (\n <Link to={to} className={getMovieCardLinkClasses()}>\n {cardContent}\n </Link>\n )\n }\n\n return cardContent\n}\n\nexport default MovieCard\n"],"mappings":"AAwBI;AAxBJ,SAAS,YAAY;AAErB,SAAS,+BAA+B;AACxC,OAAO,sBAAsB;AAI7B,SAAS,UAAU;AAAA,EACjB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,eAAe;AAAA,EACf,KAAK;AAAA,EACL,GAAG;AACL,GAA6B;AAC3B,QAAM,KAAK,QAAQ,OAAO,KAAK,KAAK;AACpC,QAAM,UAAU,aAAa,OAAO,KAAK,UAAU;AAEnD,QAAM,gBAAgB,OAAO,UAAU,OAAO;AAE9C,QAAM,cACJ;AAAA,IAAC;AAAA;AAAA,MACC;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS,OAAO,WAAW,UAAU;AAAA;AAAA,EACvC;AAGF,MAAI,OAAO,UAAU,IAAI;AACvB,WACE,oBAAC,QAAK,IAAQ,WAAW,wBAAwB,GAC9C,uBACH;AAAA,EAEJ;AAEA,SAAO;AACT;AAEA,IAAO,oBAAQ;","names":[]}
@@ -0,0 +1,15 @@
1
+ import { MovieCardAsCard, MovieCardBaseProps, MovieCardAsButton } from '../../MovieCard/MovieCard.utils.js';
2
+ import '../../Image/Image.js';
3
+ import 'react/jsx-runtime';
4
+ import 'react';
5
+
6
+ interface MovieCardAsLink extends MovieCardBaseProps {
7
+ /** Render as React Router Link */
8
+ as: 'link';
9
+ /** Navigation path (required when as="link") */
10
+ to: string;
11
+ onClick?: never;
12
+ }
13
+ type MovieCardProps = MovieCardAsCard | MovieCardAsLink | MovieCardAsButton;
14
+
15
+ export { MovieCardAsButton, MovieCardAsCard, type MovieCardAsLink, MovieCardBaseProps, type MovieCardProps };
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=MovieCard.types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,6 @@
1
+ export { default as MovieCard } from './MovieCard.js';
2
+ export { MovieCardAsLink, MovieCardProps } from './MovieCard.types.js';
3
+ export { MovieCardAsButton, MovieCardAsCard, MovieCardBaseProps } from '../../MovieCard/MovieCard.utils.js';
4
+ import 'react/jsx-runtime';
5
+ import '../../Image/Image.js';
6
+ import 'react';
@@ -0,0 +1,5 @@
1
+ import { default as default2 } from "./MovieCard";
2
+ export {
3
+ default2 as MovieCard
4
+ };
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/react-router/MovieCard/index.ts"],"sourcesContent":["export { default as MovieCard } from './MovieCard'\nexport type {\n MovieCardProps,\n MovieCardBaseProps,\n MovieCardAsCard,\n MovieCardAsLink,\n MovieCardAsButton,\n} from './MovieCard.types'\n"],"mappings":"AAAA,SAAoB,WAAXA,gBAA4B;","names":["default"]}
@@ -1,19 +1,10 @@
1
- export { Button, ButtonAsButton, ButtonAsLink, ButtonProps } from '../Button/index.js';
2
- import * as react_jsx_runtime from 'react/jsx-runtime';
3
- import { M as MovieCardAsCard, a as MovieCardBaseProps, b as MovieCardAsButton } from '../MovieCard.utils-D8i4d7qA.js';
4
- import '../Icon/index.js';
1
+ export { default as Button } from './Button/Button.js';
2
+ export { ButtonAsButton, ButtonAsLink, ButtonProps } from './Button/Button.types.js';
3
+ export { default as MovieCard } from './MovieCard/MovieCard.js';
4
+ export { MovieCardAsLink, MovieCardProps } from './MovieCard/MovieCard.types.js';
5
+ export { MovieCardAsButton, MovieCardAsCard, MovieCardBaseProps } from '../MovieCard/MovieCard.utils.js';
6
+ import 'react/jsx-runtime';
7
+ import '../Icon/Icon.js';
5
8
  import 'react';
6
9
  import 'react-router-dom';
7
-
8
- interface MovieCardAsLink extends MovieCardBaseProps {
9
- /** Render as React Router Link */
10
- as: 'link';
11
- /** Navigation path (required when as="link") */
12
- to: string;
13
- onClick?: never;
14
- }
15
- type MovieCardProps = MovieCardAsCard | MovieCardAsLink | MovieCardAsButton;
16
-
17
- declare function MovieCard({ id, title, posterUrl, voteAverage, year, className, imageLoading, as, ...rest }: Readonly<MovieCardProps>): react_jsx_runtime.JSX.Element;
18
-
19
- export { MovieCard, MovieCardAsButton, MovieCardAsCard, type MovieCardAsLink, MovieCardBaseProps, type MovieCardProps };
10
+ import '../Image/Image.js';
@@ -1,8 +1,7 @@
1
- export { MovieCard_default as MovieCard } from '../chunk-7IAJQE27.js';
2
- export { Button_default as Button } from '../chunk-ZTQU4GMY.js';
3
- import '../chunk-6DP3KZQG.js';
4
- import '../chunk-IUGKH376.js';
5
- import '../chunk-RZU2FFBW.js';
6
- import '../chunk-6FBMTGXQ.js';
7
- //# sourceMappingURL=index.js.map
1
+ import { Button } from "./Button";
2
+ import { MovieCard } from "./MovieCard";
3
+ export {
4
+ Button,
5
+ MovieCard
6
+ };
8
7
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
1
+ {"version":3,"sources":["../../src/react-router/index.ts"],"sourcesContent":["export { Button } from './Button'\nexport type { ButtonProps, ButtonAsButton, ButtonAsLink } from './Button'\n\nexport { MovieCard } from './MovieCard'\nexport type {\n MovieCardProps,\n MovieCardBaseProps,\n MovieCardAsCard,\n MovieCardAsLink,\n MovieCardAsButton,\n} from './MovieCard'\n"],"mappings":"AAAA,SAAS,cAAc;AAGvB,SAAS,iBAAiB;","names":[]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vite-mf-monorepo/ui",
3
- "version": "0.4.5",
3
+ "version": "0.4.6",
4
4
  "description": "Design system components for vite-mf-monorepo",
5
5
  "type": "module",
6
6
  "publishConfig": {
@@ -1,214 +0,0 @@
1
- import { Icon_default } from './chunk-6FBMTGXQ.js';
2
- import clsx from 'clsx';
3
- import { jsx, jsxs } from 'react/jsx-runtime';
4
- import { createElement } from 'react';
5
-
6
- var circleSizeMap = {
7
- sm: { size: 32, stroke: 3, fontSize: "ui:text-xs" },
8
- md: { size: 48, stroke: 4, fontSize: "ui:text-sm" },
9
- lg: { size: 64, stroke: 5, fontSize: "ui:text-base" }
10
- };
11
- var getColorClass = (percent) => {
12
- if (percent >= 70) return "ui:text-green-600";
13
- if (percent >= 40) return "ui:text-amber-600";
14
- return "ui:text-red-500";
15
- };
16
- function CircleRating({
17
- percent,
18
- size,
19
- showValue,
20
- value,
21
- max,
22
- trackClassName
23
- }) {
24
- const { size: svgSize, stroke, fontSize } = circleSizeMap[size];
25
- const radius = (svgSize - stroke) / 2;
26
- const circumference = 2 * Math.PI * radius;
27
- const offset = circumference - percent / 100 * circumference;
28
- return /* @__PURE__ */ jsxs("div", { className: "ui:relative ui:inline-flex ui:items-center ui:justify-center", children: [
29
- /* @__PURE__ */ jsxs("svg", { width: svgSize, height: svgSize, className: "ui:-rotate-90", children: [
30
- /* @__PURE__ */ jsx(
31
- "circle",
32
- {
33
- cx: svgSize / 2,
34
- cy: svgSize / 2,
35
- r: radius,
36
- fill: "none",
37
- stroke: "currentColor",
38
- strokeWidth: stroke,
39
- className: trackClassName ?? "ui:text-gray-200"
40
- }
41
- ),
42
- /* @__PURE__ */ jsx(
43
- "circle",
44
- {
45
- cx: svgSize / 2,
46
- cy: svgSize / 2,
47
- r: radius,
48
- fill: "none",
49
- stroke: "currentColor",
50
- strokeWidth: stroke,
51
- strokeLinecap: "round",
52
- strokeDasharray: circumference,
53
- strokeDashoffset: offset,
54
- className: clsx(
55
- "ui:transition-all ui:duration-500",
56
- getColorClass(percent)
57
- )
58
- }
59
- )
60
- ] }),
61
- showValue && /* @__PURE__ */ jsx(
62
- "span",
63
- {
64
- className: clsx(
65
- "ui:absolute ui:font-bold",
66
- fontSize,
67
- getColorClass(percent)
68
- ),
69
- children: max === 100 ? Math.round(percent) : value.toFixed(1)
70
- }
71
- )
72
- ] });
73
- }
74
- var CircleRating_default = CircleRating;
75
- var starsSizeMap = {
76
- sm: 16,
77
- md: 20,
78
- lg: 24
79
- };
80
- function StarsRating({
81
- percent,
82
- size,
83
- showValue,
84
- value,
85
- max
86
- }) {
87
- const iconSize = starsSizeMap[size];
88
- return /* @__PURE__ */ jsxs("div", { className: "ui:inline-flex ui:items-center ui:gap-1", children: [
89
- /* @__PURE__ */ jsxs("div", { className: "ui:relative", children: [
90
- /* @__PURE__ */ jsx("div", { className: "ui:flex ui:text-gray-300", children: [1, 2, 3, 4, 5].map((i) => /* @__PURE__ */ jsx(Icon_default, { name: "Star", size: iconSize }, i)) }),
91
- /* @__PURE__ */ jsx(
92
- "div",
93
- {
94
- className: "ui:absolute ui:inset-0 ui:flex ui:text-yellow-400",
95
- style: { clipPath: `inset(0 ${String(100 - percent)}% 0 0)` },
96
- children: [1, 2, 3, 4, 5].map((i) => /* @__PURE__ */ jsx(Icon_default, { name: "Star", size: iconSize }, i))
97
- }
98
- )
99
- ] }),
100
- showValue && /* @__PURE__ */ jsx(
101
- "span",
102
- {
103
- className: clsx(
104
- "ui:font-medium ui:text-muted-foreground",
105
- size === "sm" && "ui:text-xs",
106
- size === "md" && "ui:text-sm",
107
- size === "lg" && "ui:text-base"
108
- ),
109
- children: max === 100 ? (value / 10).toFixed(1) : value.toFixed(1)
110
- }
111
- )
112
- ] });
113
- }
114
- var StarsRating_default = StarsRating;
115
- function Rating({
116
- value,
117
- max = 10,
118
- variant = "circle",
119
- size = "md",
120
- showValue = true,
121
- trackClassName,
122
- className
123
- }) {
124
- const clampedValue = Math.max(0, Math.min(value, max));
125
- const percent = clampedValue / max * 100;
126
- return /* @__PURE__ */ jsx("div", { className: clsx("ui:inline-flex", className), children: variant === "circle" ? /* @__PURE__ */ jsx(
127
- CircleRating_default,
128
- {
129
- percent,
130
- size,
131
- showValue,
132
- value: clampedValue,
133
- max,
134
- trackClassName
135
- }
136
- ) : /* @__PURE__ */ jsx(
137
- StarsRating_default,
138
- {
139
- percent,
140
- size,
141
- showValue,
142
- value: clampedValue,
143
- max
144
- }
145
- ) });
146
- }
147
- var Rating_default = Rating;
148
- var variantStyles = {
149
- h1: "ui:font-roboto ui:text-xl ui:sm:text-2xl ui:md:text-3xl ui:lg:text-4xl ui:font-bold ui:leading-tight ui:text-foreground",
150
- h2: "ui:font-roboto ui:text-lg ui:sm:text-xl ui:md:text-2xl ui:lg:text-3xl ui:font-bold ui:leading-tight ui:text-foreground",
151
- h3: "ui:font-roboto ui:text-base ui:sm:text-lg ui:md:text-xl ui:lg:text-2xl ui:font-semibold ui:leading-snug ui:text-foreground",
152
- h4: "ui:font-roboto ui:text-sm ui:sm:text-base ui:md:text-lg ui:lg:text-xl ui:font-semibold ui:leading-snug ui:text-foreground",
153
- h5: "ui:font-roboto ui:text-sm ui:sm:text-base ui:md:text-lg ui:font-medium ui:leading-normal ui:text-foreground",
154
- h6: "ui:font-roboto ui:text-xs ui:sm:text-sm ui:md:text-base ui:font-medium ui:leading-normal ui:text-foreground",
155
- body: "ui:font-inter ui:text-xs ui:sm:text-sm ui:md:text-base ui:leading-relaxed ui:text-foreground",
156
- "body-sm": "ui:font-inter ui:text-xs ui:sm:text-sm ui:leading-relaxed ui:text-foreground",
157
- "body-lg": "ui:font-inter ui:text-sm ui:sm:text-base ui:md:text-lg ui:leading-relaxed ui:text-foreground",
158
- lead: "ui:font-inter ui:text-sm ui:sm:text-base ui:md:text-lg ui:lg:text-xl ui:leading-relaxed ui:text-muted-foreground",
159
- caption: "ui:font-inter ui:text-xs ui:sm:text-sm ui:text-muted-foreground",
160
- "caption-xs": "ui:font-inter ui:text-xs ui:text-muted-foreground",
161
- label: "ui:font-inter ui:text-xs ui:sm:text-sm ui:font-medium ui:text-foreground",
162
- muted: "ui:font-inter ui:text-xs ui:sm:text-sm ui:text-muted-foreground",
163
- blockquote: "ui:font-inter ui:text-xs ui:sm:text-sm ui:md:text-base ui:border-l-4 ui:border-border ui:pl-4 ui:italic ui:text-muted-foreground"
164
- };
165
- var variantToTag = {
166
- h1: "h1",
167
- h2: "h2",
168
- h3: "h3",
169
- h4: "h4",
170
- h5: "h5",
171
- h6: "h6",
172
- body: "p",
173
- "body-sm": "p",
174
- "body-lg": "p",
175
- lead: "p",
176
- caption: "span",
177
- "caption-xs": "span",
178
- label: "label",
179
- muted: "p",
180
- blockquote: "blockquote"
181
- };
182
- function Typography({
183
- variant,
184
- as,
185
- className,
186
- children,
187
- ...rest
188
- }) {
189
- const Component = as ?? variantToTag[variant];
190
- return createElement(
191
- Component,
192
- { className: clsx(variantStyles[variant], className), ...rest },
193
- children
194
- );
195
- }
196
- var Typography_default = Typography;
197
- function getMovieCardClasses(isInteractive, className) {
198
- return clsx(
199
- "ui:group ui:relative ui:flex ui:flex-col ui:overflow-hidden",
200
- isInteractive && [
201
- "ui:cursor-pointer",
202
- "ui:transition-transform ui:duration-200",
203
- "hover:ui:scale-[1.02]"
204
- ],
205
- className
206
- );
207
- }
208
- function getMovieCardLinkClasses() {
209
- return "ui:block ui:no-underline ui:text-inherit";
210
- }
211
-
212
- export { Rating_default, Typography_default, getMovieCardClasses, getMovieCardLinkClasses };
213
- //# sourceMappingURL=chunk-6DP3KZQG.js.map
214
- //# sourceMappingURL=chunk-6DP3KZQG.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/Rating/CircleRating.tsx","../src/Rating/StarsRating.tsx","../src/Rating/Rating.tsx","../src/Typography/Typography.tsx","../src/MovieCard/MovieCard.utils.ts"],"names":["jsxs","jsx","clsx"],"mappings":";;;;;AAIA,IAAM,aAAA,GAGF;AAAA,EACF,IAAI,EAAE,IAAA,EAAM,IAAI,MAAA,EAAQ,CAAA,EAAG,UAAU,YAAA,EAAa;AAAA,EAClD,IAAI,EAAE,IAAA,EAAM,IAAI,MAAA,EAAQ,CAAA,EAAG,UAAU,YAAA,EAAa;AAAA,EAClD,IAAI,EAAE,IAAA,EAAM,IAAI,MAAA,EAAQ,CAAA,EAAG,UAAU,cAAA;AACvC,CAAA;AAEA,IAAM,aAAA,GAAgB,CAAC,OAAA,KAA4B;AACjD,EAAA,IAAI,OAAA,IAAW,IAAI,OAAO,mBAAA;AAC1B,EAAA,IAAI,OAAA,IAAW,IAAI,OAAO,mBAAA;AAC1B,EAAA,OAAO,iBAAA;AACT,CAAA;AAiBA,SAAS,YAAA,CAAa;AAAA,EACpB,OAAA;AAAA,EACA,IAAA;AAAA,EACA,SAAA;AAAA,EACA,KAAA;AAAA,EACA,GAAA;AAAA,EACA;AACF,CAAA,EAAgC;AAC9B,EAAA,MAAM,EAAE,IAAA,EAAM,OAAA,EAAS,QAAQ,QAAA,EAAS,GAAI,cAAc,IAAI,CAAA;AAC9D,EAAA,MAAM,MAAA,GAAA,CAAU,UAAU,MAAA,IAAU,CAAA;AACpC,EAAA,MAAM,aAAA,GAAgB,CAAA,GAAI,IAAA,CAAK,EAAA,GAAK,MAAA;AACpC,EAAA,MAAM,MAAA,GAAS,aAAA,GAAiB,OAAA,GAAU,GAAA,GAAO,aAAA;AAEjD,EAAA,uBACE,IAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,8DAAA,EACb,QAAA,EAAA;AAAA,oBAAA,IAAA,CAAC,SAAI,KAAA,EAAO,OAAA,EAAS,MAAA,EAAQ,OAAA,EAAS,WAAU,eAAA,EAC9C,QAAA,EAAA;AAAA,sBAAA,GAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,IAAI,OAAA,GAAU,CAAA;AAAA,UACd,IAAI,OAAA,GAAU,CAAA;AAAA,UACd,CAAA,EAAG,MAAA;AAAA,UACH,IAAA,EAAK,MAAA;AAAA,UACL,MAAA,EAAO,cAAA;AAAA,UACP,WAAA,EAAa,MAAA;AAAA,UACb,WAAW,cAAA,IAAkB;AAAA;AAAA,OAC/B;AAAA,sBACA,GAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,IAAI,OAAA,GAAU,CAAA;AAAA,UACd,IAAI,OAAA,GAAU,CAAA;AAAA,UACd,CAAA,EAAG,MAAA;AAAA,UACH,IAAA,EAAK,MAAA;AAAA,UACL,MAAA,EAAO,cAAA;AAAA,UACP,WAAA,EAAa,MAAA;AAAA,UACb,aAAA,EAAc,OAAA;AAAA,UACd,eAAA,EAAiB,aAAA;AAAA,UACjB,gBAAA,EAAkB,MAAA;AAAA,UAClB,SAAA,EAAW,IAAA;AAAA,YACT,mCAAA;AAAA,YACA,cAAc,OAAO;AAAA;AACvB;AAAA;AACF,KAAA,EACF,CAAA;AAAA,IACC,SAAA,oBACC,GAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAW,IAAA;AAAA,UACT,0BAAA;AAAA,UACA,QAAA;AAAA,UACA,cAAc,OAAO;AAAA,SACvB;AAAA,QAEC,QAAA,EAAA,GAAA,KAAQ,MAAM,IAAA,CAAK,KAAA,CAAM,OAAO,CAAA,GAAI,KAAA,CAAM,QAAQ,CAAC;AAAA;AAAA;AACtD,GAAA,EAEJ,CAAA;AAEJ;AAEA,IAAO,oBAAA,GAAQ,YAAA;ACnFf,IAAM,YAAA,GAA6C;AAAA,EACjD,EAAA,EAAI,EAAA;AAAA,EACJ,EAAA,EAAI,EAAA;AAAA,EACJ,EAAA,EAAI;AACN,CAAA;AAeA,SAAS,WAAA,CAAY;AAAA,EACnB,OAAA;AAAA,EACA,IAAA;AAAA,EACA,SAAA;AAAA,EACA,KAAA;AAAA,EACA;AACF,CAAA,EAA+B;AAC7B,EAAA,MAAM,QAAA,GAAW,aAAa,IAAI,CAAA;AAElC,EAAA,uBACEA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,yCAAA,EACb,QAAA,EAAA;AAAA,oBAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAU,aAAA,EAEb,QAAA,EAAA;AAAA,sBAAAC,GAAAA,CAAC,SAAI,SAAA,EAAU,0BAAA,EACZ,WAAC,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAA,EAAG,CAAC,CAAA,CAAE,IAAI,CAAC,CAAA,qBACpBA,GAAAA,CAAC,YAAA,EAAA,EAAa,IAAA,EAAK,QAAO,IAAA,EAAM,QAAA,EAAA,EAArB,CAA+B,CAC3C,CAAA,EACH,CAAA;AAAA,sBAEAA,GAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,SAAA,EAAU,mDAAA;AAAA,UACV,KAAA,EAAO,EAAE,QAAA,EAAU,CAAA,QAAA,EAAW,OAAO,GAAA,GAAM,OAAO,CAAC,CAAA,MAAA,CAAA,EAAS;AAAA,UAE3D,WAAC,CAAA,EAAG,CAAA,EAAG,GAAG,CAAA,EAAG,CAAC,EAAE,GAAA,CAAI,CAAC,CAAA,qBACpBA,IAAC,YAAA,EAAA,EAAa,IAAA,EAAK,QAAO,IAAA,EAAM,QAAA,EAAA,EAArB,CAA+B,CAC3C;AAAA;AAAA;AACH,KAAA,EACF,CAAA;AAAA,IACC,6BACCA,GAAAA;AAAA,MAAC,MAAA;AAAA,MAAA;AAAA,QACC,SAAA,EAAWC,IAAAA;AAAA,UACT,yCAAA;AAAA,UACA,SAAS,IAAA,IAAQ,YAAA;AAAA,UACjB,SAAS,IAAA,IAAQ,YAAA;AAAA,UACjB,SAAS,IAAA,IAAQ;AAAA,SACnB;AAAA,QAEC,QAAA,EAAA,GAAA,KAAQ,OAAO,KAAA,GAAQ,EAAA,EAAI,QAAQ,CAAC,CAAA,GAAI,KAAA,CAAM,OAAA,CAAQ,CAAC;AAAA;AAAA;AAC1D,GAAA,EAEJ,CAAA;AAEJ;AAEA,IAAO,mBAAA,GAAQ,WAAA;AC7Cf,SAAS,MAAA,CAAO;AAAA,EACd,KAAA;AAAA,EACA,GAAA,GAAM,EAAA;AAAA,EACN,OAAA,GAAU,QAAA;AAAA,EACV,IAAA,GAAO,IAAA;AAAA,EACP,SAAA,GAAY,IAAA;AAAA,EACZ,cAAA;AAAA,EACA;AACF,CAAA,EAA0B;AACxB,EAAA,MAAM,YAAA,GAAe,KAAK,GAAA,CAAI,CAAA,EAAG,KAAK,GAAA,CAAI,KAAA,EAAO,GAAG,CAAC,CAAA;AACrD,EAAA,MAAM,OAAA,GAAW,eAAe,GAAA,GAAO,GAAA;AAEvC,EAAA,uBACED,GAAAA,CAAC,KAAA,EAAA,EAAI,SAAA,EAAWC,IAAAA,CAAK,kBAAkB,SAAS,CAAA,EAC7C,QAAA,EAAA,OAAA,KAAY,QAAA,mBACXD,GAAAA;AAAA,IAAC,oBAAA;AAAA,IAAA;AAAA,MACC,OAAA;AAAA,MACA,IAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA,EAAO,YAAA;AAAA,MACP,GAAA;AAAA,MACA;AAAA;AAAA,sBAGFA,GAAAA;AAAA,IAAC,mBAAA;AAAA,IAAA;AAAA,MACC,OAAA;AAAA,MACA,IAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA,EAAO,YAAA;AAAA,MACP;AAAA;AAAA,GACF,EAEJ,CAAA;AAEJ;AAEA,IAAO,cAAA,GAAQ;AC5Bf,IAAM,aAAA,GAAmD;AAAA,EACvD,EAAA,EAAI,yHAAA;AAAA,EACJ,EAAA,EAAI,wHAAA;AAAA,EACJ,EAAA,EAAI,4HAAA;AAAA,EACJ,EAAA,EAAI,2HAAA;AAAA,EACJ,EAAA,EAAI,6GAAA;AAAA,EACJ,EAAA,EAAI,6GAAA;AAAA,EACJ,IAAA,EAAM,8FAAA;AAAA,EACN,SAAA,EACE,8EAAA;AAAA,EACF,SAAA,EACE,8FAAA;AAAA,EACF,IAAA,EAAM,kHAAA;AAAA,EACN,OAAA,EAAS,iEAAA;AAAA,EACT,YAAA,EAAc,mDAAA;AAAA,EACd,KAAA,EACE,0EAAA;AAAA,EACF,KAAA,EAAO,iEAAA;AAAA,EACP,UAAA,EACE;AACJ,CAAA;AAEA,IAAM,YAAA,GAAuD;AAAA,EAC3D,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,EAAA,EAAI,IAAA;AAAA,EACJ,IAAA,EAAM,GAAA;AAAA,EACN,SAAA,EAAW,GAAA;AAAA,EACX,SAAA,EAAW,GAAA;AAAA,EACX,IAAA,EAAM,GAAA;AAAA,EACN,OAAA,EAAS,MAAA;AAAA,EACT,YAAA,EAAc,MAAA;AAAA,EACd,KAAA,EAAO,OAAA;AAAA,EACP,KAAA,EAAO,GAAA;AAAA,EACP,UAAA,EAAY;AACd,CAAA;AAEA,SAAS,UAAA,CAAW;AAAA,EAClB,OAAA;AAAA,EACA,EAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA,GAAG;AACL,CAAA,EAA8B;AAC5B,EAAA,MAAM,SAAA,GAAY,EAAA,IAAM,YAAA,CAAa,OAAO,CAAA;AAE5C,EAAA,OAAO,aAAA;AAAA,IACL,SAAA;AAAA,IACA,EAAE,WAAWC,IAAAA,CAAK,aAAA,CAAc,OAAO,CAAA,EAAG,SAAS,CAAA,EAAG,GAAG,IAAA,EAAK;AAAA,IAC9D;AAAA,GACF;AACF;AAEA,IAAO,kBAAA,GAAQ;ACxDR,SAAS,mBAAA,CACd,eACA,SAAA,EACA;AACA,EAAA,OAAOA,IAAAA;AAAA,IACL,6DAAA;AAAA,IACA,aAAA,IAAiB;AAAA,MACf,mBAAA;AAAA,MACA,yCAAA;AAAA,MACA;AAAA,KACF;AAAA,IACA;AAAA,GACF;AACF;AAEO,SAAS,uBAAA,GAA0B;AACxC,EAAA,OAAO,0CAAA;AACT","file":"chunk-6DP3KZQG.js","sourcesContent":["import clsx from 'clsx'\n\nimport type { RatingSize } from './Rating'\n\nconst circleSizeMap: Record<\n RatingSize,\n { size: number; stroke: number; fontSize: string }\n> = {\n sm: { size: 32, stroke: 3, fontSize: 'ui:text-xs' },\n md: { size: 48, stroke: 4, fontSize: 'ui:text-sm' },\n lg: { size: 64, stroke: 5, fontSize: 'ui:text-base' },\n}\n\nconst getColorClass = (percent: number): string => {\n if (percent >= 70) return 'ui:text-green-600'\n if (percent >= 40) return 'ui:text-amber-600'\n return 'ui:text-red-500'\n}\n\nexport interface CircleRatingProps {\n /** Percentage value (0-100) for the progress ring */\n percent: number\n /** Size of the rating circle */\n size: RatingSize\n /** Whether to display the numeric value in the center */\n showValue: boolean\n /** The actual rating value (used for display) */\n value: number\n /** Maximum rating value (used for display formatting) */\n max: number\n /** Custom class for the background track circle */\n trackClassName?: string\n}\n\nfunction CircleRating({\n percent,\n size,\n showValue,\n value,\n max,\n trackClassName,\n}: Readonly<CircleRatingProps>) {\n const { size: svgSize, stroke, fontSize } = circleSizeMap[size]\n const radius = (svgSize - stroke) / 2\n const circumference = 2 * Math.PI * radius\n const offset = circumference - (percent / 100) * circumference\n\n return (\n <div className=\"ui:relative ui:inline-flex ui:items-center ui:justify-center\">\n <svg width={svgSize} height={svgSize} className=\"ui:-rotate-90\">\n <circle\n cx={svgSize / 2}\n cy={svgSize / 2}\n r={radius}\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={stroke}\n className={trackClassName ?? 'ui:text-gray-200'}\n />\n <circle\n cx={svgSize / 2}\n cy={svgSize / 2}\n r={radius}\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth={stroke}\n strokeLinecap=\"round\"\n strokeDasharray={circumference}\n strokeDashoffset={offset}\n className={clsx(\n 'ui:transition-all ui:duration-500',\n getColorClass(percent)\n )}\n />\n </svg>\n {showValue && (\n <span\n className={clsx(\n 'ui:absolute ui:font-bold',\n fontSize,\n getColorClass(percent)\n )}\n >\n {max === 100 ? Math.round(percent) : value.toFixed(1)}\n </span>\n )}\n </div>\n )\n}\n\nexport default CircleRating\n","import clsx from 'clsx'\n\nimport { Icon } from '../Icon'\n\nimport type { IconSize } from '../Icon'\nimport type { RatingSize } from './Rating'\n\nconst starsSizeMap: Record<RatingSize, IconSize> = {\n sm: 16,\n md: 20,\n lg: 24,\n}\n\nexport interface StarsRatingProps {\n /** Percentage value (0-100) for the star fill */\n percent: number\n /** Size of the stars */\n size: RatingSize\n /** Whether to display the numeric value next to stars */\n showValue: boolean\n /** The actual rating value (used for display) */\n value: number\n /** Maximum rating value (used for display formatting) */\n max: number\n}\n\nfunction StarsRating({\n percent,\n size,\n showValue,\n value,\n max,\n}: Readonly<StarsRatingProps>) {\n const iconSize = starsSizeMap[size]\n\n return (\n <div className=\"ui:inline-flex ui:items-center ui:gap-1\">\n <div className=\"ui:relative\">\n {/* Empty stars */}\n <div className=\"ui:flex ui:text-gray-300\">\n {[1, 2, 3, 4, 5].map((i) => (\n <Icon key={i} name=\"Star\" size={iconSize} />\n ))}\n </div>\n {/* Filled stars with clip */}\n <div\n className=\"ui:absolute ui:inset-0 ui:flex ui:text-yellow-400\"\n style={{ clipPath: `inset(0 ${String(100 - percent)}% 0 0)` }}\n >\n {[1, 2, 3, 4, 5].map((i) => (\n <Icon key={i} name=\"Star\" size={iconSize} />\n ))}\n </div>\n </div>\n {showValue && (\n <span\n className={clsx(\n 'ui:font-medium ui:text-muted-foreground',\n size === 'sm' && 'ui:text-xs',\n size === 'md' && 'ui:text-sm',\n size === 'lg' && 'ui:text-base'\n )}\n >\n {max === 100 ? (value / 10).toFixed(1) : value.toFixed(1)}\n </span>\n )}\n </div>\n )\n}\n\nexport default StarsRating\n","import clsx from 'clsx'\n\nimport CircleRating from './CircleRating'\nimport StarsRating from './StarsRating'\n\nexport type RatingVariant = 'circle' | 'stars'\nexport type RatingSize = 'sm' | 'md' | 'lg'\n\nexport interface RatingProps {\n /** Rating value (0-10 by default, or 0-100 if max=100) */\n value: number\n /** Maximum value (default: 10 for TMDB scores) */\n max?: number\n /** Visual variant */\n variant?: RatingVariant\n /** Size of the rating */\n size?: RatingSize\n /** Show the numeric value */\n showValue?: boolean\n /** Custom class for the background track circle (circle variant only) */\n trackClassName?: string\n /** Additional class name */\n className?: string\n}\n\nfunction Rating({\n value,\n max = 10,\n variant = 'circle',\n size = 'md',\n showValue = true,\n trackClassName,\n className,\n}: Readonly<RatingProps>) {\n const clampedValue = Math.max(0, Math.min(value, max))\n const percent = (clampedValue / max) * 100\n\n return (\n <div className={clsx('ui:inline-flex', className)}>\n {variant === 'circle' ? (\n <CircleRating\n percent={percent}\n size={size}\n showValue={showValue}\n value={clampedValue}\n max={max}\n trackClassName={trackClassName}\n />\n ) : (\n <StarsRating\n percent={percent}\n size={size}\n showValue={showValue}\n value={clampedValue}\n max={max}\n />\n )}\n </div>\n )\n}\n\nexport default Rating\n","import clsx from 'clsx'\nimport { createElement } from 'react'\n\nimport type { ElementType, HTMLAttributes, ReactNode } from 'react'\n\nexport type TypographyVariant =\n | 'h1'\n | 'h2'\n | 'h3'\n | 'h4'\n | 'h5'\n | 'h6'\n | 'body'\n | 'body-sm'\n | 'body-lg'\n | 'lead'\n | 'caption'\n | 'caption-xs'\n | 'label'\n | 'muted'\n | 'blockquote'\n\nexport interface TypographyProps extends HTMLAttributes<HTMLElement> {\n /** Visual style variant */\n variant: TypographyVariant\n /** Override semantic HTML tag */\n as?: ElementType\n /** Additional CSS classes */\n className?: string\n /** Content */\n children: ReactNode\n}\n\nconst variantStyles: Record<TypographyVariant, string> = {\n h1: 'ui:font-roboto ui:text-xl ui:sm:text-2xl ui:md:text-3xl ui:lg:text-4xl ui:font-bold ui:leading-tight ui:text-foreground',\n h2: 'ui:font-roboto ui:text-lg ui:sm:text-xl ui:md:text-2xl ui:lg:text-3xl ui:font-bold ui:leading-tight ui:text-foreground',\n h3: 'ui:font-roboto ui:text-base ui:sm:text-lg ui:md:text-xl ui:lg:text-2xl ui:font-semibold ui:leading-snug ui:text-foreground',\n h4: 'ui:font-roboto ui:text-sm ui:sm:text-base ui:md:text-lg ui:lg:text-xl ui:font-semibold ui:leading-snug ui:text-foreground',\n h5: 'ui:font-roboto ui:text-sm ui:sm:text-base ui:md:text-lg ui:font-medium ui:leading-normal ui:text-foreground',\n h6: 'ui:font-roboto ui:text-xs ui:sm:text-sm ui:md:text-base ui:font-medium ui:leading-normal ui:text-foreground',\n body: 'ui:font-inter ui:text-xs ui:sm:text-sm ui:md:text-base ui:leading-relaxed ui:text-foreground',\n 'body-sm':\n 'ui:font-inter ui:text-xs ui:sm:text-sm ui:leading-relaxed ui:text-foreground',\n 'body-lg':\n 'ui:font-inter ui:text-sm ui:sm:text-base ui:md:text-lg ui:leading-relaxed ui:text-foreground',\n lead: 'ui:font-inter ui:text-sm ui:sm:text-base ui:md:text-lg ui:lg:text-xl ui:leading-relaxed ui:text-muted-foreground',\n caption: 'ui:font-inter ui:text-xs ui:sm:text-sm ui:text-muted-foreground',\n 'caption-xs': 'ui:font-inter ui:text-xs ui:text-muted-foreground',\n label:\n 'ui:font-inter ui:text-xs ui:sm:text-sm ui:font-medium ui:text-foreground',\n muted: 'ui:font-inter ui:text-xs ui:sm:text-sm ui:text-muted-foreground',\n blockquote:\n 'ui:font-inter ui:text-xs ui:sm:text-sm ui:md:text-base ui:border-l-4 ui:border-border ui:pl-4 ui:italic ui:text-muted-foreground',\n}\n\nconst variantToTag: Record<TypographyVariant, ElementType> = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n h6: 'h6',\n body: 'p',\n 'body-sm': 'p',\n 'body-lg': 'p',\n lead: 'p',\n caption: 'span',\n 'caption-xs': 'span',\n label: 'label',\n muted: 'p',\n blockquote: 'blockquote',\n}\n\nfunction Typography({\n variant,\n as,\n className,\n children,\n ...rest\n}: Readonly<TypographyProps>) {\n const Component = as ?? variantToTag[variant]\n\n return createElement(\n Component,\n { className: clsx(variantStyles[variant], className), ...rest },\n children\n )\n}\n\nexport default Typography\n","import clsx from 'clsx'\n\nimport type { ImageLoading } from '../Image'\n\nexport interface MovieCardBaseProps {\n /** Media ID */\n id: number\n /** Media title */\n title: string\n /** Poster URL (full URL or TMDB path) */\n posterUrl: string\n /** Vote average (0-10) */\n voteAverage: number\n /** Release year */\n year?: number | null\n /** Additional class name */\n className?: string\n /** Image loading strategy ('lazy' | 'eager'). Default: 'lazy' */\n imageLoading?: ImageLoading\n /** Base64 blur data URL for next/image placeholder=\"blur\" */\n blurDataURL?: string\n}\n\nexport interface MovieCardAsCard extends MovieCardBaseProps {\n as?: 'card' | undefined\n onClick?: never\n}\n\nexport interface MovieCardAsButton extends MovieCardBaseProps {\n as: 'button'\n onClick: () => void\n}\n\nexport function getMovieCardClasses(\n isInteractive: boolean,\n className?: string\n) {\n return clsx(\n 'ui:group ui:relative ui:flex ui:flex-col ui:overflow-hidden',\n isInteractive && [\n 'ui:cursor-pointer',\n 'ui:transition-transform ui:duration-200',\n 'hover:ui:scale-[1.02]',\n ],\n className\n )\n}\n\nexport function getMovieCardLinkClasses() {\n return 'ui:block ui:no-underline ui:text-inherit'\n}\n"]}
@@ -1,119 +0,0 @@
1
- import { XMarkIcon, UserIcon, StarIcon, PlusIcon, PlayIcon, MinusIcon, MagnifyingGlassIcon, LinkIcon, InformationCircleIcon, HeartIcon, ExclamationTriangleIcon, ExclamationCircleIcon, EllipsisVerticalIcon, ChevronUpIcon, ChevronRightIcon, ChevronLeftIcon, ChevronDownIcon, CheckIcon, CalendarIcon, BookmarkIcon, Bars3Icon, ArrowRightIcon, ArrowLeftIcon } from '@heroicons/react/16/solid';
2
- import { XMarkIcon as XMarkIcon$1, UsersIcon, UserIcon as UserIcon$1, TvIcon, StarIcon as StarIcon$1, ShareIcon, PlusIcon as PlusIcon$1, PlayCircleIcon, PlayIcon as PlayIcon$1, MinusIcon as MinusIcon$1, MagnifyingGlassIcon as MagnifyingGlassIcon$1, LinkIcon as LinkIcon$1, InformationCircleIcon as InformationCircleIcon$1, HeartIcon as HeartIcon$1, PhotoIcon, FilmIcon, ExclamationTriangleIcon as ExclamationTriangleIcon$1, ExclamationCircleIcon as ExclamationCircleIcon$1, EllipsisVerticalIcon as EllipsisVerticalIcon$1, ChevronUpIcon as ChevronUpIcon$1, ChevronRightIcon as ChevronRightIcon$1, ChevronLeftIcon as ChevronLeftIcon$1, ChevronDownIcon as ChevronDownIcon$1, CheckIcon as CheckIcon$1, CalendarIcon as CalendarIcon$1, BookmarkIcon as BookmarkIcon$1, Bars3Icon as Bars3Icon$1, ArrowTopRightOnSquareIcon, ArrowRightIcon as ArrowRightIcon$1, ArrowLeftIcon as ArrowLeftIcon$1 } from '@heroicons/react/20/solid';
3
- import { XMarkIcon as XMarkIcon$2, UsersIcon as UsersIcon$1, UserIcon as UserIcon$2, TvIcon as TvIcon$1, StarIcon as StarIcon$2, ShareIcon as ShareIcon$1, PlusIcon as PlusIcon$2, PlayCircleIcon as PlayCircleIcon$1, PlayIcon as PlayIcon$2, MinusIcon as MinusIcon$2, MagnifyingGlassIcon as MagnifyingGlassIcon$2, LinkIcon as LinkIcon$2, InformationCircleIcon as InformationCircleIcon$2, HeartIcon as HeartIcon$2, PhotoIcon as PhotoIcon$1, FilmIcon as FilmIcon$1, ExclamationTriangleIcon as ExclamationTriangleIcon$2, ExclamationCircleIcon as ExclamationCircleIcon$2, EllipsisVerticalIcon as EllipsisVerticalIcon$2, ChevronUpIcon as ChevronUpIcon$2, ChevronRightIcon as ChevronRightIcon$2, ChevronLeftIcon as ChevronLeftIcon$2, ChevronDownIcon as ChevronDownIcon$2, CheckIcon as CheckIcon$2, CalendarIcon as CalendarIcon$2, BookmarkIcon as BookmarkIcon$2, Bars3Icon as Bars3Icon$2, ArrowTopRightOnSquareIcon as ArrowTopRightOnSquareIcon$1, ArrowRightIcon as ArrowRightIcon$2, ArrowLeftIcon as ArrowLeftIcon$2 } from '@heroicons/react/24/outline';
4
- import { jsx } from 'react/jsx-runtime';
5
-
6
- var iconMap24 = {
7
- ArrowLeft: ArrowLeftIcon$2,
8
- ArrowRight: ArrowRightIcon$2,
9
- ArrowTopRightOnSquare: ArrowTopRightOnSquareIcon$1,
10
- Bars3: Bars3Icon$2,
11
- Bookmark: BookmarkIcon$2,
12
- Calendar: CalendarIcon$2,
13
- Check: CheckIcon$2,
14
- ChevronDown: ChevronDownIcon$2,
15
- ChevronLeft: ChevronLeftIcon$2,
16
- ChevronRight: ChevronRightIcon$2,
17
- ChevronUp: ChevronUpIcon$2,
18
- EllipsisVertical: EllipsisVerticalIcon$2,
19
- ExclamationCircle: ExclamationCircleIcon$2,
20
- ExclamationTriangle: ExclamationTriangleIcon$2,
21
- Film: FilmIcon$1,
22
- Photo: PhotoIcon$1,
23
- Heart: HeartIcon$2,
24
- InformationCircle: InformationCircleIcon$2,
25
- Link: LinkIcon$2,
26
- MagnifyingGlass: MagnifyingGlassIcon$2,
27
- Minus: MinusIcon$2,
28
- Play: PlayIcon$2,
29
- PlayCircle: PlayCircleIcon$1,
30
- Plus: PlusIcon$2,
31
- Share: ShareIcon$1,
32
- Star: StarIcon$2,
33
- Tv: TvIcon$1,
34
- User: UserIcon$2,
35
- Users: UsersIcon$1,
36
- XMark: XMarkIcon$2
37
- };
38
- var iconMap20 = {
39
- ArrowLeft: ArrowLeftIcon$1,
40
- ArrowRight: ArrowRightIcon$1,
41
- ArrowTopRightOnSquare: ArrowTopRightOnSquareIcon,
42
- Bars3: Bars3Icon$1,
43
- Bookmark: BookmarkIcon$1,
44
- Calendar: CalendarIcon$1,
45
- Check: CheckIcon$1,
46
- ChevronDown: ChevronDownIcon$1,
47
- ChevronLeft: ChevronLeftIcon$1,
48
- ChevronRight: ChevronRightIcon$1,
49
- ChevronUp: ChevronUpIcon$1,
50
- EllipsisVertical: EllipsisVerticalIcon$1,
51
- ExclamationCircle: ExclamationCircleIcon$1,
52
- ExclamationTriangle: ExclamationTriangleIcon$1,
53
- Film: FilmIcon,
54
- Photo: PhotoIcon,
55
- Heart: HeartIcon$1,
56
- InformationCircle: InformationCircleIcon$1,
57
- Link: LinkIcon$1,
58
- MagnifyingGlass: MagnifyingGlassIcon$1,
59
- Minus: MinusIcon$1,
60
- Play: PlayIcon$1,
61
- PlayCircle: PlayCircleIcon,
62
- Plus: PlusIcon$1,
63
- Share: ShareIcon,
64
- Star: StarIcon$1,
65
- Tv: TvIcon,
66
- User: UserIcon$1,
67
- Users: UsersIcon,
68
- XMark: XMarkIcon$1
69
- };
70
- var iconMap16 = {
71
- ArrowLeft: ArrowLeftIcon,
72
- ArrowRight: ArrowRightIcon,
73
- Bars3: Bars3Icon,
74
- Bookmark: BookmarkIcon,
75
- Calendar: CalendarIcon,
76
- Check: CheckIcon,
77
- ChevronDown: ChevronDownIcon,
78
- ChevronLeft: ChevronLeftIcon,
79
- ChevronRight: ChevronRightIcon,
80
- ChevronUp: ChevronUpIcon,
81
- EllipsisVertical: EllipsisVerticalIcon,
82
- ExclamationCircle: ExclamationCircleIcon,
83
- ExclamationTriangle: ExclamationTriangleIcon,
84
- Heart: HeartIcon,
85
- InformationCircle: InformationCircleIcon,
86
- Link: LinkIcon,
87
- MagnifyingGlass: MagnifyingGlassIcon,
88
- Minus: MinusIcon,
89
- Play: PlayIcon,
90
- Plus: PlusIcon,
91
- Star: StarIcon,
92
- User: UserIcon,
93
- XMark: XMarkIcon
94
- };
95
- function Icon({ name, size = 24, className, ...rest }) {
96
- let IconComponent;
97
- if (size <= 16) {
98
- IconComponent = iconMap16[name] ?? iconMap20[name];
99
- } else if (size <= 20) {
100
- IconComponent = iconMap20[name];
101
- } else {
102
- IconComponent = iconMap24[name];
103
- }
104
- return /* @__PURE__ */ jsx(
105
- IconComponent,
106
- {
107
- className,
108
- width: size,
109
- height: size,
110
- ...rest,
111
- "aria-hidden": true
112
- }
113
- );
114
- }
115
- var Icon_default = Icon;
116
-
117
- export { Icon_default };
118
- //# sourceMappingURL=chunk-6FBMTGXQ.js.map
119
- //# sourceMappingURL=chunk-6FBMTGXQ.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/Icon/Icon.tsx"],"names":["ArrowLeftIcon24","ArrowRightIcon24","ArrowTopRightOnSquareIcon24","Bars3Icon24","BookmarkIcon24","CalendarIcon24","CheckIcon24","ChevronDownIcon24","ChevronLeftIcon24","ChevronRightIcon24","ChevronUpIcon24","EllipsisVerticalIcon24","ExclamationCircleIcon24","ExclamationTriangleIcon24","FilmIcon24","PhotoIcon24","HeartIcon24","InformationCircleIcon24","LinkIcon24","MagnifyingGlassIcon24","MinusIcon24","PlayIcon24","PlayCircleIcon24","PlusIcon24","ShareIcon24","StarIcon24","TvIcon24","UserIcon24","UsersIcon24","XMarkIcon24","ArrowLeftIcon20","ArrowRightIcon20","ArrowTopRightOnSquareIcon20","Bars3Icon20","BookmarkIcon20","CalendarIcon20","CheckIcon20","ChevronDownIcon20","ChevronLeftIcon20","ChevronRightIcon20","ChevronUpIcon20","EllipsisVerticalIcon20","ExclamationCircleIcon20","ExclamationTriangleIcon20","FilmIcon20","PhotoIcon20","HeartIcon20","InformationCircleIcon20","LinkIcon20","MagnifyingGlassIcon20","MinusIcon20","PlayIcon20","PlayCircleIcon20","PlusIcon20","ShareIcon20","StarIcon20","TvIcon20","UserIcon20","UsersIcon20","XMarkIcon20","ArrowLeftIcon16","ArrowRightIcon16","Bars3Icon16","BookmarkIcon16","CalendarIcon16","CheckIcon16","ChevronDownIcon16","ChevronLeftIcon16","ChevronRightIcon16","ChevronUpIcon16","EllipsisVerticalIcon16","ExclamationCircleIcon16","ExclamationTriangleIcon16","HeartIcon16","InformationCircleIcon16","LinkIcon16","MagnifyingGlassIcon16","MinusIcon16","PlayIcon16","PlusIcon16","StarIcon16","UserIcon16","XMarkIcon16"],"mappings":"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","file":"chunk-6FBMTGXQ.js","sourcesContent":["import {\n ArrowLeftIcon as ArrowLeftIcon16,\n ArrowRightIcon as ArrowRightIcon16,\n Bars3Icon as Bars3Icon16,\n BookmarkIcon as BookmarkIcon16,\n CalendarIcon as CalendarIcon16,\n CheckIcon as CheckIcon16,\n ChevronDownIcon as ChevronDownIcon16,\n ChevronLeftIcon as ChevronLeftIcon16,\n ChevronRightIcon as ChevronRightIcon16,\n ChevronUpIcon as ChevronUpIcon16,\n EllipsisVerticalIcon as EllipsisVerticalIcon16,\n ExclamationCircleIcon as ExclamationCircleIcon16,\n ExclamationTriangleIcon as ExclamationTriangleIcon16,\n HeartIcon as HeartIcon16,\n InformationCircleIcon as InformationCircleIcon16,\n LinkIcon as LinkIcon16,\n MagnifyingGlassIcon as MagnifyingGlassIcon16,\n MinusIcon as MinusIcon16,\n PlayIcon as PlayIcon16,\n PlusIcon as PlusIcon16,\n StarIcon as StarIcon16,\n UserIcon as UserIcon16,\n XMarkIcon as XMarkIcon16,\n} from '@heroicons/react/16/solid'\nimport {\n ArrowLeftIcon as ArrowLeftIcon20,\n ArrowRightIcon as ArrowRightIcon20,\n ArrowTopRightOnSquareIcon as ArrowTopRightOnSquareIcon20,\n Bars3Icon as Bars3Icon20,\n BookmarkIcon as BookmarkIcon20,\n CalendarIcon as CalendarIcon20,\n CheckIcon as CheckIcon20,\n ChevronDownIcon as ChevronDownIcon20,\n ChevronLeftIcon as ChevronLeftIcon20,\n ChevronRightIcon as ChevronRightIcon20,\n ChevronUpIcon as ChevronUpIcon20,\n EllipsisVerticalIcon as EllipsisVerticalIcon20,\n ExclamationCircleIcon as ExclamationCircleIcon20,\n ExclamationTriangleIcon as ExclamationTriangleIcon20,\n FilmIcon as FilmIcon20,\n HeartIcon as HeartIcon20,\n InformationCircleIcon as InformationCircleIcon20,\n LinkIcon as LinkIcon20,\n MagnifyingGlassIcon as MagnifyingGlassIcon20,\n MinusIcon as MinusIcon20,\n PhotoIcon as PhotoIcon20,\n PlayCircleIcon as PlayCircleIcon20,\n PlayIcon as PlayIcon20,\n PlusIcon as PlusIcon20,\n ShareIcon as ShareIcon20,\n StarIcon as StarIcon20,\n TvIcon as TvIcon20,\n UserIcon as UserIcon20,\n UsersIcon as UsersIcon20,\n XMarkIcon as XMarkIcon20,\n} from '@heroicons/react/20/solid'\nimport {\n ArrowLeftIcon as ArrowLeftIcon24,\n ArrowRightIcon as ArrowRightIcon24,\n ArrowTopRightOnSquareIcon as ArrowTopRightOnSquareIcon24,\n Bars3Icon as Bars3Icon24,\n BookmarkIcon as BookmarkIcon24,\n CalendarIcon as CalendarIcon24,\n CheckIcon as CheckIcon24,\n ChevronDownIcon as ChevronDownIcon24,\n ChevronLeftIcon as ChevronLeftIcon24,\n ChevronRightIcon as ChevronRightIcon24,\n ChevronUpIcon as ChevronUpIcon24,\n EllipsisVerticalIcon as EllipsisVerticalIcon24,\n ExclamationCircleIcon as ExclamationCircleIcon24,\n ExclamationTriangleIcon as ExclamationTriangleIcon24,\n FilmIcon as FilmIcon24,\n HeartIcon as HeartIcon24,\n InformationCircleIcon as InformationCircleIcon24,\n LinkIcon as LinkIcon24,\n MagnifyingGlassIcon as MagnifyingGlassIcon24,\n MinusIcon as MinusIcon24,\n PhotoIcon as PhotoIcon24,\n PlayCircleIcon as PlayCircleIcon24,\n PlayIcon as PlayIcon24,\n PlusIcon as PlusIcon24,\n ShareIcon as ShareIcon24,\n StarIcon as StarIcon24,\n TvIcon as TvIcon24,\n UserIcon as UserIcon24,\n UsersIcon as UsersIcon24,\n XMarkIcon as XMarkIcon24,\n} from '@heroicons/react/24/outline'\n\nimport type { ComponentType, SVGProps } from 'react'\n\ntype HeroIcon = ComponentType<SVGProps<SVGSVGElement>>\n\nconst iconMap24: Record<string, HeroIcon> = {\n ArrowLeft: ArrowLeftIcon24,\n ArrowRight: ArrowRightIcon24,\n ArrowTopRightOnSquare: ArrowTopRightOnSquareIcon24,\n Bars3: Bars3Icon24,\n Bookmark: BookmarkIcon24,\n Calendar: CalendarIcon24,\n Check: CheckIcon24,\n ChevronDown: ChevronDownIcon24,\n ChevronLeft: ChevronLeftIcon24,\n ChevronRight: ChevronRightIcon24,\n ChevronUp: ChevronUpIcon24,\n EllipsisVertical: EllipsisVerticalIcon24,\n ExclamationCircle: ExclamationCircleIcon24,\n ExclamationTriangle: ExclamationTriangleIcon24,\n Film: FilmIcon24,\n Photo: PhotoIcon24,\n Heart: HeartIcon24,\n InformationCircle: InformationCircleIcon24,\n Link: LinkIcon24,\n MagnifyingGlass: MagnifyingGlassIcon24,\n Minus: MinusIcon24,\n Play: PlayIcon24,\n PlayCircle: PlayCircleIcon24,\n Plus: PlusIcon24,\n Share: ShareIcon24,\n Star: StarIcon24,\n Tv: TvIcon24,\n User: UserIcon24,\n Users: UsersIcon24,\n XMark: XMarkIcon24,\n}\n\nconst iconMap20: Record<string, HeroIcon> = {\n ArrowLeft: ArrowLeftIcon20,\n ArrowRight: ArrowRightIcon20,\n ArrowTopRightOnSquare: ArrowTopRightOnSquareIcon20,\n Bars3: Bars3Icon20,\n Bookmark: BookmarkIcon20,\n Calendar: CalendarIcon20,\n Check: CheckIcon20,\n ChevronDown: ChevronDownIcon20,\n ChevronLeft: ChevronLeftIcon20,\n ChevronRight: ChevronRightIcon20,\n ChevronUp: ChevronUpIcon20,\n EllipsisVertical: EllipsisVerticalIcon20,\n ExclamationCircle: ExclamationCircleIcon20,\n ExclamationTriangle: ExclamationTriangleIcon20,\n Film: FilmIcon20,\n Photo: PhotoIcon20,\n Heart: HeartIcon20,\n InformationCircle: InformationCircleIcon20,\n Link: LinkIcon20,\n MagnifyingGlass: MagnifyingGlassIcon20,\n Minus: MinusIcon20,\n Play: PlayIcon20,\n PlayCircle: PlayCircleIcon20,\n Plus: PlusIcon20,\n Share: ShareIcon20,\n Star: StarIcon20,\n Tv: TvIcon20,\n User: UserIcon20,\n Users: UsersIcon20,\n XMark: XMarkIcon20,\n}\n\nconst iconMap16: Record<string, HeroIcon> = {\n ArrowLeft: ArrowLeftIcon16,\n ArrowRight: ArrowRightIcon16,\n Bars3: Bars3Icon16,\n Bookmark: BookmarkIcon16,\n Calendar: CalendarIcon16,\n Check: CheckIcon16,\n ChevronDown: ChevronDownIcon16,\n ChevronLeft: ChevronLeftIcon16,\n ChevronRight: ChevronRightIcon16,\n ChevronUp: ChevronUpIcon16,\n EllipsisVertical: EllipsisVerticalIcon16,\n ExclamationCircle: ExclamationCircleIcon16,\n ExclamationTriangle: ExclamationTriangleIcon16,\n Heart: HeartIcon16,\n InformationCircle: InformationCircleIcon16,\n Link: LinkIcon16,\n MagnifyingGlass: MagnifyingGlassIcon16,\n Minus: MinusIcon16,\n Play: PlayIcon16,\n Plus: PlusIcon16,\n Star: StarIcon16,\n User: UserIcon16,\n XMark: XMarkIcon16,\n}\n\nexport type IconName =\n | 'ArrowLeft'\n | 'ArrowRight'\n | 'ArrowTopRightOnSquare'\n | 'Bars3'\n | 'Bookmark'\n | 'Check'\n | 'Calendar'\n | 'ChevronDown'\n | 'ChevronLeft'\n | 'ChevronRight'\n | 'ChevronUp'\n | 'EllipsisVertical'\n | 'ExclamationCircle'\n | 'ExclamationTriangle'\n | 'Film'\n | 'Photo'\n | 'Heart'\n | 'InformationCircle'\n | 'Link'\n | 'MagnifyingGlass'\n | 'Minus'\n | 'Play'\n | 'PlayCircle'\n | 'Plus'\n | 'Share'\n | 'Star'\n | 'Tv'\n | 'User'\n | 'Users'\n | 'XMark'\n\nexport type IconSize = 16 | 20 | 24 | 32 | 48 | 64\n\nexport interface IconProps extends SVGProps<SVGSVGElement> {\n /** Icon name from the available subset */\n name: IconName\n /** Icon size in pixels (16, 20, 24, 32, 48, 64) */\n size?: IconSize\n}\n\nfunction Icon({ name, size = 24, className, ...rest }: Readonly<IconProps>) {\n let IconComponent: HeroIcon\n\n if (size <= 16) {\n IconComponent = iconMap16[name] ?? iconMap20[name]\n } else if (size <= 20) {\n IconComponent = iconMap20[name]\n } else {\n IconComponent = iconMap24[name]\n }\n\n return (\n <IconComponent\n className={className}\n width={size}\n height={size}\n {...rest}\n aria-hidden\n />\n )\n}\n\nexport default Icon\n"]}