selftune 0.2.9 → 0.2.12
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 +35 -35
- package/apps/local-dashboard/dist/assets/index-4_dAY17K.js +16 -0
- package/apps/local-dashboard/dist/assets/index-BxV5WZHc.css +2 -0
- package/apps/local-dashboard/dist/assets/rolldown-runtime-Dw2cE7zH.js +1 -0
- package/apps/local-dashboard/dist/assets/vendor-react-CKkiCskZ.js +11 -0
- package/apps/local-dashboard/dist/assets/vendor-table-pHbDxq36.js +8 -0
- package/apps/local-dashboard/dist/assets/vendor-ui-7xD7fNEU.js +12 -0
- package/apps/local-dashboard/dist/index.html +16 -15
- package/bin/selftune.cjs +1 -1
- package/cli/selftune/activation-rules.ts +1 -0
- package/cli/selftune/alpha-upload/build-payloads.ts +18 -2
- package/cli/selftune/alpha-upload/stage-canonical.ts +94 -0
- package/cli/selftune/auth/device-code.ts +32 -0
- package/cli/selftune/auto-update.ts +12 -0
- package/cli/selftune/badge/badge.ts +1 -0
- package/cli/selftune/canonical-export.ts +5 -0
- package/cli/selftune/claude-agents.ts +154 -0
- package/cli/selftune/contribute/bundle.ts +1 -0
- package/cli/selftune/contribute/contribute.ts +1 -0
- package/cli/selftune/cron/setup.ts +2 -2
- package/cli/selftune/dashboard-server.ts +1 -0
- package/cli/selftune/eval/hooks-to-evals.ts +1 -0
- package/cli/selftune/eval/import-skillsbench.ts +1 -0
- package/cli/selftune/eval/synthetic-evals.ts +2 -3
- package/cli/selftune/eval/unit-test.ts +1 -0
- package/cli/selftune/evolution/deploy-proposal.ts +9 -238
- package/cli/selftune/evolution/evolve-body.ts +93 -6
- package/cli/selftune/evolution/evolve.ts +3 -7
- package/cli/selftune/evolution/propose-body.ts +3 -2
- package/cli/selftune/evolution/propose-routing.ts +3 -2
- package/cli/selftune/evolution/refine-body.ts +3 -2
- package/cli/selftune/evolution/rollback.ts +1 -1
- package/cli/selftune/export.ts +1 -0
- package/cli/selftune/grading/grade-session.ts +8 -0
- package/cli/selftune/hooks/auto-activate.ts +1 -0
- package/cli/selftune/hooks/evolution-guard.ts +1 -1
- package/cli/selftune/hooks/prompt-log.ts +1 -0
- package/cli/selftune/hooks/session-stop.ts +34 -40
- package/cli/selftune/hooks/skill-change-guard.ts +1 -0
- package/cli/selftune/hooks/skill-eval.ts +1 -1
- package/cli/selftune/index.ts +23 -14
- package/cli/selftune/ingestors/claude-replay.ts +1 -0
- package/cli/selftune/ingestors/codex-rollout.ts +1 -0
- package/cli/selftune/ingestors/codex-wrapper.ts +1 -0
- package/cli/selftune/ingestors/openclaw-ingest.ts +1 -0
- package/cli/selftune/ingestors/opencode-ingest.ts +1 -0
- package/cli/selftune/init.ts +121 -29
- package/cli/selftune/localdb/db.ts +1 -0
- package/cli/selftune/localdb/direct-write.ts +39 -0
- package/cli/selftune/localdb/materialize.ts +2 -0
- package/cli/selftune/localdb/queries.ts +53 -0
- package/cli/selftune/localdb/schema.ts +28 -0
- package/cli/selftune/normalization.ts +1 -0
- package/cli/selftune/observability.ts +1 -0
- package/cli/selftune/repair/skill-usage.ts +1 -0
- package/cli/selftune/routes/orchestrate-runs.ts +1 -0
- package/cli/selftune/routes/overview.ts +1 -0
- package/cli/selftune/routes/report.ts +1 -1
- package/cli/selftune/routes/skill-report.ts +2 -1
- package/cli/selftune/status.ts +1 -1
- package/cli/selftune/sync.ts +30 -1
- package/cli/selftune/uninstall.ts +412 -0
- package/cli/selftune/utils/canonical-log.ts +2 -0
- package/cli/selftune/utils/frontmatter.ts +50 -7
- package/cli/selftune/utils/jsonl.ts +1 -0
- package/cli/selftune/utils/llm-call.ts +131 -3
- package/cli/selftune/utils/skill-log.ts +1 -0
- package/cli/selftune/utils/transcript.ts +1 -0
- package/cli/selftune/utils/trigger-check.ts +1 -1
- package/cli/selftune/workflows/skill-md-writer.ts +5 -5
- package/cli/selftune/workflows/workflows.ts +1 -0
- package/package.json +37 -33
- package/packages/telemetry-contract/fixtures/golden.test.ts +1 -0
- package/packages/telemetry-contract/package.json +1 -1
- package/packages/telemetry-contract/src/schemas.ts +1 -0
- package/packages/telemetry-contract/tests/compatibility.test.ts +1 -0
- package/packages/ui/README.md +35 -34
- package/packages/ui/package.json +3 -3
- package/packages/ui/src/components/ActivityTimeline.tsx +50 -43
- package/packages/ui/src/components/EvidenceViewer.tsx +306 -182
- package/packages/ui/src/components/EvolutionTimeline.tsx +83 -72
- package/packages/ui/src/components/InfoTip.tsx +4 -3
- package/packages/ui/src/components/OrchestrateRunsPanel.tsx +60 -53
- package/packages/ui/src/components/section-cards.tsx +20 -25
- package/packages/ui/src/components/skill-health-grid.tsx +213 -193
- package/packages/ui/src/lib/constants.tsx +1 -0
- package/packages/ui/src/primitives/badge.tsx +12 -15
- package/packages/ui/src/primitives/button.tsx +7 -7
- package/packages/ui/src/primitives/card.tsx +15 -26
- package/packages/ui/src/primitives/checkbox.tsx +7 -8
- package/packages/ui/src/primitives/collapsible.tsx +5 -5
- package/packages/ui/src/primitives/dropdown-menu.tsx +45 -55
- package/packages/ui/src/primitives/label.tsx +6 -6
- package/packages/ui/src/primitives/select.tsx +28 -37
- package/packages/ui/src/primitives/table.tsx +17 -44
- package/packages/ui/src/primitives/tabs.tsx +14 -21
- package/packages/ui/src/primitives/tooltip.tsx +10 -22
- package/skill/SKILL.md +70 -57
- package/skill/Workflows/AlphaUpload.md +4 -4
- package/skill/Workflows/AutoActivation.md +11 -6
- package/skill/Workflows/Badge.md +22 -16
- package/skill/Workflows/Baseline.md +34 -36
- package/skill/Workflows/Composability.md +16 -11
- package/skill/Workflows/Contribute.md +26 -21
- package/skill/Workflows/Cron.md +23 -22
- package/skill/Workflows/Dashboard.md +32 -27
- package/skill/Workflows/Doctor.md +33 -27
- package/skill/Workflows/Evals.md +48 -47
- package/skill/Workflows/EvolutionMemory.md +31 -21
- package/skill/Workflows/Evolve.md +84 -82
- package/skill/Workflows/EvolveBody.md +58 -47
- package/skill/Workflows/Grade.md +16 -13
- package/skill/Workflows/ImportSkillsBench.md +9 -6
- package/skill/Workflows/Ingest.md +36 -21
- package/skill/Workflows/Initialize.md +108 -40
- package/skill/Workflows/Orchestrate.md +22 -16
- package/skill/Workflows/Replay.md +12 -7
- package/skill/Workflows/Rollback.md +13 -6
- package/skill/Workflows/Schedule.md +6 -6
- package/skill/Workflows/Sync.md +18 -11
- package/skill/Workflows/UnitTest.md +28 -17
- package/skill/Workflows/Watch.md +28 -21
- package/skill/agents/diagnosis-analyst.md +11 -0
- package/skill/agents/evolution-reviewer.md +15 -1
- package/skill/agents/integration-guide.md +10 -0
- package/skill/agents/pattern-analyst.md +12 -1
- package/skill/references/grading-methodology.md +23 -24
- package/skill/references/interactive-config.md +7 -7
- package/skill/references/invocation-taxonomy.md +22 -20
- package/skill/references/logs.md +14 -6
- package/skill/references/setup-patterns.md +4 -2
- package/.claude/agents/diagnosis-analyst.md +0 -156
- package/.claude/agents/evolution-reviewer.md +0 -180
- package/.claude/agents/integration-guide.md +0 -212
- package/.claude/agents/pattern-analyst.md +0 -160
- package/apps/local-dashboard/dist/assets/index-Bs3Y4ixf.css +0 -1
- package/apps/local-dashboard/dist/assets/index-C4UYGWKr.js +0 -15
- package/apps/local-dashboard/dist/assets/vendor-react-BQH_6WrG.js +0 -60
- package/apps/local-dashboard/dist/assets/vendor-table-dK1QMLq9.js +0 -26
- package/apps/local-dashboard/dist/assets/vendor-ui-CO2mrx6e.js +0 -341
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
1
|
+
import { Select as SelectPrimitive } from "@base-ui/react/select";
|
|
2
|
+
import { ChevronDownIcon, CheckIcon, ChevronUpIcon } from "lucide-react";
|
|
3
|
+
import * as React from "react";
|
|
3
4
|
|
|
4
|
-
import { cn } from "../lib/utils"
|
|
5
|
-
import { ChevronDownIcon, CheckIcon, ChevronUpIcon } from "lucide-react"
|
|
5
|
+
import { cn } from "../lib/utils";
|
|
6
6
|
|
|
7
|
-
const Select = SelectPrimitive.Root
|
|
7
|
+
const Select = SelectPrimitive.Root;
|
|
8
8
|
|
|
9
9
|
function SelectGroup({ className, ...props }: SelectPrimitive.Group.Props) {
|
|
10
10
|
return (
|
|
@@ -13,7 +13,7 @@ function SelectGroup({ className, ...props }: SelectPrimitive.Group.Props) {
|
|
|
13
13
|
className={cn("scroll-my-1 p-1", className)}
|
|
14
14
|
{...props}
|
|
15
15
|
/>
|
|
16
|
-
)
|
|
16
|
+
);
|
|
17
17
|
}
|
|
18
18
|
|
|
19
19
|
function SelectValue({ className, ...props }: SelectPrimitive.Value.Props) {
|
|
@@ -23,7 +23,7 @@ function SelectValue({ className, ...props }: SelectPrimitive.Value.Props) {
|
|
|
23
23
|
className={cn("flex flex-1 text-left", className)}
|
|
24
24
|
{...props}
|
|
25
25
|
/>
|
|
26
|
-
)
|
|
26
|
+
);
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
function SelectTrigger({
|
|
@@ -32,7 +32,7 @@ function SelectTrigger({
|
|
|
32
32
|
children,
|
|
33
33
|
...props
|
|
34
34
|
}: SelectPrimitive.Trigger.Props & {
|
|
35
|
-
size?: "sm" | "default"
|
|
35
|
+
size?: "sm" | "default";
|
|
36
36
|
}) {
|
|
37
37
|
return (
|
|
38
38
|
<SelectPrimitive.Trigger
|
|
@@ -40,18 +40,16 @@ function SelectTrigger({
|
|
|
40
40
|
data-size={size}
|
|
41
41
|
className={cn(
|
|
42
42
|
"flex w-fit items-center justify-between gap-1.5 rounded-lg border border-input bg-transparent py-2 pr-2 pl-2.5 text-sm whitespace-nowrap transition-colors outline-none select-none focus-visible:border-ring focus-visible:ring-3 focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-3 aria-invalid:ring-destructive/20 data-placeholder:text-muted-foreground data-[size=default]:h-8 data-[size=sm]:h-7 data-[size=sm]:rounded-[min(var(--radius-md),10px)] *:data-[slot=select-value]:line-clamp-1 *:data-[slot=select-value]:flex *:data-[slot=select-value]:items-center *:data-[slot=select-value]:gap-1.5 dark:bg-input/30 dark:hover:bg-input/50 dark:aria-invalid:border-destructive/50 dark:aria-invalid:ring-destructive/40 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",
|
|
43
|
-
className
|
|
43
|
+
className,
|
|
44
44
|
)}
|
|
45
45
|
{...props}
|
|
46
46
|
>
|
|
47
47
|
{children}
|
|
48
48
|
<SelectPrimitive.Icon
|
|
49
|
-
render={
|
|
50
|
-
<ChevronDownIcon className="pointer-events-none size-4 text-muted-foreground" />
|
|
51
|
-
}
|
|
49
|
+
render={<ChevronDownIcon className="pointer-events-none size-4 text-muted-foreground" />}
|
|
52
50
|
/>
|
|
53
51
|
</SelectPrimitive.Trigger>
|
|
54
|
-
)
|
|
52
|
+
);
|
|
55
53
|
}
|
|
56
54
|
|
|
57
55
|
function SelectContent({
|
|
@@ -81,7 +79,10 @@ function SelectContent({
|
|
|
81
79
|
<SelectPrimitive.Popup
|
|
82
80
|
data-slot="select-content"
|
|
83
81
|
data-align-trigger={alignItemWithTrigger}
|
|
84
|
-
className={cn(
|
|
82
|
+
className={cn(
|
|
83
|
+
"relative isolate z-50 max-h-(--available-height) w-(--anchor-width) min-w-36 origin-(--transform-origin) overflow-x-hidden overflow-y-auto rounded-lg bg-popover text-popover-foreground shadow-md ring-1 ring-foreground/10 duration-100 data-[align-trigger=true]:animate-none data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
|
|
84
|
+
className,
|
|
85
|
+
)}
|
|
85
86
|
{...props}
|
|
86
87
|
>
|
|
87
88
|
<SelectScrollUpButton />
|
|
@@ -90,33 +91,26 @@ function SelectContent({
|
|
|
90
91
|
</SelectPrimitive.Popup>
|
|
91
92
|
</SelectPrimitive.Positioner>
|
|
92
93
|
</SelectPrimitive.Portal>
|
|
93
|
-
)
|
|
94
|
+
);
|
|
94
95
|
}
|
|
95
96
|
|
|
96
|
-
function SelectLabel({
|
|
97
|
-
className,
|
|
98
|
-
...props
|
|
99
|
-
}: SelectPrimitive.GroupLabel.Props) {
|
|
97
|
+
function SelectLabel({ className, ...props }: SelectPrimitive.GroupLabel.Props) {
|
|
100
98
|
return (
|
|
101
99
|
<SelectPrimitive.GroupLabel
|
|
102
100
|
data-slot="select-label"
|
|
103
101
|
className={cn("px-1.5 py-1 text-xs text-muted-foreground", className)}
|
|
104
102
|
{...props}
|
|
105
103
|
/>
|
|
106
|
-
)
|
|
104
|
+
);
|
|
107
105
|
}
|
|
108
106
|
|
|
109
|
-
function SelectItem({
|
|
110
|
-
className,
|
|
111
|
-
children,
|
|
112
|
-
...props
|
|
113
|
-
}: SelectPrimitive.Item.Props) {
|
|
107
|
+
function SelectItem({ className, children, ...props }: SelectPrimitive.Item.Props) {
|
|
114
108
|
return (
|
|
115
109
|
<SelectPrimitive.Item
|
|
116
110
|
data-slot="select-item"
|
|
117
111
|
className={cn(
|
|
118
112
|
"relative flex w-full cursor-default items-center gap-1.5 rounded-md py-1 pr-8 pl-1.5 text-sm outline-hidden select-none focus:bg-accent focus:text-accent-foreground not-data-[variant=destructive]:focus:**:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4 *:[span]:last:flex *:[span]:last:items-center *:[span]:last:gap-2",
|
|
119
|
-
className
|
|
113
|
+
className,
|
|
120
114
|
)}
|
|
121
115
|
{...props}
|
|
122
116
|
>
|
|
@@ -131,20 +125,17 @@ function SelectItem({
|
|
|
131
125
|
<CheckIcon className="pointer-events-none" />
|
|
132
126
|
</SelectPrimitive.ItemIndicator>
|
|
133
127
|
</SelectPrimitive.Item>
|
|
134
|
-
)
|
|
128
|
+
);
|
|
135
129
|
}
|
|
136
130
|
|
|
137
|
-
function SelectSeparator({
|
|
138
|
-
className,
|
|
139
|
-
...props
|
|
140
|
-
}: SelectPrimitive.Separator.Props) {
|
|
131
|
+
function SelectSeparator({ className, ...props }: SelectPrimitive.Separator.Props) {
|
|
141
132
|
return (
|
|
142
133
|
<SelectPrimitive.Separator
|
|
143
134
|
data-slot="select-separator"
|
|
144
135
|
className={cn("pointer-events-none -mx-1 my-1 h-px bg-border", className)}
|
|
145
136
|
{...props}
|
|
146
137
|
/>
|
|
147
|
-
)
|
|
138
|
+
);
|
|
148
139
|
}
|
|
149
140
|
|
|
150
141
|
function SelectScrollUpButton({
|
|
@@ -156,13 +147,13 @@ function SelectScrollUpButton({
|
|
|
156
147
|
data-slot="select-scroll-up-button"
|
|
157
148
|
className={cn(
|
|
158
149
|
"top-0 z-10 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4",
|
|
159
|
-
className
|
|
150
|
+
className,
|
|
160
151
|
)}
|
|
161
152
|
{...props}
|
|
162
153
|
>
|
|
163
154
|
<ChevronUpIcon />
|
|
164
155
|
</SelectPrimitive.ScrollUpArrow>
|
|
165
|
-
)
|
|
156
|
+
);
|
|
166
157
|
}
|
|
167
158
|
|
|
168
159
|
function SelectScrollDownButton({
|
|
@@ -174,13 +165,13 @@ function SelectScrollDownButton({
|
|
|
174
165
|
data-slot="select-scroll-down-button"
|
|
175
166
|
className={cn(
|
|
176
167
|
"bottom-0 z-10 flex w-full cursor-default items-center justify-center bg-popover py-1 [&_svg:not([class*='size-'])]:size-4",
|
|
177
|
-
className
|
|
168
|
+
className,
|
|
178
169
|
)}
|
|
179
170
|
{...props}
|
|
180
171
|
>
|
|
181
172
|
<ChevronDownIcon />
|
|
182
173
|
</SelectPrimitive.ScrollDownArrow>
|
|
183
|
-
)
|
|
174
|
+
);
|
|
184
175
|
}
|
|
185
176
|
|
|
186
177
|
export {
|
|
@@ -194,4 +185,4 @@ export {
|
|
|
194
185
|
SelectSeparator,
|
|
195
186
|
SelectTrigger,
|
|
196
187
|
SelectValue,
|
|
197
|
-
}
|
|
188
|
+
};
|
|
@@ -1,30 +1,21 @@
|
|
|
1
|
-
import * as React from "react"
|
|
1
|
+
import * as React from "react";
|
|
2
2
|
|
|
3
|
-
import { cn } from "../lib/utils"
|
|
3
|
+
import { cn } from "../lib/utils";
|
|
4
4
|
|
|
5
5
|
function Table({ className, ...props }: React.ComponentProps<"table">) {
|
|
6
6
|
return (
|
|
7
|
-
<div
|
|
8
|
-
data-slot="table-container"
|
|
9
|
-
className="relative w-full overflow-x-auto"
|
|
10
|
-
>
|
|
7
|
+
<div data-slot="table-container" className="relative w-full overflow-x-auto">
|
|
11
8
|
<table
|
|
12
9
|
data-slot="table"
|
|
13
10
|
className={cn("w-full caption-bottom text-sm", className)}
|
|
14
11
|
{...props}
|
|
15
12
|
/>
|
|
16
13
|
</div>
|
|
17
|
-
)
|
|
14
|
+
);
|
|
18
15
|
}
|
|
19
16
|
|
|
20
17
|
function TableHeader({ className, ...props }: React.ComponentProps<"thead">) {
|
|
21
|
-
return (
|
|
22
|
-
<thead
|
|
23
|
-
data-slot="table-header"
|
|
24
|
-
className={cn("[&_tr]:border-b", className)}
|
|
25
|
-
{...props}
|
|
26
|
-
/>
|
|
27
|
-
)
|
|
18
|
+
return <thead data-slot="table-header" className={cn("[&_tr]:border-b", className)} {...props} />;
|
|
28
19
|
}
|
|
29
20
|
|
|
30
21
|
function TableBody({ className, ...props }: React.ComponentProps<"tbody">) {
|
|
@@ -34,20 +25,17 @@ function TableBody({ className, ...props }: React.ComponentProps<"tbody">) {
|
|
|
34
25
|
className={cn("[&_tr:last-child]:border-0", className)}
|
|
35
26
|
{...props}
|
|
36
27
|
/>
|
|
37
|
-
)
|
|
28
|
+
);
|
|
38
29
|
}
|
|
39
30
|
|
|
40
31
|
function TableFooter({ className, ...props }: React.ComponentProps<"tfoot">) {
|
|
41
32
|
return (
|
|
42
33
|
<tfoot
|
|
43
34
|
data-slot="table-footer"
|
|
44
|
-
className={cn(
|
|
45
|
-
"border-t bg-muted/50 font-medium [&>tr]:last:border-b-0",
|
|
46
|
-
className
|
|
47
|
-
)}
|
|
35
|
+
className={cn("border-t bg-muted/50 font-medium [&>tr]:last:border-b-0", className)}
|
|
48
36
|
{...props}
|
|
49
37
|
/>
|
|
50
|
-
)
|
|
38
|
+
);
|
|
51
39
|
}
|
|
52
40
|
|
|
53
41
|
function TableRow({ className, ...props }: React.ComponentProps<"tr">) {
|
|
@@ -56,11 +44,11 @@ function TableRow({ className, ...props }: React.ComponentProps<"tr">) {
|
|
|
56
44
|
data-slot="table-row"
|
|
57
45
|
className={cn(
|
|
58
46
|
"border-b transition-colors hover:bg-muted/50 data-[state=selected]:bg-muted",
|
|
59
|
-
className
|
|
47
|
+
className,
|
|
60
48
|
)}
|
|
61
49
|
{...props}
|
|
62
50
|
/>
|
|
63
|
-
)
|
|
51
|
+
);
|
|
64
52
|
}
|
|
65
53
|
|
|
66
54
|
function TableHead({ className, ...props }: React.ComponentProps<"th">) {
|
|
@@ -69,46 +57,31 @@ function TableHead({ className, ...props }: React.ComponentProps<"th">) {
|
|
|
69
57
|
data-slot="table-head"
|
|
70
58
|
className={cn(
|
|
71
59
|
"h-10 px-2 text-left align-middle font-medium whitespace-nowrap text-foreground [&:has([role=checkbox])]:pr-0",
|
|
72
|
-
className
|
|
60
|
+
className,
|
|
73
61
|
)}
|
|
74
62
|
{...props}
|
|
75
63
|
/>
|
|
76
|
-
)
|
|
64
|
+
);
|
|
77
65
|
}
|
|
78
66
|
|
|
79
67
|
function TableCell({ className, ...props }: React.ComponentProps<"td">) {
|
|
80
68
|
return (
|
|
81
69
|
<td
|
|
82
70
|
data-slot="table-cell"
|
|
83
|
-
className={cn(
|
|
84
|
-
"p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0",
|
|
85
|
-
className
|
|
86
|
-
)}
|
|
71
|
+
className={cn("p-2 align-middle whitespace-nowrap [&:has([role=checkbox])]:pr-0", className)}
|
|
87
72
|
{...props}
|
|
88
73
|
/>
|
|
89
|
-
)
|
|
74
|
+
);
|
|
90
75
|
}
|
|
91
76
|
|
|
92
|
-
function TableCaption({
|
|
93
|
-
className,
|
|
94
|
-
...props
|
|
95
|
-
}: React.ComponentProps<"caption">) {
|
|
77
|
+
function TableCaption({ className, ...props }: React.ComponentProps<"caption">) {
|
|
96
78
|
return (
|
|
97
79
|
<caption
|
|
98
80
|
data-slot="table-caption"
|
|
99
81
|
className={cn("mt-4 text-sm text-muted-foreground", className)}
|
|
100
82
|
{...props}
|
|
101
83
|
/>
|
|
102
|
-
)
|
|
84
|
+
);
|
|
103
85
|
}
|
|
104
86
|
|
|
105
|
-
export {
|
|
106
|
-
Table,
|
|
107
|
-
TableHeader,
|
|
108
|
-
TableBody,
|
|
109
|
-
TableFooter,
|
|
110
|
-
TableHead,
|
|
111
|
-
TableRow,
|
|
112
|
-
TableCell,
|
|
113
|
-
TableCaption,
|
|
114
|
-
}
|
|
87
|
+
export { Table, TableHeader, TableBody, TableFooter, TableHead, TableRow, TableCell, TableCaption };
|
|
@@ -1,26 +1,19 @@
|
|
|
1
|
-
"use client"
|
|
1
|
+
"use client";
|
|
2
2
|
|
|
3
|
-
import { Tabs as TabsPrimitive } from "@base-ui/react/tabs"
|
|
4
|
-
import { cva, type VariantProps } from "class-variance-authority"
|
|
3
|
+
import { Tabs as TabsPrimitive } from "@base-ui/react/tabs";
|
|
4
|
+
import { cva, type VariantProps } from "class-variance-authority";
|
|
5
5
|
|
|
6
|
-
import { cn } from "../lib/utils"
|
|
6
|
+
import { cn } from "../lib/utils";
|
|
7
7
|
|
|
8
|
-
function Tabs({
|
|
9
|
-
className,
|
|
10
|
-
orientation = "horizontal",
|
|
11
|
-
...props
|
|
12
|
-
}: TabsPrimitive.Root.Props) {
|
|
8
|
+
function Tabs({ className, orientation = "horizontal", ...props }: TabsPrimitive.Root.Props) {
|
|
13
9
|
return (
|
|
14
10
|
<TabsPrimitive.Root
|
|
15
11
|
data-slot="tabs"
|
|
16
12
|
data-orientation={orientation}
|
|
17
|
-
className={cn(
|
|
18
|
-
"group/tabs flex gap-2 data-horizontal:flex-col",
|
|
19
|
-
className
|
|
20
|
-
)}
|
|
13
|
+
className={cn("group/tabs flex gap-2 data-horizontal:flex-col", className)}
|
|
21
14
|
{...props}
|
|
22
15
|
/>
|
|
23
|
-
)
|
|
16
|
+
);
|
|
24
17
|
}
|
|
25
18
|
|
|
26
19
|
const tabsListVariants = cva(
|
|
@@ -35,8 +28,8 @@ const tabsListVariants = cva(
|
|
|
35
28
|
defaultVariants: {
|
|
36
29
|
variant: "default",
|
|
37
30
|
},
|
|
38
|
-
}
|
|
39
|
-
)
|
|
31
|
+
},
|
|
32
|
+
);
|
|
40
33
|
|
|
41
34
|
function TabsList({
|
|
42
35
|
className,
|
|
@@ -50,7 +43,7 @@ function TabsList({
|
|
|
50
43
|
className={cn(tabsListVariants({ variant }), className)}
|
|
51
44
|
{...props}
|
|
52
45
|
/>
|
|
53
|
-
)
|
|
46
|
+
);
|
|
54
47
|
}
|
|
55
48
|
|
|
56
49
|
function TabsTrigger({ className, ...props }: TabsPrimitive.Tab.Props) {
|
|
@@ -62,11 +55,11 @@ function TabsTrigger({ className, ...props }: TabsPrimitive.Tab.Props) {
|
|
|
62
55
|
"group-data-[variant=line]/tabs-list:bg-transparent group-data-[variant=line]/tabs-list:data-active:bg-transparent dark:group-data-[variant=line]/tabs-list:data-active:border-transparent dark:group-data-[variant=line]/tabs-list:data-active:bg-transparent",
|
|
63
56
|
"data-active:bg-background data-active:text-foreground dark:data-active:border-input dark:data-active:bg-input/30 dark:data-active:text-foreground",
|
|
64
57
|
"after:absolute after:bg-foreground after:opacity-0 after:transition-opacity group-data-horizontal/tabs:after:inset-x-0 group-data-horizontal/tabs:after:bottom-[-5px] group-data-horizontal/tabs:after:h-0.5 group-data-vertical/tabs:after:inset-y-0 group-data-vertical/tabs:after:-right-1 group-data-vertical/tabs:after:w-0.5 group-data-[variant=line]/tabs-list:data-active:after:opacity-100",
|
|
65
|
-
className
|
|
58
|
+
className,
|
|
66
59
|
)}
|
|
67
60
|
{...props}
|
|
68
61
|
/>
|
|
69
|
-
)
|
|
62
|
+
);
|
|
70
63
|
}
|
|
71
64
|
|
|
72
65
|
function TabsContent({ className, ...props }: TabsPrimitive.Panel.Props) {
|
|
@@ -76,7 +69,7 @@ function TabsContent({ className, ...props }: TabsPrimitive.Panel.Props) {
|
|
|
76
69
|
className={cn("flex-1 text-sm outline-none", className)}
|
|
77
70
|
{...props}
|
|
78
71
|
/>
|
|
79
|
-
)
|
|
72
|
+
);
|
|
80
73
|
}
|
|
81
74
|
|
|
82
|
-
export { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants }
|
|
75
|
+
export { Tabs, TabsList, TabsTrigger, TabsContent, tabsListVariants };
|
|
@@ -1,26 +1,17 @@
|
|
|
1
|
-
import { Tooltip as TooltipPrimitive } from "@base-ui/react/tooltip"
|
|
1
|
+
import { Tooltip as TooltipPrimitive } from "@base-ui/react/tooltip";
|
|
2
2
|
|
|
3
|
-
import { cn } from "../lib/utils"
|
|
3
|
+
import { cn } from "../lib/utils";
|
|
4
4
|
|
|
5
|
-
function TooltipProvider({
|
|
6
|
-
|
|
7
|
-
...props
|
|
8
|
-
}: TooltipPrimitive.Provider.Props) {
|
|
9
|
-
return (
|
|
10
|
-
<TooltipPrimitive.Provider
|
|
11
|
-
data-slot="tooltip-provider"
|
|
12
|
-
delay={delay}
|
|
13
|
-
{...props}
|
|
14
|
-
/>
|
|
15
|
-
)
|
|
5
|
+
function TooltipProvider({ delay = 0, ...props }: TooltipPrimitive.Provider.Props) {
|
|
6
|
+
return <TooltipPrimitive.Provider data-slot="tooltip-provider" delay={delay} {...props} />;
|
|
16
7
|
}
|
|
17
8
|
|
|
18
9
|
function Tooltip({ ...props }: TooltipPrimitive.Root.Props) {
|
|
19
|
-
return <TooltipPrimitive.Root data-slot="tooltip" {...props}
|
|
10
|
+
return <TooltipPrimitive.Root data-slot="tooltip" {...props} />;
|
|
20
11
|
}
|
|
21
12
|
|
|
22
13
|
function TooltipTrigger({ ...props }: TooltipPrimitive.Trigger.Props) {
|
|
23
|
-
return <TooltipPrimitive.Trigger data-slot="tooltip-trigger" {...props}
|
|
14
|
+
return <TooltipPrimitive.Trigger data-slot="tooltip-trigger" {...props} />;
|
|
24
15
|
}
|
|
25
16
|
|
|
26
17
|
function TooltipContent({
|
|
@@ -32,10 +23,7 @@ function TooltipContent({
|
|
|
32
23
|
children,
|
|
33
24
|
...props
|
|
34
25
|
}: TooltipPrimitive.Popup.Props &
|
|
35
|
-
Pick<
|
|
36
|
-
TooltipPrimitive.Positioner.Props,
|
|
37
|
-
"align" | "alignOffset" | "side" | "sideOffset"
|
|
38
|
-
>) {
|
|
26
|
+
Pick<TooltipPrimitive.Positioner.Props, "align" | "alignOffset" | "side" | "sideOffset">) {
|
|
39
27
|
return (
|
|
40
28
|
<TooltipPrimitive.Portal>
|
|
41
29
|
<TooltipPrimitive.Positioner
|
|
@@ -49,7 +37,7 @@ function TooltipContent({
|
|
|
49
37
|
data-slot="tooltip-content"
|
|
50
38
|
className={cn(
|
|
51
39
|
"z-50 inline-flex w-fit max-w-xs origin-(--transform-origin) items-center gap-1.5 rounded-md bg-foreground px-3 py-1.5 text-xs text-background has-data-[slot=kbd]:pr-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=inline-end]:slide-in-from-left-2 data-[side=inline-start]:slide-in-from-right-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-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-sm data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95",
|
|
52
|
-
className
|
|
40
|
+
className,
|
|
53
41
|
)}
|
|
54
42
|
{...props}
|
|
55
43
|
>
|
|
@@ -58,7 +46,7 @@ function TooltipContent({
|
|
|
58
46
|
</TooltipPrimitive.Popup>
|
|
59
47
|
</TooltipPrimitive.Positioner>
|
|
60
48
|
</TooltipPrimitive.Portal>
|
|
61
|
-
)
|
|
49
|
+
);
|
|
62
50
|
}
|
|
63
51
|
|
|
64
|
-
export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider }
|
|
52
|
+
export { Tooltip, TooltipTrigger, TooltipContent, TooltipProvider };
|