@fluencypassdevs/cycle 1.33.1 → 1.35.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 +28 -7
- 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 +293 -27
- 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
|
@@ -21,9 +21,9 @@ import { COMPONENTS } from "./components.generated.mjs"
|
|
|
21
21
|
|
|
22
22
|
const TOKENS = {
|
|
23
23
|
colors: {
|
|
24
|
-
backgrounds: ["bg-background", "bg-card", "bg-popover", "bg-primary", "bg-secondary", "bg-muted", "bg-accent", "bg-destructive"],
|
|
25
|
-
foregrounds: ["text-foreground", "text-card-foreground", "text-popover-foreground", "text-primary-foreground", "text-secondary-foreground", "text-muted-foreground", "text-accent-foreground", "text-destructive-foreground"],
|
|
26
|
-
borders: ["border-border", "border-input"],
|
|
24
|
+
backgrounds: ["bg-background", "bg-card", "bg-popover", "bg-primary", "bg-secondary", "bg-muted", "bg-accent", "bg-destructive", "bg-surface-raised (elemento DENTRO de um card: chip, card interno — branco no light, mais claro que o card no dark)"],
|
|
25
|
+
foregrounds: ["text-foreground", "text-card-foreground", "text-popover-foreground", "text-primary-foreground", "text-secondary-foreground", "text-muted-foreground", "text-accent-foreground", "text-destructive-foreground", "text-surface-raised-foreground"],
|
|
26
|
+
borders: ["border-border (decorativa)", "border-input", "border-border-strong (borda de campo/horario selecionavel — 3:1 contra fundo, card e surface-raised)"],
|
|
27
27
|
semantic: ["bg-positive", "bg-warning", "bg-critical", "bg-info"],
|
|
28
28
|
},
|
|
29
29
|
radius: ["rounded-sm", "rounded-md", "rounded-lg", "rounded-xl"],
|
|
@@ -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
|
@@ -9,17 +9,20 @@
|
|
|
9
9
|
:root {
|
|
10
10
|
--color-base-white: #FFFFFF;
|
|
11
11
|
--color-base-black: #000000;
|
|
12
|
-
--color-gray-50: #
|
|
13
|
-
--color-gray-100: #
|
|
14
|
-
--color-gray-200: #
|
|
15
|
-
--color-gray-300: #
|
|
16
|
-
--color-gray-400: #
|
|
12
|
+
--color-gray-50: #F9FAFB;
|
|
13
|
+
--color-gray-100: #F4F5F7;
|
|
14
|
+
--color-gray-200: #E9EAED;
|
|
15
|
+
--color-gray-300: #D5D7DB;
|
|
16
|
+
--color-gray-400: #A3A7AE;
|
|
17
|
+
--color-gray-450: #898E96;
|
|
17
18
|
--color-gray-500: #717680;
|
|
18
19
|
--color-gray-600: #535862;
|
|
19
|
-
--color-gray-700: #
|
|
20
|
-
--color-gray-800: #
|
|
21
|
-
--color-gray-
|
|
22
|
-
--color-gray-
|
|
20
|
+
--color-gray-700: #414650;
|
|
21
|
+
--color-gray-800: #30353F;
|
|
22
|
+
--color-gray-850: #262A33;
|
|
23
|
+
--color-gray-900: #1B1F27;
|
|
24
|
+
--color-gray-925: #13161D;
|
|
25
|
+
--color-gray-950: #0B0E13;
|
|
23
26
|
--color-brand-50: #FFE8E8;
|
|
24
27
|
--color-brand-100: #FFD0D1;
|
|
25
28
|
--color-brand-200: #FFB0B2;
|
|
@@ -77,6 +80,20 @@
|
|
|
77
80
|
--color-red-600: #8F1717;
|
|
78
81
|
--color-red-700: #6B1010;
|
|
79
82
|
--color-red-900: #470A0A;
|
|
83
|
+
--color-yellow-50: #FEF6DC;
|
|
84
|
+
--color-yellow-100: #FBECBB;
|
|
85
|
+
--color-yellow-400: #F7CE45;
|
|
86
|
+
--color-yellow-500: #F6C523;
|
|
87
|
+
--color-yellow-600: #DAAA0B;
|
|
88
|
+
--color-yellow-700: #795E06;
|
|
89
|
+
--color-yellow-900: #685103;
|
|
90
|
+
--color-lemon-50: #FEFBDC;
|
|
91
|
+
--color-lemon-100: #FBF5BB;
|
|
92
|
+
--color-lemon-400: #F7E545;
|
|
93
|
+
--color-lemon-500: #F5DF14;
|
|
94
|
+
--color-lemon-600: #DAC50B;
|
|
95
|
+
--color-lemon-700: #6F6506;
|
|
96
|
+
--color-lemon-900: #5E5502;
|
|
80
97
|
--radius-base: 0.625rem;
|
|
81
98
|
--tracking-tighter: -0.05em;
|
|
82
99
|
--tracking-tight: -0.025em;
|
|
@@ -132,6 +149,9 @@
|
|
|
132
149
|
--color-info: var(--info);
|
|
133
150
|
--color-info-foreground: var(--info-foreground);
|
|
134
151
|
--color-border: var(--border);
|
|
152
|
+
--color-border-strong: var(--border-strong);
|
|
153
|
+
--color-surface-raised: var(--surface-raised);
|
|
154
|
+
--color-surface-raised-foreground: var(--surface-raised-foreground);
|
|
135
155
|
--color-input: var(--input);
|
|
136
156
|
--color-ring: var(--ring);
|
|
137
157
|
--color-chart-1: var(--chart-1);
|
|
@@ -190,36 +210,42 @@
|
|
|
190
210
|
:root {
|
|
191
211
|
--base-white: #FFFFFF;
|
|
192
212
|
--base-black: #000000;
|
|
193
|
-
--gray-50: #
|
|
194
|
-
--gray-100: #
|
|
195
|
-
--gray-200: #
|
|
196
|
-
--gray-300: #
|
|
197
|
-
--gray-400: #
|
|
213
|
+
--gray-50: #F9FAFB;
|
|
214
|
+
--gray-100: #F4F5F7;
|
|
215
|
+
--gray-200: #E9EAED;
|
|
216
|
+
--gray-300: #D5D7DB;
|
|
217
|
+
--gray-400: #A3A7AE;
|
|
218
|
+
--gray-450: #898E96;
|
|
198
219
|
--gray-500: #717680;
|
|
199
220
|
--gray-600: #535862;
|
|
200
|
-
--gray-700: #
|
|
201
|
-
--gray-800: #
|
|
202
|
-
--gray-
|
|
203
|
-
--gray-
|
|
221
|
+
--gray-700: #414650;
|
|
222
|
+
--gray-800: #30353F;
|
|
223
|
+
--gray-850: #262A33;
|
|
224
|
+
--gray-900: #1B1F27;
|
|
225
|
+
--gray-925: #13161D;
|
|
226
|
+
--gray-950: #0B0E13;
|
|
204
227
|
}
|
|
205
228
|
|
|
206
229
|
/* === Light Mode: Neutral (global theme) === */
|
|
207
230
|
:root {
|
|
208
231
|
--background: var(--base-white);
|
|
209
232
|
--foreground: var(--gray-950);
|
|
210
|
-
--card: var(--
|
|
233
|
+
--card: var(--gray-200);
|
|
211
234
|
--card-foreground: var(--gray-950);
|
|
212
235
|
--popover: var(--base-white);
|
|
213
236
|
--popover-foreground: var(--gray-950);
|
|
237
|
+
--surface-raised: var(--base-white);
|
|
238
|
+
--surface-raised-foreground: var(--gray-950);
|
|
214
239
|
--muted: var(--gray-50);
|
|
215
240
|
--muted-foreground: var(--gray-600);
|
|
216
|
-
--accent: var(--gray-
|
|
241
|
+
--accent: var(--gray-200);
|
|
217
242
|
--accent-foreground: var(--gray-900);
|
|
218
243
|
--primary: var(--gray-950);
|
|
219
244
|
--primary-foreground: var(--gray-100);
|
|
220
245
|
--secondary: var(--gray-50);
|
|
221
246
|
--secondary-foreground: var(--gray-900);
|
|
222
247
|
--border: var(--gray-300);
|
|
248
|
+
--border-strong: var(--gray-500);
|
|
223
249
|
--input: var(--gray-200);
|
|
224
250
|
--ring: var(--gray-500);
|
|
225
251
|
--destructive: #B32020;
|
|
@@ -269,21 +295,24 @@
|
|
|
269
295
|
|
|
270
296
|
/* === Dark Mode: Neutral === */
|
|
271
297
|
.dark {
|
|
272
|
-
--background: var(--
|
|
298
|
+
--background: var(--gray-950);
|
|
273
299
|
--foreground: var(--gray-50);
|
|
274
|
-
--card: var(--gray-
|
|
300
|
+
--card: var(--gray-900);
|
|
275
301
|
--card-foreground: var(--gray-50);
|
|
276
|
-
--popover: var(--gray-
|
|
302
|
+
--popover: var(--gray-850);
|
|
277
303
|
--popover-foreground: var(--gray-50);
|
|
278
|
-
--
|
|
304
|
+
--surface-raised: var(--gray-850);
|
|
305
|
+
--surface-raised-foreground: var(--gray-50);
|
|
306
|
+
--muted: var(--gray-900);
|
|
279
307
|
--muted-foreground: var(--gray-400);
|
|
280
308
|
--accent: var(--gray-800);
|
|
281
309
|
--accent-foreground: var(--gray-50);
|
|
282
310
|
--primary: var(--base-white);
|
|
283
311
|
--primary-foreground: var(--gray-900);
|
|
284
|
-
--secondary: var(--gray-
|
|
312
|
+
--secondary: var(--gray-850);
|
|
285
313
|
--secondary-foreground: var(--gray-200);
|
|
286
314
|
--border: var(--gray-700);
|
|
315
|
+
--border-strong: var(--gray-500);
|
|
287
316
|
--input: var(--gray-800);
|
|
288
317
|
--ring: var(--gray-400);
|
|
289
318
|
--destructive: #D42B2B;
|
|
@@ -349,6 +378,8 @@
|
|
|
349
378
|
--border: #D45558;
|
|
350
379
|
--input: #ED6A6D;
|
|
351
380
|
--ring: #B33E41;
|
|
381
|
+
--gradient-from: #940538;
|
|
382
|
+
--gradient-to: #D04649;
|
|
352
383
|
}
|
|
353
384
|
|
|
354
385
|
.theme-class {
|
|
@@ -369,8 +400,13 @@
|
|
|
369
400
|
--border: #1A5FE0;
|
|
370
401
|
--input: #2E74FF;
|
|
371
402
|
--ring: #0F4BBC;
|
|
403
|
+
--gradient-from: #112FBE;
|
|
404
|
+
--gradient-to: #1A5FE0;
|
|
372
405
|
}
|
|
373
406
|
|
|
407
|
+
/* theme-streak: laranja da sequência (streak). theme-private é alias DEPRECIADO
|
|
408
|
+
com os mesmos valores — na 2.0 passa a ser o amarelo do Private Talk. */
|
|
409
|
+
.theme-streak,
|
|
374
410
|
.theme-private {
|
|
375
411
|
--background: #FFEDE0;
|
|
376
412
|
--foreground: #BC4818;
|
|
@@ -389,8 +425,13 @@
|
|
|
389
425
|
--border: #E56530;
|
|
390
426
|
--input: #FF8041;
|
|
391
427
|
--ring: #BF4D20;
|
|
428
|
+
--gradient-from: #8E1F03;
|
|
429
|
+
--gradient-to: #CB4E1A;
|
|
392
430
|
}
|
|
393
431
|
|
|
432
|
+
/* theme-progress: verde de avanço/acerto. theme-group é alias DEPRECIADO com os
|
|
433
|
+
mesmos valores — na 2.0 passa a ser o amarelo do Group Talk. */
|
|
434
|
+
.theme-progress,
|
|
394
435
|
.theme-group {
|
|
395
436
|
--background: #E0FFE9;
|
|
396
437
|
--foreground: #008423;
|
|
@@ -409,6 +450,8 @@
|
|
|
409
450
|
--border: #00C234;
|
|
410
451
|
--input: #00E73E;
|
|
411
452
|
--ring: #009929;
|
|
453
|
+
--gradient-from: #15D886;
|
|
454
|
+
--gradient-to: #00C234;
|
|
412
455
|
}
|
|
413
456
|
|
|
414
457
|
.theme-impulse {
|
|
@@ -429,6 +472,8 @@
|
|
|
429
472
|
--border: #7D0DD4;
|
|
430
473
|
--input: #9810FA;
|
|
431
474
|
--ring: #6209A8;
|
|
475
|
+
--gradient-from: #4901A0;
|
|
476
|
+
--gradient-to: #7D0DD4;
|
|
432
477
|
}
|
|
433
478
|
|
|
434
479
|
.theme-positive {
|
|
@@ -449,6 +494,8 @@
|
|
|
449
494
|
--border: #098A5E;
|
|
450
495
|
--input: #0BA370;
|
|
451
496
|
--ring: #07704C;
|
|
497
|
+
--gradient-from: #01682D;
|
|
498
|
+
--gradient-to: #09875C;
|
|
452
499
|
}
|
|
453
500
|
|
|
454
501
|
.theme-warning {
|
|
@@ -469,6 +516,8 @@
|
|
|
469
516
|
--border: #D48E00;
|
|
470
517
|
--input: #F5A800;
|
|
471
518
|
--ring: #AA7200;
|
|
519
|
+
--gradient-from: #7F4F06;
|
|
520
|
+
--gradient-to: #A16C00;
|
|
472
521
|
}
|
|
473
522
|
|
|
474
523
|
.theme-critical {
|
|
@@ -489,6 +538,56 @@
|
|
|
489
538
|
--border: #B32020;
|
|
490
539
|
--input: #D42B2B;
|
|
491
540
|
--ring: #8F1717;
|
|
541
|
+
--gradient-from: #87051E;
|
|
542
|
+
--gradient-to: #B32020;
|
|
543
|
+
}
|
|
544
|
+
|
|
545
|
+
/* ─── Amarelos de produto (OPT-IN da 1.x) ───
|
|
546
|
+
Group Talk (Sol) e Private Talk (Limão). Na 2.0 estes valores passam para
|
|
547
|
+
.theme-group e .theme-private e os nomes "-next" saem. Preenchimento amarelo
|
|
548
|
+
sempre com texto escuro: branco sobre amarelo nunca chega a 4,5:1. */
|
|
549
|
+
.theme-group-talk-next {
|
|
550
|
+
--background: #FEF6DC;
|
|
551
|
+
--foreground: #896A04;
|
|
552
|
+
--card: #FEF6DC;
|
|
553
|
+
--card-foreground: #896A04;
|
|
554
|
+
--popover: #FEF6DC;
|
|
555
|
+
--popover-foreground: #896A04;
|
|
556
|
+
--muted: #FBECBB;
|
|
557
|
+
--muted-foreground: #795E06;
|
|
558
|
+
--accent: #FEF6DC;
|
|
559
|
+
--accent-foreground: #685103;
|
|
560
|
+
--primary: #F6C523;
|
|
561
|
+
--primary-foreground: #1A1400;
|
|
562
|
+
--secondary: #FEF6DC;
|
|
563
|
+
--secondary-foreground: #0a0a0a;
|
|
564
|
+
--border: #F6C523;
|
|
565
|
+
--input: #F7CE45;
|
|
566
|
+
--ring: #DAAA0B;
|
|
567
|
+
--gradient-from: #FFE268;
|
|
568
|
+
--gradient-to: #F6C523;
|
|
569
|
+
}
|
|
570
|
+
|
|
571
|
+
.theme-private-talk-next {
|
|
572
|
+
--background: #FEFBDC;
|
|
573
|
+
--foreground: #7F7203;
|
|
574
|
+
--card: #FEFBDC;
|
|
575
|
+
--card-foreground: #7F7203;
|
|
576
|
+
--popover: #FEFBDC;
|
|
577
|
+
--popover-foreground: #7F7203;
|
|
578
|
+
--muted: #FBF5BB;
|
|
579
|
+
--muted-foreground: #6F6506;
|
|
580
|
+
--accent: #FEFBDC;
|
|
581
|
+
--accent-foreground: #5E5502;
|
|
582
|
+
--primary: #F5DF14;
|
|
583
|
+
--primary-foreground: #1A1400;
|
|
584
|
+
--secondary: #FEFBDC;
|
|
585
|
+
--secondary-foreground: #0a0a0a;
|
|
586
|
+
--border: #F5DF14;
|
|
587
|
+
--input: #F7E545;
|
|
588
|
+
--ring: #DAC50B;
|
|
589
|
+
--gradient-from: #FFF65C;
|
|
590
|
+
--gradient-to: #F5DF14;
|
|
492
591
|
}
|
|
493
592
|
|
|
494
593
|
/* === Theme Variations: Dark Mode === */
|
|
@@ -505,13 +604,15 @@
|
|
|
505
604
|
--muted-foreground: #FFB0B2;
|
|
506
605
|
--accent: rgba(237, 106, 109, 0.3);
|
|
507
606
|
--accent-foreground: #FFE8E8;
|
|
508
|
-
--primary: #
|
|
607
|
+
--primary: #CB4B51;
|
|
509
608
|
--primary-foreground: #FFFFFF;
|
|
510
609
|
--secondary: rgba(237, 106, 109, 0.1);
|
|
511
610
|
--secondary-foreground: #ffffff;
|
|
512
611
|
--border: #ED6A6D;
|
|
513
612
|
--input: #F57B7E;
|
|
514
613
|
--ring: #F57B7E;
|
|
614
|
+
--gradient-from: #93073C;
|
|
615
|
+
--gradient-to: #CB4B51;
|
|
515
616
|
}
|
|
516
617
|
|
|
517
618
|
.dark .theme-class,
|
|
@@ -533,8 +634,12 @@
|
|
|
533
634
|
--border: #2E74FF;
|
|
534
635
|
--input: #4D8AFF;
|
|
535
636
|
--ring: #4D8AFF;
|
|
637
|
+
--gradient-from: #1B3ADC;
|
|
638
|
+
--gradient-to: #226CFF;
|
|
536
639
|
}
|
|
537
640
|
|
|
641
|
+
.dark .theme-streak,
|
|
642
|
+
.theme-streak:is(.dark *),
|
|
538
643
|
.dark .theme-private,
|
|
539
644
|
.theme-private:is(.dark *) {
|
|
540
645
|
--background: rgba(255, 128, 65, 0.1);
|
|
@@ -554,8 +659,12 @@
|
|
|
554
659
|
--border: #FF8041;
|
|
555
660
|
--input: #FF9158;
|
|
556
661
|
--ring: #FF9158;
|
|
662
|
+
--gradient-from: #911C01;
|
|
663
|
+
--gradient-to: #D34600;
|
|
557
664
|
}
|
|
558
665
|
|
|
666
|
+
.dark .theme-progress,
|
|
667
|
+
.theme-progress:is(.dark *),
|
|
559
668
|
.dark .theme-group,
|
|
560
669
|
.theme-group:is(.dark *) {
|
|
561
670
|
--background: rgba(0, 231, 62, 0.1);
|
|
@@ -575,6 +684,8 @@
|
|
|
575
684
|
--border: #00E73E;
|
|
576
685
|
--input: #1AFF61;
|
|
577
686
|
--ring: #1AFF61;
|
|
687
|
+
--gradient-from: #0AFD9C;
|
|
688
|
+
--gradient-to: #00E73E;
|
|
578
689
|
}
|
|
579
690
|
|
|
580
691
|
.dark .theme-impulse,
|
|
@@ -596,6 +707,8 @@
|
|
|
596
707
|
--border: #9810FA;
|
|
597
708
|
--input: #B844FF;
|
|
598
709
|
--ring: #B844FF;
|
|
710
|
+
--gradient-from: #5F04C7;
|
|
711
|
+
--gradient-to: #9810FA;
|
|
599
712
|
}
|
|
600
713
|
|
|
601
714
|
.dark .theme-positive,
|
|
@@ -617,6 +730,8 @@
|
|
|
617
730
|
--border: #0BA370;
|
|
618
731
|
--input: #1EC485;
|
|
619
732
|
--ring: #1EC485;
|
|
733
|
+
--gradient-from: #086830;
|
|
734
|
+
--gradient-to: #09875D;
|
|
620
735
|
}
|
|
621
736
|
|
|
622
737
|
.dark .theme-warning,
|
|
@@ -638,6 +753,8 @@
|
|
|
638
753
|
--border: #F5A800;
|
|
639
754
|
--input: #FDC028;
|
|
640
755
|
--ring: #FDC028;
|
|
756
|
+
--gradient-from: #FEBD2C;
|
|
757
|
+
--gradient-to: #F5A800;
|
|
641
758
|
}
|
|
642
759
|
|
|
643
760
|
.dark .theme-critical,
|
|
@@ -659,7 +776,156 @@
|
|
|
659
776
|
--border: #D42B2B;
|
|
660
777
|
--input: #ED5555;
|
|
661
778
|
--ring: #ED5555;
|
|
662
|
-
|
|
779
|
+
--gradient-from: #AA0228;
|
|
780
|
+
--gradient-to: #D42B2B;
|
|
781
|
+
}
|
|
782
|
+
|
|
783
|
+
.dark .theme-group-talk-next,
|
|
784
|
+
.theme-group-talk-next:is(.dark *) {
|
|
785
|
+
--background: rgba(250, 205, 56, 0.1);
|
|
786
|
+
--foreground: #FACD38;
|
|
787
|
+
--card: rgba(250, 205, 56, 0.1);
|
|
788
|
+
--card-foreground: #FACD38;
|
|
789
|
+
--popover: rgba(250, 205, 56, 0.1);
|
|
790
|
+
--popover-foreground: #FACD38;
|
|
791
|
+
--muted: rgba(250, 205, 56, 0.2);
|
|
792
|
+
--muted-foreground: #FCE69C;
|
|
793
|
+
--accent: rgba(250, 205, 56, 0.3);
|
|
794
|
+
--accent-foreground: #FEF6DC;
|
|
795
|
+
--primary: #FACD38;
|
|
796
|
+
--primary-foreground: #0a0a0a;
|
|
797
|
+
--secondary: rgba(250, 205, 56, 0.1);
|
|
798
|
+
--secondary-foreground: #ffffff;
|
|
799
|
+
--border: #FACD38;
|
|
800
|
+
--input: #FBD760;
|
|
801
|
+
--ring: #FBD760;
|
|
802
|
+
--gradient-from: #FFEA8C;
|
|
803
|
+
--gradient-to: #FACD38;
|
|
804
|
+
}
|
|
805
|
+
|
|
806
|
+
.dark .theme-private-talk-next,
|
|
807
|
+
.theme-private-talk-next:is(.dark *) {
|
|
808
|
+
--background: rgba(250, 231, 56, 0.1);
|
|
809
|
+
--foreground: #FAE738;
|
|
810
|
+
--card: rgba(250, 231, 56, 0.1);
|
|
811
|
+
--card-foreground: #FAE738;
|
|
812
|
+
--popover: rgba(250, 231, 56, 0.1);
|
|
813
|
+
--popover-foreground: #FAE738;
|
|
814
|
+
--muted: rgba(250, 231, 56, 0.2);
|
|
815
|
+
--muted-foreground: #FCF39C;
|
|
816
|
+
--accent: rgba(250, 231, 56, 0.3);
|
|
817
|
+
--accent-foreground: #FEFBDC;
|
|
818
|
+
--primary: #FAE738;
|
|
819
|
+
--primary-foreground: #0a0a0a;
|
|
820
|
+
--secondary: rgba(250, 231, 56, 0.1);
|
|
821
|
+
--secondary-foreground: #ffffff;
|
|
822
|
+
--border: #FAE738;
|
|
823
|
+
--input: #FBEB60;
|
|
824
|
+
--ring: #FBEB60;
|
|
825
|
+
--gradient-from: #FFFB91;
|
|
826
|
+
--gradient-to: #FAE738;
|
|
827
|
+
}
|
|
828
|
+
|
|
829
|
+
/* >>> cycle-gradients — catálogo de degradês (1.34.0)
|
|
830
|
+
Uso: tema + preset no mesmo elemento (ou tema num ancestral):
|
|
831
|
+
<div className="theme-class gradient-linear-br text-primary-foreground">…</div>
|
|
832
|
+
Ponte de família: some a classe da ponte (troca os dois tons):
|
|
833
|
+
<div className="theme-group-talk-next gradient-practice gradient-linear-r">…</div>
|
|
834
|
+
Regras: interpolação em OKLCH (a 1ª declaração é a reserva sem "in oklch");
|
|
835
|
+
os dois tons de cada tema passam 4,5:1 contra --primary-foreground, então
|
|
836
|
+
qualquer preset/direção é seguro para o texto do preenchimento.
|
|
837
|
+
Escopo: cards de produto preenchidos, bloco do ícone e selos de produto —
|
|
838
|
+
não usar em botões, texto, inputs ou barras de progresso.
|
|
839
|
+
Esta seção é IDÊNTICA em tokens.css e globals.css (travado por teste). */
|
|
840
|
+
|
|
841
|
+
/* Pontes de família */
|
|
842
|
+
.gradient-practice { /* Group Talk → Private Talk (Sol → Limão) */
|
|
843
|
+
--gradient-from: #F6C523;
|
|
844
|
+
--gradient-to: #F5DF14;
|
|
845
|
+
}
|
|
846
|
+
.dark .gradient-practice,
|
|
847
|
+
.gradient-practice:is(.dark *) {
|
|
848
|
+
--gradient-from: #FACD38;
|
|
849
|
+
--gradient-to: #FAE738;
|
|
850
|
+
}
|
|
851
|
+
.gradient-learning { /* Impulse → Class */
|
|
852
|
+
--gradient-from: #7D0DD4;
|
|
853
|
+
--gradient-to: #1A5FE0;
|
|
854
|
+
}
|
|
855
|
+
.dark .gradient-learning,
|
|
856
|
+
.gradient-learning:is(.dark *) {
|
|
857
|
+
--gradient-from: #9810FA;
|
|
858
|
+
--gradient-to: #226CFF;
|
|
859
|
+
}
|
|
860
|
+
|
|
861
|
+
/* Linear — a ponta de mais contraste (--gradient-from) sai do lado oposto à direção. */
|
|
862
|
+
.gradient-linear-b { /* para baixo */
|
|
863
|
+
background-image: linear-gradient(180deg, var(--gradient-from), var(--gradient-to));
|
|
864
|
+
background-image: linear-gradient(180deg in oklch, var(--gradient-from), var(--gradient-to));
|
|
865
|
+
}
|
|
866
|
+
.gradient-linear-t { /* para cima */
|
|
867
|
+
background-image: linear-gradient(0deg, var(--gradient-from), var(--gradient-to));
|
|
868
|
+
background-image: linear-gradient(0deg in oklch, var(--gradient-from), var(--gradient-to));
|
|
869
|
+
}
|
|
870
|
+
.gradient-linear-r { /* para a direita */
|
|
871
|
+
background-image: linear-gradient(90deg, var(--gradient-from), var(--gradient-to));
|
|
872
|
+
background-image: linear-gradient(90deg in oklch, var(--gradient-from), var(--gradient-to));
|
|
873
|
+
}
|
|
874
|
+
.gradient-linear-l { /* para a esquerda */
|
|
875
|
+
background-image: linear-gradient(270deg, var(--gradient-from), var(--gradient-to));
|
|
876
|
+
background-image: linear-gradient(270deg in oklch, var(--gradient-from), var(--gradient-to));
|
|
877
|
+
}
|
|
878
|
+
.gradient-linear-br { /* diagonal ↘ (padrão) */
|
|
879
|
+
background-image: linear-gradient(135deg, var(--gradient-from), var(--gradient-to));
|
|
880
|
+
background-image: linear-gradient(135deg in oklch, var(--gradient-from), var(--gradient-to));
|
|
881
|
+
}
|
|
882
|
+
.gradient-linear-tr { /* diagonal ↗ */
|
|
883
|
+
background-image: linear-gradient(45deg, var(--gradient-from), var(--gradient-to));
|
|
884
|
+
background-image: linear-gradient(45deg in oklch, var(--gradient-from), var(--gradient-to));
|
|
885
|
+
}
|
|
886
|
+
.gradient-linear-bl { /* diagonal ↙ */
|
|
887
|
+
background-image: linear-gradient(225deg, var(--gradient-from), var(--gradient-to));
|
|
888
|
+
background-image: linear-gradient(225deg in oklch, var(--gradient-from), var(--gradient-to));
|
|
889
|
+
}
|
|
890
|
+
.gradient-linear-tl { /* diagonal ↖ */
|
|
891
|
+
background-image: linear-gradient(315deg, var(--gradient-from), var(--gradient-to));
|
|
892
|
+
background-image: linear-gradient(315deg in oklch, var(--gradient-from), var(--gradient-to));
|
|
893
|
+
}
|
|
894
|
+
/* Radial — brilho na cor do tema (--gradient-to) no ponto indicado. */
|
|
895
|
+
.gradient-glow-tr { /* canto superior direito */
|
|
896
|
+
background-image: radial-gradient(120% 120% at 100% 0%, var(--gradient-to), var(--gradient-from));
|
|
897
|
+
background-image: radial-gradient(120% 120% at 100% 0% in oklch, var(--gradient-to), var(--gradient-from));
|
|
898
|
+
}
|
|
899
|
+
.gradient-glow-br { /* canto inferior direito */
|
|
900
|
+
background-image: radial-gradient(120% 120% at 100% 100%, var(--gradient-to), var(--gradient-from));
|
|
901
|
+
background-image: radial-gradient(120% 120% at 100% 100% in oklch, var(--gradient-to), var(--gradient-from));
|
|
902
|
+
}
|
|
903
|
+
.gradient-glow-tl { /* canto superior esquerdo */
|
|
904
|
+
background-image: radial-gradient(120% 120% at 0% 0%, var(--gradient-to), var(--gradient-from));
|
|
905
|
+
background-image: radial-gradient(120% 120% at 0% 0% in oklch, var(--gradient-to), var(--gradient-from));
|
|
906
|
+
}
|
|
907
|
+
.gradient-glow-bl { /* canto inferior esquerdo */
|
|
908
|
+
background-image: radial-gradient(120% 120% at 0% 100%, var(--gradient-to), var(--gradient-from));
|
|
909
|
+
background-image: radial-gradient(120% 120% at 0% 100% in oklch, var(--gradient-to), var(--gradient-from));
|
|
910
|
+
}
|
|
911
|
+
.gradient-glow-c { /* centro */
|
|
912
|
+
background-image: radial-gradient(90% 90% at 50% 50%, var(--gradient-to), var(--gradient-from));
|
|
913
|
+
background-image: radial-gradient(90% 90% at 50% 50% in oklch, var(--gradient-to), var(--gradient-from));
|
|
914
|
+
}
|
|
915
|
+
/* Compostos */
|
|
916
|
+
.gradient-spotlight { /* holofote à direita sobre a ponta de contraste (texto à esquerda) */
|
|
917
|
+
background-image: radial-gradient(60% 90% at 85% 55%, var(--gradient-to), transparent), linear-gradient(var(--gradient-from), var(--gradient-from));
|
|
918
|
+
background-image: radial-gradient(60% 90% at 85% 55% in oklch, var(--gradient-to), transparent), linear-gradient(var(--gradient-from), var(--gradient-from));
|
|
919
|
+
}
|
|
920
|
+
.gradient-mesh { /* malha com dois focos */
|
|
921
|
+
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));
|
|
922
|
+
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));
|
|
923
|
+
}
|
|
924
|
+
.gradient-band { /* faixa diagonal: ponta de contraste firme até 35% */
|
|
925
|
+
background-image: linear-gradient(135deg, var(--gradient-from) 0%, var(--gradient-from) 35%, var(--gradient-to) 100%);
|
|
926
|
+
background-image: linear-gradient(135deg in oklch, var(--gradient-from) 0%, var(--gradient-from) 35%, var(--gradient-to) 100%);
|
|
927
|
+
}
|
|
928
|
+
/* <<< cycle-gradients */
|
|
663
929
|
|
|
664
930
|
/* === Base layer === */
|
|
665
931
|
@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';
|