mirror of
				https://github.com/langgenius/dify.git
				synced 2025-10-30 18:33:30 +00:00 
			
		
		
		
	
		
			
	
	
		
			141 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			141 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|   | 'use client' | ||
|  | import classNames from 'classnames' | ||
|  | 
 | ||
|  | type IChildrenProps = { | ||
|  |   children: React.ReactNode | ||
|  |   id?: string | ||
|  |   tag?: any | ||
|  |   label?: any | ||
|  |   anchor: boolean | ||
|  | } | ||
|  | 
 | ||
|  | type IHeaderingProps = { | ||
|  |   url: string | ||
|  |   method: 'PUT' | 'DELETE' | 'GET' | 'POST' | ||
|  |   title: string | ||
|  |   name: string | ||
|  | } | ||
|  | 
 | ||
|  | export const Heading = function H2({ | ||
|  |   url, | ||
|  |   method, | ||
|  |   title, | ||
|  |   name, | ||
|  | }: IHeaderingProps) { | ||
|  |   let style = ''; | ||
|  |   switch (method) { | ||
|  |     case 'PUT': | ||
|  |       style = 'ring-amber-300 bg-amber-400/10 text-amber-500 dark:ring-amber-400/30 dark:bg-amber-400/10 dark:text-amber-400'; | ||
|  |       break; | ||
|  |     case 'DELETE': | ||
|  |       style = 'ring-rose-200 bg-rose-50 text-red-500 dark:ring-rose-500/20 dark:bg-rose-400/10 dark:text-rose-400'; | ||
|  |       break; | ||
|  |     case 'POST': | ||
|  |       style = 'ring-sky-300 bg-sky-400/10 text-sky-500 dark:ring-sky-400/30 dark:bg-sky-400/10 dark:text-sky-400'; | ||
|  |       break; | ||
|  |     default: | ||
|  |       style = 'ring-emerald-300 dark:ring-emerald-400/30 bg-emerald-400/10 text-emerald-500 dark:text-emerald-400'; | ||
|  |       break; | ||
|  |   } | ||
|  |   return ( | ||
|  |     <> | ||
|  |       <div className="flex items-center gap-x-3" > | ||
|  |         <span className={`font-mono text-[0.625rem] font-semibold leading-6 rounded-lg px-1.5 ring-1 ring-inset ${style}`}>{method}</span> | ||
|  |         {/* <span className="h-0.5 w-0.5 rounded-full bg-zinc-300 dark:bg-zinc-600"></span> */} | ||
|  |         <span className="font-mono text-xs text-zinc-400">{url}</span> | ||
|  |       </div> | ||
|  |       <h2 className='mt-2 scroll-mt-32'> | ||
|  |         <a href={name} className='no-underline group text-inherit hover:text-inherit'>{title}</a> | ||
|  |       </h2> | ||
|  |     </> | ||
|  | 
 | ||
|  |   ) | ||
|  | } | ||
|  | 
 | ||
|  | export function Row({ children }: IChildrenProps) { | ||
|  |   return ( | ||
|  |     <div className="grid items-start grid-cols-1 gap-x-16 gap-y-10 xl:max-w-none xl:grid-cols-2"> | ||
|  |       {children} | ||
|  |     </div> | ||
|  |   ) | ||
|  | } | ||
|  | 
 | ||
|  | type IColProps = IChildrenProps & { | ||
|  |   sticky: boolean | ||
|  | } | ||
|  | export function Col({ children, sticky = false }: IColProps) { | ||
|  |   return ( | ||
|  |     <div | ||
|  |       className={classNames( | ||
|  |         '[&>:first-child]:mt-0 [&>:last-child]:mb-0', | ||
|  |         sticky && 'xl:sticky xl:top-24', | ||
|  |       )} | ||
|  |     > | ||
|  |       {children} | ||
|  |     </div> | ||
|  |   ) | ||
|  | } | ||
|  | 
 | ||
|  | export function Properties({ children }: IChildrenProps) { | ||
|  |   return ( | ||
|  |     <div className="my-6"> | ||
|  |       <ul | ||
|  |         role="list" | ||
|  |         className="m-0 max-w-[calc(theme(maxWidth.lg)-theme(spacing.8))] list-none divide-y divide-zinc-900/5 p-0 dark:divide-white/5" | ||
|  |       > | ||
|  |         {children} | ||
|  |       </ul> | ||
|  |     </div> | ||
|  |   ) | ||
|  | } | ||
|  | 
 | ||
|  | type IProperty = IChildrenProps & { | ||
|  |   name: string | ||
|  |   type: string | ||
|  | } | ||
|  | export function Property({ name, type, children }: IProperty) { | ||
|  |   return ( | ||
|  |     <li className="px-0 py-4 m-0 first:pt-0 last:pb-0"> | ||
|  |       <dl className="flex flex-wrap items-center m-0 gap-x-3 gap-y-2"> | ||
|  |         <dt className="sr-only">Name</dt> | ||
|  |         <dd> | ||
|  |           <code>{name}</code> | ||
|  |         </dd> | ||
|  |         <dt className="sr-only">Type</dt> | ||
|  |         <dd className="font-mono text-xs text-zinc-400 dark:text-zinc-500"> | ||
|  |           {type} | ||
|  |         </dd> | ||
|  |         <dt className="sr-only">Description</dt> | ||
|  |         <dd className="w-full flex-none [&>:first-child]:mt-0 [&>:last-child]:mb-0"> | ||
|  |           {children} | ||
|  |         </dd> | ||
|  |       </dl> | ||
|  |     </li> | ||
|  |   ) | ||
|  | } | ||
|  | 
 | ||
|  | type ISubProperty = IChildrenProps & { | ||
|  |   name: string | ||
|  |   type: string | ||
|  | } | ||
|  | export function SubProperty({ name, type, children }: ISubProperty) { | ||
|  |   return ( | ||
|  |     <li className="px-0 py-1 m-0 last:pb-0"> | ||
|  |       <dl className="flex flex-wrap items-center m-0 gap-x-3"> | ||
|  |         <dt className="sr-only">Name</dt> | ||
|  |         <dd> | ||
|  |           <code>{name}</code> | ||
|  |         </dd> | ||
|  |         <dt className="sr-only">Type</dt> | ||
|  |         <dd className="font-mono text-xs text-zinc-400 dark:text-zinc-500"> | ||
|  |           {type} | ||
|  |         </dd> | ||
|  |         <dt className="sr-only">Description</dt> | ||
|  |         <dd className="w-full flex-none [&>:first-child]:mt-0 [&>:last-child]:mb-0"> | ||
|  |           {children} | ||
|  |         </dd> | ||
|  |       </dl> | ||
|  |     </li> | ||
|  |   ) | ||
|  | } |