11import { createContext , useContext , useState } from "react" ;
22import { useAppOrigin } from "~/hooks/useAppOrigin" ;
33import { useProject } from "~/hooks/useProject" ;
4- import { InlineCode } from "./code/InlineCode" ;
54import {
65 ClientTabs ,
76 ClientTabsContent ,
87 ClientTabsList ,
98 ClientTabsTrigger ,
109} from "./primitives/ClientTabs" ;
1110import { ClipboardField } from "./primitives/ClipboardField" ;
12- import { Paragraph } from "./primitives/Paragraph " ;
11+ import { Header3 } from "./primitives/Headers " ;
1312
1413type PackageManagerContextType = {
1514 activePackageManager : string ;
@@ -61,7 +60,12 @@ function getApiUrlArg() {
6160 return apiUrl ? `-a ${ apiUrl } ` : undefined ;
6261}
6362
64- export function InitCommandV3 ( ) {
63+ // Add title prop to the component interfaces
64+ type TabsProps = {
65+ title ?: string ;
66+ } ;
67+
68+ export function InitCommandV3 ( { title } : TabsProps ) {
6569 const project = useProject ( ) ;
6670 const projectRef = project . externalRef ;
6771 const apiUrlArg = getApiUrlArg ( ) ;
@@ -77,30 +81,33 @@ export function InitCommandV3() {
7781 value = { activePackageManager }
7882 onValueChange = { setActivePackageManager }
7983 >
80- < ClientTabsList >
81- < ClientTabsTrigger value = { "npm" } > npm</ ClientTabsTrigger >
82- < ClientTabsTrigger value = { "pnpm" } > pnpm</ ClientTabsTrigger >
83- < ClientTabsTrigger value = { "yarn" } > yarn</ ClientTabsTrigger >
84- </ ClientTabsList >
84+ < div className = "flex items-center gap-4" >
85+ { title && < span > { title } </ span > }
86+ < ClientTabsList className = { title ? "ml-auto" : "" } >
87+ < ClientTabsTrigger value = { "npm" } > npm</ ClientTabsTrigger >
88+ < ClientTabsTrigger value = { "pnpm" } > pnpm</ ClientTabsTrigger >
89+ < ClientTabsTrigger value = { "yarn" } > yarn</ ClientTabsTrigger >
90+ </ ClientTabsList >
91+ </ div >
8592 < ClientTabsContent value = { "npm" } >
8693 < ClipboardField
87- variant = "primary /medium"
94+ variant = "secondary /medium"
8895 iconButton
8996 className = "mb-4"
9097 value = { `npx ${ initCommand } ` }
9198 />
9299 </ ClientTabsContent >
93100 < ClientTabsContent value = { "pnpm" } >
94101 < ClipboardField
95- variant = "primary /medium"
102+ variant = "secondary /medium"
96103 iconButton
97104 className = "mb-4"
98105 value = { `pnpm dlx ${ initCommand } ` }
99106 />
100107 </ ClientTabsContent >
101108 < ClientTabsContent value = { "yarn" } >
102109 < ClipboardField
103- variant = "primary /medium"
110+ variant = "secondary /medium"
104111 iconButton
105112 className = "mb-4"
106113 value = { `yarn dlx ${ initCommand } ` }
@@ -110,7 +117,7 @@ export function InitCommandV3() {
110117 ) ;
111118}
112119
113- export function TriggerDevStepV3 ( ) {
120+ export function TriggerDevStepV3 ( { title } : TabsProps ) {
114121 const { activePackageManager, setActivePackageManager } = usePackageManager ( ) ;
115122
116123 return (
@@ -119,30 +126,33 @@ export function TriggerDevStepV3() {
119126 value = { activePackageManager }
120127 onValueChange = { setActivePackageManager }
121128 >
122- < ClientTabsList >
123- < ClientTabsTrigger value = { "npm" } > npm</ ClientTabsTrigger >
124- < ClientTabsTrigger value = { "pnpm" } > pnpm</ ClientTabsTrigger >
125- < ClientTabsTrigger value = { "yarn" } > yarn</ ClientTabsTrigger >
126- </ ClientTabsList >
129+ < div className = "flex items-center gap-4" >
130+ { title && < Header3 > { title } </ Header3 > }
131+ < ClientTabsList className = { title ? "ml-auto" : "" } >
132+ < ClientTabsTrigger value = { "npm" } > npm</ ClientTabsTrigger >
133+ < ClientTabsTrigger value = { "pnpm" } > pnpm</ ClientTabsTrigger >
134+ < ClientTabsTrigger value = { "yarn" } > yarn</ ClientTabsTrigger >
135+ </ ClientTabsList >
136+ </ div >
127137 < ClientTabsContent value = { "npm" } >
128138 < ClipboardField
129- variant = "primary /medium"
139+ variant = "secondary /medium"
130140 iconButton
131141 className = "mb-4"
132142 value = { `npx trigger.dev@${ v3PackageTag } dev` }
133143 />
134144 </ ClientTabsContent >
135145 < ClientTabsContent value = { "pnpm" } >
136146 < ClipboardField
137- variant = "primary /medium"
147+ variant = "secondary /medium"
138148 iconButton
139149 className = "mb-4"
140150 value = { `pnpm dlx trigger.dev@${ v3PackageTag } dev` }
141151 />
142152 </ ClientTabsContent >
143153 < ClientTabsContent value = { "yarn" } >
144154 < ClipboardField
145- variant = "primary /medium"
155+ variant = "secondary /medium"
146156 iconButton
147157 className = "mb-4"
148158 value = { `yarn dlx trigger.dev@${ v3PackageTag } dev` }
@@ -152,7 +162,7 @@ export function TriggerDevStepV3() {
152162 ) ;
153163}
154164
155- export function TriggerLoginStepV3 ( ) {
165+ export function TriggerLoginStepV3 ( { title } : TabsProps ) {
156166 const { activePackageManager, setActivePackageManager } = usePackageManager ( ) ;
157167
158168 return (
@@ -161,30 +171,33 @@ export function TriggerLoginStepV3() {
161171 value = { activePackageManager }
162172 onValueChange = { setActivePackageManager }
163173 >
164- < ClientTabsList >
165- < ClientTabsTrigger value = { "npm" } > npm</ ClientTabsTrigger >
166- < ClientTabsTrigger value = { "pnpm" } > pnpm</ ClientTabsTrigger >
167- < ClientTabsTrigger value = { "yarn" } > yarn</ ClientTabsTrigger >
168- </ ClientTabsList >
174+ < div className = "flex items-center gap-4" >
175+ { title && < span > { title } </ span > }
176+ < ClientTabsList className = { title ? "ml-auto" : "" } >
177+ < ClientTabsTrigger value = { "npm" } > npm</ ClientTabsTrigger >
178+ < ClientTabsTrigger value = { "pnpm" } > pnpm</ ClientTabsTrigger >
179+ < ClientTabsTrigger value = { "yarn" } > yarn</ ClientTabsTrigger >
180+ </ ClientTabsList >
181+ </ div >
169182 < ClientTabsContent value = { "npm" } >
170183 < ClipboardField
171- variant = "primary /medium"
184+ variant = "secondary /medium"
172185 iconButton
173186 className = "mb-4"
174187 value = { `npx trigger.dev@${ v3PackageTag } login` }
175188 />
176189 </ ClientTabsContent >
177190 < ClientTabsContent value = { "pnpm" } >
178191 < ClipboardField
179- variant = "primary /medium"
192+ variant = "secondary /medium"
180193 iconButton
181194 className = "mb-4"
182195 value = { `pnpm dlx trigger.dev@${ v3PackageTag } login` }
183196 />
184197 </ ClientTabsContent >
185198 < ClientTabsContent value = { "yarn" } >
186199 < ClipboardField
187- variant = "primary /medium"
200+ variant = "secondary /medium"
188201 iconButton
189202 className = "mb-4"
190203 value = { `yarn dlx trigger.dev@${ v3PackageTag } login` }
0 commit comments