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.
Files changed (140) hide show
  1. package/README.md +35 -35
  2. package/apps/local-dashboard/dist/assets/index-4_dAY17K.js +16 -0
  3. package/apps/local-dashboard/dist/assets/index-BxV5WZHc.css +2 -0
  4. package/apps/local-dashboard/dist/assets/rolldown-runtime-Dw2cE7zH.js +1 -0
  5. package/apps/local-dashboard/dist/assets/vendor-react-CKkiCskZ.js +11 -0
  6. package/apps/local-dashboard/dist/assets/vendor-table-pHbDxq36.js +8 -0
  7. package/apps/local-dashboard/dist/assets/vendor-ui-7xD7fNEU.js +12 -0
  8. package/apps/local-dashboard/dist/index.html +16 -15
  9. package/bin/selftune.cjs +1 -1
  10. package/cli/selftune/activation-rules.ts +1 -0
  11. package/cli/selftune/alpha-upload/build-payloads.ts +18 -2
  12. package/cli/selftune/alpha-upload/stage-canonical.ts +94 -0
  13. package/cli/selftune/auth/device-code.ts +32 -0
  14. package/cli/selftune/auto-update.ts +12 -0
  15. package/cli/selftune/badge/badge.ts +1 -0
  16. package/cli/selftune/canonical-export.ts +5 -0
  17. package/cli/selftune/claude-agents.ts +154 -0
  18. package/cli/selftune/contribute/bundle.ts +1 -0
  19. package/cli/selftune/contribute/contribute.ts +1 -0
  20. package/cli/selftune/cron/setup.ts +2 -2
  21. package/cli/selftune/dashboard-server.ts +1 -0
  22. package/cli/selftune/eval/hooks-to-evals.ts +1 -0
  23. package/cli/selftune/eval/import-skillsbench.ts +1 -0
  24. package/cli/selftune/eval/synthetic-evals.ts +2 -3
  25. package/cli/selftune/eval/unit-test.ts +1 -0
  26. package/cli/selftune/evolution/deploy-proposal.ts +9 -238
  27. package/cli/selftune/evolution/evolve-body.ts +93 -6
  28. package/cli/selftune/evolution/evolve.ts +3 -7
  29. package/cli/selftune/evolution/propose-body.ts +3 -2
  30. package/cli/selftune/evolution/propose-routing.ts +3 -2
  31. package/cli/selftune/evolution/refine-body.ts +3 -2
  32. package/cli/selftune/evolution/rollback.ts +1 -1
  33. package/cli/selftune/export.ts +1 -0
  34. package/cli/selftune/grading/grade-session.ts +8 -0
  35. package/cli/selftune/hooks/auto-activate.ts +1 -0
  36. package/cli/selftune/hooks/evolution-guard.ts +1 -1
  37. package/cli/selftune/hooks/prompt-log.ts +1 -0
  38. package/cli/selftune/hooks/session-stop.ts +34 -40
  39. package/cli/selftune/hooks/skill-change-guard.ts +1 -0
  40. package/cli/selftune/hooks/skill-eval.ts +1 -1
  41. package/cli/selftune/index.ts +23 -14
  42. package/cli/selftune/ingestors/claude-replay.ts +1 -0
  43. package/cli/selftune/ingestors/codex-rollout.ts +1 -0
  44. package/cli/selftune/ingestors/codex-wrapper.ts +1 -0
  45. package/cli/selftune/ingestors/openclaw-ingest.ts +1 -0
  46. package/cli/selftune/ingestors/opencode-ingest.ts +1 -0
  47. package/cli/selftune/init.ts +121 -29
  48. package/cli/selftune/localdb/db.ts +1 -0
  49. package/cli/selftune/localdb/direct-write.ts +39 -0
  50. package/cli/selftune/localdb/materialize.ts +2 -0
  51. package/cli/selftune/localdb/queries.ts +53 -0
  52. package/cli/selftune/localdb/schema.ts +28 -0
  53. package/cli/selftune/normalization.ts +1 -0
  54. package/cli/selftune/observability.ts +1 -0
  55. package/cli/selftune/repair/skill-usage.ts +1 -0
  56. package/cli/selftune/routes/orchestrate-runs.ts +1 -0
  57. package/cli/selftune/routes/overview.ts +1 -0
  58. package/cli/selftune/routes/report.ts +1 -1
  59. package/cli/selftune/routes/skill-report.ts +2 -1
  60. package/cli/selftune/status.ts +1 -1
  61. package/cli/selftune/sync.ts +30 -1
  62. package/cli/selftune/uninstall.ts +412 -0
  63. package/cli/selftune/utils/canonical-log.ts +2 -0
  64. package/cli/selftune/utils/frontmatter.ts +50 -7
  65. package/cli/selftune/utils/jsonl.ts +1 -0
  66. package/cli/selftune/utils/llm-call.ts +131 -3
  67. package/cli/selftune/utils/skill-log.ts +1 -0
  68. package/cli/selftune/utils/transcript.ts +1 -0
  69. package/cli/selftune/utils/trigger-check.ts +1 -1
  70. package/cli/selftune/workflows/skill-md-writer.ts +5 -5
  71. package/cli/selftune/workflows/workflows.ts +1 -0
  72. package/package.json +37 -33
  73. package/packages/telemetry-contract/fixtures/golden.test.ts +1 -0
  74. package/packages/telemetry-contract/package.json +1 -1
  75. package/packages/telemetry-contract/src/schemas.ts +1 -0
  76. package/packages/telemetry-contract/tests/compatibility.test.ts +1 -0
  77. package/packages/ui/README.md +35 -34
  78. package/packages/ui/package.json +3 -3
  79. package/packages/ui/src/components/ActivityTimeline.tsx +50 -43
  80. package/packages/ui/src/components/EvidenceViewer.tsx +306 -182
  81. package/packages/ui/src/components/EvolutionTimeline.tsx +83 -72
  82. package/packages/ui/src/components/InfoTip.tsx +4 -3
  83. package/packages/ui/src/components/OrchestrateRunsPanel.tsx +60 -53
  84. package/packages/ui/src/components/section-cards.tsx +20 -25
  85. package/packages/ui/src/components/skill-health-grid.tsx +213 -193
  86. package/packages/ui/src/lib/constants.tsx +1 -0
  87. package/packages/ui/src/primitives/badge.tsx +12 -15
  88. package/packages/ui/src/primitives/button.tsx +7 -7
  89. package/packages/ui/src/primitives/card.tsx +15 -26
  90. package/packages/ui/src/primitives/checkbox.tsx +7 -8
  91. package/packages/ui/src/primitives/collapsible.tsx +5 -5
  92. package/packages/ui/src/primitives/dropdown-menu.tsx +45 -55
  93. package/packages/ui/src/primitives/label.tsx +6 -6
  94. package/packages/ui/src/primitives/select.tsx +28 -37
  95. package/packages/ui/src/primitives/table.tsx +17 -44
  96. package/packages/ui/src/primitives/tabs.tsx +14 -21
  97. package/packages/ui/src/primitives/tooltip.tsx +10 -22
  98. package/skill/SKILL.md +70 -57
  99. package/skill/Workflows/AlphaUpload.md +4 -4
  100. package/skill/Workflows/AutoActivation.md +11 -6
  101. package/skill/Workflows/Badge.md +22 -16
  102. package/skill/Workflows/Baseline.md +34 -36
  103. package/skill/Workflows/Composability.md +16 -11
  104. package/skill/Workflows/Contribute.md +26 -21
  105. package/skill/Workflows/Cron.md +23 -22
  106. package/skill/Workflows/Dashboard.md +32 -27
  107. package/skill/Workflows/Doctor.md +33 -27
  108. package/skill/Workflows/Evals.md +48 -47
  109. package/skill/Workflows/EvolutionMemory.md +31 -21
  110. package/skill/Workflows/Evolve.md +84 -82
  111. package/skill/Workflows/EvolveBody.md +58 -47
  112. package/skill/Workflows/Grade.md +16 -13
  113. package/skill/Workflows/ImportSkillsBench.md +9 -6
  114. package/skill/Workflows/Ingest.md +36 -21
  115. package/skill/Workflows/Initialize.md +108 -40
  116. package/skill/Workflows/Orchestrate.md +22 -16
  117. package/skill/Workflows/Replay.md +12 -7
  118. package/skill/Workflows/Rollback.md +13 -6
  119. package/skill/Workflows/Schedule.md +6 -6
  120. package/skill/Workflows/Sync.md +18 -11
  121. package/skill/Workflows/UnitTest.md +28 -17
  122. package/skill/Workflows/Watch.md +28 -21
  123. package/skill/agents/diagnosis-analyst.md +11 -0
  124. package/skill/agents/evolution-reviewer.md +15 -1
  125. package/skill/agents/integration-guide.md +10 -0
  126. package/skill/agents/pattern-analyst.md +12 -1
  127. package/skill/references/grading-methodology.md +23 -24
  128. package/skill/references/interactive-config.md +7 -7
  129. package/skill/references/invocation-taxonomy.md +22 -20
  130. package/skill/references/logs.md +14 -6
  131. package/skill/references/setup-patterns.md +4 -2
  132. package/.claude/agents/diagnosis-analyst.md +0 -156
  133. package/.claude/agents/evolution-reviewer.md +0 -180
  134. package/.claude/agents/integration-guide.md +0 -212
  135. package/.claude/agents/pattern-analyst.md +0 -160
  136. package/apps/local-dashboard/dist/assets/index-Bs3Y4ixf.css +0 -1
  137. package/apps/local-dashboard/dist/assets/index-C4UYGWKr.js +0 -15
  138. package/apps/local-dashboard/dist/assets/vendor-react-BQH_6WrG.js +0 -60
  139. package/apps/local-dashboard/dist/assets/vendor-table-dK1QMLq9.js +0 -26
  140. package/apps/local-dashboard/dist/assets/vendor-ui-CO2mrx6e.js +0 -341
@@ -1,10 +1,10 @@
1
- import * as React from "react"
2
- import { Select as SelectPrimitive } from "@base-ui/react/select"
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("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", className )}
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
- delay = 0,
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 };