@fluencypassdevs/cycle 0.6.2 → 0.6.4

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.
@@ -10,23 +10,23 @@ var sizeMap = {
10
10
  lg: { icon: "lg", text: "heading-md" },
11
11
  xl: { icon: "xl", text: "heading-lg" }
12
12
  };
13
- function ProductLogo({ icon, label, size = "sm", className }) {
13
+ function ProductLogo({ icon, label, size = "sm", theme, className }) {
14
14
  const { icon: iconSize, text } = sizeMap[size];
15
15
  return /* @__PURE__ */ jsxs("span", { className: cn("inline-flex items-center", size === "xs" ? "gap-1" : "gap-2", className), children: [
16
- /* @__PURE__ */ jsx(CycleIcon, { icon, size: iconSize, decorative: true }),
17
- /* @__PURE__ */ jsx("span", { className: cn(text, "text-neutral-foreground"), children: label })
16
+ /* @__PURE__ */ jsx("span", { className: cn(theme, theme && "text-foreground"), children: /* @__PURE__ */ jsx(CycleIcon, { icon, size: iconSize, decorative: true }) }),
17
+ /* @__PURE__ */ jsx("span", { className: cn(text), children: label })
18
18
  ] });
19
19
  }
20
20
  function ClassLogo({ size = "sm", className }) {
21
- return /* @__PURE__ */ jsx(ProductLogo, { icon: GraduationCap, label: "Class", size, className: cn("theme-class text-foreground", className) });
21
+ return /* @__PURE__ */ jsx(ProductLogo, { icon: GraduationCap, label: "Class", size, theme: "theme-class", className });
22
22
  }
23
23
  function PrivateTalkLogo({ size = "sm", className }) {
24
- return /* @__PURE__ */ jsx(ProductLogo, { icon: UserLock, label: "Private Talk", size, className: cn("theme-private text-foreground", className) });
24
+ return /* @__PURE__ */ jsx(ProductLogo, { icon: UserLock, label: "Private Talk", size, theme: "theme-private", className });
25
25
  }
26
26
  function GroupTalkLogo({ size = "sm", className }) {
27
- return /* @__PURE__ */ jsx(ProductLogo, { icon: MessagesSquare, label: "Group Talk", size, className: cn("theme-group text-foreground", className) });
27
+ return /* @__PURE__ */ jsx(ProductLogo, { icon: MessagesSquare, label: "Group Talk", size, theme: "theme-group", className });
28
28
  }
29
29
 
30
30
  export { ClassLogo, GroupTalkLogo, PrivateTalkLogo, ProductLogo };
31
- //# sourceMappingURL=chunk-JDAPQW5C.js.map
32
- //# sourceMappingURL=chunk-JDAPQW5C.js.map
31
+ //# sourceMappingURL=chunk-XVBX263W.js.map
32
+ //# sourceMappingURL=chunk-XVBX263W.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/product-logo.tsx"],"names":[],"mappings":";;;;;AAMA,IAAM,OAAA,GAAU;AAAA,EACd,EAAA,EAAI,EAAE,IAAA,EAAM,IAAA,EAAkB,MAAM,WAAA,EAAY;AAAA,EAChD,EAAA,EAAI,EAAE,IAAA,EAAM,IAAA,EAAkB,MAAM,YAAA,EAAa;AAAA,EACjD,EAAA,EAAI,EAAE,IAAA,EAAM,IAAA,EAAkB,MAAM,YAAA,EAAa;AAAA,EACjD,EAAA,EAAI,EAAE,IAAA,EAAM,IAAA,EAAkB,MAAM,YAAA,EAAa;AAAA,EACjD,EAAA,EAAI,EAAE,IAAA,EAAM,IAAA,EAAkB,MAAM,YAAA;AACtC,CAAA;AAYO,SAAS,WAAA,CAAY,EAAE,IAAA,EAAM,KAAA,EAAO,OAAO,IAAA,EAAM,KAAA,EAAO,WAAU,EAAqB;AAC5F,EAAA,MAAM,EAAE,IAAA,EAAM,QAAA,EAAU,IAAA,EAAK,GAAI,QAAQ,IAAI,CAAA;AAC7C,EAAA,uBACE,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,0BAAA,EAA4B,SAAS,IAAA,GAAO,OAAA,GAAU,OAAA,EAAS,SAAS,CAAA,EAC1F,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,KAAA,EAAO,SAAS,iBAAiB,CAAA,EACnD,QAAA,kBAAA,GAAA,CAAC,SAAA,EAAA,EAAU,IAAA,EAAY,IAAA,EAAM,QAAA,EAAU,UAAA,EAAU,MAAC,CAAA,EACpD,CAAA;AAAA,wBACC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,IAAI,GAAI,QAAA,EAAA,KAAA,EAAM;AAAA,GAAA,EACpC,CAAA;AAEJ;AAGO,SAAS,SAAA,CAAU,EAAE,IAAA,GAAO,IAAA,EAAM,WAAU,EAAmD;AACpG,EAAA,uBAAO,GAAA,CAAC,eAAY,IAAA,EAAM,aAAA,EAAe,OAAM,OAAA,EAAQ,IAAA,EAAY,KAAA,EAAM,aAAA,EAAc,SAAA,EAAsB,CAAA;AAC/G;AAEO,SAAS,eAAA,CAAgB,EAAE,IAAA,GAAO,IAAA,EAAM,WAAU,EAAmD;AAC1G,EAAA,uBAAO,GAAA,CAAC,eAAY,IAAA,EAAM,QAAA,EAAU,OAAM,cAAA,EAAe,IAAA,EAAY,KAAA,EAAM,eAAA,EAAgB,SAAA,EAAsB,CAAA;AACnH;AAEO,SAAS,aAAA,CAAc,EAAE,IAAA,GAAO,IAAA,EAAM,WAAU,EAAmD;AACxG,EAAA,uBAAO,GAAA,CAAC,eAAY,IAAA,EAAM,cAAA,EAAgB,OAAM,YAAA,EAAa,IAAA,EAAY,KAAA,EAAM,aAAA,EAAc,SAAA,EAAsB,CAAA;AACrH","file":"chunk-XVBX263W.js","sourcesContent":["import { type LucideIcon } from \"lucide-react\"\nimport { GraduationCap, UserLock, MessagesSquare } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { CycleIcon, type IconSize } from \"@/components/icons\"\n\nconst sizeMap = {\n xs: { icon: \"xs\" as IconSize, text: \"button-sm\" },\n sm: { icon: \"sm\" as IconSize, text: \"heading-xs\" },\n md: { icon: \"md\" as IconSize, text: \"heading-sm\" },\n lg: { icon: \"lg\" as IconSize, text: \"heading-md\" },\n xl: { icon: \"xl\" as IconSize, text: \"heading-lg\" },\n} as const\n\ntype ProductLogoSize = keyof typeof sizeMap\n\ninterface ProductLogoProps {\n icon: LucideIcon\n label: string\n size?: ProductLogoSize\n theme?: string\n className?: string\n}\n\nexport function ProductLogo({ icon, label, size = \"sm\", theme, className }: ProductLogoProps) {\n const { icon: iconSize, text } = sizeMap[size]\n return (\n <span className={cn(\"inline-flex items-center\", size === \"xs\" ? \"gap-1\" : \"gap-2\", className)}>\n <span className={cn(theme, theme && \"text-foreground\")}>\n <CycleIcon icon={icon} size={iconSize} decorative />\n </span>\n <span className={cn(text)}>{label}</span>\n </span>\n )\n}\n\n/* Pre-built product logos */\nexport function ClassLogo({ size = \"sm\", className }: { size?: ProductLogoSize; className?: string }) {\n return <ProductLogo icon={GraduationCap} label=\"Class\" size={size} theme=\"theme-class\" className={className} />\n}\n\nexport function PrivateTalkLogo({ size = \"sm\", className }: { size?: ProductLogoSize; className?: string }) {\n return <ProductLogo icon={UserLock} label=\"Private Talk\" size={size} theme=\"theme-private\" className={className} />\n}\n\nexport function GroupTalkLogo({ size = \"sm\", className }: { size?: ProductLogoSize; className?: string }) {\n return <ProductLogo icon={MessagesSquare} label=\"Group Talk\" size={size} theme=\"theme-group\" className={className} />\n}\n"]}
@@ -35,12 +35,14 @@ function ProgressDot(_a) {
35
35
  value,
36
36
  size = "default",
37
37
  theme,
38
+ themes,
38
39
  className
39
40
  } = _b, props = __objRest(_b, [
40
41
  "stages",
41
42
  "value",
42
43
  "size",
43
44
  "theme",
45
+ "themes",
44
46
  "className"
45
47
  ]);
46
48
  const total = Math.min(10, Math.max(2, stages));
@@ -51,20 +53,24 @@ function ProgressDot(_a) {
51
53
  "data-slot": "progress-dot",
52
54
  className: cn(progressDotVariants({ size }), className)
53
55
  }, props), {
54
- children: Array.from({ length: total }, (_, i) => /* @__PURE__ */ jsx(
55
- "div",
56
- {
57
- className: cn(
58
- dotVariants({ size }),
59
- i < filled ? cn(theme, "bg-primary") : "bg-neutral-input"
60
- )
61
- },
62
- i
63
- ))
56
+ children: Array.from({ length: total }, (_, i) => {
57
+ var _a2;
58
+ const dotTheme = (_a2 = themes == null ? void 0 : themes[i]) != null ? _a2 : theme;
59
+ return /* @__PURE__ */ jsx(
60
+ "div",
61
+ {
62
+ className: cn(
63
+ dotVariants({ size }),
64
+ i < filled ? cn(dotTheme, "bg-primary") : "bg-neutral-input"
65
+ )
66
+ },
67
+ i
68
+ );
69
+ })
64
70
  })
65
71
  );
66
72
  }
67
73
 
68
74
  export { ProgressDot, dotVariants, progressDotVariants };
69
- //# sourceMappingURL=chunk-LHSUEXOW.js.map
70
- //# sourceMappingURL=chunk-LHSUEXOW.js.map
75
+ //# sourceMappingURL=chunk-ZTANTDKS.js.map
76
+ //# sourceMappingURL=chunk-ZTANTDKS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ui/progress-dot.tsx"],"names":["_a"],"mappings":";;;;;AAKA,IAAM,mBAAA,GAAsB,IAAI,mBAAA,EAAqB;AAAA,EACnD,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,SAAA;AAAA,MACJ,EAAA,EAAI,OAAA;AAAA,MACJ,OAAA,EAAS,OAAA;AAAA,MACT,EAAA,EAAI;AAAA;AACN,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM;AAAA;AAEV,CAAC;AAED,IAAM,WAAA,GAAc,IAAI,uBAAA,EAAyB;AAAA,EAC/C,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,QAAA;AAAA,MACJ,EAAA,EAAI,UAAA;AAAA,MACJ,OAAA,EAAS,QAAA;AAAA,MACT,EAAA,EAAI;AAAA;AACN,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM;AAAA;AAEV,CAAC;AAeD,SAAS,YAAY,EAAA,EAQA;AARA,EAAA,IAAA,EAAA,GAAA,EAAA,EACnB;AAAA,IAAA,MAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAA,GAAO,SAAA;AAAA,IACP,KAAA;AAAA,IACA,MAAA;AAAA,IACA;AAAA,GApDF,GA8CqB,EAAA,EAOhB,KAAA,GAAA,SAAA,CAPgB,EAAA,EAOhB;AAAA,IANH,QAAA;AAAA,IACA,OAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA,QAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,MAAM,KAAA,GAAQ,KAAK,GAAA,CAAI,EAAA,EAAI,KAAK,GAAA,CAAI,CAAA,EAAG,MAAM,CAAC,CAAA;AAC9C,EAAA,MAAM,MAAA,GAAS,KAAK,GAAA,CAAI,KAAA,EAAO,KAAK,GAAA,CAAI,CAAA,EAAG,KAAK,CAAC,CAAA;AAEjD,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,cAAA;AAAA,MACV,WAAW,EAAA,CAAG,mBAAA,CAAoB,EAAE,IAAA,EAAM,GAAG,SAAS;AAAA,KAAA,EAClD,KAAA,CAAA,EAHL;AAAA,MAKE,QAAA,EAAA,KAAA,CAAM,KAAK,EAAE,MAAA,EAAQ,OAAM,EAAG,CAAC,GAAG,CAAA,KAAM;AAhE/C,QAAA,IAAAA,GAAAA;AAiEQ,QAAA,MAAM,QAAA,GAAA,CAAWA,GAAAA,GAAA,MAAA,IAAA,IAAA,GAAA,MAAA,GAAA,MAAA,CAAS,CAAA,CAAA,KAAT,OAAAA,GAAAA,GAAe,KAAA;AAChC,QAAA,uBACE,GAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YAEC,SAAA,EAAW,EAAA;AAAA,cACT,WAAA,CAAY,EAAE,IAAA,EAAM,CAAA;AAAA,cACpB,CAAA,GAAI,MAAA,GACA,EAAA,CAAG,QAAA,EAAU,YAAY,CAAA,GACzB;AAAA;AACN,WAAA;AAAA,UANK;AAAA,SAOP;AAAA,MAEJ,CAAC;AAAA,KAAA;AAAA,GACH;AAEJ","file":"chunk-ZTANTDKS.js","sourcesContent":["import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst progressDotVariants = cva(\"flex items-center\", {\n variants: {\n size: {\n xs: \"gap-0.5\",\n sm: \"gap-1\",\n default: \"gap-1\",\n lg: \"gap-1\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n})\n\nconst dotVariants = cva(\"shrink-0 rounded-full\", {\n variants: {\n size: {\n xs: \"size-1\",\n sm: \"size-1.5\",\n default: \"size-2\",\n lg: \"size-3\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n})\n\nexport interface ProgressDotProps\n extends React.ComponentProps<\"div\">,\n VariantProps<typeof dotVariants> {\n /** Numero total de stages (2–10) */\n stages: number\n /** Quantos stages estao preenchidos (0–stages) */\n value: number\n /** Classe de tema aplicada em todos os dots preenchidos (ex: \"theme-class\") */\n theme?: string\n /** Temas individuais por dot (ex: [\"theme-class\", \"theme-brand\", undefined, \"theme-private\"]). Sobrescreve `theme` para dots que tiverem valor. */\n themes?: (string | undefined)[]\n}\n\nfunction ProgressDot({\n stages,\n value,\n size = \"default\",\n theme,\n themes,\n className,\n ...props\n}: ProgressDotProps) {\n const total = Math.min(10, Math.max(2, stages))\n const filled = Math.min(total, Math.max(0, value))\n\n return (\n <div\n data-slot=\"progress-dot\"\n className={cn(progressDotVariants({ size }), className)}\n {...props}\n >\n {Array.from({ length: total }, (_, i) => {\n const dotTheme = themes?.[i] ?? theme\n return (\n <div\n key={i}\n className={cn(\n dotVariants({ size }),\n i < filled\n ? cn(dotTheme, \"bg-primary\")\n : \"bg-neutral-input\"\n )}\n />\n )\n })}\n </div>\n )\n}\n\nexport { ProgressDot, progressDotVariants, dotVariants }\n"]}
package/dist/index.js CHANGED
@@ -4,7 +4,7 @@ export { Skeleton } from './chunk-2EKU7RP4.js';
4
4
  export { Spinner } from './chunk-5XNYJECW.js';
5
5
  export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from './chunk-TZ7BEYQ7.js';
6
6
  export { FluencypassIcon, FluencypassLogo } from './chunk-5LZHXNBV.js';
7
- export { ClassLogo, GroupTalkLogo, PrivateTalkLogo, ProductLogo } from './chunk-JDAPQW5C.js';
7
+ export { ClassLogo, GroupTalkLogo, PrivateTalkLogo, ProductLogo } from './chunk-XVBX263W.js';
8
8
  export { AudioPlayer } from './chunk-UAHCRXAG.js';
9
9
  export { VideoPlayer } from './chunk-IXMIKS5H.js';
10
10
  export { Toaster, cycleToast } from './chunk-ELZCZ6ZH.js';
@@ -14,7 +14,7 @@ export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScro
14
14
  export { Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger } from './chunk-EF6FQT4Y.js';
15
15
  export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from './chunk-IGMII4BK.js';
16
16
  export { ProgressStage } from './chunk-NYJMA2T7.js';
17
- export { ProgressDot, dotVariants, progressDotVariants } from './chunk-LHSUEXOW.js';
17
+ export { ProgressDot, dotVariants, progressDotVariants } from './chunk-ZTANTDKS.js';
18
18
  export { FileCard, fileCardVariants } from './chunk-R4LITCVX.js';
19
19
  export { ChatPanel } from './chunk-WUZODCC2.js';
20
20
  export { ChatBubble, chatBubbleVariants } from './chunk-HZJRM5EK.js';
@@ -29,9 +29,10 @@ interface ProductLogoProps {
29
29
  icon: LucideIcon;
30
30
  label: string;
31
31
  size?: ProductLogoSize;
32
+ theme?: string;
32
33
  className?: string;
33
34
  }
34
- declare function ProductLogo({ icon, label, size, className }: ProductLogoProps): react_jsx_runtime.JSX.Element;
35
+ declare function ProductLogo({ icon, label, size, theme, className }: ProductLogoProps): react_jsx_runtime.JSX.Element;
35
36
  declare function ClassLogo({ size, className }: {
36
37
  size?: ProductLogoSize;
37
38
  className?: string;
@@ -1,4 +1,4 @@
1
- export { ClassLogo, GroupTalkLogo, PrivateTalkLogo, ProductLogo } from '../chunk-JDAPQW5C.js';
1
+ export { ClassLogo, GroupTalkLogo, PrivateTalkLogo, ProductLogo } from '../chunk-XVBX263W.js';
2
2
  import '../chunk-D4QCYBCD.js';
3
3
  import '../chunk-V7M2NHUO.js';
4
4
  import '../chunk-TYCPXAXF.js';
@@ -14,9 +14,11 @@ interface ProgressDotProps extends React.ComponentProps<"div">, VariantProps<typ
14
14
  stages: number;
15
15
  /** Quantos stages estao preenchidos (0–stages) */
16
16
  value: number;
17
- /** Classe de tema aplicada apenas nos dots preenchidos (ex: "theme-class") */
17
+ /** Classe de tema aplicada em todos os dots preenchidos (ex: "theme-class") */
18
18
  theme?: string;
19
+ /** Temas individuais por dot (ex: ["theme-class", "theme-brand", undefined, "theme-private"]). Sobrescreve `theme` para dots que tiverem valor. */
20
+ themes?: (string | undefined)[];
19
21
  }
20
- declare function ProgressDot({ stages, value, size, theme, className, ...props }: ProgressDotProps): react_jsx_runtime.JSX.Element;
22
+ declare function ProgressDot({ stages, value, size, theme, themes, className, ...props }: ProgressDotProps): react_jsx_runtime.JSX.Element;
21
23
 
22
24
  export { ProgressDot, type ProgressDotProps, dotVariants, progressDotVariants };
@@ -1,4 +1,4 @@
1
- export { ProgressDot, dotVariants, progressDotVariants } from '../chunk-LHSUEXOW.js';
1
+ export { ProgressDot, dotVariants, progressDotVariants } from '../chunk-ZTANTDKS.js';
2
2
  import '../chunk-TYCPXAXF.js';
3
3
  import '../chunk-YINJ5YZ5.js';
4
4
  //# sourceMappingURL=progress-dot.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluencypassdevs/cycle",
3
- "version": "0.6.2",
3
+ "version": "0.6.4",
4
4
  "description": "Cycle Design System — UI component library by Fluencypass",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/product-logo.tsx"],"names":[],"mappings":";;;;;AAMA,IAAM,OAAA,GAAU;AAAA,EACd,EAAA,EAAI,EAAE,IAAA,EAAM,IAAA,EAAkB,MAAM,WAAA,EAAY;AAAA,EAChD,EAAA,EAAI,EAAE,IAAA,EAAM,IAAA,EAAkB,MAAM,YAAA,EAAa;AAAA,EACjD,EAAA,EAAI,EAAE,IAAA,EAAM,IAAA,EAAkB,MAAM,YAAA,EAAa;AAAA,EACjD,EAAA,EAAI,EAAE,IAAA,EAAM,IAAA,EAAkB,MAAM,YAAA,EAAa;AAAA,EACjD,EAAA,EAAI,EAAE,IAAA,EAAM,IAAA,EAAkB,MAAM,YAAA;AACtC,CAAA;AAWO,SAAS,YAAY,EAAE,IAAA,EAAM,OAAO,IAAA,GAAO,IAAA,EAAM,WAAU,EAAqB;AACrF,EAAA,MAAM,EAAE,IAAA,EAAM,QAAA,EAAU,IAAA,EAAK,GAAI,QAAQ,IAAI,CAAA;AAC7C,EAAA,uBACE,IAAA,CAAC,MAAA,EAAA,EAAK,SAAA,EAAW,EAAA,CAAG,0BAAA,EAA4B,SAAS,IAAA,GAAO,OAAA,GAAU,OAAA,EAAS,SAAS,CAAA,EAC1F,QAAA,EAAA;AAAA,oBAAA,GAAA,CAAC,SAAA,EAAA,EAAU,IAAA,EAAY,IAAA,EAAM,QAAA,EAAU,YAAU,IAAA,EAAC,CAAA;AAAA,wBACjD,MAAA,EAAA,EAAK,SAAA,EAAW,GAAG,IAAA,EAAM,yBAAyB,GAAI,QAAA,EAAA,KAAA,EAAM;AAAA,GAAA,EAC/D,CAAA;AAEJ;AAGO,SAAS,SAAA,CAAU,EAAE,IAAA,GAAO,IAAA,EAAM,WAAU,EAAmD;AACpG,EAAA,uBAAO,GAAA,CAAC,WAAA,EAAA,EAAY,IAAA,EAAM,aAAA,EAAe,KAAA,EAAM,OAAA,EAAQ,IAAA,EAAY,SAAA,EAAW,EAAA,CAAG,6BAAA,EAA+B,SAAS,CAAA,EAAG,CAAA;AAC9H;AAEO,SAAS,eAAA,CAAgB,EAAE,IAAA,GAAO,IAAA,EAAM,WAAU,EAAmD;AAC1G,EAAA,uBAAO,GAAA,CAAC,WAAA,EAAA,EAAY,IAAA,EAAM,QAAA,EAAU,KAAA,EAAM,cAAA,EAAe,IAAA,EAAY,SAAA,EAAW,EAAA,CAAG,+BAAA,EAAiC,SAAS,CAAA,EAAG,CAAA;AAClI;AAEO,SAAS,aAAA,CAAc,EAAE,IAAA,GAAO,IAAA,EAAM,WAAU,EAAmD;AACxG,EAAA,uBAAO,GAAA,CAAC,WAAA,EAAA,EAAY,IAAA,EAAM,cAAA,EAAgB,KAAA,EAAM,YAAA,EAAa,IAAA,EAAY,SAAA,EAAW,EAAA,CAAG,6BAAA,EAA+B,SAAS,CAAA,EAAG,CAAA;AACpI","file":"chunk-JDAPQW5C.js","sourcesContent":["import { type LucideIcon } from \"lucide-react\"\nimport { GraduationCap, UserLock, MessagesSquare } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { CycleIcon, type IconSize } from \"@/components/icons\"\n\nconst sizeMap = {\n xs: { icon: \"xs\" as IconSize, text: \"button-sm\" },\n sm: { icon: \"sm\" as IconSize, text: \"heading-xs\" },\n md: { icon: \"md\" as IconSize, text: \"heading-sm\" },\n lg: { icon: \"lg\" as IconSize, text: \"heading-md\" },\n xl: { icon: \"xl\" as IconSize, text: \"heading-lg\" },\n} as const\n\ntype ProductLogoSize = keyof typeof sizeMap\n\ninterface ProductLogoProps {\n icon: LucideIcon\n label: string\n size?: ProductLogoSize\n className?: string\n}\n\nexport function ProductLogo({ icon, label, size = \"sm\", className }: ProductLogoProps) {\n const { icon: iconSize, text } = sizeMap[size]\n return (\n <span className={cn(\"inline-flex items-center\", size === \"xs\" ? \"gap-1\" : \"gap-2\", className)}>\n <CycleIcon icon={icon} size={iconSize} decorative />\n <span className={cn(text, \"text-neutral-foreground\")}>{label}</span>\n </span>\n )\n}\n\n/* Pre-built product logos */\nexport function ClassLogo({ size = \"sm\", className }: { size?: ProductLogoSize; className?: string }) {\n return <ProductLogo icon={GraduationCap} label=\"Class\" size={size} className={cn(\"theme-class text-foreground\", className)} />\n}\n\nexport function PrivateTalkLogo({ size = \"sm\", className }: { size?: ProductLogoSize; className?: string }) {\n return <ProductLogo icon={UserLock} label=\"Private Talk\" size={size} className={cn(\"theme-private text-foreground\", className)} />\n}\n\nexport function GroupTalkLogo({ size = \"sm\", className }: { size?: ProductLogoSize; className?: string }) {\n return <ProductLogo icon={MessagesSquare} label=\"Group Talk\" size={size} className={cn(\"theme-group text-foreground\", className)} />\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/components/ui/progress-dot.tsx"],"names":[],"mappings":";;;;;AAKA,IAAM,mBAAA,GAAsB,IAAI,mBAAA,EAAqB;AAAA,EACnD,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,SAAA;AAAA,MACJ,EAAA,EAAI,OAAA;AAAA,MACJ,OAAA,EAAS,OAAA;AAAA,MACT,EAAA,EAAI;AAAA;AACN,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM;AAAA;AAEV,CAAC;AAED,IAAM,WAAA,GAAc,IAAI,uBAAA,EAAyB;AAAA,EAC/C,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,QAAA;AAAA,MACJ,EAAA,EAAI,UAAA;AAAA,MACJ,OAAA,EAAS,QAAA;AAAA,MACT,EAAA,EAAI;AAAA;AACN,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM;AAAA;AAEV,CAAC;AAaD,SAAS,YAAY,EAAA,EAOA;AAPA,EAAA,IAAA,EAAA,GAAA,EAAA,EACnB;AAAA,IAAA,MAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAA,GAAO,SAAA;AAAA,IACP,KAAA;AAAA,IACA;AAAA,GAjDF,GA4CqB,EAAA,EAMhB,KAAA,GAAA,SAAA,CANgB,EAAA,EAMhB;AAAA,IALH,QAAA;AAAA,IACA,OAAA;AAAA,IACA,MAAA;AAAA,IACA,OAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,MAAM,KAAA,GAAQ,KAAK,GAAA,CAAI,EAAA,EAAI,KAAK,GAAA,CAAI,CAAA,EAAG,MAAM,CAAC,CAAA;AAC9C,EAAA,MAAM,MAAA,GAAS,KAAK,GAAA,CAAI,KAAA,EAAO,KAAK,GAAA,CAAI,CAAA,EAAG,KAAK,CAAC,CAAA;AAEjD,EAAA,uBACE,GAAA;AAAA,IAAC,KAAA;AAAA,IAAA,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,cAAA;AAAA,MACV,WAAW,EAAA,CAAG,mBAAA,CAAoB,EAAE,IAAA,EAAM,GAAG,SAAS;AAAA,KAAA,EAClD,KAAA,CAAA,EAHL;AAAA,MAKE,QAAA,EAAA,KAAA,CAAM,KAAK,EAAE,MAAA,EAAQ,OAAM,EAAG,CAAC,GAAG,CAAA,qBACjC,GAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UAEC,SAAA,EAAW,EAAA;AAAA,YACT,WAAA,CAAY,EAAE,IAAA,EAAM,CAAA;AAAA,YACpB,CAAA,GAAI,MAAA,GACA,EAAA,CAAG,KAAA,EAAO,YAAY,CAAA,GACtB;AAAA;AACN,SAAA;AAAA,QANK;AAAA,OAQR;AAAA,KAAA;AAAA,GACH;AAEJ","file":"chunk-LHSUEXOW.js","sourcesContent":["import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst progressDotVariants = cva(\"flex items-center\", {\n variants: {\n size: {\n xs: \"gap-0.5\",\n sm: \"gap-1\",\n default: \"gap-1\",\n lg: \"gap-1\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n})\n\nconst dotVariants = cva(\"shrink-0 rounded-full\", {\n variants: {\n size: {\n xs: \"size-1\",\n sm: \"size-1.5\",\n default: \"size-2\",\n lg: \"size-3\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n})\n\nexport interface ProgressDotProps\n extends React.ComponentProps<\"div\">,\n VariantProps<typeof dotVariants> {\n /** Numero total de stages (2–10) */\n stages: number\n /** Quantos stages estao preenchidos (0–stages) */\n value: number\n /** Classe de tema aplicada apenas nos dots preenchidos (ex: \"theme-class\") */\n theme?: string\n}\n\nfunction ProgressDot({\n stages,\n value,\n size = \"default\",\n theme,\n className,\n ...props\n}: ProgressDotProps) {\n const total = Math.min(10, Math.max(2, stages))\n const filled = Math.min(total, Math.max(0, value))\n\n return (\n <div\n data-slot=\"progress-dot\"\n className={cn(progressDotVariants({ size }), className)}\n {...props}\n >\n {Array.from({ length: total }, (_, i) => (\n <div\n key={i}\n className={cn(\n dotVariants({ size }),\n i < filled\n ? cn(theme, \"bg-primary\")\n : \"bg-neutral-input\"\n )}\n />\n ))}\n </div>\n )\n}\n\nexport { ProgressDot, progressDotVariants, dotVariants }\n"]}