@fluencypassdevs/cycle 1.33.1 → 1.34.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/components.generated.mjs +1 -1
- package/bin/mcp.mjs +25 -4
- package/dist/{chunk-E7MMJTJY.js → chunk-SQRNXYYD.js} +2 -2
- package/dist/{chunk-E7MMJTJY.js.map → chunk-SQRNXYYD.js.map} +1 -1
- package/dist/index.js +1 -1
- package/dist/styles/tokens.css +253 -2
- package/dist/ui/progress-dot.d.ts +1 -1
- package/dist/ui/progress-dot.js +1 -1
- package/package.json +1 -1
|
@@ -2365,7 +2365,7 @@ export const COMPONENTS = [
|
|
|
2365
2365
|
"name": "theme (BreadcrumbDot)",
|
|
2366
2366
|
"type": "string",
|
|
2367
2367
|
"default": "-",
|
|
2368
|
-
"note": "classe de tema que colore o dot (ex: theme-class, theme-
|
|
2368
|
+
"note": "classe de tema que colore o dot (ex: theme-class, theme-progress)"
|
|
2369
2369
|
},
|
|
2370
2370
|
{
|
|
2371
2371
|
"name": "aria-label (BreadcrumbSwitcherTrigger)",
|
package/bin/mcp.mjs
CHANGED
|
@@ -31,7 +31,27 @@ const TOKENS = {
|
|
|
31
31
|
body: ["body-xs (11px)", "body-sm (12px)", "body-md (14px)", "body-lg (16px)"],
|
|
32
32
|
heading: ["heading-xs (14px/600)", "heading-sm (16px/600)", "heading-md (18px/600)", "heading-lg (20px/600)", "heading-xl (24px/600)", "heading-2xl (30px/700)", "heading-3xl (36px/700)", "heading-4xl (48px/700)"],
|
|
33
33
|
},
|
|
34
|
-
themes: [
|
|
34
|
+
themes: [
|
|
35
|
+
".theme-brand — coral da marca Fluencypass",
|
|
36
|
+
".theme-class — azul (Class / aulas); tambem faz o papel de info",
|
|
37
|
+
".theme-impulse — roxo (Impulse)",
|
|
38
|
+
".theme-progress — verde vivo de AVANCO/ACERTO: barra de progresso, etapa concluida, resposta certa, 7/7",
|
|
39
|
+
".theme-streak — laranja da SEQUENCIA (streak): chama, dias seguidos",
|
|
40
|
+
".theme-positive — esmeralda de STATUS de sucesso/confirmacao (toast, alert, badge success)",
|
|
41
|
+
".theme-warning — ambar de alerta",
|
|
42
|
+
".theme-critical — vermelho de erro",
|
|
43
|
+
".theme-group — Group Talk. DEPRECIADO na 1.x (ainda verde, alias de theme-progress); vira AMARELO (Sol) na 2.0. Use so para o PRODUTO Group Talk",
|
|
44
|
+
".theme-private — Private Talk. DEPRECIADO na 1.x (ainda laranja, alias de theme-streak); vira AMARELO (Limao) na 2.0. Use so para o PRODUTO Private Talk",
|
|
45
|
+
".theme-group-talk-next / .theme-private-talk-next — opt-in dos amarelos de produto na 1.x (saem na 2.0)",
|
|
46
|
+
],
|
|
47
|
+
gradients: [
|
|
48
|
+
"Cada .theme-* define --gradient-from e --gradient-to (ambos passam 4,5:1 contra --primary-foreground)",
|
|
49
|
+
"Presets (use COM um tema no elemento ou ancestral): .gradient-linear-{b,t,r,l,br,tr,bl,tl}, .gradient-glow-{tr,br,tl,bl,c}, .gradient-spotlight, .gradient-mesh, .gradient-band",
|
|
50
|
+
"Pontes de familia (somar ao preset): .gradient-practice (Group Talk → Private Talk), .gradient-learning (Impulse → Class)",
|
|
51
|
+
"Exemplo: <div className=\"theme-class gradient-linear-br text-primary-foreground\">",
|
|
52
|
+
"Onde usar: cards de produto preenchidos, bloco do icone e selos de produto. NUNCA em botoes, texto, inputs ou barras de progresso",
|
|
53
|
+
"NUNCA escrever linear-gradient/bg-linear-* com cores proprias — sempre os presets .gradient-*",
|
|
54
|
+
],
|
|
35
55
|
}
|
|
36
56
|
|
|
37
57
|
// ─── Tool Definitions ──────────────────────────────────────────────────────────
|
|
@@ -89,7 +109,7 @@ const TOOLS = [
|
|
|
89
109
|
properties: {
|
|
90
110
|
category: {
|
|
91
111
|
type: "string",
|
|
92
|
-
enum: ["colors", "typography", "radius", "themes", "all"],
|
|
112
|
+
enum: ["colors", "typography", "radius", "themes", "gradients", "all"],
|
|
93
113
|
description: "Token category to retrieve",
|
|
94
114
|
},
|
|
95
115
|
},
|
|
@@ -252,10 +272,10 @@ Se componentes aparecem sem estilo, verifique:
|
|
|
252
272
|
case "cycle_get_tokens": {
|
|
253
273
|
const cat = args.category || "all"
|
|
254
274
|
if (cat === "all") {
|
|
255
|
-
return `# Design Tokens do Cycle\n\n## Colors\nBackgrounds: ${TOKENS.colors.backgrounds.join(", ")}\nForegrounds: ${TOKENS.colors.foregrounds.join(", ")}\nBorders: ${TOKENS.colors.borders.join(", ")}\n\n## Typography\nBody: ${TOKENS.typography.body.join(", ")}\nHeading: ${TOKENS.typography.heading.join(", ")}\n\n## Radius\n${TOKENS.radius.join(", ")}\n\n## Themes\n${TOKENS.themes.join("
|
|
275
|
+
return `# Design Tokens do Cycle\n\n## Colors\nBackgrounds: ${TOKENS.colors.backgrounds.join(", ")}\nForegrounds: ${TOKENS.colors.foregrounds.join(", ")}\nBorders: ${TOKENS.colors.borders.join(", ")}\n\n## Typography\nBody: ${TOKENS.typography.body.join(", ")}\nHeading: ${TOKENS.typography.heading.join(", ")}\n\n## Radius\n${TOKENS.radius.join(", ")}\n\n## Themes\n- ${TOKENS.themes.join("\n- ")}\n\n## Gradients\n- ${TOKENS.gradients.join("\n- ")}\n\n**NUNCA usar cores hardcoded** (bg-blue-500, #hex). Sempre usar semantic tokens.`
|
|
256
276
|
}
|
|
257
277
|
const data = TOKENS[cat]
|
|
258
|
-
if (!data) return `Unknown category "${cat}". Available: colors, typography, radius, themes, all.`
|
|
278
|
+
if (!data) return `Unknown category "${cat}". Available: colors, typography, radius, themes, gradients, all.`
|
|
259
279
|
return `# ${cat} tokens\n\n${JSON.stringify(data, null, 2)}\n\n**NUNCA usar valores hardcoded.** Sempre usar estes semantic tokens.`
|
|
260
280
|
}
|
|
261
281
|
|
|
@@ -330,6 +350,7 @@ Sempre importar de \`@fluencypassdevs/cycle\`.
|
|
|
330
350
|
10. Usar \`cn()\` de \`@fluencypassdevs/cycle/lib/utils\` para merge de classes
|
|
331
351
|
11. Dark mode via classe \`.dark\` — tokens light/dark ja estao definidos
|
|
332
352
|
12. Usar variaveis de radius (rounded-sm, rounded-md, rounded-lg, rounded-xl)
|
|
353
|
+
12b. Tema pelo SENTIDO, nao pela cor: progresso/acerto/etapa concluida → \`theme-progress\`; sequencia/streak → \`theme-streak\`; sucesso de status → \`theme-positive\`; produto Group Talk → \`theme-group\`; produto Private Talk → \`theme-private\`. NUNCA usar \`theme-group\`/\`theme-private\` so por querer verde/laranja — eles viram amarelo na 2.0
|
|
333
354
|
|
|
334
355
|
## Regras de Codigo
|
|
335
356
|
13. TypeScript strict — tipar todas as props, nunca usar \`any\`
|
|
@@ -72,5 +72,5 @@ function ProgressDot(_a) {
|
|
|
72
72
|
}
|
|
73
73
|
|
|
74
74
|
export { ProgressDot, dotVariants, progressDotVariants };
|
|
75
|
-
//# sourceMappingURL=chunk-
|
|
76
|
-
//# sourceMappingURL=chunk-
|
|
75
|
+
//# sourceMappingURL=chunk-SQRNXYYD.js.map
|
|
76
|
+
//# sourceMappingURL=chunk-SQRNXYYD.js.map
|
|
@@ -1 +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-
|
|
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-SQRNXYYD.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-streak\"]). 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
|
@@ -32,7 +32,7 @@ export { Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, Ava
|
|
|
32
32
|
export { MessageRating } from './chunk-YIOXPV2N.js';
|
|
33
33
|
export { MessageBar } from './chunk-5AH2PNYW.js';
|
|
34
34
|
export { ProgressStage } from './chunk-OM4W6UQG.js';
|
|
35
|
-
export { ProgressDot, dotVariants, progressDotVariants } from './chunk-
|
|
35
|
+
export { ProgressDot, dotVariants, progressDotVariants } from './chunk-SQRNXYYD.js';
|
|
36
36
|
export { CircularProgress, circularProgressVariants } from './chunk-2NVKK7UB.js';
|
|
37
37
|
export { ERROR_STATE_PRESETS, ErrorState, ErrorStateActions, ErrorStateDescription, ErrorStateMedia, ErrorStateMeta, ErrorStateTitle } from './chunk-J3QIX7EZ.js';
|
|
38
38
|
export { StatusBanner, useCountdown } from './chunk-VMUNB4RA.js';
|
package/dist/styles/tokens.css
CHANGED
|
@@ -77,6 +77,20 @@
|
|
|
77
77
|
--color-red-600: #8F1717;
|
|
78
78
|
--color-red-700: #6B1010;
|
|
79
79
|
--color-red-900: #470A0A;
|
|
80
|
+
--color-yellow-50: #FEF6DC;
|
|
81
|
+
--color-yellow-100: #FBECBB;
|
|
82
|
+
--color-yellow-400: #F7CE45;
|
|
83
|
+
--color-yellow-500: #F6C523;
|
|
84
|
+
--color-yellow-600: #DAAA0B;
|
|
85
|
+
--color-yellow-700: #795E06;
|
|
86
|
+
--color-yellow-900: #685103;
|
|
87
|
+
--color-lemon-50: #FEFBDC;
|
|
88
|
+
--color-lemon-100: #FBF5BB;
|
|
89
|
+
--color-lemon-400: #F7E545;
|
|
90
|
+
--color-lemon-500: #F5DF14;
|
|
91
|
+
--color-lemon-600: #DAC50B;
|
|
92
|
+
--color-lemon-700: #6F6506;
|
|
93
|
+
--color-lemon-900: #5E5502;
|
|
80
94
|
--radius-base: 0.625rem;
|
|
81
95
|
--tracking-tighter: -0.05em;
|
|
82
96
|
--tracking-tight: -0.025em;
|
|
@@ -349,6 +363,8 @@
|
|
|
349
363
|
--border: #D45558;
|
|
350
364
|
--input: #ED6A6D;
|
|
351
365
|
--ring: #B33E41;
|
|
366
|
+
--gradient-from: #940538;
|
|
367
|
+
--gradient-to: #D04649;
|
|
352
368
|
}
|
|
353
369
|
|
|
354
370
|
.theme-class {
|
|
@@ -369,8 +385,13 @@
|
|
|
369
385
|
--border: #1A5FE0;
|
|
370
386
|
--input: #2E74FF;
|
|
371
387
|
--ring: #0F4BBC;
|
|
388
|
+
--gradient-from: #112FBE;
|
|
389
|
+
--gradient-to: #1A5FE0;
|
|
372
390
|
}
|
|
373
391
|
|
|
392
|
+
/* theme-streak: laranja da sequência (streak). theme-private é alias DEPRECIADO
|
|
393
|
+
com os mesmos valores — na 2.0 passa a ser o amarelo do Private Talk. */
|
|
394
|
+
.theme-streak,
|
|
374
395
|
.theme-private {
|
|
375
396
|
--background: #FFEDE0;
|
|
376
397
|
--foreground: #BC4818;
|
|
@@ -389,8 +410,13 @@
|
|
|
389
410
|
--border: #E56530;
|
|
390
411
|
--input: #FF8041;
|
|
391
412
|
--ring: #BF4D20;
|
|
413
|
+
--gradient-from: #8E1F03;
|
|
414
|
+
--gradient-to: #CB4E1A;
|
|
392
415
|
}
|
|
393
416
|
|
|
417
|
+
/* theme-progress: verde de avanço/acerto. theme-group é alias DEPRECIADO com os
|
|
418
|
+
mesmos valores — na 2.0 passa a ser o amarelo do Group Talk. */
|
|
419
|
+
.theme-progress,
|
|
394
420
|
.theme-group {
|
|
395
421
|
--background: #E0FFE9;
|
|
396
422
|
--foreground: #008423;
|
|
@@ -409,6 +435,8 @@
|
|
|
409
435
|
--border: #00C234;
|
|
410
436
|
--input: #00E73E;
|
|
411
437
|
--ring: #009929;
|
|
438
|
+
--gradient-from: #15D886;
|
|
439
|
+
--gradient-to: #00C234;
|
|
412
440
|
}
|
|
413
441
|
|
|
414
442
|
.theme-impulse {
|
|
@@ -429,6 +457,8 @@
|
|
|
429
457
|
--border: #7D0DD4;
|
|
430
458
|
--input: #9810FA;
|
|
431
459
|
--ring: #6209A8;
|
|
460
|
+
--gradient-from: #4901A0;
|
|
461
|
+
--gradient-to: #7D0DD4;
|
|
432
462
|
}
|
|
433
463
|
|
|
434
464
|
.theme-positive {
|
|
@@ -449,6 +479,8 @@
|
|
|
449
479
|
--border: #098A5E;
|
|
450
480
|
--input: #0BA370;
|
|
451
481
|
--ring: #07704C;
|
|
482
|
+
--gradient-from: #01682D;
|
|
483
|
+
--gradient-to: #09875C;
|
|
452
484
|
}
|
|
453
485
|
|
|
454
486
|
.theme-warning {
|
|
@@ -469,6 +501,8 @@
|
|
|
469
501
|
--border: #D48E00;
|
|
470
502
|
--input: #F5A800;
|
|
471
503
|
--ring: #AA7200;
|
|
504
|
+
--gradient-from: #7F4F06;
|
|
505
|
+
--gradient-to: #A16C00;
|
|
472
506
|
}
|
|
473
507
|
|
|
474
508
|
.theme-critical {
|
|
@@ -489,6 +523,56 @@
|
|
|
489
523
|
--border: #B32020;
|
|
490
524
|
--input: #D42B2B;
|
|
491
525
|
--ring: #8F1717;
|
|
526
|
+
--gradient-from: #87051E;
|
|
527
|
+
--gradient-to: #B32020;
|
|
528
|
+
}
|
|
529
|
+
|
|
530
|
+
/* ─── Amarelos de produto (OPT-IN da 1.x) ───
|
|
531
|
+
Group Talk (Sol) e Private Talk (Limão). Na 2.0 estes valores passam para
|
|
532
|
+
.theme-group e .theme-private e os nomes "-next" saem. Preenchimento amarelo
|
|
533
|
+
sempre com texto escuro: branco sobre amarelo nunca chega a 4,5:1. */
|
|
534
|
+
.theme-group-talk-next {
|
|
535
|
+
--background: #FEF6DC;
|
|
536
|
+
--foreground: #896A04;
|
|
537
|
+
--card: #FEF6DC;
|
|
538
|
+
--card-foreground: #896A04;
|
|
539
|
+
--popover: #FEF6DC;
|
|
540
|
+
--popover-foreground: #896A04;
|
|
541
|
+
--muted: #FBECBB;
|
|
542
|
+
--muted-foreground: #795E06;
|
|
543
|
+
--accent: #FEF6DC;
|
|
544
|
+
--accent-foreground: #685103;
|
|
545
|
+
--primary: #F6C523;
|
|
546
|
+
--primary-foreground: #1A1400;
|
|
547
|
+
--secondary: #FEF6DC;
|
|
548
|
+
--secondary-foreground: #0a0a0a;
|
|
549
|
+
--border: #F6C523;
|
|
550
|
+
--input: #F7CE45;
|
|
551
|
+
--ring: #DAAA0B;
|
|
552
|
+
--gradient-from: #FFE268;
|
|
553
|
+
--gradient-to: #F6C523;
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
.theme-private-talk-next {
|
|
557
|
+
--background: #FEFBDC;
|
|
558
|
+
--foreground: #7F7203;
|
|
559
|
+
--card: #FEFBDC;
|
|
560
|
+
--card-foreground: #7F7203;
|
|
561
|
+
--popover: #FEFBDC;
|
|
562
|
+
--popover-foreground: #7F7203;
|
|
563
|
+
--muted: #FBF5BB;
|
|
564
|
+
--muted-foreground: #6F6506;
|
|
565
|
+
--accent: #FEFBDC;
|
|
566
|
+
--accent-foreground: #5E5502;
|
|
567
|
+
--primary: #F5DF14;
|
|
568
|
+
--primary-foreground: #1A1400;
|
|
569
|
+
--secondary: #FEFBDC;
|
|
570
|
+
--secondary-foreground: #0a0a0a;
|
|
571
|
+
--border: #F5DF14;
|
|
572
|
+
--input: #F7E545;
|
|
573
|
+
--ring: #DAC50B;
|
|
574
|
+
--gradient-from: #FFF65C;
|
|
575
|
+
--gradient-to: #F5DF14;
|
|
492
576
|
}
|
|
493
577
|
|
|
494
578
|
/* === Theme Variations: Dark Mode === */
|
|
@@ -505,13 +589,15 @@
|
|
|
505
589
|
--muted-foreground: #FFB0B2;
|
|
506
590
|
--accent: rgba(237, 106, 109, 0.3);
|
|
507
591
|
--accent-foreground: #FFE8E8;
|
|
508
|
-
--primary: #
|
|
592
|
+
--primary: #CB4B51;
|
|
509
593
|
--primary-foreground: #FFFFFF;
|
|
510
594
|
--secondary: rgba(237, 106, 109, 0.1);
|
|
511
595
|
--secondary-foreground: #ffffff;
|
|
512
596
|
--border: #ED6A6D;
|
|
513
597
|
--input: #F57B7E;
|
|
514
598
|
--ring: #F57B7E;
|
|
599
|
+
--gradient-from: #93073C;
|
|
600
|
+
--gradient-to: #CB4B51;
|
|
515
601
|
}
|
|
516
602
|
|
|
517
603
|
.dark .theme-class,
|
|
@@ -533,8 +619,12 @@
|
|
|
533
619
|
--border: #2E74FF;
|
|
534
620
|
--input: #4D8AFF;
|
|
535
621
|
--ring: #4D8AFF;
|
|
622
|
+
--gradient-from: #1B3ADC;
|
|
623
|
+
--gradient-to: #226CFF;
|
|
536
624
|
}
|
|
537
625
|
|
|
626
|
+
.dark .theme-streak,
|
|
627
|
+
.theme-streak:is(.dark *),
|
|
538
628
|
.dark .theme-private,
|
|
539
629
|
.theme-private:is(.dark *) {
|
|
540
630
|
--background: rgba(255, 128, 65, 0.1);
|
|
@@ -554,8 +644,12 @@
|
|
|
554
644
|
--border: #FF8041;
|
|
555
645
|
--input: #FF9158;
|
|
556
646
|
--ring: #FF9158;
|
|
647
|
+
--gradient-from: #911C01;
|
|
648
|
+
--gradient-to: #D34600;
|
|
557
649
|
}
|
|
558
650
|
|
|
651
|
+
.dark .theme-progress,
|
|
652
|
+
.theme-progress:is(.dark *),
|
|
559
653
|
.dark .theme-group,
|
|
560
654
|
.theme-group:is(.dark *) {
|
|
561
655
|
--background: rgba(0, 231, 62, 0.1);
|
|
@@ -575,6 +669,8 @@
|
|
|
575
669
|
--border: #00E73E;
|
|
576
670
|
--input: #1AFF61;
|
|
577
671
|
--ring: #1AFF61;
|
|
672
|
+
--gradient-from: #0AFD9C;
|
|
673
|
+
--gradient-to: #00E73E;
|
|
578
674
|
}
|
|
579
675
|
|
|
580
676
|
.dark .theme-impulse,
|
|
@@ -596,6 +692,8 @@
|
|
|
596
692
|
--border: #9810FA;
|
|
597
693
|
--input: #B844FF;
|
|
598
694
|
--ring: #B844FF;
|
|
695
|
+
--gradient-from: #5F04C7;
|
|
696
|
+
--gradient-to: #9810FA;
|
|
599
697
|
}
|
|
600
698
|
|
|
601
699
|
.dark .theme-positive,
|
|
@@ -617,6 +715,8 @@
|
|
|
617
715
|
--border: #0BA370;
|
|
618
716
|
--input: #1EC485;
|
|
619
717
|
--ring: #1EC485;
|
|
718
|
+
--gradient-from: #086830;
|
|
719
|
+
--gradient-to: #09875D;
|
|
620
720
|
}
|
|
621
721
|
|
|
622
722
|
.dark .theme-warning,
|
|
@@ -638,6 +738,8 @@
|
|
|
638
738
|
--border: #F5A800;
|
|
639
739
|
--input: #FDC028;
|
|
640
740
|
--ring: #FDC028;
|
|
741
|
+
--gradient-from: #FEBD2C;
|
|
742
|
+
--gradient-to: #F5A800;
|
|
641
743
|
}
|
|
642
744
|
|
|
643
745
|
.dark .theme-critical,
|
|
@@ -659,7 +761,156 @@
|
|
|
659
761
|
--border: #D42B2B;
|
|
660
762
|
--input: #ED5555;
|
|
661
763
|
--ring: #ED5555;
|
|
662
|
-
|
|
764
|
+
--gradient-from: #AA0228;
|
|
765
|
+
--gradient-to: #D42B2B;
|
|
766
|
+
}
|
|
767
|
+
|
|
768
|
+
.dark .theme-group-talk-next,
|
|
769
|
+
.theme-group-talk-next:is(.dark *) {
|
|
770
|
+
--background: rgba(250, 205, 56, 0.1);
|
|
771
|
+
--foreground: #FACD38;
|
|
772
|
+
--card: rgba(250, 205, 56, 0.1);
|
|
773
|
+
--card-foreground: #FACD38;
|
|
774
|
+
--popover: rgba(250, 205, 56, 0.1);
|
|
775
|
+
--popover-foreground: #FACD38;
|
|
776
|
+
--muted: rgba(250, 205, 56, 0.2);
|
|
777
|
+
--muted-foreground: #FCE69C;
|
|
778
|
+
--accent: rgba(250, 205, 56, 0.3);
|
|
779
|
+
--accent-foreground: #FEF6DC;
|
|
780
|
+
--primary: #FACD38;
|
|
781
|
+
--primary-foreground: #0a0a0a;
|
|
782
|
+
--secondary: rgba(250, 205, 56, 0.1);
|
|
783
|
+
--secondary-foreground: #ffffff;
|
|
784
|
+
--border: #FACD38;
|
|
785
|
+
--input: #FBD760;
|
|
786
|
+
--ring: #FBD760;
|
|
787
|
+
--gradient-from: #FFEA8C;
|
|
788
|
+
--gradient-to: #FACD38;
|
|
789
|
+
}
|
|
790
|
+
|
|
791
|
+
.dark .theme-private-talk-next,
|
|
792
|
+
.theme-private-talk-next:is(.dark *) {
|
|
793
|
+
--background: rgba(250, 231, 56, 0.1);
|
|
794
|
+
--foreground: #FAE738;
|
|
795
|
+
--card: rgba(250, 231, 56, 0.1);
|
|
796
|
+
--card-foreground: #FAE738;
|
|
797
|
+
--popover: rgba(250, 231, 56, 0.1);
|
|
798
|
+
--popover-foreground: #FAE738;
|
|
799
|
+
--muted: rgba(250, 231, 56, 0.2);
|
|
800
|
+
--muted-foreground: #FCF39C;
|
|
801
|
+
--accent: rgba(250, 231, 56, 0.3);
|
|
802
|
+
--accent-foreground: #FEFBDC;
|
|
803
|
+
--primary: #FAE738;
|
|
804
|
+
--primary-foreground: #0a0a0a;
|
|
805
|
+
--secondary: rgba(250, 231, 56, 0.1);
|
|
806
|
+
--secondary-foreground: #ffffff;
|
|
807
|
+
--border: #FAE738;
|
|
808
|
+
--input: #FBEB60;
|
|
809
|
+
--ring: #FBEB60;
|
|
810
|
+
--gradient-from: #FFFB91;
|
|
811
|
+
--gradient-to: #FAE738;
|
|
812
|
+
}
|
|
813
|
+
|
|
814
|
+
/* >>> cycle-gradients — catálogo de degradês (1.34.0)
|
|
815
|
+
Uso: tema + preset no mesmo elemento (ou tema num ancestral):
|
|
816
|
+
<div className="theme-class gradient-linear-br text-primary-foreground">…</div>
|
|
817
|
+
Ponte de família: some a classe da ponte (troca os dois tons):
|
|
818
|
+
<div className="theme-group-talk-next gradient-practice gradient-linear-r">…</div>
|
|
819
|
+
Regras: interpolação em OKLCH (a 1ª declaração é a reserva sem "in oklch");
|
|
820
|
+
os dois tons de cada tema passam 4,5:1 contra --primary-foreground, então
|
|
821
|
+
qualquer preset/direção é seguro para o texto do preenchimento.
|
|
822
|
+
Escopo: cards de produto preenchidos, bloco do ícone e selos de produto —
|
|
823
|
+
não usar em botões, texto, inputs ou barras de progresso.
|
|
824
|
+
Esta seção é IDÊNTICA em tokens.css e globals.css (travado por teste). */
|
|
825
|
+
|
|
826
|
+
/* Pontes de família */
|
|
827
|
+
.gradient-practice { /* Group Talk → Private Talk (Sol → Limão) */
|
|
828
|
+
--gradient-from: #F6C523;
|
|
829
|
+
--gradient-to: #F5DF14;
|
|
830
|
+
}
|
|
831
|
+
.dark .gradient-practice,
|
|
832
|
+
.gradient-practice:is(.dark *) {
|
|
833
|
+
--gradient-from: #FACD38;
|
|
834
|
+
--gradient-to: #FAE738;
|
|
835
|
+
}
|
|
836
|
+
.gradient-learning { /* Impulse → Class */
|
|
837
|
+
--gradient-from: #7D0DD4;
|
|
838
|
+
--gradient-to: #1A5FE0;
|
|
839
|
+
}
|
|
840
|
+
.dark .gradient-learning,
|
|
841
|
+
.gradient-learning:is(.dark *) {
|
|
842
|
+
--gradient-from: #9810FA;
|
|
843
|
+
--gradient-to: #226CFF;
|
|
844
|
+
}
|
|
845
|
+
|
|
846
|
+
/* Linear — a ponta de mais contraste (--gradient-from) sai do lado oposto à direção. */
|
|
847
|
+
.gradient-linear-b { /* para baixo */
|
|
848
|
+
background-image: linear-gradient(180deg, var(--gradient-from), var(--gradient-to));
|
|
849
|
+
background-image: linear-gradient(180deg in oklch, var(--gradient-from), var(--gradient-to));
|
|
850
|
+
}
|
|
851
|
+
.gradient-linear-t { /* para cima */
|
|
852
|
+
background-image: linear-gradient(0deg, var(--gradient-from), var(--gradient-to));
|
|
853
|
+
background-image: linear-gradient(0deg in oklch, var(--gradient-from), var(--gradient-to));
|
|
854
|
+
}
|
|
855
|
+
.gradient-linear-r { /* para a direita */
|
|
856
|
+
background-image: linear-gradient(90deg, var(--gradient-from), var(--gradient-to));
|
|
857
|
+
background-image: linear-gradient(90deg in oklch, var(--gradient-from), var(--gradient-to));
|
|
858
|
+
}
|
|
859
|
+
.gradient-linear-l { /* para a esquerda */
|
|
860
|
+
background-image: linear-gradient(270deg, var(--gradient-from), var(--gradient-to));
|
|
861
|
+
background-image: linear-gradient(270deg in oklch, var(--gradient-from), var(--gradient-to));
|
|
862
|
+
}
|
|
863
|
+
.gradient-linear-br { /* diagonal ↘ (padrão) */
|
|
864
|
+
background-image: linear-gradient(135deg, var(--gradient-from), var(--gradient-to));
|
|
865
|
+
background-image: linear-gradient(135deg in oklch, var(--gradient-from), var(--gradient-to));
|
|
866
|
+
}
|
|
867
|
+
.gradient-linear-tr { /* diagonal ↗ */
|
|
868
|
+
background-image: linear-gradient(45deg, var(--gradient-from), var(--gradient-to));
|
|
869
|
+
background-image: linear-gradient(45deg in oklch, var(--gradient-from), var(--gradient-to));
|
|
870
|
+
}
|
|
871
|
+
.gradient-linear-bl { /* diagonal ↙ */
|
|
872
|
+
background-image: linear-gradient(225deg, var(--gradient-from), var(--gradient-to));
|
|
873
|
+
background-image: linear-gradient(225deg in oklch, var(--gradient-from), var(--gradient-to));
|
|
874
|
+
}
|
|
875
|
+
.gradient-linear-tl { /* diagonal ↖ */
|
|
876
|
+
background-image: linear-gradient(315deg, var(--gradient-from), var(--gradient-to));
|
|
877
|
+
background-image: linear-gradient(315deg in oklch, var(--gradient-from), var(--gradient-to));
|
|
878
|
+
}
|
|
879
|
+
/* Radial — brilho na cor do tema (--gradient-to) no ponto indicado. */
|
|
880
|
+
.gradient-glow-tr { /* canto superior direito */
|
|
881
|
+
background-image: radial-gradient(120% 120% at 100% 0%, var(--gradient-to), var(--gradient-from));
|
|
882
|
+
background-image: radial-gradient(120% 120% at 100% 0% in oklch, var(--gradient-to), var(--gradient-from));
|
|
883
|
+
}
|
|
884
|
+
.gradient-glow-br { /* canto inferior direito */
|
|
885
|
+
background-image: radial-gradient(120% 120% at 100% 100%, var(--gradient-to), var(--gradient-from));
|
|
886
|
+
background-image: radial-gradient(120% 120% at 100% 100% in oklch, var(--gradient-to), var(--gradient-from));
|
|
887
|
+
}
|
|
888
|
+
.gradient-glow-tl { /* canto superior esquerdo */
|
|
889
|
+
background-image: radial-gradient(120% 120% at 0% 0%, var(--gradient-to), var(--gradient-from));
|
|
890
|
+
background-image: radial-gradient(120% 120% at 0% 0% in oklch, var(--gradient-to), var(--gradient-from));
|
|
891
|
+
}
|
|
892
|
+
.gradient-glow-bl { /* canto inferior esquerdo */
|
|
893
|
+
background-image: radial-gradient(120% 120% at 0% 100%, var(--gradient-to), var(--gradient-from));
|
|
894
|
+
background-image: radial-gradient(120% 120% at 0% 100% in oklch, var(--gradient-to), var(--gradient-from));
|
|
895
|
+
}
|
|
896
|
+
.gradient-glow-c { /* centro */
|
|
897
|
+
background-image: radial-gradient(90% 90% at 50% 50%, var(--gradient-to), var(--gradient-from));
|
|
898
|
+
background-image: radial-gradient(90% 90% at 50% 50% in oklch, var(--gradient-to), var(--gradient-from));
|
|
899
|
+
}
|
|
900
|
+
/* Compostos */
|
|
901
|
+
.gradient-spotlight { /* holofote à direita sobre a ponta de contraste (texto à esquerda) */
|
|
902
|
+
background-image: radial-gradient(60% 90% at 85% 55%, var(--gradient-to), transparent), linear-gradient(var(--gradient-from), var(--gradient-from));
|
|
903
|
+
background-image: radial-gradient(60% 90% at 85% 55% in oklch, var(--gradient-to), transparent), linear-gradient(var(--gradient-from), var(--gradient-from));
|
|
904
|
+
}
|
|
905
|
+
.gradient-mesh { /* malha com dois focos */
|
|
906
|
+
background-image: radial-gradient(70% 70% at 0% 0%, var(--gradient-from), transparent), radial-gradient(80% 80% at 100% 100%, var(--gradient-to), transparent), linear-gradient(135deg, var(--gradient-from), var(--gradient-to));
|
|
907
|
+
background-image: radial-gradient(70% 70% at 0% 0% in oklch, var(--gradient-from), transparent), radial-gradient(80% 80% at 100% 100% in oklch, var(--gradient-to), transparent), linear-gradient(135deg in oklch, var(--gradient-from), var(--gradient-to));
|
|
908
|
+
}
|
|
909
|
+
.gradient-band { /* faixa diagonal: ponta de contraste firme até 35% */
|
|
910
|
+
background-image: linear-gradient(135deg, var(--gradient-from) 0%, var(--gradient-from) 35%, var(--gradient-to) 100%);
|
|
911
|
+
background-image: linear-gradient(135deg in oklch, var(--gradient-from) 0%, var(--gradient-from) 35%, var(--gradient-to) 100%);
|
|
912
|
+
}
|
|
913
|
+
/* <<< cycle-gradients */
|
|
663
914
|
|
|
664
915
|
/* === Base layer === */
|
|
665
916
|
@layer base {
|
|
@@ -16,7 +16,7 @@ interface ProgressDotProps extends React.ComponentProps<"div">, VariantProps<typ
|
|
|
16
16
|
value: number;
|
|
17
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-
|
|
19
|
+
/** Temas individuais por dot (ex: ["theme-class", "theme-brand", undefined, "theme-streak"]). Sobrescreve `theme` para dots que tiverem valor. */
|
|
20
20
|
themes?: (string | undefined)[];
|
|
21
21
|
}
|
|
22
22
|
declare function ProgressDot({ stages, value, size, theme, themes, className, ...props }: ProgressDotProps): react_jsx_runtime.JSX.Element;
|
package/dist/ui/progress-dot.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
export { ProgressDot, dotVariants, progressDotVariants } from '../chunk-
|
|
2
|
+
export { ProgressDot, dotVariants, progressDotVariants } from '../chunk-SQRNXYYD.js';
|
|
3
3
|
import '../chunk-LYTC7UMN.js';
|
|
4
4
|
import '../chunk-W4KJCBMW.js';
|
|
5
5
|
import '../chunk-2NMEKWO5.js';
|