@vite-mf-monorepo/ui 0.0.3 → 0.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.
package/dist/index.js CHANGED
@@ -1,9 +1,9 @@
1
- import { Button_default } from './chunk-IXEILQNO.js';
2
- export { Button_default as Button } from './chunk-IXEILQNO.js';
3
- import { Card_default } from './chunk-YKNVY2QQ.js';
4
- export { Card_default as Card } from './chunk-YKNVY2QQ.js';
5
- import { Icon_default } from './chunk-Z3E2P4JR.js';
6
- export { Icon_default as Icon } from './chunk-Z3E2P4JR.js';
1
+ import { Button_default } from './chunk-GNBS5RLB.js';
2
+ export { Button_default as Button } from './chunk-GNBS5RLB.js';
3
+ import { Card_default } from './chunk-JI3OVXCK.js';
4
+ export { Card_default as Card } from './chunk-JI3OVXCK.js';
5
+ import { Icon_default } from './chunk-JHRISQQJ.js';
6
+ export { Icon_default as Icon } from './chunk-JHRISQQJ.js';
7
7
  import clsx15 from 'clsx';
8
8
  import { createContext, useState, useRef, useEffect, useCallback, createElement, useLayoutEffect, useContext } from 'react';
9
9
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
@@ -19,7 +19,7 @@ var sizeMap = {
19
19
  "2xl": { container: "ui:h-24 ui:w-24", icon: 48, text: "ui:text-2xl" },
20
20
  "3xl": { container: "ui:h-32 ui:w-32", icon: 64, text: "ui:text-3xl" }
21
21
  };
22
- var Avatar = ({
22
+ function Avatar({
23
23
  className,
24
24
  src,
25
25
  alt,
@@ -27,7 +27,7 @@ var Avatar = ({
27
27
  initials,
28
28
  testId,
29
29
  ...rest
30
- }) => {
30
+ }) {
31
31
  const [hasError, setHasError] = useState(false);
32
32
  const { container, icon, text } = sizeMap[size];
33
33
  const showImage = src && !hasError;
@@ -62,21 +62,21 @@ var Avatar = ({
62
62
  ]
63
63
  }
64
64
  );
65
- };
65
+ }
66
66
  var Avatar_default = Avatar;
67
67
  var sizeMap2 = {
68
68
  sm: { padding: "ui:px-2 ui:py-0.5", text: "ui:text-xs", iconSize: 16 },
69
69
  md: { padding: "ui:px-2.5 ui:py-0.5", text: "ui:text-sm", iconSize: 16 },
70
70
  lg: { padding: "ui:px-3 ui:py-1", text: "ui:text-sm", iconSize: 16 }
71
71
  };
72
- var Badge = ({
72
+ function Badge({
73
73
  children,
74
74
  variant = "default",
75
75
  size = "md",
76
76
  icon,
77
77
  textClassName,
78
78
  className
79
- }) => {
79
+ }) {
80
80
  const { padding, text, iconSize } = sizeMap2[size];
81
81
  return /* @__PURE__ */ jsxs(
82
82
  "span",
@@ -103,21 +103,21 @@ var Badge = ({
103
103
  ]
104
104
  }
105
105
  );
106
- };
106
+ }
107
107
  var Badge_default = Badge;
108
108
  var sizeMap3 = {
109
109
  sm: { button: "ui:h-8 ui:w-8", icon: 16 },
110
110
  md: { button: "ui:h-10 ui:w-10", icon: 20 },
111
111
  lg: { button: "ui:h-12 ui:w-12", icon: 24 }
112
112
  };
113
- var IconButton = ({
113
+ function IconButton({
114
114
  className,
115
115
  icon,
116
116
  variant = "ghost",
117
117
  size = "md",
118
118
  disabled,
119
119
  ...rest
120
- }) => {
120
+ }) {
121
121
  const { button: buttonSize, icon: iconSize } = sizeMap3[size];
122
122
  return /* @__PURE__ */ jsx(
123
123
  "button",
@@ -140,9 +140,9 @@ var IconButton = ({
140
140
  children: /* @__PURE__ */ jsx(Icon_default, { name: icon, size: iconSize })
141
141
  }
142
142
  );
143
- };
143
+ }
144
144
  var IconButton_default = IconButton;
145
- var Image = ({
145
+ function Image({
146
146
  src,
147
147
  alt,
148
148
  blurDataUrl,
@@ -156,7 +156,7 @@ var Image = ({
156
156
  onError,
157
157
  loading = "eager",
158
158
  ...rest
159
- }) => {
159
+ }) {
160
160
  const imgRef = useRef(null);
161
161
  const containerRef = useRef(null);
162
162
  const [state, setState] = useState("loading");
@@ -256,9 +256,9 @@ var Image = ({
256
256
  ] })
257
257
  }
258
258
  );
259
- };
259
+ }
260
260
  var Image_default = Image;
261
- var Skeleton = ({
261
+ function Skeleton({
262
262
  variant = "rectangle",
263
263
  width,
264
264
  height,
@@ -266,7 +266,7 @@ var Skeleton = ({
266
266
  rounded = true,
267
267
  className,
268
268
  ...rest
269
- }) => {
269
+ }) {
270
270
  return /* @__PURE__ */ jsx(
271
271
  "div",
272
272
  {
@@ -286,9 +286,9 @@ var Skeleton = ({
286
286
  ...rest
287
287
  }
288
288
  );
289
- };
289
+ }
290
290
  var Skeleton_default = Skeleton;
291
- var HeroImage = ({ backdropPath, title }) => {
291
+ function HeroImage({ backdropPath, title }) {
292
292
  const [loading, setLoading] = useState(true);
293
293
  const backdropPathMobile = backdropPath ? getOptimizedImageUrl(backdropPath, "w300", 60) : void 0;
294
294
  const backdropPathTablet = backdropPath ? getOptimizedImageUrl(backdropPath, "w300", 60) : void 0;
@@ -325,16 +325,16 @@ var HeroImage = ({ backdropPath, title }) => {
325
325
  ] }),
326
326
  /* @__PURE__ */ jsx("div", { className: "ui:absolute ui:inset-0 ui:bg-gradient-to-t ui:from-black/80 ui:via-black/40 ui:to-transparent ui:z-1 ui:top-0 ui:left-0 ui:right-0 ui:bottom-0" })
327
327
  ] });
328
- };
328
+ }
329
329
  var HeroImage_default = HeroImage;
330
- var Modal = ({
330
+ function Modal({
331
331
  isOpen,
332
332
  onClose,
333
333
  children,
334
334
  "aria-label": ariaLabel,
335
335
  className,
336
336
  onOverlayClick
337
- }) => {
337
+ }) {
338
338
  const ref = useRef(null);
339
339
  useEffect(() => {
340
340
  const dialog = ref.current;
@@ -373,7 +373,7 @@ var Modal = ({
373
373
  children
374
374
  }
375
375
  );
376
- };
376
+ }
377
377
  var Modal_default = Modal;
378
378
  var circleSizeMap = {
379
379
  sm: { size: 32, stroke: 3, fontSize: "ui:text-xs" },
@@ -385,14 +385,14 @@ var getColorClass = (percent) => {
385
385
  if (percent >= 40) return "ui:text-amber-600";
386
386
  return "ui:text-red-500";
387
387
  };
388
- var CircleRating = ({
388
+ function CircleRating({
389
389
  percent,
390
390
  size,
391
391
  showValue,
392
392
  value,
393
393
  max,
394
394
  trackClassName
395
- }) => {
395
+ }) {
396
396
  const { size: svgSize, stroke, fontSize } = circleSizeMap[size];
397
397
  const radius = (svgSize - stroke) / 2;
398
398
  const circumference = 2 * Math.PI * radius;
@@ -442,20 +442,20 @@ var CircleRating = ({
442
442
  }
443
443
  )
444
444
  ] });
445
- };
445
+ }
446
446
  var CircleRating_default = CircleRating;
447
447
  var starsSizeMap = {
448
448
  sm: 16,
449
449
  md: 20,
450
450
  lg: 24
451
451
  };
452
- var StarsRating = ({
452
+ function StarsRating({
453
453
  percent,
454
454
  size,
455
455
  showValue,
456
456
  value,
457
457
  max
458
- }) => {
458
+ }) {
459
459
  const iconSize = starsSizeMap[size];
460
460
  return /* @__PURE__ */ jsxs("div", { className: "ui:inline-flex ui:items-center ui:gap-1", children: [
461
461
  /* @__PURE__ */ jsxs("div", { className: "ui:relative", children: [
@@ -482,9 +482,9 @@ var StarsRating = ({
482
482
  }
483
483
  )
484
484
  ] });
485
- };
485
+ }
486
486
  var StarsRating_default = StarsRating;
487
- var Rating = ({
487
+ function Rating({
488
488
  value,
489
489
  max = 10,
490
490
  variant = "circle",
@@ -492,7 +492,7 @@ var Rating = ({
492
492
  showValue = true,
493
493
  trackClassName,
494
494
  className
495
- }) => {
495
+ }) {
496
496
  const clampedValue = Math.max(0, Math.min(value, max));
497
497
  const percent = clampedValue / max * 100;
498
498
  return /* @__PURE__ */ jsx("div", { className: clsx15("ui:inline-flex", className), children: variant === "circle" ? /* @__PURE__ */ jsx(
@@ -515,7 +515,7 @@ var Rating = ({
515
515
  max
516
516
  }
517
517
  ) });
518
- };
518
+ }
519
519
  var Rating_default = Rating;
520
520
  var variantStyles = {
521
521
  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",
@@ -551,22 +551,22 @@ var variantToTag = {
551
551
  muted: "p",
552
552
  blockquote: "blockquote"
553
553
  };
554
- var Typography = ({
554
+ function Typography({
555
555
  variant,
556
556
  as,
557
557
  className,
558
558
  children,
559
559
  ...rest
560
- }) => {
560
+ }) {
561
561
  const Component = as ?? variantToTag[variant];
562
562
  return createElement(
563
563
  Component,
564
564
  { className: clsx15(variantStyles[variant], className), ...rest },
565
565
  children
566
566
  );
567
- };
567
+ }
568
568
  var Typography_default = Typography;
569
- var MovieCard = ({
569
+ function MovieCard({
570
570
  id,
571
571
  title,
572
572
  posterUrl,
@@ -576,7 +576,7 @@ var MovieCard = ({
576
576
  imageLoading = "lazy",
577
577
  as = "card",
578
578
  ...rest
579
- }) => {
579
+ }) {
580
580
  const to = "to" in rest ? rest.to : void 0;
581
581
  const onClick = "onClick" in rest ? rest.onClick : void 0;
582
582
  const isInteractive = as === "link" || as === "button";
@@ -645,14 +645,14 @@ var MovieCard = ({
645
645
  return /* @__PURE__ */ jsx(Link, { to, className: "ui:block ui:no-underline ui:text-inherit", children: cardContent });
646
646
  }
647
647
  return cardContent;
648
- };
648
+ }
649
649
  var MovieCard_default = MovieCard;
650
- var TrailerCard = ({
650
+ function TrailerCard({
651
651
  videoKey,
652
652
  title,
653
653
  type = "Trailer",
654
654
  className
655
- }) => {
655
+ }) {
656
656
  const [isPlaying, setIsPlaying] = useState(false);
657
657
  const thumbnailUrl = `https://img.youtube.com/vi/${videoKey}/hqdefault.jpg`;
658
658
  return /* @__PURE__ */ jsxs(Fragment, { children: [
@@ -722,13 +722,13 @@ var TrailerCard = ({
722
722
  }
723
723
  )
724
724
  ] });
725
- };
725
+ }
726
726
  var TrailerCard_default = TrailerCard;
727
- var CarouselCounter = ({
727
+ function CarouselCounter({
728
728
  current,
729
729
  total,
730
730
  className
731
- }) => {
731
+ }) {
732
732
  return /* @__PURE__ */ jsxs(
733
733
  "div",
734
734
  {
@@ -744,11 +744,11 @@ var CarouselCounter = ({
744
744
  ]
745
745
  }
746
746
  );
747
- };
747
+ }
748
748
  var CarouselCounter_default = CarouselCounter;
749
- var CarouselError = ({
749
+ function CarouselError({
750
750
  message = "Failed to load data"
751
- }) => {
751
+ }) {
752
752
  return /* @__PURE__ */ jsxs("div", { className: "ui:flex ui:flex-col ui:items-center ui:justify-center ui:gap-3 ui:rounded-lg ui:border ui:border-red-200 ui:bg-red-50 ui:p-8 ui:text-center", children: [
753
753
  /* @__PURE__ */ jsx(Icon_default, { name: "ExclamationTriangle", size: 48, className: "ui:text-red-500" }),
754
754
  /* @__PURE__ */ jsxs("div", { className: "ui:flex ui:flex-col ui:gap-1", children: [
@@ -756,9 +756,9 @@ var CarouselError = ({
756
756
  /* @__PURE__ */ jsx("p", { className: "ui:text-sm ui:text-red-700", children: message })
757
757
  ] })
758
758
  ] });
759
- };
759
+ }
760
760
  var CarouselError_default = CarouselError;
761
- var CarouselNavigation = ({
761
+ function CarouselNavigation({
762
762
  onPrev,
763
763
  onNext,
764
764
  canPrev,
@@ -767,7 +767,7 @@ var CarouselNavigation = ({
767
767
  position = "inline",
768
768
  iconVariant = "secondary",
769
769
  className
770
- }) => {
770
+ }) {
771
771
  if (position === "sides") {
772
772
  return /* @__PURE__ */ jsxs(Fragment, { children: [
773
773
  /* @__PURE__ */ jsx("div", { className: "ui:absolute ui:left-0 ui:top-1/2 ui:-translate-x-1/2 ui:-translate-y-1/2", children: /* @__PURE__ */ jsx(
@@ -846,14 +846,14 @@ var CarouselNavigation = ({
846
846
  }
847
847
  )
848
848
  ] });
849
- };
849
+ }
850
850
  var CarouselNavigation_default = CarouselNavigation;
851
- var CarouselPagination = ({
851
+ function CarouselPagination({
852
852
  total,
853
853
  current,
854
854
  light = false,
855
855
  className
856
- }) => {
856
+ }) {
857
857
  if (total === 0) return null;
858
858
  return /* @__PURE__ */ jsx("div", { className: clsx15("ui:flex ui:items-center ui:gap-2", className), children: Array.from({ length: total }).map((_, index) => /* @__PURE__ */ jsx(
859
859
  "div",
@@ -869,9 +869,9 @@ var CarouselPagination = ({
869
869
  },
870
870
  index
871
871
  )) });
872
- };
872
+ }
873
873
  var CarouselPagination_default = CarouselPagination;
874
- var Carousel = ({
874
+ function Carousel({
875
875
  children,
876
876
  variant = "standard",
877
877
  showPagination = true,
@@ -887,7 +887,7 @@ var Carousel = ({
887
887
  onNext,
888
888
  disableAnimation = false,
889
889
  disableScroll = false
890
- }) => {
890
+ }) {
891
891
  const scrollRef = useRef(null);
892
892
  const [totalPositions, setTotalPositions] = useState(1);
893
893
  const [scrollIndex, setScrollIndex] = useState(initialIndex ?? 0);
@@ -1120,15 +1120,15 @@ var Carousel = ({
1120
1120
  }
1121
1121
  )
1122
1122
  ] });
1123
- };
1123
+ }
1124
1124
  var Carousel_default = Carousel;
1125
- var CarouselItem = ({
1125
+ function CarouselItem({
1126
1126
  children,
1127
1127
  isHero = false,
1128
1128
  isLightbox = false,
1129
1129
  className,
1130
1130
  ...rest
1131
- }) => {
1131
+ }) {
1132
1132
  return /* @__PURE__ */ jsx(
1133
1133
  "div",
1134
1134
  {
@@ -1142,16 +1142,16 @@ var CarouselItem = ({
1142
1142
  children
1143
1143
  }
1144
1144
  );
1145
- };
1145
+ }
1146
1146
  var CarouselItem_default = CarouselItem;
1147
- var CarouselLoading = ({
1147
+ function CarouselLoading({
1148
1148
  count = 6,
1149
1149
  cardWidth = 150,
1150
1150
  cardHeight = 225,
1151
1151
  showTitle = true,
1152
1152
  showSubtitle = true,
1153
1153
  rounded = true
1154
- }) => {
1154
+ }) {
1155
1155
  return /* @__PURE__ */ jsx("div", { className: "ui:overflow-x-auto ui:flex ui:gap-4", children: Array.from({ length: count }).map((_, i) => /* @__PURE__ */ jsxs(
1156
1156
  "div",
1157
1157
  {
@@ -1199,7 +1199,7 @@ var CarouselLoading = ({
1199
1199
  },
1200
1200
  i
1201
1201
  )) });
1202
- };
1202
+ }
1203
1203
  var CarouselLoading_default = CarouselLoading;
1204
1204
  var TabsContext = createContext(
1205
1205
  void 0
@@ -1221,7 +1221,7 @@ var useTabsListContext = () => {
1221
1221
  }
1222
1222
  return context;
1223
1223
  };
1224
- var TabsList = ({ className, children, ...rest }) => {
1224
+ function TabsList({ className, children, ...rest }) {
1225
1225
  const { variant } = useTabsContext();
1226
1226
  const triggersRef = useRef([]);
1227
1227
  const disabledRef = useRef(/* @__PURE__ */ new Set());
@@ -1261,9 +1261,9 @@ var TabsList = ({ className, children, ...rest }) => {
1261
1261
  )
1262
1262
  }
1263
1263
  );
1264
- };
1264
+ }
1265
1265
  var TabsList_default = TabsList;
1266
- var TabsPanel = ({ value, children, ...rest }) => {
1266
+ function TabsPanel({ value, children, ...rest }) {
1267
1267
  const { value: activeValue, prefix } = useTabsContext();
1268
1268
  const isActive = value === activeValue;
1269
1269
  const getTabId = (val) => prefix ? `tab-${prefix}-${val}` : `tab-${val}`;
@@ -1280,16 +1280,16 @@ var TabsPanel = ({ value, children, ...rest }) => {
1280
1280
  children
1281
1281
  }
1282
1282
  );
1283
- };
1283
+ }
1284
1284
  var TabsPanel_default = TabsPanel;
1285
- var TabsTrigger = ({
1285
+ function TabsTrigger({
1286
1286
  value,
1287
1287
  icon,
1288
1288
  disabled,
1289
1289
  className,
1290
1290
  children,
1291
1291
  ...rest
1292
- }) => {
1292
+ }) {
1293
1293
  const {
1294
1294
  value: activeValue,
1295
1295
  onValueChange,
@@ -1395,9 +1395,9 @@ var TabsTrigger = ({
1395
1395
  ]
1396
1396
  }
1397
1397
  );
1398
- };
1398
+ }
1399
1399
  var TabsTrigger_default = TabsTrigger;
1400
- var Tabs = ({
1400
+ function Tabs({
1401
1401
  defaultValue = "",
1402
1402
  value,
1403
1403
  onValueChange,
@@ -1406,7 +1406,7 @@ var Tabs = ({
1406
1406
  className,
1407
1407
  children,
1408
1408
  ...rest
1409
- }) => {
1409
+ }) {
1410
1410
  const [internalValue, setInternalValue] = useState(defaultValue);
1411
1411
  const activeValue = value ?? internalValue;
1412
1412
  const isControlled = value !== void 0;
@@ -1428,12 +1428,12 @@ var Tabs = ({
1428
1428
  children: /* @__PURE__ */ jsx("div", { className: clsx15("ui:w-full", className), ...rest, children })
1429
1429
  }
1430
1430
  );
1431
- };
1431
+ }
1432
1432
  Tabs.List = TabsList_default;
1433
1433
  Tabs.Trigger = TabsTrigger_default;
1434
1434
  Tabs.Panel = TabsPanel_default;
1435
1435
  var Tabs_default = Tabs;
1436
- var Talent = ({
1436
+ function Talent({
1437
1437
  name,
1438
1438
  role,
1439
1439
  imageSrc,
@@ -1441,7 +1441,7 @@ var Talent = ({
1441
1441
  size = "lg",
1442
1442
  className,
1443
1443
  ...rest
1444
- }) => {
1444
+ }) {
1445
1445
  return /* @__PURE__ */ jsxs(
1446
1446
  "div",
1447
1447
  {
@@ -1492,9 +1492,9 @@ var Talent = ({
1492
1492
  ]
1493
1493
  }
1494
1494
  );
1495
- };
1495
+ }
1496
1496
  var Talent_default = Talent;
1497
- var Spinner = ({ className }) => {
1497
+ function Spinner({ className }) {
1498
1498
  return /* @__PURE__ */ jsx(
1499
1499
  "div",
1500
1500
  {
@@ -1506,7 +1506,7 @@ var Spinner = ({ className }) => {
1506
1506
  )
1507
1507
  }
1508
1508
  );
1509
- };
1509
+ }
1510
1510
  var Spinner_default = Spinner;
1511
1511
 
1512
1512
  export { Avatar_default as Avatar, Badge_default as Badge, Carousel_default as Carousel, CarouselCounter_default as CarouselCounter, CarouselItem_default as CarouselItem, CarouselLoading_default as CarouselLoading, CarouselNavigation_default as CarouselNavigation, CarouselPagination_default as CarouselPagination, HeroImage_default as HeroImage, IconButton_default as IconButton, Image_default as Image, Modal_default as Modal, MovieCard_default as MovieCard, Rating_default as Rating, Skeleton_default as Skeleton, Spinner_default as Spinner, Tabs_default as Tabs, Talent_default as Talent, TrailerCard_default as TrailerCard, Typography_default as Typography };