@lfrprazeres/ui 0.2.0 → 0.3.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 +2 -2
- package/dist/charts/index.d.ts +2 -2
- package/dist/charts/line-chart.d.ts +18 -2
- package/dist/charts/line-chart.d.ts.map +1 -1
- package/dist/charts/line-chart.js +12 -7
- package/dist/charts/line-chart.js.map +1 -1
- package/dist/elements/badge.d.ts +1 -1
- package/dist/elements/button.d.ts +1 -1
- package/dist/elements/index.d.ts +3 -1
- package/dist/elements/index.js +3 -1
- package/dist/elements/toggle-group.d.ts +12 -0
- package/dist/elements/toggle-group.d.ts.map +1 -0
- package/dist/elements/toggle-group.js +50 -0
- package/dist/elements/toggle-group.js.map +1 -0
- package/dist/elements/toggle.d.ts +12 -0
- package/dist/elements/toggle.d.ts.map +1 -0
- package/dist/elements/toggle.js +38 -0
- package/dist/elements/toggle.js.map +1 -0
- package/dist/index.d.ts +3 -1
- package/dist/index.js +3 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -80,9 +80,9 @@ whole surface is 98 kB.
|
|
|
80
80
|
|
|
81
81
|
## What ships
|
|
82
82
|
|
|
83
|
-
**Elements** (
|
|
83
|
+
**Elements** (19): Avatar, Badge, Button, Card, Checkbox, Dialog, DropdownMenu,
|
|
84
84
|
Input, Label, Popover, Select, Separator, Skeleton, Switch, Table, Textarea,
|
|
85
|
-
Toaster.
|
|
85
|
+
Toaster, Toggle, ToggleGroup.
|
|
86
86
|
|
|
87
87
|
**Components** (9): Chip, FileDropzone, LanguageSwitcher, Marquee, MessageBubble,
|
|
88
88
|
SearchCombobox, StatTile, StreamingDots, ThemeToggle.
|
package/dist/charts/index.d.ts
CHANGED
|
@@ -5,6 +5,6 @@ import { ChartLegendItem, ChartLegendList, ChartLegendListProps } from "./chart-
|
|
|
5
5
|
import { CHART_RAMP, rampColor } from "./chart-ramp.js";
|
|
6
6
|
import { ChartBaseProps, ChartRow, ChartSeries, ChartSlice } from "./types.js";
|
|
7
7
|
import { DonutChart, DonutChartProps } from "./donut-chart.js";
|
|
8
|
-
import { LineChart, LineChartProps } from "./line-chart.js";
|
|
8
|
+
import { LineChart, LineChartProps, LineChartValueAxis } from "./line-chart.js";
|
|
9
9
|
import { CartesianChartInput, useCartesianChart } from "./use-cartesian-chart.js";
|
|
10
|
-
export { CHART_RAMP, CartesianChartInput, ChartBaseProps, ChartConfig, ChartContainer, ChartDataTable, ChartDataTableProps, ChartDataTableRow, ChartFrame, ChartFrameProps, ChartLegend, ChartLegendContent, ChartLegendItem, ChartLegendList, ChartLegendListProps, ChartRow, ChartSeries, ChartSlice, ChartStyle, ChartTooltip, ChartTooltipContent, DonutChart, DonutChartProps, LineChart, LineChartProps, rampColor, useCartesianChart };
|
|
10
|
+
export { CHART_RAMP, CartesianChartInput, ChartBaseProps, ChartConfig, ChartContainer, ChartDataTable, ChartDataTableProps, ChartDataTableRow, ChartFrame, ChartFrameProps, ChartLegend, ChartLegendContent, ChartLegendItem, ChartLegendList, ChartLegendListProps, ChartRow, ChartSeries, ChartSlice, ChartStyle, ChartTooltip, ChartTooltipContent, DonutChart, DonutChartProps, LineChart, LineChartProps, LineChartValueAxis, rampColor, useCartesianChart };
|
|
@@ -1,10 +1,26 @@
|
|
|
1
|
+
import { ChartTooltip } from "../elements/chart.js";
|
|
1
2
|
import { ChartBaseProps, ChartRow, ChartSeries } from "./types.js";
|
|
3
|
+
import { ComponentProps } from "react";
|
|
2
4
|
//#region src/charts/line-chart.d.ts
|
|
5
|
+
interface LineChartValueAxis {
|
|
6
|
+
/** Scale to the data range instead of anchoring at zero. */
|
|
7
|
+
fit?: boolean;
|
|
8
|
+
orientation?: "left" | "right";
|
|
9
|
+
width?: number;
|
|
10
|
+
}
|
|
3
11
|
interface LineChartProps extends ChartBaseProps {
|
|
4
12
|
data: ChartRow[];
|
|
5
13
|
/** Draws points as well as the line. */
|
|
6
14
|
dots?: boolean;
|
|
15
|
+
/** Formats the category axis ticks, e.g. a timestamp into a date. */
|
|
16
|
+
formatX?: (value: string | number) => string;
|
|
17
|
+
/** Draw the background grid. */
|
|
18
|
+
grid?: boolean;
|
|
7
19
|
series: ChartSeries[];
|
|
20
|
+
/** Replaces the default tooltip content entirely. */
|
|
21
|
+
tooltip?: ComponentProps<typeof ChartTooltip>["content"];
|
|
22
|
+
/** Value-axis options, or false to hide it. */
|
|
23
|
+
valueAxis?: false | LineChartValueAxis;
|
|
8
24
|
/** Key on each row holding the category or time value. */
|
|
9
25
|
xKey: string;
|
|
10
26
|
}
|
|
@@ -16,7 +32,7 @@ interface LineChartProps extends ChartBaseProps {
|
|
|
16
32
|
* tab stops: that forces keyboard users through every value to get past the
|
|
17
33
|
* chart.
|
|
18
34
|
*/
|
|
19
|
-
declare function LineChart({ className, data, dots, emptyLabel, formatValue, label, legend, series, xKey }: LineChartProps): import("react").JSX.Element;
|
|
35
|
+
declare function LineChart({ className, data, dots, emptyLabel, formatValue, formatX, grid, label, legend, series, tooltip, valueAxis, xKey }: LineChartProps): import("react").JSX.Element;
|
|
20
36
|
//#endregion
|
|
21
|
-
export { LineChart, LineChartProps };
|
|
37
|
+
export { LineChart, LineChartProps, LineChartValueAxis };
|
|
22
38
|
//# sourceMappingURL=line-chart.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"line-chart.d.ts","names":[],"sources":["../../src/charts/line-chart.tsx"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"line-chart.d.ts","names":[],"sources":["../../src/charts/line-chart.tsx"],"mappings":";;;;UAqBiB;;EAEf;EACA;EACA;;UAGe,uBAAuB;EACtC,MAAM;;EAEN;;EAEA,WAAW;;EAEX;EACA,QAAQ;;EAER,UAAU,sBAAsB;;EAEhC,oBAAoB;;EAEpB;;;;;;;;;;iBAWc,YACd,WACA,MACA,MACA,YACA,aACA,SACA,MACA,OACA,QACA,QACA,SACA,WACA,QACC,iCAAc,IAAA"}
|
|
@@ -15,7 +15,8 @@ import { CartesianGrid, Line, LineChart, XAxis, YAxis } from "recharts";
|
|
|
15
15
|
* tab stops: that forces keyboard users through every value to get past the
|
|
16
16
|
* chart.
|
|
17
17
|
*/
|
|
18
|
-
function LineChart$1({ className, data, dots = false, emptyLabel, formatValue, label, legend = true, series, xKey }) {
|
|
18
|
+
function LineChart$1({ className, data, dots = false, emptyLabel, formatValue, formatX, grid = true, label, legend = true, series, tooltip, valueAxis, xKey }) {
|
|
19
|
+
const axis = valueAxis === false ? null : valueAxis ?? {};
|
|
19
20
|
const { colors, columns, config, legendItems, rows } = useCartesianChart({
|
|
20
21
|
data,
|
|
21
22
|
formatValue,
|
|
@@ -49,23 +50,27 @@ function LineChart$1({ className, data, dots = false, emptyLabel, formatValue, l
|
|
|
49
50
|
top: 8
|
|
50
51
|
},
|
|
51
52
|
children: [
|
|
52
|
-
/* @__PURE__ */ jsx(CartesianGrid, {
|
|
53
|
+
grid ? /* @__PURE__ */ jsx(CartesianGrid, {
|
|
53
54
|
strokeDasharray: "3 3",
|
|
54
55
|
vertical: false
|
|
55
|
-
}),
|
|
56
|
+
}) : null,
|
|
56
57
|
/* @__PURE__ */ jsx(XAxis, {
|
|
57
58
|
axisLine: false,
|
|
58
59
|
dataKey: xKey,
|
|
60
|
+
tickFormatter: formatX,
|
|
59
61
|
tickLine: false,
|
|
60
62
|
tickMargin: 8
|
|
61
63
|
}),
|
|
62
|
-
/* @__PURE__ */ jsx(YAxis, {
|
|
64
|
+
axis ? /* @__PURE__ */ jsx(YAxis, {
|
|
63
65
|
axisLine: false,
|
|
66
|
+
domain: axis.fit ? ["dataMin", "dataMax"] : void 0,
|
|
67
|
+
orientation: axis.orientation ?? "left",
|
|
68
|
+
tickFormatter: formatValue,
|
|
64
69
|
tickLine: false,
|
|
65
70
|
tickMargin: 8,
|
|
66
|
-
width: 48
|
|
67
|
-
}),
|
|
68
|
-
/* @__PURE__ */ jsx(ChartTooltip, { content: /* @__PURE__ */ jsx(ChartTooltipContent, {}) }),
|
|
71
|
+
width: axis.width ?? 48
|
|
72
|
+
}) : null,
|
|
73
|
+
/* @__PURE__ */ jsx(ChartTooltip, { content: tooltip ?? /* @__PURE__ */ jsx(ChartTooltipContent, {}) }),
|
|
69
74
|
series.map((entry, index) => /* @__PURE__ */ jsx(Line, {
|
|
70
75
|
dataKey: entry.key,
|
|
71
76
|
dot: dots,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"line-chart.js","names":["LineChart","RechartsLine"],"sources":["../../src/charts/line-chart.tsx"],"sourcesContent":["\"use client\";\n\nimport {\n CartesianGrid,\n Line,\n LineChart as RechartsLine,\n XAxis,\n YAxis,\n} from \"recharts\";\nimport { ChartDataTable } from \"@/charts/chart-data-table\";\nimport { ChartFrame } from \"@/charts/chart-frame\";\nimport { ChartLegendList } from \"@/charts/chart-legend-list\";\nimport type { ChartBaseProps, ChartRow, ChartSeries } from \"@/charts/types\";\nimport { useCartesianChart } from \"@/charts/use-cartesian-chart\";\nimport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/elements/chart\";\n\nexport interface LineChartProps extends ChartBaseProps {\n data: ChartRow[];\n /** Draws points as well as the line. */\n dots?: boolean;\n series: ChartSeries[];\n /** Key on each row holding the category or time value. */\n xKey: string;\n}\n\n/**\n * A trend over an ordered axis.\n *\n * recharts turns its accessibility layer on by default from v3, so the chart is\n * a single tab stop and arrow keys move between points. Do not add per-point\n * tab stops: that forces keyboard users through every value to get past the\n * chart.\n */\nexport function LineChart({\n className,\n data,\n dots = false,\n emptyLabel,\n formatValue,\n label,\n legend = true,\n series,\n xKey,\n}: LineChartProps) {\n const { colors, columns, config, legendItems, rows } = useCartesianChart({\n data,\n formatValue,\n series,\n xKey,\n });\n\n return (\n <ChartFrame\n className={className}\n dataTable={\n <ChartDataTable caption={label} columns={columns} rows={rows} />\n }\n emptyLabel={emptyLabel}\n interactive\n isEmpty={data.length === 0 || series.length === 0}\n label={label}\n legend={legend ? <ChartLegendList items={legendItems} /> : null}\n >\n <ChartContainer\n className=\"aspect-video w-full\"\n config={config}\n initialDimension={{ height: 240, width: 420 }}\n >\n <RechartsLine data={data} margin={{ left: 4, right: 8, top: 8 }}>\n <CartesianGrid strokeDasharray=\"3 3\" vertical={false} />\n <XAxis\n axisLine={false}\n dataKey={xKey}\n tickLine={false}\n tickMargin={8}\n />\n <YAxis
|
|
1
|
+
{"version":3,"file":"line-chart.js","names":["LineChart","RechartsLine"],"sources":["../../src/charts/line-chart.tsx"],"sourcesContent":["\"use client\";\n\nimport type { ComponentProps } from \"react\";\nimport {\n CartesianGrid,\n Line,\n LineChart as RechartsLine,\n XAxis,\n YAxis,\n} from \"recharts\";\nimport { ChartDataTable } from \"@/charts/chart-data-table\";\nimport { ChartFrame } from \"@/charts/chart-frame\";\nimport { ChartLegendList } from \"@/charts/chart-legend-list\";\nimport type { ChartBaseProps, ChartRow, ChartSeries } from \"@/charts/types\";\nimport { useCartesianChart } from \"@/charts/use-cartesian-chart\";\nimport {\n ChartContainer,\n ChartTooltip,\n ChartTooltipContent,\n} from \"@/elements/chart\";\n\nexport interface LineChartValueAxis {\n /** Scale to the data range instead of anchoring at zero. */\n fit?: boolean;\n orientation?: \"left\" | \"right\";\n width?: number;\n}\n\nexport interface LineChartProps extends ChartBaseProps {\n data: ChartRow[];\n /** Draws points as well as the line. */\n dots?: boolean;\n /** Formats the category axis ticks, e.g. a timestamp into a date. */\n formatX?: (value: string | number) => string;\n /** Draw the background grid. */\n grid?: boolean;\n series: ChartSeries[];\n /** Replaces the default tooltip content entirely. */\n tooltip?: ComponentProps<typeof ChartTooltip>[\"content\"];\n /** Value-axis options, or false to hide it. */\n valueAxis?: false | LineChartValueAxis;\n /** Key on each row holding the category or time value. */\n xKey: string;\n}\n\n/**\n * A trend over an ordered axis.\n *\n * recharts turns its accessibility layer on by default from v3, so the chart is\n * a single tab stop and arrow keys move between points. Do not add per-point\n * tab stops: that forces keyboard users through every value to get past the\n * chart.\n */\nexport function LineChart({\n className,\n data,\n dots = false,\n emptyLabel,\n formatValue,\n formatX,\n grid = true,\n label,\n legend = true,\n series,\n tooltip,\n valueAxis,\n xKey,\n}: LineChartProps) {\n const axis = valueAxis === false ? null : (valueAxis ?? {});\n const { colors, columns, config, legendItems, rows } = useCartesianChart({\n data,\n formatValue,\n series,\n xKey,\n });\n\n return (\n <ChartFrame\n className={className}\n dataTable={\n <ChartDataTable caption={label} columns={columns} rows={rows} />\n }\n emptyLabel={emptyLabel}\n interactive\n isEmpty={data.length === 0 || series.length === 0}\n label={label}\n legend={legend ? <ChartLegendList items={legendItems} /> : null}\n >\n <ChartContainer\n className=\"aspect-video w-full\"\n config={config}\n initialDimension={{ height: 240, width: 420 }}\n >\n <RechartsLine data={data} margin={{ left: 4, right: 8, top: 8 }}>\n {grid ? (\n <CartesianGrid strokeDasharray=\"3 3\" vertical={false} />\n ) : null}\n <XAxis\n axisLine={false}\n dataKey={xKey}\n tickFormatter={formatX}\n tickLine={false}\n tickMargin={8}\n />\n {axis ? (\n <YAxis\n axisLine={false}\n domain={axis.fit ? [\"dataMin\", \"dataMax\"] : undefined}\n orientation={axis.orientation ?? \"left\"}\n tickFormatter={formatValue}\n tickLine={false}\n tickMargin={8}\n width={axis.width ?? 48}\n />\n ) : null}\n <ChartTooltip content={tooltip ?? <ChartTooltipContent />} />\n {series.map((entry, index) => (\n <Line\n dataKey={entry.key}\n dot={dots}\n key={entry.key}\n stroke={colors[index]}\n strokeWidth={2}\n type=\"monotone\"\n />\n ))}\n </RechartsLine>\n </ChartContainer>\n </ChartFrame>\n );\n}\n"],"mappings":";;;;;;;;;;;;;;;;;AAqDA,SAAgBA,YAAU,EACxB,WACA,MACA,OAAO,OACP,YACA,aACA,SACA,OAAO,MACP,OACA,SAAS,MACT,QACA,SACA,WACA,QACiB;CACjB,MAAM,OAAO,cAAc,QAAQ,OAAQ,aAAa,CAAC;CACzD,MAAM,EAAE,QAAQ,SAAS,QAAQ,aAAa,SAAS,kBAAkB;EACvE;EACA;EACA;EACA;CACF,CAAC;CAED,OACE,oBAAC,YAAD;EACa;EACX,WACE,oBAAC,gBAAD;GAAgB,SAAS;GAAgB;GAAe;EAAO,CAAA;EAErD;EACZ,aAAA;EACA,SAAS,KAAK,WAAW,KAAK,OAAO,WAAW;EACzC;EACP,QAAQ,SAAS,oBAAC,iBAAD,EAAiB,OAAO,YAAc,CAAA,IAAI;EAE3D,UAAA,oBAAC,gBAAD;GACE,WAAU;GACF;GACR,kBAAkB;IAAE,QAAQ;IAAK,OAAO;GAAI;GAE5C,UAAA,qBAACC,WAAD;IAAoB;IAAM,QAAQ;KAAE,MAAM;KAAG,OAAO;KAAG,KAAK;IAAE;IAA9D,UAAA;KACG,OACC,oBAAC,eAAD;MAAe,iBAAgB;MAAM,UAAU;KAAQ,CAAA,IACrD;KACJ,oBAAC,OAAD;MACE,UAAU;MACV,SAAS;MACT,eAAe;MACf,UAAU;MACV,YAAY;KACb,CAAA;KACA,OACC,oBAAC,OAAD;MACE,UAAU;MACV,QAAQ,KAAK,MAAM,CAAC,WAAW,SAAS,IAAI,KAAA;MAC5C,aAAa,KAAK,eAAe;MACjC,eAAe;MACf,UAAU;MACV,YAAY;MACZ,OAAO,KAAK,SAAS;KACtB,CAAA,IACC;KACJ,oBAAC,cAAD,EAAc,SAAS,WAAW,oBAAC,qBAAD,CAAsB,CAAA,EAAI,CAAA;KAC3D,OAAO,KAAK,OAAO,UAClB,oBAAC,MAAD;MACE,SAAS,MAAM;MACf,KAAK;MAEL,QAAQ,OAAO;MACf,aAAa;MACb,MAAK;KACN,GAJM,MAAM,GAIZ,CACF;IACW;;EACA,CAAA;CACN,CAAA;AAEhB"}
|
package/dist/elements/badge.d.ts
CHANGED
|
@@ -2,7 +2,7 @@ import { VariantProps } from "class-variance-authority";
|
|
|
2
2
|
import * as React from "react";
|
|
3
3
|
//#region src/elements/badge.d.ts
|
|
4
4
|
declare const badgeVariants: (props?: ({
|
|
5
|
-
variant?: "
|
|
5
|
+
variant?: "link" | "default" | "outline" | "destructive" | "ghost" | "secondary" | null | undefined;
|
|
6
6
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
7
|
declare function Badge({ className, variant, asChild, ...props }: React.ComponentProps<"span"> & VariantProps<typeof badgeVariants> & {
|
|
8
8
|
asChild?: boolean;
|
|
@@ -3,7 +3,7 @@ import * as React from "react";
|
|
|
3
3
|
//#region src/elements/button.d.ts
|
|
4
4
|
declare const buttonVariants: (props?: ({
|
|
5
5
|
size?: "default" | "sm" | "icon" | "icon-lg" | "icon-sm" | "icon-xs" | "lg" | "xs" | null | undefined;
|
|
6
|
-
variant?: "
|
|
6
|
+
variant?: "link" | "default" | "outline" | "destructive" | "ghost" | "secondary" | null | undefined;
|
|
7
7
|
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
8
8
|
declare function Button({ className, variant, size, asChild, ...props }: React.ComponentProps<"button"> & VariantProps<typeof buttonVariants> & {
|
|
9
9
|
asChild?: boolean;
|
package/dist/elements/index.d.ts
CHANGED
|
@@ -15,4 +15,6 @@ import { Toaster, toast } from "./sonner.js";
|
|
|
15
15
|
import { Switch } from "./switch.js";
|
|
16
16
|
import { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from "./table.js";
|
|
17
17
|
import { Textarea } from "./textarea.js";
|
|
18
|
-
|
|
18
|
+
import { Toggle, toggleVariants } from "./toggle.js";
|
|
19
|
+
import { ToggleGroup, ToggleGroupItem } from "./toggle-group.js";
|
|
20
|
+
export { Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge, Button, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Input, Label, Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Skeleton, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Textarea, Toaster, Toggle, ToggleGroup, ToggleGroupItem, badgeVariants, buttonVariants, toast, toggleVariants };
|
package/dist/elements/index.js
CHANGED
|
@@ -15,4 +15,6 @@ import { Toaster, toast } from "./sonner.js";
|
|
|
15
15
|
import { Switch } from "./switch.js";
|
|
16
16
|
import { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from "./table.js";
|
|
17
17
|
import { Textarea } from "./textarea.js";
|
|
18
|
-
|
|
18
|
+
import { Toggle, toggleVariants } from "./toggle.js";
|
|
19
|
+
import { ToggleGroup, ToggleGroupItem } from "./toggle-group.js";
|
|
20
|
+
export { Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge, Button, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, Input, Label, Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Skeleton, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Textarea, Toaster, Toggle, ToggleGroup, ToggleGroupItem, badgeVariants, buttonVariants, toast, toggleVariants };
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { toggleVariants } from "./toggle.js";
|
|
2
|
+
import { VariantProps } from "class-variance-authority";
|
|
3
|
+
import * as React from "react";
|
|
4
|
+
import { ToggleGroup } from "radix-ui";
|
|
5
|
+
//#region src/elements/toggle-group.d.ts
|
|
6
|
+
declare function ToggleGroup$1({ className, variant, size, spacing, children, ...props }: React.ComponentProps<typeof ToggleGroup.Root> & VariantProps<typeof toggleVariants> & {
|
|
7
|
+
spacing?: number;
|
|
8
|
+
}): React.JSX.Element;
|
|
9
|
+
declare function ToggleGroupItem({ className, children, variant, size, ...props }: React.ComponentProps<typeof ToggleGroup.Item> & VariantProps<typeof toggleVariants>): React.JSX.Element;
|
|
10
|
+
//#endregion
|
|
11
|
+
export { ToggleGroup$1 as ToggleGroup, ToggleGroupItem };
|
|
12
|
+
//# sourceMappingURL=toggle-group.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toggle-group.d.ts","names":[],"sources":["../../src/elements/toggle-group.tsx"],"mappings":";;;;;iBAkBS,gBACP,WACA,SACA,MACA,SACA,aACG,SACF,MAAM,sBAAsB,YAAqB,QAClD,oBAAoB;EAClB;IACD,MAAA,IAAA;iBAqBM,kBACP,WACA,UACA,SACA,SACG,SACF,MAAM,sBAAsB,YAAqB,QAClD,oBAAoB,kBAAe,MAAA,IAAA"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../lib/cn.js";
|
|
3
|
+
import { toggleVariants } from "./toggle.js";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
import * as React from "react";
|
|
6
|
+
import { ToggleGroup } from "radix-ui";
|
|
7
|
+
//#region src/elements/toggle-group.tsx
|
|
8
|
+
const ToggleGroupContext = React.createContext({
|
|
9
|
+
size: "default",
|
|
10
|
+
spacing: 0,
|
|
11
|
+
variant: "default"
|
|
12
|
+
});
|
|
13
|
+
function ToggleGroup$1({ className, variant, size, spacing = 0, children, ...props }) {
|
|
14
|
+
return /* @__PURE__ */ jsx(ToggleGroup.Root, {
|
|
15
|
+
className: cn("group/toggle-group flex w-fit items-center gap-[--spacing(var(--gap))] rounded-md data-[spacing=default]:data-[variant=outline]:shadow-xs", className),
|
|
16
|
+
"data-size": size,
|
|
17
|
+
"data-slot": "toggle-group",
|
|
18
|
+
"data-spacing": spacing,
|
|
19
|
+
"data-variant": variant,
|
|
20
|
+
style: { "--gap": spacing },
|
|
21
|
+
...props,
|
|
22
|
+
children: /* @__PURE__ */ jsx(ToggleGroupContext.Provider, {
|
|
23
|
+
value: {
|
|
24
|
+
size,
|
|
25
|
+
spacing,
|
|
26
|
+
variant
|
|
27
|
+
},
|
|
28
|
+
children
|
|
29
|
+
})
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
function ToggleGroupItem({ className, children, variant, size, ...props }) {
|
|
33
|
+
const context = React.useContext(ToggleGroupContext);
|
|
34
|
+
return /* @__PURE__ */ jsx(ToggleGroup.Item, {
|
|
35
|
+
className: cn(toggleVariants({
|
|
36
|
+
size: context.size || size,
|
|
37
|
+
variant: context.variant || variant
|
|
38
|
+
}), "w-auto min-w-0 shrink-0 px-3 focus:z-10 focus-visible:z-10", "data-[spacing=0]:data-[variant=outline]:border-l-0 data-[spacing=0]:rounded-none data-[spacing=0]:shadow-none data-[spacing=0]:last:rounded-r-md data-[spacing=0]:data-[variant=outline]:first:border-l data-[spacing=0]:first:rounded-l-md", className),
|
|
39
|
+
"data-size": context.size || size,
|
|
40
|
+
"data-slot": "toggle-group-item",
|
|
41
|
+
"data-spacing": context.spacing,
|
|
42
|
+
"data-variant": context.variant || variant,
|
|
43
|
+
...props,
|
|
44
|
+
children
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
//#endregion
|
|
48
|
+
export { ToggleGroup$1 as ToggleGroup, ToggleGroupItem };
|
|
49
|
+
|
|
50
|
+
//# sourceMappingURL=toggle-group.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toggle-group.js","names":["ToggleGroup","ToggleGroupPrimitive"],"sources":["../../src/elements/toggle-group.tsx"],"sourcesContent":["\"use client\";\n\nimport type { VariantProps } from \"class-variance-authority\";\nimport { ToggleGroup as ToggleGroupPrimitive } from \"radix-ui\";\nimport * as React from \"react\";\nimport { toggleVariants } from \"@/elements/toggle\";\nimport { cn } from \"@/lib/cn\";\n\nconst ToggleGroupContext = React.createContext<\n VariantProps<typeof toggleVariants> & {\n spacing?: number;\n }\n>({\n size: \"default\",\n spacing: 0,\n variant: \"default\",\n});\n\nfunction ToggleGroup({\n className,\n variant,\n size,\n spacing = 0,\n children,\n ...props\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Root> &\n VariantProps<typeof toggleVariants> & {\n spacing?: number;\n }) {\n return (\n <ToggleGroupPrimitive.Root\n className={cn(\n \"group/toggle-group flex w-fit items-center gap-[--spacing(var(--gap))] rounded-md data-[spacing=default]:data-[variant=outline]:shadow-xs\",\n className\n )}\n data-size={size}\n data-slot=\"toggle-group\"\n data-spacing={spacing}\n data-variant={variant}\n style={{ \"--gap\": spacing } as React.CSSProperties}\n {...props}\n >\n <ToggleGroupContext.Provider value={{ size, spacing, variant }}>\n {children}\n </ToggleGroupContext.Provider>\n </ToggleGroupPrimitive.Root>\n );\n}\n\nfunction ToggleGroupItem({\n className,\n children,\n variant,\n size,\n ...props\n}: React.ComponentProps<typeof ToggleGroupPrimitive.Item> &\n VariantProps<typeof toggleVariants>) {\n const context = React.useContext(ToggleGroupContext);\n\n return (\n <ToggleGroupPrimitive.Item\n className={cn(\n toggleVariants({\n size: context.size || size,\n variant: context.variant || variant,\n }),\n \"w-auto min-w-0 shrink-0 px-3 focus:z-10 focus-visible:z-10\",\n \"data-[spacing=0]:data-[variant=outline]:border-l-0 data-[spacing=0]:rounded-none data-[spacing=0]:shadow-none data-[spacing=0]:last:rounded-r-md data-[spacing=0]:data-[variant=outline]:first:border-l data-[spacing=0]:first:rounded-l-md\",\n className\n )}\n data-size={context.size || size}\n data-slot=\"toggle-group-item\"\n data-spacing={context.spacing}\n data-variant={context.variant || variant}\n {...props}\n >\n {children}\n </ToggleGroupPrimitive.Item>\n );\n}\n\nexport { ToggleGroup, ToggleGroupItem };\n"],"mappings":";;;;;;;AAQA,MAAM,qBAAqB,MAAM,cAI/B;CACA,MAAM;CACN,SAAS;CACT,SAAS;AACX,CAAC;AAED,SAASA,cAAY,EACnB,WACA,SACA,MACA,UAAU,GACV,UACA,GAAG,SAIA;CACH,OACE,oBAACC,YAAqB,MAAtB;EACE,WAAW,GACT,6IACA,SACF;EACA,aAAW;EACX,aAAU;EACV,gBAAc;EACd,gBAAc;EACd,OAAO,EAAE,SAAS,QAAQ;EAC1B,GAAI;EAEJ,UAAA,oBAAC,mBAAmB,UAApB;GAA6B,OAAO;IAAE;IAAM;IAAS;GAAQ;GAC1D;EAC0B,CAAA;CACJ,CAAA;AAE/B;AAEA,SAAS,gBAAgB,EACvB,WACA,UACA,SACA,MACA,GAAG,SAEkC;CACrC,MAAM,UAAU,MAAM,WAAW,kBAAkB;CAEnD,OACE,oBAACA,YAAqB,MAAtB;EACE,WAAW,GACT,eAAe;GACb,MAAM,QAAQ,QAAQ;GACtB,SAAS,QAAQ,WAAW;EAC9B,CAAC,GACD,8DACA,+OACA,SACF;EACA,aAAW,QAAQ,QAAQ;EAC3B,aAAU;EACV,gBAAc,QAAQ;EACtB,gBAAc,QAAQ,WAAW;EACjC,GAAI;EAEH;CACwB,CAAA;AAE/B"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { VariantProps } from "class-variance-authority";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { Toggle } from "radix-ui";
|
|
4
|
+
//#region src/elements/toggle.d.ts
|
|
5
|
+
declare const toggleVariants: (props?: ({
|
|
6
|
+
size?: "default" | "sm" | "lg" | null | undefined;
|
|
7
|
+
variant?: "default" | "outline" | null | undefined;
|
|
8
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
9
|
+
declare function Toggle$1({ className, variant, size, ...props }: React.ComponentProps<typeof Toggle.Root> & VariantProps<typeof toggleVariants>): React.JSX.Element;
|
|
10
|
+
//#endregion
|
|
11
|
+
export { Toggle$1 as Toggle, toggleVariants };
|
|
12
|
+
//# sourceMappingURL=toggle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toggle.d.ts","names":[],"sources":["../../src/elements/toggle.tsx"],"mappings":";;;;cAQM,iBAAc;;;6CAoBnB;iBAEQ,WACP,WACA,SACA,SACG,SACF,MAAM,sBAAsB,OAAgB,QAC7C,oBAAoB,kBAAe,MAAA,IAAA"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../lib/cn.js";
|
|
3
|
+
import { cva } from "class-variance-authority";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
import { Toggle } from "radix-ui";
|
|
6
|
+
//#region src/elements/toggle.tsx
|
|
7
|
+
const toggleVariants = cva("inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium text-sm outline-none transition-[color,box-shadow] hover:bg-muted hover:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground dark:aria-invalid:ring-destructive/40 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0", {
|
|
8
|
+
defaultVariants: {
|
|
9
|
+
size: "default",
|
|
10
|
+
variant: "default"
|
|
11
|
+
},
|
|
12
|
+
variants: {
|
|
13
|
+
size: {
|
|
14
|
+
default: "h-9 min-w-9 px-2",
|
|
15
|
+
lg: "h-10 min-w-10 px-2.5",
|
|
16
|
+
sm: "h-8 min-w-8 px-1.5"
|
|
17
|
+
},
|
|
18
|
+
variant: {
|
|
19
|
+
default: "bg-transparent",
|
|
20
|
+
outline: "border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground"
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
function Toggle$1({ className, variant, size, ...props }) {
|
|
25
|
+
return /* @__PURE__ */ jsx(Toggle.Root, {
|
|
26
|
+
className: cn(toggleVariants({
|
|
27
|
+
className,
|
|
28
|
+
size,
|
|
29
|
+
variant
|
|
30
|
+
})),
|
|
31
|
+
"data-slot": "toggle",
|
|
32
|
+
...props
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
//#endregion
|
|
36
|
+
export { Toggle$1 as Toggle, toggleVariants };
|
|
37
|
+
|
|
38
|
+
//# sourceMappingURL=toggle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"toggle.js","names":["Toggle","TogglePrimitive"],"sources":["../../src/elements/toggle.tsx"],"sourcesContent":["\"use client\";\n\nimport { cva, type VariantProps } from \"class-variance-authority\";\nimport { Toggle as TogglePrimitive } from \"radix-ui\";\nimport type * as React from \"react\";\n\nimport { cn } from \"@/lib/cn\";\n\nconst toggleVariants = cva(\n \"inline-flex items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium text-sm outline-none transition-[color,box-shadow] hover:bg-muted hover:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 data-[state=on]:bg-accent data-[state=on]:text-accent-foreground dark:aria-invalid:ring-destructive/40 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0\",\n {\n defaultVariants: {\n size: \"default\",\n variant: \"default\",\n },\n variants: {\n size: {\n default: \"h-9 min-w-9 px-2\",\n lg: \"h-10 min-w-10 px-2.5\",\n sm: \"h-8 min-w-8 px-1.5\",\n },\n variant: {\n default: \"bg-transparent\",\n outline:\n \"border border-input bg-transparent shadow-xs hover:bg-accent hover:text-accent-foreground\",\n },\n },\n }\n);\n\nfunction Toggle({\n className,\n variant,\n size,\n ...props\n}: React.ComponentProps<typeof TogglePrimitive.Root> &\n VariantProps<typeof toggleVariants>) {\n return (\n <TogglePrimitive.Root\n className={cn(toggleVariants({ className, size, variant }))}\n data-slot=\"toggle\"\n {...props}\n />\n );\n}\n\nexport { Toggle, toggleVariants };\n"],"mappings":";;;;;;AAQA,MAAM,iBAAiB,IACrB,ijBACA;CACE,iBAAiB;EACf,MAAM;EACN,SAAS;CACX;CACA,UAAU;EACR,MAAM;GACJ,SAAS;GACT,IAAI;GACJ,IAAI;EACN;EACA,SAAS;GACP,SAAS;GACT,SACE;EACJ;CACF;AACF,CACF;AAEA,SAASA,SAAO,EACd,WACA,SACA,MACA,GAAG,SAEkC;CACrC,OACE,oBAACC,OAAgB,MAAjB;EACE,WAAW,GAAG,eAAe;GAAE;GAAW;GAAM;EAAQ,CAAC,CAAC;EAC1D,aAAU;EACV,GAAI;CACL,CAAA;AAEL"}
|
package/dist/index.d.ts
CHANGED
|
@@ -25,6 +25,8 @@ import { Toaster, toast } from "./elements/sonner.js";
|
|
|
25
25
|
import { Switch } from "./elements/switch.js";
|
|
26
26
|
import { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from "./elements/table.js";
|
|
27
27
|
import { Textarea } from "./elements/textarea.js";
|
|
28
|
+
import { Toggle, toggleVariants } from "./elements/toggle.js";
|
|
29
|
+
import { ToggleGroup, ToggleGroupItem } from "./elements/toggle-group.js";
|
|
28
30
|
import "./elements/index.js";
|
|
29
31
|
import { cn } from "./lib/cn.js";
|
|
30
|
-
export { Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge, Button, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Chip, ChipProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, FileDropzone, FileDropzoneProps, Input, Label, LanguageOption, LanguageSwitcher, LanguageSwitcherProps, Marquee, MarqueeProps, MessageBubble, MessageBubbleProps, MessageRole, Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, SearchCombobox, SearchComboboxProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Skeleton, StatDirection, StatTile, StatTileProps, StreamingDots, StreamingDotsProps, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Textarea, ThemeMode, ThemeToggle, ThemeToggleLabels, ThemeToggleProps, Toaster, badgeVariants, buttonVariants, chipVariants, cn, toast };
|
|
32
|
+
export { Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge, Button, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Chip, ChipProps, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, FileDropzone, FileDropzoneProps, Input, Label, LanguageOption, LanguageSwitcher, LanguageSwitcherProps, Marquee, MarqueeProps, MessageBubble, MessageBubbleProps, MessageRole, Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, SearchCombobox, SearchComboboxProps, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Skeleton, StatDirection, StatTile, StatTileProps, StreamingDots, StreamingDotsProps, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Textarea, ThemeMode, ThemeToggle, ThemeToggleLabels, ThemeToggleProps, Toaster, Toggle, ToggleGroup, ToggleGroupItem, badgeVariants, buttonVariants, chipVariants, cn, toast, toggleVariants };
|
package/dist/index.js
CHANGED
|
@@ -25,4 +25,6 @@ import { Toaster, toast } from "./elements/sonner.js";
|
|
|
25
25
|
import { Switch } from "./elements/switch.js";
|
|
26
26
|
import { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow } from "./elements/table.js";
|
|
27
27
|
import { Textarea } from "./elements/textarea.js";
|
|
28
|
-
|
|
28
|
+
import { Toggle, toggleVariants } from "./elements/toggle.js";
|
|
29
|
+
import { ToggleGroup, ToggleGroupItem } from "./elements/toggle-group.js";
|
|
30
|
+
export { Avatar, AvatarBadge, AvatarFallback, AvatarGroup, AvatarGroupCount, AvatarImage, Badge, Button, Card, CardAction, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Checkbox, Chip, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuGroup, DropdownMenuItem, DropdownMenuLabel, DropdownMenuPortal, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuShortcut, DropdownMenuSub, DropdownMenuSubContent, DropdownMenuSubTrigger, DropdownMenuTrigger, FileDropzone, Input, Label, LanguageSwitcher, Marquee, MessageBubble, Popover, PopoverAnchor, PopoverContent, PopoverDescription, PopoverHeader, PopoverTitle, PopoverTrigger, SearchCombobox, Select, SelectContent, SelectGroup, SelectItem, SelectLabel, SelectScrollDownButton, SelectScrollUpButton, SelectSeparator, SelectTrigger, SelectValue, Separator, Skeleton, StatTile, StreamingDots, Switch, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Textarea, ThemeToggle, Toaster, Toggle, ToggleGroup, ToggleGroupItem, badgeVariants, buttonVariants, chipVariants, cn, toast, toggleVariants };
|