@fluencypassdevs/cycle 1.5.1 → 1.6.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/bin/mcp.mjs CHANGED
@@ -248,6 +248,24 @@ const COMPONENTS = [
248
248
  <ProgressDot current={1} total={3} size="lg" theme="brand" />`,
249
249
  keywords: ["progress", "dot", "ponto", "indicador", "carousel", "slide", "paginacao"],
250
250
  },
251
+ {
252
+ name: "CircularProgress",
253
+ import: `import { CircularProgress } from "@fluencypassdevs/cycle"`,
254
+ description: "Indicador de progresso circular com porcentagem 0-100 no centro. 4 sizes (xs=48px, sm=64px, default=80px, lg=120px). Prop autoTheme escolhe cor baseada no value (0-33 critical, 34-66 warning, 67-100 positive). Prop theme aceita qualquer dos 8 temas Cycle.",
255
+ props: [
256
+ { name: "value", type: "number (0-100)", default: "-" },
257
+ { name: "size", type: '"xs" | "sm" | "default" | "lg"', default: '"default"' },
258
+ { name: "theme", type: "string", default: "-" },
259
+ { name: "autoTheme", type: "boolean", default: "false" },
260
+ { name: "showLabel", type: "boolean", default: "true" },
261
+ { name: "label", type: "string", default: "-" },
262
+ ],
263
+ example: `<CircularProgress value={70} />
264
+ <CircularProgress value={25} autoTheme />
265
+ <CircularProgress value={80} theme="theme-class" size="lg" />
266
+ <CircularProgress value={50} showLabel={false} />`,
267
+ keywords: ["progress", "circular", "circle", "anel", "ring", "porcentagem", "percentage", "score", "nota", "aproveitamento"],
268
+ },
251
269
  {
252
270
  name: "FileCard",
253
271
  import: `import { FileCard } from "@fluencypassdevs/cycle"`,
@@ -0,0 +1,130 @@
1
+ import { cn } from './chunk-TYCPXAXF.js';
2
+ import { __objRest, __spreadProps, __spreadValues } from './chunk-YINJ5YZ5.js';
3
+ import { cva } from 'class-variance-authority';
4
+ import { jsxs, jsx } from 'react/jsx-runtime';
5
+
6
+ var SIZE_CONFIG = {
7
+ xs: { px: 48, stroke: 4, fontClass: "text-sm font-semibold" },
8
+ sm: { px: 64, stroke: 5, fontClass: "text-base font-semibold" },
9
+ default: { px: 80, stroke: 6, fontClass: "text-2xl font-semibold" },
10
+ lg: { px: 120, stroke: 8, fontClass: "text-3xl font-semibold" }
11
+ };
12
+ var circularProgressVariants = cva("relative inline-flex shrink-0", {
13
+ variants: {
14
+ size: {
15
+ xs: "size-12",
16
+ sm: "size-16",
17
+ default: "size-20",
18
+ lg: "size-30"
19
+ }
20
+ },
21
+ defaultVariants: {
22
+ size: "default"
23
+ }
24
+ });
25
+ function getAutoTheme(value) {
26
+ if (value < 34) return "theme-critical";
27
+ if (value < 67) return "theme-warning";
28
+ return "theme-positive";
29
+ }
30
+ function CircularProgress(_a) {
31
+ var _b = _a, {
32
+ value,
33
+ size = "default",
34
+ theme,
35
+ autoTheme = false,
36
+ showLabel = true,
37
+ label,
38
+ className
39
+ } = _b, props = __objRest(_b, [
40
+ "value",
41
+ "size",
42
+ "theme",
43
+ "autoTheme",
44
+ "showLabel",
45
+ "label",
46
+ "className"
47
+ ]);
48
+ const clamped = Math.min(100, Math.max(0, value));
49
+ const config = SIZE_CONFIG[size != null ? size : "default"];
50
+ const { px, stroke, fontClass } = config;
51
+ const radius = (px - stroke) / 2;
52
+ const circumference = 2 * Math.PI * radius;
53
+ const dash = clamped / 100 * circumference;
54
+ const resolvedTheme = theme != null ? theme : autoTheme ? getAutoTheme(clamped) : void 0;
55
+ const displayLabel = label != null ? label : `${Math.round(clamped)}%`;
56
+ return /* @__PURE__ */ jsxs(
57
+ "div",
58
+ __spreadProps(__spreadValues({
59
+ "data-slot": "circular-progress",
60
+ role: "progressbar",
61
+ "aria-valuenow": clamped,
62
+ "aria-valuemin": 0,
63
+ "aria-valuemax": 100,
64
+ "aria-label": !showLabel && !label ? `Progress: ${Math.round(clamped)}%` : void 0,
65
+ className: cn(circularProgressVariants({ size }), resolvedTheme, className),
66
+ style: { width: px, height: px }
67
+ }, props), {
68
+ children: [
69
+ /* @__PURE__ */ jsx(
70
+ "div",
71
+ {
72
+ className: cn(
73
+ "absolute rounded-full",
74
+ resolvedTheme ? "bg-accent" : "bg-neutral-input/40"
75
+ ),
76
+ style: { inset: stroke }
77
+ }
78
+ ),
79
+ /* @__PURE__ */ jsxs(
80
+ "svg",
81
+ {
82
+ className: "absolute inset-0 size-full -rotate-90",
83
+ viewBox: `0 0 ${px} ${px}`,
84
+ "aria-hidden": "true",
85
+ children: [
86
+ /* @__PURE__ */ jsx(
87
+ "circle",
88
+ {
89
+ cx: px / 2,
90
+ cy: px / 2,
91
+ r: radius,
92
+ fill: "none",
93
+ strokeWidth: stroke,
94
+ className: cn(resolvedTheme ? "stroke-muted" : "stroke-neutral-input")
95
+ }
96
+ ),
97
+ /* @__PURE__ */ jsx(
98
+ "circle",
99
+ {
100
+ cx: px / 2,
101
+ cy: px / 2,
102
+ r: radius,
103
+ fill: "none",
104
+ strokeWidth: stroke,
105
+ strokeLinecap: "round",
106
+ strokeDasharray: `${dash} ${circumference}`,
107
+ className: cn("transition-[stroke-dasharray] duration-500", resolvedTheme ? "stroke-primary" : "stroke-neutral-foreground")
108
+ }
109
+ )
110
+ ]
111
+ }
112
+ ),
113
+ showLabel && /* @__PURE__ */ jsx(
114
+ "span",
115
+ {
116
+ className: cn(
117
+ "relative z-10 flex size-full items-center justify-center text-neutral-foreground",
118
+ fontClass
119
+ ),
120
+ children: displayLabel
121
+ }
122
+ )
123
+ ]
124
+ })
125
+ );
126
+ }
127
+
128
+ export { CircularProgress, circularProgressVariants };
129
+ //# sourceMappingURL=chunk-A3Z5GGAI.js.map
130
+ //# sourceMappingURL=chunk-A3Z5GGAI.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/components/ui/circular-progress.tsx"],"names":[],"mappings":"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","file":"chunk-A3Z5GGAI.js","sourcesContent":["import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\n/* ─── Size config ─── */\n\nconst SIZE_CONFIG = {\n xs: { px: 48, stroke: 4, fontClass: \"text-sm font-semibold\" },\n sm: { px: 64, stroke: 5, fontClass: \"text-base font-semibold\" },\n default: { px: 80, stroke: 6, fontClass: \"text-2xl font-semibold\" },\n lg: { px: 120, stroke: 8, fontClass: \"text-3xl font-semibold\" },\n} as const\n\nconst circularProgressVariants = cva(\"relative inline-flex shrink-0\", {\n variants: {\n size: {\n xs: \"size-12\",\n sm: \"size-16\",\n default: \"size-20\",\n lg: \"size-30\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n})\n\n/* ─── Auto-theme thresholds ─── */\n\nfunction getAutoTheme(value: number): string {\n if (value < 34) return \"theme-critical\"\n if (value < 67) return \"theme-warning\"\n return \"theme-positive\"\n}\n\nexport interface CircularProgressProps\n extends Omit<React.ComponentProps<\"div\">, \"children\">,\n VariantProps<typeof circularProgressVariants> {\n /** Valor de 0 a 100 (clamped) */\n value: number\n /** Classe de tema fixa (ex: \"theme-brand\", \"theme-class\"). Tem precedencia sobre autoTheme. */\n theme?: string\n /** Se true, escolhe o tema automaticamente: 0–33 critical, 34–66 warning, 67–100 positive. */\n autoTheme?: boolean\n /** Mostrar label central com a porcentagem (default true) */\n showLabel?: boolean\n /** Label customizado — sobrescreve `${value}%` */\n label?: string\n}\n\nfunction CircularProgress({\n value,\n size = \"default\",\n theme,\n autoTheme = false,\n showLabel = true,\n label,\n className,\n ...props\n}: CircularProgressProps) {\n const clamped = Math.min(100, Math.max(0, value))\n const config = SIZE_CONFIG[size ?? \"default\"]\n const { px, stroke, fontClass } = config\n\n const radius = (px - stroke) / 2\n const circumference = 2 * Math.PI * radius\n const dash = (clamped / 100) * circumference\n\n const resolvedTheme = theme ?? (autoTheme ? getAutoTheme(clamped) : undefined)\n const displayLabel = label ?? `${Math.round(clamped)}%`\n\n return (\n <div\n data-slot=\"circular-progress\"\n role=\"progressbar\"\n aria-valuenow={clamped}\n aria-valuemin={0}\n aria-valuemax={100}\n aria-label={!showLabel && !label ? `Progress: ${Math.round(clamped)}%` : undefined}\n className={cn(circularProgressVariants({ size }), resolvedTheme, className)}\n style={{ width: px, height: px }}\n {...props}\n >\n {/* Inner pastel fill */}\n <div\n className={cn(\n \"absolute rounded-full\",\n resolvedTheme ? \"bg-accent\" : \"bg-neutral-input/40\"\n )}\n style={{ inset: stroke }}\n />\n\n {/* Progress arcs */}\n <svg\n className=\"absolute inset-0 size-full -rotate-90\"\n viewBox={`0 0 ${px} ${px}`}\n aria-hidden=\"true\"\n >\n <circle\n cx={px / 2}\n cy={px / 2}\n r={radius}\n fill=\"none\"\n strokeWidth={stroke}\n className={cn(resolvedTheme ? \"stroke-muted\" : \"stroke-neutral-input\")}\n />\n <circle\n cx={px / 2}\n cy={px / 2}\n r={radius}\n fill=\"none\"\n strokeWidth={stroke}\n strokeLinecap=\"round\"\n strokeDasharray={`${dash} ${circumference}`}\n className={cn(\"transition-[stroke-dasharray] duration-500\", resolvedTheme ? \"stroke-primary\" : \"stroke-neutral-foreground\")}\n />\n </svg>\n\n {/* Center label */}\n {showLabel && (\n <span\n className={cn(\n \"relative z-10 flex size-full items-center justify-center text-neutral-foreground\",\n fontClass\n )}\n >\n {displayLabel}\n </span>\n )}\n </div>\n )\n}\n\nexport { CircularProgress, circularProgressVariants }\n"]}
package/dist/index.d.ts CHANGED
@@ -20,6 +20,7 @@ export { Toggle, ToggleProps, toggleVariants } from './ui/toggle.js';
20
20
  export { Progress, ProgressProps, indicatorVariants, progressVariants } from './ui/progress.js';
21
21
  export { ProgressStage, ProgressStageProps } from './ui/progress-stage.js';
22
22
  export { ProgressDot, ProgressDotProps, dotVariants, progressDotVariants } from './ui/progress-dot.js';
23
+ export { CircularProgress, CircularProgressProps, circularProgressVariants } from './ui/circular-progress.js';
23
24
  export { FileCard, FileCardProps, fileCardVariants } from './ui/file-card.js';
24
25
  export { Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage } from './ui/avatar.js';
25
26
  export { ChatBubble, ChatBubbleProps, chatBubbleVariants } from './ui/chat-bubble.js';
package/dist/index.js CHANGED
@@ -1,7 +1,9 @@
1
+ export { Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger } from './chunk-YJ4U7ISM.js';
1
2
  export { DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger } from './chunk-NOMLQHZS.js';
2
3
  export { Editor } from './chunk-D4UH2HJQ.js';
3
4
  export { ClassLogo, GroupTalkLogo, PrivateTalkLogo, ProductLogo } from './chunk-66CU7J2I.js';
4
5
  export { FluencypassIcon, FluencypassLogo } from './chunk-5LZHXNBV.js';
6
+ export { Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger } from './chunk-EF6FQT4Y.js';
5
7
  export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger } from './chunk-IGMII4BK.js';
6
8
  export { ResizableHandle, ResizablePanel, ResizablePanelGroup } from './chunk-PY2BIZNB.js';
7
9
  export { Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle } from './chunk-F2Q3E2ZM.js';
@@ -9,7 +11,7 @@ export { Skeleton } from './chunk-2EKU7RP4.js';
9
11
  export { Spinner } from './chunk-5XNYJECW.js';
10
12
  export { Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger } from './chunk-5NKTYXWQ.js';
11
13
  export { Fab, fabVariants } from './chunk-7NFHHOAE.js';
12
- export { Drawer, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerOverlay, DrawerPortal, DrawerTitle, DrawerTrigger } from './chunk-YJ4U7ISM.js';
14
+ export { LiveWaiting } from './chunk-PCLVQPIG.js';
13
15
  export { AudioPlayer } from './chunk-DCNZ2DRR.js';
14
16
  export { VideoPlayer } from './chunk-V3CBOIGK.js';
15
17
  export { playerLocales } from './chunk-C6BQAAHX.js';
@@ -17,16 +19,15 @@ export { Toaster, cycleToast } from './chunk-ELZCZ6ZH.js';
17
19
  export { Alert, AlertAction, AlertClose, AlertDescription, AlertTitle, alertVariants } from './chunk-7ZXAU2CD.js';
18
20
  export { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogMedia, AlertDialogOverlay, AlertDialogPortal, AlertDialogTitle, AlertDialogTrigger } from './chunk-3EFI7PYC.js';
19
21
  export { Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue } from './chunk-SZUWVHP4.js';
20
- export { Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger } from './chunk-EF6FQT4Y.js';
21
22
  export { ProgressStage } from './chunk-NYJMA2T7.js';
22
23
  export { ProgressDot, dotVariants, progressDotVariants } from './chunk-ZTANTDKS.js';
24
+ export { CircularProgress, circularProgressVariants } from './chunk-A3Z5GGAI.js';
23
25
  export { FileCard, fileCardVariants } from './chunk-JMNMW54C.js';
24
26
  export { ChatPanel } from './chunk-L32AMI4K.js';
25
27
  export { ChatBubble, chatBubbleVariants } from './chunk-HZJRM5EK.js';
28
+ export { Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage } from './chunk-MSLQRGSP.js';
26
29
  export { LikeDislike, likeDislikeVariants } from './chunk-F2XA2Z75.js';
27
30
  export { Achievement, Ai, Answer, Badge as BadgeIcon, Certificate, Chat as ChatIcon, Checkpoint, Completion, Conversation, Course, Deadline, Dialogue, Dictionary, Diploma, DotLive, Exercise, Feedback, Flashcard, Fluency, Goal, Grammar, GroupClass, Highlight, Language, Lesson, Listening, Live, MemoryCard, Milestone, Module, Presentation, PrivateClass, Progress as ProgressIcon, Question, Quiz, Ray, Reading, Recap, RecordedClass, Recurring, Repetition, Required, Schedule, Sentence, Streak, Task, Translate, Unit, Vocabulary, Whiteboard } from './chunk-JPEDYOV7.js';
28
- export { LiveWaiting } from './chunk-PCLVQPIG.js';
29
- export { Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage } from './chunk-MSLQRGSP.js';
30
31
  export { CycleIcon, ICON_SIZES } from './chunk-V7M2NHUO.js';
31
32
  export { Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetTitle, SheetTrigger } from './chunk-QZVQPUVT.js';
32
33
  export { ScrollArea, ScrollBar } from './chunk-3LXU5C35.js';
@@ -0,0 +1,23 @@
1
+ import * as react_jsx_runtime from 'react/jsx-runtime';
2
+ import * as class_variance_authority_types from 'class-variance-authority/types';
3
+ import * as React from 'react';
4
+ import { VariantProps } from 'class-variance-authority';
5
+
6
+ declare const circularProgressVariants: (props?: ({
7
+ size?: "xs" | "sm" | "lg" | "default" | null | undefined;
8
+ } & class_variance_authority_types.ClassProp) | undefined) => string;
9
+ interface CircularProgressProps extends Omit<React.ComponentProps<"div">, "children">, VariantProps<typeof circularProgressVariants> {
10
+ /** Valor de 0 a 100 (clamped) */
11
+ value: number;
12
+ /** Classe de tema fixa (ex: "theme-brand", "theme-class"). Tem precedencia sobre autoTheme. */
13
+ theme?: string;
14
+ /** Se true, escolhe o tema automaticamente: 0–33 critical, 34–66 warning, 67–100 positive. */
15
+ autoTheme?: boolean;
16
+ /** Mostrar label central com a porcentagem (default true) */
17
+ showLabel?: boolean;
18
+ /** Label customizado — sobrescreve `${value}%` */
19
+ label?: string;
20
+ }
21
+ declare function CircularProgress({ value, size, theme, autoTheme, showLabel, label, className, ...props }: CircularProgressProps): react_jsx_runtime.JSX.Element;
22
+
23
+ export { CircularProgress, type CircularProgressProps, circularProgressVariants };
@@ -0,0 +1,5 @@
1
+ export { CircularProgress, circularProgressVariants } from '../chunk-A3Z5GGAI.js';
2
+ import '../chunk-TYCPXAXF.js';
3
+ import '../chunk-YINJ5YZ5.js';
4
+ //# sourceMappingURL=circular-progress.js.map
5
+ //# sourceMappingURL=circular-progress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"circular-progress.js"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fluencypassdevs/cycle",
3
- "version": "1.5.1",
3
+ "version": "1.6.0",
4
4
  "description": "Cycle Design System — UI component library by Fluencypass",
5
5
  "license": "MIT",
6
6
  "repository": {