@fluencypassdevs/cycle 0.2.0 → 0.4.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/README.md +13 -4
- package/bin/init.mjs +95 -0
- package/cli/CLAUDE-section.md +100 -0
- package/dist/chunk-2EKU7RP4.js +18 -0
- package/dist/chunk-2EKU7RP4.js.map +1 -0
- package/dist/chunk-5AZSRHJE.js +180 -0
- package/dist/chunk-5AZSRHJE.js.map +1 -0
- package/dist/chunk-EF6FQT4Y.js +78 -0
- package/dist/chunk-EF6FQT4Y.js.map +1 -0
- package/dist/chunk-F2Q3E2ZM.js +102 -0
- package/dist/chunk-F2Q3E2ZM.js.map +1 -0
- package/dist/chunk-IGMII4BK.js +58 -0
- package/dist/chunk-IGMII4BK.js.map +1 -0
- package/dist/chunk-LHSUEXOW.js +70 -0
- package/dist/chunk-LHSUEXOW.js.map +1 -0
- package/dist/{chunk-PM6ZUCMQ.js → chunk-MTKKVYNS.js} +3 -3
- package/dist/chunk-MTKKVYNS.js.map +1 -0
- package/dist/{chunk-QTL6W4I2.js → chunk-NYJMA2T7.js} +3 -3
- package/dist/{chunk-QTL6W4I2.js.map → chunk-NYJMA2T7.js.map} +1 -1
- package/dist/chunk-POQUVBVT.js +110 -0
- package/dist/chunk-POQUVBVT.js.map +1 -0
- package/dist/chunk-PY2BIZNB.js +52 -0
- package/dist/chunk-PY2BIZNB.js.map +1 -0
- package/dist/chunk-RI3ULQHH.js +91 -0
- package/dist/chunk-RI3ULQHH.js.map +1 -0
- package/dist/chunk-SZUWVHP4.js +187 -0
- package/dist/chunk-SZUWVHP4.js.map +1 -0
- package/dist/chunk-TZ7BEYQ7.js +147 -0
- package/dist/chunk-TZ7BEYQ7.js.map +1 -0
- package/dist/{chunk-VECLN5AT.js → chunk-WRJZHQNY.js} +4 -4
- package/dist/{chunk-VECLN5AT.js.map → chunk-WRJZHQNY.js.map} +1 -1
- package/dist/index.d.ts +13 -0
- package/dist/index.js +15 -4
- package/dist/styles/tokens.css +3 -2
- package/dist/ui/alert-dialog.d.ts +23 -0
- package/dist/ui/alert-dialog.js +6 -0
- package/dist/ui/alert-dialog.js.map +1 -0
- package/dist/ui/alert.d.ts +17 -0
- package/dist/ui/alert.js +7 -0
- package/dist/ui/alert.js.map +1 -0
- package/dist/ui/audio-player.js +1 -1
- package/dist/ui/badge.d.ts +2 -2
- package/dist/ui/button.d.ts +2 -2
- package/dist/ui/checkbox.d.ts +1 -1
- package/dist/ui/dialog.d.ts +20 -0
- package/dist/ui/dialog.js +6 -0
- package/dist/ui/dialog.js.map +1 -0
- package/dist/ui/empty.d.ts +15 -0
- package/dist/ui/empty.js +5 -0
- package/dist/ui/empty.js.map +1 -0
- package/dist/ui/file-card.d.ts +1 -1
- package/dist/ui/like-dislike.d.ts +1 -1
- package/dist/ui/popover.d.ts +13 -0
- package/dist/ui/popover.js +5 -0
- package/dist/ui/popover.js.map +1 -0
- package/dist/ui/progress-dot.d.ts +22 -0
- package/dist/ui/progress-dot.js +5 -0
- package/dist/ui/progress-dot.js.map +1 -0
- package/dist/ui/progress-stage.d.ts +1 -1
- package/dist/ui/progress-stage.js +1 -1
- package/dist/ui/progress.d.ts +1 -1
- package/dist/ui/progress.js +1 -1
- package/dist/ui/radio-group.d.ts +1 -1
- package/dist/ui/resizable.d.ts +10 -0
- package/dist/ui/resizable.js +5 -0
- package/dist/ui/resizable.js.map +1 -0
- package/dist/ui/select.d.ts +18 -0
- package/dist/ui/select.js +5 -0
- package/dist/ui/select.js.map +1 -0
- package/dist/ui/skeleton.d.ts +5 -0
- package/dist/ui/skeleton.js +5 -0
- package/dist/ui/skeleton.js.map +1 -0
- package/dist/ui/slider.d.ts +1 -1
- package/dist/ui/sonner.d.ts +29 -0
- package/dist/ui/sonner.js +7 -0
- package/dist/ui/sonner.js.map +1 -0
- package/dist/ui/switch.d.ts +1 -1
- package/dist/ui/toggle.d.ts +1 -1
- package/dist/ui/tooltip.d.ts +10 -0
- package/dist/ui/tooltip.js +5 -0
- package/dist/ui/tooltip.js.map +1 -0
- package/package.json +12 -1
- package/dist/chunk-PM6ZUCMQ.js.map +0 -1
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
import { cn } from './chunk-TYCPXAXF.js';
|
|
2
|
+
import { __objRest, __spreadValues, __spreadProps } from './chunk-YINJ5YZ5.js';
|
|
3
|
+
import { Tooltip as Tooltip$1 } from 'radix-ui';
|
|
4
|
+
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
5
|
+
|
|
6
|
+
function TooltipProvider(_a) {
|
|
7
|
+
var _b = _a, {
|
|
8
|
+
delayDuration = 0
|
|
9
|
+
} = _b, props = __objRest(_b, [
|
|
10
|
+
"delayDuration"
|
|
11
|
+
]);
|
|
12
|
+
return /* @__PURE__ */ jsx(
|
|
13
|
+
Tooltip$1.Provider,
|
|
14
|
+
__spreadValues({
|
|
15
|
+
"data-slot": "tooltip-provider",
|
|
16
|
+
delayDuration
|
|
17
|
+
}, props)
|
|
18
|
+
);
|
|
19
|
+
}
|
|
20
|
+
function Tooltip(_a) {
|
|
21
|
+
var props = __objRest(_a, []);
|
|
22
|
+
return /* @__PURE__ */ jsx(Tooltip$1.Root, __spreadValues({ "data-slot": "tooltip" }, props));
|
|
23
|
+
}
|
|
24
|
+
function TooltipTrigger(_a) {
|
|
25
|
+
var props = __objRest(_a, []);
|
|
26
|
+
return /* @__PURE__ */ jsx(Tooltip$1.Trigger, __spreadValues({ "data-slot": "tooltip-trigger" }, props));
|
|
27
|
+
}
|
|
28
|
+
function TooltipContent(_a) {
|
|
29
|
+
var _b = _a, {
|
|
30
|
+
className,
|
|
31
|
+
sideOffset = 0,
|
|
32
|
+
children
|
|
33
|
+
} = _b, props = __objRest(_b, [
|
|
34
|
+
"className",
|
|
35
|
+
"sideOffset",
|
|
36
|
+
"children"
|
|
37
|
+
]);
|
|
38
|
+
return /* @__PURE__ */ jsx(Tooltip$1.Portal, { children: /* @__PURE__ */ jsxs(
|
|
39
|
+
Tooltip$1.Content,
|
|
40
|
+
__spreadProps(__spreadValues({
|
|
41
|
+
"data-slot": "tooltip-content",
|
|
42
|
+
sideOffset,
|
|
43
|
+
className: cn(
|
|
44
|
+
"z-50 w-fit origin-(--radix-tooltip-content-transform-origin) animate-in rounded-md bg-foreground px-3 py-1.5 text-xs text-balance text-background fade-in-0 zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95",
|
|
45
|
+
className
|
|
46
|
+
)
|
|
47
|
+
}, props), {
|
|
48
|
+
children: [
|
|
49
|
+
children,
|
|
50
|
+
/* @__PURE__ */ jsx(Tooltip$1.Arrow, { className: "z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground" })
|
|
51
|
+
]
|
|
52
|
+
})
|
|
53
|
+
) });
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
|
|
57
|
+
//# sourceMappingURL=chunk-IGMII4BK.js.map
|
|
58
|
+
//# sourceMappingURL=chunk-IGMII4BK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/tooltip.tsx"],"names":["TooltipPrimitive"],"mappings":";;;;;AAOA,SAAS,gBAAgB,EAAA,EAGkC;AAHlC,EAAA,IAAA,EAAA,GAAA,EAAA,EACvB;AAAA,IAAA,aAAA,GAAgB;AAAA,GARlB,GAOyB,EAAA,EAEpB,KAAA,GAAA,SAAA,CAFoB,EAAA,EAEpB;AAAA,IADH;AAAA,GAAA,CAAA;AAGA,EAAA,uBACE,GAAA;AAAA,IAACA,SAAA,CAAiB,QAAA;AAAA,IAAjB,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,kBAAA;AAAA,MACV;AAAA,KAAA,EACI,KAAA;AAAA,GACN;AAEJ;AAEA,SAAS,QAAQ,EAAA,EAEsC;AAFtC,EAAA,IACZ,kBADY,EAAA,EACZ,EAAA,CAAA;AAEH,EAAA,2BAAQA,SAAA,CAAiB,IAAA,EAAjB,cAAA,CAAA,EAAsB,WAAA,EAAU,aAAc,KAAA,CAAO,CAAA;AAC/D;AAEA,SAAS,eAAe,EAAA,EAEkC;AAFlC,EAAA,IACnB,kBADmB,EAAA,EACnB,EAAA,CAAA;AAEH,EAAA,2BAAQA,SAAA,CAAiB,OAAA,EAAjB,cAAA,CAAA,EAAyB,WAAA,EAAU,qBAAsB,KAAA,CAAO,CAAA;AAC1E;AAEA,SAAS,eAAe,EAAA,EAKkC;AALlC,EAAA,IAAA,EAAA,GAAA,EAAA,EACtB;AAAA,IAAA,SAAA;AAAA,IACA,UAAA,GAAa,CAAA;AAAA,IACb;AAAA,GAnCF,GAgCwB,EAAA,EAInB,KAAA,GAAA,SAAA,CAJmB,EAAA,EAInB;AAAA,IAHH,WAAA;AAAA,IACA,YAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,uBACE,GAAA,CAACA,SAAA,CAAiB,MAAA,EAAjB,EACC,QAAA,kBAAA,IAAA;AAAA,IAACA,SAAA,CAAiB,OAAA;AAAA,IAAjB,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,iBAAA;AAAA,MACV,UAAA;AAAA,MACA,SAAA,EAAW,EAAA;AAAA,QACT,maAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA,CAAA,EAPL;AAAA,MASE,QAAA,EAAA;AAAA,QAAA,QAAA;AAAA,wBACD,GAAA,CAACA,SAAA,CAAiB,KAAA,EAAjB,EAAuB,WAAU,oGAAA,EAAqG;AAAA;AAAA,KAAA;AAAA,GACzI,EACF,CAAA;AAEJ","file":"chunk-IGMII4BK.js","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { Tooltip as TooltipPrimitive } from \"radix-ui\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction TooltipProvider({\n delayDuration = 0,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Provider>) {\n return (\n <TooltipPrimitive.Provider\n data-slot=\"tooltip-provider\"\n delayDuration={delayDuration}\n {...props}\n />\n )\n}\n\nfunction Tooltip({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Root>) {\n return <TooltipPrimitive.Root data-slot=\"tooltip\" {...props} />\n}\n\nfunction TooltipTrigger({\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Trigger>) {\n return <TooltipPrimitive.Trigger data-slot=\"tooltip-trigger\" {...props} />\n}\n\nfunction TooltipContent({\n className,\n sideOffset = 0,\n children,\n ...props\n}: React.ComponentProps<typeof TooltipPrimitive.Content>) {\n return (\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content\n data-slot=\"tooltip-content\"\n sideOffset={sideOffset}\n className={cn(\n \"z-50 w-fit origin-(--radix-tooltip-content-transform-origin) animate-in rounded-md bg-foreground px-3 py-1.5 text-xs text-balance text-background fade-in-0 zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=closed]:zoom-out-95\",\n className\n )}\n {...props}\n >\n {children}\n <TooltipPrimitive.Arrow className=\"z-50 size-2.5 translate-y-[calc(-50%_-_2px)] rotate-45 rounded-[2px] bg-foreground fill-foreground\" />\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n )\n}\n\nexport { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }\n"]}
|
|
@@ -0,0 +1,70 @@
|
|
|
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 { jsx } from 'react/jsx-runtime';
|
|
5
|
+
|
|
6
|
+
var progressDotVariants = cva("flex items-center", {
|
|
7
|
+
variants: {
|
|
8
|
+
size: {
|
|
9
|
+
xs: "gap-0.5",
|
|
10
|
+
sm: "gap-1",
|
|
11
|
+
default: "gap-1",
|
|
12
|
+
lg: "gap-1"
|
|
13
|
+
}
|
|
14
|
+
},
|
|
15
|
+
defaultVariants: {
|
|
16
|
+
size: "default"
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
var dotVariants = cva("shrink-0 rounded-full", {
|
|
20
|
+
variants: {
|
|
21
|
+
size: {
|
|
22
|
+
xs: "size-1",
|
|
23
|
+
sm: "size-1.5",
|
|
24
|
+
default: "size-2",
|
|
25
|
+
lg: "size-3"
|
|
26
|
+
}
|
|
27
|
+
},
|
|
28
|
+
defaultVariants: {
|
|
29
|
+
size: "default"
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
function ProgressDot(_a) {
|
|
33
|
+
var _b = _a, {
|
|
34
|
+
stages,
|
|
35
|
+
value,
|
|
36
|
+
size = "default",
|
|
37
|
+
theme,
|
|
38
|
+
className
|
|
39
|
+
} = _b, props = __objRest(_b, [
|
|
40
|
+
"stages",
|
|
41
|
+
"value",
|
|
42
|
+
"size",
|
|
43
|
+
"theme",
|
|
44
|
+
"className"
|
|
45
|
+
]);
|
|
46
|
+
const total = Math.min(10, Math.max(2, stages));
|
|
47
|
+
const filled = Math.min(total, Math.max(0, value));
|
|
48
|
+
return /* @__PURE__ */ jsx(
|
|
49
|
+
"div",
|
|
50
|
+
__spreadProps(__spreadValues({
|
|
51
|
+
"data-slot": "progress-dot",
|
|
52
|
+
className: cn(progressDotVariants({ size }), className)
|
|
53
|
+
}, 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
|
+
))
|
|
64
|
+
})
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
export { ProgressDot, dotVariants, progressDotVariants };
|
|
69
|
+
//# sourceMappingURL=chunk-LHSUEXOW.js.map
|
|
70
|
+
//# sourceMappingURL=chunk-LHSUEXOW.js.map
|
|
@@ -0,0 +1 @@
|
|
|
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"]}
|
|
@@ -5,7 +5,7 @@ import { cva } from 'class-variance-authority';
|
|
|
5
5
|
import { jsx } from 'react/jsx-runtime';
|
|
6
6
|
|
|
7
7
|
var progressVariants = cva(
|
|
8
|
-
"relative w-full overflow-hidden rounded-full bg-neutral-
|
|
8
|
+
"relative w-full overflow-hidden rounded-full bg-neutral-input",
|
|
9
9
|
{
|
|
10
10
|
variants: {
|
|
11
11
|
size: {
|
|
@@ -69,5 +69,5 @@ function Progress(_a) {
|
|
|
69
69
|
}
|
|
70
70
|
|
|
71
71
|
export { Progress, indicatorVariants, progressVariants };
|
|
72
|
-
//# sourceMappingURL=chunk-
|
|
73
|
-
//# sourceMappingURL=chunk-
|
|
72
|
+
//# sourceMappingURL=chunk-MTKKVYNS.js.map
|
|
73
|
+
//# sourceMappingURL=chunk-MTKKVYNS.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/progress.tsx"],"names":["ProgressPrimitive"],"mappings":";;;;;;AAUA,IAAM,gBAAA,GAAmB,GAAA;AAAA,EACvB,+DAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,IAAA,EAAM;AAAA,QACJ,EAAA,EAAI,KAAA;AAAA,QACJ,EAAA,EAAI,OAAA;AAAA,QACJ,OAAA,EAAS,KAAA;AAAA,QACT,EAAA,EAAI;AAAA;AACN,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,IAAA,EAAM;AAAA;AACR;AAEJ;AAIA,IAAM,iBAAA,GAAoB,GAAA;AAAA,EACxB,kDAAA;AAAA,EACA;AAAA,IACE,QAAA,EAAU;AAAA,MACR,OAAA,EAAS;AAAA,QACP,OAAA,EAAS,YAAA;AAAA,QACT,SAAA,EAAW,cAAA;AAAA,QACX,WAAA,EAAa,gBAAA;AAAA,QACb,KAAA,EAAO;AAAA;AACT,KACF;AAAA,IACA,eAAA,EAAiB;AAAA,MACf,OAAA,EAAS;AAAA;AACX;AAEJ;AAUA,SAAS,SAAS,EAAA,EAOA;AAPA,EAAA,IAAA,EAAA,GAAA,EAAA,EAChB;AAAA,IAAA,SAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAA;AAAA,IACA,OAAA;AAAA,IACA;AAAA,GA3DF,GAsDkB,EAAA,EAMb,KAAA,GAAA,SAAA,CANa,EAAA,EAMb;AAAA,IALH,WAAA;AAAA,IACA,OAAA;AAAA,IACA,MAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAGA,EAAA,uBACE,GAAA;AAAA,IAACA,UAAA,CAAkB,IAAA;AAAA,IAAlB,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,UAAA;AAAA,MACV,WAAW,EAAA,CAAG,gBAAA,CAAiB,EAAE,IAAA,EAAM,GAAG,SAAS;AAAA,KAAA,EAC/C,KAAA,CAAA,EAHL;AAAA,MAKC,QAAA,kBAAA,GAAA;AAAA,QAACA,UAAA,CAAkB,SAAA;AAAA,QAAlB;AAAA,UACC,WAAA,EAAU,oBAAA;AAAA,UACV,WAAW,EAAA,CAAG,KAAA,EAAO,kBAAkB,EAAE,OAAA,EAAS,CAAC,CAAA;AAAA,UACnD,OAAO,EAAE,SAAA,EAAW,eAAe,GAAA,IAAO,KAAA,IAAS,EAAE,CAAA,EAAA,CAAA;AAAK;AAAA;AAC5D,KAAA;AAAA,GACF;AAEJ","file":"chunk-MTKKVYNS.js","sourcesContent":["\"use client\"\n\nimport * as React from \"react\"\nimport { Progress as ProgressPrimitive } from \"radix-ui\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\n/* ─── Track variants ─── */\n\nconst progressVariants = cva(\n \"relative w-full overflow-hidden rounded-full bg-neutral-input\",\n {\n variants: {\n size: {\n xs: \"h-1\",\n sm: \"h-1.5\",\n default: \"h-2\",\n lg: \"h-3\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n }\n)\n\n/* ─── Indicator variants ─── */\n\nconst indicatorVariants = cva(\n \"h-full w-full flex-1 rounded-full transition-all\",\n {\n variants: {\n variant: {\n default: \"bg-primary\",\n secondary: \"bg-secondary\",\n destructive: \"bg-destructive\",\n muted: \"bg-muted-foreground\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nexport interface ProgressProps\n extends Omit<React.ComponentProps<typeof ProgressPrimitive.Root>, \"children\">,\n VariantProps<typeof progressVariants>,\n VariantProps<typeof indicatorVariants> {\n /** Classe de tema aplicada apenas no indicator (ex: \"theme-class\") */\n theme?: string\n}\n\nfunction Progress({\n className,\n value,\n size,\n variant,\n theme,\n ...props\n}: ProgressProps) {\n return (\n <ProgressPrimitive.Root\n data-slot=\"progress\"\n className={cn(progressVariants({ size }), className)}\n {...props}\n >\n <ProgressPrimitive.Indicator\n data-slot=\"progress-indicator\"\n className={cn(theme, indicatorVariants({ variant }))}\n style={{ transform: `translateX(-${100 - (value || 0)}%)` }}\n />\n </ProgressPrimitive.Root>\n )\n}\n\nexport { Progress, progressVariants, indicatorVariants }\n"]}
|
|
@@ -43,7 +43,7 @@ function ProgressStage(_a) {
|
|
|
43
43
|
{
|
|
44
44
|
className: cn(
|
|
45
45
|
progressStagePillVariants({ size }),
|
|
46
|
-
i < filled ? cn(theme, "bg-primary") : "bg-neutral-
|
|
46
|
+
i < filled ? cn(theme, "bg-primary") : "bg-neutral-input"
|
|
47
47
|
)
|
|
48
48
|
},
|
|
49
49
|
i
|
|
@@ -53,5 +53,5 @@ function ProgressStage(_a) {
|
|
|
53
53
|
}
|
|
54
54
|
|
|
55
55
|
export { ProgressStage };
|
|
56
|
-
//# sourceMappingURL=chunk-
|
|
57
|
-
//# sourceMappingURL=chunk-
|
|
56
|
+
//# sourceMappingURL=chunk-NYJMA2T7.js.map
|
|
57
|
+
//# sourceMappingURL=chunk-NYJMA2T7.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/components/ui/progress-stage.tsx"],"names":[],"mappings":";;;;;AAKA,IAAM,yBAAA,GAA4B,IAAI,qBAAA,EAAuB;AAAA,EAC3D,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,KAAA;AAAA,MACJ,EAAA,EAAI,OAAA;AAAA,MACJ,OAAA,EAAS,KAAA;AAAA,MACT,EAAA,EAAI;AAAA;AACN,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM;AAAA;AAEV,CAAC,CAAA;AAaD,SAAS,cAAc,EAAA,EAOA;AAPA,EAAA,IAAA,EAAA,GAAA,EAAA,EACrB;AAAA,IAAA,MAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAA,GAAO,SAAA;AAAA,IACP,KAAA;AAAA,IACA;AAAA,GAnCF,GA8BuB,EAAA,EAMlB,KAAA,GAAA,SAAA,CANkB,EAAA,EAMlB;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,gBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,mBAAA,EAAqB,SAAS;AAAA,KAAA,EACxC,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,yBAAA,CAA0B,EAAE,IAAA,EAAM,CAAA;AAAA,YAClC,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-
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/progress-stage.tsx"],"names":[],"mappings":";;;;;AAKA,IAAM,yBAAA,GAA4B,IAAI,qBAAA,EAAuB;AAAA,EAC3D,QAAA,EAAU;AAAA,IACR,IAAA,EAAM;AAAA,MACJ,EAAA,EAAI,KAAA;AAAA,MACJ,EAAA,EAAI,OAAA;AAAA,MACJ,OAAA,EAAS,KAAA;AAAA,MACT,EAAA,EAAI;AAAA;AACN,GACF;AAAA,EACA,eAAA,EAAiB;AAAA,IACf,IAAA,EAAM;AAAA;AAEV,CAAC,CAAA;AAaD,SAAS,cAAc,EAAA,EAOA;AAPA,EAAA,IAAA,EAAA,GAAA,EAAA,EACrB;AAAA,IAAA,MAAA;AAAA,IACA,KAAA;AAAA,IACA,IAAA,GAAO,SAAA;AAAA,IACP,KAAA;AAAA,IACA;AAAA,GAnCF,GA8BuB,EAAA,EAMlB,KAAA,GAAA,SAAA,CANkB,EAAA,EAMlB;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,gBAAA;AAAA,MACV,SAAA,EAAW,EAAA,CAAG,mBAAA,EAAqB,SAAS;AAAA,KAAA,EACxC,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,yBAAA,CAA0B,EAAE,IAAA,EAAM,CAAA;AAAA,YAClC,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-NYJMA2T7.js","sourcesContent":["import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\n\nimport { cn } from \"@/lib/utils\"\n\nconst progressStagePillVariants = cva(\"flex-1 rounded-full\", {\n variants: {\n size: {\n xs: \"h-1\",\n sm: \"h-1.5\",\n default: \"h-2\",\n lg: \"h-3\",\n },\n },\n defaultVariants: {\n size: \"default\",\n },\n})\n\nexport interface ProgressStageProps\n extends React.ComponentProps<\"div\">,\n VariantProps<typeof progressStagePillVariants> {\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 nas pills preenchidas (ex: \"theme-class\") */\n theme?: string\n}\n\nfunction ProgressStage({\n stages,\n value,\n size = \"default\",\n theme,\n className,\n ...props\n}: ProgressStageProps) {\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-stage\"\n className={cn(\"flex w-full gap-2\", className)}\n {...props}\n >\n {Array.from({ length: total }, (_, i) => (\n <div\n key={i}\n className={cn(\n progressStagePillVariants({ size }),\n i < filled\n ? cn(theme, \"bg-primary\")\n : \"bg-neutral-input\"\n )}\n />\n ))}\n </div>\n )\n}\n\nexport { ProgressStage }\n"]}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { CycleIcon } from './chunk-OT2HCBR2.js';
|
|
2
|
+
import { cn } from './chunk-TYCPXAXF.js';
|
|
3
|
+
import { __objRest, __spreadValues, __spreadProps } from './chunk-YINJ5YZ5.js';
|
|
4
|
+
import { cva } from 'class-variance-authority';
|
|
5
|
+
import { X } from 'lucide-react';
|
|
6
|
+
import { jsx } from 'react/jsx-runtime';
|
|
7
|
+
|
|
8
|
+
var alertVariants = cva(
|
|
9
|
+
"relative grid w-full grid-cols-[0_1fr_auto] items-start gap-y-0.5 rounded-lg border px-4 py-3 text-sm has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr_auto] has-[>svg]:gap-x-3 [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current",
|
|
10
|
+
{
|
|
11
|
+
variants: {
|
|
12
|
+
variant: {
|
|
13
|
+
default: "bg-card text-card-foreground",
|
|
14
|
+
destructive: "bg-card text-destructive *:data-[slot=alert-description]:text-destructive/90 [&>svg]:text-current",
|
|
15
|
+
positive: "theme-positive bg-card text-card-foreground border-border *:data-[slot=alert-description]:text-muted-foreground [&>svg]:text-current",
|
|
16
|
+
warning: "theme-warning bg-card text-card-foreground border-border *:data-[slot=alert-description]:text-muted-foreground [&>svg]:text-current",
|
|
17
|
+
critical: "theme-critical bg-card text-card-foreground border-border *:data-[slot=alert-description]:text-muted-foreground [&>svg]:text-current",
|
|
18
|
+
info: "theme-class bg-card text-card-foreground border-border *:data-[slot=alert-description]:text-muted-foreground [&>svg]:text-current"
|
|
19
|
+
}
|
|
20
|
+
},
|
|
21
|
+
defaultVariants: {
|
|
22
|
+
variant: "default"
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
);
|
|
26
|
+
function Alert(_a) {
|
|
27
|
+
var _b = _a, { className, variant } = _b, props = __objRest(_b, ["className", "variant"]);
|
|
28
|
+
return /* @__PURE__ */ jsx(
|
|
29
|
+
"div",
|
|
30
|
+
__spreadValues({
|
|
31
|
+
"data-slot": "alert",
|
|
32
|
+
role: "alert",
|
|
33
|
+
className: cn(alertVariants({ variant }), className)
|
|
34
|
+
}, props)
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
function AlertTitle(_a) {
|
|
38
|
+
var _b = _a, { className } = _b, props = __objRest(_b, ["className"]);
|
|
39
|
+
return /* @__PURE__ */ jsx(
|
|
40
|
+
"div",
|
|
41
|
+
__spreadValues({
|
|
42
|
+
"data-slot": "alert-title",
|
|
43
|
+
className: cn(
|
|
44
|
+
"col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight",
|
|
45
|
+
className
|
|
46
|
+
)
|
|
47
|
+
}, props)
|
|
48
|
+
);
|
|
49
|
+
}
|
|
50
|
+
function AlertDescription(_a) {
|
|
51
|
+
var _b = _a, {
|
|
52
|
+
className
|
|
53
|
+
} = _b, props = __objRest(_b, [
|
|
54
|
+
"className"
|
|
55
|
+
]);
|
|
56
|
+
return /* @__PURE__ */ jsx(
|
|
57
|
+
"div",
|
|
58
|
+
__spreadValues({
|
|
59
|
+
"data-slot": "alert-description",
|
|
60
|
+
className: cn(
|
|
61
|
+
"col-start-2 grid justify-items-start gap-1 text-sm text-muted-foreground [&_p]:leading-relaxed",
|
|
62
|
+
className
|
|
63
|
+
)
|
|
64
|
+
}, props)
|
|
65
|
+
);
|
|
66
|
+
}
|
|
67
|
+
function AlertAction(_a) {
|
|
68
|
+
var _b = _a, {
|
|
69
|
+
className
|
|
70
|
+
} = _b, props = __objRest(_b, [
|
|
71
|
+
"className"
|
|
72
|
+
]);
|
|
73
|
+
return /* @__PURE__ */ jsx(
|
|
74
|
+
"button",
|
|
75
|
+
__spreadValues({
|
|
76
|
+
"data-slot": "alert-action",
|
|
77
|
+
className: cn(
|
|
78
|
+
"col-start-2 mt-2 inline-flex h-8 items-center justify-center rounded-md border border-current/20 bg-transparent px-3 text-xs font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50",
|
|
79
|
+
className
|
|
80
|
+
)
|
|
81
|
+
}, props)
|
|
82
|
+
);
|
|
83
|
+
}
|
|
84
|
+
function AlertClose(_a) {
|
|
85
|
+
var _b = _a, {
|
|
86
|
+
className,
|
|
87
|
+
onClick
|
|
88
|
+
} = _b, props = __objRest(_b, [
|
|
89
|
+
"className",
|
|
90
|
+
"onClick"
|
|
91
|
+
]);
|
|
92
|
+
return /* @__PURE__ */ jsx(
|
|
93
|
+
"button",
|
|
94
|
+
__spreadProps(__spreadValues({
|
|
95
|
+
"data-slot": "alert-close",
|
|
96
|
+
"aria-label": "Fechar alerta",
|
|
97
|
+
className: cn(
|
|
98
|
+
"col-start-3 row-start-1 -mr-1 -mt-0.5 inline-flex size-7 items-center justify-center rounded-md text-muted-foreground/60 transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
99
|
+
className
|
|
100
|
+
),
|
|
101
|
+
onClick
|
|
102
|
+
}, props), {
|
|
103
|
+
children: /* @__PURE__ */ jsx(CycleIcon, { icon: X, size: "xs", decorative: true })
|
|
104
|
+
})
|
|
105
|
+
);
|
|
106
|
+
}
|
|
107
|
+
|
|
108
|
+
export { Alert, AlertAction, AlertClose, AlertDescription, AlertTitle, alertVariants };
|
|
109
|
+
//# sourceMappingURL=chunk-POQUVBVT.js.map
|
|
110
|
+
//# sourceMappingURL=chunk-POQUVBVT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/alert.tsx"],"names":[],"mappings":"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","file":"chunk-POQUVBVT.js","sourcesContent":["import * as React from \"react\"\nimport { cva, type VariantProps } from \"class-variance-authority\"\nimport { X } from \"lucide-react\"\n\nimport { cn } from \"@/lib/utils\"\nimport { CycleIcon } from \"@/components/icons\"\n\nconst alertVariants = cva(\n \"relative grid w-full grid-cols-[0_1fr_auto] items-start gap-y-0.5 rounded-lg border px-4 py-3 text-sm has-[>svg]:grid-cols-[calc(var(--spacing)*4)_1fr_auto] has-[>svg]:gap-x-3 [&>svg]:size-4 [&>svg]:translate-y-0.5 [&>svg]:text-current\",\n {\n variants: {\n variant: {\n default: \"bg-card text-card-foreground\",\n destructive:\n \"bg-card text-destructive *:data-[slot=alert-description]:text-destructive/90 [&>svg]:text-current\",\n positive:\n \"theme-positive bg-card text-card-foreground border-border *:data-[slot=alert-description]:text-muted-foreground [&>svg]:text-current\",\n warning:\n \"theme-warning bg-card text-card-foreground border-border *:data-[slot=alert-description]:text-muted-foreground [&>svg]:text-current\",\n critical:\n \"theme-critical bg-card text-card-foreground border-border *:data-[slot=alert-description]:text-muted-foreground [&>svg]:text-current\",\n info:\n \"theme-class bg-card text-card-foreground border-border *:data-[slot=alert-description]:text-muted-foreground [&>svg]:text-current\",\n },\n },\n defaultVariants: {\n variant: \"default\",\n },\n }\n)\n\nexport interface AlertProps\n extends React.ComponentProps<\"div\">,\n VariantProps<typeof alertVariants> {}\n\nfunction Alert({ className, variant, ...props }: AlertProps) {\n return (\n <div\n data-slot=\"alert\"\n role=\"alert\"\n className={cn(alertVariants({ variant }), className)}\n {...props}\n />\n )\n}\n\nfunction AlertTitle({ className, ...props }: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-title\"\n className={cn(\n \"col-start-2 line-clamp-1 min-h-4 font-medium tracking-tight\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertDescription({\n className,\n ...props\n}: React.ComponentProps<\"div\">) {\n return (\n <div\n data-slot=\"alert-description\"\n className={cn(\n \"col-start-2 grid justify-items-start gap-1 text-sm text-muted-foreground [&_p]:leading-relaxed\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertAction({\n className,\n ...props\n}: React.ComponentProps<\"button\">) {\n return (\n <button\n data-slot=\"alert-action\"\n className={cn(\n \"col-start-2 mt-2 inline-flex h-8 items-center justify-center rounded-md border border-current/20 bg-transparent px-3 text-xs font-medium transition-colors hover:bg-accent hover:text-accent-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction AlertClose({\n className,\n onClick,\n ...props\n}: React.ComponentProps<\"button\">) {\n return (\n <button\n data-slot=\"alert-close\"\n aria-label=\"Fechar alerta\"\n className={cn(\n \"col-start-3 row-start-1 -mr-1 -mt-0.5 inline-flex size-7 items-center justify-center rounded-md text-muted-foreground/60 transition-colors hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring\",\n className\n )}\n onClick={onClick}\n {...props}\n >\n <CycleIcon icon={X} size=\"xs\" decorative />\n </button>\n )\n}\n\nexport { Alert, AlertTitle, AlertDescription, AlertAction, AlertClose, alertVariants }\n"]}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { cn } from './chunk-TYCPXAXF.js';
|
|
2
|
+
import { __objRest, __spreadValues, __spreadProps } from './chunk-YINJ5YZ5.js';
|
|
3
|
+
import { GripVerticalIcon } from 'lucide-react';
|
|
4
|
+
import * as ResizablePrimitive from 'react-resizable-panels';
|
|
5
|
+
import { jsx } from 'react/jsx-runtime';
|
|
6
|
+
|
|
7
|
+
function ResizablePanelGroup(_a) {
|
|
8
|
+
var _b = _a, {
|
|
9
|
+
className
|
|
10
|
+
} = _b, props = __objRest(_b, [
|
|
11
|
+
"className"
|
|
12
|
+
]);
|
|
13
|
+
return /* @__PURE__ */ jsx(
|
|
14
|
+
ResizablePrimitive.Group,
|
|
15
|
+
__spreadValues({
|
|
16
|
+
"data-slot": "resizable-panel-group",
|
|
17
|
+
className: cn(
|
|
18
|
+
"flex h-full w-full aria-[orientation=vertical]:flex-col",
|
|
19
|
+
className
|
|
20
|
+
)
|
|
21
|
+
}, props)
|
|
22
|
+
);
|
|
23
|
+
}
|
|
24
|
+
function ResizablePanel(_a) {
|
|
25
|
+
var props = __objRest(_a, []);
|
|
26
|
+
return /* @__PURE__ */ jsx(ResizablePrimitive.Panel, __spreadValues({ "data-slot": "resizable-panel" }, props));
|
|
27
|
+
}
|
|
28
|
+
function ResizableHandle(_a) {
|
|
29
|
+
var _b = _a, {
|
|
30
|
+
withHandle,
|
|
31
|
+
className
|
|
32
|
+
} = _b, props = __objRest(_b, [
|
|
33
|
+
"withHandle",
|
|
34
|
+
"className"
|
|
35
|
+
]);
|
|
36
|
+
return /* @__PURE__ */ jsx(
|
|
37
|
+
ResizablePrimitive.Separator,
|
|
38
|
+
__spreadProps(__spreadValues({
|
|
39
|
+
"data-slot": "resizable-handle",
|
|
40
|
+
className: cn(
|
|
41
|
+
"relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:outline-hidden aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:after:left-0 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:translate-x-0 aria-[orientation=horizontal]:after:-translate-y-1/2 [&[aria-orientation=horizontal]>div]:rotate-90",
|
|
42
|
+
className
|
|
43
|
+
)
|
|
44
|
+
}, props), {
|
|
45
|
+
children: withHandle && /* @__PURE__ */ jsx("div", { className: "z-10 flex h-4 w-3 items-center justify-center rounded-xs border bg-border", children: /* @__PURE__ */ jsx(GripVerticalIcon, { className: "size-2.5" }) })
|
|
46
|
+
})
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
export { ResizableHandle, ResizablePanel, ResizablePanelGroup };
|
|
51
|
+
//# sourceMappingURL=chunk-PY2BIZNB.js.map
|
|
52
|
+
//# sourceMappingURL=chunk-PY2BIZNB.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/resizable.tsx"],"names":[],"mappings":";;;;;;AAOA,SAAS,oBAAoB,EAAA,EAGK;AAHL,EAAA,IAAA,EAAA,GAAA,EAAA,EAC3B;AAAA,IAAA;AAAA,GARF,GAO6B,EAAA,EAExB,KAAA,GAAA,SAAA,CAFwB,EAAA,EAExB;AAAA,IADH;AAAA,GAAA,CAAA;AAGA,EAAA,uBACE,GAAA;AAAA,IAAoB,kBAAA,CAAA,KAAA;AAAA,IAAnB,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,uBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,yDAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA;AAAA,GACN;AAEJ;AAEA,SAAS,eAAe,EAAA,EAA6C;AAA7C,EAAA,IAAK,kBAAL,EAAA,EAAK,EAAA,CAAA;AAC3B,EAAA,uBAAO,GAAA,CAAoB,kBAAA,CAAA,KAAA,EAAnB,cAAA,CAAA,EAAyB,WAAA,EAAU,qBAAsB,KAAA,CAAO,CAAA;AAC1E;AAEA,SAAS,gBAAgB,EAAA,EAMtB;AANsB,EAAA,IAAA,EAAA,GAAA,EAAA,EACvB;AAAA,IAAA,UAAA;AAAA,IACA;AAAA,GA7BF,GA2ByB,EAAA,EAGpB,KAAA,GAAA,SAAA,CAHoB,EAAA,EAGpB;AAAA,IAFH,YAAA;AAAA,IACA;AAAA,GAAA,CAAA;AAKA,EAAA,uBACE,GAAA;AAAA,IAAoB,kBAAA,CAAA,SAAA;AAAA,IAAnB,aAAA,CAAA,cAAA,CAAA;AAAA,MACC,WAAA,EAAU,kBAAA;AAAA,MACV,SAAA,EAAW,EAAA;AAAA,QACT,2kBAAA;AAAA,QACA;AAAA;AACF,KAAA,EACI,KAAA,CAAA,EANL;AAAA,MAQE,QAAA,EAAA,UAAA,wBACE,KAAA,EAAA,EAAI,SAAA,EAAU,6EACb,QAAA,kBAAA,GAAA,CAAC,gBAAA,EAAA,EAAiB,SAAA,EAAU,UAAA,EAAW,CAAA,EACzC;AAAA,KAAA;AAAA,GAEJ;AAEJ","file":"chunk-PY2BIZNB.js","sourcesContent":["\"use client\"\n\nimport { GripVerticalIcon } from \"lucide-react\"\nimport * as ResizablePrimitive from \"react-resizable-panels\"\n\nimport { cn } from \"@/lib/utils\"\n\nfunction ResizablePanelGroup({\n className,\n ...props\n}: ResizablePrimitive.GroupProps) {\n return (\n <ResizablePrimitive.Group\n data-slot=\"resizable-panel-group\"\n className={cn(\n \"flex h-full w-full aria-[orientation=vertical]:flex-col\",\n className\n )}\n {...props}\n />\n )\n}\n\nfunction ResizablePanel({ ...props }: ResizablePrimitive.PanelProps) {\n return <ResizablePrimitive.Panel data-slot=\"resizable-panel\" {...props} />\n}\n\nfunction ResizableHandle({\n withHandle,\n className,\n ...props\n}: ResizablePrimitive.SeparatorProps & {\n withHandle?: boolean\n}) {\n return (\n <ResizablePrimitive.Separator\n data-slot=\"resizable-handle\"\n className={cn(\n \"relative flex w-px items-center justify-center bg-border after:absolute after:inset-y-0 after:left-1/2 after:w-1 after:-translate-x-1/2 focus-visible:ring-1 focus-visible:ring-ring focus-visible:ring-offset-1 focus-visible:outline-hidden aria-[orientation=horizontal]:h-px aria-[orientation=horizontal]:w-full aria-[orientation=horizontal]:after:left-0 aria-[orientation=horizontal]:after:h-1 aria-[orientation=horizontal]:after:w-full aria-[orientation=horizontal]:after:translate-x-0 aria-[orientation=horizontal]:after:-translate-y-1/2 [&[aria-orientation=horizontal]>div]:rotate-90\",\n className\n )}\n {...props}\n >\n {withHandle && (\n <div className=\"z-10 flex h-4 w-3 items-center justify-center rounded-xs border bg-border\">\n <GripVerticalIcon className=\"size-2.5\" />\n </div>\n )}\n </ResizablePrimitive.Separator>\n )\n}\n\nexport { ResizableHandle, ResizablePanel, ResizablePanelGroup }\n"]}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { CycleIcon } from './chunk-OT2HCBR2.js';
|
|
2
|
+
import { cn } from './chunk-TYCPXAXF.js';
|
|
3
|
+
import { __objRest, __spreadValues, __spreadProps } from './chunk-YINJ5YZ5.js';
|
|
4
|
+
import { useTheme } from 'next-themes';
|
|
5
|
+
import { Toaster as Toaster$1, toast } from 'sonner';
|
|
6
|
+
import { Loader2, OctagonX, TriangleAlert, Info, CircleCheck } from 'lucide-react';
|
|
7
|
+
import { jsx } from 'react/jsx-runtime';
|
|
8
|
+
|
|
9
|
+
var Toaster = (_a) => {
|
|
10
|
+
var props = __objRest(_a, []);
|
|
11
|
+
const { theme = "system" } = useTheme();
|
|
12
|
+
return /* @__PURE__ */ jsx(
|
|
13
|
+
Toaster$1,
|
|
14
|
+
__spreadValues({
|
|
15
|
+
theme,
|
|
16
|
+
className: "toaster group",
|
|
17
|
+
icons: {
|
|
18
|
+
success: /* @__PURE__ */ jsx(CycleIcon, { icon: CircleCheck, size: "xs", decorative: true }),
|
|
19
|
+
info: /* @__PURE__ */ jsx(CycleIcon, { icon: Info, size: "xs", decorative: true }),
|
|
20
|
+
warning: /* @__PURE__ */ jsx(CycleIcon, { icon: TriangleAlert, size: "xs", decorative: true }),
|
|
21
|
+
error: /* @__PURE__ */ jsx(CycleIcon, { icon: OctagonX, size: "xs", decorative: true }),
|
|
22
|
+
loading: /* @__PURE__ */ jsx(
|
|
23
|
+
CycleIcon,
|
|
24
|
+
{
|
|
25
|
+
icon: Loader2,
|
|
26
|
+
size: "xs",
|
|
27
|
+
decorative: true,
|
|
28
|
+
className: "animate-spin"
|
|
29
|
+
}
|
|
30
|
+
)
|
|
31
|
+
},
|
|
32
|
+
style: {
|
|
33
|
+
"--normal-bg": "var(--popover)",
|
|
34
|
+
"--normal-text": "var(--popover-foreground)",
|
|
35
|
+
"--normal-border": "var(--border)",
|
|
36
|
+
"--border-radius": "var(--radius)"
|
|
37
|
+
}
|
|
38
|
+
}, props)
|
|
39
|
+
);
|
|
40
|
+
};
|
|
41
|
+
var themedStyle = {
|
|
42
|
+
"--normal-bg": "var(--popover)",
|
|
43
|
+
"--normal-text": "var(--popover-foreground)",
|
|
44
|
+
"--normal-border": "var(--border)"
|
|
45
|
+
};
|
|
46
|
+
var cycleToast = {
|
|
47
|
+
/** Green — positive feedback (saved, completed, success) */
|
|
48
|
+
positive: (message, options) => {
|
|
49
|
+
var _a;
|
|
50
|
+
return toast.success(message, __spreadProps(__spreadValues({}, options), {
|
|
51
|
+
style: __spreadValues(__spreadValues({}, themedStyle), options == null ? void 0 : options.style),
|
|
52
|
+
classNames: __spreadProps(__spreadValues({}, options == null ? void 0 : options.classNames), {
|
|
53
|
+
toast: cn("theme-positive", (_a = options == null ? void 0 : options.classNames) == null ? void 0 : _a.toast)
|
|
54
|
+
})
|
|
55
|
+
}));
|
|
56
|
+
},
|
|
57
|
+
/** Red — critical error (failed, deleted, destructive) */
|
|
58
|
+
critical: (message, options) => {
|
|
59
|
+
var _a;
|
|
60
|
+
return toast.error(message, __spreadProps(__spreadValues({}, options), {
|
|
61
|
+
style: __spreadValues(__spreadValues({}, themedStyle), options == null ? void 0 : options.style),
|
|
62
|
+
classNames: __spreadProps(__spreadValues({}, options == null ? void 0 : options.classNames), {
|
|
63
|
+
toast: cn("theme-critical", (_a = options == null ? void 0 : options.classNames) == null ? void 0 : _a.toast)
|
|
64
|
+
})
|
|
65
|
+
}));
|
|
66
|
+
},
|
|
67
|
+
/** Amber — warning (limit reached, attention needed) */
|
|
68
|
+
warning: (message, options) => {
|
|
69
|
+
var _a;
|
|
70
|
+
return toast.warning(message, __spreadProps(__spreadValues({}, options), {
|
|
71
|
+
style: __spreadValues(__spreadValues({}, themedStyle), options == null ? void 0 : options.style),
|
|
72
|
+
classNames: __spreadProps(__spreadValues({}, options == null ? void 0 : options.classNames), {
|
|
73
|
+
toast: cn("theme-warning", (_a = options == null ? void 0 : options.classNames) == null ? void 0 : _a.toast)
|
|
74
|
+
})
|
|
75
|
+
}));
|
|
76
|
+
},
|
|
77
|
+
/** Blue (Class) — informational (updates, tips, contextual info) */
|
|
78
|
+
info: (message, options) => {
|
|
79
|
+
var _a;
|
|
80
|
+
return toast.info(message, __spreadProps(__spreadValues({}, options), {
|
|
81
|
+
style: __spreadValues(__spreadValues({}, themedStyle), options == null ? void 0 : options.style),
|
|
82
|
+
classNames: __spreadProps(__spreadValues({}, options == null ? void 0 : options.classNames), {
|
|
83
|
+
toast: cn("theme-class", (_a = options == null ? void 0 : options.classNames) == null ? void 0 : _a.toast)
|
|
84
|
+
})
|
|
85
|
+
}));
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
|
|
89
|
+
export { Toaster, cycleToast };
|
|
90
|
+
//# sourceMappingURL=chunk-RI3ULQHH.js.map
|
|
91
|
+
//# sourceMappingURL=chunk-RI3ULQHH.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/components/ui/sonner.tsx"],"names":["Sonner"],"mappings":"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","file":"chunk-RI3ULQHH.js","sourcesContent":["\"use client\"\n\nimport { useTheme } from \"next-themes\"\nimport { Toaster as Sonner, toast, type ToasterProps } from \"sonner\"\nimport {\n CircleCheck,\n Info,\n Loader2,\n OctagonX,\n TriangleAlert,\n} from \"lucide-react\"\nimport { CycleIcon } from \"@/components/icons\"\nimport { cn } from \"@/lib/utils\"\n\nconst Toaster = ({ ...props }: ToasterProps) => {\n const { theme = \"system\" } = useTheme()\n\n return (\n <Sonner\n theme={theme as ToasterProps[\"theme\"]}\n className=\"toaster group\"\n icons={{\n success: <CycleIcon icon={CircleCheck} size=\"xs\" decorative />,\n info: <CycleIcon icon={Info} size=\"xs\" decorative />,\n warning: <CycleIcon icon={TriangleAlert} size=\"xs\" decorative />,\n error: <CycleIcon icon={OctagonX} size=\"xs\" decorative />,\n loading: (\n <CycleIcon\n icon={Loader2}\n size=\"xs\"\n decorative\n className=\"animate-spin\"\n />\n ),\n }}\n style={\n {\n \"--normal-bg\": \"var(--popover)\",\n \"--normal-text\": \"var(--popover-foreground)\",\n \"--normal-border\": \"var(--border)\",\n \"--border-radius\": \"var(--radius)\",\n } as React.CSSProperties\n }\n {...props}\n />\n )\n}\n\n/**\n * Cycle-themed toast helpers.\n *\n * These wrap `sonner.toast` with Cycle semantic colors:\n * - `cycleToast.positive(...)` — green/success feedback\n * - `cycleToast.critical(...)` — red/error feedback\n * - `cycleToast.warning(...)` — amber/warning feedback\n *\n * Each applies the `.theme-*` class AND redefines `--normal-bg/text/border`\n * on the toast element so Sonner picks up the themed token values.\n */\n\ntype ToastMessage = string | React.ReactNode\ntype ToastOptions = Parameters<typeof toast>[1]\n\n/**\n * Style override that re-binds Sonner's CSS variables on the toast element itself.\n * Combined with `.theme-*` classNames, this makes `var(--popover)` resolve\n * in the toast's own scope (where the theme redefines the tokens).\n */\nconst themedStyle = {\n \"--normal-bg\": \"var(--popover)\",\n \"--normal-text\": \"var(--popover-foreground)\",\n \"--normal-border\": \"var(--border)\",\n} as React.CSSProperties\n\nconst cycleToast = {\n /** Green — positive feedback (saved, completed, success) */\n positive: (message: ToastMessage, options?: ToastOptions) =>\n toast.success(message, {\n ...options,\n style: { ...themedStyle, ...options?.style },\n classNames: {\n ...options?.classNames,\n toast: cn(\"theme-positive\", options?.classNames?.toast),\n },\n }),\n\n /** Red — critical error (failed, deleted, destructive) */\n critical: (message: ToastMessage, options?: ToastOptions) =>\n toast.error(message, {\n ...options,\n style: { ...themedStyle, ...options?.style },\n classNames: {\n ...options?.classNames,\n toast: cn(\"theme-critical\", options?.classNames?.toast),\n },\n }),\n\n /** Amber — warning (limit reached, attention needed) */\n warning: (message: ToastMessage, options?: ToastOptions) =>\n toast.warning(message, {\n ...options,\n style: { ...themedStyle, ...options?.style },\n classNames: {\n ...options?.classNames,\n toast: cn(\"theme-warning\", options?.classNames?.toast),\n },\n }),\n\n /** Blue (Class) — informational (updates, tips, contextual info) */\n info: (message: ToastMessage, options?: ToastOptions) =>\n toast.info(message, {\n ...options,\n style: { ...themedStyle, ...options?.style },\n classNames: {\n ...options?.classNames,\n toast: cn(\"theme-class\", options?.classNames?.toast),\n },\n }),\n}\n\nexport { Toaster, cycleToast }\n"]}
|